:root{--ink:#643d41;--rose:#945267;--cream:#f8eedf;--night:#082332;--gold:#b68b4c;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:#e8d9d0;color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}body.sealed{overflow:hidden}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #b38644;outline-offset:5px}main{max-width:760px;margin:auto;background:var(--cream);overflow:hidden;box-shadow:0 0 100px #62473818}.desktop-note{position:fixed;left:max(28px,calc((100vw - 1160px)/2));top:20vh;display:flex;flex-direction:column;gap:30px;width:140px;color:#8a6660;font:12px/1.9 var(--sans);letter-spacing:2px}.side-monogram{font:36px var(--serif);letter-spacing:0}.side-monogram i{font-size:23px}.vertical-rule{width:1px;height:80px;background:#b89573}.desktop-note em{font:italic 29px/1.2 var(--serif);letter-spacing:0}
/* Embossed paper, physical folds and a restrained gold seal. */
.envelope{position:fixed;inset:0;z-index:100;max-width:760px;margin:auto;overflow:hidden;perspective:1600px;background:#d6a59b;isolation:isolate;transition:opacity 1.6s,visibility 1.6s}.envelope-interior{position:absolute;inset:0;background:#744d50}.envelope-reveal-garden{position:absolute;inset:0;background:url('assets/hero.webp') center/cover;transform:scale(1.08);filter:brightness(.6);transition:transform 4s,filter 4s}.envelope-back{position:absolute;inset:0;background:url('assets/envelope-paper.webp') center/100% 100%;z-index:1;transition:opacity 1.8s 1.6s}.envelope-fold,.envelope-flap{position:absolute;inset:0;background-image:url('assets/envelope-paper.webp');background-size:100% 100%;z-index:3;filter:drop-shadow(0 -3px 5px #583e3e55);transition:transform 2.6s cubic-bezier(.5,.02,.2,1) 1.2s}.left-fold{clip-path:polygon(0 0,53% 55%,0 100%);background-blend-mode:multiply;background-color:#e9c4ba}.right-fold{clip-path:polygon(100% 0,47% 55%,100% 100%);background-blend-mode:multiply;background-color:#f6d9c7}.bottom-fold{clip-path:polygon(0 100%,0 77%,50% 49%,100% 77%,100% 100%)}.envelope-flap{z-index:5;clip-path:polygon(0 0,100% 0,100% 33%,50% 54%,0 33%);transform-origin:50% 0;transition:transform 2.5s cubic-bezier(.5,.02,.2,1) .5s;filter:drop-shadow(0 8px 8px #583c4570)}.envelope-copy{position:absolute;top:12%;left:12%;right:12%;text-align:center;z-index:6;transition:opacity .8s}.envelope-crest{color:#91622e;font:30px var(--serif);margin-bottom:22px}.envelope-copy h1{font:400 clamp(34px,6vw,56px)/1.1 var(--serif);margin:18px 0;color:#653a3d;text-shadow:0 1px #fce6d277}.envelope-copy h1 i{font-size:.65em;color:#986e3f}.envelope-date{font:12px/1.8 var(--sans);letter-spacing:1.5px}.eyebrow{font:12px/1.8 var(--sans);letter-spacing:1.7px;text-align:center;font-weight:500;margin:0 auto 18px}.seal{position:absolute;top:53%;left:50%;transform:translate(-50%,-50%) rotate(-7deg);z-index:7;width:94px;height:94px;border-radius:45% 50% 46% 49%;border:4px double #a87734;background:radial-gradient(ellipse at 30% 20%,#f3dda0,#c39854 48%,#a77736 68%,#edce86);box-shadow:0 7px 13px #51323d66,inset 0 0 0 5px #f6d69777;display:grid;place-items:center;transition:filter .4s}.seal:hover{filter:brightness(1.1)}.seal-inner{width:65px;height:65px;border:1px solid #90642d;border-radius:50%;display:flex;justify-content:center;align-items:center;font:30px var(--serif);color:#77501e;text-shadow:0 1px #ffe8ac;transform:rotate(7deg)}.seal-inner span{font:italic 18px var(--serif);padding:0 2px}.open-hint{position:absolute;bottom:12%;left:18%;right:18%;z-index:6;text-align:center;transition:opacity .7s}.open-hint p{font:italic 24px var(--serif);margin:12px 0}.open-hint small{font:12px/1.6 var(--sans);letter-spacing:1px}.hint-line{height:28px;width:1px;background:#91683499;display:block;margin:auto}.opening-glow{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 54%,#fff3dc,transparent 60%)}.envelope-shimmer{position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#fff1c222 48%,transparent 61%);background-size:250% 100%;animation:foil-light 9s infinite}.envelope.opening .envelope-flap{transform:rotateX(-170deg)}.envelope.opening .left-fold{transform:translateX(-85%)}.envelope.opening .right-fold{transform:translateX(85%)}.envelope.opening .bottom-fold{transform:translateY(85%)}.envelope.opening .envelope-back{opacity:0}.envelope.opening .envelope-reveal-garden{transform:scale(1);filter:brightness(1)}.envelope.opening .envelope-copy,.envelope.opening .open-hint{opacity:0}.envelope.opening .seal{animation:seal-break .8s both}.envelope.opening .opening-glow{animation:gold-reveal 3.6s .5s both}.envelope.opened{opacity:0;visibility:hidden;pointer-events:none}@keyframes foil-light{0%,20%{background-position:180% 0}85%,100%{background-position:-80% 0}}@keyframes seal-break{0%{opacity:1;transform:translate(-50%,-50%) rotate(-7deg)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(-12deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(.85) rotate(8deg)}}@keyframes gold-reveal{0%{opacity:0}60%{opacity:.65}100%{opacity:0}}
.utility{position:fixed;right:max(15px,calc((100vw - 760px)/2 + 15px));top:15px;display:flex;gap:8px;z-index:20}.round-button{width:42px;height:42px;border:1px solid #b6947060;border-radius:50%;background:#fff7e6e8;color:#774a48;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;backdrop-filter:blur(8px)}.round-button svg{width:20px;height:20px}.round-button span{width:16px;height:1px;background:currentColor}#sound[aria-pressed=true]{background:#875161;color:#fff1d6}#chapter-menu{position:fixed;right:max(15px,calc((100vw - 760px)/2 + 15px));top:65px;z-index:21;padding:20px 25px;background:#fcf0e5fa;box-shadow:0 10px 60px #3b263329;min-width:230px}#chapter-menu a{display:block;font:20px/2.1 var(--serif);text-decoration:none}#chapter-menu button{border:0;border-top:1px solid #a27c6155;background:none;padding:14px 0 0;margin-top:10px;font:12px/1.6 var(--sans)}
/* Text occupies natural flow; artwork is reserved its own space. */
.scene{position:relative;isolation:isolate;overflow:hidden;background:var(--cream)}.scene-content{position:relative;text-align:center;z-index:3;margin:auto;padding:125px 30px 0;max-width:560px}.scene-content p,.family-copy p{max-width:460px;margin-left:auto;margin-right:auto;text-wrap:pretty}.scene h2,.family-copy h3{text-wrap:balance}.scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.scene-tint{position:absolute;inset:0;pointer-events:none;z-index:0}.hero{min-height:1000px;background:#f3cbd2}.hero .scene-bg{mask-image:linear-gradient(#000 77%,transparent)}.hero-copy,.hero>.petals{opacity:0;transition:opacity 1.8s ease}.invitation-started .hero-copy,.invitation-started .hero>.petals{opacity:1}.hero-copy{padding-top:115px}.blessing{font-size:18px;color:#657950;margin:0 0 28px}.hero h2{font:500 88px/.9 var(--serif);letter-spacing:-2px;color:var(--rose);margin:26px 0}.ampersand{display:block;font:italic 46px/1.1 var(--serif);color:#b58a59;margin:8px 0}.hero-subtitle{font:italic 23px/1.4 var(--serif);margin:22px auto}.fine-rule{height:1px;width:65px;margin:22px auto;background:#ad845f80}.date-line{font:24px var(--serif);margin:16px 0 8px}.location-line{font:12px/1.9 var(--sans);letter-spacing:1px}.scroll-cue{position:absolute;bottom:28px;left:0;right:0;text-align:center;font:12px var(--sans);letter-spacing:1px;text-decoration:none}.scroll-mark{display:block;width:1px;height:30px;margin:12px auto 0;background:#83564b80}
.family-section{background:#f3cbd2;text-align:center;padding-top:50px}.family-copy{position:relative;z-index:3;max-width:570px;margin:auto;padding:0 28px}.family-copy h2{font:italic 37px/1.1 var(--serif);margin:10px 0 22px}.family-copy p{font:20px/1.4 var(--serif);margin:10px auto}.family-copy .eyebrow{font:12px/1.8 var(--sans);letter-spacing:1px}.family-copy .intro-line,.family-copy .small-italic{font:italic 18px/1.4 var(--serif)}.family-copy .grandparents{font-size:17px;line-height:1.6}.family-copy h3{font:500 31px/1.1 var(--serif);color:var(--rose);margin:16px 0}.with{display:block;font:italic 20px var(--serif)}.family-copy .family-end{font:italic 19px/1.4 var(--serif);max-width:310px;margin:25px auto}.family-art{position:relative;width:100%;height:clamp(400px,75vw,660px);overflow:hidden;z-index:0}.family-art-image{position:absolute;width:100%;height:auto;bottom:0;left:0;mask-image:linear-gradient(transparent 29%,#000 50%)}.family-art:after{content:'';position:absolute;inset:auto 0 0;height:90px;background:linear-gradient(transparent,var(--night))}.countdown-section{padding:20px 0 35px;text-align:center;border:0;background:none}.countdown-section .eyebrow{margin:0 auto 8px;font-size:12px}.countdown-section h2{font:italic 30px/1.1 var(--serif);margin:12px 0 20px}.countdown{display:flex;justify-content:center;align-items:center;gap:16px}.countdown strong{font:36px var(--serif);font-variant-numeric:tabular-nums}.countdown span{display:block;font:12px var(--sans);letter-spacing:1px;margin-top:5px}.countdown i{font:25px var(--serif);opacity:.4;margin-top:-16px}
.line-reveal{opacity:var(--line-opacity,0);transform:translateY(var(--line-shift,15px));will-change:opacity,transform}.event{background:var(--night);color:#f8e8cb}.event-copy{padding:245px 28px 22px;max-width:510px}.event h2{font:500 51px/1.02 var(--serif);letter-spacing:-.8px;margin:18px 0}.event-poem{font:italic 21px/1.3 var(--serif);margin:20px 0}.event-date{display:flex;justify-content:center;align-items:center;gap:16px;margin:20px auto 12px}.event-date strong{font:55px/.95 var(--serif);padding-right:16px;border-right:1px solid #ad976e66}.event-date span{font:12px/1.8 var(--sans);text-align:center;letter-spacing:1px}.event-time{font:21px var(--serif);margin:12px 0}.venue{font:500 23px var(--serif);margin:18px 0 3px}.venue-sub{font:18px var(--serif);margin:0}.dress-code{font:12px/1.7 var(--sans);letter-spacing:1.2px;margin:18px 0 14px}.dress-code span{display:block;font:italic 21px var(--serif);letter-spacing:0;margin-top:5px}.text-link{display:inline-block;background:none;border:0;border-bottom:1px solid currentColor;padding:6px 0;font:12px/1.6 var(--sans);letter-spacing:1.1px;text-transform:uppercase;text-decoration:none}.wedding-actions{display:flex;justify-content:center;gap:24px;margin-top:20px}.haldi{background:#faf0df;color:var(--ink)}.haldi .event-copy{padding-top:100px}.haldi:before{content:'';position:absolute;top:0;left:0;right:0;height:75px;background:linear-gradient(var(--night),transparent);z-index:1}.wedding .event-copy{padding-top:220px}.wedding:before{content:'';position:absolute;top:0;left:0;right:0;height:80px;background:linear-gradient(#faf0df,transparent);z-index:1}.wedding h2{font-size:56px}
.art-stage{position:relative;width:100%;height:clamp(430px,75vw,610px);isolation:isolate;overflow:visible}.stage-background{position:absolute;width:100%;height:auto;bottom:0;left:0;z-index:-2;pointer-events:none;mask-image:linear-gradient(transparent 0%,#000 19%)}.couple-stage{position:absolute;bottom:38px;width:64%;max-width:420px;left:50%;z-index:2;opacity:var(--arrival,0);transform:translate(-50%,var(--arrival-shift,25px));pointer-events:none}.couple{display:block;width:100%;max-height:450px;height:auto;object-fit:contain;transform-origin:50% 91%;filter:drop-shadow(0 8px 8px #0723331a);animation-play-state:paused!important}.in-view .couple{animation-play-state:running!important}.romantic .couple{animation:waltz 6s ease-in-out infinite}.haldi-couple{bottom:90px}.haldi-couple .couple{animation:haldi-play 5.5s ease-in-out infinite}.wedding-couple{bottom:44px;width:70%;max-width:440px}.wedding-rig{display:block;width:100%;height:auto;overflow:visible}.haldi-art{height:clamp(480px,78vw,670px)}.sangeet-art:after,.wedding-art:after{content:'';position:absolute;bottom:0;left:0;right:0;height:50px;background:linear-gradient(transparent,var(--night));pointer-events:none;z-index:5}@keyframes waltz{0%,100%{transform:translate(-13px,0) rotate(-3deg)}25%{transform:translate(0,-10px) rotate(-1deg) scale(1.015)}50%{transform:translate(13px,0) rotate(3deg)}75%{transform:translate(0,-7px) rotate(1deg) scale(.995)}}@keyframes haldi-play{0%,100%{transform:rotate(-1.8deg) translate(-4px,0)}30%{transform:rotate(1.6deg) translate(5px,-7px)}65%{transform:rotate(.4deg) translate(2px,-2px)}}
.atmosphere{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.atmosphere i{position:absolute;pointer-events:none;animation-play-state:paused!important}.in-view .atmosphere i{animation-play-state:running!important}.petals i,.haldi-petals i{top:-30px;width:12px;height:18px;border-radius:80% 8% 70% 25%;background:radial-gradient(ellipse at 30% 20%,#ffe4dc,#d18196);box-shadow:inset 1px 1px 3px #ffffff66;animation:petal-fall var(--duration,14s) linear infinite;opacity:0}.petals i:nth-child(3n){width:9px;height:13px;filter:blur(.7px)}.haldi-petals i{background:radial-gradient(ellipse at 30% 20%,#ffe597,#eeb23a);width:10px;height:15px}@keyframes petal-fall{0%{opacity:0;transform:translate(0,-30px) rotate(0)}6%{opacity:.8}50%{transform:translate(40px,650px) rotate(230deg)}94%{opacity:.7}100%{opacity:0;transform:translate(-25px,1450px) rotate(510deg)}}
.bokeh{z-index:2;mix-blend-mode:screen}.bokeh i,.rsvp-glow i,.glints i{position:absolute;width:var(--size,40px);height:var(--size,40px);border-radius:50%;background:radial-gradient(circle,#ffebbf88 0%,#f8cf7d44 42%,transparent 70%);filter:blur(1px);animation:bokeh-drift var(--duration,8s) ease-in-out infinite}.bokeh i:nth-child(3n){background:radial-gradient(circle,#dfb9ff88,#c491e944 40%,transparent 70%)}.bokeh i:nth-child(2n){filter:blur(4px)}.glints{position:absolute;inset:0;pointer-events:none;z-index:1}.glints i{width:5px;height:5px;animation-duration:2s}.rsvp-glow i{opacity:.3}@keyframes bokeh-drift{0%,100%{opacity:.25;transform:translate(-15px,20px) scale(.7)}50%{opacity:.95;transform:translate(15px,-22px) scale(1.15)}}
.chandelier{position:absolute;top:0;width:25%;height:235px;left:37.5%;z-index:3;pointer-events:none;transform-origin:50% 0;animation:chandelier-sway 6s ease-in-out infinite alternate;animation-play-state:paused}.chandelier img{width:100%;height:100%;object-fit:contain;object-position:top;animation:candle-light 2.7s ease-in-out infinite;filter:drop-shadow(0 0 12px #f9d28a77)}.left-chandelier{left:5%;width:21%;height:205px;animation-delay:-2s;animation-duration:7s}.right-chandelier{left:74%;width:21%;height:205px;animation-delay:-4s;animation-duration:8s}.in-view .chandelier{animation-play-state:running}@keyframes chandelier-sway{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes candle-light{0%,100%{filter:brightness(1) drop-shadow(0 0 8px #f9d28a55)}45%{filter:brightness(1.2) drop-shadow(0 0 22px #ffd68acc)}55%{filter:brightness(1.03) drop-shadow(0 0 12px #ffd68a77)}}
.moving-lights{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;mix-blend-mode:screen}.moving-lights i{position:absolute;top:100px;left:5%;width:55%;height:900px;background:linear-gradient(#ffe6b800,#f2cf884f 35%,#fae5bb08);clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);transform-origin:50% 0;filter:blur(9px);animation:spotlight 9s ease-in-out infinite alternate}.moving-lights i:nth-child(2){left:40%;animation-delay:-5s;background:linear-gradient(#e3c3ff00,#c8abe844 35%,#e3ccff08)}@keyframes spotlight{from{transform:rotate(-28deg);opacity:.6}to{transform:rotate(27deg);opacity:1}}.lamp-glows{position:absolute;inset:0;pointer-events:none;z-index:3}.lamp-glows i{position:absolute;bottom:34%;left:5%;width:45px;height:45px;background:radial-gradient(#fffcebe6,#ffe5a266 25%,transparent 70%);animation:light-pulse 2.6s infinite alternate}.lamp-glows i:nth-child(2){left:17%;bottom:44%;animation-delay:-1s}.lamp-glows i:nth-child(3){left:75%;bottom:42%;animation-delay:-1.7s}.lamp-glows i:nth-child(4){left:88%;bottom:31%;animation-delay:-.6s}.lamp-glows i:nth-child(5){left:48%;bottom:25%;animation-delay:-2s}@keyframes light-pulse{from{opacity:.35;transform:scale(.7)}to{opacity:1;transform:scale(1.7)}}
.floor-mist{position:absolute;bottom:10px;left:-20%;right:-20%;height:145px;z-index:4;pointer-events:none;overflow:hidden;mask-image:linear-gradient(transparent,#000 25%,#000 80%,transparent)}.floor-mist i{position:absolute;inset:-20% -30%;background:radial-gradient(ellipse at 25% 55%,#e2e5f2aa,transparent 43%),radial-gradient(ellipse at 65% 60%,#f3e9d899,transparent 45%),radial-gradient(ellipse at 85% 45%,#ddd9edaa,transparent 35%);filter:blur(13px);animation:mist-flow 11s ease-in-out infinite alternate}.floor-mist i:nth-child(2){animation-delay:-4s;animation-duration:15s;opacity:.6}.floor-mist i:nth-child(3){animation-delay:-8s;animation-duration:17s;opacity:.5}@keyframes mist-flow{from{transform:translateX(-15%) scaleY(.7)}to{transform:translateX(15%) scaleY(1.15)}}
.water-motion{position:absolute;bottom:0;left:0;width:100%;height:auto;aspect-ratio:2/3;pointer-events:none;z-index:1}.water-shimmer{display:none}.pool-ripples{transform-box:fill-box;transform-origin:center;animation:pool-wave 4s linear infinite}@keyframes pool-wave{0%{transform:scale(.8);opacity:.25}50%{opacity:.75}100%{transform:scale(1.2);opacity:.1}}.fountain-jets{stroke-dasharray:3 5;animation:water-run .65s linear infinite}.fountain-cascade{stroke-dasharray:10 5;animation:water-run .48s linear infinite}.fountain-spray{animation:spray .8s linear infinite}@keyframes water-run{to{stroke-dashoffset:-30}}@keyframes spray{from{opacity:.3;transform:translateY(-3px)}to{opacity:.9;transform:translateY(4px)}}
.fireworks{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;mask-image:linear-gradient(#000 0%,#000 70%,transparent 95%)}.rsvp{background:#f8eedf;text-align:center}.rsvp:before{content:'';position:absolute;top:0;left:0;right:0;height:100px;background:linear-gradient(var(--night),transparent)}.rsvp-copy{padding-top:140px;padding-bottom:35px}.rsvp h2{font:italic 43px/1.1 var(--serif);margin:20px 0 24px}.rsvp-label{font:12px var(--sans);letter-spacing:3px;margin:25px 0 12px}.hosts{font:22px/1.5 var(--serif)}.closing-message{font:italic 22px/1.4 var(--serif)}.signature{font:38px var(--serif);color:var(--rose);margin:24px 0 12px}.signature i{font-size:.7em}.rsvp .text-link{margin-top:15px}.rsvp-art{height:clamp(390px,72vw,600px)}footer{text-align:center;padding:30px 20px 35px;background:var(--cream)}footer span{font:28px var(--serif);color:#916341}footer p{font:12px var(--sans);letter-spacing:1px;margin:12px 0 0;opacity:.7}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#583647;color:#fff1df;padding:12px 22px;font:12px var(--sans);z-index:101;opacity:0;transition:.3s;pointer-events:none;text-align:center;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1100px){.utility{right:calc((100vw - 760px)/2 - 65px);flex-direction:column}}
@media(max-width:1050px){.desktop-note{display:none}}
@media(max-width:600px){.hero{min-height:850px}.hero-copy{padding:105px 25px 0}.hero h2{font-size:72px}.hero-subtitle{font-size:21px}.hero .eyebrow{font-size:12px}.ampersand{font-size:40px}.date-line{font-size:22px}.envelope-copy{top:15%;left:16%;right:16%}.envelope-crest{font-size:24px;margin-bottom:15px}.envelope-copy h1{font-size:35px}.envelope-date{letter-spacing:.6px;font-size:12px}.envelope-copy .eyebrow{font-size:12px;letter-spacing:.5px}.open-hint{bottom:14%}.open-hint p{font-size:22px}.seal{width:85px;height:85px}.seal-inner{width:60px;height:60px;font-size:27px}.family-copy{padding:0 24px}.family-copy h2{font-size:33px}.family-copy p{font-size:18px}.family-copy .grandparents{font-size:16px}.family-copy .small-italic{font-size:17px}.family-copy h3{font-size:29px}.family-copy .family-end{font-size:18px}.countdown{gap:12px}.countdown strong{font-size:31px}.countdown-section h2{font-size:28px}.countdown span{letter-spacing:.5px}.family-art{height:370px}.event-copy{padding:205px 28px 20px}.event h2{font-size:44px}.event-poem{font-size:19px}.event-date strong{font-size:49px}.event-time{font-size:20px}.venue{font-size:22px}.venue-sub{font-size:18px}.dress-code span{font-size:20px}.haldi .event-copy{padding-top:100px}.wedding .event-copy{padding-top:200px}.wedding h2{font-size:48px}.chandelier{width:29%;left:35.5%;height:185px}.left-chandelier{width:23%;left:3%;height:160px}.right-chandelier{width:23%;left:74%;height:160px}.art-stage{height:390px}.haldi-art{height:450px}.couple-stage{width:72%;bottom:35px}.couple{max-height:350px}.haldi-couple{bottom:92px}.wedding-couple{width:74%;bottom:35px}.rsvp-copy{padding:130px 26px 30px}.rsvp h2{font-size:37px}.hosts{font-size:20px}.closing-message{font-size:20px}.signature{font-size:34px}.rsvp-art{height:370px}.floor-mist{height:120px;bottom:5px}.eyebrow{letter-spacing:1px}.moving-lights i{height:750px}.lamp-glows i{width:35px;height:35px}}
@media(max-width:350px){.hero h2{font-size:66px}.event h2{font-size:40px}.family-copy h3{font-size:27px}.countdown{gap:8px}.countdown strong{font-size:29px}.event-copy{padding-left:22px;padding-right:22px}.eyebrow{letter-spacing:.5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.line-reveal{opacity:1;transform:none}.couple-stage{opacity:1;transform:translateX(-50%)}.fireworks{display:none}}

/* Revised couple scale: preserve space around the figures and above their heads. */
.couple-stage{width:48%;max-width:300px}.couple{max-height:350px}.wedding-couple{width:44%;max-width:280px;bottom:60px}.wedding-couple .couple{max-height:360px;animation:wedding-breathe 8s ease-in-out infinite}
@keyframes wedding-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(max-width:600px){.couple-stage{width:55%;max-width:225px}.couple{max-height:285px}.wedding-couple{width:52%;max-width:210px;bottom:48px}.wedding-couple .couple{max-height:295px}.haldi-couple{bottom:92px}}

/* Haldi: quiet surface reflections; feet rest on the courtyard platform. */
.haldi-couple{bottom:clamp(92px,29vw,220px)}
.haldi-couple .couple{animation:haldi-grounded 7s ease-in-out infinite;transform-origin:50% 97%}
.haldi-couple:before{content:'';position:absolute;bottom:3%;left:18%;right:18%;height:9px;background:radial-gradient(ellipse,#6b5e4530,transparent 72%);z-index:-1}
.pool-ripples{animation:none;opacity:.16;stroke-width:1.2}
.pool-ripples ellipse{transform-box:fill-box;transform-origin:center;animation:quiet-ripple 10s ease-in-out infinite}
.pool-ripples ellipse:nth-child(2){animation-delay:-3s}.pool-ripples ellipse:nth-child(3){animation-delay:-6s}.pool-ripples ellipse:nth-child(4){animation-delay:-8s}
@keyframes quiet-ripple{0%,100%{transform:scaleX(.97);opacity:.35}50%{transform:scaleX(1.04);opacity:.7}}
@keyframes haldi-grounded{0%,100%{transform:rotate(-.35deg)}50%{transform:rotate(.35deg)}}
@media(prefers-reduced-motion:reduce){.pool-ripples ellipse,.haldi-couple .couple{animation:none!important}}

/* Wedding: keep decorative artwork out of the copy and action area. */
.wedding-canopy{position:absolute;inset:0 0 auto;height:240px;overflow:hidden;pointer-events:none;z-index:1}
.wedding .event-copy{padding-top:270px;padding-bottom:48px;z-index:4}
.wedding .wedding-actions{flex-wrap:wrap;gap:16px 24px;margin-top:24px}
.wedding-actions .text-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.wedding-art{overflow:hidden;min-height:430px}
.wedding-art .stage-background{mask-image:linear-gradient(transparent,#000 28%)}
.wedding-art .couple-stage{max-height:calc(100% - 96px)}
@media(max-width:600px){.wedding-canopy{height:190px}.wedding .event-copy{padding-top:222px;padding-bottom:40px}.wedding-art{height:390px;min-height:390px}.wedding h2{font-size:44px}}
