:root{--paper:#fff;--paper2:#fff;--ink:#181818;--muted:#747474;--coral:#ef5a43;--blue:#4b9bd3;--line:rgba(24,24,24,.16);--safe-top:max(25px,env(safe-area-inset-top));--safe-bottom:max(20px,env(safe-area-inset-bottom))}
*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:SimSun,"宋体","Songti SC",STSong,serif}button,input,a{font:inherit;-webkit-tap-highlight-color:transparent}button,label,a,input[type=range]{touch-action:manipulation}.invitation{width:min(100%,540px);height:100svh;margin:auto;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;scrollbar-width:none;background:var(--paper)}.invitation::-webkit-scrollbar{display:none}.page,.page *{min-width:0}.page{position:relative;isolation:isolate;width:100%;min-height:100svh;padding:calc(var(--safe-top) + 32px) clamp(24px,7%,39px) calc(var(--safe-bottom) + 23px);overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always}.paper-page{background-color:#fff;background-image:radial-gradient(circle at 11% 13%,rgba(0,0,0,.018) 0 1px,transparent 1px),linear-gradient(90deg,transparent 49.8%,rgba(0,0,0,.015) 50%,transparent 50.2%);background-size:5px 5px,100% 100%}.paper-page:before{content:"";position:absolute;inset:0;z-index:-3;opacity:.32;background:linear-gradient(112deg,transparent 0 48%,rgba(0,0,0,.018) 49%,transparent 50%)}.folio{position:absolute;z-index:10;left:clamp(24px,7%,39px);top:var(--safe-top);color:var(--muted);font:700 8px/1.2 "Courier New",monospace;letter-spacing:.16em}.eyebrow{margin:0;font:700 8px/1.3 "Courier New",monospace;letter-spacing:.17em}.page-heading{position:relative;z-index:5}.page-heading h2{margin:6px 0 0;font-size:clamp(29px,7.7vw,42px);font-weight:400;line-height:1.17;letter-spacing:-.05em}.names{margin:0;font-size:16px;letter-spacing:.14em}.names i{padding:0 5px;color:var(--coral);font-style:normal}.reveal{opacity:0;transform:translateY(12px)}.page.is-active .reveal{animation:reveal .62s cubic-bezier(.2,.75,.2,1) forwards}.page.is-active .reveal:nth-child(3){animation-delay:.08s}.page.is-active .reveal:nth-child(4){animation-delay:.15s}.page.is-active .reveal:nth-child(5){animation-delay:.22s}.invitation.is-preview .reveal{animation-delay:0s!important;animation-duration:.01s!important}@keyframes reveal{to{opacity:1;transform:translateY(0)}}

/* shared paper objects */
.paper-photo{position:relative;margin:0;padding:7px 7px 20px;background:var(--paper2);filter:drop-shadow(2px 4px 1px rgba(61,55,44,.13));clip-path:polygon(1% 2%,9% 0,17% 2%,26% 0,35% 2%,45% 0,55% 2%,65% 0,74% 2%,84% 0,93% 2%,99% 0,98% 15%,100% 29%,98% 44%,100% 59%,98% 75%,100% 99%,88% 97%,76% 100%,64% 97%,52% 100%,40% 97%,28% 100%,16% 97%,1% 99%,3% 82%,1% 65%,3% 48%,1% 31%)}.paper-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.88) brightness(1.04) contrast(.96)}.paper-photo:after{content:"";position:absolute;inset:7px 7px 20px;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(44,39,33,.035) 2px 3px);mix-blend-mode:multiply}.paper-photo figcaption{padding:5px 2px 0;color:var(--muted);font:600 7px/1.2 "Courier New",monospace;letter-spacing:.1em}.open-letter,.submit-reply{border:1px solid var(--ink);border-radius:0;color:var(--paper2);background:var(--ink);box-shadow:4px 4px 0 var(--coral);cursor:pointer}

/* 01 */
.page-cover{display:flex;flex-direction:column}.cover-title{position:relative;z-index:4;text-align:center}.cover-title h1{margin:12px 0 14px;font-size:clamp(45px,12vw,65px);font-weight:400;line-height:1;letter-spacing:.07em}.cover-title time{display:block;margin-top:9px;color:var(--muted);font:700 10px/1 "Courier New",monospace;letter-spacing:.16em}.cover-snapshot{position:absolute;z-index:2;left:7%;right:7%;top:36%;height:33vh;transform:rotate(-1.8deg)}.cover-snapshot img{object-position:center 65%}.address-mark{position:absolute;z-index:4;left:8%;bottom:18vh;display:grid;grid-template-columns:29px auto;align-items:end;gap:8px;transform:rotate(-2deg)}.address-mark span{padding-bottom:4px;border-bottom:1px solid var(--coral);color:var(--coral);font:700 9px/1 "Courier New",monospace}.address-mark b{font-size:13px;font-weight:400;letter-spacing:.11em}.open-letter{position:absolute;z-index:5;right:8%;bottom:calc(var(--safe-bottom) + 6vh);display:flex;align-items:center;gap:25px;padding:12px 15px;font-size:11px}.open-letter i{color:var(--coral);font-style:normal;font-size:17px}.swipe-hint{position:absolute;bottom:calc(var(--safe-bottom) + 1.5vh);left:0;right:0;margin:0;text-align:center;color:var(--muted);font-size:9px}

/* 02 */
.page-letter{display:grid;place-items:center}.letter-sheet{position:relative;width:92%;min-height:64vh;padding:6vh 9% 4vh;background:rgba(255,250,241,.72);box-shadow:0 8px 22px rgba(59,48,31,.1);transform:rotate(-.5deg)}.letter-sheet:before{content:"";position:absolute;inset:0;border:1px solid rgba(41,42,39,.14);clip-path:polygon(0 0,100% 0,100% 96%,94% 98%,86% 96%,77% 99%,68% 97%,58% 100%,48% 97%,38% 99%,27% 96%,17% 99%,7% 96%,0 98%)}.salutation{margin:0 0 5.5vh;font-size:13px}.letter-body p{margin:0 0 3.6vh;font-size:clamp(21px,5.8vw,31px);line-height:1.55;letter-spacing:-.025em}.letter-sheet footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:4vh;font-size:12px}.letter-sheet footer i{color:var(--coral);font:italic 16px Georgia,serif}.letter-thread{position:absolute;z-index:3;right:0;bottom:12%;width:100px;height:80px;border:2px solid var(--coral);border-left-color:transparent;border-radius:50%;transform:rotate(-14deg)}.letter-note{position:absolute;left:9%;bottom:4%;margin:0;color:var(--muted);font:600 7px/1 "Courier New",monospace;letter-spacing:.11em}

