:root{--ink:#f9f0df;--gold:#d9b978;--night:#161b42;--soft:#c9c5e2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;text-align:center}a{color:inherit}p{font-size:20px;line-height:1.5}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(38px,5vw,62px);font-weight:400;line-height:1.02}h2 em{font-weight:400}.section{padding:110px 24px}.eyebrow,.small{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#ead6a3}.hero{position:relative;min-height:100svh;background:#191e4a;display:grid;place-items:center;overflow:hidden}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,20,53,.47),rgba(16,20,53,.12) 42%,rgba(16,20,53,.62) 78%,#171b42)}.hero-content{position:relative;z-index:1;padding:80px 20px 95px;text-shadow:0 2px 25px #111532}.hero h1{font-size:clamp(58px,10vw,116px);font-weight:400;line-height:.78;margin:20px 0 30px}.hero h1 em{font-family:'Great Vibes',cursive;font-weight:400;font-size:1.05;color:#f8e6bc}.star{font-size:32px;color:var(--gold)}.hero-copy{font-size:clamp(20px,3vw,27px);font-style:italic}.scroll-cue{display:inline-flex;margin-top:50px;gap:18px;align-items:center;text-decoration:none;font-size:10px;letter-spacing:.22em}.scroll-cue b{font-size:24px;font-weight:400}.hero-bottom{position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(transparent,#171b42)}.ornament{color:var(--gold);font-size:22px;margin-bottom:35px}.script{font-family:'Great Vibes',cursive;color:var(--gold);font-size:clamp(36px,5vw,52px);line-height:1;margin-bottom:18px}.invitation{background:radial-gradient(ellipse at center,#2a305d,#171b42 70%)}.invitation p:not(.script):not(.small):not(.hint){color:#e1dcea}.divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:30px auto;color:var(--gold)}.divider:before,.divider:after{content:'';width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.divider:after{transform:rotate(180deg)}.names{font-size:clamp(42px,6vw,70px);margin:44px 0 25px}.names i{font-family:'Great Vibes',cursive;color:var(--gold)}.date{font-size:30px;letter-spacing:.08em}.date span{color:var(--gold);padding:0 8px}.hint{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.02em;opacity:.55;margin-top:24px}.story{min-height:630px;display:grid;place-items:center;background:linear-gradient(90deg,rgba(17,20,52,.8),rgba(17,20,52,.42),rgba(17,20,52,.8)),url('assets/winter-palace.png') center 65%/cover fixed}.story-inner{max-width:650px}.story-inner p:last-child{max-width:470px;margin:auto}.program{background:#f2e7d7;color:#34304a}.program .intro{color:#716779}.timeline{max-width:650px;margin:65px auto 0;text-align:left}.timeline article{display:grid;grid-template-columns:100px 40px 1fr;position:relative;min-height:155px}.timeline article:not(:last-child):after{content:'';position:absolute;left:119px;top:30px;bottom:0;width:1px;background:#bba16f}.time{font-size:27px;color:#836e4d}.node{color:#a5854c;font-size:20px;z-index:1}.timeline h3,.details h3{font-size:30px;font-weight:500;margin-bottom:6px}.timeline p{font-size:18px;color:#776d78;max-width:360px}.place{background:linear-gradient(#191d45aa,#191d45cc),url('assets/winter-palace.png') center/cover}.paper{max-width:620px;margin:auto;padding:13px;background:#edddbf;color:#48362f;box-shadow:0 12px 50px #090b27aa}.paper-border{border:1px solid #b6905e;padding:65px 25px;outline:1px solid #bb9a72;outline-offset:-8px}.paper .script{color:#927039}.paper-star{color:#a67c48;font-size:36px}.paper h2{font-size:clamp(36px,5vw,54px);margin-top:20px}.map-link{display:inline-block;background:#263e39;color:#fff5dc;padding:15px 24px;text-decoration:none;letter-spacing:.08em;font-size:14px;margin-top:15px}.map-link span{padding-left:15px}.details{background:#20244d}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;max-width:850px;margin:60px auto 0}.details-grid article>span{color:var(--gold);font-size:30px}.details-grid p{color:var(--soft)}.swatches{display:flex;justify-content:center;gap:10px}.swatches i{display:block;width:30px;height:30px;border-radius:50%;background:#e7ddcc}.swatches i:nth-child(2){background:#a7bbcc}.swatches i:nth-child(3){background:#aaa3c1}.swatches i:nth-child(4){background:#384267}.rsvp{background:radial-gradient(circle at top,#505280,#1c214c 65%)}.rsvp-card{max-width:650px;margin:auto;padding:65px clamp(24px,6vw,65px);background:#f1e5d8;color:#443b48;text-align:left;box-shadow:0 20px 70px #10142f70}.rsvp-card>.script,.rsvp-card>h2,.rsvp-card>p{text-align:center}.rsvp-card .script{color:#a27d45}.rsvp-card>p{font-size:18px}form{margin-top:40px}label,legend{font-size:18px}input[type=text],input:not([type]),textarea{width:100%;display:block;border:0;border-bottom:1px solid #a99a96;background:transparent;padding:12px 0;font:18px 'Cormorant Garamond',Georgia,serif;color:#302b3a;border-radius:0}textarea{resize:vertical}fieldset{border:0;padding:25px 0;margin:0}fieldset label{display:block;margin:12px 0}input[type=radio]{accent-color:#736079;margin-right:8px}button{border:0;background:#292d50;color:#fff5e2;font:16px 'Cormorant Garamond',Georgia,serif;letter-spacing:.08em;padding:16px 24px;margin-top:25px;cursor:pointer}button span{margin-left:25px}.form-note{font:12px/1.5 Arial,sans-serif;opacity:.65;margin:15px 0}.response{margin-top:25px}.response button{margin-top:12px}#copy-status{font-size:16px;margin-left:10px}footer{padding:90px 20px 50px;background:#131735}footer>span{color:var(--gold)}footer .script{margin:25px 0 15px}footer a{display:inline-block;margin-top:30px;font-size:11px;letter-spacing:.2em;text-decoration:none}.snow{position:fixed;inset:0;pointer-events:none;z-index:5;background-image:radial-gradient(2px 2px at 20px 30px,#fff9,transparent),radial-gradient(1px 1px at 90px 120px,#fff9,transparent),radial-gradient(2px 2px at 160px 50px,#fffa,transparent);background-size:220px 240px;opacity:.4;animation:snow 18s linear infinite}@keyframes snow{to{background-position:60px 480px}}@media(max-width:600px){.section{padding:80px 22px}.hero{min-height:100svh}.hero h1{font-size:62px}.story{background-attachment:scroll;min-height:500px}.details-grid{grid-template-columns:1fr;gap:35px}.timeline article{grid-template-columns:70px 35px 1fr}.timeline article:not(:last-child):after{left:87px}.time{font-size:22px}.timeline h3{font-size:25px}.paper-border{padding:55px 15px}.rsvp-card{padding:55px 25px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.snow{animation:none}}

/* The opening gesture unlocks audio on phones and starts the winter scene. */
body.is-closed{overflow:hidden}.welcome{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:linear-gradient(180deg,#14183ce0,#161a40e8),url('assets/winter-palace.png') center/cover;transition:opacity 1.1s ease,visibility 1.1s ease}.welcome[hidden]{display:none}.invitation-open .welcome{opacity:0;visibility:hidden;pointer-events:none}.welcome-inner{padding:30px 24px;text-shadow:0 2px 22px #131735}.welcome-ornament{color:var(--gold);font-size:22px;margin-bottom:45px}.welcome-kicker{font-size:11px;letter-spacing:.26em;color:#ead6a3}.welcome-title{font-size:clamp(60px,10vw,105px);line-height:.78;margin:40px 0}.welcome-title em{display:inline-block;font-family:'Great Vibes',cursive;font-weight:400;color:#f5dfb2}.welcome-copy{font-size:21px;font-style:italic}.open-invitation{border:1px solid #d5bb82;background:#e2c995;color:#29243d;margin-top:30px;padding:19px 28px;font-size:17px;transition:background .2s,transform .2s}.open-invitation:hover{background:#f3deae;transform:translateY(-2px)}.welcome-note{font-size:13px;color:#d6d2e4;margin-top:20px}.sound-toggle{position:fixed;right:20px;top:20px;z-index:10;margin:0;border:1px solid #ebd9ae88;background:#171b42b8;border-radius:50px;padding:10px 14px;font-size:18px;backdrop-filter:blur(10px)}.sound-toggle[hidden]{display:none}.sound-toggle span{font-size:12px;letter-spacing:.05em;margin-left:4px}.winter-scene,.scene-layer{position:absolute;inset:0}.winter-scene{overflow:hidden}.scene-layer{background-image:url('assets/winter-palace.png');background-position:center 48%;background-size:cover;background-repeat:no-repeat;transform-origin:center}.scene-sky{transform:scale(1.04);animation:sky-drift 26s ease-in-out infinite alternate}.scene-palace{clip-path:polygon(0 25%,100% 25%,100% 69%,0 69%);mask-image:linear-gradient(transparent 22%,#000 34%,#000 58%,transparent 72%);animation:palace-drift 18s ease-in-out infinite alternate}.scene-road{clip-path:polygon(22% 51%,78% 51%,100% 100%,0 100%);mask-image:linear-gradient(transparent 48%,#000 67%);animation:road-drift 14s ease-in-out infinite alternate}.scene-snowbanks{clip-path:polygon(0 58%,27% 62%,40% 100%,0 100%,0 58%,100% 58%,100% 100%,60% 100%,73% 62%);mask-image:linear-gradient(transparent 57%,#000 75%);animation:snowbanks-drift 11s ease-in-out infinite alternate}.hero-shade{z-index:1}.hero-content{z-index:2}.hero-bottom{z-index:2}@keyframes sky-drift{from{transform:scale(1.04) translateY(0)}to{transform:scale(1.08) translateY(-.8%)}}@keyframes palace-drift{from{transform:scale(1.01) translateY(.3%)}to{transform:scale(1.045) translateY(-.5%)}}@keyframes road-drift{from{transform:scale(1.01) translateY(0)}to{transform:scale(1.06) translateY(1%)}}@keyframes snowbanks-drift{from{transform:scale(1.02) translateX(-.4%)}to{transform:scale(1.09) translateX(.5%)}}@media(prefers-reduced-motion:reduce){.scene-layer{animation:none}.welcome{transition:none}}
