:root{--gold:#d4b062;--gold2:#a8842f;--cream:#fbf4e6;--maroon:#7a2232;--sage:#6f8a63;--navy:#0b1026;
--ink:#f6ecd6;--ink-soft:rgba(246,236,214,.75);--card:rgba(12,16,40,.42);--card-b:rgba(212,176,98,.35);
--serif:"Cormorant Garamond",Georgia,serif;--script:"Great Vibes",cursive;--caps:"Cinzel",serif}
body.day{--ink:#4a1a24;--ink-soft:rgba(74,26,36,.78);--card:rgba(255,250,240,.55);--card-b:rgba(168,132,47,.45)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.55;transition:color .8s}
#sky{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(0,0,0,.28))}
main,footer,.nav{position:relative;z-index:2}
.nav{position:fixed;top:0;left:0;right:0;display:flex;gap:1.1rem;justify-content:center;padding:.7rem 1rem;font-family:var(--caps);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;overflow-x:auto;scrollbar-width:none;backdrop-filter:blur(6px);background:linear-gradient(var(--card),transparent)}
.nav a{color:var(--ink);text-decoration:none;opacity:.85;white-space:nowrap}.nav a:hover{opacity:1;color:var(--gold)}
.nav-cta{border:1px solid var(--gold);padding:.15rem .6rem;border-radius:99px}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4.5rem 1.2rem 5rem;text-shadow:0 2px 18px rgba(0,0,0,.35)}
body.day .hero{text-shadow:0 1px 14px rgba(255,248,230,.7)}
.monogram{width:min(46vw,200px);height:auto;filter:drop-shadow(0 0 18px rgba(212,176,98,.35))}
.mono-txt{font-family:var(--script);font-size:78px;fill:url(#gold)}
.kicker{font-family:var(--caps);letter-spacing:.3em;font-size:.72rem;text-transform:uppercase;margin:1.2rem 0 .2rem;color:var(--ink-soft)}
.names{font-family:var(--script);font-weight:400;font-size:clamp(3.2rem,13vw,7.5rem);line-height:1;margin:.2rem 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .3em}
.names em{font-style:normal;color:var(--gold);font-size:.7em}
.dates{font-family:var(--caps);letter-spacing:.25em;margin:.6rem 0 0;font-size:clamp(.95rem,3.6vw,1.25rem)}
.dates span{color:var(--gold);font-size:1.3em}
.place{font-family:var(--caps);letter-spacing:.18em;font-size:.8rem;margin:.3rem 0;color:var(--ink-soft)}
.tagline{font-style:italic;font-size:1.15rem;margin:.8rem 0 1rem}
.countdown{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.countdown .u{min-width:4.2rem;padding:.5rem .4rem;border:1px solid var(--card-b);border-radius:12px;background:var(--card);backdrop-filter:blur(6px)}
.countdown b{display:block;font-family:var(--caps);font-size:1.6rem;font-weight:400;color:var(--gold)}
.countdown small{font-family:var(--caps);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase}
.countdown .msg{margin:0;font-family:var(--script);font-size:2rem;color:var(--gold)}
.sky-note{font-size:.9rem;font-style:italic;color:var(--ink-soft);margin:.8rem 0 0}
.scroll-cue{position:absolute;bottom:1.2rem;color:var(--ink-soft);text-decoration:none;font-family:var(--caps);font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.4rem}
.scroll-cue span{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:cue 2s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}100%{transform:scaleY(0);transform-origin:bottom}}
.chapter{min-height:90svh;display:flex;align-items:center;justify-content:center;padding:4rem 1rem}
.chapter.step{min-height:70svh}
.interlude{min-height:80svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem}
.interlude p{font-family:var(--script);font-size:clamp(2.2rem,8vw,4rem);margin:0;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.card{width:min(100%,760px);background:var(--card);border:1px solid var(--card-b);border-radius:22px;padding:2rem 1.4rem;text-align:center;backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px);box-shadow:0 20px 60px rgba(0,0,0,.18);transition:background .8s,border-color .8s;opacity:0;transform:translateY(30px)}
.card.in{opacity:1;transform:none;transition:opacity 1s,transform 1s,background .8s}
.card.mini{width:min(100%,460px)}
.eyebrow{font-family:var(--caps);letter-spacing:.28em;text-transform:uppercase;font-size:.72rem;color:var(--gold);margin:0}
body.day .eyebrow{color:var(--gold2)}
h2{font-family:var(--script);font-weight:400;font-size:clamp(2.8rem,10vw,4.4rem);margin:.2rem 0 .4rem;line-height:1.1}
h3{font-family:var(--caps);font-weight:400;letter-spacing:.12em;font-size:1rem;margin:.2rem 0}
.lead{font-size:1.2rem;font-style:italic}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:1.2rem 0 0}
.facts div{border-top:1px solid var(--card-b);padding-top:.6rem}
dt{font-family:var(--caps);font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft)}dd{margin:0;font-size:1.25rem}
.time{font-family:var(--caps);font-size:2rem;color:var(--gold)}body.day .time{color:var(--gold2)}
.venue-line{font-family:var(--caps);letter-spacing:.2em}
.story-grid{display:grid;gap:1.2rem;margin-top:1.2rem;text-align:left}
.placeholder-tag{display:inline-block;font-family:var(--caps);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;border:1px dashed currentColor;border-radius:99px;padding:.2rem .7rem;opacity:.75}
.hashtag{font-family:var(--caps);letter-spacing:.2em;color:var(--gold);margin-top:1.4rem}
.halls{list-style:none;padding:0}
.btn{display:inline-block;background:linear-gradient(135deg,#e7c97a,#b58d34);color:#3b1219;border:0;border-radius:99px;padding:.75rem 1.6rem;font-family:var(--caps);letter-spacing:.15em;font-size:.8rem;text-decoration:none;cursor:pointer;box-shadow:0 6px 24px rgba(212,176,98,.35)}
.note{margin-top:1rem}
.fam{display:grid;gap:1rem;margin-top:1rem}.fam h3{font-family:var(--script);font-size:2.4rem;letter-spacing:0;text-transform:none}
.fam .amp{font-family:var(--script);font-size:2.6rem;color:var(--gold)}.gp{font-size:.95rem;color:var(--ink-soft)}
.rsvp{display:grid;gap:.9rem;text-align:left;margin-top:1rem}
.rsvp label{display:grid;gap:.3rem;font-family:var(--caps);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}
.rsvp input,.rsvp textarea{font:inherit;font-family:var(--serif);font-size:1.05rem;text-transform:none;letter-spacing:0;padding:.6rem .8rem;border-radius:10px;border:1px solid var(--card-b);background:rgba(255,255,255,.1);color:var(--ink)}
.rsvp fieldset{border:1px solid var(--card-b);border-radius:12px}.rsvp legend{font-family:var(--caps);font-size:.7rem;letter-spacing:.15em}
.rsvp .chk{display:flex;align-items:center;gap:.5rem}.rsvp .chk input{width:auto}.ok{color:var(--gold)}
.footer{text-align:center;padding:4rem 1rem 3rem;font-family:var(--caps);font-size:.75rem;letter-spacing:.15em}
.footer .script{font-family:var(--script);font-size:2.6rem;letter-spacing:0;color:var(--gold);margin:0}
.footer .from{color:var(--ink-soft)}
@media (min-width:760px){.card{padding:3rem 3.2rem}.story-grid{grid-template-columns:repeat(3,1fr)}.fam{grid-template-columns:1fr auto 1fr;align-items:center}.chapter.step:nth-of-type(odd){justify-content:flex-start;padding-left:10vw}.chapter.step:nth-of-type(even){justify-content:flex-end;padding-right:10vw}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{opacity:1;transform:none;transition:none}.scroll-cue span{animation:none}}
body.day .countdown .msg,body.day .countdown b,body.day .dates span{color:#9a6f1e}
@media (max-width:759px){.nav{justify-content:flex-start}}
