/* Sizes follow the 720px video composition, adapted for readable mobile text. */
:root{--kai:"KaiTi","Kaiti SC","STKaiti","Ru Yao Kai",serif}
main{--copy:15px;--title:20px}
main h1,main h2,main p,main blockquote,main figcaption{letter-spacing:0}
.cover-head h1{font-size:24px;line-height:1.45;letter-spacing:0}
.cover-head .pinyin{font-size:10px;letter-spacing:.08em;margin-top:8px}
.cover-foot .seal{font-size:22px}
.cover-foot h2{font-size:20px;line-height:1.45;letter-spacing:.2em}
.cover-foot .cover-date{font-size:14px;letter-spacing:.12em}
.invite{padding:66px 26px 68px}
.invite .kicker{font-size:13px;letter-spacing:.2em}
.invite h2{font-size:24px;line-height:1.5;letter-spacing:0;margin:23px 0 25px}
.invite .body{font-size:15px;line-height:1.85;letter-spacing:0}
.temple .vertical{font-size:12px;letter-spacing:.12em}
.temple-copy p{font-size:19px;letter-spacing:0;line-height:1.6}
.cave blockquote{font-size:22px;line-height:1.6;letter-spacing:0}
.portraits-head h2{font-size:20px;line-height:1.6;letter-spacing:0}
.portrait-grid figcaption{font-size:15px;letter-spacing:0}
.veil p{font-size:19px;line-height:1.65;letter-spacing:0;padding-top:38px}
.motion-head h2{font-size:20px;line-height:1.65;letter-spacing:0}
.motion-note{font-size:14px;line-height:1.8;letter-spacing:0}
.story-head h2{font-size:23px;line-height:1.6;letter-spacing:0}
.story .verse{font-size:15px;line-height:1.8;letter-spacing:0}
.water .rail{font-size:13px;letter-spacing:.16em}
.water p:last-child,.petals h2{font-size:20px;letter-spacing:0;line-height:1.65}
.date .cn{font-size:13px;letter-spacing:.22em}
.date .numeral{font-size:62px}
.date h2{font-size:16px;line-height:1.65;letter-spacing:0}
.date .waiting{font-size:15px;line-height:1.8;letter-spacing:0}
.golden h2,.sunset-photo h2{font-size:20px;line-height:1.65;letter-spacing:0}
.ending-copy h2{font-size:21px;line-height:1.7;letter-spacing:0}
.ending-copy .en{font-size:16px}
.venue .venue-kicker{font-size:13px;letter-spacing:.24em}
.venue h2{font-size:23px;line-height:1.6;letter-spacing:0}
.venue .venue-date{font-size:15px;line-height:1.8}
.venue .venue-name{font-size:25px;line-height:1.6;letter-spacing:0}
.venue .arrival p{font-size:15px;line-height:1.8}
.venue .arrival .arrival-time{font-size:16px;line-height:1.8}
.venue .arrival strong{font-size:27px}
.venue .farewell{font-size:19px;line-height:1.8;letter-spacing:0}
.venue .rsvp h3{font-size:21px;line-height:1.6;letter-spacing:0}
.venue .rsvp .rsvp-intro{font-size:15px;line-height:1.8}
.footer{padding-bottom:88px}

/* Full phrases rendered with the original KaiTi face; semantic text is retained.
   These are phrase graphics, not redistributed font files or a glyph atlas. */
.kai-phrase{position:relative;display:inline-block;max-width:100%;vertical-align:-.15em;letter-spacing:0;line-height:1.15;white-space:nowrap}
.kai-phrase[data-type-ready] .kai-copy{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kai-ink{display:none;width:100%;height:1.15em;background:currentColor;-webkit-mask-image:var(--kai-mask);mask-image:var(--kai-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.kai-phrase[data-type-ready] .kai-ink{display:block}
.vertical .kai-phrase,.rail .kai-phrase{display:inline-block;white-space:nowrap}

.film{position:relative;background:#142226}
.film video{display:block!important;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.film-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:104px;min-height:44px;padding:9px 17px;border:1px solid #ffffffb3;border-radius:25px;background:#173039d9;color:#fff;font:16px/1.5 var(--kai);cursor:pointer;z-index:2}
.film-play::before{content:"▶";font:11px/1 sans-serif;margin-right:7px}
.film-play[hidden]{display:none}
.film-status{position:absolute;left:12px;right:12px;top:10px;margin:0;text-align:center;color:white;font:13px/1.5 var(--kai);background:#142226b3;border-radius:3px}
.film-status:empty{display:none}
.film-play:focus-visible,.music-toggle:focus-visible{outline:2px solid #a68b64;outline-offset:4px}
.music-controls{position:fixed;z-index:8;right:max(14px,calc((100vw - 430px)/2 + 14px));bottom:calc(14px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 28px);text-align:right}
.music-toggle{min-height:44px;padding:8px 15px;border:1px solid #cfc8b7;border-radius:24px;background:#f5f2e9f2;color:#26393b;font:15px/1.6 var(--kai);cursor:pointer}
.music-status{max-width:250px;margin:0 0 7px;padding:5px 9px;border-radius:4px;background:#f5f2e9f2;color:#26393b;font:13px/1.6 var(--kai);text-align:left}
.music-status:empty{display:none}
@media(prefers-reduced-motion:reduce){.film video{display:block!important}}
