@font-face{font-family:Great Vibes;src:url("assets/fonts/great-vibes.ttf") format("truetype");font-display:swap}
@font-face{font-family:Cormorant;src:url("assets/fonts/cormorant-garamond.ttf") format("truetype");font-weight:300 700;font-display:swap}
:root{--cream:#f8f3e9;--ink:#534a3d;--gold:#987744;--gold-light:#cfba8b;--wine:#722735;--line:#b69b6550;--script:"Great Vibes",cursive;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:0}
body{margin:0;background:#f3eadb;color:var(--ink);font:400 20px/1.55 var(--serif);-webkit-font-smoothing:antialiased}
body.is-opening{overflow:hidden}
button,input{font:inherit}
button,a,input{touch-action:manipulation}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:wait}
a{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--wine);outline-offset:6px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h2{font-weight:400;font-size:clamp(38px,5vw,52px);line-height:1.12}
.script{font-family:var(--script);font-weight:400}
.eyebrow{font:500 10px/1.8 Arial,sans-serif;letter-spacing:3px}
.section-shell{max-width:880px;margin-inline:auto;padding:56px 32px;text-align:center}
.invitation-story{position:relative;isolation:isolate;max-width:880px;margin:auto;background-image:var(--paper-grain,none),linear-gradient(90deg,#dccaab22,transparent 12%,transparent 88%,#dccaab22),linear-gradient(#f7efe1,#fbf6eb 30%,#f3e8d6 68%,#faf4e9);box-shadow:0 20px 80px #7657280a}
.invitation-story::before{content:"";position:absolute;inset:40px 18px;z-index:-1;border-inline:1px solid #bfa26b24;pointer-events:none}
.body-copy{font-size:22px;line-height:1.65;max-width:530px;margin:26px auto;white-space:pre-line}
.fine-print{font-size:15px;color:#746957;line-height:1.5}
.text-button{border:0;background:transparent;color:var(--gold);font:500 11px/1.5 Arial,sans-serif;letter-spacing:1.5px;padding:12px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;background:var(--wine);border:1px solid var(--wine);color:#fff9f0;text-decoration:none;padding:17px 24px;font:500 10px/1.5 Arial,sans-serif;letter-spacing:2px;min-height:48px;transition:background .2s,transform .2s}
.button:hover{background:#55212c;transform:translateY(-2px)}
.button-outline{background:transparent;color:var(--gold);border-color:var(--gold-light)}
.button-outline:hover{background:#ede2cc}
.site-header{max-width:1080px;margin:auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.header-monogram{font:30px/1 var(--script);text-decoration:none;color:var(--gold);min-width:60px}
.hero{position:relative;isolation:isolate;max-width:600px;height:100svh;min-height:600px;margin:auto;display:grid;place-items:start center;overflow:hidden;text-align:center}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:65px;z-index:2;background:linear-gradient(transparent,#f7efe1);pointer-events:none}
.hero-art{position:absolute;inset:0;background:url("assets/garden.svg") center top / auto 100% no-repeat;z-index:-3}
.hero-glow{position:absolute;inset:12% 22% 36%;background:radial-gradient(ellipse,#fff9eccc,transparent 72%);z-index:-2}
.hero-copy{padding:120px 24px 240px;position:relative;z-index:1;width:100%;min-width:0}
.hero-copy>.eyebrow{color:#75634b}
.hero-announcement{font-size:22px;font-style:italic;margin-top:14px}
h1{display:flex;flex-direction:column;align-items:center;color:var(--gold);font:400 clamp(60px,8vw,88px)/1.1 var(--script);margin:28px 0 22px;overflow-wrap:anywhere;max-width:100%}
h1>span{display:block}
h1:focus{outline:none}
h1 .ampersand{font-size:37px;line-height:1.1;margin:2px 0}
.date-ornament{display:flex;align-items:center;gap:15px;justify-content:center;color:#746044}
.date-ornament>span{width:27px;height:1px;background:var(--gold-light)}
.date-ornament p{font-size:16px;letter-spacing:1px;max-width:280px}
.hero-flowers{position:absolute;width:290px;bottom:-6px;z-index:2;pointer-events:none}
.hero-flowers-left{left:2%;transform:rotate(-12deg)}
.hero-flowers-right{right:2%}
.scroll-cue{position:absolute;bottom:25px;text-decoration:none;display:grid;gap:6px;font-size:17px;z-index:3;color:#655633}
.scroll-cue span{font-family:Arial,sans-serif;animation:float 2.5s ease-in-out infinite}
.section-ornament{display:flex;justify-content:center;align-items:center;gap:16px;color:var(--gold);font-size:27px;margin-bottom:29px}
.section-ornament>span{width:64px;height:1px;background:var(--line)}
.welcome{max-width:700px;padding-top:54px;padding-bottom:26px}
.ganesha-image{display:block;width:150px;height:auto;margin:0 auto 20px;filter:drop-shadow(0 2px 1px #fffcf5)}
.welcome h2{margin:18px auto 0;white-space:pre-line;font-family:var(--script);color:var(--gold);line-height:1.35;font-size:46px}
.signature{font-size:29px;color:var(--gold);margin-top:32px}
.signature span{white-space:nowrap}
.family-details{position:relative;isolation:isolate;max-width:600px;margin:32px auto 42px;padding:70px 0}
.family-corner{position:absolute;width:150px;z-index:-1;pointer-events:none}
.family-corner-top{right:-12px;top:0;transform-origin:85% 12%}
.family-corner-bottom{left:-12px;bottom:0;transform:rotate(-86deg);transform-origin:center}
.family-member{padding:0 8px;overflow-wrap:break-word}
.family-blessings{font-size:18px;font-style:italic;color:var(--gold);margin-bottom:12px}
.family-relatives{font-size:22px;line-height:1.55;white-space:pre-line}
.family-member .family-name{font:500 clamp(30px,5vw,36px)/1.2 var(--serif);color:var(--wine);margin:20px 0 8px}
.family-relationship{font:11px/1.8 Arial,sans-serif;letter-spacing:2px;color:var(--gold);margin-bottom:6px}
.family-relationship abbr{text-decoration:none}
.family-join{display:flex;align-items:center;justify-content:center;gap:20px;color:var(--gold);font-size:34px;margin:24px 0}
.family-join::before,.family-join::after{content:"";height:1px;width:50px;background:var(--line)}
.countdown-section{position:relative;text-align:center;padding:36px 24px 44px}
.countdown-section::after{content:"";display:block;width:120px;height:1px;margin:44px auto 0;background:linear-gradient(90deg,transparent,var(--gold-light),transparent)}
.countdown-section h2{font:42px/1.3 var(--script);color:var(--gold);margin:10px 0 28px}
.countdown{display:flex;align-items:stretch;justify-content:center;gap:16px}
.countdown>div{position:relative;min-width:0;width:96px;display:grid;padding:24px 10px 16px;border:1px solid #cbb27c66;border-radius:48px 48px 9px 9px;background:linear-gradient(135deg,#fffaf0a6,#e8d7b44a);box-shadow:0 8px 20px #8062360a,inset 0 1px #fffaf5;overflow:hidden}
.countdown span{display:block;font-size:54px;font-weight:400;line-height:1.1;color:var(--gold);font-variant-numeric:tabular-nums;position:relative;z-index:1}
.countdown small{font:9px/2 Arial,sans-serif;letter-spacing:1.6px;margin-top:10px;position:relative;z-index:1}
.countdown>div::before{content:"";position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 35%,#fff9e69c 50%,transparent 65%);opacity:0;pointer-events:none}
html[data-motion=full] .countdown-section.in-view .countdown>div::before{animation:countdown-sheen 7s ease-in-out infinite;animation-delay:var(--shimmer-delay,0ms)}
@keyframes countdown-sheen{0%,35%{opacity:0;transform:translateX(-90%)}55%{opacity:.65}75%,100%{opacity:0;transform:translateX(90%)}}
.countdown-note{font-size:20px;font-style:italic;color:var(--gold)}
.celebration{padding-top:0;padding-bottom:28px}
.paper-card{position:relative;padding:16px 60px 20px}
.paper-card h2{margin:12px 0}
.section-subtitle{font-size:18px;font-style:italic;color:#87755e}
.event-timeline{position:relative;max-width:510px;margin:43px auto 28px}
.event-list{text-align:left;margin:0;padding:0;list-style:none}
.event-list li{--event-art-space:0px;display:grid;grid-template-columns:105px 24px 1fr;gap:20px;position:relative;min-height:117px}
.event-list li.has-event-art{--event-art-space:52px}
.event-content{min-width:0}
.event-illustration{display:block;width:44px;height:44px;object-fit:contain;margin-bottom:8px}
.event-list li:last-child{min-height:54px}
.event-time{font:500 11px/1.6 Arial,sans-serif;letter-spacing:1px;color:var(--gold);text-align:right;padding-top:calc(8px + var(--event-art-space));white-space:pre-line}
.event-marker{position:relative;display:flex;justify-content:center}
.event-dot{position:absolute;top:calc(13px + var(--event-art-space));left:50%;width:7px;height:7px;background:#bba984;transform:translateX(-50%) rotate(45deg);transition:background .35s}
.is-passed .event-dot{background:var(--gold)}
.timeline-track{position:absolute;width:1px;background:var(--gold-light);pointer-events:none}
.timeline-progress{position:absolute;inset:0;background:var(--gold);transform-origin:top;transform:scaleY(0)}
.timeline-cursor{position:absolute;top:0;left:50%;z-index:2;will-change:transform}
.timeline-diamond{position:absolute;width:14px;height:14px;transform:translate(-50%,-50%) rotate(45deg);background:var(--gold);border:2px solid #eee1c6;box-shadow:0 0 0 4px #bda47525}
#timeline-flower{position:absolute;width:42px;height:42px;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 2px #614f3120)}
.event-list h3{font-size:27px;font-weight:500;line-height:1.25}
.event-date{display:block;font-size:16px;line-height:1.5;color:var(--gold);margin-top:5px}
.event-list p{font-size:17px;line-height:1.45;margin-top:5px;color:#796d5c;padding-bottom:24px}
.celebration-gallery{padding-top:8px;padding-bottom:44px}
.celebration-gallery h2{font:42px/1.25 var(--script);color:var(--gold)}
.gallery-intro{font-size:17px;font-style:italic;color:#796d5c;margin:12px auto 26px}
.celebration-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;max-width:600px;margin:auto}
.celebration-card{margin:0;min-width:0}
.celebration-card .photo-reveal{padding:6px;border:1px solid #c6ad7c66;border-radius:150px 150px 8px 8px;background:#faf2e2;box-shadow:0 10px 22px #7961390a}
.celebration-card .photo-window{border-radius:145px 145px 4px 4px}
.celebration-image{display:block;width:100%;height:auto;aspect-ratio:8/9;object-fit:cover}
.celebration-card h3{font:32px/1.3 var(--script);color:var(--gold);margin:18px 0 6px}
.celebration-card figcaption p{font-size:18px;line-height:1.4;max-width:260px;margin:auto}
.venue{padding-top:32px;padding-bottom:42px}
.venue h2{margin-top:12px}
.venue-card{position:relative;max-width:600px;margin:24px auto 0;padding:22px 22px 24px;background:linear-gradient(140deg,#fffcf1a8,#eee0c64f);border:1px solid #c6ad7c55;border-radius:150px 150px 12px 12px;box-shadow:0 14px 36px #7961390a}
.venue h3{font-weight:500;font-size:29px}
.venue-card>p:not(.fine-print){white-space:pre-line;margin:8px auto 24px;max-width:410px;line-height:1.45}
.venue .fine-print{margin-top:15px}
.guest-details{position:relative;isolation:isolate;max-width:700px;display:grid;grid-template-columns:minmax(0,1fr);gap:32px;padding:68px 100px;background-image:var(--paper-image,none);background-size:100% 100%;border:0}
.guest-details article{position:relative;z-index:1;max-width:410px;margin-inline:auto}
.guest-details h2{font-size:32px;margin:10px 0 18px}
.guest-details p{font-size:19px;line-height:1.6}
#dress-code.plain-copy{white-space:pre-line}
.guest-details .dress-palette-note{font-size:16px;font-style:italic;color:#796d5c;margin:0 auto 26px;max-width:300px}
.dress-look+.dress-look{margin-top:26px;padding-top:24px;border-top:1px solid #b69b652b}
.dress-look h3{font-size:23px;font-weight:500;color:var(--gold);line-height:1.3;margin-bottom:6px}
.dress-swatches{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;list-style:none;padding:0;margin:14px 0 0}
.dress-swatches li{display:grid;justify-items:center;gap:6px;max-width:80px;overflow-wrap:anywhere;font:10px/1.4 Arial,sans-serif;color:#746957}
.colour-chip{display:block;width:25px;height:25px;border:1px solid #806b4b45;border-radius:50%;box-shadow:inset 0 0 0 3px #fff8eb55}
.small-ornament{font-size:29px;color:var(--gold)}
.detail-divider{width:60px;height:1px;background:var(--line);margin:0 auto}
.rsvp-section{position:relative;isolation:isolate;overflow:hidden;max-width:1060px;margin:50px auto 0;padding:80px 24px;text-align:center;min-height:460px}
.rsvp-copy{position:relative;z-index:1}
.rsvp-section h2{font:54px/1.3 var(--script);color:var(--gold);margin:12px 0}
.rsvp-copy>p:not(.eyebrow):not(.fine-print){font-size:21px;max-width:340px;margin:0 auto 25px}
.rsvp-floral{position:absolute;width:310px;opacity:.66;bottom:10px;z-index:-1}
.rsvp-floral-left{left:-55px;transform:rotate(-15deg)}
.rsvp-floral-right{right:-55px;transform:scaleX(-1) rotate(-15deg)}
.rsvp-section .fine-print{margin-top:22px}
.closing{padding-top:18px;padding-bottom:40px}
.closing-medallion{width:120px;height:144px;margin:0 auto 30px;border:1px solid var(--gold-light);outline:1px solid #cfba8b55;outline-offset:7px;border-radius:60px 60px 4px 4px;display:grid;place-items:center;color:var(--gold);background:linear-gradient(140deg,#fff9ee,#ece1ca)}
.closing-medallion span{font:44px/1 var(--script)}
.closing h2{font-size:30px}
.closing-names{font-size:37px;color:var(--gold);margin:15px 0 30px}
.closing .section-ornament{margin-bottom:20px}
.footer-note{font-size:8px}
.closing>.text-button{margin-top:15px;font-size:9px;letter-spacing:1px}
.couple-photo{width:min(420px,100%);max-height:560px;object-fit:cover;border-radius:190px 190px 0 0;margin:0 auto 36px}
.wax-seal{width:108px;height:108px;padding:9px;border:1px solid #8f3944;border-radius:47% 53% 48% 52% / 54% 45% 55% 46%;display:inline-grid;place-items:center;position:relative;color:#f0d7a6;background:radial-gradient(ellipse at 35% 22%,#b35c63 0%,#842e3b 30%,#541c29 70%,#a75458 94%);box-shadow:0 7px 9px #3b112b35,2px 2px 2px #f1adb547 inset,-2px -3px 3px #240612b0 inset;transition:transform .3s,box-shadow .3s}
.wax-seal:hover{transform:translateY(-4px) rotate(-4deg);box-shadow:0 12px 16px #3b112b40,2px 2px 2px #f1adb547 inset,-2px -3px 3px #240612b0 inset}
.seal-rim{display:grid;place-items:center;width:100%;height:100%;border:2px solid #d3917b70;border-radius:50%;box-shadow:0 0 0 2px #47172380,inset 0 0 0 2px #47172380;font-size:21px;letter-spacing:1px;text-shadow:0 1px 1px #2c091d}
.opening{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 38%,#fffaf1 0%,#e9decb 65%,#d8c7ae);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),visibility 0s .8s;overflow:hidden}
.opening:not(.opened){transition-delay:0s}
.envelope{position:relative;isolation:isolate;width:56.25dvh;max-width:100%;height:100dvh;box-shadow:0 0 80px #62442235;overflow:hidden}
.opening-content{position:absolute;inset:0;z-index:10}
.tap-label{display:block;position:absolute;top:64%;width:100%;text-align:center;pointer-events:none;font:9px/1.5 Arial,sans-serif;letter-spacing:3px;margin-top:20px;color:#8e7855}
#open-invitation{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:none}
.opening.opened{opacity:0;visibility:hidden;pointer-events:none}
dialog{border:1px solid #cbb68d;background:var(--cream);color:var(--ink);max-width:500px;width:calc(100% - 32px);max-height:calc(100svh - 40px);padding:42px 34px;box-shadow:0 22px 80px #2f231f40}
dialog::backdrop{background:#372f285e;backdrop-filter:blur(5px)}
dialog h2{font-size:38px;margin:14px 0 22px}
dialog .eyebrow{font-size:8px}
.close-dialog{position:absolute;right:12px;top:8px;background:transparent;border:0;color:var(--ink);font:28px Arial,sans-serif;min-width:40px;min-height:40px}
dialog .button{margin-top:20px;width:100%}
form>label,#attending-fields>label{display:grid;gap:6px;margin-top:17px;font-size:18px}
input:not([type=radio]){width:100%;background:#fffcf5;border:1px solid #b6a582;padding:10px 12px;border-radius:0;min-height:45px;color:var(--ink)}
input[type=radio]{accent-color:var(--wine);width:17px;height:17px}
fieldset{border:1px solid var(--line);margin:20px 0 0;padding:10px 14px}
legend{font-size:18px;padding:0 6px}
.radio-label{display:flex;align-items:center;gap:10px;font-size:17px;padding:5px 0}
.form-help{font-size:15px;color:#746957}
.form-error{color:#8a2033;font-size:16px;margin-top:15px}
.music-toggle{position:fixed;bottom:22px;right:22px;z-index:10;border:1px solid #e2bfaa50;border-radius:50%;background:var(--wine);color:var(--cream);width:48px;height:48px;box-shadow:0 3px 15px #4a1e1e20}
.watch-toggle{position:fixed;bottom:24px;right:82px;z-index:10;width:44px;height:44px;padding:11px;border:1px solid var(--gold-light);border-radius:50%;color:var(--gold);background:#fbf5e9ed;box-shadow:0 3px 15px #4a1e1e12}
.watch-toggle svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:2;fill:none}
.watch-play-icon{fill:currentColor;stroke:none}
.watch-toggle[aria-pressed=true] .watch-play-icon,.watch-toggle[aria-pressed=false] .watch-pause-icon{display:none}
.music-status{position:fixed;bottom:78px;right:20px;max-width:260px;padding:12px 16px;background:var(--cream);border:1px solid var(--line);z-index:10;font-size:16px}
.scroll-bird{position:fixed;top:0;left:2px;width:24px;z-index:5;pointer-events:none;transform:translate3d(0,var(--bird-y,38vh),0) rotate(var(--bird-tilt,0deg));transition:transform .75s cubic-bezier(.22,.61,.36,1)}
.scroll-bird svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 2px 2px #765a3733);animation:bird-float 3.6s ease-in-out infinite}
.bird-wing{transform-origin:58px 53px;animation:bird-wingbeat 1.8s ease-in-out infinite}
.bird-wing-far{animation-delay:-.3s;animation-direction:reverse}
.is-opening .scroll-bird,html[data-motion=reduced] .scroll-bird{display:none}
@keyframes bird-wingbeat{0%,100%{transform:rotate(-12deg) scaleY(.72)}50%{transform:rotate(13deg) scaleY(1)}}
@keyframes bird-float{0%,100%{translate:0 -2px}50%{translate:0 2px}}
@media(min-width:1000px){.scroll-bird{left:calc((100vw - 880px)/2 - 58px);width:52px}}
.notice{padding:20px;text-align:center;background:#fff1d7;color:#743327;position:relative;z-index:30}
.error{border-bottom:1px solid #a5403d}
.envelope-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:9}
#envelope-video{opacity:0;transition:opacity .2s linear}
#envelope-image{transition:opacity .2s linear}
.video-ready>#envelope-video{opacity:1}
.video-ready>#envelope-image{opacity:0}
.playing-video>#envelope-video{z-index:11}
.playing-video>.opening-content{pointer-events:none}
.playing-video>.opening-content .tap-label{opacity:0}
.opening-status{position:absolute;bottom:62px;left:15px;right:15px;z-index:12;text-align:center;background:#fcf5e8dc;color:#6b5434;font-size:16px}
.hero-art video{width:100%;height:100%;object-fit:cover;display:block}
#hero-video{opacity:0;transition:opacity .45s ease}
#hero-video.video-ready,html[data-motion=reduced] #hero-video{opacity:1}
.garden-play{position:absolute;bottom:115px;left:50%;transform:translateX(-50%);z-index:4;border:1px solid var(--gold-light);background:#fff7e7ee;color:var(--ink);padding:12px 18px;font:12px Arial,sans-serif}
.has-hero-video .hero-copy{padding:clamp(70px,13svh,150px) 20px 160px}
.has-hero-video .hero-glow{display:none}
.has-hero-video .hero-flowers-left{left:-15px}
.has-hero-video .hero-flowers-right{right:-15px}
.has-hero-video .hero-flowers{width:265px;bottom:-20px}
.has-hero-video h1{margin-top:clamp(20px,4svh,48px)}
.has-hero-video .scroll-cue{bottom:45px}
.blessing{font-family:Georgia,"Times New Roman",serif;font-size:27px;color:var(--gold);margin-bottom:30px;line-height:1.8}
.venue-photo-frame{position:relative;margin:0 auto 24px}
.photo-window{overflow:hidden;border-radius:130px 130px 6px 6px}
.photo-window img{transition:transform 1.4s cubic-bezier(.22,.61,.36,1)}
.motion-ready .photo-reveal:not(.visible) .photo-window img{transform:scale(1.035)}
.venue-image{width:100%;height:auto;display:block;border-radius:130px 130px 6px 6px;border:1px solid #c7af8255}
.venue-floral{position:absolute;width:130px;right:-32px;bottom:-32px;transform:rotate(90deg);pointer-events:none;z-index:2;filter:drop-shadow(0 3px 2px #73563414)}
.venue-card>.venue-date{color:var(--gold);font-style:italic;margin:8px auto}
.venue-map-frame{position:relative;margin:24px auto 0;padding:7px;background:#efe2cb;border:1px solid #bfa37070;border-radius:6px;box-shadow:inset 0 1px 8px #8064340e}
.venue-map{display:block;width:100%;height:270px;border:0;border-radius:2px}
.guest-corner{position:absolute;width:190px;z-index:0;pointer-events:none;opacity:1}
.guest-corner-top{right:-10px;top:-6px;transform-origin:80% 10%}
.guest-corner-bottom{left:-30px;bottom:-14px;transform:rotate(-86deg);transform-origin:center}
.has-seal-image{background:transparent!important;border:0;box-shadow:none!important;border-radius:0;padding:0;width:130px;height:130px}
.has-seal-image>.seal-rim{display:none}
#rsvp-image{width:100%;height:100%;object-fit:contain}
#rsvp-tap{font-size:26px;color:var(--gold);margin-top:9px}
.media-status{position:fixed;bottom:70px;left:15px;z-index:25;max-width:320px;background:#fff3db;padding:14px;border:1px solid #a7804a;font-size:15px}
.reveal-item{transition:opacity 1.1s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.22,.61,.36,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal-item:not(.visible){opacity:0;transform:translate3d(0,24px,0)}
.hero-copy .reveal-item{transition-duration:1.6s}
.event-content>.reveal-item,.event-time.reveal-item{transition-duration:.85s}
.motion-ready .event-content>.reveal-item:not(.visible){transform:translate3d(0,14px,0)}
.motion-ready .couple-photo.reveal-item:not(.visible){transform:translate3d(0,16px,0) scale(.985)}
html[data-motion=full] .in-view .hero-flowers,html[data-motion=full] .in-view .guest-corner,html[data-motion=full] .in-view .family-corner,html[data-motion=full] .in-view .rsvp-floral,html[data-motion=full] .in-view .venue-floral{animation:botanical-sway 8s ease-in-out infinite}
html[data-motion=full] .in-view .hero-flowers-right,html[data-motion=full] .in-view .guest-corner-bottom,html[data-motion=full] .in-view .family-corner-bottom{animation-delay:-3.5s;animation-direction:reverse}
@keyframes botanical-sway{0%,100%{rotate:-1deg;scale:1}35%{rotate:1.5deg;scale:1.012}65%{rotate:.3deg;scale:1.005}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(min-width:1200px){.hero{border-left:1px solid #d3bd9120;border-right:1px solid #d3bd9120}.hero-flowers-left{left:7%}.hero-flowers-right{right:7%}}
@media(max-width:600px){
  body{font-size:19px}.section-shell{padding:40px 24px}
  .hero-art{background-size:cover}.hero-copy>.eyebrow{font-size:8px;letter-spacing:2px}.hero-announcement{font-size:18px;margin-top:10px}h1{font-size:64px;margin:24px 0 18px}h1 .ampersand{font-size:32px}.date-ornament{gap:9px}.date-ornament p{font-size:14px;max-width:245px}.date-ornament>span{width:17px}
  .hero-flowers{width:210px;bottom:2px}.hero-flowers-left{left:-50px}.hero-flowers-right{right:-50px}.scroll-cue{bottom:22px;font-size:15px}
  .welcome h2{font-size:32px}.body-copy{font-size:20px;line-height:1.55}.signature{font-size:25px}.signature span{white-space:normal}
  .countdown-section{padding:24px 24px 30px}.countdown-section>.eyebrow{font-size:8px;letter-spacing:2px}.countdown-section h2{font-size:34px}.countdown{gap:8px}.countdown>div{width:76px;padding:20px 4px 14px}.countdown span{font-size:40px}.countdown small{font-size:8px;letter-spacing:.7px}
  .celebration{padding:0 22px 24px}.paper-card{padding:12px 0 14px}.paper-card h2{font-size:36px}.event-timeline{margin-top:33px}.event-list li{grid-template-columns:54px 14px 1fr;gap:12px;min-height:112px}.event-time{font-size:9px;letter-spacing:.5px}.event-list h3{font-size:24px}.event-list p{font-size:16px}.fine-print{font-size:13px}
  .event-list li.has-event-art{--event-art-space:48px}.event-illustration{width:40px;height:40px}
  .celebration-gallery{padding-top:12px;padding-bottom:28px}.celebration-gallery h2{font-size:36px}.celebration-cards{grid-template-columns:minmax(0,1fr);gap:30px;max-width:290px}.gallery-intro{font-size:16px;max-width:250px}
  .photo-window{border-radius:80px 80px 4px 4px}
  .venue{padding-top:23px}.venue h2{font-size:36px}.venue h3{font-size:27px}.venue-card>p:not(.fine-print){font-size:18px}
  .venue-card{padding:12px 12px 16px;border-radius:90px 90px 8px 8px}.venue-image{border-radius:80px 80px 4px 4px}.venue-floral{width:85px;right:-18px;bottom:-22px}.venue-map-frame{padding:5px}.venue-map{height:225px}
  .guest-details{margin-inline:24px;padding:64px 32px;gap:30px;grid-template-columns:1fr}.guest-details h2{font-size:31px}.guest-details p{max-width:290px;margin:auto;font-size:18px}
  .rsvp-section{margin-top:15px;padding:65px 24px 65px}.rsvp-section h2{font-size:48px}.rsvp-copy>.eyebrow{font-size:8px;letter-spacing:2px}.rsvp-copy>p:not(.eyebrow):not(.fine-print){font-size:19px;max-width:260px}.rsvp-floral{width:220px;opacity:.43;bottom:22px}.rsvp-floral-left{left:-112px}.rsvp-floral-right{right:-112px}
  .closing{padding-top:8px}.closing h2{font-size:28px}.closing-names{font-size:33px}
  dialog{padding:38px 23px}dialog h2{font-size:33px}.music-toggle{right:14px;bottom:14px}
  .watch-toggle{right:74px;bottom:16px}
  .has-hero-video .hero-copy{padding-top:clamp(60px,12svh,115px)}
  .has-hero-video h1{margin-top:4svh;font-size:clamp(56px,9svh,76px)}
  .has-hero-video .hero-flowers{width:200px}
  .has-hero-video .hero-flowers-left{left:-40px}
  .has-hero-video .hero-flowers-right{right:-40px}
  .has-hero-video .scroll-cue{bottom:35px}
  #timeline-flower{width:32px;height:32px}
  .welcome{margin:0 auto;padding:42px 26px 22px}
  .blessing{font-size:23px}
  .family-corner{width:110px}.family-corner-top{right:-8px}.family-corner-bottom{left:-8px}
  .guest-corner{width:120px}
  .guest-corner-top{right:-6px;top:-4px}
  .guest-corner-bottom{left:-17px;bottom:-9px}
}
@media(max-width:900px){
  .site-header{display:none}
  .envelope{width:100%;max-width:none;height:100dvh}
  .hero,.hero.has-hero-video{width:100%;max-width:600px;min-height:0;height:100svh}
}
html[data-motion=reduced]{scroll-behavior:auto}
html[data-motion=reduced] *,html[data-motion=reduced] *::before,html[data-motion=reduced] *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){
  html:not([data-motion=full]){scroll-behavior:auto}
  html:not([data-motion=full]) *,html:not([data-motion=full]) *::before,html:not([data-motion=full]) *::after{animation:none!important;transition:none!important}
}
@media(max-height:450px){
  .tap-label{margin-top:10px}
  .hero,.hero.has-hero-video{min-height:0}
  .has-hero-video .hero-copy{padding:24px 20px 75px}
  .has-hero-video h1{font-size:42px;line-height:1;margin:10px 0}
  h1 .ampersand{font-size:20px}
  .has-hero-video .hero-flowers{width:120px;bottom:-35px}
  .has-hero-video .scroll-cue{bottom:8px;font-size:13px}
  .hero-copy>.eyebrow{font-size:8px}
  .date-ornament p{font-size:12px}
}
