@font-face{font-family:Ceremony;src:url('/assets/ceremony-display.woff2?v=e2274d9bbd1b') format('woff2');font-weight:400;font-display:swap}
:root{--night:#031323;--navy:#08253d;--blue:#0b3551;--gold:#dfbc78;--light-gold:#f8e6b8;--text:#f4ead3;--muted:#bac7d2;--line:#dfbc7845;--paper:#f5eedf;--paper-ink:#233849;--serif:'Songti SC','STSong','SimSun',serif;--sans:'PingFang SC','Microsoft YaHei',sans-serif;color-scheme:dark;background:var(--night);font-family:var(--sans)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none}body{color:var(--text);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-underline-offset:4px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}::selection{background:var(--gold);color:var(--night)}:focus-visible{outline:2px solid var(--light-gold);outline-offset:4px}input{caret-color:var(--gold)}[hidden]{display:none!important}
.card-theatre{height:100%;height:100dvh;max-width:480px;margin:0 auto;position:relative;isolation:isolate;overflow:hidden;background:var(--night)}.scenery{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.ribbon-plate{position:absolute;inset:-3%;background:url('/assets/particle-ribbon-v2.webp') center/cover no-repeat;transform:scale(1.03);will-change:transform}.scenery-shade{position:absolute;inset:0;background:linear-gradient(180deg,#03132330,transparent 13%,#03132325 48%,#03132300 78%,#03132390)}#gold-dust{position:absolute;inset:0;width:100%;height:100%}.light-sweep{position:absolute;inset:0;opacity:0;background:linear-gradient(112deg,transparent 20%,#ffebbb1a 42%,#fff1c53a 49%,transparent 58%);mix-blend-mode:screen;pointer-events:none}
.card-header{position:absolute;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:calc(20px + env(safe-area-inset-top)) 25px 14px;pointer-events:none}.card-header>span{font-size:11px;line-height:1.65;letter-spacing:.08em;color:var(--light-gold)}.header-controls{display:flex;gap:5px;pointer-events:auto}.icon-button{border:1px solid #dfbc7855;border-radius:50%;width:36px;height:36px;background:#051b32a8;color:var(--gold);display:grid;place-items:center;padding:0}.icon-button svg{width:17px;height:17px}.icon-button:hover{background:#183954}.icon-button[aria-pressed=true]{background:var(--gold);color:var(--night)}
.envelope{position:absolute;inset:0;z-index:30;overflow:hidden}.envelope-content{position:absolute;inset:0;display:flex;align-items:center;flex-direction:column;padding:clamp(112px,17svh,164px) 28px 75px;text-align:center;transition:transform .65s cubic-bezier(.16,1,.3,1),opacity .45s}.envelope-heading{width:100%;margin-bottom:clamp(25px,5svh,50px)}.opening-verse{font:400 clamp(34px,9.4vw,43px)/1.55 var(--serif);letter-spacing:.2em;margin:0 0 19px;padding-left:.2em;color:var(--light-gold)}.opening-divider{display:flex;align-items:center;gap:10px;justify-content:center;margin:0 auto 20px}.opening-divider i{height:1px;width:40px;background:var(--gold);opacity:.55}.opening-divider span{width:5px;height:5px;border:1px solid var(--gold);transform:rotate(45deg)}.envelope-heading h1{font:400 16px/1.8 var(--serif);letter-spacing:.14em;margin:0 0 8px;color:var(--light-gold)}.opening-event{font-size:12px;letter-spacing:.12em;line-height:1.9;margin:0;color:#c8d4de}.seal-button{position:relative;flex-shrink:0;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;border:1px solid #f9e4ac;color:#473315;background:radial-gradient(ellipse at 28% 18%,#fff2c9,#e5c57e 47%,#b69149 90%);box-shadow:0 8px 30px #0006;transition:transform .3s}.seal-button::before{content:'';position:absolute;inset:-9px;border:1px solid #d9b87470;border-radius:50%}.seal-button::after{content:'';position:absolute;inset:6px;border:1px solid #8c663d;border-radius:50%}.seal-button:hover{transform:scale(1.06)}.seal-letter{font:400 42px Ceremony,var(--serif);margin-top:-4px}.seal-caption{position:absolute;left:50%;top:calc(100% + 22px);transform:translateX(-50%);white-space:nowrap;font-size:11px;letter-spacing:.25em;color:var(--light-gold)}.seal-edge{position:absolute;inset:-20px;border:1px solid #dfbc7824;border-radius:50%}.envelope-address{margin-top:auto;padding-top:60px;max-width:100%}.envelope-address p{font:18px/1.5 var(--serif);margin:0 0 10px;color:var(--light-gold);overflow-wrap:anywhere}.honorific{font-size:12px}.envelope-address>span{font-size:11px;letter-spacing:.12em;color:var(--muted)}.envelope-note{position:absolute;left:0;right:0;bottom:20px;text-align:center;font:11px var(--serif);letter-spacing:.3em;color:#c8b27c;margin:0}
.card-deck{position:absolute;inset:0;overflow:auto;overflow-x:hidden;scroll-snap-type:y proximity;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-y:contain;outline:none}.card-deck::-webkit-scrollbar{display:none}.scene{position:relative;min-height:100%;scroll-snap-align:start;padding:95px 34px calc(40px + env(safe-area-inset-bottom));display:flex;justify-content:center;flex-direction:column;scroll-margin-top:0}.scene-reveal{transform:translateY(30px);opacity:.36;transition:transform 1.1s cubic-bezier(.16,1,.3,1),opacity 1s}.scene.is-current .scene-reveal{transform:translateY(0);opacity:1}.hero-scene{text-align:center;padding:105px 30px calc(96px + env(safe-area-inset-bottom))}.hero-content{position:relative;z-index:2;width:100%;transform-origin:center center}.hero-ornament{position:absolute;top:105px;bottom:115px;left:20px;right:20px;pointer-events:none;color:#dfbc7870}.hero-ornament svg{width:100%;height:100%;stroke-width:.7;vector-effect:non-scaling-stroke}.hero-calligraphy{display:flex;justify-content:center;align-items:flex-start;font:400 clamp(82px,23.5vw,108px)/1.1 Ceremony,var(--serif);color:var(--light-gold);letter-spacing:-.02em;margin:0 0 23px;padding:0 0 7px;text-shadow:0 5px 19px #0004}.hero-calligraphy span:nth-child(2){margin-top:23px}.hero-calligraphy span:nth-child(3){margin-top:45px}.hero-slogan{font:400 clamp(20px,5.4vw,25px)/1.6 var(--serif);letter-spacing:.08em;margin:0 0 15px;color:var(--light-gold)}.hero-slogan span{margin-left:8px}.gold-divider{display:flex;align-items:center;justify-content:center;gap:11px;max-width:205px;margin:0 auto}.gold-divider i{height:1px;width:65px;background:linear-gradient(90deg,transparent,#dbbc7d)}.gold-divider i:last-child{transform:rotate(180deg)}.gold-divider svg{width:7px;height:7px;color:var(--gold)}.hero-event{font:400 20px/1.8 var(--serif);letter-spacing:.04em;margin:18px 0 17px;color:var(--light-gold)}.delivery-count{font:400 60px/1.3 Georgia,serif;letter-spacing:-.03em;color:#f5dfad}.delivery-label{font-size:22px;letter-spacing:.02em;margin-left:9px}.salutation{padding:14px 0 0}.salutation p{font:400 22px/1.5 var(--serif);margin:0 0 9px;overflow-wrap:anywhere;color:var(--light-gold)}.salutation>span{font-size:11px;letter-spacing:.22em;color:#d6c396}.hero-date{display:flex;justify-content:center;gap:11px;align-items:center;color:var(--light-gold);font-size:12px;letter-spacing:.04em;margin-top:24px;font-variant-numeric:tabular-nums}.hero-date i{width:1px;height:11px;background:#c4a76e}.hero-location{font-size:11px;letter-spacing:.08em;color:#c7d3df;margin:7px 0 0}.next-scene-cue{display:flex;position:absolute;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);align-items:center;flex-direction:column;gap:2px;text-decoration:none;color:var(--gold);font-size:11px;letter-spacing:.15em}.next-scene-cue svg{width:18px;height:18px}.hero-scene .scene-reveal{opacity:1}
.letter-scene{padding:96px 24px calc(40px + env(safe-area-inset-bottom))}.letter-sheet{position:relative;padding:32px 25px 27px;background:linear-gradient(120deg,#fff8e8,#ede3cf);color:var(--paper-ink);box-shadow:0 14px 45px #0006;min-height:580px;transform-origin:50% 80%}.letter-sheet::before{content:'';position:absolute;inset:10px;border:1px solid #a2824a45;pointer-events:none}.letter-scene .scene-reveal{transform:perspective(1000px) rotateY(-7deg) translateY(35px);opacity:.5}.letter-scene.is-current .scene-reveal{transform:perspective(1000px) rotateY(0) translateY(0);opacity:1}.letter-sheet h2{font:400 42px/1.5 Ceremony,var(--serif);text-align:center;letter-spacing:.08em;margin:0 0 5px;color:#8e6b35}.letter-slogan{text-align:center;font-size:11px;letter-spacing:.04em;margin:0;color:#635c4e}.letter-rule{height:1px;background:#b89e6c60;width:60px;margin:23px auto}.letter-recipient{font:16px/1.7 var(--serif);margin:0 0 14px;overflow-wrap:anywhere}.letter-body{font:14px/2.15 var(--serif);text-align:justify;margin:0 0 15px;color:#344351}.letter-body strong{font-weight:600;color:#243c4f}.letter-sign{font:11px/1.9 var(--serif);text-align:right;margin:25px 0 23px;color:#6c5a3a}.letter-sign span{letter-spacing:.45em}.event-details{border-top:1px solid #a2824a55;margin:0;padding-top:20px;display:grid;gap:15px}.event-details>div{display:flex;gap:16px}.event-details dt{font-size:11px;color:#685638;flex-shrink:0;padding-top:2px}.event-details dd{margin:0;font-size:12px;line-height:1.8}.event-details strong{font-weight:500;font-size:15px;color:#705026}.map-link{display:inline-flex;gap:8px;align-items:center;color:#805d25;font-size:11px;padding:5px 0;text-decoration:none}.map-link svg{height:16px;width:16px}.map-link:hover{text-decoration:underline}.letter-sheet :focus-visible{outline-color:#765323}.paper-corner{position:absolute;right:0;top:0;width:26px;height:26px;background:linear-gradient(225deg,#05182c 49%,#d3c4a6 50%);filter:drop-shadow(-2px 3px 3px #0002)}
.agenda-scene{padding:105px 33px calc(40px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#03152620,#03152690 50%,#03152630)}.scene-title{font:400 43px/1.5 Ceremony,var(--serif);color:var(--light-gold);text-align:center;letter-spacing:.08em;margin:0 0 4px}.scene-subtitle{font-size:12px;letter-spacing:.08em;color:#b9c8d5;text-align:center;margin:0 0 22px}.agenda-list{list-style:none;padding:0;margin:32px 0 24px}.agenda-list li{position:relative;display:flex;gap:18px;align-items:center;min-height:126px;padding:21px 0;border-bottom:1px solid #d5b97e35}.agenda-list li:first-child{border-top:1px solid #d5b97e35}.agenda-index{font:italic 29px Georgia,serif;color:#d3b372;align-self:flex-start;line-height:1.4;width:36px;flex-shrink:0}.agenda-description{flex:1}.agenda-description h3{font:400 23px/1.4 var(--serif);color:var(--light-gold);margin:0 0 8px}.agenda-description p{font-size:12px;line-height:1.85;margin:0;color:#b9c8d5}.agenda-icon{width:42px;height:42px;stroke-width:1;color:#b9a06c}.agenda-note{font-size:11px;text-align:center;color:var(--muted);margin:0 0 25px}.gold-button{display:inline-flex;justify-content:center;align-items:center;gap:20px;background:linear-gradient(115deg,#f3dfae,#dcb76b);color:#23323b;border:1px solid #f7e1b4;border-radius:2px;font-weight:500;font-size:15px;min-height:50px;padding:13px 24px;text-decoration:none;letter-spacing:.1em;transition:filter .2s,transform .2s}.gold-button svg{width:21px;height:21px}.gold-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.gold-button:active{transform:translateY(0)}.agenda-cta{width:100%}
.registration-scene{background:linear-gradient(180deg,#051c32df,#051c32f5);padding:100px 33px calc(40px + env(safe-area-inset-bottom))}.form-intro{text-align:center;color:var(--muted);font-size:12px;margin:8px 0 28px}.status-message{font-size:12px;line-height:1.8;color:var(--light-gold);border:1px solid var(--line);padding:12px;margin:0 0 20px}fieldset{padding:0;margin:0;border:0;min-width:0}#rsvp-form label:not(.consent){display:flex;align-items:center;gap:12px;font-size:13px;color:var(--light-gold);margin:18px 0 8px}#rsvp-form label:first-child{margin-top:0}#rsvp-form label>span{font-size:11px;color:var(--muted)}input:not([type=checkbox]){border:1px solid #9ea58588;border-radius:2px;background:#02132270;color:var(--text);font-size:16px;padding:12px 13px;width:100%;min-height:49px;outline-offset:3px}input::placeholder{color:#a6b6c5;font-size:14px}input:focus{border-color:var(--light-gold);outline:1px solid var(--gold)}.stepper{display:flex;align-items:center;width:166px;height:47px;border:1px solid #9ea58588;border-radius:2px}.stepper input{width:66px;padding:0;border:0;text-align:center;min-height:43px;height:43px;background:transparent;-moz-appearance:textfield;appearance:textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.stepper button{height:45px;width:49px;border:0;background:transparent;color:var(--gold);font-size:21px;flex-shrink:0}.stepper button:hover{background:#c7ad6c22}.consent{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.9;margin:22px 0;color:var(--muted)}.consent input{width:17px;height:17px;accent-color:var(--gold);flex-shrink:0;margin:2px 0 0}.consent a{color:var(--light-gold)}.submit-button{width:100%}.form-message{font-size:12px;color:#ffbca6;margin:9px 0;min-height:20px}.contact{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:6px;padding:20px 0}.contact>div{display:flex;gap:9px;align-items:center}.contact span{font-size:11px;color:var(--muted)}.contact strong{font-weight:400;font-size:13px}.contact a{font-size:13px;text-decoration:none;color:var(--light-gold);display:flex;gap:7px;align-items:center;font-variant-numeric:tabular-nums}.contact a svg{width:15px;height:15px}.privacy{font-size:11px;line-height:1.9;color:var(--muted)}.privacy summary{padding:5px 0;cursor:pointer}.privacy p{font-size:12px}.rsvp-success{text-align:center;padding:35px 0}.rsvp-success>svg{width:48px;height:48px;color:var(--gold)}.rsvp-success h3{font:23px/1.5 var(--serif);color:var(--light-gold)}.rsvp-success p{font-size:13px;overflow-wrap:anywhere}.text-button{background:transparent;border:0;color:var(--gold);padding:10px;text-decoration:underline;text-underline-offset:5px}
.quick-rsvp{position:absolute;top:calc(74px + env(safe-area-inset-top));right:24px;z-index:15;display:flex;align-items:center;gap:5px;color:var(--gold);font-size:11px;letter-spacing:.08em;text-decoration:none;padding:4px 0}.quick-rsvp svg{height:16px;width:16px}.card-theatre.on-form .quick-rsvp{visibility:hidden}.offline-notice{font-size:12px;color:#ffbaaa;line-height:1.7}.no-motion *,.no-motion *::before,.no-motion *::after{animation:none!important;transition:none!important}.no-motion .scene-reveal{transform:none!important;opacity:1!important}
@media(min-width:600px){body{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 35%,#16344b,#06111c 70%)}.card-theatre{height:calc(100dvh - 32px);max-height:920px;width:430px;border-radius:20px;box-shadow:0 22px 90px #0009;outline:1px solid #7691a44d}.hero-calligraphy{font-size:100px}.opening-verse{font-size:40px}}
@media(max-height:740px){.envelope-content{padding-top:110px;padding-bottom:65px}.opening-verse{font-size:34px;line-height:1.4;margin-bottom:13px}.opening-divider{margin-bottom:12px}.envelope-heading{margin-bottom:30px}.seal-button{width:73px;height:73px}.seal-letter{font-size:35px}.envelope-address{padding-top:50px}.hero-scene{padding-top:91px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.hero-calligraphy{font-size:80px;line-height:1;margin-bottom:18px}.hero-calligraphy span:nth-child(2){margin-top:18px}.hero-calligraphy span:nth-child(3){margin-top:35px}.hero-slogan{font-size:21px;margin-bottom:10px}.hero-event{margin:13px 0 8px;font-size:18px}.delivery-count{font-size:50px}.delivery-label{font-size:20px}.salutation{padding-top:9px}.salutation p{font-size:20px}.hero-date{margin-top:18px}.hero-ornament{top:95px;bottom:92px}.next-scene-cue{display:none}.letter-scene{padding-top:90px}.letter-sheet{min-height:0}.agenda-scene{padding-top:94px}.agenda-list{margin-top:23px}.agenda-list li{min-height:115px}.agenda-content .scene-title{font-size:38px}}
@media(max-width:359px){.card-header{padding-left:19px;padding-right:19px}.card-header>span{font-size:11px}.icon-button{width:32px;height:32px}.scene{padding-left:25px;padding-right:25px}.hero-scene{padding-left:24px;padding-right:24px}.hero-calligraphy{font-size:79px}.hero-slogan{font-size:19px}.hero-event{font-size:18px}.delivery-count{font-size:50px}.delivery-label{font-size:19px}.hero-date{font-size:11px;gap:8px}.hero-location{font-size:11px}.letter-scene{padding-left:19px;padding-right:19px}.letter-sheet{padding:28px 22px}.letter-body{font-size:13px}.scene-title{font-size:38px}.agenda-description h3{font-size:21px}.agenda-index{width:31px;font-size:27px}.contact>div{gap:6px}.contact a{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.scene-reveal{opacity:1!important;transform:none!important}}.card-header{background:linear-gradient(180deg,#0313239c,transparent)}
.hero-scene{justify-content:flex-start;padding-top:125px}.hero-logistics{margin:21px auto 0;padding:10px 8px 9px;background:#03182cdb;border-top:1px solid #d9b97850;border-bottom:1px solid #d9b97850;max-width:315px}.hero-logistics .hero-date{margin-top:0}.hero-location{color:#e1e7ed}.next-scene-cue{bottom:calc(24px + env(safe-area-inset-bottom));background:#03182ce6;border:1px solid #d9b97850;border-radius:2px;padding:7px 14px;min-width:130px}.hero-calligraphy span{background:url('/assets/gold-title-v2.webp') center/180px 180px;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #977140)}.agenda-note{background:#03182cc9;padding:7px 8px;display:table;margin:0 auto 20px;color:#d9e0e5}.envelope-address{position:relative;z-index:1}.envelope-address::before{content:'';position:absolute;inset:44px -16px -10px;background:#031629b8;z-index:-1;border-top:1px solid #e0bf7820}.envelope-note{color:#e5d2a4}.seal-button{min-height:0}
@media(max-height:740px){.hero-scene{padding-top:95px}.hero-logistics{margin-top:16px}.next-scene-cue{display:none}}
@media(max-height:620px){.envelope-content{padding-top:95px;padding-bottom:45px}.opening-verse{font-size:28px;line-height:1.35;margin-bottom:10px}.opening-divider{margin-bottom:9px}.envelope-heading h1{font-size:14px}.opening-event{font-size:11px;line-height:1.7}.envelope-heading{margin-bottom:25px}.seal-button{width:62px;height:62px}.seal-letter{font-size:31px}.seal-caption{top:calc(100% + 17px)}.envelope-address{padding-top:42px}.envelope-address p{font-size:15px}.envelope-note{bottom:13px}.envelope-address::before{inset:32px -12px -7px}.hero-scene{padding-top:90px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.hero-calligraphy{font-size:62px;margin-bottom:8px}.hero-calligraphy span:nth-child(2){margin-top:10px}.hero-calligraphy span:nth-child(3){margin-top:18px}.hero-slogan{font-size:18px;margin-bottom:7px}.hero-event{font-size:16px;margin:7px 0 4px}.delivery-count{font-size:38px}.delivery-label{font-size:17px}.salutation{padding-top:5px}.salutation p{font-size:16px;line-height:1.4;margin-bottom:6px}.salutation>span{display:block;line-height:1.6}.hero-logistics{margin-top:10px;padding:7px 8px 6px}.hero-ornament{top:88px;bottom:76px}}
/* V3 — the client's luminous blue and actual brush-lettering lead the scene. */
:root{--night:#04213e;--navy:#074d7d;--blue:#0e78a7;--gold:#edce91;--light-gold:#fff0c6;--text:#fff0d2;--muted:#c3dbe9;--line:#f1d5994d}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ribbon-plate{background-image:url('/assets/ceremony-blue-v3.webp')}
.scenery-shade{background:linear-gradient(180deg,#043f6810,transparent 18%,#031f3a18 56%,#03203a15)}
.card-header{padding-top:calc(19px + env(safe-area-inset-top));background:linear-gradient(180deg,#063e6460,transparent)}
.card-header>span{color:#fff0ca;font-size:11px;text-shadow:0 2px 8px #072d4c}
.icon-button{background:#06416a70;border-color:#e8d69f70;color:#ffedc1}
.envelope-content{padding:101px 28px 74px}.envelope-heading{margin-bottom:30px}
.envelope-title{display:block;width:100%;max-width:350px;height:auto;aspect-ratio:1.54;object-fit:contain;margin:0 auto 19px;filter:drop-shadow(0 4px 8px #02304b35)}
.opening-verse{font:400 22px/1.5 var(--serif);letter-spacing:.08em;padding:0;margin:0 0 17px;white-space:nowrap}
.opening-divider{margin-bottom:15px}.opening-event{font-size:12px;line-height:1.8;letter-spacing:.12em;color:#fff0cf}
.seal-button{width:74px;height:74px;background:radial-gradient(ellipse at 28% 18%,#fff5d8,#efd9a1 46%,#c5a464);border-color:#fff1c7;box-shadow:0 8px 24px #0007}.seal-letter{font-size:37px}
.seal-edge{animation:seal-breathe 3.8s ease-in-out infinite}.seal-caption{top:calc(100% + 18px);letter-spacing:.28em}
@keyframes seal-breathe{0%,100%{transform:scale(.96);opacity:.4}50%{transform:scale(1.08);opacity:1}}
.envelope-address{padding-top:48px}.envelope-address::before{inset:34px -16px -10px;background:#042c49a8}
.envelope-address p{font-size:18px}.envelope-address>span{color:#f1e1bc}
.envelope-note{color:#fff0c9}
.hero-scene{padding:104px 27px calc(96px + env(safe-area-inset-bottom))}.hero-ornament{display:none}
.hero-calligraphy{display:block;font-size:inherit;line-height:1;padding:0;margin:0 0 23px;text-shadow:none}
.hero-calligraphy img{display:block;width:100%;max-width:360px;height:auto;aspect-ratio:1.54;object-fit:contain;margin:auto;filter:drop-shadow(0 4px 8px #032e4c30)}
.hero-slogan{font-size:23px;letter-spacing:.04em;margin-bottom:13px}.hero-event{font-size:18px;line-height:1.8;margin:17px 0 15px}
.delivery-count{font-size:58px;color:#ffedbf}.delivery-label{font-size:21px}.salutation{padding-top:10px}.salutation p{font-size:21px}.salutation>span{color:#f3dba3}
.hero-logistics{margin-top:24px;background:#032a46c9;border-color:#f2d99b60;padding:10px 8px}.hero-location{color:#f0e6cf}
.next-scene-cue{background:#04304dd9;color:#ffebba;border-color:#f5de9e60;bottom:calc(24px + env(safe-area-inset-bottom))}
.quick-rsvp{color:#ffedbd;top:77px;font-size:11px;text-shadow:0 2px 6px #0007}

.agenda-scene{background:linear-gradient(180deg,#05385b15,#052d4b8c 55%,#03244135)}.agenda-description p,.scene-subtitle{color:#d4e4ed}.agenda-icon{color:#e7cd94}.agenda-index{color:#f1cf88}.agenda-note{background:#06304dba;color:#e7edf0}
.registration-scene{background:linear-gradient(180deg,#083d5dd4,#03243eea)}
.gold-button{background:linear-gradient(115deg,#fff0c5,#e8c986);border-color:#fff0c4;color:#173951}
.letter-sheet{background:linear-gradient(120deg,#fff9e9,#f1e8d4)}
.skip-opening{position:absolute;z-index:55;right:24px;bottom:30px;padding:8px 12px;font-size:11px;color:#fff1d1;border:1px solid #f3d99780;background:#043151b8;border-radius:2px}

.card-theatre.entering .next-scene-cue{opacity:0;pointer-events:none}



@media(min-width:600px){body{background:radial-gradient(ellipse at 50% 28%,#0e5475,#031c31 73%)}.card-theatre{outline-color:#85b0c350}.hero-calligraphy{font-size:inherit}}
@media(max-height:740px){.envelope-content{padding-top:90px;padding-bottom:60px}.envelope-title{max-width:270px;margin-bottom:13px}.opening-verse{font-size:20px;margin-bottom:11px}.opening-divider{margin-bottom:10px}.envelope-heading{margin-bottom:24px}.seal-button{width:62px;height:62px}.seal-letter{font-size:31px}.envelope-address{padding-top:42px}.hero-scene{padding-top:94px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.hero-calligraphy{margin-bottom:12px}.hero-calligraphy img{max-width:280px}.hero-slogan{font-size:20px;margin-bottom:10px}.hero-event{font-size:17px;margin:10px 0 8px}.delivery-count{font-size:47px}.delivery-label{font-size:19px}.salutation{padding-top:7px}.salutation p{font-size:19px;margin-bottom:7px}.hero-logistics{margin-top:16px}.next-scene-cue{display:none}}
@media(max-height:620px){.envelope-content{padding-top:86px;padding-bottom:45px}.envelope-title{max-width:210px;margin-bottom:9px}.opening-verse{font-size:17px;margin-bottom:8px}.opening-divider{display:none}.opening-event{font-size:11px;line-height:1.7}.envelope-heading{margin-bottom:19px}.seal-button{width:52px;height:52px}.seal-letter{font-size:28px}.seal-caption{font-size:11px;top:calc(100% + 15px)}.envelope-address{padding-top:34px}.envelope-address p{font-size:14px}.envelope-address::before{inset:25px -12px -6px}.hero-scene{padding-top:92px}.hero-calligraphy{margin-bottom:8px}.hero-calligraphy img{max-width:220px}.hero-slogan{font-size:17px;margin-bottom:7px}.hero-event{font-size:16px;margin:7px 0 4px}.delivery-count{font-size:37px}.delivery-label{font-size:16px}.salutation{padding-top:4px}.salutation p{font-size:15px;line-height:1.35;margin-bottom:5px}.salutation>span{font-size:11px;line-height:1.6}.hero-logistics{margin-top:9px;padding:6px 8px}.hero-date{font-size:11px}.hero-location{font-size:11px;margin-top:4px}}

.is-sealed .card-deck{visibility:hidden}
.hero-calligraphy{margin-bottom:16px}.hero-logistics{margin-top:17px}
@media(max-height:740px){.hero-calligraphy{margin-bottom:12px}.hero-logistics{margin-top:16px}}
@media(max-height:620px){.hero-calligraphy{margin-bottom:8px}.hero-logistics{margin-top:9px}}

@media(max-height:740px){.has-long-guest .hero-calligraphy img{max-width:210px}.has-long-guest .delivery-count{font-size:43px}.has-long-guest .hero-logistics{margin-top:12px}.has-long-guest .envelope-title{max-width:235px}}
@media(max-height:620px){.has-long-guest .hero-calligraphy img{max-width:174px}.has-long-guest .delivery-count{font-size:35px}.has-long-guest .hero-logistics{margin-top:8px}.has-long-guest .envelope-title{max-width:160px}}

.salutation{position:relative;isolation:isolate}.salutation::before{content:'';position:absolute;inset:-5px -12px -7px;z-index:-1;background:radial-gradient(ellipse at center,#04345ae8 0%,#04345ad9 56%,#04345a80 76%,transparent 100%)}
.seal-caption{padding:3px 10px;background:#043559cf;border-radius:2px}

.has-long-guest .next-scene-cue{display:none}

/* One complete cover. The gold seal releases into the title along flowing arcs. */
.envelope-frame{position:absolute;inset:85px 22px 38px;border:1px solid #f2d49333;pointer-events:none}
.opening-shade{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 50% 38%,#012747c2,#022b4c70 65%,#02345620);pointer-events:none}
.envelope.is-opening{pointer-events:none}
.envelope.is-opening .envelope-frame{animation:frame-vanish 1s ease-out both}
.envelope.is-opening .envelope-heading,.envelope.is-opening .envelope-address,.envelope.is-opening .envelope-footer{animation:cover-lift 1.2s cubic-bezier(.4,0,.2,1) both}
.envelope.is-opening .seal-button{opacity:1;animation:seal-release 1.1s cubic-bezier(.4,0,.2,1) both}
.envelope.is-opening .seal-caption{animation:frame-vanish .32s ease-out both}
.envelope.is-opening .seal-edge{animation:seal-ring-release 1.3s cubic-bezier(.16,1,.3,1) both}
.card-theatre.entering .opening-shade{animation:opening-depth 4.8s linear both}
.card-theatre.entering .hero-content{animation:none;transform:none;opacity:1}
.card-theatre.entering .hero-calligraphy{animation:title-materialize 4.8s linear both}
.card-theatre.entering .hero-content>:not(.hero-calligraphy){animation:invitation-copy 4.8s linear both}
@keyframes frame-vanish{from{opacity:1}to{opacity:0}}
@keyframes cover-lift{0%,12%{opacity:1;transform:translateY(0);filter:blur(0)}100%{opacity:0;transform:translateY(-18px);filter:blur(4px)}}
@keyframes seal-release{0%{transform:scale(1);opacity:1;filter:brightness(1)}20%{transform:scale(.92);opacity:1;filter:brightness(1.18)}45%{transform:scale(1.04);opacity:.75;filter:brightness(1.3)}100%{transform:scale(.45);opacity:0;filter:brightness(1)}}
@keyframes seal-ring-release{0%{transform:scale(1);opacity:.45}22%{opacity:.8}100%{transform:scale(2.25);opacity:0}}
@keyframes opening-depth{0%{opacity:0}24%,52%{opacity:1}82%,100%{opacity:0}}
@keyframes title-materialize{0%,68%{opacity:0}82%,100%{opacity:1}}
@keyframes invitation-copy{0%,69%{opacity:0;transform:translateY(13px);filter:blur(3px)}92%,100%{opacity:1;transform:translateY(0);filter:blur(0)}}

/* Personal address: company, recipient and salutation each have their own line.
   The cover can scroll for unusually long names instead of clipping or tiny type. */
.envelope-content{position:relative;inset:auto;min-height:100%;padding:calc(96px + env(safe-area-inset-top)) 32px calc(28px + env(safe-area-inset-bottom));transition:none}
.envelope{overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none}
.envelope::-webkit-scrollbar{display:none}
.envelope-heading{flex-shrink:0;margin-bottom:28px}
.envelope-title{max-width:300px;margin-bottom:12px}
.opening-verse{margin-bottom:12px}
.opening-divider{margin-bottom:12px}
.seal-button{margin-bottom:60px}
.envelope-address{flex-shrink:0;width:100%;max-width:340px;margin-top:auto;padding:0;isolation:isolate}
.envelope-address::before{inset:-16px -20px;background:radial-gradient(ellipse at center,#043355f2 0%,#043355e8 48%,#043355a6 72%,transparent 100%);border:0}
.envelope-address .recipient-company,.salutation .recipient-company{font:400 14px/1.65 var(--sans);letter-spacing:.02em;color:#fff0cc;margin:0 0 8px;overflow-wrap:anywhere;text-wrap:balance}
.envelope-address .recipient-name{font:400 25px/1.4 var(--serif);letter-spacing:.06em;margin:0;overflow-wrap:anywhere;text-wrap:balance}
.envelope-address .honorific{display:block;font:12px/1.6 var(--serif);letter-spacing:.28em;padding-left:.28em;margin-top:6px;color:#f5dfb0}
.envelope-footer{flex-shrink:0;position:relative;width:100%;margin-top:24px;text-align:center;text-shadow:0 2px 8px #032b4c}
.envelope-date{font:12px/1.5 var(--sans);letter-spacing:.08em;color:#fff0ce;font-variant-numeric:tabular-nums;margin:0}
.envelope-note{position:static;font:11px/1.5 var(--serif);letter-spacing:.24em;color:#f5dfb0;margin:12px 0 0}
.salutation #guest-name{font:400 23px/1.5 var(--serif);margin:0 0 8px;overflow-wrap:anywhere;text-wrap:balance}
.salutation .recipient-company{margin-bottom:6px}
.letter-recipient .recipient-company{display:block;font:13px/1.7 var(--sans);margin-bottom:6px;color:#4e5c66;overflow-wrap:anywhere}
.has-long-guest .envelope-address .recipient-name,.has-long-guest .salutation #guest-name{font-size:20px}
.has-guest-company .next-scene-cue{display:none}
@media(max-height:740px){
 .envelope-content{padding-top:calc(90px + env(safe-area-inset-top));padding-bottom:calc(24px + env(safe-area-inset-bottom))}
 .envelope-title,.has-long-guest .envelope-title{max-width:220px;margin-bottom:8px}
 .opening-verse{font-size:18px;margin-bottom:8px}.opening-divider{margin-bottom:8px}
 .envelope-heading{margin-bottom:24px}.seal-button{width:58px;height:58px;margin-bottom:56px}
 .envelope-address .recipient-name{font-size:23px}.envelope-footer{margin-top:20px}
 .salutation #guest-name{font-size:21px}
}
@media(max-height:620px){
 .envelope-content{padding-top:calc(86px + env(safe-area-inset-top));padding-left:28px;padding-right:28px}
 .envelope-title,.has-long-guest .envelope-title{max-width:160px}
 .envelope-heading{margin-bottom:20px}.opening-verse{font-size:17px}
 .seal-button{width:52px;height:52px;margin-bottom:52px}
 .envelope-address .recipient-company{font-size:13px}.envelope-address .recipient-name{font-size:22px}
 .envelope-footer{margin-top:16px}.envelope-note{margin-top:8px}
 .salutation #guest-name{font-size:20px}.salutation .recipient-company{font-size:13px}
}

/* V6: discrete pages keep the V5 artwork and resting composition. */
.card-deck.has-pager{overflow:hidden;overflow:clip;scroll-snap-type:none;scroll-behavior:auto;perspective:1100px;perspective-origin:50% 45%}
.has-pager .scene{position:absolute;inset:0;width:100%;height:100%;min-height:0;visibility:hidden;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;scroll-snap-align:none;scroll-padding-top:96px;justify-content:flex-start;transform-origin:50% 45%;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.has-pager .scene::-webkit-scrollbar{display:none}
.has-pager .scene.is-current,.has-pager .scene.is-moving{visibility:visible}
.is-sealed .has-pager .scene{visibility:hidden}
.has-pager .scene.is-departing{z-index:1;pointer-events:none}
.has-pager .scene.is-arriving{z-index:2;pointer-events:none}
.has-pager .scene.is-moving{will-change:transform,opacity}
.has-pager .scene-reveal{transform:none;opacity:1;transition:none}
.has-pager .hero-content{flex-shrink:0}
.has-pager .letter-sheet,.has-pager .agenda-content,.has-pager .registration-content{flex-shrink:0;margin-top:auto;margin-bottom:auto}
.is-dragging .has-pager{user-select:none;-webkit-user-select:none;cursor:grabbing}
.is-turning .quick-rsvp{pointer-events:none;opacity:.45}
.no-motion .has-pager .scene.is-moving:not(.is-current){visibility:hidden}
.icon-button,.stepper button,.text-button,.map-link,.quick-rsvp{transition:transform .14s ease-out,background .14s ease-out,color .14s ease-out}
.icon-button:active{transform:scale(.9);background:#edce9138}
.gold-button:active{transform:translateY(1px) scale(.98);filter:brightness(.94)}
.stepper button:active{transform:scale(.9);background:#edce9130}
.text-button:active,.map-link:active,.quick-rsvp:active{transform:translateY(1px);color:#fff6db}
.rsvp-success:not([hidden])>svg{animation:confirmation-arrive .45s cubic-bezier(.16,1,.3,1) both}
.rsvp-success:not([hidden])>svg path{stroke-dasharray:40;animation:confirmation-check .5s .12s ease-out both}
@keyframes confirmation-arrive{from{opacity:.4;transform:scale(.8)}to{opacity:1;transform:none}}
@keyframes confirmation-check{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}

/* V7: shared scene lighting and tactile controls; settled artwork is unchanged. */
.chapter-wash{position:absolute;inset:0;z-index:0;pointer-events:none}
.chapter-wash>div{position:absolute;inset:0;opacity:0}
.chapter-wash-agenda{background:linear-gradient(180deg,#05385b15,#052d4b8c 55%,#03244135)}
.chapter-wash-registration{background:linear-gradient(180deg,#083d5dd4,#03243eea)}
.card-deck.has-pager{z-index:1}
.has-pager .agenda-scene,.has-pager .registration-scene{background:none}
.is-sealed .chapter-wash{visibility:hidden}
.has-page-scroll .card-header{background:linear-gradient(180deg,#043457fc 15%,#043457f2 62%,#04345700)}
.is-turning .quick-rsvp{opacity:0}
.gold-button{position:relative;overflow:hidden;isolation:isolate;transition:transform .14s cubic-bezier(.2,.8,.2,1),filter .18s ease-out}
.gold-button::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at var(--press-x,50%) var(--press-y,50%),#fff9df99,transparent 65%);opacity:0;transition:opacity .2s ease-out}
.gold-button.is-pressed{transform:translateY(1px) scale(.985);filter:brightness(.98)}
.gold-button.is-pressed::after{opacity:1}
.icon-button.is-pressed{transform:scale(.92);background:#edce9138}
.stepper button.is-pressed{transform:scale(.92);background:#edce9130}
input:not([type=checkbox]){transition:border-color .18s ease-out,background-color .18s ease-out,box-shadow .18s ease-out}
input:not([type=checkbox]):focus{background-color:#073653d9;box-shadow:0 3px 12px #031e3633}
#submit-button:disabled{opacity:.8;cursor:wait}
@media(hover:none){.gold-button:hover{transform:none;filter:none}.gold-button.is-pressed{transform:translateY(1px) scale(.985);filter:brightness(.98)}}

/* Material chapters: printed stationery, engraved gold, a hinged reply. */
.paper-foil,.reply-foil,.journey-route,.chapter-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.paper-foil,.reply-foil{z-index:1;stroke-width:.8}
.foil-base{stroke:#76511f24;transform:translateY(.6px)}.foil-ink{stroke:#ad8645;stroke-width:.9;opacity:.9}
.foil-shine{stroke-width:1.4;opacity:0;stroke-linecap:round}
.chapter-dust{z-index:3}
.letter-scene{padding-top:calc(112px + env(safe-area-inset-top))}
.letter-sheet{overflow:hidden;padding:30px 27px 26px;background-image:url('/assets/paper-fiber.png'),linear-gradient(120deg,#fff9e9,#f1e8d4);box-shadow:0 14px 32px #02243c66,0 2px 1px #c6b184;isolation:isolate;transform-origin:50% 60%}
.letter-sheet::before{inset:19px;border-color:#ad86451c}
.letter-sheet h2{font-size:44px;margin-bottom:4px;color:#88632d}
.letter-sheet h2,.letter-sheet p,.letter-sheet .letter-rule,.letter-signature,.event-details{position:relative;z-index:2}
.letter-sheet .letter-rule{width:72px;margin:20px auto;background:linear-gradient(90deg,transparent,#ac864c,transparent)}
.letter-sheet .letter-rule::after{content:'';position:absolute;left:calc(50% - 2px);top:-2px;width:5px;height:5px;transform:rotate(45deg);background:#ba985d;outline:4px solid #faf3e3}
.paper-gleam{position:absolute;inset:-15% -30%;z-index:1;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 16%,#d6bf8f16 28%,#fffefa99 47%,#fffefa24 64%,transparent 80%)}
.paper-corner{z-index:4;transform-origin:100% 0}
.letter-signature{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:19px 0 23px;min-height:65px}
.letter-signature .letter-sign{margin:0;font-size:11px;line-height:1.9}
.letter-seal{display:grid;place-items:center;width:44px;height:46px;flex-shrink:0;color:#99733b;border:1px solid #ae884b;border-radius:3px;transform:rotate(-12deg);box-shadow:inset 0 0 0 3px #f7eedb,inset 0 0 0 4px #ad864580;text-shadow:0 1px 0 #fffcdf}
.letter-seal span{font:19px/1.03 Ceremony,var(--serif);text-align:center;letter-spacing:0}
.event-details{padding-top:17px;gap:12px}.event-details>div{gap:14px}
.event-details dd{min-width:0}
.location-actions{display:flex;align-items:center;flex-wrap:wrap;gap:0 18px;margin-top:2px}
.location-actions .map-link{border:0;border-radius:0;background:none;min-height:40px;padding:8px 0;font:12px/1.5 var(--sans);text-decoration:none;white-space:nowrap}
.location-copy{min-width:82px;justify-content:flex-start}
.location-copy[aria-busy=true]{cursor:wait}
.location-actions .map-link:active{transform:translateY(1px);color:#5b3d14}
.address-copy-fallback{margin:6px 0 2px}
.address-copy-fallback label{display:block;font:11px/1.7 var(--sans);color:#685638;margin-bottom:7px}
.address-copy-fallback textarea{display:block;width:100%;min-height:64px;resize:none;border:1px solid #ad86456b;border-radius:2px;padding:8px;background:#fffaf0;color:#233849;font:16px/1.6 var(--sans);caret-color:#80602d;user-select:text;-webkit-user-select:text}
.letter-sheet .map-link:active{color:#5b3d14}

/* One label column and one content column align time, destination and actions. */
.event-details>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px}
.event-details>.venue-row{margin-top:4px}
.event-details .venue-row>dd{margin:0}
.venue-preview{display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:start;gap:12px;width:100%;min-width:0;border:0;padding:0;background:transparent;color:#80602d;text-align:left;transition:filter .14s ease-out}
.venue-preview img{display:block;width:100%;height:auto;border:1px solid #ad864552;border-radius:2px}
.venue-preview:active{filter:brightness(.94)}
.venue-preview:focus-visible{outline:2px solid #80602d;outline-offset:4px}
.venue-description{min-width:0;display:grid;gap:5px;font:12px/1.65 var(--sans);color:#596067}
.venue-description .venue-name{font:500 14px/1.65 var(--sans);color:#233849;overflow-wrap:anywhere;text-wrap:balance}
.venue-description #event-address{text-wrap:balance}
.venue-view-label{display:inline-flex;align-items:center;gap:5px;margin-top:3px;font:12px/1.5 var(--sans);color:#80602d}
.venue-view-label svg{width:14px;height:14px}
.venue-row .location-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;border-top:1px solid #ad864538}
.venue-row .location-actions .map-link{justify-content:flex-start;min-height:44px;padding:10px 0;margin:0;color:#80602d}
.venue-row .location-actions .map-link+ .map-link{justify-content:flex-end}
.music-credit a{color:var(--light-gold);text-underline-offset:3px}
@media(max-width:359px){.event-details>div{gap:10px}.venue-preview{grid-template-columns:minmax(0,1fr) 64px;gap:10px}.venue-description .venue-name{font-size:13px}.venue-description{font-size:12px}}
.map-viewer{width:calc(100% - 28px);max-width:480px;max-height:92dvh;padding:0;border:1px solid #b69760;border-radius:8px;background:#fff9e9;color:#233849;box-shadow:0 18px 60px #0006}
.map-viewer::backdrop{background:#02182bd9}
.map-viewer-content{max-height:90dvh;overflow:auto;overscroll-behavior:contain;padding:16px;display:grid;gap:12px}
.map-viewer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.map-viewer-heading h2{font:500 19px/1.5 var(--sans);margin:0}
.map-viewer-heading button{min-width:48px;min-height:44px;border:1px solid #ad864552;border-radius:2px;background:transparent;color:#80602d;font:13px var(--sans)}
.map-viewer-address{font:12px/1.8 var(--sans);color:#596067;margin:0}
.map-viewer-address strong{font-weight:500;color:#233849}
.map-viewer-image{display:block;width:100%;height:auto;border-radius:2px}
.map-viewer .gold-button{margin:0;width:100%;min-height:44px;gap:8px}
.map-viewer :focus-visible{outline-color:#80602d}

.agenda-journey{position:relative;isolation:isolate;margin:28px 0 22px}
.agenda-list{position:relative;z-index:2;margin:0}
.agenda-list li,.agenda-list li:first-child{border:0;gap:16px;min-height:128px;padding:22px 0}
.agenda-list li::after{content:'';position:absolute;bottom:0;left:60px;right:0;height:1px;background:linear-gradient(90deg,#e9cc8e4d,transparent)}
.agenda-list li:last-child::after{display:none}
.agenda-index{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;align-self:center;font:italic 23px/1 Georgia,serif;letter-spacing:-.02em;color:#ffe8b6;width:42px;height:42px;border:1px solid #dcbf7e8c;background:linear-gradient(145deg,#1a5370,#07334e 65%,#082e47);border-radius:50%;box-shadow:inset 0 1px 0 #f6dda32e,0 4px 10px #001c3150;text-shadow:0 1px 1px #031d32}
.agenda-index::before{content:'';position:absolute;inset:3px;border:1px solid #e3c68b1c;border-radius:50%;pointer-events:none}
.medallion-light{position:absolute;inset:-25% -25%;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 28%,#e2c17d20 40%,#fff2c580 50%,#e2c17d10 63%,transparent 70%)}
.agenda-description{min-width:0;position:relative;isolation:isolate}
.agenda-description::before{content:'';position:absolute;inset:-25px -25px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 50% at 50% 50%,#063354f2 0%,#063354dc 45%,#06335490 58%,transparent 100%)}
.agenda-description h3{font-size:25px;letter-spacing:.035em;margin-bottom:8px}.agenda-description p{line-height:1.9;color:#d6e5ec}
.agenda-icon{width:45px;height:45px;stroke-width:1.05;color:#efd59e;overflow:visible}
.truck-body,.banquet-lid{transform-box:fill-box;transform-origin:50% 100%}
.journey-route{z-index:0;stroke-width:1.1}
.journey-base{stroke:#e4c78530}.journey-ink{stroke:#e8ce91b3}
.agenda-journey .chapter-dust{z-index:1}
.agenda-note{background:none;color:#ccdee8;font-size:11px;letter-spacing:.04em;margin-bottom:23px;padding:0}

.registration-scene{padding:96px 25px calc(30px + env(safe-area-inset-bottom))}
.reply-heading{text-align:center}
.reply-envelope{display:block;width:86px;height:43px;margin:0 auto 5px;color:#ecd098;stroke-width:1.1;overflow:visible;filter:drop-shadow(0 3px 2px #01284166)}
.reply-outline{fill:#d7bc8010}.reply-flap{transform-origin:50% 17px;fill:#e8d29b0a}.reply-rays{opacity:.55}
.reply-heading .scene-title{font-size:41px;line-height:1.4;margin-bottom:0}
.reply-heading .form-intro{font-size:12px;margin:7px 0 22px;letter-spacing:.01em}
.reply-sheet{position:relative;isolation:isolate;padding:27px 24px 18px;background:linear-gradient(135deg,#0f527461,#042a466e 60%,#092f4b78);box-shadow:0 8px 22px #001c3444,inset 0 1px 0 #e5d6ab16;transform-origin:50% 0}
.reply-sheet::before{content:'';position:absolute;left:calc(50% - 3px);top:5px;width:6px;height:6px;background:#edce91;transform:rotate(45deg);pointer-events:none}
.reply-foil .foil-base{stroke:#e7cc8b20}.reply-foil .foil-ink{opacity:.75}
.reply-sheet>form,.reply-sheet>.status-message,.reply-sheet>.rsvp-success{position:relative;z-index:2}
.reply-sheet input:not([type=checkbox]){background:#03243e85;border-color:#b3c2ad75}
.reply-sheet input:not([type=checkbox]):focus{background:#0a3f5ed9;border-color:#ffe7b0}
.reply-sheet #rsvp-form label:not(.consent){margin-top:17px;letter-spacing:.03em}
.reply-sheet #rsvp-form label:first-child{margin-top:0}
.reply-sheet .stepper{border-color:#b3c2ad75;background:#03243e65}
.reply-sheet .stepper input{background:transparent}
.reply-sheet .consent{margin:20px 0 18px}
.reply-sheet .form-message:empty{display:none}
.reply-sheet .form-message{margin-bottom:0}
.registration-content>.contact{border:0;margin-top:9px;padding:17px 3px 12px;gap:8px}
.registration-content>.privacy{padding:0 3px}
.reply-sheet.has-receipt{background-image:url('/assets/paper-fiber.png'),linear-gradient(120deg,#fff9e9,#f1e8d4);color:#233849;padding:29px 26px 24px;box-shadow:0 11px 25px #001c3455,0 2px 1px #c6b184}
.has-receipt .reply-foil .foil-base{stroke:#a27c3f30}.has-receipt .reply-foil .foil-ink{stroke:#ad864580}
.has-receipt::before{background:#ad8645}
.reply-sheet .rsvp-success{padding:5px 0 0;transform-origin:50% 0}
.rsvp-success:not([hidden])>svg,.rsvp-success:not([hidden])>svg path{animation:none}
.reply-sheet .rsvp-success>svg{width:48px;height:48px;color:#936c2f;stroke-width:1}
.reply-sheet .rsvp-success h3{font:400 25px/1.6 Ceremony,var(--serif);color:#765323;margin:12px 0 13px}
.reply-sheet .rsvp-success p{color:#455660;line-height:1.9;font-size:12px;margin:14px 0}
.reply-sheet .rsvp-success .receipt-event{font:13px/1.8 var(--serif);color:#725732;max-width:230px;margin:0 auto}
.reply-sheet #success-summary{margin:19px 0;padding:16px 0;border-top:1px solid #b99d673f;border-bottom:1px solid #b99d673f;font-size:14px;color:#273d4c}
.reply-sheet .text-button{color:#80602d;font-size:12px}
.reply-sheet.has-receipt :focus-visible{outline-color:#80602d}
/* Match each decorative starting pose while the incoming page is under the
   finger, so landing never shows a final stamp then suddenly hides it. */
.is-arriving .letter-seal{opacity:0;transform:translate3d(2px,-7px,0) scale(1.13) rotate(-12deg)}
.is-arriving .journey-ink,.is-arriving .truck-road,.is-arriving .presentation-trend{stroke-dasharray:1 1;stroke-dashoffset:1}
.is-arriving .journey-ink{stroke-dashoffset:1!important}
.is-arriving .truck-body{opacity:.6;transform:translateX(-7px)}
.is-arriving .banquet-lid{opacity:.65;transform:translateY(-5px)}
.is-arriving .reply-flap{transform:perspective(400px) rotateX(-170deg);fill:#d7b87930}
.is-arriving .reply-rays{opacity:0;transform:translateY(3px)}
@media(max-width:359px){
 .letter-sheet{padding:28px 23px 24px}.letter-sheet h2{font-size:40px}.letter-slogan{letter-spacing:0}
 .letter-signature{gap:13px}.letter-seal{width:40px;height:43px}
 .agenda-scene{padding-left:23px;padding-right:23px}.agenda-list li{gap:13px;min-height:121px}.agenda-index{width:38px;height:38px;font-size:21px}
 .agenda-description h3{font-size:22px;letter-spacing:.01em}.agenda-icon{width:37px;height:37px}
 .registration-scene{padding-left:18px;padding-right:18px}.reply-sheet{padding:25px 20px 18px}.reply-heading .scene-title{font-size:38px}
}
@media(max-height:740px){
 .letter-sheet{min-height:0}.agenda-journey{margin-top:22px;margin-bottom:20px}.agenda-list li{min-height:115px;padding:17px 0}
 .registration-scene{padding-top:89px}.reply-envelope{width:72px;height:36px;margin-bottom:3px}.reply-heading .scene-title{font-size:38px}.reply-heading .form-intro{margin-bottom:18px}
}
