:root{--crimson:#8b1538;--gold:#c8a96b;--ivory:#fff8f2;--charcoal:#2b2729;--blush:#e8c7c9;--taupe:#b8a6a0;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-size:16px;overflow-x:hidden}body.locked{overflow:hidden}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif)}button,input,select,textarea{font:inherit}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;background:#21181a;color:white}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-photo{object-position:center 42%}.hero-shade{background:linear-gradient(180deg,rgba(28,13,17,.18),rgba(28,13,17,.08) 38%,rgba(28,13,17,.72))}.brand-mark{position:absolute;z-index:2;top:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:.68rem;letter-spacing:.22em;white-space:nowrap}.seal{width:37px;height:37px;border:1px solid var(--gold);border-radius:50%;display:inline-grid;place-items:center;color:var(--gold);font-family:var(--serif);font-weight:700;letter-spacing:-.07em;position:relative}.seal:after{content:'✦';position:absolute;font-size:6px;top:1px;right:2px}.hero-copy{position:absolute;z-index:2;bottom:70px;text-align:center;width:100%;padding:0 20px;transition:opacity .7s,transform .7s}.hero-copy h1{font-weight:500;font-size:clamp(3.2rem,12vw,7rem);line-height:.84;margin:.4rem 0 1rem;text-shadow:0 2px 30px rgba(0,0,0,.22)}.hero-copy h1 i{font-weight:400;color:var(--gold);font-size:.72em}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.24em;font-size:.7rem;font-weight:600}.date{letter-spacing:.32em;font-size:.8rem}.unlock{position:fixed;z-index:20;inset:0;border:0;width:100%;height:100%;background:radial-gradient(circle at 50% 42%,#fffdf9 0,#fff8f2 35%,#f3dfd8 100%);color:var(--charcoal);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:opacity 1.1s,visibility 1.1s}.unlock:before,.unlock:after{content:'';position:absolute;width:70vw;height:70vw;max-width:470px;max-height:470px;border:1px solid rgba(200,169,107,.35);border-radius:50%;animation:pulse 3s ease-in-out infinite}.unlock:after{width:55vw;height:55vw;max-width:370px;max-height:370px;animation-delay:-1.5s}.unlock-seal{z-index:1;width:82px;height:82px;background:var(--crimson);color:var(--gold);border:3px double var(--gold);border-radius:50%;display:grid;place-items:center;font:700 2rem var(--serif);box-shadow:0 14px 35px rgba(139,21,56,.25);margin-bottom:28px}.unlock strong{z-index:1;font:600 clamp(2.4rem,9vw,4.5rem) var(--serif);color:var(--crimson)}.unlock small{z-index:1;margin-top:14px;text-transform:uppercase;letter-spacing:.26em;font-size:.65rem}.opened .unlock{opacity:0;visibility:hidden;pointer-events:none}.scroll-cue{position:absolute;z-index:2;bottom:18px;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;opacity:0}.opened .scroll-cue{animation:fade 1s 1.2s forwards}.music-control{position:fixed;z-index:15;right:18px;top:18px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(200,169,107,.6);background:rgba(255,248,242,.88);color:var(--crimson);box-shadow:0 7px 25px rgba(43,39,41,.1);cursor:pointer;opacity:0;pointer-events:none;transition:.3s}.opened .music-control{opacity:1;pointer-events:auto}.music-control.playing span{display:block;animation:spin 4s linear infinite}.section{padding:100px max(24px,calc((100% - 900px)/2));text-align:center}.kicker{color:var(--crimson);margin-bottom:20px}.kicker.light{color:#ecd8a8}.section h2,.story-copy h2,.countdown-section h2,.venue h2,.rsvp h2{font-size:clamp(2.7rem,7vw,5.4rem);line-height:.95;font-weight:500;margin:0 0 30px}.lead{max-width:650px;margin:0 auto;font:400 clamp(1.25rem,3vw,1.6rem)/1.65 var(--serif)}.ornament{color:var(--gold);font-size:1.4rem;margin:30px}.intro blockquote{max-width:560px;margin:55px auto 0;padding-top:30px;border-top:1px solid var(--blush);font:italic 1.15rem/1.6 var(--serif);color:#6c5c60}.story-section{display:grid;grid-template-columns:1fr 1fr;min-height:680px;background:white}.story-photo{min-height:520px;overflow:hidden}.story-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.story-copy{padding:80px clamp(30px,7vw,110px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left}.story-copy p:last-child{line-height:1.8;color:#62595b}.countdown-section{background:var(--crimson);color:var(--ivory);padding:100px 24px;text-align:center}.countdown{max-width:820px;margin:45px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.18)}.countdown>div{background:var(--crimson);padding:30px 8px}.countdown strong{display:block;font:500 clamp(2.2rem,7vw,4.5rem) var(--serif)}.countdown span{text-transform:uppercase;letter-spacing:.18em;font-size:.6rem;color:#e8d4d8}.events{max-width:none}.event-list{max-width:780px;margin:45px auto 0;border-top:1px solid var(--blush)}.event-list article{display:grid;grid-template-columns:100px 1fr;gap:25px;text-align:left;padding:35px 0;border-bottom:1px solid var(--blush);align-items:center}.event-number{font:500 3.5rem var(--serif);color:var(--gold)}.event-date{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--crimson)}.event-list h3{font-size:2.2rem;margin:3px 0}.event-list article div p:last-child{margin:0;color:#776d70}.venue{min-height:620px;padding:60px;display:grid;place-items:center;background:linear-gradient(rgba(43,39,41,.48),rgba(43,39,41,.58)),url('./assets/couple-hero.png') center 42%/cover fixed}.venue-card{width:min(550px,100%);padding:65px 28px;border:1px solid rgba(255,255,255,.38);background:rgba(71,17,35,.83);backdrop-filter:blur(8px);color:white;text-align:center}.venue-card p{line-height:1.8}.button{display:inline-flex;align-items:center;justify-content:center;margin-top:25px;padding:15px 27px;border:1px solid var(--crimson);background:var(--crimson);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;cursor:pointer;transition:.25s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(43,39,41,.13)}.light-button{border-color:var(--gold);background:transparent;color:white}.dress .lead{max-width:540px}.palette{display:flex;justify-content:center;gap:14px;margin-top:38px}.palette span{width:50px;height:50px;border-radius:50%;border:4px solid white;box-shadow:0 3px 14px rgba(43,39,41,.12)}.palette span:nth-child(1){background:#8b1538}.palette span:nth-child(2){background:#c8a96b}.palette span:nth-child(3){background:#fff1dc}.palette span:nth-child(4){background:#778263}.palette span:nth-child(5){background:#a86f72}.rsvp{padding:100px 24px;background:var(--charcoal);color:white}.rsvp-inner{max-width:630px;margin:auto;text-align:center}.rsvp-inner>p{color:#d6ced0}.rsvp form{margin-top:45px;text-align:left;display:grid;gap:22px}.rsvp label,.rsvp legend{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.rsvp input,.rsvp select,.rsvp textarea{display:block;width:100%;margin-top:8px;border:0;border-bottom:1px solid #746b6e;background:transparent;color:white;padding:13px 3px;border-radius:0;outline:none}.rsvp select option{color:var(--charcoal)}.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{border-color:var(--gold)}.rsvp fieldset{border:0;padding:0;margin:0;display:grid;gap:10px}.rsvp .choice{display:flex;align-items:center;gap:12px;text-transform:none;font-size:.9rem;letter-spacing:0}.rsvp .choice input{width:auto;margin:0;accent-color:var(--gold)}.submit{width:100%;border-color:var(--gold);background:var(--gold);color:var(--charcoal)}.success{display:none;padding:60px 0}.success span{width:65px;height:65px;border-radius:50%;display:grid;place-items:center;margin:auto;background:var(--gold);color:var(--charcoal);font-size:1.7rem}.success h3{font-size:2.8rem;margin:18px 0 5px}.rsvp.done form{display:none}.rsvp.done .success{display:block}.large{width:72px;height:72px;font-size:1.5rem;margin-bottom:35px}.crimson{color:var(--crimson)}.share{background:transparent;color:var(--crimson)}footer{padding:38px 24px;background:#f3e8e3;border-top:1px solid var(--blush);text-align:center;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:.7rem;letter-spacing:.13em}footer span{color:#75696d}.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}@keyframes pulse{50%{transform:scale(1.05);opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade{to{opacity:.8}}@media(max-width:700px){.story-section{grid-template-columns:1fr}.story-photo{height:62vh;min-height:430px}.story-copy{padding:70px 25px}.countdown-section{padding:80px 12px}.countdown>div{padding:23px 2px}.event-list article{grid-template-columns:68px 1fr}.event-number{font-size:2.7rem}.venue{padding:24px;background-attachment:scroll}.venue-card{padding:50px 18px}.palette{gap:7px}.palette span{width:42px;height:42px}.section{padding-top:80px;padding-bottom:80px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
