@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2) format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2) format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2) format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff) format("woff")}:root{--navy-950: #04152b;--navy-900: #071f3d;--navy-800: #0c315c;--blue-700: #356fc1;--blue-500: #7192cc;--blue-300: #a8bfe0;--blue-200: #c7d7ea;--blue-100: #e6eef7;--paper: #ffffff;--ink: #0b2b54;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Montserrat", Arial, sans-serif;--page-max: 900px;--content-max: 720px;font-family:var(--serif);color:var(--ink);background:var(--navy-950);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--navy-950)}body{margin:0;min-width:320px;min-height:100vh;background:var(--navy-950)}body.is-locked{overflow:hidden}button,textarea,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--blue-500);outline-offset:4px}button:disabled{cursor:not-allowed}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.invitation{width:min(100%,var(--page-max));margin:0 auto;overflow:hidden;background:var(--paper);box-shadow:0 0 80px #00000059}.invitation--parallax-journey{--journey-far-x: 0px;--journey-near-x: 0px;--journey-copy-x: 0px;--journey-far-pointer-y: 0px;--journey-near-pointer-y: 0px;background:var(--navy-900)}.parallax-scene{--scene-far-y: 0px;--scene-near-y: 0px;--scene-copy-y: 0px;position:relative;overflow:hidden;isolation:isolate}.parallax-scene:before,.parallax-scene:after{position:absolute;pointer-events:none;content:"";will-change:transform}.parallax-scene:before{z-index:0;inset:-14%;background-image:url(/images/hero-parallax-v2.webp);background-position:center 62%;background-repeat:no-repeat;background-size:cover;opacity:.08;transform:translate3d(var(--journey-far-x),calc(var(--scene-far-y) + var(--journey-far-pointer-y)),0) scale(1.08)}.parallax-scene:after{z-index:1;inset:-10%;background-image:url(/images/hero-parallax-v2.webp);background-position:right 78%;background-repeat:no-repeat;background-size:126% auto;clip-path:polygon(68% 0,100% 0,100% 100%,51% 100%,63% 72%,57% 44%);filter:drop-shadow(-12px 8px 15px rgb(4 21 43 / 20%));opacity:.13;transform:translate3d(var(--journey-near-x),calc(var(--scene-near-y) + var(--journey-near-pointer-y)),0) scale(1.05)}.parallax-scene>.section-shell{position:relative;z-index:3;transform:translate3d(var(--journey-copy-x),var(--scene-copy-y),0);will-change:transform}.paper-section.parallax-scene{background-color:#f3f8fe;background-image:linear-gradient(#ffffffd4,#e7f1fce5),radial-gradient(circle at 18% 12%,rgb(167 191 223 / 8%) 0 1px,transparent 1.5px),radial-gradient(circle at 72% 78%,rgb(11 43 84 / 5%) 0 1px,transparent 1.5px);background-repeat:no-repeat,repeat,repeat;background-size:100% 100%,34px 34px,47px 47px}.dark-section.parallax-scene:before{background-position:center 28%;filter:brightness(.48) saturate(.85);opacity:.46}.dark-section.parallax-scene:after{filter:brightness(.62) saturate(.9) drop-shadow(-12px 8px 15px rgb(0 0 0 / 34%));opacity:.4}.parallax-scene--date{min-height:0}.parallax-scene--date:before{background-position:center 78%;opacity:.09}.parallax-scene--date:after{clip-path:polygon(0 50%,24% 61%,35% 100%,0 100%);background-position:left 86%}.parallax-scene--ceremony{min-height:100svh}.parallax-scene--ceremony:before{background-position:center 45%;opacity:.07}.parallax-scene--ceremony:after{background-position:right 73%;opacity:.12}.parallax-scene--audio{min-height:100svh}.parallax-scene--gift{min-height:0}.parallax-scene--gift:before{background-position:center 84%;opacity:.1}.parallax-scene--gift:after{clip-path:polygon(0 0,32% 0,43% 35%,32% 67%,41% 100%,0 100%);background-position:left 82%}.parallax-scene--rsvp:before{background-position:center bottom;opacity:.07}.parallax-scene--rsvp:after{background-position:right bottom;opacity:.16}.section-shell{width:min(calc(100% - 40px),var(--content-max));margin:0 auto;text-align:center}.paper-section{position:relative;background-color:var(--paper);background-image:radial-gradient(circle at 18% 12%,rgb(167 191 223 / 8%) 0 1px,transparent 1.5px),radial-gradient(circle at 72% 78%,rgb(11 43 84 / 5%) 0 1px,transparent 1.5px);background-size:34px 34px,47px 47px}.dark-section{position:relative;color:#f7f9fc;background-color:var(--navy-900);background-image:radial-gradient(circle at 20% 30%,rgb(113 146 204 / 10%) 0 1px,transparent 1.5px),linear-gradient(135deg,rgb(255 255 255 / 2%),transparent 45%);background-size:32px 32px,100% 100%}h1,h2,p{margin-top:0}h2{margin-bottom:0;color:var(--ink);font-family:var(--serif);font-size:clamp(3.6rem,15vw,6.2rem);font-weight:500;line-height:.9;letter-spacing:-.035em}.button{display:inline-flex;min-height:54px;align-items:center;justify-content:center;border:1px solid transparent;cursor:pointer;font-family:var(--serif);font-size:1.32rem;font-weight:500;letter-spacing:.02em;text-decoration:none;transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,opacity .18s ease}.button:not(:disabled):active{transform:translateY(1px)}.short-rule{display:block;width:54px;height:1px;margin:25px auto;background:var(--blue-300)}.short-rule--light{background:var(--blue-300)}.monogram{display:block;width:118px;height:auto;margin:0 auto;overflow:visible;color:currentColor}.monogram--compact{width:68px}.monogram__letter{fill:currentColor;font-family:var(--serif);font-size:92px;font-weight:500}.monogram__letter--second{font-size:84px}.monogram__branch{fill:none;stroke:var(--blue-500);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.monogram__branch[data-light=true]{stroke:var(--blue-300)}.ornament{display:flex;width:100%;max-width:600px;align-items:center;justify-content:center;margin:30px auto;color:var(--ink)}.ornament>span{width:min(25vw,145px);height:1px;background:var(--blue-300)}.ornament>i{width:5px;height:5px;margin:0 9px;border-radius:50%;background:var(--blue-500)}.ornament .monogram{flex:0 0 auto;margin:0}.ornament--light{color:#f7f9fc}.ornament--light>span,.ornament--light>i{background:var(--blue-300)}.opening{position:fixed;z-index:100;inset:0;overflow-y:auto;color:#f7f9fc;background:var(--navy-900)}.opening:before{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgb(113 146 204 / 12%) 0 1px,transparent 1.5px);background-size:34px 34px;content:"";pointer-events:none}.opening--leaving{animation:opening-dismiss .48s ease 1.85s forwards}.opening__inner{position:relative;display:flex;width:min(100%,620px);min-height:100svh;margin:0 auto;padding:max(30px,env(safe-area-inset-top)) 22px max(24px,env(safe-area-inset-bottom));flex-direction:column;align-items:center;justify-content:center}.opening__names{z-index:1;margin:0;text-align:center;text-transform:uppercase}.opening__names>span{display:block;font-family:var(--serif);font-size:clamp(2.9rem,14vw,5.4rem);font-weight:400;line-height:.88;letter-spacing:.1em}.opening__names small{display:flex;align-items:center;justify-content:center;margin:14px 0 12px;font-family:var(--serif);font-size:1.65rem;font-weight:400;text-transform:lowercase}.opening__names small i{width:74px;height:1px;margin:0 18px;background:var(--blue-300)}.opening__envelope-stage{--card-rotate-x: 0deg;--card-rotate-y: 0deg;--card-shift-x: 0px;--card-shift-y: 0px;position:relative;width:min(112%,560px);height:clamp(260px,39svh,420px);margin:2px -6% 0;overflow:hidden;perspective:1100px}.opening--leaving .opening__envelope-stage{overflow:visible}.opening__envelope{display:block;width:100%;height:100%;object-fit:cover;object-position:center 50%;mix-blend-mode:normal}.opening__envelope-flap{position:absolute;z-index:3;inset:0;overflow:hidden;clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:50% 8%;transform-style:preserve-3d;pointer-events:none}.opening__envelope-flap img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 50%}.opening__letter{position:absolute;z-index:2;top:19%;left:10%;width:80%;height:64%;transform:translateY(130%);transform-style:preserve-3d;pointer-events:none}.opening__letter-card{position:absolute;inset:0;display:flex;align-items:center;border:1px solid rgb(113 146 204 / 50%);flex-direction:column;justify-content:center;color:var(--navy-900);background:radial-gradient(circle at 20% 30%,rgb(113 146 204 / 12%) 0 1px,transparent 1.5px),#f8fbff;background-size:26px 26px;box-shadow:0 18px 45px #0000004d;transform:translate3d(var(--card-shift-x),var(--card-shift-y),26px) rotateX(var(--card-rotate-x)) rotateY(var(--card-rotate-y));transform-style:preserve-3d;transition:transform .18s ease-out}.opening__letter-card:before,.opening__letter-card:after{position:absolute;border:1px solid rgb(113 146 204 / 24%);content:"";pointer-events:none}.opening__letter-card:before{inset:12px;transform:translateZ(8px)}.opening__letter-card:after{inset:19px;border-color:#7192cc21;transform:translateZ(14px)}.opening__letter-card small{font-family:var(--sans);font-size:clamp(.48rem,1.7vw,.66rem);font-weight:500;letter-spacing:.12em;text-transform:uppercase;transform:translateZ(25px)}.opening__letter-card strong{max-width:88%;margin-top:5px;font-family:var(--serif);font-size:clamp(1.2rem,4.8vw,2rem);font-weight:600;line-height:1;text-align:center;transform:translateZ(38px)}.opening__letter-card i{width:64px;height:1px;margin:12px 0 9px;background:var(--blue-500);transform:translateZ(22px)}.opening__letter-card em{font-family:var(--sans);font-size:clamp(.46rem,1.5vw,.6rem);font-style:normal;font-weight:600;letter-spacing:.18em;text-transform:uppercase;transform:translateZ(28px)}.opening__seal{position:absolute;z-index:5;top:57%;left:50%;width:clamp(82px,21vw,104px);height:clamp(82px,21vw,104px);padding:0;border:2px solid rgb(230 238 247 / 82%);border-radius:50%;cursor:pointer;background:#071f3d14;box-shadow:0 0 #c7d7ea6b;transform:translate(-50%,-50%);animation:seal-pulse 2.2s ease-in-out infinite}.opening__seal:after{position:absolute;inset:9px;border:1px solid rgb(230 238 247 / 48%);border-radius:inherit;content:""}.opening__seal:not(:disabled):hover{border-color:#fff;background:#071f3d2e;transform:translate(-50%,-50%) scale(1.06)}.opening__seal:disabled{cursor:default;opacity:.65}.opening__seal-hint{position:absolute;z-index:5;top:calc(57% + clamp(54px,13vw,68px));left:50%;color:#fff;font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:.18em;text-shadow:0 2px 8px rgb(0 0 0 / 65%);text-transform:uppercase;transform:translate(-50%);white-space:nowrap;pointer-events:none}.opening--leaving .opening__envelope-flap{animation:envelope-flap-open .72s cubic-bezier(.25,.75,.25,1) forwards}.opening--leaving .opening__letter{animation:envelope-letter-rise .95s cubic-bezier(.2,.7,.2,1) .42s forwards}.opening--leaving .opening__letter-card{animation:card-parallax-breathe 1.35s ease-in-out .72s both}.opening--leaving .opening__seal{animation:seal-break .3s ease forwards}.opening--leaving .opening__seal-hint,.opening--leaving .opening__copy,.opening--leaving .opening__names{animation:opening-copy-fade .28s ease forwards}@keyframes seal-pulse{0%,to{box-shadow:0 0 #c7d7ea26}50%{box-shadow:0 0 0 13px #c7d7ea38}}@keyframes seal-break{45%{opacity:1;transform:translate(-50%,-50%) scale(.9) rotate(-4deg)}to{opacity:0;transform:translate(-50%,-46%) scale(1.22) rotate(8deg)}}@keyframes envelope-flap-open{0%{filter:brightness(1);transform:rotateX(0)}55%{filter:brightness(1.08)}to{filter:brightness(.78);transform:rotateX(178deg)}}@keyframes envelope-letter-rise{0%{transform:translateY(130%)}to{transform:translateY(-38%)}}@keyframes card-parallax-breathe{0%{filter:brightness(.94)}45%{filter:brightness(1.04)}to{filter:brightness(1)}}@keyframes opening-copy-fade{to{opacity:0;transform:translateY(-8px)}}@keyframes opening-dismiss{to{opacity:0;transform:scale(1.025)}}.opening__copy{z-index:1;width:100%;text-align:center}.opening__copy>p:first-child{margin-bottom:24px;color:#f7f9fc;font-family:var(--sans);font-size:.92rem;font-weight:400;line-height:1.75;letter-spacing:.07em}.opening__copy strong{color:var(--blue-200);font-weight:600}.opening__sound{display:flex;align-items:center;justify-content:center;gap:9px;margin:24px 0 0;color:var(--blue-300);font-family:var(--sans);font-size:.68rem;letter-spacing:.04em}@media(prefers-reduced-motion:reduce){.opening--leaving,.opening--leaving .opening__envelope-flap,.opening--leaving .opening__letter,.opening--leaving .opening__seal,.opening--leaving .opening__seal-hint,.opening--leaving .opening__copy,.opening--leaving .opening__names{animation-duration:1ms;animation-delay:0ms}.opening__seal{animation:none}}.opening__sound svg{width:21px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.opening__error{color:#ffd7dc!important}.hero{--scroll-back-y: 0px;--scroll-ribbon-y: 0px;--scroll-bouquet-y: 0px;--scroll-title-y: 0px;--scroll-seal-y: 0px;position:relative;background:var(--navy-950)}.hero__parallax-scene{--back-x: 0px;--back-y: 0px;--ribbon-x: 0px;--ribbon-y: 0px;--bouquet-x: 0px;--bouquet-y: 0px;--title-x: 0px;--title-y: 0px;--seal-x: 0px;--seal-y: 0px;--seal-rotate: 0deg;--cue-x: 0px;--cue-y: 0px;position:relative;display:grid;height:clamp(560px,78svh,680px);min-height:0;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgb(113 146 204 / 18%),transparent 44%),var(--navy-950);isolation:isolate;perspective:1100px;touch-action:pan-y}.hero__artboard{position:relative;width:100%;height:100%;overflow:hidden;background:var(--navy-900);box-shadow:0 0 64px #00000047;container-type:size;transform-style:preserve-3d}.hero__artwork,.hero__depth-layer{position:absolute;inset:-2.5%;display:block;width:105%;height:105%;object-fit:cover;object-position:center;pointer-events:none}.hero__artwork{object-position:58% center;transform:translate3d(var(--back-x),calc(var(--back-y) + var(--scroll-back-y)),-24px) scale(1.025);will-change:transform}.hero__depth-layer{background-image:url(/images/bouquet-ribbon.jpg);background-position:58% center;background-size:cover;content:"";will-change:transform}.hero__depth-layer--ribbon{clip-path:polygon(0 69%,27% 65%,52% 75%,76% 86%,100% 72%,100% 100%,0 100%);filter:drop-shadow(0 -5px 8px rgb(4 21 43 / 22%));transform:translate3d(var(--ribbon-x),calc(var(--ribbon-y) + var(--scroll-ribbon-y)),28px) scale(1.02)}.hero__depth-layer--bouquet{clip-path:polygon(52% 40%,100% 29%,100% 100%,35% 100%,44% 77%);filter:drop-shadow(-12px 4px 16px rgb(4 21 43 / 26%));transform:translate3d(var(--bouquet-x),calc(var(--bouquet-y) + var(--scroll-bouquet-y)),72px) scale(1.025)}.hero__title-layer{position:absolute;z-index:5;inset:31% 9% auto;color:#f8fbff;text-align:center;text-shadow:0 3px 18px rgb(0 0 0 / 28%);transform:translate3d(var(--title-x),calc(var(--title-y) + var(--scroll-title-y)),74px);transform-style:preserve-3d;will-change:transform}.hero__title-layer h2{display:block;margin:0;color:inherit;font-size:clamp(3.25rem,14vw,5.1rem);line-height:.78;white-space:nowrap}.hero__title-layer h2>span{display:block}.hero__title-layer .hero__second-name{margin-left:10%}.hero__title-layer h2 small{margin-right:.2em;font-size:.43em;font-style:italic;font-weight:400}.hero__title-layer .short-rule{margin-block:24px 16px}.hero__title-layer p{margin:0;font-family:var(--sans);font-size:clamp(.68rem,3vw,.9rem);font-weight:500;letter-spacing:.34em;text-transform:uppercase}.hero__seal-mark{position:absolute;z-index:4;top:8%;left:50%;display:grid;width:clamp(82px,22vw,118px);aspect-ratio:1;place-items:center;border:1px solid rgb(199 215 234 / 48%);border-radius:50%;color:#e1ebf7c7;box-shadow:inset 0 0 0 5px #04152b2e,inset 0 0 0 6px #c7d7ea33,0 10px 24px #04152b4d;transform:translate3d(var(--seal-x),calc(var(--seal-y) + var(--scroll-seal-y)),88px) translate(-50%) rotate(var(--seal-rotate));will-change:transform}.hero__seal-mark .monogram{width:72%;margin:0;filter:drop-shadow(0 2px 2px rgb(0 0 0 / 24%))}.hero__seal-mark .monogram__branch{stroke:#c7d7eac2}.hero__scene-cue{position:absolute;z-index:7;bottom:2.5%;left:50%;display:grid;width:42px;height:42px;place-items:center;color:#f8fbff;transform:translate3d(calc(-50% + var(--cue-x)),var(--cue-y),100px)}.hero__scene-cue svg{width:30px;fill:none;stroke:currentColor;stroke-width:1.6}@media(min-width:720px){.hero__parallax-scene{height:clamp(500px,62vw,620px);min-height:500px}.hero__artwork,.hero__depth-layer{object-position:center;background-position:center}.hero__title-layer{top:27%;right:48%;left:8%;text-align:left}.hero__title-layer h2{font-size:clamp(4.4rem,9vw,6.4rem)}.hero__title-layer .hero__second-name{margin-left:18%}.hero__seal-mark{top:9%;left:27%;width:112px}.hero__scene-cue{left:27%}}.hero__details{position:relative;z-index:8;padding:78px 0 54px}.hero__content{position:relative}.hero__date{margin-bottom:30px;color:var(--blue-500);font-size:clamp(2.2rem,10vw,4rem);line-height:1}.countdown{display:grid;width:100%;grid-template-columns:repeat(4,1fr);margin:0 auto 42px}.countdown__unit{position:relative;display:flex;min-width:0;flex-direction:column;align-items:center;gap:10px;padding:0 4px}.countdown__unit+.countdown__unit:before{position:absolute;top:3px;bottom:2px;left:0;width:1px;background:var(--blue-300);content:""}.countdown__unit strong{color:var(--blue-500);font-family:var(--serif);font-size:clamp(1.7rem,8vw,2.7rem);font-weight:500;line-height:1;white-space:nowrap}.countdown__unit span{overflow:hidden;max-width:100%;color:var(--ink);font-family:var(--sans);font-size:clamp(.52rem,2.2vw,.7rem);font-weight:600;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase}.hero__message{max-width:520px;margin:0 auto;color:var(--blue-500);font-size:clamp(1.35rem,6vw,1.9rem);font-style:italic;line-height:1.35}.scroll-cue{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;color:var(--blue-500)}.scroll-cue svg{width:36px;fill:none;stroke:currentColor;stroke-width:1.7}.ceremony{padding-top:72px}.church{width:min(82%,390px);height:auto;margin:0 auto 8px;color:var(--blue-700);stroke-width:1.45}.ceremony h2{font-size:clamp(4.2rem,17vw,6.7rem)}.ceremony__details{margin:10px 0 0}.ceremony__details>div{display:grid;min-height:104px;align-items:center;border-bottom:1px solid var(--blue-300);grid-template-columns:42% 58%}.ceremony__details dt,.ceremony__details dd{margin:0}.ceremony__details dt{border-right:1px solid var(--blue-300);font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.ceremony__details dd{padding-left:22px;text-align:left;font-size:clamp(1.7rem,8vw,2.7rem)}.ceremony__address{margin:35px 0 28px;color:var(--blue-500);font-size:1.6rem;font-style:italic}.ceremony__maps{display:grid;gap:12px;grid-template-columns:1fr 1fr}.map-button{display:flex;min-height:68px;align-items:center;justify-content:center;gap:9px;border:1px solid var(--blue-500);border-radius:8px;color:var(--ink);background:transparent;font-family:var(--sans);font-size:clamp(.72rem,3.1vw,.92rem);font-weight:600;text-decoration:none}.map-button:disabled{border-color:var(--blue-300);color:var(--blue-300);opacity:.8}.map-button svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.map-button .icon-fill{fill:currentColor;stroke:none}.ceremony__note{max-width:480px;margin:24px auto 52px;color:var(--blue-500);font-size:1.22rem;font-style:italic;line-height:1.35}.audio-section{padding:60px 0 72px}.audio-section h2{margin-top:26px;color:#f7f9fc;font-size:clamp(4rem,16vw,6.3rem)}.audio-section__family{color:#f7f9fc;font-size:clamp(1.45rem,6vw,2rem);line-height:1.35}.audio-section__family strong{color:var(--blue-200);font-family:var(--sans);font-size:.92rem;font-weight:600;letter-spacing:.04em}.audio-player{display:flex;align-items:center;gap:16px;margin:42px auto 14px}.audio-player--pending{opacity:.55}.audio-player__play{display:flex;width:76px;height:76px;flex:0 0 76px;align-items:center;justify-content:center;border:2px solid #f7f9fc;border-radius:50%;color:#f7f9fc;background:var(--navy-800)}.audio-player__play svg{width:32px;fill:currentColor}.audio-player__body{min-width:0;flex:1}.waveform{display:flex;height:64px;align-items:center;gap:3px}.waveform i{width:2px;max-height:54px;flex:1;border-radius:9px;background:var(--blue-300)}.audio-player__timeline{display:grid;align-items:center;gap:8px;grid-template-columns:auto minmax(70px,1fr) minmax(78px,.5fr);color:#f7f9fc;font-family:var(--sans);font-size:.72rem}.audio-player input[type=range]{width:100%;height:3px;margin:0;accent-color:var(--blue-300)}.volume-control{display:flex;align-items:center;gap:5px}.volume-control svg{width:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.audio-player__label{margin-bottom:0;color:var(--blue-200);font-family:var(--sans);font-size:.64rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.audio-section__placeholder{max-width:500px;margin:0 auto;color:var(--blue-300);font-size:clamp(1.25rem,5vw,1.7rem);font-style:italic;line-height:1.35}.gift-section{padding:64px 0 48px}.gift-envelope{position:relative;width:min(76%,370px);margin:0 auto 10px;color:var(--blue-500)}.gift-envelope>svg{display:block;width:100%;stroke-width:1.4}.gift-envelope .monogram{position:absolute;top:43%;left:50%;width:42px;padding:3px;border-radius:50%;color:var(--ink);background:var(--paper);transform:translate(-50%,-50%)}.gift-section h2{font-size:clamp(4rem,16vw,6rem)}.gift-section p{max-width:550px;margin:0 auto;font-size:clamp(1.35rem,5.6vw,1.75rem);line-height:1.45}.rsvp{padding:58px 0 max(58px,env(safe-area-inset-bottom));border-top:1px solid var(--blue-100)}.rsvp h2{margin-top:14px;font-size:clamp(3.7rem,14.5vw,5.8rem)}.rsvp .ornament{margin-block:22px}.rsvp__intro{font-size:clamp(1.4rem,5.8vw,1.9rem);line-height:1.35}.rsvp__intro strong{font-weight:500}.rsvp__deadline{margin:26px 0 34px;font-size:clamp(1.15rem,5vw,1.55rem)}.rsvp__deadline em{color:var(--blue-500);font-style:normal}.guest-list{display:grid;gap:22px}.guest{min-width:0;padding:0;border:0;text-align:left}.guest legend{display:block;width:100%;margin-bottom:10px;font-size:clamp(1.25rem,5vw,1.55rem)}.attendance{display:grid;overflow:hidden;border:1px solid var(--blue-700);border-radius:7px;grid-template-columns:1fr 1fr}.attendance button{display:flex;min-height:58px;align-items:center;justify-content:center;gap:8px;padding:8px;border:0;color:var(--ink);background:#ffffffb8;font-family:var(--serif);font-size:clamp(1rem,4.3vw,1.3rem)}.attendance button+button{border-left:1px solid var(--blue-700)}.attendance button.is-selected{color:#fff;background:var(--blue-700)}.attendance button span{font-family:var(--sans);font-size:1rem}.message-field{display:block;margin-top:30px;text-align:left}.message-field>span{display:block;margin-bottom:10px;font-size:clamp(1.1rem,4.7vw,1.45rem)}.message-field textarea{display:block;width:100%;min-height:130px;resize:vertical;border:1px solid var(--blue-500);border-radius:6px;color:var(--ink);background:#ffffffbf;padding:16px;font-family:var(--serif);font-size:1.22rem;line-height:1.35}.message-field textarea::placeholder{color:var(--blue-500);opacity:.85}.form-error,.form-hint{margin:16px 0 0;font-family:var(--sans);font-size:.72rem;line-height:1.5}.form-error{color:#a51d36}.form-hint{color:var(--blue-700)}.button--primary{width:100%;margin-top:22px;border-radius:5px;color:#fff;background:var(--navy-900)}.button--primary:disabled{opacity:.48}.rsvp__trust{margin-top:22px}.rsvp__trust p{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--blue-500);font-size:1.13rem;line-height:1.3}.rsvp__trust svg{width:28px;flex:0 0 28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.rsvp__closing{margin-bottom:16px;color:var(--blue-500);font-size:1.65rem;font-style:italic;line-height:1.25}.rsvp__closing strong{color:var(--ink);font-weight:500}.confirmation{display:flex;width:min(100%,var(--page-max));min-height:100svh;margin:0 auto;align-items:center;overflow:hidden;padding:max(26px,env(safe-area-inset-top)) 0 max(30px,env(safe-area-inset-bottom));box-shadow:0 0 80px #00000059}.confirmation .section-shell{position:relative;z-index:2}.confirmation .ornament{margin-block:18px}.confirmation .short-rule{margin-block:16px}.confirmation .monogram{width:82px;color:#f7f9fc}.botanical-check{width:66px;margin:8px auto 10px;fill:none;stroke:var(--blue-200);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.confirmation h2{color:#f7f9fc;font-size:clamp(3.5rem,14vw,5.8rem)}.confirmation__family{font-size:clamp(1.4rem,5.7vw,1.9rem);line-height:1.35}.confirmation__family strong{font-weight:500}.confirmation__summary{margin:0 auto}.confirmation__summary div{display:flex;justify-content:center;gap:8px;font-size:clamp(1.3rem,5.5vw,1.8rem)}.confirmation__summary dt,.confirmation__summary dd{margin:0}.confirmation__summary dd{color:var(--blue-300)}.confirmation__warm{max-width:520px;margin:0 auto 22px;font-size:clamp(1.35rem,5.5vw,1.8rem);line-height:1.4}.button--outline-light{width:min(100%,520px);border-color:#f7f9fc;border-radius:6px;color:#f7f9fc;background:transparent}.button--quiet{min-height:48px;margin-top:8px;color:var(--blue-300);background:transparent}.confirmation__closing{margin-bottom:0;color:var(--blue-300);font-size:1.45rem;font-style:italic;line-height:1.25}.confirmation__closing strong{color:#f7f9fc;font-weight:500}.confirmation__confetti{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}.confirmation__confetti i{position:absolute;top:-30px;width:12px;height:20px;background:var(--blue-200);animation:confetti-fall linear infinite}.confirmation__confetti i[data-tone="1"]{background:var(--blue-500)}.confirmation__confetti i[data-tone="2"]{background:#f7f9fc}.confirmation__confetti i[data-tone="3"]{background:var(--blue-700)}@keyframes confetti-fall{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}12%{opacity:.9}to{transform:translate3d(30px,105vh,0) rotate(540deg);opacity:.2}}.background-music{position:fixed;z-index:40;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}.background-music button{display:flex;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid var(--blue-200);border-radius:50%;color:#fff;background:#071f3de0;box-shadow:0 8px 25px #0000003d;backdrop-filter:blur(8px)}.background-music svg{width:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}@media(min-width:720px){.section-shell{width:min(calc(100% - 96px),var(--content-max))}.opening__inner{padding-inline:38px}.ceremony__details>div{min-height:116px}.audio-player{gap:28px}.audio-player__play{width:92px;height:92px;flex-basis:92px}}@media(max-width:380px){.section-shell{width:min(calc(100% - 28px),var(--content-max))}.opening__inner{padding-inline:14px}.audio-player{gap:10px}.audio-player__play{width:62px;height:62px;flex-basis:62px}.volume-control input{display:none}.audio-player__timeline{grid-template-columns:auto minmax(70px,1fr) 22px}}@media(prefers-reduced-motion:reduce){.hero__artwork,.hero__depth-layer,.hero__title-layer,.hero__seal-mark,.hero__scene-cue{transform:none}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
