:root{--ink:#3c4137;--sage:#73806b;--deep:#465342;--blush:#d9a89c;--ivory:#f8f3eb;--paper:#fffaf3;--gold:#b7905f;--line:rgba(60,65,55,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:"DM Sans",sans-serif;font-weight:300}body.locked{overflow:hidden}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:"Italiana",serif;font-weight:400}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.68rem;font-weight:600}.cover{position:fixed;inset:0;z-index:100;background:#eee6db;display:grid;place-items:center;text-align:center;overflow:hidden;transition:opacity 1s,visibility 1s}.cover.opened{opacity:0;visibility:hidden}.cover-art,.hero-bg,.rsvp-art{position:absolute;inset:0;background:url("assets/floral-frame.png") center/cover no-repeat}.cover-art:after,.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,243,235,.12),rgba(248,243,235,.6) 45%,rgba(248,243,235,.12))}.cover-content{position:relative;z-index:2;width:min(90%,520px);animation:rise 1.2s ease both}.cover h1{font-size:clamp(4rem,10vw,7rem);line-height:.8;margin:28px 0 22px;color:var(--deep)}.cover h1 span,.hero h2 i,footer h2 i{font-family:"Mrs Saint Delafield",cursive;color:var(--blush);font-size:1.1em}.cover-date{letter-spacing:.45em;font-size:.78rem}.guest-card{display:flex;flex-direction:column;gap:5px;margin:28px auto;width:min(340px,90%);padding:17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.guest-card strong{font-family:"Italiana";font-size:1.25rem}.guest-card small{opacity:.62}.primary{border:0;background:var(--deep);color:#fff;padding:16px 26px;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;cursor:pointer;transition:.3s}.primary:hover{background:var(--blush);transform:translateY(-2px)}.primary span{margin-right:8px}.swipe-hint{position:absolute;bottom:20px;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;opacity:.6}.nav{height:72px;position:fixed;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(248,243,235,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transform:translateY(-100%);transition:.5s}.nav.visible{transform:none}.monogram{text-decoration:none;color:var(--ink);font-family:"Italiana";font-size:1.7rem}.monogram span{color:var(--blush)}.nav-links{display:flex;gap:30px}.nav-links a{color:var(--ink);text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:.65rem}.music-btn{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--deep);cursor:pointer}.music-btn.playing{animation:spin 3s linear infinite}.hero{min-height:100svh;display:grid;place-items:center;position:relative;text-align:center;overflow:hidden}.hero-bg{filter:saturate(.85);transform:scale(1.02)}.hero-copy{z-index:1;width:min(620px,84%)}.hero h2{font-size:clamp(4rem,12vw,8rem);line-height:.8;margin:30px 0;color:var(--deep)}.fine-line{display:flex;align-items:center;justify-content:center;gap:18px;margin:30px auto}.fine-line b{font-size:.75rem;letter-spacing:.35em;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:3px 18px}.fine-line span{font-family:"Italiana";font-size:1.2rem}.intro{line-height:1.8;max-width:520px;margin:0 auto 24px}.text-link{color:var(--deep);text-underline-offset:6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.18em}.scroll-note{position:absolute;right:2vw;bottom:5vh;writing-mode:vertical-rl;font-size:.6rem;letter-spacing:.25em}.quote{padding:140px 20px;text-align:center;background:var(--deep);color:#f8f1e6}.quote blockquote{font-family:"Italiana";font-size:clamp(1.55rem,3vw,2.45rem);line-height:1.55;max-width:850px;margin:30px auto}.quote p{font-size:.7rem;letter-spacing:.2em}.line-art{font-size:2.2rem;color:var(--blush)}.couple{padding:120px 6vw;background:var(--paper)}.section-title{text-align:center;margin-bottom:70px}.section-title h2{font-size:clamp(2.5rem,6vw,4.8rem);line-height:1.08}.section-title em{font-family:"Mrs Saint Delafield";font-size:1.25em;color:var(--blush)}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:4vw;align-items:center;max-width:1050px;margin:auto}.person{text-align:center}.portrait{height:520px;background:linear-gradient(145deg,#9b8979,#d6c1ad);display:grid;place-items:center;position:relative;overflow:hidden}.portrait:before{content:"";position:absolute;width:70%;height:75%;border-radius:50% 50% 8% 8%;background:radial-gradient(circle at 50% 25%,#d8b3a0 0 10%,transparent 11%),linear-gradient(120deg,#6d695c,#d9c4ae);opacity:.72}.portrait.groom{background:linear-gradient(145deg,#788477,#c3bca9)}.portrait span{position:absolute;z-index:2;color:rgba(255,255,255,.65);font-family:"Italiana";font-size:5rem;letter-spacing:.1em}.role{margin:25px 0 8px;font-size:.65rem;letter-spacing:.25em}.person h3{font-size:2rem;margin-bottom:10px}.person p{font-size:.85rem;line-height:1.7}.person a{color:var(--sage);font-size:.75rem}.ampersand{font-family:"Mrs Saint Delafield";font-size:6rem;color:var(--blush)}.story-block{display:grid;grid-template-columns:1fr 1fr;min-height:720px}.story-photo{background:linear-gradient(rgba(70,83,66,.22),rgba(70,83,66,.22)),url("assets/floral-frame.png") left center/cover;display:grid;place-items:center}.story-photo span{font-family:"Italiana";font-size:clamp(4rem,9vw,8rem);line-height:.75;color:white;text-align:center;text-shadow:0 2px 30px rgba(0,0,0,.2)}.story-copy{background:#e7dfd2;padding:11vw 8vw;display:flex;flex-direction:column;justify-content:center}.story-copy h2{font-size:clamp(2rem,4vw,3.7rem);line-height:1.2}.timeline{border-left:1px solid var(--gold);margin-top:30px;padding-left:30px}.timeline div{position:relative;margin:0 0 28px}.timeline div:before{content:"";width:7px;height:7px;background:var(--gold);border-radius:50%;position:absolute;left:-34px;top:8px}.timeline b{font-family:"Italiana";font-size:1.2rem}.timeline p{font-size:.85rem;line-height:1.65;margin-top:5px}.event{padding:120px 6vw;background:#f4eee4}.countdown{display:flex;align-items:center;justify-content:center;gap:2.5vw;margin:-30px 0 70px}.countdown div{text-align:center}.countdown strong{font-family:"Italiana";font-size:clamp(2.2rem,6vw,5rem);font-weight:400;display:block}.countdown span{font-size:.6rem;text-transform:uppercase;letter-spacing:.2em}.countdown i{font-family:"Italiana";font-size:2rem;color:var(--blush)}.event-cards{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;margin:auto}.event-card{padding:70px;background:var(--paper);position:relative;text-align:center;border:1px solid var(--line)}.event-card.featured{background:var(--deep);color:#fff;transform:translateY(25px)}.event-no{position:absolute;top:24px;left:28px;font-family:"Italiana";font-size:1.5rem;color:var(--blush)}.event-card h3{font-size:1.75rem}.event-card hr{border:0;border-top:1px solid currentColor;opacity:.2;margin:25px}.event-card p{line-height:1.8}.outline-btn{display:inline-block;margin-top:16px;padding:14px 20px;border:1px solid currentColor;color:inherit;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:.62rem}.gallery{padding:145px 4vw 120px;background:var(--paper)}.gallery-grid{display:grid;grid-template-columns:1.1fr .8fr 1fr;grid-template-rows:260px 360px;gap:12px;max-width:1200px;margin:auto}.gallery-grid button{border:0;cursor:pointer;background:linear-gradient(135deg,#8b907d,#dcc1ad);position:relative;overflow:hidden}.gallery-grid button:after{content:"";position:absolute;inset:0;background:url("assets/floral-frame.png") center/cover;mix-blend-mode:soft-light;transition:.5s}.gallery-grid button:hover:after{transform:scale(1.06)}.gallery-grid span{position:relative;z-index:2;font-family:"Mrs Saint Delafield";font-size:3.5rem;color:white}.g1{grid-row:1/3}.g2{background:linear-gradient(135deg,#c8a89f,#706f61)!important}.g3{grid-row:1/3;background:linear-gradient(135deg,#60705c,#cdb9aa)!important}.g4{background:linear-gradient(135deg,#a18c82,#e2cfc0)!important}.g5{background:linear-gradient(135deg,#d7b4a8,#727868)!important}.rsvp{min-height:900px;position:relative;display:grid;place-items:center;padding:100px 20px;overflow:hidden}.rsvp-art{filter:saturate(.75);transform:scale(1.03)}.rsvp-card{position:relative;width:min(600px,95%);background:rgba(255,250,243,.94);backdrop-filter:blur(10px);padding:60px;text-align:center;box-shadow:0 30px 80px rgba(64,55,45,.16)}.rsvp-card h2{font-size:2.8rem;margin-bottom:12px}.rsvp-card>p:not(.eyebrow){font-size:.85rem;line-height:1.6}.rsvp form{text-align:left;margin-top:30px}.rsvp label{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:.6rem;margin:15px 0}.rsvp input,.rsvp select,.rsvp textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;font:inherit;font-size:.9rem;color:var(--ink);outline:0}.rsvp textarea{resize:vertical}.rsvp form .primary{width:100%;margin-top:20px}.success{display:none;margin-top:30px;padding:20px;background:#e8efe4;line-height:1.7}.success.show{display:block}footer{background:var(--deep);color:#f8f1e6;text-align:center;padding:100px 20px}footer h2{font-size:clamp(3rem,8vw,6rem);margin:15px}footer p{line-height:1.8;font-size:.85rem}.footer-rule{width:80px;border-top:1px solid var(--blush);margin:35px auto}footer small{letter-spacing:.13em}.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s,transform .9s}.reveal.in{opacity:1;transform:none}.petal{position:fixed;z-index:50;top:-40px;width:12px;height:18px;border-radius:80% 20% 70% 30%;background:#d9a89c;opacity:.55;pointer-events:none;animation:fall linear forwards}.toast{position:fixed;z-index:200;left:50%;bottom:30px;transform:translate(-50%,120px);background:var(--deep);color:#fff;padding:14px 20px;font-size:.8rem;transition:.4s}.toast.show{transform:translate(-50%,0)}dialog{border:0;padding:0;width:min(86vw,700px);height:min(80vh,760px);background:var(--ivory)}dialog::backdrop{background:rgba(33,39,31,.84);backdrop-filter:blur(8px)}dialog div{width:100%;height:100%;background:url("assets/floral-frame.png") center/cover}dialog button{position:absolute;right:15px;top:12px;z-index:2;border:0;background:rgba(255,255,255,.8);font-size:1.5rem;width:42px;height:42px;cursor:pointer}@keyframes rise{from{opacity:0;transform:translateY(24px)}}@keyframes fall{to{transform:translate(70px,110vh) rotate(520deg);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.nav{padding:0 18px}.nav-links{display:none}.cover-art,.hero-bg{background-position:58% center}.cover h1{font-size:4.4rem}.hero h2{font-size:4.7rem}.scroll-note{display:none}.quote{padding:100px 24px}.couple{padding:90px 24px}.couple-grid{grid-template-columns:1fr}.portrait{height:430px}.ampersand{font-size:4rem}.story-block{grid-template-columns:1fr}.story-photo{min-height:520px}.story-copy{padding:90px 30px}.countdown{gap:3vw}.countdown strong{font-size:2.4rem}.countdown i{font-size:1rem}.event{padding:90px 20px}.event-cards{grid-template-columns:1fr}.event-card{padding:60px 25px}.event-card.featured{transform:none}.gallery{padding:100px 14px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:320px 190px 260px}.g1{grid-row:1/2;grid-column:1/3}.g3{grid-row:3;grid-column:1/3}.rsvp-card{padding:45px 24px}.rsvp-card h2{font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.petals{display:none}}

/* Cinematic cover inspired by the supplied motion reference */
.cover{background:#d9cbb4}.cover .cover-art{inset:-4%;filter:saturate(.75) sepia(.08);animation:scenicDrift 18s ease-in-out infinite alternate}.cover .cover-art:after{background:linear-gradient(rgba(239,223,193,.18),rgba(99,112,89,.18)),radial-gradient(ellipse at center,rgba(248,243,235,.2),rgba(93,101,79,.15));backdrop-filter:blur(1px)}.cover-scenery{position:absolute;inset:25% 0 0;opacity:.28;filter:blur(2px);overflow:hidden}.cover-scenery i{position:absolute;bottom:-16%;width:55%;height:58%;border-radius:50% 50% 0 0;background:#76806d}.cover-scenery i:nth-child(1){left:-8%}.cover-scenery i:nth-child(2){left:27%;height:72%;background:#89917c}.cover-scenery i:nth-child(3){right:-12%;height:48%;background:#66735f}.cover-blooms{position:absolute;z-index:1;width:42vw;height:50vh;background:url("assets/floral-frame.png") left bottom/125% auto no-repeat;filter:saturate(1.05);transform-origin:bottom left;animation:sway 7s ease-in-out infinite}.bloom-left{left:-7vw;bottom:-7vh}.bloom-right{right:-7vw;top:-8vh;transform:rotate(180deg);transform-origin:top right;animation-name:swayRight}.cover-content{width:min(88%,360px);padding:24px 34px 28px;background:rgba(255,253,247,.82);border:1px solid rgba(255,255,255,.8);border-radius:5px;box-shadow:0 24px 70px rgba(50,54,42,.25);backdrop-filter:blur(14px);animation:cardFloat 5s ease-in-out infinite}.cover-content>.eyebrow{margin-bottom:12px}.cover-photo{width:150px;height:170px;margin:auto;padding:5px;border:1px solid rgba(183,144,95,.55);border-radius:75px 75px 8px 8px}.cover-photo>div{height:100%;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:70px 70px 5px 5px;background:linear-gradient(145deg,#647062,#d4b9a4);color:rgba(255,255,255,.86);font-family:"Italiana";font-size:2.9rem;text-shadow:0 2px 15px rgba(0,0,0,.2);overflow:hidden;position:relative}.cover-photo>div:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.18),transparent 70%);animation:shine 4s ease-in-out infinite}.cover-photo i{font-family:"Mrs Saint Delafield";font-size:2.1rem;color:#f3d3c8}.cover h1{font-size:clamp(2.6rem,5vw,4rem);margin:17px 0 12px}.cover-date{font-size:.68rem;margin-bottom:10px}.cover .guest-card{gap:2px;margin:10px auto 13px;width:min(300px,95%);padding:9px}.cover .guest-card strong{font-size:1rem}.cover .guest-card small{font-size:.62rem}.cover .primary{padding:12px 18px;font-size:.58rem;border-radius:20px}.cover .swipe-hint{z-index:3;bottom:14px;font-size:.56rem;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.5)}
@keyframes scenicDrift{to{transform:scale(1.045) translate3d(-1%,1%,0)}}@keyframes sway{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(2deg) scale(1.02)}}@keyframes swayRight{0%,100%{transform:rotate(178deg)}50%{transform:rotate(182deg) scale(1.02)}}@keyframes cardFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes shine{0%,35%{transform:translateX(-130%)}70%,100%{transform:translateX(130%)}}
@media(max-width:760px){.cover-content{padding:20px 24px 23px;width:min(86%,335px)}.cover-photo{width:128px;height:145px}.cover h1{font-size:2.8rem}.cover-blooms{width:65vw;height:42vh}.bloom-left{left:-20vw}.bloom-right{right:-20vw}}
