:root{color:#273043;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f1e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:#eee4dc;min-height:100svh;overflow-x:hidden}body.intro-locked{overflow:hidden}.resource-loader{z-index:2200;color:#76504b;opacity:1;background:radial-gradient(circle at 50% 38%,#ffffffeb,#0000 35rem),#f6f1e8;place-content:center;justify-items:center;gap:1rem;transition:opacity .55s cubic-bezier(.16,1,.3,1),visibility .55s;display:grid;position:fixed;inset:0}.resource-loader.is-leaving{visibility:hidden;opacity:0}.resource-loader__monogram{aspect-ratio:1;border:1px solid #b28a4685;border-radius:50%;justify-content:center;align-items:center;width:5.8rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.8rem;font-style:italic;display:flex;position:relative;box-shadow:inset 0 0 0 .35rem #f6f1e8,inset 0 0 0 .4rem #b28a4638}.resource-loader__monogram:before{content:"";border:1px solid #b28a46;border-color:#b28a46 #b28a4642 #0000 #0000;border-radius:50%;animation:1.8s linear infinite loader-turn;position:absolute;inset:-.35rem}.resource-loader__monogram i{color:#b28a46;margin:0 -.08em;font-family:Great Vibes,cursive;font-size:.8em;font-style:normal}.resource-loader p{letter-spacing:.18em;text-transform:uppercase;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:.78rem}.resource-loader__line{background:#b28a462e;width:7rem;height:1px;position:relative;overflow:hidden}.resource-loader__line:after{content:"";background:linear-gradient(90deg,#0000,#b28a46,#0000);animation:1.6s cubic-bezier(.16,1,.3,1) infinite loader-line;position:absolute;inset:0;transform:translate(-100%)}.resources-loading>.invitation-page,.resources-loading>.invitation-opening{visibility:hidden;pointer-events:none}.resources-loading .invitation-opening *,.resources-loading .invitation-page *{animation-play-state:paused!important}@keyframes loader-turn{to{transform:rotate(360deg)}}@keyframes loader-line{55%,to{transform:translate(100%)}}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}::selection{color:#fbf8f0;background:#17233a}:root{--ivory:#f8f4ea;--paper:#fbf8f0;--paper-shadow:#ddd3c1;--navy:#17233a;--navy-soft:#24344f;--gold:#b7934b;--gold-light:#e9d59b;--dusty-pink:#d8aaa8;--olive:#718064;--peach:#e6b49a;--ink:#273043}.top-flap-light{opacity:.12;pointer-events:none;transition:opacity 2s cubic-bezier(.25,1,.5,1)}.is-opening .top-flap-light,.is-open .top-flap-light{opacity:.68}.wedding-site{color:#4b2930;background:radial-gradient(circle at 16% 5%,#ffffffd9,#0000 25rem),#eee4dc;min-height:100svh}.invitation-page{--wine:#6e2636;--wine-dark:#4c1724;--rose:#d8a7a5;--blush:#ead5ce;--soft-ivory:#fbf6ed;--leaf:#687058;--script:"Segoe Script", "Snell Roundhand", "URW Chancery L", cursive;--serif:"Baskerville", "Iowan Old Style", "Palatino Linotype", Georgia, serif;background:var(--soft-ivory);width:min(100%,780px);min-height:100svh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 4.5rem #4c27232e}.section-kicker{color:var(--gold);font-family:var(--serif);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:600}.paper-flow{z-index:1;background:var(--soft-ivory);position:relative}.paper-section{isolation:isolate;text-align:center;padding:clamp(5rem,13vw,8rem) clamp(1.4rem,7vw,4.5rem);position:relative}.section-inner{z-index:2;width:min(100%,38rem);margin:0 auto;position:relative}.paper-section h2{color:var(--wine-dark);font-family:var(--script);letter-spacing:-.045em;margin:.55rem 0 1.1rem;font-size:clamp(2.25rem,7vw,3.75rem);font-weight:400;line-height:1.05}.floral-section:after{content:"";z-index:-1;opacity:.07;mix-blend-mode:multiply;pointer-events:none;background-image:url(/assets/backdrop-C90ivGlL.png);background-position:bottom;background-repeat:no-repeat;background-size:135%;position:absolute;inset:0}.section-copy{color:#4b2930b3;font-family:var(--serif);font-size:clamp(.88rem,2.5vw,1rem);line-height:1.75}.floating-invitation-controls{z-index:40;align-items:center;gap:.5rem;display:flex;position:fixed;bottom:.9rem;right:.9rem}.replay-opening,.music-toggle{color:var(--wine-dark);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;font-family:var(--serif);background:#fbf6ede0;border:1px solid #b7934b5c;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;font-size:.65rem;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,background-color .25s;display:flex;box-shadow:0 .65rem 1.6rem #3f252029}.replay-opening{padding:.72rem .9rem}.music-toggle{width:2.75rem;height:2.75rem;padding:0}.music-toggle svg{fill:currentColor;width:1.05rem}.replay-opening:hover,.replay-opening:focus-visible,.music-toggle:hover,.music-toggle:focus-visible{background:#fffcf5fa;transform:translateY(-2px);box-shadow:0 .8rem 1.8rem #3f252038}.replay-opening:focus-visible,.music-toggle:focus-visible{outline-offset:2px;outline:2px solid #b7934bb8}@media (width<=560px){.floating-invitation-controls{bottom:.65rem;right:.65rem}.replay-opening{padding:.62rem .75rem}.music-toggle{width:2.5rem;height:2.5rem}}@media (width<=760px),(pointer:coarse){.paper-section,.wedding-footer{content-visibility:auto;contain-intrinsic-size:auto 44rem}.replay-opening,.music-toggle{-webkit-backdrop-filter:none;backdrop-filter:none}}.invitation-page{--stationery:#fbf7ee;--stationery-deep:#f3eadb;--antique-gold:#b28a46;--antique-gold-light:#d9bd7b;color:#513d3c;background:repeating-linear-gradient(98deg, #725b3c05 0 1px, transparent 1px 7px), linear-gradient(90deg, #f4ebdc, var(--stationery) 12%, var(--stationery) 88%, #f4ebdc)}.paper-flow{isolation:isolate;background:repeating-linear-gradient(88deg, #6e593d04 0 1px, transparent 1px 6px), radial-gradient(circle at 50% 5%, #ffffff9e, transparent 26rem), linear-gradient(90deg, #f5ede0, var(--stationery) 10%, var(--stationery) 90%, #f5ede0)}.paper-flow:before{content:"";z-index:-1;opacity:.055;mix-blend-mode:multiply;pointer-events:none;background-image:url(/assets/backdrop-C90ivGlL.png),url(/assets/backdrop-C90ivGlL.png);background-position:top,bottom;background-repeat:no-repeat,no-repeat;background-size:136%,136%;position:absolute;inset:0}.paper-section{color:#513d3c;background:0 0}.floral-section:after{opacity:.045;background-size:142%}.section-kicker{color:#9e7a3d;font-weight:500}.paper-section h2{color:#78524d;font-family:"Bickham Script Pro", "Edwardian Script ITC", var(--script)}.rolling-number{aspect-ratio:3;place-items:center;width:3.15ch;height:1.05em;font-weight:400;position:relative;overflow:hidden;color:#85663b!important;letter-spacing:0!important;text-transform:none!important;font-size:clamp(2.5rem,10vw,5rem)!important;line-height:1!important;display:grid!important}.rolling-number__value{color:#85663b;width:100%;height:100%;font-family:var(--serif);font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px #fff;place-items:center;font-weight:400;line-height:1;display:grid;position:absolute;inset:0;font-size:inherit!important}@media (width<=560px){.paper-flow:before{background-size:175%,175%}.rolling-number{width:2.75ch;font-size:clamp(1.75rem,8.1vw,2.5rem)!important}}.invitation-opening{z-index:1000;isolation:isolate;box-sizing:border-box;min-height:100dvh;color:var(--ink);background:0 0;grid-template-rows:1fr;place-items:center;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}.invitation-opening:before,.invitation-opening:after{content:"";z-index:-2;aspect-ratio:1;opacity:.7;border:1px solid #b7934b26;border-radius:50%;width:min(44vw,32rem);position:absolute}.invitation-opening:before{top:min(-15vw,-5rem);left:min(-18vw,-7rem);box-shadow:0 0 0 1.8rem #b7934b06,0 0 0 4.2rem #b7934b05}.invitation-opening:after{bottom:min(-18vw,-6rem);right:min(-20vw,-8rem);box-shadow:0 0 0 2.2rem #71806406,0 0 0 4.8rem #d8aaa806}.ambient-glow{z-index:-1;aspect-ratio:1;filter:blur(70px);pointer-events:none;opacity:.16;border-radius:50%;width:min(32rem,62vw);position:absolute}.ambient-glow--gold{background:var(--gold-light);top:-18%;right:-8%}.ambient-glow--pink{background:var(--dusty-pink);bottom:-21%;left:-10%}.motes{pointer-events:none;position:absolute;inset:0;overflow:hidden}.motes span{left:var(--mote-x);top:var(--mote-y);width:3px;height:3px;animation:mote-drift var(--mote-duration) var(--mote-delay) ease-in-out infinite;background:#b7934b8c;border-radius:50%;position:absolute;box-shadow:0 0 8px #e9d59bcc}.opening-kicker,.opening-date{z-index:20;color:#17233aad;letter-spacing:.25em;text-transform:uppercase;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(.78rem,1.45vw,.98rem);position:fixed}.opening-kicker{white-space:nowrap;font-weight:600;top:clamp(1rem,3vh,2rem);left:50%;transform:translate(-50%)}.opening-date{white-space:nowrap;bottom:clamp(.8rem,2.4vh,1.5rem);left:50%;transform:translate(-50%)}.opening-kicker:before,.opening-kicker:after{content:"";background:linear-gradient(90deg,#0000,#b7934bb8);width:clamp(1.2rem,4vw,3.6rem);height:1px;margin:0 .8rem .25rem;display:inline-block}.opening-kicker:after{background:linear-gradient(90deg,#b7934bb8,#0000);margin:0 0 .25rem .8rem}.opening-stage{perspective:1600px;width:100vw;height:100dvh;padding:0;position:absolute;inset:0}.envelope-shell{aspect-ratio:auto;width:100vw;height:100dvh;max-height:none;transform-style:preserve-3d;filter:none;animation:1.15s cubic-bezier(.2,.75,.22,1) both envelope-arrive;position:absolute;inset:0}.envelope-shell:after{content:"";z-index:-1;filter:blur(16px);background:#3f311d2b;border-radius:50%;height:8%;display:none;position:absolute;bottom:-4.5%;left:9%;right:9%}.invitation-preview,.envelope-svg{position:absolute;inset:0}.envelope-svg{z-index:2;opacity:1;width:100%;height:100%;transform-style:preserve-3d;will-change:opacity;transition:opacity 1.4s cubic-bezier(.25,1,.5,1) 5s;overflow:visible}.invitation-preview{z-index:0;box-sizing:border-box;opacity:0;filter:blur(5px);transform-origin:bottom;will-change:transform, opacity, filter;padding:clamp(.65rem,2.2vw,1rem);transition:opacity .78s cubic-bezier(.25,1,.5,1) .76s,filter .85s cubic-bezier(.25,1,.5,1) .76s,transform .9s cubic-bezier(.16,1,.3,1) .76s;display:none;transform:translateY(4%)scale(.975)}.invitation-frame{box-sizing:border-box;outline-offset:-7px;background:radial-gradient(circle at 50% 38%, #ffffffeb, transparent 43%), repeating-linear-gradient(102deg, #977f5606 0 1px, transparent 1px 6px), var(--paper);border:1px solid #b7934b9e;outline:1px solid #b7934b33;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:clamp(1.6rem,5vw,3.6rem) clamp(1.25rem,4vw,2.8rem);transition:filter .9s cubic-bezier(.25,1,.5,1) .76s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 2rem #8e6f3d14}.invitation-frame:before{content:"";z-index:0;opacity:.08;pointer-events:none;background:radial-gradient(circle at 50% 20%,#fff6cac7 0,#fff9e242 34%,#0000 65%);transition:opacity .9s cubic-bezier(.25,1,.5,1) .76s;position:absolute;inset:0}.invitation-frame>*{z-index:1}.corner{opacity:.56;width:4.5rem;height:4.5rem;position:absolute}.corner:before,.corner:after{content:"";transform-origin:0;border:1px solid #718064cc;border-radius:100% 0;position:absolute}.corner:before{width:3.6rem;height:1.15rem;top:1rem;left:.6rem;transform:rotate(38deg)}.corner:after{border-color:#d8aaa8e6;width:2.8rem;height:.9rem;top:2rem;left:1.25rem;transform:rotate(62deg)}.corner--top-left{top:.3rem;left:.2rem}.corner--top-right{top:.3rem;right:.2rem;transform:scaleX(-1)}.corner--bottom-left{bottom:.3rem;left:.2rem;transform:scaleY(-1)}.corner--bottom-right{bottom:.3rem;right:.2rem;transform:scale(-1)}.preview-monogram{aspect-ratio:1;width:clamp(2.5rem,8vw,3.3rem);color:var(--gold);letter-spacing:-.08em;border:1px solid #b7934bb3;border-radius:50%;place-content:center;margin-bottom:clamp(.8rem,2.3vh,1.35rem);font-family:Georgia,Times New Roman,serif;font-size:clamp(.88rem,2.6vw,1.15rem);display:grid}.preview-monogram span{margin:0 .08em;font-size:.62em;font-style:italic}.preview-overline,.preview-story,.preview-subtitle,.invitation-frame time{margin:0}.preview-overline{color:#273043a8;letter-spacing:.04em;font-family:Georgia,Times New Roman,serif;font-size:clamp(.55rem,1.7vw,.76rem);font-style:italic}.preview-story{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;margin-top:.38rem;font-size:clamp(.54rem,1.6vw,.7rem);font-weight:600}.invitation-frame h1{color:var(--navy);letter-spacing:-.055em;text-align:center;gap:.03em;margin:clamp(.75rem,2.4vh,1.45rem) 0 clamp(.65rem,2vh,1.1rem);font-family:Baskerville,Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(2rem,8.5vw,4.6rem);font-weight:400;line-height:.83;display:grid}.invitation-frame h1 span{color:var(--gold);font-family:Segoe Script,Snell Roundhand,cursive;font-size:.43em;line-height:1.2}.ornament{width:min(66%,14rem);color:var(--gold);align-items:center;gap:.65rem;margin-bottom:clamp(.65rem,2vh,1rem);font-size:.7rem;display:flex}.ornament i{background:linear-gradient(90deg,#0000,#b7934bbf);flex:1;height:1px}.ornament i:last-child{transform:scaleX(-1)}.ornament b{font-weight:400}.invitation-frame time{color:var(--navy-soft);letter-spacing:.22em;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.2vw,.96rem)}.preview-subtitle{color:#2730439e;margin-top:.58rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(.54rem,1.6vw,.7rem);font-style:italic}.flap{transform-box:fill-box;backface-visibility:hidden;will-change:transform, opacity}.flap-surface{stroke:#775e3724;stroke-width:1px;vector-effect:non-scaling-stroke}.flap-pattern{opacity:.11;mix-blend-mode:multiply;pointer-events:none}.flap--backing{opacity:1;transition:opacity 1.6s cubic-bezier(.25,1,.5,1) 3.8s}.flap-side-layer{isolation:isolate}.flap--top{transform-origin:top;filter:drop-shadow(0 6px 8px #0000001f);transition:transform 6.4s cubic-bezier(.22,1,.36,1),opacity 2.2s cubic-bezier(.25,1,.5,1) 4.2s,filter 6.4s cubic-bezier(.25,1,.5,1)}.flap--left{transform-origin:0;transition:transform 6s cubic-bezier(.22,1,.36,1) .36s,opacity 2.1s cubic-bezier(.25,1,.5,1) 4.1s}.flap--right{transform-origin:100%;transition:transform 6s cubic-bezier(.22,1,.36,1) .36s,opacity 2.1s cubic-bezier(.25,1,.5,1) 4.1s}.flap--bottom{transform-origin:50% 100%;transition:transform 5.6s cubic-bezier(.22,1,.36,1) .72s,opacity 2.1s cubic-bezier(.25,1,.5,1) 4.1s}.fold-light{opacity:0;filter:blur(4px);transform-box:fill-box;transform-origin:50%;pointer-events:none}.envelope-outline{stroke:#977b4857;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none;transition:opacity 1.2s cubic-bezier(.25,1,.5,1) 5s}.seal-anchor{z-index:10;aspect-ratio:1;width:clamp(8rem,29vw,11.5rem);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.seal-container{width:100%;height:100%;animation:32s linear infinite seal-idle-rotate;position:relative}.wax-seal{color:#f2dca1;cursor:pointer;filter:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;place-items:center;width:100%;height:100%;padding:0;transition:filter .25s;display:grid;position:absolute;inset:0}.wax-seal:hover{filter:drop-shadow(0 0 .7rem #b7934b4d)}.wax-seal:focus-visible{outline:2px solid var(--gold);outline-offset:7px}.wax-seal:active{filter:brightness(.96)}.seal-halo{opacity:0;border:1px solid #e9d59bb8;border-radius:50%;position:absolute;inset:-18%;transform:scale(.55)}.seal-half{pointer-events:none;will-change:transform, opacity;transition:transform 2.4s cubic-bezier(.25,1,.35,1),opacity 2s cubic-bezier(.25,1,.5,1),filter 2.4s cubic-bezier(.25,1,.5,1);position:absolute;inset:0;overflow:visible;transform:translate(0)rotate(0)}.seal-half--left{clip-path:inset(0 50% 0 0);transform-origin:40%}.seal-half--right{clip-path:inset(0 0 0 50%);transform-origin:60%}.seal-half img{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;-webkit-user-drag:none;width:128%;height:128%;position:absolute;inset:-14%}.seal-container:is(.is-cracking,.is-open),.invitation-opening:is(.is-cracking,.is-opening,.is-open) .seal-anchor{animation-play-state:paused}.seal-container.is-open .seal-half--left{opacity:0;transform:translate(-125%)rotate(-8deg)translateY(-8px)}.seal-container.is-open .seal-half--right{opacity:0;transform:translate(125%)rotate(8deg)translateY(-8px)}.seal-container.is-cracking .seal-half{filter:brightness(1.065)drop-shadow(0 0 9px #ffd06985)}.crack-overlay{z-index:3;visibility:hidden;opacity:0;pointer-events:none;width:106%;height:106%;transition:opacity .3s cubic-bezier(.25,1,.5,1);position:absolute;inset:-3%;overflow:visible}.crack-line{fill:none;stroke:#1a0d00;stroke-width:2.45px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(1px 1px 1px #fff9);vector-effect:non-scaling-stroke;opacity:.72;transition:stroke-dashoffset 1.8s cubic-bezier(.25,1,.5,1)}.crack-line--branch{stroke-width:1.55px;opacity:.64;transition-duration:1.3s;transition-delay:.44s}.seal-container.is-cracking .crack-overlay{visibility:visible;opacity:1}.seal-container.is-cracking .crack-line,.seal-container.is-open .crack-line{stroke-dashoffset:0}.seal-container.is-open .crack-overlay{visibility:visible;opacity:0}.seal-face{pointer-events:none;width:100%;height:100%;overflow:visible}.seal-face--legacy{display:none}.seal-outer-wax{filter:drop-shadow(0 6px 12px #0000004d)}.seal-inner-rim{stroke:#070f1db3;stroke-width:2.4px}.seal-rim-edge{stroke:#efd99f8f;stroke-width:1px;filter:drop-shadow(0 1px 1px #0000007a)}.seal-stamp{filter:drop-shadow(0 1px 2px #0006)}.seal-monogram{fill:#f1d797;stroke:#fff6d557;stroke-width:.35px;paint-order:stroke fill;letter-spacing:-2px;font-family:Georgia,Times New Roman,serif;font-size:25px;font-style:italic}.seal-date{fill:#f1d797d6;letter-spacing:1.15px;font-family:Georgia,Times New Roman,serif;font-size:6.4px}.stamp-highlight{fill:#fff7dc5c;filter:none}.stamp-highlight--monogram{letter-spacing:-2px;font-family:Georgia,Times New Roman,serif;font-size:25px;font-style:italic}.stamp-highlight--date{letter-spacing:1.15px;font-family:Georgia,Times New Roman,serif;font-size:6.4px}.opening-instruction{z-index:20;color:#273043a3;letter-spacing:.04em;white-space:nowrap;align-items:center;gap:.55rem;min-height:1.5rem;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(.9rem,2vw,1.08rem);font-style:italic;transition:opacity .35s;display:flex;position:fixed;bottom:clamp(2.4rem,5vh,3.6rem);left:50%;transform:translate(-50%)}.tap-mark{background:var(--gold);border:1px solid #fff4c9eb;border-radius:50%;width:.55rem;height:.55rem;animation:1.65s cubic-bezier(.16,1,.3,1) infinite tap-pulse;box-shadow:0 0 #b7934ba3,0 0 .65rem #b7934bb8}.opening-date{letter-spacing:.2em}.replay-button{z-index:30;color:var(--navy);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#fbf8f0d1;border:1px solid #b7934b5c;border-radius:999px;align-items:center;gap:.45rem;padding:.7rem .9rem;font-family:Georgia,Times New Roman,serif;font-size:.72rem;animation:.55s both replay-arrive;display:inline-flex;position:fixed;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);box-shadow:0 .5rem 1.4rem #3f311d1a}.replay-button:hover{background:var(--paper);border-color:#b7934bc7}.replay-button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.is-cracking .seal-halo{animation:1.5s cubic-bezier(.25,1,.5,1) both seal-warmup}.is-opening .fold-light{animation:1.6s cubic-bezier(.25,1,.5,1) both folds-ignite}.is-opening .seal-halo{animation:1s cubic-bezier(.16,1,.3,1) both halo-release}.is-opening .wax-seal,.is-open .wax-seal{pointer-events:none}.is-opening .flap--top,.is-open .flap--top{opacity:0;filter:drop-shadow(0 15px 20px #00000040)brightness(1.08);transform:perspective(900px)rotateX(-180deg)}.is-opening .flap--left,.is-open .flap--left{opacity:0;transform:perspective(900px)translate(-48%)rotateY(72deg)rotate(-5deg)}.is-opening .flap--right,.is-open .flap--right{opacity:0;transform:perspective(900px)translate(48%)rotateY(-72deg)rotate(5deg)}.is-opening .flap--bottom,.is-open .flap--bottom{opacity:0;transform:perspective(900px)translateY(45%)rotateX(68deg)}.is-opening .flap--backing,.is-open .flap--backing,.is-opening .envelope-outline,.is-open .envelope-outline{opacity:0}.is-opening .invitation-preview,.is-open .invitation-preview{opacity:1;filter:blur();transform:translateY(0)scale(1)}.is-opening .invitation-frame,.is-open .invitation-frame{filter:brightness(1.045)drop-shadow(0 1.2rem 2rem #3c2d1626)}.is-opening .invitation-frame:before,.is-open .invitation-frame:before{opacity:.52}.is-opening .envelope-svg,.is-open .envelope-svg{opacity:0}.is-opening .envelope-shell:after,.is-open .envelope-shell:after{opacity:0;transform:scaleX(.62)translateY(-32%)}@keyframes envelope-arrive{0%{opacity:0;filter:brightness(.96);transform:none}to{opacity:1;filter:brightness();transform:none}}@keyframes seal-idle-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tap-pulse{0%{opacity:1;transform:scale(.9);box-shadow:0 0 #b7934bb8,0 0 .65rem #b7934bbf}65%{opacity:.92;transform:scale(1.12);box-shadow:0 0 0 .8rem #b7934b00,0 0 1rem #b7934bad}to{opacity:1;transform:scale(.9);box-shadow:0 0 #b7934b00,0 0 .65rem #b7934bb8}}@keyframes halo-release{0%{opacity:.92;transform:scale(1.1)}to{opacity:0;transform:scale(1.55)}}@keyframes seal-warmup{0%{opacity:0;transform:scale(.62)}32%{opacity:.38}72%{opacity:.76;transform:scale(.98)}to{opacity:.92;transform:scale(1.1)}}@keyframes seal-release{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}28%{opacity:1;transform:translate(-50%,-57%)scale(1.09)rotate(-2deg)}70%{opacity:.9;transform:translate(-50%,-70%)scale(.88)rotate(5deg)}to{opacity:0;transform:translate(-50%,-76%)scale(.46)rotate(8deg)}}@keyframes folds-ignite{0%{opacity:0;filter:blur(7px);transform:scale(.82)}38%{opacity:.9}to{opacity:0;filter:blur(2px);transform:scale(1.08)}}@keyframes mote-drift{0%,to{opacity:.08;transform:translate(0,0)scale(.75)}45%{opacity:.62;transform:translate(.45rem,-1.3rem)scale(1.05)}75%{opacity:.28;transform:translate(-.35rem,-2rem)scale(.9)}}@keyframes replay-arrive{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media (width<=560px){.invitation-opening{padding:0}.opening-kicker{letter-spacing:.18em;font-size:.76rem}.opening-kicker:before,.opening-kicker:after{width:1rem;margin-right:.45rem}.opening-kicker:after{margin-left:.45rem;margin-right:0}.envelope-shell{width:100vw;height:100dvh;max-height:none}.opening-stage{padding:0}.opening-date{letter-spacing:.15em;text-align:center;max-width:none;font-size:.7rem}.opening-instruction{font-size:.94rem}.seal-anchor{width:clamp(8rem,35vw,9.5rem)}.replay-button{padding:.6rem .72rem;font-size:.65rem;bottom:.65rem;right:.75rem}}@media (width<=760px),(pointer:coarse){.ambient-glow,.motes{display:none}.opening-stage,.envelope-shell{contain:layout paint style}.envelope-shell{animation-name:envelope-arrive-mobile}.flap--top,.flap--left,.flap--right,.flap--bottom,.seal-half{transition-property:transform,opacity}.invitation-opening:is(.is-cracking,.is-opening,.is-open) .flap-surface,.invitation-opening:is(.is-cracking,.is-opening,.is-open) .flap-pattern{filter:none!important}.invitation-opening:is(.is-cracking,.is-opening,.is-open) .flap-pattern{opacity:.075;mix-blend-mode:normal}.invitation-opening:is(.is-cracking,.is-opening,.is-open) .flap-embroidery{opacity:.14!important;mix-blend-mode:normal!important}.invitation-opening:is(.is-cracking,.is-opening,.is-open) .flap--top,.invitation-opening.is-cracking .seal-half{filter:none!important}.invitation-opening:is(.is-cracking,.is-opening,.is-open) .seal-anchor{animation-play-state:paused}.flap-side-layer{isolation:auto}.fold-light{display:none}.crack-line,.wax-seal:hover{filter:none}}@keyframes envelope-arrive-mobile{0%{opacity:0}to{opacity:1}}@media (height<=690px){.invitation-opening{padding:0}.envelope-shell{width:100vw;height:100dvh;max-height:none}.opening-stage{padding:0}.opening-instruction{margin:0}}@media (prefers-reduced-motion:reduce){.motes span,.wax-seal,.seal-container,.tap-mark,.envelope-shell,.replay-button{animation:none}.invitation-preview,.flap,.fold-lines,.envelope-outline,.envelope-shell:after{transition-duration:.35s;transition-delay:0s}.is-opening .fold-light,.is-opening .seal-halo,.is-opening .wax-seal{animation-duration:.35s;animation-delay:0s}}.invitation-opening.is-opening .opening-kicker,.invitation-opening.is-opening .opening-date,.invitation-opening.is-opening .opening-instruction,.invitation-opening.is-open .opening-kicker,.invitation-opening.is-open .opening-date,.invitation-opening.is-open .opening-instruction{opacity:0;transition:opacity .6s}.wedding-hero{--hero-art-spill:clamp(7rem, 16vw, 11rem);z-index:4;isolation:isolate;color:#5c3832;background:#ede0d6;place-items:center;width:100%;min-height:100dvh;display:grid;position:relative;overflow:visible}.wedding-hero__art-container{width:100%;height:calc(100% + var(--hero-art-spill));z-index:-3;pointer-events:none;display:block;position:absolute;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000 0 88%,#000000f0 92%,#00000094 96%,#0000 100%);mask-image:linear-gradient(#000 0 88%,#000000f0 92%,#00000094 96%,#0000 100%)}.wedding-hero__art{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.wedding-hero__veil{z-index:-2;pointer-events:none;background:radial-gradient(at 50% 26%,#fff8f06b 0%,#0000 62%),linear-gradient(#fff8f026 0%,#0000 32%);position:absolute;inset:0}.hero-petals{z-index:-1;pointer-events:none;position:absolute;inset:0}.hero-petals i{top:-8%;left:var(--petal-left);width:var(--petal-width);height:var(--petal-height);filter:blur(.15px);animation:petal-fall var(--petal-duration) linear infinite;animation-delay:var(--petal-delay);background:#c0757f73;border-radius:90% 15% 75% 25%;position:absolute}body.intro-locked .hero-petals i,body.intro-locked .scroll-cue__chevron{animation-play-state:paused}.hero-flower-burst{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-flower-burst i{width:var(--burst-width);height:var(--burst-height);background:var(--burst-colour);opacity:0;transform-origin:50%;animation:flower-party-burst var(--burst-duration) cubic-bezier(.22, .65, .35, 1) var(--burst-delay) both;border-radius:90% 15% 75% 25%;position:absolute;bottom:9%;left:50%;box-shadow:0 1px 2px #66423621}.wedding-hero__content{text-align:center;z-index:2;background:0 0;border:0;outline:0;flex-direction:column;justify-content:flex-start;place-self:center;align-items:center;width:min(88%,34rem);margin:0;padding:0;display:flex;position:relative}.wedding-hero__content:before,.wedding-hero__content:after{content:none}.hero-eyebrow{color:#6e433b;letter-spacing:.02em;text-shadow:0 1px 2px #fffcf5d9;margin:0;font-family:Great Vibes,Pinyon Script,Alex Brush,cursive;font-size:clamp(1.8rem,5.5vw,2.7rem);font-style:normal;font-weight:400;line-height:1.1}.wedding-hero__content>time{color:#6e433b;font-family:"Cormorant Garamond", var(--serif);letter-spacing:.26em;text-shadow:0 1px 2px #fffcf5d9;margin-top:.2rem;font-size:clamp(.74rem,2.2vw,.95rem);font-weight:500;display:block}.wedding-hero h1{color:#5c3832;letter-spacing:.01em;text-align:center;text-shadow:0 1px 3px #fffcf5e6;flex-direction:column;justify-content:center;align-items:center;gap:0;margin-top:clamp(1.1rem,3.5vh,2.1rem);margin-bottom:0;font-family:Great Vibes,Pinyon Script,Alex Brush,cursive;font-size:clamp(3.2rem,11vw,5.8rem);font-weight:400;line-height:.96;display:flex}.wedding-hero h1 span{color:#8c6152;text-shadow:0 1px 2px #fffcf5cc;margin:.15em 0;font-family:Great Vibes,Pinyon Script,Alex Brush,cursive;font-size:.44em;font-weight:400;line-height:1;display:block}.scroll-cue{right:0;bottom:max(clamp(1.25rem, 3.5vh, 2.5rem), env(safe-area-inset-bottom,0px));color:#4f2e29;white-space:nowrap;z-index:2;text-shadow:0 1px #fffcf5fa,0 2px 1px #4f2d2638,0 4px 10px #4f2d2633;flex-direction:column;align-items:center;gap:.4rem;width:max-content;margin-inline:auto;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(1.55rem,4.8vw,2.1rem);font-weight:700;text-decoration:none;transition:color .25s,opacity .25s;display:flex;position:absolute;left:0}.scroll-cue span{-webkit-text-stroke:.35px currentColor;background:0 0;width:auto;height:auto;line-height:1;animation:none}.scroll-cue:hover{color:#4a2d27}.scroll-cue__chevron{color:#765022;filter:drop-shadow(0 1px #fff8e2eb)drop-shadow(0 3px 4px #4a2b1d4d);animation:2.1s cubic-bezier(.45,0,.55,1) infinite scroll-bounce;overflow:visible}.scroll-cue__chevron-line--lower{opacity:.82}@keyframes scroll-bounce{0%,to{opacity:.72;transform:translateY(0)}50%{opacity:1;transform:translateY(7px)}}@keyframes petal-fall{0%{opacity:0;transform:translateY(-5vh)rotate(0)}10%{opacity:.75}90%{opacity:.5}to{opacity:0;transform:translate3d(var(--petal-drift), 112vh, 0) rotate(390deg)}}@keyframes flower-party-burst{0%{opacity:0;transform:translate(-50%)rotate(0)scale(.2)}7%{opacity:1}34%{opacity:1;transform:translate3d(calc(-50% + var(--burst-peak-x)), var(--burst-peak-y), 0) rotate(var(--burst-rotation)) scale(1)}82%{opacity:.88}to{opacity:0;transform:translate3d(calc(-50% + var(--burst-land-x)), var(--burst-land-y), 0) rotate(calc(var(--burst-rotation) + 180deg)) scale(.72)}}@media (width>=768px){.wedding-hero__art{object-position:center center}.wedding-hero__content{width:min(80%,38rem)}.wedding-hero h1{font-size:clamp(4.2rem,7.5vw,6.4rem)}.scroll-cue{bottom:max(clamp(1.5rem, 4vh, 3rem), env(safe-area-inset-bottom,0px))}}@media (width<=560px){.wedding-hero__content{width:90%}.hero-eyebrow{font-size:clamp(1.6rem,6.5vw,2.3rem)}.wedding-hero h1{font-size:clamp(3rem,13vw,4.4rem)}.scroll-cue{bottom:max(1.15rem, env(safe-area-inset-bottom,0px))}.hero-petals i{filter:none}.hero-flower-burst i:nth-child(n+21){display:none}}@media (prefers-reduced-motion:reduce){.hero-flower-burst i,.hero-petals i,.scroll-cue__chevron{animation:none}}.story-section{--story-overlap:clamp(9rem, 20vw, 13rem);--story-art-clearance:clamp(7rem, 16vw, 11rem);z-index:0;margin-top:calc(var(--story-overlap) * -1);color:#523732;padding-top:calc(var(--story-overlap) + var(--story-art-clearance) + clamp(1.5rem, 4vw, 2.5rem));box-shadow:none;background:linear-gradient(#dfd7cf00 0,#dfd7cfb8 4rem,#dfd7cf 8rem 100%);margin-bottom:0;padding-bottom:clamp(4.5rem,11vw,6.5rem);position:relative}.torn-paper-edge{z-index:10;pointer-events:none;width:102%;height:54px;line-height:0;position:absolute;left:-1%;overflow:visible}.torn-paper-svg{width:100%;height:100%;display:block;overflow:visible}.torn-paper-edge--top{top:-28px}.torn-paper-edge--bottom{bottom:-28px}.story-script-heading{color:#63403a;text-shadow:0 1px #fff9;margin:.5rem 0 .2rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.4rem,7.5vw,3.8rem);font-weight:400;line-height:1.1}.story-script-subheading{color:#7a544d;margin:0 0 1.6rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(1.8rem,5.5vw,2.7rem);font-weight:400;line-height:1.2}.story-body{color:#5c3f39;max-width:31rem;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;margin:0 auto 2.2rem;font-size:clamp(.98rem,2.8vw,1.15rem);font-weight:500;line-height:1.7}.family-block{font-family:"Cormorant Garamond", var(--serif), Georgia, serif;gap:.8rem;margin:2.1rem auto;display:grid}.family-block p{gap:.25rem;margin:0;display:grid}.family-block strong{color:#4a2d28;font-size:clamp(1.1rem,3.8vw,1.4rem);font-weight:600}.family-block span,.invitation-intro{color:#6b4c46;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;font-size:clamp(.92rem,2.6vw,1.05rem);line-height:1.7}.family-and{color:#8c6152;font-family:Great Vibes,Pinyon Script,cursive;font-size:1.8rem;font-style:normal}.invitation-intro{max-width:29rem;margin:1.8rem auto 0;font-style:italic}.couple-names{color:#54342f;flex-direction:column;align-items:center;gap:0;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.8rem,9vw,4.5rem);font-weight:400;line-height:.95;display:flex;margin:1.4rem 0!important}.couple-names span{color:#8c6152;font-family:Great Vibes,Pinyon Script,cursive;font-size:.44em;font-style:normal}.story-section blockquote{color:#6b4740;max-width:28rem;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;border-top:1px solid #8c61524d;margin:2rem auto 0;padding-top:1.5rem;font-size:clamp(.98rem,3vw,1.25rem);font-style:italic;line-height:1.65}.countdown-section{text-align:center;color:#523732;isolation:isolate;background:0 0;padding:clamp(3.5rem,8vw,5.5rem) clamp(1rem,5vw,2.5rem) clamp(5.25rem,11vw,7rem);position:relative}.countdown-section .section-kicker{color:#63403a;letter-spacing:.01em;text-transform:none;text-shadow:0 1px #ffffffb3;margin:0;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2rem,6.5vw,3.2rem);font-weight:400}.countdown{grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;justify-content:center;align-items:center;gap:clamp(.2rem,1.8vw,.8rem);width:min(100%,36rem);margin:1.8rem auto 0;padding:clamp(1.2rem,3.5vw,2rem) clamp(.5rem,2.5vw,1.5rem);display:grid;position:relative}.countdown-unit{flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-width:0;display:flex}.rolling-number{place-items:center;width:clamp(2.6ch,7vw,3.4ch);height:1.1em;font-weight:400;position:relative;overflow:hidden;color:#4a2d28!important;font-family:"Cormorant Garamond", var(--serif), Georgia, serif!important;font-size:clamp(2.2rem,7.5vw,4.4rem)!important;line-height:1!important;display:grid!important}.rolling-number--days{width:clamp(3.35ch,9.5vw,4.1ch)}.rolling-number__value{color:#4a2d28;width:100%;height:100%;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;font-variant-numeric:tabular-nums;white-space:nowrap;place-items:center;font-weight:400;line-height:1;display:grid;position:absolute;inset:0;font-size:inherit!important}.countdown b{color:#7a544d;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;margin-top:-.4em;font-size:clamp(1.6rem,5.5vw,3.2rem);font-weight:300;line-height:1}.countdown-unit>span:last-child{color:#7a544d;letter-spacing:0;text-transform:none;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(1.1rem,3.2vw,1.5rem);font-weight:400;line-height:1}@media (width<=560px){.countdown-section{padding:2.8rem .5rem 5rem}.countdown{gap:.1rem;width:100%;padding:.8rem .2rem}.countdown b{font-size:1.4rem}.countdown-unit>span:last-child{font-size:1rem}.rolling-number--days{width:3.45ch}}.schedule-section{color:#523732;background:#dfd7cf;margin:0 0 1.5rem;padding-top:clamp(3rem,7vw,4.5rem);padding-bottom:clamp(4.5rem,11vw,6.5rem);position:relative;box-shadow:0 4px 20px #3c281e0f}.schedule-script-kicker{color:#63403a;text-shadow:0 1px #fff9;margin:0;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.4rem,7.5vw,3.8rem);font-weight:400;line-height:1.1}.schedule-title{color:#7a544d;margin:.2rem 0 2rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(1.8rem,5.5vw,2.7rem);font-weight:400}.event-timeline{flex-direction:column;gap:1.8rem;max-width:32rem;margin:0 auto;display:flex}.event-card{text-align:left;background:#fffcf573;border:1px solid #8c61522e;border-radius:12px;grid-template-columns:4.5rem auto 1fr;align-items:center;gap:1rem;padding:1.2rem 1.4rem;display:grid}.event-time{color:#4a2d28;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;white-space:nowrap;font-size:clamp(1.1rem,3.5vw,1.35rem);font-weight:600}.timeline-bloom{color:#8c6152;font-size:1.1rem}.timeline-bloom--rose{color:#b8767e}.event-details h3{color:#4a2d28;margin:0 0 .25rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(1.6rem,4.8vw,2.2rem);font-weight:400}.event-details p{color:#6b4c46;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;margin:0;font-size:clamp(.88rem,2.6vw,1.02rem);line-height:1.4}@media (width<=560px){.event-card{grid-template-columns:3.6rem auto 1fr;gap:.7rem;padding:1rem}}.venue-type{color:var(--gold);font-family:var(--serif);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:600}.venue-card h3{color:#72504d;font-family:var(--serif);margin:0 0 .35rem;font-size:clamp(1.15rem,3.8vw,1.45rem);font-weight:500}.venue-card p{color:#4b2930ad;font-family:var(--serif);margin:0;font-size:.86rem;line-height:1.55}.venues-section{color:#513d3c;background:0 0}.venue-grid{grid-template-columns:repeat(2,1fr);gap:clamp(1rem,4vw,1.7rem);margin-top:2.6rem;display:grid}.venue-card{background:linear-gradient(#fffbf4ed,#fffbf4ed),url(/assets/backdrop-C90ivGlL.png) bottom/150% no-repeat;border:1px solid #b28a4629;border-radius:1.15rem;flex-direction:column;align-items:center;min-height:29rem;padding:0;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000014}.venue-card__image-frame{aspect-ratio:16/10;background:#e9dfd2;width:100%;position:relative;overflow:hidden}.venue-card__image{object-fit:cover;width:100%;height:100%;transition:transform .9s cubic-bezier(.16,1,.3,1);display:block}.venue-card__image-shade{pointer-events:none;background:linear-gradient(#0000 58%,#431d242e),linear-gradient(120deg,#ffebb921,#0000 48%);border:1px solid #fff8e780;position:absolute;inset:0}.venue-card:hover .venue-card__image{transform:scale(1.035)}.venue-card__content{flex-direction:column;flex:1;align-items:center;width:100%;padding:1.55rem 1.3rem 1.35rem;display:flex}.venue-type{color:#9e7a3d!important;margin-bottom:.55rem!important;font-size:.58rem!important}.venue-card time{color:var(--wine);font-family:var(--serif);margin:.85rem 0 1.1rem;font-weight:600}.venue-directions{color:#fffaf0;width:100%;min-height:3.65rem;font-family:var(--serif);text-align:left;background:linear-gradient(135deg,#70404a,#552532);border:1px solid #b28a46a6;border-radius:.85rem;grid-template-columns:1.35rem 1fr auto;align-items:center;gap:.75rem;margin-top:auto;padding:.72rem .85rem;text-decoration:none;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,background-color .3s;display:grid;box-shadow:0 .55rem 1.2rem #4c17242b}.venue-directions svg{fill:none;stroke:#e5c77e;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:1.35rem}.venue-directions span{flex-direction:column;gap:.08rem;display:flex}.venue-directions strong{letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:600}.venue-directions small{color:#fffaf0b8;letter-spacing:.035em;font-size:.68rem}.venue-directions b{color:#e5c77e;font-family:system-ui,sans-serif;font-size:1.05rem}.venue-directions:hover,.venue-directions:focus-visible{color:#fff;background:linear-gradient(135deg,#80505a,#612d3a);transform:translateY(-2px);box-shadow:0 .75rem 1.55rem #4c172440}.venue-directions:focus-visible{outline-offset:3px;outline:3px solid #d2af6285}.venue-directions:active{transform:translateY(0)scale(.985)}@media (width<=560px){.venue-grid{grid-template-columns:1fr}.venue-card{min-height:30rem}}@media (prefers-reduced-motion:reduce){.venue-card__image,.venue-directions{transition:none}}.dresscode-section{background:radial-gradient(circle at 50% 12%, #ffffffbd, transparent 24rem), repeating-linear-gradient(88deg, #6e593d04 0 1px, transparent 1px 6px), var(--soft-ivory);color:#523732;box-shadow:none;margin:0;padding-top:clamp(4rem,10vw,6rem);padding-bottom:clamp(4rem,10vw,6rem);position:relative;overflow:hidden}.dress-code-heading{color:#63403a;text-shadow:0 1px #fff9;margin:0 0 1rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.4rem,7.5vw,3.8rem);font-weight:400}.dress-code-text{color:#5c3f39;max-width:28rem;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;margin:0 auto 1.8rem;font-size:clamp(1rem,2.8vw,1.18rem);font-weight:500;line-height:1.65}.colour-palette{flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-top:1.6rem;display:flex}.colour-swatch-item{flex-direction:column;align-items:center;gap:.4rem;display:flex}.swatch{border:2px solid #fffc;border-radius:50%;width:2.2rem;height:2.2rem;box-shadow:0 4px 10px #00000014}.swatch--gold{background:#d4af37}.swatch--pink{background:#d8aaa8}.swatch--olive{background:#718064}.swatch--peach{background:#e6b49a}.swatch--blue{background:#17233a}.colour-swatch-item span{color:#6b4c46;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;font-size:.85rem;font-weight:500}.wedding-form{text-align:left;gap:1.15rem;margin:2.3rem auto 0;display:grid}.wedding-form label{color:var(--wine-dark);font-family:var(--serif);letter-spacing:.05em;gap:.42rem;font-size:.76rem;display:grid}.wedding-form input,.wedding-form textarea,.wedding-form select{color:#45222a;width:100%;font-family:var(--serif);background:#ffffff6b;border:0;border-bottom:1px solid #6e263647;border-radius:0;outline:0;padding:.9rem .85rem;transition:border-color .25s,box-shadow .25s}.wedding-form input:focus,.wedding-form textarea:focus,.wedding-form select:focus{border-color:var(--gold);box-shadow:0 4px 0 -3px var(--gold)}.wedding-form textarea{resize:vertical}.wedding-form>button{border:1px solid var(--wine);color:#fff9f2;background:var(--wine);cursor:pointer;font-family:var(--serif);letter-spacing:.17em;text-transform:uppercase;justify-self:center;margin-top:.65rem;padding:.92rem 1.7rem;font-size:.7rem;transition:background .25s,color .25s,transform .25s}.wedding-form>button:hover{color:var(--wine);background:0 0;transform:translateY(-2px)}.wedding-form>button:disabled{cursor:wait;opacity:.65;transform:none}.rsvp-honeypot{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.rsvp-form-error{color:#8f3048;font-family:var(--serif);text-align:center;margin:0;font-size:.82rem;font-style:italic}.rsvp-modal .wedding-form{margin-top:1.4rem}.rsvp-section{color:#523732;background:#dfd7cf;margin:1.5rem 0 0;padding-top:clamp(4.5rem,11vw,6.5rem);padding-bottom:clamp(4.5rem,11vw,6.5rem);position:relative;box-shadow:0 4px 20px #3c281e0f}.rsvp-heading{color:#63403a;text-shadow:0 1px #fff9;margin:0 0 1rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.4rem,7.5vw,3.8rem);font-weight:400}.rsvp-subtext{color:#5c3f39;max-width:28rem;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;margin:0 auto 2.2rem;font-size:clamp(1rem,2.8vw,1.18rem);font-weight:500;line-height:1.65}.rsvp-seal-wrapper{flex-direction:column;align-items:center;margin:1.5rem auto 2.5rem;display:flex}.rsvp-wax-seal-button{cursor:pointer;color:#fffaf1;background:0 0;border:none;border-radius:1rem;flex-direction:column;align-items:center;gap:1rem;width:min(100%,18rem);padding:0;transition:transform .35s cubic-bezier(.16,1,.3,1);display:flex}.rsvp-wax-seal-button:hover{transform:translateY(-3px)scale(1.02)}.rsvp-wax-seal-button:active{transform:scale(.96)}.rsvp-wax-seal-button:focus-visible{outline-offset:.5rem;outline:3px solid #b7934bb8}.rsvp-seal-rotator{aspect-ratio:1;filter:drop-shadow(0 10px 22px #3c141952);will-change:transform;border-radius:50%;width:clamp(7rem,24vw,9rem);animation:32s linear infinite rsvp-seal-turn;display:block}.rsvp-seal-image{object-fit:cover;border-radius:50%;width:100%;height:100%}.rsvp-click-cue{color:#fffaf1;background:linear-gradient(135deg,#75424c,#542532);border:1px solid #dab96eb8;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:.14rem;width:100%;min-height:4.4rem;padding:.68rem 1rem .78rem;display:flex;box-shadow:0 .7rem 1.5rem #481f2633}.rsvp-chevron{color:#d9bd7b;filter:drop-shadow(0 2px 2px #3c141933);margin-top:-1.2rem;animation:1.8s ease-in-out infinite rsvp-bounce}.rsvp-click-text{font-family:"Cormorant Garamond", var(--serif), Georgia, serif;letter-spacing:.08em;text-transform:uppercase;font-size:clamp(.95rem,3.2vw,1.08rem);font-weight:700}.rsvp-click-cue small{color:#fffaf1bd;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;letter-spacing:.04em;font-size:.75rem}.rsvp-signoff{flex-direction:column;align-items:center;gap:.3rem;margin-top:2rem;display:flex}.rsvp-hope-text{color:#63403a;margin:0;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2rem,6vw,3rem);font-weight:400}.rsvp-couple-names{color:#5c3f39;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;letter-spacing:.04em;margin:0;font-size:clamp(1.1rem,3.2vw,1.35rem);font-weight:500}@keyframes rsvp-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes rsvp-seal-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.rsvp-seal-rotator,.rsvp-chevron{animation:none}}.modal-backdrop{z-index:1200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2a1217b8;place-items:center;padding:1rem;animation:.3s both modal-fade;display:grid;position:fixed;inset:0;overflow-y:auto}.rsvp-modal{color:#4b2930;text-align:center;background:#fbf6ed;border-radius:16px;width:min(100%,35rem);max-height:calc(100dvh - 2rem);padding:clamp(2rem,7vw,3.4rem);animation:.5s cubic-bezier(.16,1,.3,1) both modal-rise;position:relative;overflow-y:auto;box-shadow:0 2rem 5rem #1c070c52}.rsvp-modal h2{color:#63403a;margin:.55rem 0 1.1rem;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.25rem,7vw,3.75rem);font-weight:400}.rsvp-modal fieldset{text-align:left;border:1px solid #6e263633;border-radius:8px;gap:.65rem;margin:0;padding:.9rem;display:grid}.rsvp-modal legend{color:#5c3f39;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;padding:0 .35rem;font-size:.88rem}.rsvp-modal fieldset label{align-items:center;gap:.55rem;display:flex}.modal-close{aspect-ratio:1;color:#63403a;cursor:pointer;background:#fff6;border:1px solid #6e263633;border-radius:50%;width:2.25rem;font-size:1.35rem;position:absolute;top:.8rem;right:.8rem}.rsvp-modal--receipt{outline-offset:-.75rem;background:repeating-linear-gradient(96deg,#68503406 0 1px,#0000 1px 7px),radial-gradient(circle at 50% 0,#ffffffe0,#0000 26rem),#f8f0e2;border:1px solid #b28a4673;outline:1px solid #6e263624;width:min(100%,39rem)}.rsvp-receipt{isolation:isolate;position:relative}.rsvp-receipt:before{content:"";z-index:-1;pointer-events:none;border:1px solid #b28a462e;position:absolute;inset:-1rem}.receipt-corner{z-index:-1;aspect-ratio:1;border:1px solid #9d743933;border-radius:50%;width:6rem;position:absolute}.receipt-corner--one{top:-3rem;left:-3rem}.receipt-corner--two{bottom:-3rem;right:-3rem}.receipt-intro,.receipt-note{color:#4b2930b8;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;font-size:1rem;font-style:italic}.receipt-intro{margin:1.5rem 0 .35rem}.receipt-guest{color:#6b3040;font-family:Great Vibes,Pinyon Script,cursive;font-size:clamp(2.2rem,8vw,3.7rem);font-weight:400;line-height:1.05;display:block}.receipt-rule{color:#b18a48;justify-content:center;align-items:center;gap:.65rem;margin:1.5rem 0;display:flex}.receipt-rule i{background:linear-gradient(90deg,#0000,#b18a48);width:min(24vw,7rem);height:1px}.receipt-rule i:last-child{transform:scaleX(-1)}.receipt-details{text-align:left;gap:0;width:min(100%,27rem);margin:0 auto;display:grid}.receipt-details div{border-bottom:1px solid #b28a462e;grid-template-columns:7rem 1fr;gap:1rem;padding:.62rem 0;display:grid}.receipt-details dt{color:#9a773e;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;letter-spacing:.12em;text-transform:uppercase;font-size:.65rem;font-weight:600}.receipt-details dd{color:#5a3439;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;margin:0;font-weight:600}.receipt-seal{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 .8rem 1.1rem #36111d47);width:clamp(8.8rem,34vw,11rem);height:auto;margin:1.4rem auto .8rem;display:block;transform:rotate(-5deg)}.receipt-seal--received{filter:saturate(.62);transform:rotate(4deg)}.receipt-note{margin:0 auto}.receipt-actions{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:1.5rem;display:flex}.receipt-actions button{color:#fff9f2;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;letter-spacing:.1em;text-transform:uppercase;background:#6e2636;border:1px solid #6e2636;padding:.72rem 1rem;font-size:.68rem;font-weight:600}.receipt-actions button:last-child{color:#6e2636;background:0 0}@media (width<=460px){.receipt-details div{grid-template-columns:1fr;gap:.2rem}}@media print{@page{size:A5 portrait;margin:0}html,body,#root{background:#f8f0e2!important;width:148mm!important;min-width:0!important;height:210mm!important;min-height:0!important;margin:0!important;overflow:hidden!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}#root>*{display:none!important}#root>.wedding-site,.wedding-site>.invitation-page,.invitation-page>.modal-backdrop,.modal-backdrop>.rsvp-modal--receipt,.rsvp-modal--receipt>.rsvp-receipt{display:block!important}.wedding-site,.invitation-page{width:148mm!important;height:210mm!important;min-height:0!important;box-shadow:none!important;background:0 0!important;margin:0!important;overflow:hidden!important}.invitation-page>:not(.modal-backdrop),.modal-backdrop>:not(.rsvp-modal--receipt){display:none!important}.modal-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important;width:148mm!important;height:210mm!important;padding:0!important;animation:none!important;position:static!important;overflow:hidden!important}.rsvp-modal--receipt{outline-offset:-5mm!important;width:148mm!important;height:210mm!important;max-height:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;outline:.35mm solid #b28a468c!important;margin:0!important;padding:13mm 14mm 10mm!important;animation:none!important;overflow:hidden!important}.rsvp-receipt{height:100%}.rsvp-receipt:before{inset:-2mm}.rsvp-modal h2{margin:2mm 0 3mm;font-size:11mm}.receipt-intro{margin:3mm 0 0;font-size:3.5mm}.receipt-guest{font-size:10mm}.receipt-rule{margin:4mm 0}.receipt-details{width:108mm}.receipt-details div{grid-template-columns:28mm 1fr;gap:3mm;padding:1.5mm 0}.receipt-details dt{font-size:2.4mm}.receipt-details dd{font-size:3.6mm}.receipt-seal{filter:drop-shadow(0 2mm 2mm #36111d38);width:34mm;margin:3mm auto 1mm}.receipt-note{max-width:100mm;font-size:3.2mm}.receipt-actions,.modal-close{display:none!important}}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(1.8rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.message-section{background:var(--soft-ivory);color:#513d3c;background:0 0}.wedding-footer{isolation:isolate;text-align:center;padding:clamp(5rem,13vw,8rem) clamp(1.4rem,7vw,4.5rem);position:relative}.wedding-footer:before{content:"";z-index:3;background:inherit;clip-path:polygon(0 52%,7% 41%,15% 57%,24% 42%,34% 56%,45% 39%,56% 57%,67% 42%,78% 58%,89% 41%,100% 54%,100% 100%,0 100%);width:104%;height:29px;position:absolute;top:-14px;left:-2%}.wedding-footer h2{color:var(--wine-dark);font-family:var(--script);letter-spacing:-.045em;margin:.55rem 0 1.1rem;font-size:clamp(2.25rem,7vw,3.75rem);font-weight:400;line-height:1.05}.wedding-footer{color:#fff8f0c7;background:var(--wine-dark);place-content:center;min-height:34rem;display:grid}.footer-verse{max-width:26rem;font-family:var(--serif);margin:0 auto 2rem;font-size:clamp(1rem,3vw,1.3rem);font-style:italic;line-height:1.7}.footer-verse strong{color:var(--gold-light);letter-spacing:.18em;text-transform:uppercase;margin-top:.45rem;font-size:.65em;font-style:normal;display:block}.footer-monogram{aspect-ratio:1;color:#795651;background:radial-gradient(circle at 38% 30%,#ffffffe0,#0000 35%),radial-gradient(circle,#d9bd7b26,#fffcf540 68%);border:1px solid #b28a4694;border-radius:50%;justify-content:center;align-items:center;width:clamp(6.5rem,19vw,7.5rem);margin:0 auto 1.9rem;display:flex;position:relative;box-shadow:inset 0 0 0 .35rem #fbf6edb8,inset 0 0 0 .42rem #b28a464d,0 .7rem 1.8rem #6445361a}.footer-monogram:before{content:"";border:1px solid #b28a4647;border-radius:50%;position:absolute;inset:.72rem}.footer-monogram:after{content:"✦";color:var(--antique-gold);background:var(--soft-ivory);padding:0 .35rem;font-family:Georgia,serif;font-size:.75rem;line-height:1;position:absolute;bottom:-.62rem;left:50%;transform:translate(-50%)}.footer-monogram__initial{z-index:1;color:#76504b;font-family:"Cormorant Garamond", var(--serif), Georgia, serif;text-shadow:0 1px #ffffffe6;font-size:clamp(2.15rem,7vw,2.7rem);font-style:italic;font-weight:500;line-height:1;position:relative}.footer-monogram__initial:last-child{margin-left:-.14em}.footer-monogram__ampersand{z-index:2;color:var(--antique-gold);font-family:"Great Vibes", "Pinyon Script", var(--script);text-shadow:0 1px #fff,0 2px 4px #613f2a29;margin:0 -.12em;font-size:clamp(1.6rem,5vw,2.05rem);line-height:1;position:relative;transform:translateY(.08em)rotate(-7deg)}.wedding-footer>div>p:not(.footer-verse){font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:.62rem}.wedding-footer a{color:var(--gold-light);font-family:var(--serif);margin-top:.65rem;font-size:1rem;text-decoration:none;display:inline-block}.hashtags{color:#fff8f08f;font-family:var(--serif);flex-wrap:wrap;justify-content:center;gap:.45rem .8rem;margin-top:2.1rem;font-size:.62rem;display:flex}.wedding-footer{color:#513d3c;background:0 0}.wedding-footer:before{content:"❦";clip-path:none;width:min(70%,25rem);height:3.5rem;color:var(--antique-gold);background:linear-gradient(90deg,#0000,#b28a469e) 0/43% 1px no-repeat,linear-gradient(90deg,#b28a469e,#0000) 100%/43% 1px no-repeat;place-content:center;font-family:Georgia,serif;font-size:1.45rem;line-height:1;display:grid;top:-1.75rem;left:50%;transform:translate(-50%)}.wedding-footer{color:#513d3cc2;background:radial-gradient(at 50% 72%,#e5c0aa2b,#0000 48%),0 0;min-height:34rem}.wedding-footer:after{opacity:.075;filter:none}.footer-verse{color:#795651}.footer-verse strong,.wedding-footer a{color:#9a773c}.footer-monogram{border-color:#b28a4694}.hashtags{color:#513d3c87}