/* 03 */
.page-calendar{display:flex;flex-direction:column}.calendar-sheet{margin:3vh auto 0;width:93%;padding:18px 19px 16px;background:var(--paper2);box-shadow:0 7px 20px rgba(59,48,31,.1);transform:rotate(.7deg)}.calendar-sheet header{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:10px;border-bottom:2px solid var(--ink)}.calendar-sheet header span{font:700 27px/1 Georgia,serif;letter-spacing:.04em}.calendar-sheet header strong{font:700 12px/1 "Courier New",monospace;letter-spacing:.12em}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays{padding:10px 0 5px;color:var(--muted);font-size:8px}.weekdays b{font-weight:400}.calendar-grid{row-gap:7px}.calendar-grid span,.calendar-grid i{position:relative;display:grid;place-items:center;height:25px;font:700 10px/1 "Courier New",monospace;font-style:normal}.wedding-date{z-index:2;color:var(--paper2)}.wedding-date:before{content:"";position:absolute;z-index:-1;width:24px;height:24px;border-radius:50%;background:var(--coral)}.wedding-date em{position:absolute;z-index:-2;width:37px;height:29px;border:2px solid var(--coral);border-radius:48% 52% 45% 55%;transform:rotate(-12deg);opacity:.75}.countdown-wrap{margin:auto 0 0}.countdown-wrap>p{margin:0 0 9px;text-align:center;color:var(--muted);font:600 7px/1 "Courier New",monospace;letter-spacing:.15em}.flip-countdown{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:7px}.flip-countdown>div{position:relative;display:grid;place-items:center;min-height:74px;padding:8px 3px;color:var(--ink);background:#eee5d7;border-radius:4px;box-shadow:inset 0 -3px 5px rgba(56,44,30,.12),0 2px 0 rgba(255,255,255,.8)}.flip-countdown>div:after{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid rgba(41,42,39,.18)}.flip-countdown strong{font:500 24px/1 "Courier New",monospace;letter-spacing:-.04em}.flip-countdown span{font-size:9px}.flip-countdown>div:first-child{box-shadow:inset 0 -3px 5px rgba(56,44,30,.12),inset 4px 0 0 var(--coral),0 2px 0 rgba(255,255,255,.8)}

/* 04 */
.page-schedule{display:flex;flex-direction:column}.schedule-strip{position:relative;flex:1;width:88%;margin:2.5vh auto 0;padding:2vh 8% 2vh;background:#fffaf0;box-shadow:0 7px 22px rgba(55,45,31,.11);clip-path:polygon(0 0,100% 0,99% 8%,100% 17%,99% 26%,100% 35%,99% 44%,100% 53%,99% 62%,100% 71%,99% 80%,100% 89%,99% 100%,88% 98%,76% 100%,64% 98%,52% 100%,40% 98%,28% 100%,16% 98%,0 100%,1% 88%,0 76%,1% 64%,0 52%,1% 40%,0 28%,1% 16%)}.schedule-strip:before{content:"";position:absolute;left:31%;top:6%;bottom:6%;border-left:1px solid var(--ink)}.schedule-strip ol{position:absolute;inset:4.5% 8%;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;justify-content:space-between}.schedule-strip li{position:relative;display:grid;grid-template-columns:64px 23px minmax(0,1fr);align-items:center;gap:9px}.schedule-strip time{text-align:right;color:var(--coral);font:700 10px/1 "Courier New",monospace}.schedule-strip li>span{position:relative;z-index:2;display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--ink);border-radius:50%;background:var(--paper2);font:700 7px/1 "Courier New",monospace}.schedule-strip strong,.schedule-strip small{display:block}.schedule-strip strong{font-size:18px;font-weight:500}.schedule-strip small{margin-top:4px;color:var(--muted);font:600 7px/1.2 "Courier New",monospace;letter-spacing:.08em}.fold{position:absolute;left:0;right:0;border-top:1px dashed rgba(41,42,39,.16);box-shadow:0 -3px 5px rgba(55,45,31,.03)}.fold-one{top:34%}.fold-two{top:67%}.schedule-note{margin:1.4vh 0 0;text-align:center;color:var(--muted);font-size:9px}

/* 05 */
.page-map{display:flex;flex-direction:column}.place-card{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:2vh;padding:10px 9px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.place-card>b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:white;background:var(--coral);font:700 11px/1 "Courier New",monospace}.place-card strong,.place-card span{display:block}.place-card strong{font-size:13px}.place-card span{margin-top:3px;color:var(--muted);font-size:8px}.place-card a{padding:7px 8px;color:var(--paper2);background:var(--ink);text-decoration:none;font-size:9px;box-shadow:3px 3px 0 var(--coral)}.crayon-map{margin:1.5vh 0 0}.crayon-map svg{display:block;width:100%;height:27vh;min-height:185px}.crayon{fill:none;stroke:#aaa296;stroke-width:10;stroke-linecap:round;opacity:.5;filter:url(#rough)}.route{stroke:var(--coral);stroke-width:5;stroke-dasharray:4 8;opacity:.9}.minor{fill:none;stroke:rgba(41,42,39,.28);stroke-width:2;stroke-linecap:round;filter:url(#rough)}.pin{fill:var(--paper2);stroke:var(--coral);stroke-width:4}.crayon-map text{fill:var(--ink);font:700 9px "Courier New",monospace}.crayon-map .map-copy{font-size:8px}.crayon-map figcaption{text-align:center;color:var(--muted);font-size:8px}.travel-note{margin-top:auto;padding:9px 10px;border-left:3px solid var(--coral);background:rgba(255,255,255,.25)}.travel-note b{font-size:10px}.travel-note p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.55}

/* 06 */
.page-rsvp{display:flex;flex-direction:column}.reply-card{flex:1;display:flex;flex-direction:column;margin-top:2.2vh}.identity-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.identity-fields label span{display:block;color:var(--muted);font-size:9px}.identity-fields input{width:100%;padding:7px 2px;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;outline:0}.identity-fields input:focus{border-color:var(--coral);box-shadow:0 1px 0 var(--coral)}fieldset{min-width:0}.activity-fieldset{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:2vh 0 0;padding:0;border:0}.activity-fieldset legend{margin-bottom:7px;color:var(--muted);font-size:9px}.activity-fieldset input{position:absolute;opacity:0}.activity-fieldset label span{display:block;padding:8px 3px;border:1px solid var(--ink);border-radius:999px;text-align:center;font-size:9px;cursor:pointer}.activity-fieldset input:checked+span{color:var(--paper2);background:var(--ink);box-shadow:3px 3px 0 var(--coral)}.guest-card{margin-top:2vh;padding:8px 8px 10px;border-radius:18px;background:rgba(255,255,255,.3);box-shadow:inset 0 0 0 1px rgba(62,54,43,.12),0 7px 18px rgba(61,50,34,.07)}.guest-card>p{margin:0 3px 3px;font-size:9px}.guest-card>p small{margin-left:7px;color:var(--coral);font-size:8px}.guest-row{display:grid;grid-template-columns:minmax(0,1fr) 29px;align-items:center;gap:6px;min-height:50px}.guest-row+.guest-row{border-top:1px solid rgba(41,42,39,.09)}.controls{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.guest-row.is-paired{grid-template-columns:minmax(0,1fr) 23px;gap:3px}.guest-row.is-paired .controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.person-control{display:grid;grid-template-columns:29px 46px minmax(0,1fr) 25px;align-items:center;gap:5px}.emoji{display:grid;place-items:center;width:29px;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;font-size:22px;filter:saturate(.83)}.sex{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:46px;height:26px;padding:3px;border:0;border-radius:999px;color:#777;background:linear-gradient(#d8d1c5,#e7dfd2);box-shadow:inset 0 2px 5px rgba(69,54,37,.2),0 1px 0 rgba(255,255,255,.7);cursor:pointer}.sex:before{content:"";position:absolute;z-index:0;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--blue);box-shadow:inset 0 0 0 3px rgba(255,255,255,.9),0 2px 5px rgba(55,44,31,.22);transition:.22s}.sex[data-sex=女]:before{transform:translateX(20px);background:var(--coral)}.sex i{position:relative;z-index:1;display:grid;place-items:center;font:700 11px/1 Arial,sans-serif;font-style:normal}.sex[data-sex=男] i:first-child,.sex[data-sex=女] i:last-child{color:white}.range-shell{position:relative;display:flex;align-items:center;height:27px;padding:0 6px;border-radius:999px;background:linear-gradient(#d5cabb,#eee6d9);box-shadow:inset 0 3px 6px rgba(63,50,34,.22),inset 0 -1px 1px rgba(255,255,255,.9)}.range-shell:after{content:"";position:absolute;left:11px;right:11px;top:50%;height:8px;transform:translateY(-50%);border-radius:999px;background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(65,55,43,.16) calc(20% - 1px) 20%),linear-gradient(#c9bdac,#e7ddce);box-shadow:inset 0 2px 3px rgba(64,50,34,.22),0 1px 0 rgba(255,255,255,.75)}input[type=range]{position:relative;z-index:2;width:100%;height:27px;margin:0;appearance:none;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:8px;background:transparent}input[type=range]::-webkit-slider-thumb{appearance:none;width:19px;height:19px;margin-top:-6px;border:2px solid var(--paper);border-radius:50%;background:var(--coral);box-shadow:0 2px 4px rgba(52,40,28,.27)}input[type=range]::-moz-range-track{height:8px;background:transparent}input[type=range]::-moz-range-thumb{width:17px;height:17px;border:2px solid var(--paper);border-radius:50%;background:var(--coral)}.person-control output{text-align:right;font:700 16px/1 "Courier New",monospace}.row-action{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;color:var(--paper);background:var(--ink);cursor:pointer;font-size:17px}.guest-row.is-paired .row-action{width:23px;height:23px;color:var(--coral);background:transparent;box-shadow:inset 0 0 0 1px var(--coral)}.guest-row.is-paired .person-control{grid-template-columns:18px 35px minmax(0,1fr) 15px;gap:2px}.guest-row.is-paired .emoji{width:18px;font-size:16px}.guest-row.is-paired .sex{width:35px;height:22px}.guest-row.is-paired .sex:before{width:16px;height:16px}.guest-row.is-paired .sex[data-sex=女]:before{transform:translateX(13px)}.guest-row.is-paired .sex i{font-size:9px}.guest-row.is-paired .range-shell{height:24px;padding:0 3px}.guest-row.is-paired .range-shell:after{left:6px;right:6px}.guest-row.is-paired input[type=range]{height:24px}.guest-row.is-paired input[type=range]::-webkit-slider-thumb{width:16px;height:16px;margin-top:-4px}.guest-row.is-paired .person-control output{font-size:13px}.stay-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-top:1.5vh;padding:9px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px}.stay-choice{display:flex}.stay-choice input{position:absolute;opacity:0}.stay-choice i{display:block;padding:6px 9px;border:1px solid var(--ink);font-style:normal}.stay-choice label+label i{border-left:0}.stay-choice input:checked+i{color:white;background:var(--coral)}.room-button{padding:6px 7px;border:0;border-bottom:1px solid var(--coral);color:var(--coral);background:transparent;font-size:9px}.submit-reply{width:100%;margin-top:auto;padding:11px 15px;text-align:left;font-size:10px}.submit-reply i{float:right;color:var(--coral);font-style:normal;font-size:15px}

/* 07 */
.page-closing{display:flex;flex-direction:column}.closing-copy{position:relative;z-index:4;text-align:center}.closing-copy>p:first-child{margin:0 0 9px;font-size:12px}.closing-copy h2{margin:0;font-size:clamp(28px,7.6vw,42px);font-weight:400;line-height:1.36;letter-spacing:-.045em}.closing-copy>p:last-child{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.65}.closing-photo{position:absolute;z-index:2;left:0;right:0;top:47%;height:29vh;transform:rotate(-1deg)}.closing-photo img{object-position:center 63%}.closing-sign{position:absolute;left:0;right:0;bottom:calc(var(--safe-bottom) + 10vh);text-align:center}.closing-sign time{display:block;margin-top:8px;color:var(--muted);font:700 8px/1 "Courier New",monospace;letter-spacing:.14em}.back-top{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + 2.5vh);padding:8px 13px;border:0;border-bottom:1px solid var(--ink);background:transparent;transform:translateX(-50%);font-size:9px}.page.is-active .back-top{animation-name:reveal-back}@keyframes reveal-back{to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* rooms */
.room-dialog{width:min(92vw,480px);max-height:88svh;padding:0;border:1px solid var(--ink);border-radius:0;background:var(--paper);box-shadow:8px 9px 0 rgba(223,96,71,.28)}.room-dialog::backdrop{background:rgba(41,40,36,.42);backdrop-filter:blur(3px)}.room-sheet{padding:19px 18px 22px;overflow-y:auto}.room-sheet header{display:flex;justify-content:space-between;align-items:flex-start}.room-sheet h2{margin:4px 0 0;font-size:28px;font-weight:400}.room-sheet header button{width:32px;height:32px;padding:0;border:1px solid var(--ink);background:transparent;font-size:21px}.room-note{margin:12px 0;color:var(--muted);font-size:10px;line-height:1.55}.building-sketch{width:100%;height:18vh;min-height:125px}.building-sketch path{fill:none;stroke:rgba(41,42,39,.5);stroke-width:1.5}.building-sketch .sketch-accent{stroke:var(--coral);stroke-width:3}.room-collage{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:26vh 22vh;gap:7px}.room-collage figure{position:relative;margin:0;padding:5px 5px 16px;background:var(--paper2);filter:drop-shadow(2px 3px 1px rgba(52,43,31,.13));transform:rotate(-1deg)}.room-collage figure:nth-child(2){transform:rotate(2deg)}.room-collage figure:nth-child(3){grid-column:2;transform:rotate(-2deg)}.room-collage figure:first-child{grid-row:1/3}.room-collage img{width:100%;height:100%;object-fit:cover}.room-collage figcaption{padding-top:3px;color:var(--muted);font:600 7px/1 "Courier New",monospace}

/* floating */
.music-control{position:fixed;z-index:30;top:max(12px,env(safe-area-inset-top));left:max(11px,calc(50vw - 258px));width:42px;height:42px;padding:0;border:1px solid rgba(41,42,39,.42);border-radius:50%;color:var(--ink);background:rgba(247,241,229,.9);backdrop-filter:blur(5px)}.music-control span{display:block;font-size:15px;line-height:15px}.music-control small{display:block;margin-top:2px;font:600 6px/1 "Courier New",monospace}.music-control.is-playing{color:white;background:var(--coral);animation:spin 5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-dots{position:fixed;z-index:30;right:max(6px,calc(50vw - 267px));top:50%;display:grid;gap:7px;transform:translateY(-50%)}.page-dots i{display:block;width:3px;height:3px;border-radius:50%;background:rgba(41,42,39,.25)}.page-dots i.is-active{height:15px;border-radius:2px;background:var(--coral)}.toast{position:fixed;z-index:70;left:50%;bottom:max(22px,env(safe-area-inset-bottom));max-width:84vw;padding:10px 14px;color:white;background:rgba(41,42,39,.94);opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:.25s;font:11px/1.45 sans-serif;text-align:center}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.invitation.is-preview{overflow:hidden;scroll-snap-type:none}.invitation.is-preview .page[hidden]{display:none}
@media(max-height:740px){.page{padding-top:calc(var(--safe-top) + 25px);padding-bottom:calc(var(--safe-bottom) + 17px)}.letter-sheet{min-height:66vh;padding-top:4vh}.letter-body p{margin-bottom:2.5vh;font-size:21px}.calendar-sheet{margin-top:1.8vh}.flip-countdown>div{min-height:62px}.schedule-strip{margin-top:1.5vh}.crayon-map svg{height:24vh;min-height:160px}.reply-card{margin-top:1.2vh}.guest-card{margin-top:1.2vh}.guest-row{min-height:45px}.stay-row{margin-top:1vh;padding:7px 0}.activity-fieldset{margin-top:1.3vh}.closing-photo{height:27vh}}
@media(max-width:380px){.page{padding-left:22px;padding-right:22px}.folio{left:22px}.person-control{grid-template-columns:27px 43px minmax(0,1fr) 23px;gap:4px}.guest-row.is-paired .person-control{grid-template-columns:17px 33px minmax(0,1fr) 14px}.stay-row{gap:5px}.room-button{padding-left:3px;padding-right:3px}.flip-countdown{gap:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* 2026-08-13 — white editorial / fashion-zine art direction */
body{font-family:"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif}.paper-page{background-color:#fff}.folio,.eyebrow,.paper-photo figcaption{font-family:"Courier New",monospace}.page-heading h2,.cover-title h1,.letter-body,.closing-copy h2{font-family:SimSun,"宋体","Songti SC",STSong,serif}.paper-photo{padding:0;background:transparent;filter:none;clip-path:polygon(0 3%,7% 1%,14% 4%,22% 1%,31% 3%,40% 0,50% 3%,59% 1%,69% 4%,79% 1%,88% 3%,100% 0,98% 13%,100% 28%,98% 44%,100% 61%,98% 76%,100% 100%,89% 98%,78% 100%,66% 97%,54% 100%,42% 97%,30% 100%,18% 97%,0 100%,2% 82%,0 64%,2% 45%,0 26%)}.paper-photo:after{inset:0;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.025) 2px 3px)}.paper-photo figcaption{position:absolute;left:7px;bottom:5px;padding:3px 5px;color:#111;background:#fff;font-size:6px}.open-letter,.submit-reply{border:0;border-radius:0;color:var(--ink);background:transparent;box-shadow:none}.open-letter:after,.submit-reply:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid currentColor}.open-letter:hover,.submit-reply:hover{color:var(--coral)}

/* Cover: oversized image event + technical counterweight */
.page-cover{padding-left:0;padding-right:0}.page-cover .folio{left:7%}.cover-title{align-self:flex-start;margin:5vh 0 0 8%;text-align:left}.cover-title h1{margin:9px 0 12px;font-size:clamp(51px,14vw,76px);letter-spacing:-.02em}.cover-title .names{font-size:13px;letter-spacing:.18em}.cover-title time{font-size:8px}.cover-snapshot{left:0;right:8%;top:37%;height:39vh;transform:none}.cover-snapshot img{object-position:center 65%;filter:saturate(.78) contrast(1.03) brightness(1.05)}.cover-outline{position:absolute;z-index:3;right:2%;top:27%;display:grid;justify-items:end;color:var(--coral)}.cover-outline span{font:200 clamp(72px,23vw,120px)/.78 "Helvetica Neue",sans-serif;letter-spacing:-.1em}.cover-outline i{width:74px;margin-top:13px;border-top:2px solid var(--coral);transform:rotate(-8deg)}.cover-outline b{margin:7px 10px 0 0;font:700 7px/1 "Courier New",monospace;letter-spacing:.18em}.address-mark{left:8%;bottom:15vh}.open-letter{right:8%;bottom:calc(var(--safe-bottom) + 5vh);padding:8px 0;gap:42px;font-weight:500}.swipe-hint{display:none}

/* Letter: image and words share one open page, no card */
.page-letter{display:block}.letter-photo{position:absolute;z-index:1;top:9%;right:-5%;width:48%;height:32vh;margin:0;overflow:hidden;clip-path:polygon(5% 0,100% 0,100% 95%,87% 92%,74% 96%,62% 91%,49% 97%,36% 92%,23% 96%,10% 91%,0 95%,3% 76%,0 56%,4% 37%,1% 18%)}.letter-photo img{width:100%;height:100%;object-fit:cover;object-position:center 32%;transform:scale(1.35);filter:grayscale(.72) contrast(1.1) brightness(1.12)}.letter-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#fff 0,transparent 28%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.035) 3px 4px)}.letter-sheet{position:absolute;z-index:3;left:8%;top:25%;width:82%;min-height:0;padding:0;background:transparent;box-shadow:none;transform:none}.letter-sheet:before{display:none}.salutation{margin-bottom:7vh;font-size:11px;letter-spacing:.14em}.letter-body{max-width:91%}.letter-body p{margin-bottom:4.5vh;font-size:clamp(23px,6.4vw,34px);line-height:1.48}.letter-sheet footer{margin-top:1vh}.letter-thread{right:-12px;bottom:8%;width:45vw;max-width:220px;height:15vh;border-width:1.5px}.letter-note{left:8%;bottom:3%;font-size:6px}

/* Calendar: transparent typography and a photo interruption */
.page-calendar{display:block}.calendar-sheet{position:relative;z-index:2;margin:3vh 0 0 2%;width:83%;padding:13px 0 12px;background:transparent;box-shadow:none;transform:none}.calendar-sheet header{padding:0 0 9px;border-bottom:1px solid var(--ink)}.calendar-sheet header span{font-size:31px;font-weight:500}.calendar-grid{row-gap:5px}.calendar-grid span,.calendar-grid i{font-size:9px}.calendar-photo{position:absolute;z-index:1;right:-4%;top:39%;width:49%;height:25vh;margin:0;overflow:hidden;clip-path:polygon(0 8%,12% 3%,25% 7%,38% 1%,51% 6%,65% 2%,78% 7%,91% 2%,100% 5%,98% 96%,83% 92%,68% 98%,54% 93%,39% 97%,24% 91%,9% 96%,2% 91%)}.calendar-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.68) brightness(1.13) contrast(.94)}.calendar-photo figcaption{position:absolute;right:5px;bottom:8px;padding:3px;color:#111;background:#fff;font:700 6px/1 "Courier New",monospace}.countdown-wrap{position:absolute;left:7%;right:7%;bottom:calc(var(--safe-bottom) + 2vh)}.flip-countdown{gap:15px}.flip-countdown>div{min-height:76px;padding:8px 0;color:var(--ink);background:transparent;border-radius:0;box-shadow:none;border-bottom:1px solid var(--ink)}.flip-countdown>div:first-child{box-shadow:none;border-left:3px solid var(--coral)}.flip-countdown>div:after{border-color:rgba(0,0,0,.1)}.flip-countdown strong{font-size:26px;font-weight:300}

/* Schedule: one vertical story with photographic fragments */
.page-schedule{display:block}.schedule-strip{position:absolute;z-index:3;left:4%;top:20%;bottom:7%;width:92%;margin:0;padding:0;background:transparent;box-shadow:none;clip-path:none}.schedule-strip:before{left:27%;top:3%;bottom:3%;border-color:rgba(24,24,24,.6)}.schedule-strip ol{inset:3% 0}.schedule-strip li{grid-template-columns:58px 23px minmax(0,1fr)}.schedule-strip li>span{background:#fff}.schedule-strip li div{width:max-content;max-width:190px;padding:3px 7px;background:rgba(255,255,255,.88);backdrop-filter:blur(2px)}.schedule-strip strong{font-size:17px}.fold{display:none}.schedule-images{position:absolute;z-index:1;right:-4%;top:25%;width:47%;height:59%;display:grid;grid-template-rows:1.25fr .8fr 1fr;gap:2px;transform:rotate(1.5deg)}.schedule-images img{width:100%;height:100%;object-fit:cover;filter:saturate(.62) contrast(1.04) brightness(1.06);clip-path:polygon(0 5%,13% 1%,28% 4%,44% 0,60% 4%,76% 1%,90% 5%,100% 2%,98% 96%,83% 93%,66% 99%,49% 94%,32% 98%,16% 93%,1% 97%)}.schedule-images img:nth-child(2){object-position:center 60%;transform:translateX(-16px)}.schedule-images img:nth-child(3){filter:saturate(.72) brightness(1.18);transform:translateX(7px)}.schedule-note{position:absolute;left:0;right:0;bottom:3%}

/* Map: route sketch passes through a real place fragment */
.page-map .place-card{position:relative;z-index:4;margin-top:1.5vh;padding:9px 0;border-top:1px solid var(--ink);border-bottom:0}.place-card>b{width:22px;height:22px;font-size:9px}.place-card a{padding:6px 0;color:var(--ink);background:transparent;border-bottom:1px solid var(--ink);box-shadow:none}.crayon-map{position:relative;z-index:3;margin:0}.crayon-map svg{height:25vh;min-height:165px}.crayon{stroke:#a9a9a9;stroke-width:8;opacity:.34}.map-photo{position:absolute;z-index:1;right:-5%;top:28%;width:46%;height:25vh;margin:0;overflow:hidden;clip-path:polygon(3% 4%,16% 0,31% 5%,47% 1%,63% 6%,79% 1%,96% 5%,100% 96%,83% 92%,67% 98%,50% 93%,34% 97%,17% 91%,1% 96%)}.map-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(1.1) saturate(.7)}.map-photo figcaption{position:absolute;right:3px;bottom:4px;padding:3px;background:#fff;font:700 6px/1 "Courier New",monospace}.travel-note{padding:8px 0;background:transparent;border-left:0;border-top:1px solid var(--ink)}

/* RSVP: keep tactile controls, remove form-panel framing */
.reply-card{margin-top:2.8vh}.activity-fieldset label span{border:0;border-bottom:1px solid var(--ink);border-radius:0}.activity-fieldset input:checked+span{color:var(--ink);background:transparent;box-shadow:inset 0 -4px 0 rgba(239,90,67,.65)}.guest-card{margin-top:2.4vh;padding:7px 0 8px;border-radius:0;background:transparent;box-shadow:none;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.guest-card>p{margin-bottom:5px}.guest-row+.guest-row{border-top:1px solid rgba(24,24,24,.1)}.range-shell{background:#eee;box-shadow:inset 0 2px 5px rgba(0,0,0,.15)}.range-shell:after{background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(0,0,0,.14) calc(20% - 1px) 20%),linear-gradient(#d2d2d2,#f4f4f4)}.sex{background:linear-gradient(#e4e4e4,#f2f2f2)}.submit-reply{position:relative;width:auto;align-self:flex-start;margin-top:auto;padding:9px 0;font-size:11px}.submit-reply i{margin-left:55px}

/* Closing: a photographic horizon instead of a framed print */
.closing-copy{text-align:left}.closing-copy h2{font-size:clamp(31px,8.5vw,47px)}.closing-photo{left:0;right:0;top:40%;height:35vh;transform:none}.closing-photo figcaption{left:auto;right:7px}.closing-sign{bottom:calc(var(--safe-bottom) + 8vh);text-align:left;padding-left:8%}.back-top{left:auto;right:8%;bottom:calc(var(--safe-bottom) + 2.5vh);transform:none}.page.is-active .back-top{animation-name:reveal}@keyframes reveal-back{to{opacity:1;transform:none}}

/* Room gallery: full editorial sheet, no dialog window */
.room-dialog{width:min(100vw,540px);height:100svh;max-height:100svh;margin:auto;padding:0;border:0;background:#fff;box-shadow:none}.room-dialog::backdrop{background:rgba(255,255,255,.76);backdrop-filter:blur(12px)}.room-sheet{height:100%;padding:calc(var(--safe-top) + 18px) 7% calc(var(--safe-bottom) + 20px);overflow:hidden}.room-sheet header button{position:relative;width:34px;height:34px;border:0;font-size:30px;font-weight:200}.room-sheet h2{font-family:SimSun,"宋体","Songti SC",STSong,serif;font-size:35px}.room-note{max-width:82%;margin:8px 0 0}.building-sketch{position:absolute;z-index:0;right:-9%;top:10%;width:64%;height:22vh;opacity:.48}.room-collage{position:absolute;z-index:2;left:0;right:0;top:31%;bottom:3%;display:block}.room-collage figure{position:absolute;margin:0;padding:0;background:transparent;filter:none;overflow:hidden;clip-path:polygon(0 4%,12% 1%,25% 5%,39% 0,53% 4%,67% 1%,81% 5%,100% 1%,98% 96%,83% 92%,67% 98%,50% 93%,34% 97%,17% 92%,1% 97%)}.room-collage figure:first-child{left:0;top:0;width:66%;height:87%;transform:none}.room-collage figure:nth-child(2){right:0;top:7%;width:40%;height:39%;transform:rotate(1.5deg)}.room-collage figure:nth-child(3){right:3%;bottom:3%;width:43%;height:45%;transform:rotate(-1deg)}.room-collage figcaption{position:absolute;left:5px;bottom:5px;padding:3px 5px;color:#111;background:#fff}.room-collage img{filter:saturate(.78) brightness(1.06)}

/* Quiet floating chrome */
.music-control{width:38px;height:38px;border:0;color:var(--ink);background:rgba(255,255,255,.82);box-shadow:0 4px 20px rgba(0,0,0,.06)}.page-dots{right:max(5px,calc(50vw - 267px))}.toast{border-radius:999px;background:rgba(20,20,20,.9)}

@media(max-height:740px){.calendar-photo{height:22vh}.schedule-images{height:55%}.letter-photo{height:29vh}.letter-sheet{top:23%;padding:0}.letter-body p{font-size:21px}.room-collage{top:29%}}

/* contain the deliberate edge crops inside the mobile canvas */
.letter-photo{right:0;width:45%}.letter-photo img{object-position:56% 45%;transform:scale(1.1);filter:grayscale(.68) contrast(1.08) brightness(1.12)}.calendar-photo{right:0;width:46%}.schedule-images{right:0;width:43%}.map-photo{right:0;width:42%}
.page-rsvp:after{content:"RSVP";position:absolute;z-index:-1;right:0;bottom:13%;color:transparent;-webkit-text-stroke:1px rgba(24,24,24,.065);font:200 23vw/1 "Helvetica Neue",sans-serif;letter-spacing:-.08em;transform:rotate(-90deg) translateX(45%);transform-origin:right bottom}
.page-letter,.page-schedule,.page-rsvp{contain:inline-size}
.page-letter .letter-thread{right:4%}.schedule-images{transform:none}.page-rsvp:after{right:10%}

/* Alignment + page-style quota pass */
.cover-outline{right:8%;top:27%;width:82px;justify-items:end}.cover-outline span{width:100%;text-align:right}.cover-outline i{width:100%;margin-right:0;transform:none}.cover-outline b{margin-right:0}.wedding-date:before{left:50%;top:50%;transform:translate(-50%,-50%)}.wedding-date em{left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg)}
.cover-snapshot{clip-path:none}.cover-snapshot:after{background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.025) 2px 3px)}.calendar-photo{clip-path:none}.calendar-photo:after{content:"";position:absolute;inset:0;border:1px solid rgba(24,24,24,.08);pointer-events:none}.schedule-images img{clip-path:none}.schedule-images img:nth-child(1){border-radius:999px 999px 4px 4px}.schedule-images img:nth-child(2){transform:translateX(-10px);clip-path:polygon(0 0,100% 0,94% 100%,7% 100%)}.schedule-images img:nth-child(3){transform:translateX(5px);border-radius:2px}.closing-photo{clip-path:polygon(0 3%,12% 1%,24% 4%,37% 1%,51% 4%,65% 1%,79% 4%,92% 1%,100% 3%,100% 97%,87% 94%,73% 98%,59% 94%,45% 98%,30% 94%,15% 98%,0 95%)}

/* Map is its own crayon-illustration family: no photography */
.page-map .place-card{margin-top:1vh}.page-map .crayon-map{margin:1.2vh 0 0}.page-map .crayon-map svg{display:block;width:100%;height:35vh;min-height:270px}.map-paper{fill:#fbfaf5;stroke:#d9d5c8;stroke-width:1}.hill-wash{fill:#c6d9a7;opacity:.7;filter:url(#rough)}.hill-line{fill:none;stroke:#789467;stroke-width:2.2;stroke-linecap:round;opacity:.7;filter:url(#rough)}.river,.river-edge{fill:none;stroke:#b9d8df;stroke-width:18;stroke-linecap:round;opacity:.75;filter:url(#rough)}.river-edge{stroke:#6e9eaa;stroke-width:1.5;opacity:.65}.village-blocks{fill:#dfe4e2;stroke:#aeb7b5;stroke-width:.8;opacity:.86;filter:url(#rough)}.orchard{fill:url(#paper-hatch);stroke:#8aa575;stroke-width:1;opacity:.8}.road-under{fill:none;stroke:#d0cbc3;stroke-width:13;stroke-linecap:round;filter:url(#rough)}.road-center{fill:none;stroke:#faf8f2;stroke-width:9;stroke-linecap:round;filter:url(#rough)}.page-map .route{fill:none;stroke:var(--coral);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:3 9;opacity:.92;filter:url(#rough)}.page-map .minor{fill:none;stroke:#a4aaa7;stroke-width:2;stroke-linecap:round;opacity:.65;filter:url(#rough)}.page-map .pin circle:first-child{fill:#fff;stroke:var(--coral);stroke-width:3;filter:url(#rough)}.page-map .pin circle:nth-child(2){fill:var(--coral);stroke:none}.page-map .pin text{fill:#fff;font:700 9px/1 "Courier New",monospace}.map-labels text,.map-landmark text{fill:#313431;font:600 8px/1 "PingFang SC",sans-serif}.map-landmark text{font:700 7px/1 "Courier New",monospace;letter-spacing:.13em;fill:#71816b}.map-labels .river-label{fill:#54818b;letter-spacing:.12em}.map-labels .road-label{font-size:6.5px;fill:#7d7972}.drive-label path{fill:none;stroke:#1d1d1d;stroke-width:1}.drive-label text{fill:#1d1d1d;font:700 7px/1 "Courier New",monospace}.page-map .crayon-map figcaption{margin-top:5px;font:500 7px/1.45 "PingFang SC",sans-serif}.page-map .travel-note{margin-top:auto}.map-photo{display:none}
.room-collage figure{clip-path:none}.room-collage figure:first-child{border-radius:0 42% 0 0}.room-collage figure:nth-child(2){border-radius:50% 0 0 50%;transform:none}.room-collage figure:nth-child(3){border-radius:0 0 0 42%;transform:none}
.schedule-images img:nth-child(2),.schedule-images img:nth-child(3){transform:none}.schedule-images{right:0;overflow:hidden}
.schedule-strip:before{left:22%}.schedule-images{grid-template-rows:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,.78fr)}.schedule-images img{display:block;min-height:0}

/* 2026-08-13 — quiet-copy pass: content first, no repeated editorial narration */
.page-heading h2{margin-top:0}
.reply-deadline{margin:5px 0 0;color:var(--muted);font-size:9px;letter-spacing:.08em}
.page-rsvp:after{content:none}
.page-calendar .calendar-sheet{margin-top:2vh}
.countdown-wrap{bottom:calc(var(--safe-bottom) + 3vh)}
.room-sheet h2{margin-top:0}
.invitation.is-preview:has(.page-map-rsvp:not([hidden])){overflow-y:auto}

/* 2026-08-13 — curved, hand-drawn invitation system */
@font-face{font-family:"ST Xinwei Web";src:url("assets/fonts/stxinwei.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Times New Roman Web";src:url("assets/fonts/times-new-roman.ttf") format("truetype");font-display:swap}
:root{--cn:SimSun,"宋体","Songti SC",STSong,serif;--en:"Times New Roman Web","Times New Roman",Times,serif}
body,button,input,a{font-family:var(--cn)}
[lang="en"],.eyebrow,time,.calendar-sheet header,.calendar-grid,.cover-outline,.music-control small,.flip-countdown strong{font-family:var(--en)}
.page-heading h2,.cover-title h1,.letter-body,.closing-copy h2,.room-sheet h2{font-family:var(--cn)}

/* Cover: one borderless image field; only the photo's upper edge blends into line drawing */
.page-cover{padding:0;display:block}
.cover-snapshot{inset:0;top:0;right:0;width:100%;height:100%;margin:0;overflow:hidden;clip-path:none;transform:none}
.cover-snapshot img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.89;filter:saturate(.88) brightness(1.025)}
.cover-snapshot:after{display:none}
.cover-title{position:absolute;z-index:5;left:8%;top:7.8%;margin:0;text-align:left}
.cover-title h1{margin:5px 0 8px;font-size:clamp(48px,13vw,70px);line-height:.98}
.cover-title .eyebrow{font-size:9px}.cover-title .names{font-size:14px}.cover-title time{font-size:10px}
.cover-outline{z-index:5;right:7%;top:24%;width:68px}.cover-outline span{font-family:var(--en);font-size:74px}.cover-outline i{height:8px;border:0;border-radius:50%;background:radial-gradient(ellipse at center,var(--coral) 0 42%,transparent 68%);transform:rotate(-4deg)}
.open-letter{right:7%;bottom:calc(var(--safe-bottom) + 2.4vh);gap:18px;padding:10px 17px;border:0;border-radius:999px;background:rgba(255,255,255,.86);box-shadow:0 8px 28px rgba(0,0,0,.09);backdrop-filter:blur(9px)}
.open-letter:after{display:none}

/* Calendar: bound hanging sheet with curved body, not a bare grid */
.page-calendar{display:block;padding-top:calc(var(--safe-top) + 43px)}
.calendar-sheet{position:relative;z-index:3;margin:3vh auto 0;width:88%;padding:36px 21px 29px;background:#fff;border:0;border-radius:28px 28px 42px 38px/25px 25px 34px 42px;box-shadow:0 18px 44px rgba(24,24,24,.11),0 4px 0 #ece9e2,0 8px 0 #f5f3ee;transform:rotate(-.5deg)}
.calendar-sheet:after{content:"";position:absolute;left:12%;right:7%;bottom:-7px;height:18px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.08),transparent 67%);filter:blur(5px);z-index:-1}
.calendar-rings{position:absolute;left:9%;right:9%;top:-20px;display:flex;justify-content:space-between;pointer-events:none}
.calendar-rings i{position:relative;width:6px;height:35px;border:0;border-radius:999px;background:linear-gradient(90deg,#5f5f5f,#f5f5f5 35%,#aaa 60%,#303030);box-shadow:1px 3px 4px rgba(0,0,0,.2)}
.calendar-rings i:after{content:"";position:absolute;left:50%;bottom:2px;width:11px;height:5px;border-radius:50%;background:#242424;transform:translateX(-50%);box-shadow:0 1px 0 #fff}
.calendar-sheet header{padding:0 3px 13px;border:0;align-items:baseline}
.calendar-sheet header span{font-family:var(--en);font-size:34px}.calendar-sheet header strong{font-family:var(--en);font-size:14px}
.weekdays{padding-top:8px}.calendar-grid{row-gap:8px}.calendar-grid span,.calendar-grid i{height:27px;font-family:var(--en);font-size:12px}
.calendar-photo{right:1%;top:46%;width:43%;height:22vh;border-radius:56% 44% 59% 41%/38% 58% 42% 62%;overflow:hidden;-webkit-mask-image:radial-gradient(ellipse 92% 90% at 50% 49%,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse 92% 90% at 50% 49%,#000 55%,transparent 100%)}
.calendar-photo:after{display:none}.calendar-photo img{filter:saturate(.74) brightness(1.09)}
.countdown-wrap{left:7%;right:7%;bottom:calc(var(--safe-bottom) + 3vh)}
.flip-countdown{grid-template-columns:1.28fr repeat(3,1fr);gap:8px}
.flip-countdown>div{position:relative;min-height:88px;padding:10px 3px 8px;color:#fff;background:linear-gradient(#161616,#050505);border:0;border-radius:12px 12px 15px 15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -8px 16px rgba(0,0,0,.45),0 8px 16px rgba(0,0,0,.16);overflow:hidden}
.flip-countdown>div:first-child{border:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -8px 16px rgba(0,0,0,.45),0 8px 16px rgba(0,0,0,.16)}
.flip-countdown>div:before{content:"";position:absolute;inset:0 0 50%;background:linear-gradient(rgba(255,255,255,.08),transparent);pointer-events:none}
.flip-countdown>div:after{top:50%;border-top:1px solid rgba(255,255,255,.24);box-shadow:0 1px 0 rgba(0,0,0,.8)}
.flip-countdown strong{position:relative;z-index:2;color:#fff;font-size:31px;font-weight:400}.flip-countdown span{position:relative;z-index:2;color:#fff;font-size:12px}

/* Schedule: wandering black-ink path and icon drawings */
.page-schedule{display:block}
.schedule-strip{position:absolute;z-index:3;left:2%;top:17%;bottom:6%;width:67%;margin:0;padding:0;background:transparent;box-shadow:none;clip-path:none}
.schedule-strip:before,.fold{display:none}
.schedule-curve{position:absolute;left:18%;top:0;width:58%;height:100%;overflow:visible}
.schedule-curve path{fill:none;stroke:#171717;stroke-width:1.4;stroke-linecap:round;filter:url(#ink-rough);opacity:.72}
.schedule-strip ol{position:absolute;inset:0;margin:0;padding:0;display:flex;justify-content:space-between}
.schedule-strip li{display:grid;grid-template-columns:54px 44px minmax(0,1fr);align-items:center;gap:7px;transform-origin:left center}
.schedule-strip li:nth-child(2){transform:translateX(22px)}.schedule-strip li:nth-child(3){transform:translateX(2px)}.schedule-strip li:nth-child(4){transform:translateX(28px)}.schedule-strip li:nth-child(5){transform:translateX(8px)}
.schedule-strip time{font-family:var(--en);font-size:12px;color:var(--coral)}
.schedule-strip li>span.event-icon{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:0;background:transparent}
.event-icon svg{width:42px;height:42px;overflow:visible}.event-icon path,.event-icon circle{fill:none;stroke:#171717;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:url(#ink-rough)}
.schedule-strip li div{width:max-content;max-width:135px;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.76);backdrop-filter:blur(3px)}
.schedule-strip strong{font-size:18px;font-weight:400}
.schedule-images{position:absolute;z-index:1;right:0;top:19%;width:46%;height:67%;display:block;overflow:hidden}
.schedule-images img{position:absolute;width:100%;height:34%;object-fit:cover;border:0;border-radius:0;filter:saturate(.68) brightness(1.07);clip-path:polygon(11% 1%,31% 4%,53% 0,75% 5%,97% 1%,94% 21%,100% 42%,94% 64%,99% 83%,89% 98%,67% 93%,45% 100%,22% 94%,2% 99%,7% 78%,0 57%,7% 35%,1% 15%);-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.68) 9%,#000 23%,#000 87%,rgba(0,0,0,.65) 94%,transparent 100%),linear-gradient(0deg,transparent 0,rgba(0,0,0,.72) 9%,#000 22%,#000 87%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.68) 9%,#000 23%,#000 87%,rgba(0,0,0,.65) 94%,transparent 100%),linear-gradient(0deg,transparent 0,rgba(0,0,0,.72) 9%,#000 22%,#000 87%,transparent 100%);mask-composite:intersect}
.schedule-images img:nth-child(1){right:0;top:0;transform:rotate(1deg)}
.schedule-images img:nth-child(2){right:5%;top:31%;transform:rotate(-2deg);clip-path:polygon(3% 8%,20% 2%,41% 7%,62% 1%,83% 6%,98% 0,94% 22%,100% 45%,93% 67%,99% 91%,78% 96%,57% 91%,35% 100%,12% 94%,1% 78%,7% 55%,0 31%)}
.schedule-images img:nth-child(3){right:0;bottom:0;transform:rotate(1.5deg);clip-path:polygon(7% 0,28% 5%,49% 1%,71% 6%,96% 2%,91% 23%,99% 44%,93% 66%,100% 88%,84% 98%,62% 93%,40% 100%,19% 94%,1% 99%,6% 77%,0 55%,8% 33%,2% 13%)}
.schedule-note{bottom:2%;font-size:11px}

/* RSVP + navigation are one continuous page */
.page-map-rsvp{min-height:100svh;padding-top:calc(var(--safe-top) + 46px);overflow:hidden;scroll-snap-align:start;background:#fff}
.page-map-rsvp .reply-card{display:block;margin:0;min-height:0}
.identity-fields{gap:10px}.identity-fields label{padding:8px 13px 10px;border-radius:22px 28px 24px 30px;background:#f2f0eb}.identity-fields label:nth-child(2){border-radius:30px 22px 29px 24px}
.identity-fields label span{font-size:11px}.identity-fields input{padding:5px 0 2px;border:0;background:transparent;box-shadow:none}
.identity-fields input:focus{border:0;box-shadow:none;outline:2px solid rgba(239,90,67,.35);outline-offset:4px;border-radius:999px}
.activity-fieldset{position:relative;display:grid;margin:14px 0 0;padding:16px 12px 12px;border:0;border-radius:28px 22px 31px 25px;background:#f3e8e3;box-shadow:inset 0 0 0 1px rgba(239,90,67,.1)}
.activity-fieldset legend{position:absolute;left:16px;top:-9px;margin:0;padding:4px 12px;color:#fff;background:var(--coral);border-radius:999px;font-size:10px}
.activity-fieldset label span{padding:9px 4px;border:0;border-radius:999px;background:rgba(255,255,255,.76)}
.activity-fieldset input:checked+span{color:#fff;background:#181818;box-shadow:none}
.guest-card{margin-top:14px;padding:12px 9px 13px;border:0;border-radius:30px 24px 34px 26px;background:#f4f4f2;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.guest-card>p{margin:0 5px 5px;font-size:11px}.guest-card>p small{font-size:9px}
.guest-row{min-height:48px}.guest-row+.guest-row{border:0}
.range-shell{border-radius:999px}.stay-row{margin-top:12px;padding:10px 12px;border:0;border-radius:28px 22px 27px 24px;background:#f1efe9}
.stay-choice i{padding:6px 10px;border:0;border-radius:999px;background:#fff}.stay-choice label+label i{border:0;margin-left:3px}.stay-choice input:checked+i{background:var(--coral)}
.room-button{padding:7px 11px;border:0;border-radius:999px;color:#fff;background:#181818}
.route-heading{margin:35px 0 12px}.route-heading h2{margin:0;font-size:35px;font-weight:400}
.nav-window{position:relative;display:grid;grid-template-columns:31px minmax(0,1fr) 72px;align-items:center;gap:9px;min-height:91px;padding:12px 13px;color:#181818;text-decoration:none;background:radial-gradient(circle at 78% 25%,rgba(75,155,211,.2) 0 3px,transparent 4px),radial-gradient(circle at 32% 72%,rgba(239,90,67,.13) 0 4px,transparent 5px),linear-gradient(132deg,#eef1ed,#fbfaf6);border:2px solid #181818;border-radius:31px 24px 34px 22px;box-shadow:0 9px 22px rgba(0,0,0,.09);overflow:hidden}
.nav-window.dinner-nav{border-radius:23px 34px 24px 31px}
.nav-window>span{position:relative;z-index:3}.nav-pin{display:grid;place-items:center;width:31px;height:31px;color:#fff;background:var(--coral);border-radius:48% 52% 46% 54%}.nav-copy strong,.nav-copy small{display:block}.nav-copy strong{font-size:15px}.nav-copy small{margin-top:3px;font-size:9px}.nav-open{text-align:right;font-size:9px}.nav-open b{font-weight:400;color:var(--coral)}
.nav-window>svg{position:absolute;z-index:1;inset:auto 0 0;width:100%;height:74px;opacity:.55}.nav-window>svg path{fill:none;stroke:#717a77;stroke-width:5;stroke-linecap:round}.nav-window>svg circle{fill:var(--coral)}
.page-map-rsvp .crayon-map{margin:15px 0}.page-map-rsvp .crayon-map svg{display:block;width:100%;height:42vh;min-height:320px;border-radius:28px 34px 25px 32px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.09))}.map-paper{fill:#fbfaf5;stroke:#c5c1b5;stroke-width:2}
.page-map-rsvp .hill-wash{fill:#c6d9a7;opacity:.7;filter:url(#rough)}.page-map-rsvp .hill-line{fill:none;stroke:#789467;stroke-width:2.2;stroke-linecap:round;opacity:.7;filter:url(#rough)}
.page-map-rsvp .river,.page-map-rsvp .river-edge{fill:none;stroke:#b9d8df;stroke-width:18;stroke-linecap:round;opacity:.75;filter:url(#rough)}.page-map-rsvp .river-edge{stroke:#6e9eaa;stroke-width:1.5;opacity:.65}
.page-map-rsvp .village-blocks{fill:#dfe4e2;stroke:#aeb7b5;stroke-width:.8;opacity:.86;filter:url(#rough)}.page-map-rsvp .orchard{fill:url(#paper-hatch);stroke:#8aa575;stroke-width:1;opacity:.8}
.page-map-rsvp .road-under{fill:none;stroke:#d0cbc3;stroke-width:13;stroke-linecap:round;filter:url(#rough)}.page-map-rsvp .road-center{fill:none;stroke:#faf8f2;stroke-width:9;stroke-linecap:round;filter:url(#rough)}
.page-map-rsvp .route{fill:none;stroke:var(--coral);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:3 9;opacity:.92;filter:url(#rough)}.page-map-rsvp .minor{fill:none;stroke:#a4aaa7;stroke-width:2;stroke-linecap:round;opacity:.65;filter:url(#rough)}
.page-map-rsvp .pin circle:first-child{fill:#fff;stroke:var(--coral);stroke-width:3;filter:url(#rough)}.page-map-rsvp .pin circle:nth-child(2){fill:var(--coral);stroke:none}.page-map-rsvp .pin text{fill:#fff;font:700 9px/1 var(--en)}
.page-map-rsvp .map-labels text,.page-map-rsvp .map-landmark text{fill:#313431;font:600 8px/1 var(--cn)}.page-map-rsvp .map-landmark text{font:700 7px/1 var(--en);letter-spacing:.13em;fill:#71816b}.page-map-rsvp .map-labels .river-label{fill:#54818b;letter-spacing:.12em}.page-map-rsvp .map-labels .road-label{font-size:6.5px;fill:#7d7972}
.page-map-rsvp .drive-label path{fill:none;stroke:#1d1d1d;stroke-width:1}.page-map-rsvp .drive-label text{fill:#1d1d1d;font:700 7px/1 var(--cn)}
.nav-pin{font-family:var(--en)}.letter-sheet footer i{font-family:var(--en)}
.travel-note{margin-top:14px;padding:11px 14px;border:0;border-radius:24px 30px 22px 28px;background:#f1efe9}.travel-note p{font-size:10px}
.submit-reply{position:relative;display:flex;justify-content:center;align-items:center;width:max-content;margin:24px auto 0;padding:11px 28px;border:0;border-radius:999px;color:#fff;background:#181818;box-shadow:0 8px 20px rgba(0,0,0,.13);font-size:13px}
.submit-reply:after{display:none}.submit-reply i{float:none;margin-left:14px;color:var(--coral)}

/* Remove basic line-and-box UI elsewhere */
.back-top{padding:8px 15px;border:0;border-radius:999px;background:#f1efe9}
.room-sheet header button{border:0;border-radius:50%;background:#f2f0eb}
.room-collage figure{border-radius:44% 56% 36% 64%/35% 43% 57% 65%;overflow:hidden}.room-collage figure:nth-child(2){border-radius:56% 44% 63% 37%/48% 36% 64% 52%}.room-collage figure:nth-child(3){border-radius:38% 62% 49% 51%/62% 39% 61% 38%}

@media(max-height:740px){.calendar-sheet{margin-top:1vh;padding-top:30px}.flip-countdown>div{min-height:74px}.schedule-images{height:62%}}

/* Generated zine media pass: real image transformations, never raw rectangular photos */
.calendar-photo{
  right:0;top:35%;width:55%;height:31vh;
  overflow:visible;border-radius:0;clip-path:none;
  -webkit-mask-image:none;mask-image:none;pointer-events:none
}
.calendar-photo img{
  width:100%;height:100%;object-fit:cover;object-position:70% 69%;
  border:0;border-radius:0;filter:none
}
.schedule-images{
  right:0;top:17%;width:53%;height:70%;overflow:visible;pointer-events:none
}
.schedule-images img{
  position:absolute;width:100%;height:38%;object-fit:cover;object-position:67% 63%;
  border:0;border-radius:0;clip-path:none;-webkit-mask-image:none;mask-image:none;
  filter:none;transform:none
}
.schedule-images img:nth-child(1){right:-2%;top:0;object-position:66% 55%;transform:none}
.schedule-images img:nth-child(2){right:7%;top:30%;object-position:66% 54%;transform:none}
.schedule-images img:nth-child(3){right:-1%;bottom:0;object-position:70% 61%;transform:none}
@media(max-height:740px){
  .calendar-photo{top:34%;height:29vh}
  .schedule-images{top:18%;height:65%}
}

/* One photographic gesture per scene: supporting zine assets move along the story */
.schedule-images{right:0;top:18%;width:59%;height:69%;overflow:visible}
.schedule-images img,.schedule-images img:nth-child(1){
  right:0;top:0;width:100%;height:100%;object-fit:cover;object-position:68% 53%;transform:none
}
.route-heading{position:relative;min-height:116px;margin:35px 0 4px;overflow:visible}
.route-heading h2{position:relative;z-index:2;padding-top:26px}
.route-heading img{position:absolute;z-index:1;right:-3%;top:-34px;width:58%;height:154px;object-fit:cover;object-position:70% 54%;pointer-events:none}
.route-afterglow{height:178px;margin:1px -1% -12px 0;overflow:visible;pointer-events:none}
.route-afterglow img{display:block;width:61%;height:100%;margin-left:auto;object-fit:cover;object-position:72% 61%}

/* Mobile flow + requested calendar scale */
.invitation{scroll-snap-type:y proximity;overscroll-behavior-y:contain}
.page{scroll-snap-stop:normal}
.page-map-rsvp{scroll-snap-align:none!important;overflow:visible}
.calendar-photo{right:0;top:39%;width:70%;height:40vh;overflow:hidden}
.calendar-photo img{object-position:72% 68%;transform:scale(1.18);transform-origin:75% 70%}

/* Refined zine cover and borderless closing visual event */
.cover-snapshot img{opacity:1;filter:brightness(1.055) saturate(.78) contrast(.99)}
.closing-photo{left:0;right:0;top:33%;height:48vh;overflow:visible;clip-path:none;background:transparent}
.closing-photo img{width:100%;height:100%;object-fit:cover;object-position:center 58%;filter:none}
.closing-photo:after{display:none}
.closing-copy,.closing-sign{z-index:5}
@media(max-height:740px){.calendar-photo{top:38%;height:37vh}}

/* 2026-08-14 — pure-white fixed-page H5 */
html,body,.invitation,.page,.paper-page,.page-map-rsvp{background-color:#fff!important}
.paper-page{background-image:radial-gradient(circle at 11% 13%,rgba(0,0,0,.014) 0 1px,transparent 1px)!important;background-size:5px 5px!important}
.paper-page:before{opacity:.12;background:linear-gradient(112deg,transparent 0 49%,rgba(0,0,0,.012) 50%,transparent 51%)}
.calendar-sheet,.schedule-strip{background-color:#fff}
.music-control{background:rgba(255,255,255,.9)}
.identity-fields label,.guest-card,.stay-row,.travel-note,.back-top,.room-sheet header button{background-color:#f5f5f3}
.activity-fieldset{background:#fff;box-shadow:inset 0 0 0 1px rgba(24,24,24,.12)}
.range-shell{background:linear-gradient(#e5e5e5,#f7f7f7)}
.range-shell:after{background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(0,0,0,.13) calc(20% - 1px) 20%),linear-gradient(#d9d9d9,#f4f4f4)}
.sex{background:linear-gradient(#e8e8e8,#f6f6f6)}
.nav-window{background:radial-gradient(circle at 78% 25%,rgba(75,155,211,.17) 0 3px,transparent 4px),radial-gradient(circle at 32% 72%,rgba(239,90,67,.12) 0 4px,transparent 5px),#fff}
.map-paper{fill:#fff}

/* The outer viewport never free-scrolls: one page is mounted at a time. */
.invitation{position:relative;overflow:hidden;scroll-snap-type:none!important;overscroll-behavior:none}
.page{display:none!important;position:absolute;inset:0;height:100svh;min-height:100svh;overflow:hidden;scroll-snap-align:none!important}
.page.is-mounted{display:block!important}
.page-map-rsvp.is-mounted{overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.page-closing.is-mounted,.page-cover.is-mounted{display:block!important}
.invitation.is-preview .page:not([hidden]){display:block!important;position:relative}

/* Standard-height location page: two illustrated navigation cards, no concept map. */
.page-map-rsvp{padding:calc(var(--safe-top) + 26px) clamp(22px,7%,35px) calc(var(--safe-bottom) + 14px)!important}
.page-map-rsvp.is-mounted{overflow:hidden!important;overscroll-behavior:none}
.page-map-rsvp .identity-fields label{padding:6px 12px 8px}
.page-map-rsvp .activity-fieldset{margin-top:8px;padding:13px 10px 7px}
.page-map-rsvp .activity-fieldset label span{padding:6px 3px}
.page-map-rsvp .guest-card{margin-top:8px;padding:7px 8px 8px}
.page-map-rsvp .guest-row{min-height:42px}
.page-map-rsvp .stay-row{margin-top:8px;padding:7px 10px}
.route-heading{min-height:0;margin:11px 0 5px;overflow:visible}
.route-heading h2{padding:0;font-size:27px}
.route-heading img,.crayon-map,.route-afterglow{display:none!important}
.nav-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.nav-card{display:flex;min-height:150px;flex-direction:column;color:var(--ink);text-decoration:none;background:#fff;border:1px solid rgba(24,24,24,.13);border-radius:29px 23px 31px 25px;box-shadow:0 8px 20px rgba(0,0,0,.07);overflow:hidden}
.nav-card:nth-child(2){border-radius:23px 31px 25px 29px}
.nav-card img{display:block;width:100%;height:82px;object-fit:cover;object-position:center 55%;filter:grayscale(1) contrast(.94) brightness(1.06)}
.nav-card>span{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:6px;padding:3px 10px 8px}
.nav-card b{grid-row:1/3;align-self:start;margin-top:2px;padding:3px 5px;color:#fff;background:var(--coral);border-radius:999px;font-size:8px;font-weight:400}
.nav-card strong{font-size:13px;font-weight:400;line-height:1.1}
.nav-card small{grid-column:2;color:var(--muted);font-size:6.5px;line-height:1.2}
.nav-card em{grid-column:1/3;margin-top:4px;color:var(--coral);font-size:8px;font-style:normal;text-align:right}
.page-map-rsvp .travel-note{margin-top:7px;padding:6px 11px;border-radius:19px}
.page-map-rsvp .travel-note b{font-size:9px}.page-map-rsvp .travel-note p{margin-top:2px;font-size:8px;line-height:1.3}
.page-map-rsvp .submit-reply{margin-top:7px;padding:8px 23px;font-size:11px}

/* 2026-08-14 — visual proportion audit + hard one-gesture/one-page lock */
html{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;scroll-behavior:auto}
body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
.invitation{height:100vh;height:100dvh;max-height:100dvh;overflow:hidden!important;overscroll-behavior:none;touch-action:pan-x}
.page{height:100vh;height:100dvh;min-height:100dvh;max-height:100dvh;overscroll-behavior:none}
.page.is-mounted{overflow:hidden!important}
button,label,a{touch-action:manipulation}
input[type="range"]{touch-action:pan-x}

/* 01 — preserve the full-bleed cover, but restore hierarchy around the photograph. */
.cover-title h1{font-size:clamp(44px,11.8vw,62px)}
.cover-title .names{font-size:13px}
.cover-outline{top:25.5%;transform:scale(.9);transform-origin:top right}
.open-letter{padding:9px 16px;font-size:10.5px}

/* 02 — image is a supporting fragment; the invitation text remains primary. */
.letter-photo{top:10%;right:0;width:40%;height:26vh}
.letter-photo img{transform:scale(1.04);object-position:55% 43%}
.letter-sheet{top:27%;width:84%}
.salutation{margin-bottom:6vh}
.letter-body{max-width:88%}
.letter-body p{margin-bottom:4vh;font-size:clamp(21px,5.75vw,29px);line-height:1.5}
.letter-sheet footer{font-size:11px}

/* 03 — calendar first, photograph second, countdown as a compact score strip. */
.calendar-sheet{width:74%;padding:37px 24px 25px}
.calendar-sheet header span{font-size:29px}
.calendar-photo{top:40%;right:2%;width:61%;height:32vh}
.calendar-photo img{transform:scale(1.08);transform-origin:76% 69%}
.countdown-wrap{left:7%;right:7%;bottom:calc(var(--safe-bottom) + 2.5vh)}
.flip-countdown{gap:7px}
.flip-countdown>div{min-height:70px;border-radius:10px}
.flip-countdown strong{font-size:25px}
.flip-countdown span{font-size:9px}

/* 04 — route stays vertical; the photograph becomes a faint side interruption. */
.page-schedule .page-heading h2{font-size:31px}
.schedule-images{right:0;width:36%;opacity:.72}
.schedule-strip{width:82%}
.schedule-strip time{font-size:10px}
.schedule-strip strong{font-size:16px}
.schedule-note{font-size:9px}

/* 05 — navigation sketches return to invitation-vignette scale. */
.route-heading{margin-top:10px;margin-bottom:5px}
.route-heading h2{font-size:25px}
.nav-card{min-height:119px;box-shadow:0 6px 16px rgba(0,0,0,.055)}
.nav-card img{height:55px;object-fit:contain;object-position:center;background:#fff;filter:grayscale(1) contrast(.91) brightness(1.085)}
.nav-card>span{padding:4px 10px 8px}
.nav-card strong{font-size:12.5px}
.nav-card small{font-size:7.4px;line-height:1.25}
.nav-card em{font-size:8.5px}
.page-map-rsvp .travel-note p{font-size:8.5px}
.page-map-rsvp .submit-reply{margin-top:8px}

/* 06 — keep the horizon atmospheric, with more breathing room around it. */
.closing-copy h2{font-size:clamp(29px,7.7vw,38px)}
.closing-photo{top:36%;height:40vh}
.closing-sign{bottom:10%}
.back-top{font-size:8.5px}

@media(max-height:740px){
  .letter-photo{height:23vh}.letter-body p{font-size:20px;margin-bottom:3vh}
  .calendar-photo{top:39%;height:29vh}.flip-countdown>div{min-height:64px}
  .schedule-images{width:33%}.nav-card img{height:48px}.nav-card{min-height:111px}
}

/* 2026-08-14 — requested overlap, transparent route layer, unified navigation cards */
.page-calendar .calendar-sheet{
  z-index:3;
  background:rgba(255,255,255,.70);
  box-shadow:0 16px 40px rgba(24,24,24,.09);
}
.page-calendar .calendar-sheet:after{opacity:.42}
.page-calendar .calendar-photo{
  z-index:1;top:28%;right:0;width:53%;height:57vh;overflow:visible;
}
.page-calendar .calendar-photo img{
  width:100%;height:100%;object-fit:cover;object-position:69% 58%;transform:scale(1.12);transform-origin:right center;
}

.page-schedule .schedule-strip{background:transparent!important;box-shadow:none!important}
.page-schedule .schedule-strip li div{padding:3px 4px;background:transparent;backdrop-filter:none}

.page-map-rsvp{
  padding-top:calc(var(--safe-top) + 52px)!important;
}
.page-map-rsvp .activity-fieldset{margin-top:9px}
.page-map-rsvp .guest-card{margin-top:9px}
.page-map-rsvp .stay-row{margin-top:9px}
.page-map-rsvp .route-heading{margin-top:13px;margin-bottom:6px}
.page-map-rsvp .nav-gallery{gap:9px}
.page-map-rsvp .nav-card{
  position:relative;display:flex;min-height:128px;isolation:isolate;
  border-color:rgba(24,24,24,.11);box-shadow:0 7px 18px rgba(0,0,0,.055);
}
.page-map-rsvp .nav-card img{
  position:absolute;z-index:0;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 50%;background:#fff;opacity:.9;
  filter:grayscale(1) contrast(.9) brightness(1.075);
}
.page-map-rsvp .nav-card>span{
  position:relative;z-index:1;width:100%;margin-top:auto;padding:27px 10px 9px;
  background:linear-gradient(180deg,transparent 0,rgba(255,255,255,.74) 31%,rgba(255,255,255,.96) 58%,#fff 100%);
}
.page-map-rsvp .nav-card b{align-self:center;margin-top:0}
.page-map-rsvp .nav-card strong{font-size:13px}
.page-map-rsvp .nav-card small{font-size:7.5px}
.page-map-rsvp .nav-card em{margin-top:3px;font-size:8.5px}
.page-map-rsvp .submit-reply{margin-top:12px}

@media(max-height:740px){
  .page-calendar .calendar-photo{top:29%;height:52vh}
  .page-map-rsvp{padding-top:calc(var(--safe-top) + 40px)!important}
  .page-map-rsvp .nav-card{min-height:116px}
}

/* Effective artwork placement: the transparent source keeps its subject low-right. */
.page-calendar{overflow:hidden!important}
.page-calendar .calendar-photo{top:18%;right:0;width:55%;height:66vh;overflow:hidden}
.page-calendar .calendar-photo img{
  object-fit:contain;object-position:center;
  transform:translateY(-8%) scale(1.43);transform-origin:center;
}

.page-map-rsvp{padding-top:calc(var(--safe-top) + 104px)!important}
.page-map-rsvp .route-heading{margin-top:16px}
.page-map-rsvp .nav-card{min-height:136px}
.page-map-rsvp .submit-reply{margin-top:15px}

@media(max-height:740px){
  .page-calendar .calendar-photo{top:18%;height:62vh}
  .page-map-rsvp{padding-top:calc(var(--safe-top) + 49px)!important}
  .page-map-rsvp .route-heading{margin-top:11px}
  .page-map-rsvp .nav-card{min-height:116px}
  .page-map-rsvp .submit-reply{margin-top:10px}
}

/* 2026-08-14 — stronger photo scale, fully transparent schedule plane, raised nav art */
.page-calendar .calendar-photo img{
  transform:translateY(-8%) scale(2.72);transform-origin:68% 61%;
}

.page-schedule .schedule-strip,
.page-schedule .schedule-strip ol,
.page-schedule .schedule-strip li,
.page-schedule .schedule-strip li>span,
.page-schedule .schedule-strip li div,
.page-schedule .schedule-strip:before,
.page-schedule .schedule-strip:after{
  background-color:transparent!important;background-image:none!important;
  box-shadow:none!important;border-color:transparent!important;backdrop-filter:none!important;
}
.page-schedule .schedule-curve path{stroke:#171717!important}
.page-schedule .schedule-images{right:0;top:14%;width:52%;height:75%;opacity:.82}

.page-map-rsvp .nav-card img{
  inset:-15% 0 auto;height:115%;object-position:center 36%;
}
.page-map-rsvp .nav-card>span{
  padding-top:29px;
  background:linear-gradient(180deg,transparent 0,rgba(255,255,255,.88) 29%,rgba(255,255,255,.98) 55%,#fff 100%);
}

@media(max-height:740px){
  .page-calendar .calendar-photo img{transform:translateY(-7%) scale(2.45)}
  .page-schedule .schedule-images{width:48%;height:72%}
}

/* 2026-08-14 — prominent identity fields + clearer separation of nav art and copy */
.page-map-rsvp .identity-fields{gap:12px}
.page-map-rsvp .identity-fields label{
  position:relative;padding:9px 13px 10px;
  background:#fff!important;border:1px solid rgba(24,24,24,.20);
  box-shadow:0 9px 22px rgba(24,24,24,.085),inset 0 0 0 1px rgba(255,255,255,.92);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.page-map-rsvp .identity-fields label:focus-within{
  border-color:rgba(239,90,67,.72);
  box-shadow:0 11px 26px rgba(24,24,24,.10),0 0 0 3px rgba(239,90,67,.11);
  transform:translateY(-1px);
}
.page-map-rsvp .identity-fields label span{color:#343434;font-size:10.5px}
.page-map-rsvp .identity-fields input:focus{outline:0;box-shadow:none}

.page-map-rsvp .nav-card img{
  inset:-28% 0 auto;height:128%;object-position:center 28%;
}
.page-map-rsvp .nav-card>span{
  background:linear-gradient(180deg,transparent 0,rgba(255,255,255,.93) 25%,#fff 53%,#fff 100%);
}

@media(max-height:740px){
  .page-map-rsvp .identity-fields label{padding:7px 11px 8px}
  .page-map-rsvp .nav-card img{inset:-24% 0 auto;height:124%}
}
:where(.share-card-image) {
  position: fixed;
  left: -10000px;
  top: -10000px;
  width: 320px;
  height: 320px;
  object-fit: cover;
  opacity: .001;
  pointer-events: none;
}
