/* Cohesive chapter layout, compact 24-hour times, and expressive motion. */
.hero{padding-bottom:0;position:relative}.hero-copy>.wedding-title>.eyebrow{font-size:8px;letter-spacing:1.8px;color:#a18062;margin:0 0 14px}
.wedding-title h1{font:400 clamp(42px,4.3vw,65px)/1.5 var(--thai);letter-spacing:0;margin:0;color:#75543c}.wedding-title-en{font:italic 32px/1.25 var(--serif);margin:0;color:#9e7a5b}.title-flourish{display:block;color:#bd9875;font:22px/1 Georgia;margin:18px 0 22px}
.hero .couple-full-names{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 24px;line-height:1.1;font-family:var(--serif);color:#604c39}
.hero .couple-full-names .first-name{font-size:40px;line-height:1.15}.hero .couple-full-names .last-name{font-size:32px;line-height:1.15}.couple-full-names .first-name>small{font:italic 22px/1 var(--serif);color:#ac8568;white-space:nowrap;margin-left:4px}
.couple-rings{display:block;width:72px;height:43px;margin:14px 0;color:#b68d61}.couple-rings svg{width:100%;height:100%}
.dining-invite>div{align-items:baseline;gap:7px;margin:12px 0 6px}.dining-invite>div>strong{font:400 44px/1 var(--serif);letter-spacing:0;font-variant-numeric:tabular-nums}.dining-invite>div>span{font:400 13px/1 var(--thai)}
.ticket .ticket-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.ticket .ticket-meta>span{font:500 8px/1.7 var(--thai);letter-spacing:1.3px}.ticket .ticket-meta>span>b,.ticket .ticket-meta .dining-ticket-time>b{font:400 13px/1.8 var(--thai);letter-spacing:.35px;color:#73543f;margin-top:8px;white-space:nowrap;font-variant-numeric:tabular-nums}.ticket .ticket-meta .dining-ticket-time>b{font-weight:500}
.timeline time{font-variant-numeric:tabular-nums}.timeline time>small{font:400 11px var(--thai)}.dining-schedule-highlight strong{font:400 35px/1.2 var(--serif)}
.hero-photo{margin-top:20px}.hero-photo>img{height:820px}.hero-bottom{border-bottom:0;padding-bottom:40px}
.chapter-shell{position:relative;isolation:isolate;border-top:1px solid #d9c8b230;overflow:hidden}.chapter-shell>.section{position:relative;border-top:0;margin:auto;padding-top:48px;padding-bottom:75px}.chapter-ribbon{max-width:1060px;padding:30px 0 0;margin:0 auto;display:flex;align-items:center;gap:15px;color:#ab8b70;font-size:8px;font-weight:500;letter-spacing:2px;line-height:1.5}.chapter-ribbon>span:first-child{font:italic 27px var(--serif);letter-spacing:0;color:#ba9778}.chapter-ribbon>i{width:45px;height:1px;background:#d2b99f}.chapter-journey{background:#fffaf2}.chapter-boarding{background:#f2e4d8}.chapter-itinerary{background:#fffcf6}.chapter-destination{background:#f2ebe0}.chapter-blessings{background:#f7eae2}.chapter-shell:before{content:'';width:330px;height:330px;position:absolute;right:-200px;top:70px;border:1px solid #c4a48925;border-radius:50%;box-shadow:0 0 0 25px #c4a48908,0 0 0 50px #c4a48905;pointer-events:none}
.chapter-boarding .boarding{padding-top:35px;padding-bottom:65px}.chapter-blessings .blessings{padding-top:40px}.chapter-itinerary .itinerary{padding-top:35px}.chapter-journey .journey{padding-top:35px}.chapter-destination .destination{padding-top:35px}
nav a{transition:color .25s}nav a.is-current{color:#bc8066}nav>div>a{position:relative}nav>div>a:after{content:'';position:absolute;height:1px;bottom:-5px;left:0;right:0;background:#bc8066;transform:scaleX(0);transition:transform .4s}nav>div>a.is-current:after{transform:scaleX(1)}
.music-bar{left:20px;right:auto;bottom:20px;gap:10px;padding:8px 13px;box-shadow:0 5px 25px #6a4b321a}.music-bar input{width:75px}.sound-toggle{top:auto;bottom:20px;right:20px}.gate-top{right:6vw}
.passport:not(:active){animation:passport-float 5s ease-in-out infinite}.opening .passport{animation:cover-open .62s cubic-bezier(.25,.6,.25,1) both!important}.passport:before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 35%,#fff3db16 48%,transparent 61%);background-size:250% 100%;animation:leather-shine 7s ease-in-out infinite;pointer-events:none}
.wedding-title{position:relative}.title-flourish{animation:flourish-turn 12s ease-in-out infinite}.couple-rings{animation:rings-breathe 5s ease-in-out infinite}.hero-photo{transition:transform .6s,box-shadow .6s}.hero-photo:hover{transform:rotate(0) translateY(-4px);box-shadow:0 15px 35px #6b51381a}.polaroid{transition:transform .8s}.polaroid:hover{transform:rotate(-1deg) translateY(-4px)}.button{transition:background .3s,transform .3s,box-shadow .3s}.button:hover{transform:translateY(-2px);background:#8d674b;box-shadow:0 5px 15px #6a4b3220}.color-swatches i{transition:transform .3s,box-shadow .3s}.color-swatches>div:hover i{transform:translateY(-4px);box-shadow:0 7px 12px #6b503320}
.motion-ready .reveal-item{opacity:0;transform:translateY(25px);transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal-item.is-visible{opacity:1;transform:translateY(0)}.motion-ready .map-panel.is-visible .mini-map>path[stroke-dasharray]{animation:route-travel 7s linear infinite}
.hero-arrived .wedding-title{animation:hero-enter .9s both}.hero-arrived .couple-full-names{animation:hero-enter 1s .12s both}.hero-arrived .intro,.hero-arrived .hero-date{animation:hero-enter 1s .25s both}.hero-arrived .dining-invite{animation:hero-enter 1s .35s both}.hero-arrived .hero-photo{animation:photo-enter 1.2s .15s both}.countdown-clock strong{transition:color .3s}.blessing-box:focus-within{box-shadow:6px 7px 0 #ebdece,0 0 0 1px #c79d7c33}
@keyframes passport-float{0%,100%{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-7px)}}@keyframes leather-shine{0%,70%,100%{background-position:200% 0}90%{background-position:-60% 0}}@keyframes flourish-turn{0%,80%,100%{transform:rotate(0);opacity:.7}90%{transform:rotate(180deg);opacity:1}}@keyframes rings-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes hero-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-enter{from{opacity:0;transform:rotate(4deg) translateY(25px)}to{opacity:1;transform:rotate(2deg) translateY(0)}}@keyframes route-travel{to{stroke-dashoffset:-84}}
@media(min-width:761px){nav{padding-right:6vw}.chapter-ribbon{padding-left:6vw;padding-right:6vw}.hero .couple-full-names .first-name{font-size:clamp(31px,3vw,42px)}.hero .couple-full-names .last-name{font-size:clamp(27px,2.65vw,37px)}}
@media(max-width:760px){.wedding-title{text-align:center}.wedding-title h1{font-size:44px;line-height:1.5}.wedding-title-en{font-size:30px}.hero .hero-copy>.wedding-title>.eyebrow{font-size:7px;letter-spacing:1.4px}.title-flourish{margin:16px auto 22px}.hero .couple-full-names{align-items:center}.hero .couple-full-names .first-name{font-size:36px}.hero .couple-full-names .last-name{font-size:30px}.couple-full-names .first-name>small{font-size:21px}.couple-rings{width:66px;height:40px;margin:15px 0}.hero-photo{margin:0 auto}.hero-photo>img{height:auto}.dining-invite>div>strong{font-size:40px}.dining-invite>div>span{font-size:12px}.ticket .ticket-meta{gap:12px}.ticket .ticket-meta>span{font-size:7px;letter-spacing:1px}.ticket .ticket-meta>span>b,.ticket .ticket-meta .dining-ticket-time>b{font-size:11px;letter-spacing:0;line-height:1.9}.chapter-ribbon{padding:23px 7vw 0;font-size:7px;letter-spacing:1.3px;gap:12px}.chapter-ribbon>span:first-child{font-size:25px}.chapter-shell>.section{padding-top:27px;padding-bottom:55px}.chapter-boarding .boarding{padding-top:25px;padding-bottom:45px}.hero-bottom{padding-bottom:26px}.chapter-blessings .blessings{padding-top:28px}.chapter-destination .destination{padding-top:25px}.chapter-itinerary .itinerary{padding-top:25px}.chapter-journey .journey{padding-top:25px}.music-bar{bottom:65px;left:12px;padding:7px 10px;gap:8px}.sound-toggle{bottom:15px;right:12px}.music-bar label{font-size:9px}.music-bar input{width:72px}.music-mark{font-size:18px}.dining-schedule-highlight strong{font-size:32px}}
@media(max-width:760px){.music-bar{bottom:15px;max-width:calc(100vw - 118px)}.music-bar input{width:clamp(40px,12vw,72px)}}
@media(max-width:380px){.wedding-title h1{font-size:39px}.wedding-title-en{font-size:27px}.hero .couple-full-names .first-name{font-size:32px}.hero .couple-full-names .last-name{font-size:27px}.couple-full-names .first-name>small{font-size:19px}.ticket .ticket-meta{gap:8px}.ticket .ticket-meta>span>b,.ticket .ticket-meta .dining-ticket-time>b{font-size:10px}}
.music-mobile-control{display:none}.music-bar{transition:opacity .35s,background .35s,box-shadow .35s}
@media(max-width:760px){.music-mobile-control{display:inline-flex;align-items:center;justify-content:center}.music-bar{bottom:65px;width:min(340px,calc(100vw - 24px));max-width:calc(100vw - 24px);gap:7px;padding:8px 10px;min-height:46px}.music-bar>.music-mark,.music-bar>label{display:none}.music-bar input{flex:1;min-width:40px;width:50px;max-width:110px}.music-bar button{flex:0 0 29px;min-width:29px;min-height:30px}.music-bar #music-dim{font-size:21px;color:#9d7758}.music-bar #music-collapse{font-size:21px}.music-bar.is-collapsed{bottom:15px;width:auto;max-width:130px;gap:7px;padding:7px 10px}.music-bar.is-collapsed>.music-mark{display:block;font-size:18px}.music-bar.is-collapsed>label,.music-bar.is-collapsed>input,.music-bar.is-collapsed>#music-mute,.music-bar.is-collapsed>#music-dim{display:none}.music-bar.is-idle{opacity:.5;box-shadow:none}.music-bar.is-dimmed{opacity:.38;box-shadow:none;background:#fffaf1bc}.music-bar.is-dimmed.is-idle{opacity:.32}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal-item{opacity:1;transform:none}.hero-arrived *{opacity:1}.opening .passport-book,.stamped .wedding-ink-stamp{animation:none!important}}
