:root{--black:#080604;--night:#14100c;--brown:#2b2118;--gold:#d9b66b;--gold-soft:#f4dfad;--cream:#f4ead8;--paper:#fbf5ea;--ink:#2a2017;--muted:rgba(42,32,23,.68);--line:rgba(217,182,107,.28);--serif:"ivypresto-display","Cormorant Garamond",Georgia,serif;--sans:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--black)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
a{color:inherit}button,input,select,textarea{font:inherit}img,video{display:block;max-width:100%}
.intro{position:fixed;inset:0;z-index:1000;background:var(--black);overflow:hidden;cursor:pointer;transition:opacity .75s ease,visibility .75s ease}
.intro video{width:100%;height:100%;object-fit:cover}
.intro:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 30%,rgba(8,6,4,.28) 62%,rgba(8,6,4,.62))}
.intro-tap{position:absolute;left:50%;bottom:max(30px,env(safe-area-inset-bottom));z-index:3;min-height:48px;border:1px solid rgba(244,223,173,.42);border-radius:999px;padding:0 22px;background:rgba(8,6,4,.62);box-shadow:0 18px 54px rgba(0,0,0,.34);color:#fff4d7;font-family:var(--sans);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;transform:translateX(-50%);white-space:nowrap;backdrop-filter:blur(14px);transition:opacity .35s ease}
.intro-light{position:absolute;left:50%;top:50%;z-index:4;width:18px;height:18px;border-radius:999px;background:#fff;opacity:0;box-shadow:0 0 80px 50px rgba(255,255,255,.68),0 0 180px 95px rgba(244,223,173,.42);transform:translate(-50%,-50%) scale(.1);pointer-events:none}
.intro-light.show{animation:flash 1.1s ease forwards}
@keyframes flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}55%{opacity:1;transform:translate(-50%,-50%) scale(12)}100%{opacity:0;transform:translate(-50%,-50%) scale(28)}}
.intro.hide{opacity:0;visibility:hidden;pointer-events:none}
.page{overflow:hidden;background:var(--paper)}
.sound{position:fixed;right:16px;bottom:16px;z-index:70;width:54px;height:54px;border:1px solid rgba(244,223,173,.48);border-radius:999px;background:rgba(16,12,8,.82);box-shadow:0 16px 48px rgba(0,0,0,.36);color:var(--gold-soft);font-family:var(--sans);font-weight:950;backdrop-filter:blur(14px)}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:var(--black);color:white}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.94) brightness(.72)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,6,4,.48),rgba(8,6,4,.12) 38%,rgba(8,6,4,.62)),radial-gradient(circle at 50% 46%,rgba(244,223,173,.16),transparent 38%)}
.lights{position:absolute;left:50%;top:0;width:min(940px,150vw);opacity:.88;filter:drop-shadow(0 18px 34px rgba(217,182,107,.16));transform:translateX(-50%)}
.hero-content{position:relative;z-index:3;width:min(680px,100%);padding:96px 18px 44px;text-align:center;text-shadow:0 10px 42px rgba(0,0,0,.52)}
.badge{width:118px;margin:0 auto 20px;opacity:.92;filter:drop-shadow(0 10px 30px rgba(0,0,0,.4))}
.overline,.kicker{margin:0;font-family:var(--sans);font-size:.7rem;font-weight:900;letter-spacing:.32em;text-transform:uppercase}
.overline{color:#fff2ca}.hero h1{display:grid;gap:8px;margin:14px 0 16px;font-size:clamp(4.4rem,18vw,9rem);font-weight:500;line-height:.74;letter-spacing:-.055em}
.hero h1 small{font-family:Georgia,serif;font-size:.26em;color:var(--gold-soft);font-style:italic;line-height:1}
.date{margin:0;color:#fff4da;font-size:1.15rem;font-style:italic;letter-spacing:.03em}
.hero-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:34px}
.hero-actions a,.soft-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(244,223,173,.44);border-radius:999px;padding:0 18px;background:rgba(8,6,4,.45);color:#fff4d7;font-family:var(--sans);font-size:.74rem;font-weight:900;text-decoration:none;backdrop-filter:blur(16px)}
.countdown{padding:72px 14px;background:linear-gradient(180deg,#140f0a,#21160d);color:white;text-align:center}
.countdown .kicker{color:rgba(244,223,173,.78)}
.count-grid{width:min(850px,100%);display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px auto 0}
.count-grid div{min-height:118px;display:grid;place-items:center;border:1px solid rgba(244,223,173,.2);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025));box-shadow:0 18px 44px rgba(0,0,0,.22)}
.count-grid strong{font-size:clamp(2rem,8vw,4.2rem);font-weight:500;line-height:.85;color:#fff0c7}
.count-grid span{font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.section{padding:clamp(78px,12vw,128px) 16px}
.wrap{width:min(960px,100%);margin:0 auto;text-align:center}
h2{margin:10px auto 0;font-size:clamp(3.2rem,12vw,7rem);font-weight:500;line-height:.82;letter-spacing:-.055em}
.kicker{color:#916d2f}
.venue-card{display:grid;grid-template-columns:.84fr 1fr;gap:18px;align-items:stretch;margin:38px auto 0;text-align:left}
.venue-copy,.map{min-height:390px;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:rgba(255,255,255,.58);box-shadow:0 22px 70px rgba(42,32,23,.1)}
.venue-copy{display:grid;align-content:center;padding:32px;background:linear-gradient(180deg,#fff8eb,#f1e1c7)}
.pin{width:62px;height:62px;display:grid;place-items:center;border-radius:999px;background:#15100b;color:var(--gold-soft);font-size:1.35rem;box-shadow:0 15px 34px rgba(0,0,0,.2)}
.venue-copy h3{margin:24px 0 8px;font-size:2.3rem;font-weight:500}
.venue-copy p{margin:0;color:var(--muted);font-size:1.08rem;line-height:1.65}
.map-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}
.map-actions a{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(42,32,23,.16);border-radius:999px;padding:0 14px;background:#15100b;color:#fff4d7;font-family:var(--sans);font-size:.76rem;font-weight:900;text-decoration:none}
.majestic-pin{display:grid;place-items:center;width:44px!important;height:44px!important;border-radius:999px;background:#15100b;color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.32);font-size:1.2rem}
.program{background:#16100b;color:white}
.program .kicker{color:var(--gold-soft)}.program h2{color:white}
.timeline{position:relative;display:grid;gap:0;margin:46px auto 0;text-align:left}
.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--gold),transparent);opacity:.6}
.timeline article{position:relative;display:grid;grid-template-columns:1fr 76px 1fr;gap:18px;align-items:center;min-height:116px}
.timeline article:nth-child(odd){text-align:right}.timeline article:nth-child(even) b,.timeline article:nth-child(even) h3,.timeline article:nth-child(even) p{grid-column:3}.timeline article:nth-child(even) i{grid-column:2;grid-row:1/4}
.timeline b{font-family:var(--sans);font-size:.76rem;font-weight:900;letter-spacing:.18em;color:var(--gold-soft)}
.timeline i{grid-column:2;grid-row:1/4;width:58px;height:58px;display:grid;place-items:center;justify-self:center;border:1px solid rgba(244,223,173,.38);border-radius:999px;background:#21160d;color:var(--gold-soft);font-family:var(--sans);font-style:normal;font-size:.74rem;font-weight:950;box-shadow:0 0 0 8px #16100b}
.timeline h3{margin:4px 0 0;font-size:1.65rem;font-weight:500;color:#fff7df}.timeline p{margin:3px 0 0;color:rgba(255,255,255,.68);font-size:.96rem;line-height:1.5}
.editorial{background:var(--paper)}
.memories{background:#efe0c4}
.split{display:grid;grid-template-columns:1fr .72fr;gap:32px;align-items:center;text-align:left}.split.reverse{grid-template-columns:.72fr 1fr}
.split img{width:100%;max-height:420px;object-fit:contain;margin:auto;filter:drop-shadow(0 16px 36px rgba(42,32,23,.12))}
.split p:not(.kicker){color:var(--muted);font-size:1.08rem;line-height:1.8}
.rsvp{background:linear-gradient(180deg,#15100b,#24170d);color:white}
.rsvp h2{color:white}.rsvp .kicker{color:var(--gold-soft)}.form-wrap{width:min(720px,100%)}
.envelope{width:172px;margin:0 auto 20px;filter:drop-shadow(0 18px 40px rgba(0,0,0,.28))}
form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;text-align:left}
label{display:grid;gap:7px}label span,.guest-row>span{font-family:var(--sans);font-size:.66rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,244,215,.72)}
input,select,textarea{width:100%;min-height:50px;border:1px solid rgba(244,223,173,.22);border-radius:16px;padding:12px 14px;background:rgba(255,255,255,.08);color:white;outline:none}
select option{color:#16100b}textarea{min-height:96px;resize:vertical}.full,.submit,.notice{grid-column:1/-1}
.guest-row{display:grid;gap:7px}.stepper{display:grid;grid-template-columns:48px 1fr 48px;gap:8px}.stepper button{border:1px solid rgba(244,223,173,.26);border-radius:16px;background:rgba(255,255,255,.08);color:#fff4d7;font-family:var(--sans);font-size:1.25rem;font-weight:950}.stepper input{text-align:center;font-family:var(--sans);font-weight:900}
.submit{min-height:52px;border:0;border-radius:999px;background:linear-gradient(135deg,#fff0c4,var(--gold));color:#1a1209;font-family:var(--sans);font-weight:950;box-shadow:0 20px 60px rgba(217,182,107,.18)}
.notice{min-height:22px;color:#fff0c4;text-align:center;font-family:var(--sans);font-weight:850}
.footer{padding:78px 18px 112px;background:var(--paper);text-align:center}.footer img{width:132px;margin:0 auto 18px}.footer strong{display:block;font-size:clamp(3rem,12vw,6rem);font-weight:500;line-height:.88}.footer span{display:block;margin-top:12px;font-family:var(--sans);font-size:.72rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
@media(max-width:760px){
  .intro-tap{font-size:.62rem;padding:0 16px}.hero-content{padding:84px 14px 36px}.badge{width:96px}.hero h1{font-size:clamp(4.2rem,21vw,6.8rem)}.hero-actions{margin-top:28px}
  .countdown{padding:58px 10px}.count-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.count-grid div{min-height:78px;border-radius:14px}.count-grid strong{font-size:clamp(1.55rem,7.2vw,2.25rem)}.count-grid span{font-size:.49rem;letter-spacing:.08em}
  .section{padding:66px 14px}h2{font-size:clamp(3.1rem,16vw,5rem)}.venue-card,.split,.split.reverse,form{grid-template-columns:1fr}.venue-copy,.map{min-height:300px}.venue-copy{padding:24px}.map-actions{display:grid}
  .timeline:before{left:29px}.timeline article,.timeline article:nth-child(even){grid-template-columns:58px 1fr;gap:14px;text-align:left;min-height:108px}.timeline article b,.timeline article h3,.timeline article p,.timeline article:nth-child(even) b,.timeline article:nth-child(even) h3,.timeline article:nth-child(even) p{grid-column:2}.timeline article i,.timeline article:nth-child(even) i{grid-column:1;grid-row:1/4;width:50px;height:50px;box-shadow:0 0 0 7px #16100b}
  .sound{right:12px;bottom:12px;width:50px;height:50px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}
