:root{--thai:'Anuphan',sans-serif;--serif:'Cormorant Garamond',Georgia,serif}
body{font-family:var(--thai);font-weight:400;line-height:1.8;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-anchor:none}
button,input,textarea,select{font-family:var(--thai)}p,h2,h3,label,.intro,.tap,.section-note,.venue-copy,.map-footer,.color-swatches span{letter-spacing:normal}
h2{font-weight:400;line-height:1.6}.eyebrow{font-family:var(--thai);font-weight:500;letter-spacing:1.7px;font-size:10px;line-height:1.8}
.hero{gap:35px 5vw;padding-top:45px}.hero-copy{min-width:0}.hero h1.couple-full-names{font-family:var(--serif);font-weight:400;font-style:normal;font-size:inherit;line-height:1.05;margin:28px 0 24px;letter-spacing:normal;display:flex;flex-direction:column;align-items:flex-start}
.couple-full-names .person{display:flex;flex-direction:column;gap:3px;color:#604c39;line-height:1.08;font-style:normal;font-size:inherit}
.couple-full-names .first-name{font-size:clamp(44px,4.5vw,65px);line-height:1.06;display:block;font-style:normal;color:inherit}
.couple-full-names .last-name{font-size:clamp(28px,2.9vw,42px);line-height:1.16;display:block;color:inherit;font-style:normal}
.hero h1 .names-ampersand{font-size:27px;line-height:1.15;font-style:italic;color:#b18d6c;margin:7px 0 4px 7px}
.hero-photo{margin-top:40px}.hero-photo>img{height:720px}.hero-date strong{font-size:40px}.wedding-theme p{font-size:25px;letter-spacing:normal;line-height:1.6}.intro{font-size:14px}.dining-invite>p{font-size:15px}.dining-invite>b{font-weight:500}
.journey-copy>p:not(.eyebrow){font-size:15px;line-height:1.9}.journey-copy h2{font-size:30px}.timeline h3{font-size:13px;line-height:1.65}.section-note{font-size:14px}.venue-copy>p:not(.eyebrow):not(.venue-en){font-size:14px;line-height:1.9}.qr small{font-size:11px}
nav>div{font-family:var(--thai);font-size:12px;gap:25px}.map-panel{padding:24px;background:#fffcf7;border-color:#deccb5;border-radius:8px;box-shadow:0 12px 35px #6b503b0a}.map-title{padding:5px 10px 15px;text-align:center}.map-title>span{font-size:8px;letter-spacing:2px;color:#a48466}.map-title>h3{font-size:22px;font-weight:400;margin:5px 0 0;line-height:1.6}.map-title>p{font-size:11px;color:#9b8167;margin:0}.mini-map{border:1px solid #e5d7c3;border-radius:12px}.mini-map text{font-family:var(--thai)}.map-footer{font-size:9px}.map-footer button{font-size:10px;line-height:1.8}.map-panel .mini-map{overflow:visible}
.sound-toggle{position:fixed;top:28px;right:25px;z-index:35;border:1px solid #bfa88a;background:#faf3e9e8;border-radius:30px;min-height:36px;padding:6px 12px;display:flex;align-items:center;gap:7px;font-size:15px;color:#81654c}.sound-toggle>span{font-size:10px}.gate-top{right:155px}.sound-toggle.muted{opacity:.7}
.opening .passport{animation-duration:.62s}.opening .passport-book{animation:book-open .55s .05s cubic-bezier(.2,.6,.2,1) forwards}.stamped .passport-book{animation:stamp-impact .22s,book-hold .01s forwards}.stamped .wedding-ink-stamp{animation:ink-stamp .30s cubic-bezier(.12,.75,.22,1.2) forwards}.flight.flying{animation:veil 1.55s both}.flying .real-airplane{animation-duration:1.55s}.flight>span{font-family:var(--thai);font-size:9px;letter-spacing:2px}.book-theme{font-family:var(--thai)}
.blessings{display:grid;grid-template-columns:1fr 1.2fr;gap:65px;border-top:1px solid var(--line);align-items:center}.blessing-intro h2{font-size:32px;margin:18px 0}.blessing-intro>p:not(.eyebrow){font-size:14px;line-height:1.9;color:#91735b}.blessing-intro>img{width:150px;height:110px;object-fit:contain;filter:brightness(.6);margin-top:26px}.blessing-box{padding:32px;background:#fffaf2;border:1px solid #d6bfa2;box-shadow:6px 7px 0 #ebdece;display:flex;flex-direction:column}.blessing-caption{font-size:8px;letter-spacing:1.4px;color:#a48468;margin-bottom:25px}.blessing-box label{font-size:13px;color:#78583e;margin-bottom:8px}.blessing-box input:not([type=hidden]):not(.honey-field),.blessing-box textarea{background:#fffdf9;border:1px solid #dccbb5;padding:12px 14px;font-size:14px;line-height:1.8;resize:vertical;border-radius:0;color:#644b37;width:100%;margin-bottom:20px}.blessing-box input::placeholder,.blessing-box textarea::placeholder{color:#baa088;font-weight:400}.blessing-box input:focus,.blessing-box textarea:focus{outline:2px solid #cc9f84;outline-offset:2px}.blessing-counter{display:flex;justify-content:space-between;font-size:10px;color:#a98b73;margin-top:-10px;gap:10px}.blessing-box .button{border:0;align-self:flex-start;min-height:44px;gap:28px;font-size:13px}.blessing-box .button:disabled{opacity:.65;cursor:wait}.blessing-privacy{font-size:10px;color:#a48b76;margin:10px 0 0;line-height:1.8}.honey-field{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none;left:-9999px}.blessing-box #blessing-status{font-size:12px;margin:15px 0 0;line-height:1.8}.blessing-box #blessing-status:empty{display:none}.blessing-fallback{font-size:12px;text-decoration:underline;margin-top:10px}
.ticket-stub .countdown-clock span{font-family:var(--thai);font-size:10px;letter-spacing:normal}.color-swatches>div>span{font-family:var(--thai);font-size:12px}.blessing-box form{min-width:0}
@media(min-width:761px){nav{padding-right:155px}.sound-toggle{top:25px}}
@media(max-width:760px){.hero{padding-top:28px}.hero h1.couple-full-names{align-items:center;margin:24px 0 20px}.couple-full-names .person{align-items:center}.couple-full-names .first-name{font-size:48px}.couple-full-names .last-name{font-size:35px}.hero h1 .names-ampersand{font-size:27px;margin:8px 0 5px}.hero .eyebrow{font-size:8px;letter-spacing:1.2px}.hero-photo{margin:0 auto}.hero-photo>img{height:auto}.journey-copy h2{font-size:25px}.journey-copy>p:not(.eyebrow){font-size:14px}.timeline h3{font-size:13px}.venue-copy>p:not(.eyebrow):not(.venue-en){font-size:13px}.map-panel{padding:14px}.map-title>h3{font-size:21px}.map-footer{gap:8px;font-size:8px}.map-footer button{font-size:9px}.blessings{grid-template-columns:1fr;gap:25px;padding:55px 7vw 65px}.blessing-intro{text-align:center}.blessing-intro h2{font-size:27px}.blessing-intro>img{margin:18px auto 0;width:130px}.blessing-box{padding:25px 20px}.blessing-caption{font-size:7px}.sound-toggle{top:auto;bottom:18px;right:15px;padding:7px 11px;min-height:38px}.gate-top{right:6vw}nav{padding:0 5vw}nav>div{gap:14px;font-size:11px}.sound-toggle>span{font-size:10px}.book-label{letter-spacing:.5px}.wedding-ink-stamp>b{line-height:1.8}.music-bar{bottom:70px}.hero-date strong{font-size:40px}.intro{font-size:13px}}
@media(max-width:380px){.couple-full-names .first-name{font-size:43px}.couple-full-names .last-name{font-size:30px}nav>div{gap:10px;font-size:10px}.hero-date strong{font-size:35px}.blessing-counter{font-size:9px}}
@media(prefers-reduced-motion:reduce){.opening .passport-book,.stamped .wedding-ink-stamp{animation-duration:.1s}}
