:root{--color-ink:#2f2a24;--color-ivory:#fffaf1;--color-paper:#f7f1e7;--color-gold:#9b6a3d;--color-brass:#b89671;--color-sage:#90a487;--color-mist:#ffffffb8;--shadow-soft:0 18px 50px #2b221838;--font-script:"Tangerine", "Brush Script MT", cursive;--font-body:"Amiri", Georgia, serif;--font-ui:Inter, Avenir, Helvetica, Arial, sans-serif}*{box-sizing:border-box}button,input,select,textarea{font:inherit}button,a,[role=button],.floral-bunch,.pill-button,.bottom-nav__item,.music-button{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:focus:not(:focus-visible),a:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible){outline:none}button{cursor:pointer}.site-shell{background:linear-gradient(90deg, #2f2a24b3, #90a48747), var(--color-ink);min-height:100vh;color:var(--color-ink);position:relative;overflow-x:hidden}.invitation{z-index:2;background:var(--color-paper);width:min(100%,520px);min-height:100vh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 60px #00000052}.stage-atmosphere{z-index:1;pointer-events:none;opacity:0;transition:opacity .9s;position:fixed;inset:0;overflow:hidden}.stage-atmosphere--active{opacity:1}.stage-cloud,.stage-vine,.stage-lamp,.stage-foreground{pointer-events:none;position:absolute}.stage-cloud{filter:blur(.4px);background:radial-gradient(at 18% 72%,#fffaf142 0 42px,#0000 43px),radial-gradient(at 46% 55%,#fffaf152 0 58px,#0000 59px),radial-gradient(at 78% 70%,#fffaf138 0 46px,#0000 47px);border-radius:999px;width:280px;height:82px;animation:18s ease-in-out infinite cloudDrift}.stage-cloud--one{top:11vh;left:calc(50% - 540px)}.stage-cloud--two{animation-delay:-8s;bottom:22vh;right:calc(50% - 560px)}.stage-vine{opacity:.72;background:radial-gradient(circle at 50% 11%,#90a487b3 0 12px,#0000 13px),radial-gradient(circle at 28% 24%,#b896719e 0 9px,#0000 10px),radial-gradient(circle at 64% 39%,#90a487b8 0 13px,#0000 14px),radial-gradient(circle at 36% 58%,#fffaf19e 0 10px,#0000 11px),radial-gradient(circle at 70% 76%,#90a487bd 0 14px,#0000 15px),linear-gradient(90deg,#0000 42px,#fffaf147 43px 45px,#0000 46px);width:86px;animation:7s ease-in-out infinite vineSway;top:0;bottom:0}.stage-vine--left{transform-origin:50% 0;left:calc(50% - 370px)}.stage-vine--right{transform-origin:50% 0;animation-delay:-3s;right:calc(50% - 370px);transform:scaleX(-1)}.stage-lamp{transform-origin:50% 0;width:60px;height:160px;animation:5.4s ease-in-out infinite lampSwing;top:5vh}.stage-lamp:before,.stage-lamp:after{content:"";position:absolute}.stage-lamp:before{background:#fffaf16b;width:2px;height:112px;top:0;left:50%}.stage-lamp:after{background:linear-gradient(#fffaf1b8,#b8967161),conic-gradient(from 45deg,#fffaf166,#9b6a3d8f,#fffaf166);border-radius:48% 48% 18px 18px;height:52px;bottom:0;left:6px;right:6px;box-shadow:0 0 28px #fffaf13d}.stage-lamp--left{left:calc(50% - 430px)}.stage-lamp--right{animation-delay:-2.3s;right:calc(50% - 430px)}.stage-foreground{opacity:.88;filter:drop-shadow(0 10px 20px #2f2a2447);background:url(/assets/decor/runtime/floral-cluster.png) bottom/contain no-repeat;width:270px;height:190px;display:none;bottom:-16px}.stage-foreground--left{left:calc(50% - 520px)}.stage-foreground--right{right:calc(50% - 520px);transform:scaleX(-1)}.physics-petal-field{z-index:860;pointer-events:none;width:min(100vw,520px);position:fixed;inset:0 auto 0 50%;overflow:hidden;transform:translate(-50%)}.physics-petal{opacity:0;filter:drop-shadow(0 2px 4px #2f2a241f);will-change:transform;background:url(/assets/decor/runtime/rose-petal.png) 50%/contain no-repeat;border-radius:0;transition:opacity .7s;display:block;position:absolute;top:0;left:0;transform:translateY(-80px)}.physics-petal-field--active .physics-petal{opacity:.84}.physics-petal--ivory{filter:drop-shadow(0 2px 4px #2f2a241f)}.physics-petal--gold{filter:sepia(.12)saturate(1.08)drop-shadow(0 2px 4px #2f2a241f)}.physics-petal--sage{filter:hue-rotate(-8deg)saturate(.92)drop-shadow(0 2px 4px #2f2a241f)}.component-physics{z-index:3;pointer-events:none;position:absolute;inset:68px 22px 78px;overflow:hidden}.component-physics--quote,.component-physics--gallery,.component-physics--closing{z-index:4;inset:0}.component-physics--quote{left:24px;right:24px}.component-physics--gallery{inset:8px}.component-physics--closing{inset:62px 24px 140px}.component-physics__piece{opacity:0;will-change:transform;display:block;position:absolute;top:0;left:0;transform:translateY(-60px)}.component-physics__piece--petal-sprite,.component-physics__piece--floral-sprite,.component-physics__piece--veil-sprite{background-position:50%;background-repeat:no-repeat;background-size:contain}.component-physics__piece--petal-sprite{filter:drop-shadow(0 2px 5px #2f2a2424)}.component-physics__piece--floral-sprite{filter:drop-shadow(0 4px 8px #2f2a242e)}.component-physics__piece--veil-sprite{opacity:.86;filter:drop-shadow(0 5px 8px #2f2a241f)}.section-band,.paper-section,.event-section,.gallery-section,.closing-section{position:relative;overflow:hidden}.cover-gate{z-index:1000;background:var(--color-paper);place-items:center;display:grid;position:fixed;inset:0}.cover-gate__photo{filter:saturate(.9);background-position:50%;background-size:cover;position:absolute;inset:0}.cover-gate__photo:after{content:"";-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#fffaf161;position:absolute;inset:0}.cover-gate__mist{filter:blur(32px);background:#ffffffb8;border-radius:999px;width:min(78vw,360px);height:190px;margin-top:90px;position:absolute}.cover-gate__panel{z-index:2;text-align:center;width:min(84%,340px);color:var(--color-ink);padding:30px 22px 34px;position:relative}.cover-gate__panel p,.hero-cover__copy p,.quote-band p,.section-copy p,.event-block p,.closing-section__copy p{margin:0}.monogram{width:106px;height:106px;color:var(--color-gold);font-family:var(--font-script);background:#fffaf19e;border:1px solid #9b6a3d75;border-radius:50%;place-items:center;margin:0 auto 26px;font-size:4.4rem;line-height:1;display:grid}.monogram__mark{letter-spacing:0;width:94px;height:70px;font-size:.72em;display:block;position:relative;transform:translateY(.02em)}.monogram__mark span{white-space:nowrap;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.monogram__mark span:first-child{font-size:1em;right:calc(50% + 10px);transform:translateY(-50%)translate(.03em)}.monogram__mark span:last-child{font-size:1em;left:calc(50% + 7px);transform:translateY(-50%)translate(-.08em)}.monogram__mark span:nth-child(2){font-size:.38em;line-height:1;left:50%;transform:translate(-50%,-70%)}.cover-gate h1{color:var(--color-ink);font-family:var(--font-script);margin:5px 0 26px;font-size:3.5rem;font-weight:400;line-height:.9}.pill-button{min-width:150px;min-height:44px;color:var(--color-ink);text-transform:uppercase;background:#ffffffeb;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 24px;text-decoration:none;transition:transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 2px 9px #2c221838,inset 0 3px 1px #ffffffb3}.pill-button--icon .icon{flex:0 0 18px;width:18px;height:18px}.pill-button:hover,.pill-button:focus-visible{transform:translateY(-1px);box-shadow:0 9px 18px #2c22183d,inset 0 3px 1px #ffffffb3}.pill-button--gold{background:var(--color-gold);color:#fff}.icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;display:block}.hero-cover{isolation:isolate;background:#201b17;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.hero-cover__slider,.hero-cover__photo,.hero-cover__shade{position:absolute;inset:0}.hero-cover__photo{opacity:0;transform-origin:50%;will-change:opacity, transform;background-position:50%;background-size:cover;animation:8s linear infinite coverFade;top:-9%;bottom:-9%}.hero-cover__photo:first-child{opacity:1}.hero-cover__shade{z-index:1;background:linear-gradient(#2f2a248c,#2f2a241f 38%,#2f2a2473),#fffaf11a}.hero-cover__copy{z-index:3;text-align:center;color:#fff;text-shadow:0 2px 12px #0000005c;width:min(92%,430px);margin-top:-42px;position:relative}.hero-cover__copy h2,.section-copy h2,.event-block h2,.rsvp-form h2,.closing-section__copy h2{font-family:var(--font-script);margin:0;font-size:4.9rem;font-weight:400;line-height:.9}.hero-names{flex-flow:column wrap;justify-content:center;align-items:center;gap:0 18px;width:100%;display:flex}.hero-names span{display:inline-block}.hero-cover__copy p,.quote-band,.section-copy,.event-block,.countdown,.rsvp-form,.wishes-panel,.closing-section__copy{font-family:var(--font-body)}.hero-cover__copy p{font-size:1.15rem}.swipe-hint{z-index:4;width:104px;color:var(--color-gold);font-family:var(--font-ui);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#fffbf3db,#f9e7d69e),radial-gradient(circle at 50% 0,#ffffffbf,#0000 62%);border:1px solid #ce9a5385;border-radius:999px 999px 42px 42px;justify-items:center;gap:2px;margin:0 auto;padding:12px 12px 13px;transition:opacity .16s ease-out;display:grid;position:absolute;bottom:64px;left:0;right:0;box-shadow:0 14px 30px #1f18123d}.swipe-hint:before,.swipe-hint:after{content:"";background:linear-gradient(90deg,#0000,#9b6a3d99,#0000);width:21px;height:1px;position:absolute;top:14px}.swipe-hint:before{left:14px}.swipe-hint:after{right:14px}.swipe-hint__petal{background:linear-gradient(135deg,#fff7eff2,#e8b5a9b8);border-radius:70% 30%;width:13px;height:18px;transform:rotate(42deg);box-shadow:0 0 0 1px #9b6a3d1f}.swipe-hint__arrow{border-top:2px solid;border-left:2px solid;width:13px;height:13px;margin-top:1px;animation:1.2s ease-in-out infinite swipePulse;transform:rotate(45deg)}.swipe-hint__label{color:var(--color-ink);letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;font-weight:700;line-height:1}.quote-band{background:var(--color-brass);color:#fff;text-align:center;padding:90px 28px}.quote-mark{color:#fff;width:22px;height:22px;font-family:var(--font-script);text-shadow:0 7px 16px #2f2a242e;place-items:center;margin:0 auto 20px;font-size:1.1rem;line-height:1;display:grid}.quote-band blockquote{max-width:390px;margin:10px auto 0;font-size:1.15rem;line-height:1.6}.quote-reference{letter-spacing:.08em;text-transform:uppercase;font-weight:700}.paper-section{background:linear-gradient(#fffaf1cc, #fffaf1cc), radial-gradient(circle at 15% 20%, #90a48738, transparent 35%), radial-gradient(circle at 80% 85%, #b8967142, transparent 30%), var(--color-paper);padding:0}.paper-section--short .ornament-frame{min-height:520px}.ornament-frame{min-height:760px;padding:150px 22px 190px;position:relative}.ornament-frame--curtained{padding-top:180px}.ornament-frame__inner{z-index:5;position:relative}.ornament-frame:before{z-index:1;content:"";background:linear-gradient(#ffffffb8,#ffffffb8),repeating-linear-gradient(135deg,#9b6a3d0f 0 1px,#0000 1px 9px);border-radius:20px;position:absolute;inset:58px 18px 72px;box-shadow:0 1px 8px #2f2a2457}.ornament-frame--arch:before{border-radius:220px 220px 24px 24px;outline:7px solid #ffffff75}.ornament-frame--curtained:before{inset:104px 18px 72px}.ornament-frame--curtained.ornament-frame--arch:before{border-radius:190px 190px 24px 24px}.curtain,.chandelier,.floral{z-index:2;pointer-events:none;position:absolute}.curtain{z-index:3;opacity:.96;filter:drop-shadow(0 10px 14px #2f2a2424);background-image:url(/assets/decor/runtime/veil-arch.png);background-repeat:no-repeat;background-size:200%;width:50.4%;height:clamp(176px,42vw,252px);top:-2px}.curtain--left{transform-origin:100% 0;background-position:0 0;left:0}.curtain--right{transform-origin:0 0;background-position:100% 0;right:0}.chandelier{z-index:8;color:#0000;filter:drop-shadow(0 9px 14px #2f2a2433);pointer-events:auto;transform-origin:50% 0;background:url(/assets/decor/runtime/chandelier.png) top/contain no-repeat;border:0;width:54px;height:84px;padding:0;display:block;top:54px;overflow:visible}.chandelier--left{left:34px}.chandelier--right{right:34px}.chandelier:after{content:"";position:absolute;inset:-10px}.chandelier-sparkle{z-index:6;width:var(--sparkle-size);height:var(--sparkle-size);background:radial-gradient(circle, var(--sparkle-core) 0 20%, transparent 21%), radial-gradient(circle, var(--sparkle-color) 0 52%, transparent 53%), radial-gradient(circle, #71502a47 0 68%, transparent 69%);box-shadow:0 0 0 1px #71502a29, 0 0 14px var(--sparkle-glow), 0 0 24px #9b6a3d57;opacity:0;pointer-events:none;border-radius:50%;animation:2.6s cubic-bezier(.14,.78,.23,1) forwards sparkleFirework;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)scale(.3)}.chandelier-sparkle:before,.chandelier-sparkle:after{border:1px solid var(--sparkle-color);content:"";opacity:0;border-radius:50%;animation:2.6s ease-out forwards sparkleRing;position:absolute;inset:-4px;transform:scale(.2)}.chandelier-sparkle:after{animation-delay:.26s;inset:-8px}.chandelier-sparkle--firefly{width:calc(var(--sparkle-size) * .72);height:calc(var(--sparkle-size) * .72);background:radial-gradient(circle, var(--sparkle-core) 0 30%, var(--sparkle-color) 31% 64%, transparent 66%);box-shadow:0 0 0 1px #71502a1f, 0 0 12px var(--sparkle-glow), 0 0 22px var(--sparkle-glow);animation:4.4s cubic-bezier(.26,.62,.22,1) forwards fireflyDrift}.chandelier-sparkle--firefly:before,.chandelier-sparkle--firefly:after{display:none}.floral{z-index:9;filter:drop-shadow(0 8px 13px #2f2a242e)}.floral-bunches{z-index:9;pointer-events:none;position:absolute;inset:0}.floral-bunch{color:#0000;cursor:pointer;pointer-events:auto;transform-origin:bottom;background-color:#0000;border:0;padding:0;overflow:visible}.floral-bunch:before{content:"";transform-origin:bottom;background:url(/assets/decor/runtime/floral-cluster.png) bottom/contain no-repeat;transition:opacity .11s,transform .18s cubic-bezier(.2,.82,.2,1);position:absolute;inset:0}.floral-bunch:after{content:"";position:absolute;inset:-10px}.floral-bunch--bursting:before{animation:.56s cubic-bezier(.17,.78,.16,1) both flowerPreBurst}.floral-bunch--reblooming:before{animation:.46s cubic-bezier(.18,.92,.18,1) both flowerBloom;animation-delay:var(--flower-bloom-delay,0s)}.floral-bunch--popped:before{opacity:0;transform:scale(.16)translateY(4px)}.floral--center{height:160px;bottom:-24px;left:0;right:0}.floral--left,.floral--right{width:164px;height:112px;bottom:-10px}.floral--left{left:-10px}.floral--right{right:-10px}.floral--left-small,.floral--right-small{opacity:.95;width:96px;height:72px;bottom:38px}.floral--left-small{left:66px}.floral--right-small{right:66px}.floral--center-small-left,.floral--center-small-right{opacity:.98;width:118px;height:86px;bottom:8px}.floral--center-small-left{left:calc(50% - 134px)}.floral--center-small-right{right:calc(50% - 134px)}.floral--left-tiny,.floral--right-tiny{opacity:.92;width:74px;height:58px;bottom:70px}.floral--left-tiny{left:24px}.floral--right-tiny{right:24px}.floral--center-low-left,.floral--center-low-right{opacity:.98;width:132px;height:94px;bottom:-18px}.floral--center-low-left{left:calc(50% - 216px)}.floral--center-low-right{right:calc(50% - 216px)}.floral--left-upper,.floral--right-upper{opacity:.94;width:112px;height:82px;bottom:86px}.floral--left-upper{left:112px}.floral--right-upper{right:112px}.floral-burst-petal{z-index:10;filter:drop-shadow(0 2px 5px #2f2a2429);opacity:0;pointer-events:none;width:18px;height:14px;animation:floralToss var(--burst-duration,2.8s) cubic-bezier(.18, .76, .24, 1) forwards;background:url(/assets/decor/runtime/rose-petal.png) 50%/contain no-repeat;margin:-7px 0 0 -9px;position:absolute;top:24%;left:50%}.section-copy{text-align:center;justify-items:center;gap:18px;max-width:390px;margin:0 auto;font-size:1.1rem;line-height:1.55;display:grid}.gift-section .section-copy{box-sizing:border-box;width:min(100%,390px);padding-inline:14px}.couple-profile{justify-items:center;gap:8px;display:grid}.couple-profile img{object-fit:cover;border:3px solid #fff;border-radius:90px 90px 0 0;width:176px;height:220px;box-shadow:0 1px 8px #2f2a246b}.couple-profile h2,.event-block h2,.rsvp-form h2,.section-copy h2{color:var(--color-gold)}.couple-profile span{max-width:270px;font-size:1rem;display:block}.ampersand{color:var(--color-gold);font-family:var(--font-script);font-size:3.5rem;line-height:1}.event-section{background-position:50%;background-size:cover}.event-section__veil{pointer-events:none;background:#b8967147;position:absolute;inset:0;overflow:hidden}.event-section__veil:before,.event-section__veil:after{content:"";opacity:.36;filter:blur(.2px);background:url(/assets/decor/runtime/veil.png) 50%/contain no-repeat;position:absolute}.event-section__veil:before{width:140%;height:240px;top:3%;left:-32%;transform:rotate(-6deg)}.event-section__veil:after{width:125%;height:210px;bottom:13%;right:-44%;transform:rotate(9deg)scaleX(-1)}.event-section__frame{min-height:960px;padding-top:180px}.event-section__frame:before{background:#ffffffbd}.events-list{gap:26px;max-width:410px;margin:0 auto;display:grid}.event-block{text-align:center;justify-items:center;gap:12px;line-height:1.45;display:grid}.event-block__time{gap:4px;font-size:1.2rem;display:grid}.event-block p span{display:block}.event-block__location{gap:2px;display:grid}.event-block__venue{font-weight:700}.ornamental-rule{background:radial-gradient(circle at 50% 50%, var(--color-gold) 0 5px, transparent 6px), linear-gradient(90deg, transparent, #9b6a3d94, transparent);opacity:.72;width:210px;height:18px}.countdown{text-align:center;justify-items:center;gap:16px;max-width:410px;margin:42px auto 0;display:grid}.countdown h3{font-family:var(--font-script);margin:0;font-size:2.6rem;font-weight:400}.countdown__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;display:grid}.countdown__tile{background:#ffffffc2;border-radius:7px;min-width:0;padding:9px 4px 12px;box-shadow:inset 0 0 0 1px #2f2a2414,0 1px 4px #2f2a2433}.countdown__tile strong,.countdown__tile span{display:block}.countdown__tile strong{font-size:1.55rem;line-height:1.4}.countdown__tile span{margin-top:-3px;font-size:.8rem}.gallery-section{background:#fff;padding:0}.gallery-heading{z-index:3;background:linear-gradient(#fffaf1db, #fffaf1db), radial-gradient(circle at 20% 15%, #90a48733, transparent 38%), var(--color-paper);place-items:center;min-height:170px;padding:46px 24px 38px;display:grid;position:relative}.gallery-heading h2{color:var(--color-gold);font-family:var(--font-script);margin:0;font-size:4.9rem;font-weight:400;line-height:.9}.gallery-grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(86px,18vw,128px);gap:5px;width:100%;padding:5px;display:grid}.gallery-grid__item{background:var(--color-paper);min-width:0;min-height:0;margin:0;position:relative;overflow:hidden}.gallery-grid__open{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0}.gallery-grid__open img{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.gallery-grid__item:hover .gallery-grid__open img,.gallery-grid__open:focus-visible img{transform:scale(1.04)}.gallery-grid__item--1,.gallery-grid__item--2{grid-area:span 2/span 3}.gallery-grid__item--3{grid-area:span 2/span 6}.gallery-grid__item--4,.gallery-grid__item--5{grid-area:span 3/span 3}.gallery-grid__item--4 .gallery-grid__open img,.gallery-grid__item--5 .gallery-grid__open img{object-fit:contain}.gallery-grid__item--6,.gallery-grid__item--7,.gallery-grid__item--8{grid-area:span 2/span 2}.gallery-grid__item--9{grid-area:span 2/span 6}.gallery-grid__item--10,.gallery-grid__item--11{grid-area:span 2/span 3}.gallery-grid__item--12,.gallery-grid__item--13,.gallery-grid__item--14{grid-area:span 2/span 2}.gallery-grid__item--15{grid-area:span 2/span 6}.wedding-film{color:var(--color-ivory);font-family:var(--font-body);text-align:center;background:#111;place-items:center;margin:5px 0 0;padding:0;display:grid;position:relative}.wedding-film video{width:100%;height:auto;max-height:none;box-shadow:none;background:0 0;border:0;border-radius:0;display:block}.gallery-lightbox{z-index:2200;color:#fff;overscroll-behavior:contain;touch-action:pan-y;background:#120e0cf5;display:block;position:fixed;inset:0}.gallery-lightbox img{box-sizing:border-box;width:100%;height:100%;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));object-fit:contain;-webkit-user-select:none;user-select:none;display:block}.gallery-lightbox button{z-index:2;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:0;place-items:center;display:grid}.gallery-lightbox__close{top:max(12px, env(safe-area-inset-top));border-radius:50%;width:42px;height:42px;font-size:2rem;line-height:1;position:absolute;right:14px}.gallery-lightbox__nav{border-radius:0 999px 999px 0;width:48px;height:58px;font-size:3rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.gallery-lightbox__nav--previous{left:0}.gallery-lightbox__nav--next{border-radius:999px 0 0 999px;right:0}.gallery-lightbox__count{bottom:max(14px, env(safe-area-inset-bottom));text-align:center;font-family:var(--font-ui);letter-spacing:.1em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#120e0c94;border-radius:999px;padding:7px 12px;font-size:.82rem;position:absolute;left:50%;transform:translate(-50%)}.soundtrack-player{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:fixed}.rsvp-section{background:linear-gradient(#cfaa7473, #cfaa7473), var(--color-paper)}.rsvp-section .ornament-frame{min-height:760px;padding-bottom:120px}.rsvp-section .ornament-frame:before{border-radius:20px}.rsvp-layout{width:min(100%,390px);max-width:390px;margin:0 auto}.rsvp-form{text-align:left;gap:13px;display:grid}.rsvp-form h2{text-align:center}.rsvp-form>p{margin:0 0 8px;line-height:1.55}.rsvp-form label{gap:6px;display:grid}.rsvp-form input,.rsvp-form textarea{width:100%;min-height:42px;color:var(--color-ink);background:#ffffffdb;border:1px solid #2f2a2438;border-radius:5px;padding:12px 14px}.rsvp-form textarea{resize:vertical}.rsvp-select-field{text-align:center;justify-items:center;gap:7px;width:100%;display:grid;position:relative}.rsvp-select-field__label{text-align:left;justify-self:stretch}.rsvp-select{width:min(100%,330px);min-height:46px;color:var(--color-ink);background:linear-gradient(135deg,#fffaf1f0,#ffffffc7),#ffffffc2;border:1px solid #9b6a3d57;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;padding:10px 13px 10px 16px;display:inline-flex;box-shadow:0 10px 24px #2f2a241f}.rsvp-select .icon{width:17px;height:17px;color:var(--color-gold);flex:0 0 17px;transition:transform .18s}.rsvp-select--open .icon{transform:rotate(180deg)}.rsvp-select--invalid{border-color:#9b6a3dc2;box-shadow:0 0 0 3px #b8967133,0 10px 24px #2f2a241f}.rsvp-select__menu{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffaf1f5;border:1px solid #9b6a3d42;border-radius:18px;gap:6px;width:min(100%,330px);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 18px 40px #2f2a2433}.rsvp-select__option{width:100%;min-height:40px;color:var(--color-ink);text-align:center;background:0 0;border:0;border-radius:999px}.rsvp-select__option:hover,.rsvp-select__option:focus-visible,.rsvp-select__option--selected{background:#b8967138}.rsvp-form button{border-radius:0;width:100%;padding-inline:18px}.form-status{text-align:center;background:#90a48733;margin:0;padding:10px}.form-status--error{background:#9b6a3d29}.form-status--notice{background:#b896712e}.wishes-panel{z-index:4;text-align:center;background:#ffffffe6;border-radius:20px;max-height:450px;margin:42px 20px 80px;padding:18px 12px;position:relative;overflow:auto;box-shadow:0 1px 6px #2f2a243d}.wishes-panel article{border-bottom:1px solid #2f2a2429;padding:12px 4px}.wishes-panel article:last-child{border-bottom:0}.wishes-panel p{margin:0 0 8px;line-height:1.5}.wishes-panel strong{color:var(--color-gold);font-family:var(--font-script);font-size:2.35rem;font-weight:400;line-height:.9}.closing-section{background-position:50%;background-size:cover;place-items:start center;min-height:690px;padding:150px 28px 180px;display:grid}.closing-section__shade{background:#0000006b;position:absolute;inset:0}.wave-divider{z-index:2;background:var(--color-brass);clip-path:polygon(0 0,100% 0,100% 55%,88% 48%,76% 60%,64% 44%,52% 58%,40% 46%,28% 61%,16% 50%,0 62%);height:110px;position:absolute;top:-1px;left:0;right:0}.closing-section__copy{z-index:3;color:#fff;text-align:center;text-shadow:0 2px 10px #00000057;gap:0;max-width:390px;line-height:1.55;display:grid;position:relative}.closing-section__copy p{margin:0}@media (width<=430px){.closing-section{padding-top:116px}}.music-button{z-index:900;opacity:1;background:0 0;border:0;border-radius:50%;place-items:center;width:42px;height:42px;transition:opacity .28s,transform .42s cubic-bezier(.2,.82,.2,1);display:grid;position:fixed;bottom:96px;right:calc(50% - min(260px,50vw) + 26px);transform:translateY(0)scale(1)}.music-button span{border:5px solid var(--color-ink);background:radial-gradient(circle, #fff 0 4px, var(--color-ink) 5px 7px, transparent 8px), conic-gradient(from 0deg, var(--color-brass), #fff, var(--color-sage), var(--color-brass));border-radius:50%;width:36px;height:36px;animation:1.5s linear infinite spin;display:block;box-shadow:0 2px 8px #2f2a2447}.music-button--muted span{opacity:.72;animation-play-state:paused}.music-button--film-hidden{opacity:0;pointer-events:none;transform:translateY(14px)scale(.82)}.bottom-nav{z-index:900;width:max-content;max-width:calc(100vw - 28px);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px)saturate(1.08);backdrop-filter:blur(12px)saturate(1.08);opacity:0;pointer-events:none;background:#ffffffad;border-radius:999px;justify-content:center;align-items:center;gap:3px;padding:7px;transition:opacity .24s,transform .24s;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%,18px)}.bottom-nav--visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.bottom-nav--film-hidden{opacity:0;pointer-events:none;transform:translate(-50%,16px)scale(.96)}.bottom-nav__item{width:40px;min-height:38px;color:var(--color-ink);font-family:var(--font-ui);text-transform:uppercase;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;gap:0;font-size:.72rem;transition:width .26s,gap .22s,background .18s,color .18s;display:inline-flex;overflow:hidden}.bottom-nav__item .icon{flex:0 0 18px;width:18px;height:18px}.bottom-nav__item span{opacity:0;white-space:nowrap;max-width:0;transition:max-width .26s,opacity .18s,transform .22s;display:block;overflow:hidden;transform:translate(-4px)}.bottom-nav__item--active{background:#b8967142;gap:6px;width:92px}.bottom-nav__item--active span{opacity:1;max-width:62px;transform:translate(0)}.bottom-nav__item:hover,.bottom-nav__item:focus-visible{background:#b8967138}@keyframes coverFade{0%,45%{opacity:1}55%,to{opacity:0}}@keyframes swipePulse{0%,to{transform:translateY(0)rotate(45deg)}50%{transform:translateY(-7px)rotate(45deg)}}@keyframes cloudDrift{0%,to{transform:translate(-10px)}50%{transform:translate(18px,-8px)}}@keyframes vineSway{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.8deg)}}@keyframes lampSwing{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flowerBloom{0%{opacity:0;transform:scale(.16)}42%{opacity:1;transform:scale(1.08)}70%{opacity:1;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes flowerPreBurst{0%{opacity:1;transform:scale(1)}20%{opacity:1;transform:scale(.94,.9)translateY(6px)}48%{opacity:1;transform:scale(1.12,1.2)translateY(-8px)}72%{opacity:1;transform:scale(1.28,1.4)translateY(-18px)}88%{opacity:1;transform:scale(1.36,1.52)translateY(-22px)}to{opacity:0;transform:scale(.14,.1)translateY(-18px)}}@keyframes floralToss{0%{opacity:.82;transform:translate(0,0)rotate(0)scale(.55)}10%{opacity:.94;transform:translate3d(var(--burst-drift-x), var(--burst-drift-y), 0) rotate(var(--burst-drift-rotate)) scale(.72)}54%{opacity:.9;transform:translate3d(var(--burst-x), var(--burst-lift), 0) rotate(var(--burst-rotate)) scale(var(--burst-scale))}76%{opacity:.72;transform:translate3d(var(--burst-x), var(--burst-lift), 0) rotate(var(--burst-rotate)) scale(var(--burst-scale))}to{opacity:0;transform:translate3d(var(--burst-x), var(--burst-y), 0) rotate(var(--burst-rotate)) scale(var(--burst-scale))}}@keyframes sparkleFirework{0%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(.3)}14%{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1.18)}30%{opacity:.88;transform:translate(-50%,-50%)rotate(0)scale(.72)}52%{opacity:.96;transform:translate3d(calc(-50% + var(--sparkle-mid-x)), calc(-50% + var(--sparkle-mid-y)), 0) rotate(var(--sparkle-rotate)) scale(1.16)}68%{opacity:.88;transform:translate3d(calc(-50% + var(--sparkle-x)), calc(-50% + var(--sparkle-y)), 0) rotate(var(--sparkle-rotate)) scale(.78)}84%{opacity:.84;transform:translate3d(calc(-50% + var(--sparkle-x)), calc(-50% + var(--sparkle-y)), 0) rotate(var(--sparkle-rotate)) scale(var(--sparkle-scale))}to{opacity:0;transform:translate3d(calc(-50% + var(--sparkle-x)), calc(-50% + var(--sparkle-y)), 0) rotate(var(--sparkle-rotate)) scale(var(--sparkle-scale))}}@keyframes fireflyDrift{0%{opacity:0;transform:translate3d(calc(-50% + var(--sparkle-x)), calc(-50% + var(--sparkle-y)), 0) rotate(var(--sparkle-rotate)) scale(.28)}10%{opacity:.98;transform:translate3d(calc(-50% + var(--sparkle-x)), calc(-50% + var(--sparkle-y)), 0) rotate(var(--sparkle-rotate)) scale(1.06)}24%{opacity:.5;transform:translate3d(calc(-50% + var(--sparkle-wander-x)), calc(-50% + var(--sparkle-wander-y)), 0) rotate(var(--sparkle-wander-rotate)) scale(.58)}38%{opacity:1;transform:translate3d(calc(-50% + var(--sparkle-wander-x)), calc(-50% + var(--sparkle-wander-y)), 0) rotate(var(--sparkle-wander-rotate)) scale(1.12)}58%{opacity:.62;transform:translate3d(calc(-50% + var(--sparkle-drift-x)), calc(-50% + var(--sparkle-drift-y)), 0) rotate(var(--sparkle-drift-rotate)) scale(.68)}76%{opacity:.9;transform:translate3d(calc(-50% + var(--sparkle-drift-x)), calc(-50% + var(--sparkle-drift-y)), 0) rotate(var(--sparkle-drift-rotate)) scale(var(--sparkle-scale))}to{opacity:0;transform:translate3d(calc(-50% + var(--sparkle-drift-x)), calc(-50% + var(--sparkle-drift-y)), 0) rotate(var(--sparkle-drift-rotate)) scale(.18)}}@keyframes sparkleRing{0%,18%{opacity:0;transform:scale(.22)}34%{opacity:.58;transform:scale(1.4)}52%{opacity:0;transform:scale(2.5)}66%{opacity:.42;transform:scale(.8)}86%,to{opacity:0;transform:scale(2.25)}}@media (width<=520px){.rsvp-form{padding-inline:14px}.rsvp-form h2{margin-inline:-14px}}@media (width<=390px){.hero-cover__copy h2{font-size:3.4rem;line-height:1.05}.section-copy h2,.event-block h2,.rsvp-form h2,.closing-section__copy h2,.gallery-heading h2{font-size:3.8rem;line-height:1.05}.chandelier--left{left:28px}.chandelier--right{right:28px}.countdown__tile strong{font-size:1.3rem}}@media (width>=760px){.site-shell{padding:28px 0}.invitation{border-radius:22px}.cover-gate{width:min(100%,520px);margin:0 auto;box-shadow:0 0 60px #0000004d}.stage-foreground{display:block}.chandelier{width:66px;height:102px;display:block;top:24px}.chandelier--left{left:68px}.chandelier--right{right:68px}}@media (width>=521px){.hero-names{flex-direction:row;align-items:baseline}.bottom-nav{max-width:420px}}@media (prefers-reduced-motion:reduce){.stage-atmosphere,.physics-petal-field{display:none}.hero-cover__photo,.stage-cloud,.stage-vine,.stage-lamp,.music-button span,.swipe-hint__arrow{animation:none}}@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/amiri-400-latin.woff2)format("woff2")}@font-face{font-family:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/amiri-700-latin.woff2)format("woff2")}@font-face{font-family:Tangerine;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/tangerine-400-latin.woff2)format("woff2")}@font-face{font-family:Tangerine;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/tangerine-700-latin.woff2)format("woff2")}html{scroll-behavior:smooth}body{color:#2f2a24;letter-spacing:0;background:#2f2a24;min-width:320px;min-height:100vh;margin:0;font-family:Inter,Avenir,Helvetica,Arial,sans-serif;overflow-x:hidden}#root{min-height:100vh}a{color:inherit}
