*{margin:0;padding:0;box-sizing:border-box}
:root{--ink:#f4efe7;--soft:#b3a892;--accent:#d8a657}
html{scroll-behavior:smooth;scroll-snap-type:y proximity}
body{font-family:'Jost',sans-serif;background:#11100f;color:var(--ink);line-height:1.7;font-weight:300;-webkit-font-smoothing:antialiased}
.disp{font-family:'Fraunces',serif}
a{color:inherit;text-decoration:none}
.ribbon{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(0,0,0,.5);color:var(--accent);font-size:11px;letter-spacing:.5px;text-align:center;padding:8px 14px;backdrop-filter:blur(6px)}
.ribbon a{color:#fff;font-weight:500;border-bottom:1px solid var(--accent)}
/* progress rail */
.rail{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:12px}
.rail .dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);transition:.3s}
.rail .dot.on{background:var(--accent);transform:scale(1.5)}
@media(max-width:600px){.rail{display:none}}
/* chapters — full viewport, scroll-snap */
.ch{min-height:100svh;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 24px;position:relative;overflow:hidden}
.ch .bg{position:absolute;inset:0;z-index:0;opacity:.55}
.ch .inner{position:relative;z-index:2;max-width:680px}
.ch .num{font-family:'Fraunces',serif;font-style:italic;color:var(--accent);font-size:1.1rem;letter-spacing:2px;margin-bottom:18px}
.ch .yr{font-family:'Fraunces',serif;font-size:clamp(3rem,12vw,6rem);line-height:1;color:#fff}
.ch h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(1.8rem,6vw,3.2rem);line-height:1.15;margin:10px 0 16px}
.ch p{color:var(--soft);font-size:1.1rem;max-width:520px;margin:0 auto}
.fade{opacity:0;transform:translateY(30px);transition:opacity 1.2s,transform 1.2s}.fade.in{opacity:1;transform:none}
/* specific chapter backgrounds (each visually different gradient scene) */
.bg1{background:radial-gradient(120% 100% at 50% 120%,#3a2c18,#11100f)}
.bg2{background:linear-gradient(160deg,#1a2630,#11100f 70%)}
.bg3{background:linear-gradient(160deg,#2d1822,#11100f 70%)}
.bg4{background:radial-gradient(100% 80% at 50% 0,#2a2410,#11100f 70%)}
.bg5{background:linear-gradient(180deg,#11100f,#1d1407)}
.bg6{background:radial-gradient(120% 100% at 50% -20%,#3a2c18,#11100f)}
/* hero chapter */
.hero .kick{font-size:11px;letter-spacing:6px;text-transform:uppercase;color:var(--accent)}
.hero .names{font-family:'Fraunces',serif;font-size:clamp(3rem,14vw,7rem);line-height:1;color:#fff;margin:18px 0}
.hero .amp{font-style:italic;color:var(--accent);display:block;font-size:.5em;margin:4px 0}
.hero .scroll{margin-top:40px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--soft);animation:bob 2s infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
/* countdown chapter */
.cd{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.cd .u .n{font-family:'Fraunces',serif;font-size:2.6rem;color:#fff}.cd .u .l{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--soft)}
/* details + rsvp + cta */
.btn{display:inline-block;border:1px solid var(--accent);color:var(--accent);padding:13px 30px;border-radius:100px;font-size:.85rem;letter-spacing:1px;cursor:pointer;transition:.3s;background:transparent}
.btn:hover{background:var(--accent);color:#11100f}
.btn-f{background:var(--accent);color:#11100f}
.rsvp form{max-width:420px;margin:24px auto 0;display:flex;flex-direction:column;gap:14px}
.rsvp input,.rsvp select{padding:13px;border:1px solid rgba(216,166,87,.4);border-radius:10px;background:rgba(255,255,255,.04);color:#fff;font-family:inherit}
.rsvp .ok{display:none;color:var(--accent);font-family:'Fraunces',serif;font-style:italic;margin-top:6px}.rsvp .ok.show{display:block}
.foot{text-align:center;padding:30px 24px;font-size:.85rem;color:var(--soft);scroll-snap-align:start}.foot a{color:var(--accent)}
.det{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.det .b{font-size:.95rem}.det .b .k{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.det .b .v{font-family:'Fraunces',serif;font-size:1.3rem;color:#fff}
