html,body{overflow-x:clip}.chapter-boarding:before{display:none}.map-reading-note{font:400 11px/1.9 var(--thai);color:#94775e;text-align:center;margin:18px 0 0}.accurate-map{width:100%;border-color:#e2d0b9}.map-footer{flex-wrap:wrap;gap:8px}.map-footer>span{max-width:70%;line-height:1.7}
.wedding-color-strip{position:relative}.color-swatches>.dress-swatch{display:flex;flex-direction:column;gap:9px;text-align:center;background:none;border:0;padding:0;min-width:0}.dress-swatch>i{width:100%;height:40px;flex:none;transition:transform .25s,box-shadow .25s}.dress-swatch>span{font:400 12px/1.5 var(--thai)}.dress-swatch small{display:block;font-size:7px;letter-spacing:1.4px;color:#9c7e65;margin-top:3px}.dress-swatch:hover>i,.dress-swatch:focus-visible>i{transform:translateY(-4px);box-shadow:0 6px 13px #76513726}.palette-hint{font:400 10px/1.7 var(--thai);text-align:center;color:#a08066;margin:15px 0 0}.attire-hover-card{position:absolute;bottom:calc(100% - 5px);left:50%;transform:translateX(-50%);margin:0;width:min(390px,90vw);z-index:50;border:1px solid #d7bfa3;padding:8px;background:#fffcf7;box-shadow:0 15px 40px #563a2c35;pointer-events:none;animation:attire-appear .22s ease-out}.attire-hover-card img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:contain;background:#f1ece5}.attire-hover-card figcaption{text-align:center;padding:7px 5px 2px;font-size:11px;color:#806044}.chapter-boarding{overflow:visible;z-index:3}.attire-dialog{padding:30px 18px 18px;max-width:780px;border-color:#d7bfa3;background:#fffcf7;text-align:center}.attire-dialog>h2{font-size:24px;margin:8px 0 20px}.attire-dialog>img{width:100%;height:auto;max-height:65svh;object-fit:contain;background:#f2ece4}.attire-dialog>p:last-child{font-size:11px;color:#9e7e64;margin:13px 0 0}.dialog-close{border:0;background:none;position:absolute;right:11px;top:7px;min-width:32px;min-height:32px}.attire-dialog::backdrop,.blessing-thanks::backdrop{background:#4b352bc9;backdrop-filter:blur(5px)}
.letter-box{position:relative;background:repeating-linear-gradient(0deg,#fffaf2 0 8px,#fdf7ed 8px 9px);border-color:#d6bfa3;padding:32px 30px 95px;box-shadow:7px 9px 0 #e9dbc9,10px 12px 25px #73563e0e;overflow:hidden;transition:transform .35s}.letter-box:after{content:'';position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(155deg,transparent 49.5%,#dfc9ad 50%,#f0e2cf 50.5%) left/50% 100% no-repeat,linear-gradient(205deg,transparent 49.5%,#dfc9ad 50%,#f0e2cf 50.5%) right/50% 100% no-repeat;pointer-events:none}.letter-address{display:flex;flex-direction:column;align-items:flex-start;position:relative;border-bottom:1px solid #d9c5ac;padding:0 80px 18px 0;margin-bottom:20px}.letter-address>span{font:500 11px/1.6 var(--thai);letter-spacing:1.4px;color:#7c5c42}.letter-address>small{font:400 7px/1.8 var(--thai);letter-spacing:1px;color:#aa8c70;margin-top:4px}.letter-address>img{position:absolute;right:0;top:-10px;width:64px;height:64px;border:1px dashed #b89977;padding:6px;filter:brightness(.65);transform:rotate(7deg)}.letter-box>.blessing-caption{font-family:var(--thai);font-size:11px;letter-spacing:normal;line-height:1.8;margin-bottom:20px;color:#9e7e64}.letter-box textarea{background:repeating-linear-gradient(to bottom,#fffdf8 0 29px,#e4d4bf 29px 30px)!important;line-height:30px!important;padding-top:9px!important;min-height:180px}.letter-sent-seal{position:absolute;z-index:4;right:25px;bottom:17px;width:118px;height:118px;border:2px solid #aa735b;border-radius:50%;outline:1px dashed #aa735b;outline-offset:-7px;display:flex;align-items:center;justify-content:center;flex-direction:column;opacity:0;pointer-events:none;color:#aa735b;background:#f3dfccbb;transform:rotate(-14deg)}.letter-sent-seal>img{width:76px;height:66px;object-fit:contain;filter:brightness(.58) sepia(.5)}.letter-sent-seal>span{font-size:6px;letter-spacing:1.5px}.letter-box.is-mailing{transform:translateY(-3px)}.letter-box.is-sent .letter-sent-seal{animation:letter-seal-in .52s cubic-bezier(.15,.7,.2,1.1) both}.blessing-thanks{width:min(440px,90vw);padding:38px 25px 28px;text-align:center;overflow:visible;border:1px solid #d0b18d;background:#fff9ef}.blessing-thanks h2{font:400 28px/1.65 var(--thai);margin:10px 0}.blessing-thanks>p:not(.eyebrow){font:400 17px/1.8 var(--thai);color:#967051;margin:8px 0 20px}.blessing-thanks .button{display:inline-flex;border:0;align-items:center;justify-content:center;margin-top:0;min-height:44px;font-size:12px;gap:0}.thanks-seal{width:108px;height:108px;border:1px solid #b28b66;outline:1px dashed #b28b66;outline-offset:-6px;border-radius:50%;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-10deg)}.thanks-seal img{width:75px;height:62px;object-fit:contain;filter:brightness(.6)}.thanks-seal span{font-size:6px;letter-spacing:2px;color:#a37d59}.blessing-thanks[open]{animation:thanks-appear .35s ease-out}.blessing-thanks .eyebrow{font-size:7px;color:#a38161}
.music-bar,.music-bar.is-idle,.music-bar.is-dimmed,.music-bar.is-dimmed.is-idle{opacity:.3!important;box-shadow:none}.music-bar:hover,.music-bar.is-active,.music-bar:has(:focus-visible){opacity:1!important;box-shadow:0 7px 25px #65432b22;background:#fffaf1fa}.music-bar #music-dim{display:none!important}
@media(hover:hover){.music-bar:not(:hover):not(.is-active):not(:has(:focus-visible))>label,.music-bar:not(:hover):not(.is-active):not(:has(:focus-visible))>input,.music-bar:not(:hover):not(.is-active):not(:has(:focus-visible))>#music-mute{display:none}.music-bar.is-collapsed:hover{width:auto;max-width:360px;bottom:15px}.music-bar.is-collapsed:hover>input,.music-bar.is-collapsed:hover>#music-mute{display:inline-block}.music-bar.is-collapsed:hover>input{width:75px;min-width:65px}.music-bar.is-collapsed:hover>.music-mark{display:block}}
@media(max-width:760px){.map-reading-note{font-size:10px;line-height:1.8}.map-footer>span{max-width:66%;font-size:8px}.letter-box{padding:26px 20px 90px}.letter-box textarea{font-size:14px!important}.letter-address>span{font-size:10px}.letter-address>small{font-size:6px}.letter-sent-seal{width:100px;height:100px;right:18px;bottom:12px}.letter-sent-seal>img{width:65px;height:58px}.blessing-thanks h2{font-size:25px}.attire-dialog>h2{font-size:22px}.music-bar.is-active.is-collapsed{max-width:130px}.music-bar:not(.is-collapsed){width:min(320px,calc(100vw - 24px))}}
.blessing-thanks>#thanks-done{position:static;background:var(--brown);color:#fff5e7;border:0;padding:13px 20px}
@keyframes attire-appear{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes letter-seal-in{0%{opacity:0;transform:rotate(-20deg) scale(2.2)}45%{opacity:.95;transform:rotate(-14deg) scale(.92)}100%{opacity:.9;transform:rotate(-14deg) scale(1)}}@keyframes thanks-appear{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.letter-box,.letter-box *,.attire-hover-card,.blessing-thanks{animation:none!important;transition:none!important}.letter-box.is-sent .letter-sent-seal{opacity:.9}}

@media(hover:none){.attire-hover-card{display:none!important}}

/* Success UI is independent of sound and animation completion. */
.blessing-thanks[open] .thanks-seal{animation:popup-stamp .55s cubic-bezier(.2,.7,.2,1.15) both;transform-origin:center}
.thanks-seal{width:138px;height:138px;background:#f4e1ce;box-shadow:inset 0 0 0 3px #fff9ef}
.thanks-seal img{width:92px;height:96px}.thanks-seal span{font-size:7px}
@keyframes popup-stamp{0%{opacity:0;transform:translateY(-55px) rotate(-20deg) scale(1.7)}58%{opacity:1;transform:translateY(2px) rotate(-10deg) scale(.92)}100%{opacity:1;transform:translateY(0) rotate(-10deg) scale(1)}}
.blessing-thanks.is-fallback[open]{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:10000;box-shadow:0 0 0 100vmax #4b352bbd}
.music-bar svg{display:block;width:18px;height:18px}.music-mark svg{width:17px;height:17px}.music-bar button{display:flex;align-items:center;justify-content:center}
@media(max-width:760px){.title-flourish{display:none}.blessing-thanks{padding-top:28px}.blessing-thanks h2{font-size:23px}.thanks-seal{width:124px;height:124px}.thanks-seal img{width:84px;height:84px}}
@media(prefers-reduced-motion:reduce){.blessing-thanks[open] .thanks-seal{animation:none;opacity:1}}

/* All controls use SVG, never platform-dependent pictographic text. */
.ui-icon{display:inline-block;width:16px;height:16px;flex:none;vertical-align:middle;overflow:visible}
.button .ui-icon{width:16px;height:16px}.hero-bottom .ui-icon{width:12px;height:12px}.title-flourish .ui-icon{width:22px;height:22px}
.timeline article>svg,.dining-schedule-highlight>svg{background:transparent!important;background-image:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline:0!important}
@media(max-width:760px){.timeline article:before{display:none}.timeline article>svg{background:transparent!important}}

.blessing-thanks{max-height:calc(100svh - 28px);overflow:auto}.blessing-thanks h2{white-space:pre-line}
.blessing-thanks[data-state="sending"] .thanks-seal{animation:seal-wait 1.8s ease-in-out infinite}
.blessing-thanks[data-state="success"] .thanks-seal{animation:popup-stamp .6s cubic-bezier(.2,.7,.2,1.15) both}
.blessing-thanks[data-state="error"] .thanks-seal{animation:none;opacity:.55}
.blessing-thanks[data-state="error"] #thanks-message{font-size:14px;line-height:1.9}
.letter-box.is-mailing .letter-sent-seal{animation:letter-seal-in .5s ease-out both}
.letter-box.is-sent .letter-sent-seal{opacity:.9}
@keyframes seal-wait{0%,100%{opacity:.5;transform:rotate(-10deg) scale(.97)}50%{opacity:1;transform:rotate(-10deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.blessing-thanks[data-state] .thanks-seal,.letter-box.is-mailing .letter-sent-seal{animation:none!important;opacity:1}}
