@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:italic;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-italic-CnlIvBC9.woff2) format("woff2"),url(/assets/montserrat-latin-400-italic-a0UhtteB.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:italic;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-italic-DXA4yvBS.woff2) format("woff2"),url(/assets/montserrat-latin-500-italic-Dkg8VHej.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;--display-serif: "Cormorant Garamond", Georgia, serif;--serif: var(--display-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}#root{--serif: var(--sans);font-family:var(--sans)}.hero__cover,.monogram{--serif: var(--display-serif)}*{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--seal{--seal-size: 78px;box-sizing:border-box;width:var(--seal-size);height:var(--seal-size);padding:9px 7px 8px;color:#f4f7fb;border:2px solid rgb(178 202 226 / 46%);border-radius:48% 52% 50% 50%/51% 47% 53% 49%;outline:1px solid rgb(203 220 239 / 24%);outline-offset:-7px;background:radial-gradient(circle at 30% 24%,#416f9d,#163e6a 42%,#061c39);box-shadow:0 8px 16px #00081661,inset 0 1px 3px #fff3,inset 0 -5px 8px #000c1e57}.monogram--seal.monogram--compact{--seal-size: 60px;padding:7px 5px 6px}.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 .monogram--seal{--seal-size: 35px;padding:4px 3px}.ornament--light{color:#f7f9fc}.ornament--light>span,.ornament--light>i{background:var(--blue-300)}.opening{--serif: var(--display-serif);position:fixed;z-index:100;inset:0;overflow-x:hidden;overflow-y:auto;isolation:isolate;overscroll-behavior:none;color:#f7f9fc;background:radial-gradient(circle at 50% 30%,#0d284d,#061830 75%,#030d1c)}.opening:before{position:absolute;inset:0;background-image:radial-gradient(circle at 50% 50%,rgb(113 146 204 / 10%) 0 1px,transparent 1.5px);background-size:32px 32px;content:"";pointer-events:none}.opening--leaving{pointer-events:none}.opening__inner{position:relative;display:flex;width:min(100%,640px);min-height:100svh;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));flex-direction:column;align-items:center;justify-content:safe center}.opening__pretitle{display:block;margin-bottom:4px;font-family:var(--sans);font-size:clamp(.6rem,1.8vw,.72rem);font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-300)}.opening__names{margin:0;text-align:center;text-transform:none}.opening__names>span{display:inline-block;font-family:var(--serif);font-size:clamp(2.4rem,8vw,3.8rem);font-weight:400;line-height:1;letter-spacing:.06em;color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.35)}.opening__names small{display:inline-flex;align-items:center;justify-content:center;margin:0 12px;font-family:var(--serif);font-size:1.4rem;font-weight:400;font-style:italic;color:var(--blue-300)}.opening__names small i{display:none}.opening__error{color:#ffd7dc!important}.hero{position:relative;background:var(--navy-950)}.hero__cover{--hero-cover-blue: #061d3b;position:relative;overflow:hidden;isolation:isolate;border-radius:34px 34px 0 0;background:var(--hero-cover-blue)}.hero__cover:after{position:absolute;z-index:1;inset:0;content:"";pointer-events:none;background:linear-gradient(to top,var(--hero-cover-blue) 0,transparent 64px),linear-gradient(to right,var(--hero-cover-blue) 0,transparent 24px),linear-gradient(to left,var(--hero-cover-blue) 0,transparent 24px)}.hero__portrait-stage{position:relative;z-index:2;width:calc(100% - 40px);height:min(67svh,calc((100vw - 40px) * 16 / 9));min-height:0;max-height:720px;margin:24px 20px 0;overflow:hidden;border-radius:46% 46% 22px 22px/18% 18% 22px 22px;border:1px solid rgb(218 233 250 / 84%);outline:1px solid rgb(126 169 218 / 55%);outline-offset:5px;background:var(--navy-900);box-shadow:0 22px 42px #0009186b}.hero__bouquet-base{position:absolute;z-index:0;right:-24%;bottom:-72px;width:min(122%,520px);aspect-ratio:1;pointer-events:none;background:url(/images/bouquet-ribbon-cutout-v1.png) right bottom / contain no-repeat;opacity:.58;-webkit-mask-image:radial-gradient(ellipse 108% 78% at 64% 34%,#000 44%,transparent 100%);mask-image:radial-gradient(ellipse 108% 78% at 64% 34%,#000 44%,transparent 100%)}.hero__portrait-stage:after{position:absolute;z-index:1;inset:0;content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,transparent 54%,rgb(2 19 39 / 28%) 100%)}.hero__cover-photo{position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:center 52%;pointer-events:none}.hero__title-panel{display:flex;position:relative;z-index:2;min-height:178px;align-items:center;flex-direction:column;justify-content:center;padding:30px 30px 34px;color:#f4f7fb;background:transparent;overflow:hidden;text-align:center}.hero__title-panel:before{position:absolute;z-index:0;bottom:-38px;left:-58px;width:min(84%,310px);aspect-ratio:1;content:"";pointer-events:none;opacity:.24;background:url(/images/bouquet-ribbon-cutout-v1.png) center / contain no-repeat;-webkit-mask-image:radial-gradient(ellipse 108% 78% at 36% 34%,#000 44%,transparent 100%);mask-image:radial-gradient(ellipse 108% 78% at 36% 34%,#000 44%,transparent 100%);transform:scaleX(-1);transform-origin:center}.hero__title-panel>*{position:relative;z-index:1}.hero__title-panel .monogram{width:49px;margin:0 0 5px}.hero__title-panel .monogram--seal{--seal-size: 64px;width:var(--seal-size);height:var(--seal-size);padding:8px 6px 7px}.hero__title-panel .monogram__branch{stroke:var(--blue-300)}.hero__title-panel h2{display:block;margin:0;color:inherit;font-size:clamp(2.9rem,12vw,4.5rem);line-height:.8;white-space:nowrap}.hero__title-panel h2>span{display:block}.hero__title-panel .hero__second-name{margin-left:10%}.hero__title-panel h2 small{margin-right:.2em;font-size:.43em;font-style:italic;font-weight:400}.hero__title-panel .short-rule{margin-block:13px 9px}.hero__title-panel p{margin:0;font-family:var(--sans);font-size:.62rem;color:#cddcf0;font-weight:600;letter-spacing:.3em;text-transform:uppercase}.hero__announcement{display:flex;align-items:center;justify-content:center;gap:0}.hero__scene-cue{display:grid;width:44px;height:44px;margin-left:-8px;place-items:center;color:var(--blue-500)}.hero__scene-cue svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.6}@media(min-width:720px){.hero__cover{display:grid;min-height:670px;grid-template-columns:minmax(0,1fr) minmax(350px,45%)}.hero__portrait-stage{width:auto;height:calc(100% - 70px);min-height:0;max-height:none;margin:35px 36px 35px 0;border-radius:46% 46% 28px 28px/16% 16% 28px 28px;grid-column:2;grid-row:1}.hero__bouquet-base{right:-4%;bottom:-96px;width:min(55%,510px)}.hero__cover-photo{object-position:center 55%}.hero__title-panel{min-height:670px;align-items:flex-start;justify-content:center;padding:66px 58px;background:transparent;grid-column:1;grid-row:1;text-align:left}.hero__title-panel:before{bottom:-56px;left:-72px;width:min(94%,470px);opacity:.27}.hero__title-panel .monogram{width:64px;margin:0 0 16px}.hero__title-panel .monogram--seal{--seal-size: 82px;width:var(--seal-size);height:var(--seal-size);padding:10px 8px 9px}.hero__title-panel h2{font-size:clamp(4rem,7vw,5.6rem)}.hero__title-panel .hero__second-name{margin-left:18%}.hero__title-panel .short-rule{margin:27px 0 16px}.hero__announcement{justify-content:flex-start}}.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,8.8vw,3.45rem);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}.honor-role-notice{margin:-6px auto 32px}.honor-role-notice__item{padding:25px 22px 23px;border:1px solid var(--blue-300);background:#ffffff94;box-shadow:0 10px 24px #0b2b540f}.honor-role-notice__item+.honor-role-notice__item{margin-top:14px}.honor-role-notice__role{margin-bottom:9px;color:var(--blue-700);font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.honor-role-notice h3{margin-bottom:11px;color:var(--ink);font-family:var(--serif);font-size:clamp(2rem,8vw,2.7rem);font-weight:500;line-height:.95}.honor-role-notice__message{max-width:430px;margin:0 auto;font-size:clamp(1.2rem,4.8vw,1.55rem);line-height:1.28}.honor-role-notice__message strong{font-weight:600}.honor-role-notice__attire{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 0;padding-top:15px;border-top:1px solid var(--blue-200)}.honor-role-notice__attire dt,.honor-role-notice__attire dd{margin:0}.honor-role-notice__attire dt{font-family:var(--sans);font-size:.67rem;font-weight:600;letter-spacing:.14em;text-align:left;text-transform:uppercase}.honor-role-notice__attire dd{display:inline-flex;align-items:center;gap:8px;color:var(--blue-700);font-size:clamp(1.2rem,5vw,1.55rem);font-weight:600;white-space:nowrap}.honor-role-notice__attire i{width:16px;height:16px;flex:0 0 16px;border:1px solid rgb(11 43 84 / 18%);border-radius:50%;background:#bcd9ef;box-shadow:inset 0 0 0 3px #ffffff6b}.honor-role-notice__item--caballero .honor-role-notice__role,.honor-role-notice__item--caballero .honor-role-notice__attire dd{color:var(--navy-900)}.honor-role-notice__item--caballero .honor-role-notice__attire i{background:var(--navy-900)}.honor-role-notice .ornament{margin:22px auto 0}.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:72px 0 32px}.church{width:min(82%,390px);height:auto;margin:0 auto 8px;color:var(--blue-700);stroke-width:1.45}.ceremony h2{font-size:clamp(3.65rem,15vw,5.4rem)}.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}.ceremony__calendar{margin-top:28px}.ceremony__calendar>p{margin:0 0 14px;color:var(--blue-700);font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.ceremony__calendar-actions{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.calendar-button{display:flex;min-height:50px;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border:1px solid var(--blue-300);border-radius:8px;color:var(--ink);background:#ffffff5c;font-family:var(--sans);font-size:clamp(.62rem,2.4vw,.78rem);font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer}.calendar-button>svg{width:21px;height:21px;flex:0 0 21px;fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round}.calendar-brand-icon--google .calendar-icon__google-blue{fill:#4285f4}.calendar-brand-icon--google .calendar-icon__google-green{fill:#34a853}.calendar-brand-icon--google .calendar-icon__google-yellow{fill:#fbbc05}.calendar-brand-icon--google .calendar-icon__google-red{fill:#ea4335}.calendar-brand-icon--outlook .calendar-icon__outlook-window{fill:#0a65c9}.calendar-brand-icon--outlook .calendar-icon__outlook-fold{fill:none;stroke:#fff;stroke-width:1.25}.calendar-brand-icon--outlook .calendar-icon__outlook-pane{fill:none;stroke:#07569d;stroke-width:1.2}.calendar-brand-icon--outlook .calendar-icon__outlook-letter{fill:none;stroke:#fff;stroke-width:1.2}.calendar-brand-icon--apple .calendar-icon__apple-mark{fill:#1d1d1f;stroke:none}.calendar-button:hover,.calendar-button:focus-visible{border-color:var(--blue-500);background:#ffffffb3}.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-envelope .monogram--seal{--seal-size: 42px;padding:5px 4px;color:#f4f7fb;background:radial-gradient(circle at 30% 24%,#416f9d,#163e6a 42%,#061c39)}.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}.confirmation .monogram--seal{--seal-size: 82px;padding:10px 8px 9px}.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}.confirmation__video{width:min(100%,340px);aspect-ratio:9 / 16;margin:0 auto 30px;overflow:hidden;border:1px solid rgb(199 215 234 / 44%);background:var(--navy-950) url(/images/marcela-kevin-portada-poster.jpg) center / cover no-repeat;box-shadow:0 18px 36px #00000040}.confirmation__video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.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:719px){.ceremony__calendar-actions{grid-template-columns:1fr}.audio-player__timeline{grid-template-columns:auto minmax(0,1fr);row-gap:12px}.volume-control{width:min(170px,72%);grid-column:1 / -1;justify-self:end}}@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}}@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}}.opening--direct{overflow:hidden;background:var(--navy-950)}.opening--direct:before{z-index:1;background-image:radial-gradient(circle at 50% 50%,rgb(168 191 224 / 13%) 0 1px,transparent 1.5px);background-size:32px 32px;opacity:.45}.opening--direct .opening__inner{display:block;width:100%;min-height:100svh;padding:0}.opening__direct-media{position:absolute;z-index:0;inset:0;overflow:hidden;background:var(--navy-950)}.opening__direct-media:after{position:absolute;inset:0;background:linear-gradient(180deg,#04152b1f,#04152b2e 30%,#04152be0),linear-gradient(90deg,rgb(4 21 43 / 34%) 0%,transparent 48%,rgb(4 21 43 / 18%) 100%);content:""}.opening__direct-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.015)}.opening__direct-content{position:relative;z-index:2;display:flex;width:min(100%,700px);min-height:100svh;margin:0 auto;padding:max(30px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));flex-direction:column;align-items:center;justify-content:flex-end;color:#f7f9fc;text-align:center}.opening__direct-content>.monogram{width:62px;margin:0 auto 9px;color:#fff}.opening--direct .opening__pretitle{margin-bottom:5px;color:var(--blue-200)}.opening--direct .opening__names{margin-bottom:0}.opening--direct .opening__names>span{font-size:clamp(2.55rem,8.5vw,4rem);letter-spacing:.045em}.opening__direct-invitation{width:min(100%,540px);margin-top:clamp(20px,4vh,32px)}.opening__direct-label{display:block;color:var(--blue-200);font-family:var(--sans);font-size:clamp(.62rem,2vw,.72rem);font-weight:500;letter-spacing:.2em;text-transform:uppercase}.opening__direct-family{margin:6px 0 10px;color:#fff;font-family:var(--serif);font-size:clamp(1.55rem,5vw,2.2rem);font-weight:500;line-height:1.05;text-wrap:balance}.opening__direct-message{max-width:520px;margin:0 auto;color:#f7f9fc;font-family:var(--serif);font-size:clamp(1rem,3.7vw,1.35rem);font-style:italic;line-height:1.3;text-wrap:balance}.opening__direct-date{margin:14px 0 0;color:var(--blue-200);font-family:var(--sans);font-size:clamp(.68rem,2.2vw,.8rem);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.opening--direct .button--opening{width:min(100%,270px);margin-top:20px;padding-inline:26px;border:1px solid rgb(255 255 255 / 72%);border-radius:999px;color:var(--navy-900);background:#f7f9fc;box-shadow:0 12px 28px #020e2057}.opening--direct .button--opening:not(:disabled):hover{color:#fff;background:var(--navy-800);border-color:var(--blue-200)}.opening--direct .button--opening:disabled{cursor:wait;opacity:.72}.opening--direct .opening__error{max-width:420px;margin:12px auto 0;font-family:var(--sans);font-size:.78rem;line-height:1.4}.opening__direct-sound{display:flex;align-items:center;justify-content:center;gap:6px;margin:13px 0 0;color:var(--blue-200);font-family:var(--sans);font-size:.64rem;letter-spacing:.04em}.opening__direct-sound svg{width:17px;flex:0 0 17px}.opening--direct.opening--leaving{animation:opening-direct-dismiss .38s cubic-bezier(.4,0,.2,1) forwards}.opening--direct.opening--leaving .opening__direct-content{animation:opening-direct-content-out .3s ease forwards}@keyframes opening-direct-dismiss{to{opacity:0;visibility:hidden}}@keyframes opening-direct-content-out{to{opacity:0;transform:translateY(12px)}}@media(min-width:720px){.opening__direct-content{padding-bottom:54px}.opening__direct-media{inset:0 max(0px,calc((100% - 900px)/2))}}@media(max-height:700px){.opening__direct-content{padding-top:20px;padding-bottom:20px}.opening__direct-content>.monogram{width:48px;margin-bottom:4px}.opening__direct-invitation{margin-top:12px}.opening__direct-message{font-size:.96rem}.opening--direct .button--opening{margin-top:12px}}
