:root{
  --navy:#0a1c40; --navy2:#10275c; --gold:#c9a227; --gold2:#e8cd6d; --ivory:#faf6ec; --ink:#23283b;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;color:var(--ink);background:var(--ivory);overflow-x:hidden}
h1,h2,h3,.serif{font-family:'Playfair Display',serif}
img{display:block;max-width:100%}
a{color:inherit}

/* ---------- NAV ---------- */
nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;
    padding:16px 34px;background:linear-gradient(180deg,rgba(6,14,34,.75),rgba(6,14,34,0));transition:.35s}
nav.scrolled,nav.solid{background:rgba(8,20,48,.96);box-shadow:0 4px 24px rgba(0,0,0,.35);padding:10px 34px}
.brand{color:#fff;font-family:'Playfair Display',serif;font-size:22px;letter-spacing:.5px;text-decoration:none}
.brand b{color:var(--gold2);font-weight:800}
.links{display:flex;gap:28px;align-items:center}
.links a{color:#eef1fa;text-decoration:none;font-size:14px;letter-spacing:2px;text-transform:uppercase;opacity:.92}
.links a:hover{color:var(--gold2)}
.btn-login{border:1px solid var(--gold);color:var(--gold2)!important;padding:8px 18px;border-radius:30px}
.btn-login:hover{background:var(--gold);color:#0a1c40!important}
@media(max-width:760px){.links a:not(.btn-login){display:none}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:kenburns 24s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,14,34,.55),rgba(6,14,34,.25) 40%,rgba(6,14,34,.78))}
.hero-in{position:relative;z-index:2;padding:120px 20px 80px;max-width:900px;animation:rise 1.4s ease both}
@keyframes rise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
.hero .kicker{letter-spacing:6px;text-transform:uppercase;font-size:13px;color:var(--gold2)}
.hero h1{font-size:clamp(46px,9vw,96px);font-weight:800;line-height:1.05;margin:18px 0 6px;text-shadow:0 6px 40px rgba(0,0,0,.5)}
.hero h1 i{color:var(--gold2);font-weight:500}
.orn{display:flex;align-items:center;gap:14px;justify-content:center;margin:20px auto;color:var(--gold2)}
.orn::before,.orn::after{content:'';height:1px;width:90px;background:linear-gradient(90deg,transparent,var(--gold))}
.orn::after{background:linear-gradient(90deg,var(--gold),transparent)}
.hero .dates{font-size:clamp(15px,2.4vw,20px);letter-spacing:3px;text-transform:uppercase;opacity:.95}
.hero .sub{margin-top:16px;font-weight:300;font-size:17px;opacity:.85}
.hero-cta{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;padding:13px 30px;border-radius:34px;text-decoration:none;font-size:14px;letter-spacing:2px;text-transform:uppercase;transition:.3s;cursor:pointer;border:none;font-family:'Jost',sans-serif}
.btn-gold{background:linear-gradient(135deg,var(--gold),#a9831c);color:#fff;box-shadow:0 10px 26px rgba(201,162,39,.4)}
.btn-gold:hover{transform:translateY(-2px)}
.btn-ghost{border:1px solid rgba(255,255,255,.75);color:#fff;background:rgba(255,255,255,.06)}
.btn-ghost:hover{background:rgba(255,255,255,.18)}
.stats{margin:52px auto 0;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.stat{background:rgba(10,24,56,.55);border:1px solid rgba(201,162,39,.45);border-radius:14px;padding:14px 26px;min-width:128px}
.stat b{display:block;font-family:'Playfair Display',serif;font-size:27px;color:var(--gold2)}
.stat span{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;opacity:.85}

/* ---------- SECTIONS ---------- */
section{padding:92px 22px}
.wrap{max-width:1180px;margin:0 auto}
.sec-head{text-align:center;margin-bottom:52px}
.sec-head .kicker{letter-spacing:5px;text-transform:uppercase;font-size:12.5px;color:var(--gold);font-weight:600}
.sec-head h2{font-size:clamp(32px,5vw,46px);color:var(--navy);margin-top:10px}
.sec-head p{max-width:620px;margin:12px auto 0;color:#5a6076;font-weight:300;font-size:17px}
.reveal{opacity:0;transform:translateY(30px);transition:all .9s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- ALBUMS ---------- */
.albums{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px}
.album{position:relative;display:block;border-radius:20px;overflow:hidden;height:430px;box-shadow:0 18px 44px rgba(10,28,64,.22);text-decoration:none}
.album img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.album:hover img{transform:scale(1.08)}
.album::after{content:'';position:absolute;inset:0;background:linear-gradient(185deg,rgba(6,14,34,0) 40%,rgba(6,14,34,.88))}
.album .a-in{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:26px;color:#fff}
.album .tag{display:inline-block;background:rgba(201,162,39,.92);color:#131a2e;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:5px 12px;border-radius:20px}
.album h3{font-size:31px;margin:12px 0 4px}
.album p{font-weight:300;opacity:.88;font-size:15px}
.album .count{margin-top:12px;font-size:12.5px;letter-spacing:2px;text-transform:uppercase;color:var(--gold2)}

/* ---------- GALLERY ---------- */
.dark{background:linear-gradient(180deg,var(--navy) 0%,#0d2150 60%,var(--navy) 100%);color:#eef1fa}
.dark .sec-head h2{color:#fff}.dark .sec-head p{color:#b9c2da}
.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px}
.grid figure{border-radius:14px;overflow:hidden;position:relative;cursor:zoom-in}
.grid figure img,.grid figure video{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.grid figure:hover img{transform:scale(1.07)}
.grid .tall{grid-row:span 2}.grid .wide{grid-column:span 2}
.grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;font-size:13px;letter-spacing:1px;color:#fff;background:linear-gradient(0deg,rgba(5,10,26,.75),transparent);opacity:0;transition:.3s;z-index:2}
.grid figure:hover figcaption{opacity:1}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}}

/* photos grid on album page */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.pgrid figure{border-radius:14px;overflow:hidden;position:relative;cursor:zoom-in;background:#0d2150}
.pgrid figure img{width:100%;height:230px;object-fit:cover;transition:transform 1s}
.pgrid figure:hover img{transform:scale(1.06)}
.pgrid figcaption{padding:10px 12px;color:#dfe6f7;font-size:13.5px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.dl{color:var(--gold2);text-decoration:none;font-size:12px;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}
.dl:hover{text-decoration:underline}

/* ---------- VIDEOS ---------- */
.vids{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px}
.vid{border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 16px 40px rgba(10,28,64,.14)}
.dark .vid{background:#0d2150}
.vid .thumb{position:relative;height:230px;cursor:pointer;background:#000}
.vid .thumb img,.vid .thumb video{width:100%;height:100%;object-fit:cover}
.vid .thumb::after{content:'';position:absolute;inset:0;background:linear-gradient(185deg,transparent 45%,rgba(6,14,34,.65));pointer-events:none}
.play{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:70px;height:70px;border-radius:50%;
      background:rgba(201,162,39,.94);display:flex;align-items:center;justify-content:center;transition:.3s;box-shadow:0 12px 30px rgba(0,0,0,.4);pointer-events:none}
.vid .thumb:hover .play{transform:translate(-50%,-50%) scale(1.1)}
.play::before{content:'';border-left:22px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px}
.vid .v-in{padding:20px 22px}
.vid h3{color:var(--navy);font-size:21px}
.dark .vid h3{color:#fff}
.vid p{color:#5a6076;font-weight:300;font-size:14.5px;margin-top:5px}
.dark .vid p{color:#b9c2da}

/* ---------- TIMELINE ---------- */
.tl{max-width:760px;margin:0 auto;position:relative;padding-left:26px}
.tl::before{content:'';position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--gold),rgba(201,162,39,.15))}
.tl-it{position:relative;padding:0 0 38px 30px}
.tl-it::before{content:'';position:absolute;left:-27px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--ivory);border:3px solid var(--gold)}
.tl-it .when{font-size:12.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);font-weight:600}
.tl-it h3{color:var(--navy);font-size:24px;margin:5px 0 4px}
.tl-it p{color:#5a6076;font-weight:300;max-width:560px}

/* ---------- FEATURES ---------- */
.feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.feat{background:#fff;border:1px solid #eadfc2;border-radius:18px;padding:30px 26px;text-align:center;box-shadow:0 10px 30px rgba(10,28,64,.06)}
.feat .ic{font-size:34px}
.feat h3{color:var(--navy);font-size:20px;margin:12px 0 6px}
.feat p{color:#5a6076;font-weight:300;font-size:15px}

footer{background:#060f27;color:#aebadd;text-align:center;padding:52px 20px 40px}
footer .fbrand{font-family:'Playfair Display',serif;font-size:26px;color:#fff}
footer .fbrand b{color:var(--gold2)}
footer p{font-weight:300;font-size:14px;margin-top:8px}
footer .cred{margin-top:22px;font-size:12px;letter-spacing:2px;text-transform:uppercase;opacity:.6}

/* ---------- ALBUM PAGE HERO ---------- */
.page-hero{position:relative;padding:170px 22px 90px;text-align:center;color:#fff;background-size:cover;background-position:center}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,14,34,.72),rgba(6,14,34,.55) 50%,rgba(6,14,34,.85))}
.page-hero .ph-in{position:relative;z-index:2;max-width:820px;margin:0 auto}
.page-hero .tag{display:inline-block;background:rgba(201,162,39,.92);color:#131a2e;font-size:11.5px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border-radius:20px}
.page-hero h1{font-size:clamp(38px,7vw,64px);margin:16px 0 8px;text-shadow:0 6px 34px rgba(0,0,0,.5)}
.page-hero p{font-weight:300;opacity:.92;font-size:17px}
.backlink{display:inline-block;margin-bottom:26px;color:var(--gold2);text-decoration:none;letter-spacing:2px;text-transform:uppercase;font-size:12.5px;position:relative;z-index:2}
.empty-note{text-align:center;color:#5a6076;font-weight:300;padding:30px 0;font-size:17px}

/* ---------- LOCK / LOGIN ---------- */
.lock-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:110px 18px 60px;background:linear-gradient(160deg,#081636,#0d2150 55%,#081636)}
.lock-card{background:rgba(16,39,92,.75);border:1px solid rgba(201,162,39,.55);border-radius:22px;padding:44px 38px;max-width:430px;width:100%;text-align:center;color:#eef1fa;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.lock-card .ring{font-size:44px}
.lock-card h1{font-size:30px;margin:10px 0 6px;color:#fff}
.lock-card p{font-weight:300;color:#b9c2da;font-size:15px}
.lock-card form{margin-top:24px;display:flex;flex-direction:column;gap:12px}
.lock-card input{padding:14px 16px;border-radius:12px;border:1px solid rgba(201,162,39,.4);background:rgba(6,14,34,.6);color:#fff;font-size:16px;font-family:'Jost',sans-serif;text-align:center}
.lock-card input:focus{outline:2px solid var(--gold)}
.form-err{background:rgba(160,30,50,.25);border:1px solid #e86d6d;color:#ffd7d7;padding:10px;border-radius:10px;font-size:14px}
.form-ok{background:rgba(30,140,70,.22);border:1px solid #58c184;color:#d2ffe2;padding:10px;border-radius:10px;font-size:14px}

/* ---------- MODALS ---------- */
.modal{position:fixed;inset:0;z-index:100;background:rgba(4,8,20,.94);display:none;align-items:center;justify-content:center;padding:22px}
.modal.open{display:flex}
.modal img{max-width:min(1100px,94vw);max-height:88vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal video{max-height:88vh;max-width:min(900px,94vw);border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal iframe{width:min(920px,94vw);height:min(520px,60vh);border:0;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal .x{position:absolute;top:18px;right:24px;color:#fff;font-size:34px;cursor:pointer;line-height:1;z-index:2}
