@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{color-scheme:dark;--cream:#f4ead5;--gold:#e9c382;--muted:#c4bbab;--ink:#111a18}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font:15px/1.55 'DM Sans',sans-serif}button,a,select{touch-action:manipulation}button,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid #ecdfbe40;background:#16201cc9;border-radius:2px;padding:10px 17px;transition:background .2s,border .2s}button:hover{background:#53604b70;border-color:var(--gold)}button:focus-visible,a:focus-visible,select:focus-visible,.guest:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.5;cursor:wait}button.primary,#enter{background:var(--cream);color:#17201c;border-color:var(--cream)}[hidden]{display:none!important}#experience{height:100dvh;min-height:400px;overflow:hidden;position:relative}#scene{position:absolute;inset:0;overflow:hidden;background:#0b1010}#world{position:absolute;width:100%;height:100%;transform-origin:0 0}#film{width:100%;height:100%;object-fit:cover;display:block}body[data-mode="conversation"] #film,body[data-mode="ending"] #film{object-fit:contain}#hotspots{position:absolute;inset:0;width:100%;height:100%;display:none;overflow:visible}body[data-mode="room"] #hotspots{display:block}body[data-mode="room"] #scene{cursor:grab;touch-action:none}body.dragging #scene{cursor:grabbing}.guest{cursor:pointer}.guest path{fill:transparent;stroke:transparent;stroke-width:2;transition:stroke .2s,fill .2s;pointer-events:all;vector-effect:non-scaling-stroke}.guest:hover path,.guest:focus path{stroke:#ffe6b0;fill:#ffe3a01a;filter:drop-shadow(0 0 5px #ffd583) drop-shadow(0 0 12px #ffe3a0)}.guest text{opacity:0;fill:#fff1d3;text-anchor:middle;font:16px 'DM Sans';paint-order:stroke;stroke:#17201d;stroke-width:3px;pointer-events:none}.guest:hover text,.guest:focus text{opacity:1}.guest.done path{stroke:#e6ce9644}#shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#0c1717d9 0%,#0c171750 55%,transparent),linear-gradient(0deg,#07100ed9,transparent 27%)}body:not([data-mode="landing"]) #shade{background:linear-gradient(0deg,#07100e99,transparent 23%,transparent 82%,#07100e88)}header{position:absolute;left:4vw;right:4vw;top:28px;display:flex;justify-content:space-between;align-items:flex-start;gap:15px;z-index:5}#brand{text-decoration:none;color:var(--cream);font-size:19px;letter-spacing:5px;line-height:1.3}#brand span{display:block;font:8px 'DM Sans';letter-spacing:3px;margin-top:7px}#tools{display:flex;gap:9px}#tools button{font-size:11px;padding:7px 12px;backdrop-filter:blur(8px)}#welcome{position:absolute;left:9vw;top:26%;max-width:560px}h1,h2,h3{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;line-height:1.08;margin:16px 0 24px}h1{font-size:clamp(50px,6.5vw,96px);letter-spacing:-2px}h2{font-size:clamp(30px,4vw,52px)}h3{font-size:30px}.eyebrow{font-size:10px;letter-spacing:2.7px;font-weight:600;color:var(--gold)}#welcome>p:not(.eyebrow){color:#e5ddce;font-size:15px;line-height:1.8}#enter{display:block;margin-top:32px;min-width:200px;text-align:left}#enter span{float:right}#welcome small{display:block;margin-top:16px;color:var(--muted);font-size:10px;letter-spacing:.4px}footer{position:absolute;left:4vw;right:4vw;bottom:25px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;color:#e9ddc7aa}.room-note{position:absolute;left:4vw;bottom:90px;pointer-events:none;text-shadow:0 2px 14px #000}.room-note h2{font-size:32px;margin:8px 0}.room-note p:last-child{font-size:12px;margin:0;color:var(--muted)}#guestNav{position:absolute;left:4vw;bottom:28px;display:flex;gap:8px}#guestNav button{font-size:11px;background:#12201bd9;backdrop-filter:blur(10px)}#guestNav button.done:after{content:' ✓';color:var(--gold)}#map{position:absolute;right:4vw;bottom:30px;width:120px;height:67.5px;border:1px solid #f2d49a77;background:#121d1c80;pointer-events:none}#mapView{position:absolute;width:50%;height:50%;border:1px solid var(--gold);background:#e9c38222}#progress{position:absolute;bottom:25px;left:4vw;right:4vw;display:flex;justify-content:space-between;pointer-events:none;font-size:11px;color:#dfd2bb;letter-spacing:1px}#loading,#error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#12201eed;padding:22px;z-index:15}#caption{position:absolute;bottom:62px;width:100%;text-align:center;pointer-events:none}.overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#06100c66;backdrop-filter:blur(5px);padding:30px}.question-card{width:min(660px,100%);padding:38px 42px;background:#14221ff2;border:1px solid #e8d0a13b;box-shadow:0 25px 100px #0006}.question-card h2{font-size:clamp(23px,2.7vw,34px);line-height:1.25;margin:18px 0}.question-help{font-size:12px;color:var(--muted)}#options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:24px 0}#options button{text-align:left;font-size:12px;min-height:48px;background:#f6e5bd08}#options button:hover{background:#d9bd7e25}#options button:last-child{color:var(--muted)}.question-footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}.question-footer button{font-size:11px;border:0;background:transparent;padding-left:0}.panel{position:relative;max-width:960px;width:100%;max-height:90dvh;overflow-y:auto;background:#14221ff7;border:1px solid #e8d0a13b;padding:42px}.panel>p{max-width:640px;color:var(--muted)}.close{position:absolute;right:15px;top:12px;font-size:25px;border:0;padding:0 10px}#answerList{margin:25px 0;display:grid;gap:16px}.answer-row{border-bottom:1px solid #ffffff18;padding-bottom:14px}.answer-row label{display:block;font-size:13px;margin-bottom:8px}.answer-row select{width:100%;padding:9px;background:#182a26;border:1px solid #e8d0a140}#styles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}.style-card{text-align:left;display:flex;flex-direction:column;padding:22px;background:#f6e5bd05;min-height:250px}.style-card[aria-pressed="true"]{border-color:var(--gold);background:#d9bd7e19}.style-card h3{margin:8px 0 12px}.style-card p{font-size:12px;margin:0 0 18px;color:var(--muted)}.style-card .example{font-family:Georgia,serif;font-style:italic;color:#e8ddc7;font-size:13px;margin-top:auto}.badge{font-size:9px;letter-spacing:1.5px;color:var(--gold);min-height:15px}.fine{font-size:11px;color:var(--muted)}fieldset{border:1px solid #e8d0a130;padding:20px;margin:20px 0}legend{font-size:12px;padding:0 8px;color:var(--gold)}fieldset label{font-size:12px;margin-right:18px}select{background:#20342e;border:1px solid #e8d0a150;padding:6px}#recentEditors{display:grid;gap:12px;margin-top:17px}#recentEditors label{display:grid;grid-template-columns:90px 1fr;align-items:center;margin:0}#recentEditors select{width:100%;font-size:12px}.download-row{display:flex;gap:10px;margin:20px 0}pre{white-space:pre-wrap;font:12px/1.7 monospace;background:#091410;padding:20px;max-height:350px;overflow:auto}#moon{position:absolute;left:50%;top:68%;transform:translate(-50%,-50%);border:1px solid #e6d6ac88;background:#101b1a99;padding:13px 25px;z-index:10}#moon span{margin-left:25px}@media(max-width:700px){header{top:18px}#brand{font-size:14px;letter-spacing:3px}#tools{gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:230px}#tools button{font-size:9px;padding:6px 8px}#welcome{left:7vw;top:27%;right:7vw}h1{font-size:58px}#welcome>p:not(.eyebrow){font-size:13px}.overlay{padding:12px}.question-card,.panel{padding:25px 20px}.question-card h2{font-size:25px}#options{grid-template-columns:1fr;margin:16px 0;gap:6px}#options button{min-height:37px;padding:8px 12px}#styles{grid-template-columns:1fr}.style-card{min-height:0}.room-note{bottom:105px}.room-note h2{font-size:27px}#map{bottom:86px;width:80px;height:45px}#guestNav{right:4vw}#guestNav button{padding:10px 9px;font-size:10px;flex:1}.result-panel{max-height:94dvh}#recentEditors label{grid-template-columns:1fr;gap:5px}footer{font-size:7px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Floating typography and continuous scene transitions. */
#scene{transition:filter .5s ease,opacity .5s ease}body.scene-changing #scene{opacity:0;filter:blur(15px)}
body:has(#question:not([hidden])) #scene{filter:blur(15px) brightness(.36)}
#question{background:transparent;backdrop-filter:none;animation:question-in .5s ease both;overflow-y:auto}
.question-card{width:min(860px,100%);background:transparent;border:0;box-shadow:none;padding:32px 40px;animation:soft-glow 5s ease-in-out infinite}
.question-card h2{font-size:clamp(28px,3.2vw,43px)}.question-help{font-size:14px;color:#e4dccd}
#options{gap:14px 30px}#options button{font-size:15px;min-height:55px;background:transparent;border:0;padding:12px 0;line-height:1.5}
#options button:hover{background:transparent;color:#ffe0a4;text-shadow:0 0 18px #f4d6a5}
#tools button,#guestNav button,#moon,#enter{background:transparent;border:0;backdrop-filter:none;color:var(--cream);text-shadow:0 2px 8px #000,0 0 18px #e5c78666}
#tools button{font-size:13px}#guestNav button{font-size:15px}#tools button:hover,#guestNav button:hover,#moon:hover,#enter:hover{background:transparent;color:#ffe0a4;text-shadow:0 0 14px #ffe0a4}
#tools,#guestNav{animation:soft-glow 5s ease-in-out infinite}body[data-mode="room"] #scene{cursor:default}#world{transform-origin:center center}
@keyframes soft-glow{0%,100%{text-shadow:0 1px 8px #000,0 0 10px #ffe3aa22}50%{text-shadow:0 1px 8px #000,0 0 17px #ffe3aa55}}
@keyframes question-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:700px){.question-card{padding:18px 12px}.question-card h2{font-size:26px}.question-help{font-size:12px}#options{gap:5px}#options button{font-size:13px;min-height:37px;padding:7px 0}#tools button{font-size:10px}#guestNav button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.question-card,#tools,#guestNav{animation:none}}
header{z-index:30}body:has(.overlay:not([hidden])) header{top:12px}

/* Only sustained buffering is announced; keep the frame visible while downloading. */
#loading{top:auto;bottom:66px;left:50%;transform:translateX(-50%);background:transparent;padding:6px 12px;font-size:12px;letter-spacing:.4px;color:#f4ead5;text-shadow:0 1px 8px #000;pointer-events:none}
#world{will-change:transform}#scene{isolation:isolate}

/* Clearer hierarchy, softly focused guests, and a moon-centred invitation. */
#brand{font-size:clamp(22px,1.65vw,30px);letter-spacing:5px}#brand span{font-size:10px;letter-spacing:3.3px}
#tools{gap:clamp(6px,1vw,20px)}#tools button{font-size:clamp(14px,1vw,18px);padding:10px 12px;min-height:44px}
#welcome{top:19%;max-width:660px;width:46vw}#welcome h1{font-size:clamp(64px,6.3vw,118px);line-height:.98;margin:20px 0 26px}
.title-name{display:block;font-family:'DM Sans',sans-serif;font-size:.25em;letter-spacing:.24em;line-height:1.6;margin-bottom:15px}
#welcome>p:not(.eyebrow){font-size:clamp(17px,1.2vw,22px);line-height:1.65;max-width:590px}.eyebrow{font-size:12px}
.muse-name{white-space:nowrap}.muse-icon{display:inline-block;width:1.4em;height:1.1em;vertical-align:-.18em;margin-right:.18em;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
#enter{font-size:20px;min-width:240px;padding:12px 0;margin-top:26px}#welcome small{font-size:12px}footer{font-size:11px}
.room-note h2{font-size:clamp(34px,3vw,48px)}.room-note p:last-child{font-size:15px}#guestNav button{font-size:17px;min-height:46px}#progress{font-size:13px}
.guest path,.guest.done path{stroke:none;fill:transparent;transition:fill .7s,filter .7s}
.guest:hover path,.guest:focus path{stroke:none;fill:#ffe9ba40;filter:blur(9px) drop-shadow(0 0 15px #ffe7b480)}
.guest text{font-family:'Libre Caslon Display',Georgia,serif;font-size:22px;font-weight:400;stroke:none;filter:drop-shadow(0 2px 4px #111);transition:opacity .5s}
#videoAmbient{position:absolute;inset:-4%;width:108%;height:108%;filter:blur(28px) brightness(.65);pointer-events:none}body[data-mode="room"] #videoAmbient{display:none}
body[data-mode="moon"] #film{object-fit:contain}
#moon{font-family:'Libre Caslon Display',Georgia,serif;font-size:clamp(26px,2.5vw,46px);white-space:nowrap;color:#101e39;padding:18px 22px;text-shadow:none;transition:color 1s ease,text-shadow 1s ease;background:transparent;border:0}
#moon:hover{color:#101e39;text-shadow:none}body.moon-lit #moon{color:#fffbed;text-shadow:0 0 12px #fff,0 0 30px #ffffffa0}
body[data-mode="moon"] #scene{transition:filter 1s ease,opacity .5s ease}body[data-mode="moon"].moon-lit #scene{filter:brightness(.48)}
@media(max-width:850px){#tools{max-width:60%;gap:2px;flex-wrap:wrap;justify-content:flex-end}#tools button{font-size:13px;padding:7px 8px}#brand{font-size:20px;letter-spacing:3px}#brand span{font-size:9px}#welcome{width:auto;max-width:620px;left:7vw;right:7vw;top:21%}#welcome h1{font-size:clamp(60px,11vw,90px)}#welcome>p:not(.eyebrow){font-size:17px;max-width:500px}#welcome small{font-size:11px}#guestNav button{font-size:14px}.room-note p:last-child{font-size:13px}footer{font-size:9px}#moon{font-size:clamp(22px,4vw,34px)}}
@media(max-height:620px){#welcome{top:19%;max-width:600px}#welcome h1{font-size:clamp(40px,8vh,65px);margin:10px 0 14px}.title-name{margin-bottom:4px}#welcome>p:not(.eyebrow){font-size:14px;line-height:1.5}#enter{font-size:17px;margin-top:10px}#welcome small{margin-top:5px}.eyebrow{margin:4px 0;font-size:10px}header{top:15px}footer{bottom:12px}}
@media(prefers-reduced-motion:reduce){#moon,body[data-mode="moon"] #scene,.guest path{transition:none}}

/* SVG focus is expressed by the soft halo and label, never a bounding rectangle. */
.guest,.guest:focus,.guest:focus-visible,.guest:active{outline:none!important;outline-offset:0; -webkit-tap-highlight-color:transparent}
#brandAction{transition:color .3s,text-shadow .3s}#brand:hover #brandAction{color:#fff;text-shadow:0 0 12px #fff8}
.review-actions{position:sticky;bottom:-42px;display:flex;gap:18px;justify-content:space-between;align-items:center;padding:20px 0 10px;background:linear-gradient(0deg,#14221f 75%,#14221f00);margin-top:18px}
#confirmAnswers{min-width:170px}#reset{background:transparent;border:0;color:var(--muted)}
@media(max-width:700px){.review-actions{bottom:-25px;gap:12px;flex-wrap:wrap}.review-actions button{font-size:13px}#confirmAnswers{min-width:145px}}
#answersPanel{z-index:25}header{pointer-events:none}header a,header button{pointer-events:auto}
:root{--navigation-size:clamp(14px,1vw,18px)}
#tools button,#caption{font-family:'DM Sans',sans-serif;font-size:var(--navigation-size);font-weight:400;line-height:1.55}
#caption{z-index:4;text-align:center;color:var(--cream);text-wrap:balance;text-shadow:0 2px 4px #000,0 0 12px #000b;pointer-events:none;padding:0 12px;max-height:5em}
@media(max-width:850px){:root{--navigation-size:13px}}

#options button[aria-pressed="true"]{color:#ffe0a4;text-shadow:0 0 12px #ffe0a455}#options button[aria-pressed="true"]::after{content:" ✓";margin-left:.5em}
.artwork{cursor:pointer;outline:none}
.artwork path{fill:#ffe4a5;fill-opacity:0;stroke:none;pointer-events:all;filter:blur(5px);transition:fill-opacity .55s,filter .55s}
.artwork:hover path,.artwork:focus-visible path{fill-opacity:.24;filter:blur(6px) drop-shadow(0 0 12px #ffe4a5aa)}
#artOverlay{z-index:45;background:#050c16c9;backdrop-filter:blur(16px);padding:clamp(24px,5vw,90px);overflow:auto;animation:artReveal .45s ease both}
.art-layout{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:center;gap:clamp(30px,5vw,90px);width:min(1500px,100%);margin:auto;padding:44px 0 16px}
#closeArt{position:absolute;right:0;top:-12px;font-size:var(--navigation-size);padding:8px 0;border:0;background:transparent;letter-spacing:.05em}
.art-layout figure{margin:0;display:flex;align-items:center;justify-content:center;min-width:0}
#artImage{display:block;max-width:100%;max-height:76dvh;width:auto;height:auto;object-fit:contain;box-shadow:0 12px 70px #0005}
.art-description h2{font-size:clamp(35px,3.6vw,64px);margin:10px 0 20px}
.art-description h3{font-size:25px;margin:25px 0 9px}
.art-description p{font-size:clamp(14px,1.05vw,18px);line-height:1.7;color:#e0d7c8;margin:0 0 12px}
.art-description .eyebrow{font-size:11px;color:var(--gold)}
.art-description dl{display:flex;flex-wrap:wrap;gap:20px 34px;margin:22px 0 28px}
.art-description dt{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--gold);margin-bottom:6px}
.art-description dd{margin:0;font-size:15px}
#artOriginal{font-style:italic;color:var(--muted)}
#artSource{display:inline-block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:18px;text-decoration:none;border-bottom:1px solid #f4ead533}
#artSource:hover{color:var(--cream)}
@keyframes artReveal{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(16px)}}
@media(max-width:800px){#artOverlay{padding:26px}.art-layout{grid-template-columns:1fr;gap:25px;padding-top:40px}#artImage{max-height:48dvh}.art-description h2{font-size:38px}.art-description p{font-size:15px}.art-description dl{gap:16px 25px}}
@media(prefers-reduced-motion:reduce){#artOverlay{animation:none}}

.artwork text{opacity:0;fill:#fff1d3;text-anchor:middle;font:22px "Libre Caslon Display",Georgia,serif;pointer-events:none;filter:drop-shadow(0 2px 4px #111);transition:opacity .5s}.artwork:hover text,.artwork:focus-visible text{opacity:1}

#sound svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#sound .sound-slash{display:none}#sound[aria-pressed="false"] .sound-slash{display:block}#sound[aria-pressed="false"] .sound-waves{display:none}#tools{align-items:center}#reset{white-space:nowrap}
/* Central, readable feedback while the film is fetching or stalled. */
#loading{inset:0;transform:none;width:100%;height:100%;padding:0;z-index:18;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:transparent;font-size:clamp(17px,1.4vw,22px);pointer-events:none}
#loading::before{content:'';position:absolute;inset:0;background:#06121d;animation:loading-breathe 2.4s ease-in-out infinite alternate;z-index:-1}
#loading .loading-spinner{display:block;width:34px;height:34px;border:2px solid #f4ead53b;border-top-color:#f4ead5;border-radius:50%;animation:loading-spin 1s linear infinite}
@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-breathe{from{opacity:.18}to{opacity:.38}}
body.media-buffering #film{opacity:1}body.media-buffering.scene-changing #film{filter:none}
@media(max-width:700px){#tools{max-width:65vw;gap:2px}#tools button{font-size:12px;padding:7px 6px}#brand{font-size:18px;letter-spacing:3px}#welcome{top:22%;width:auto;max-width:none;right:7vw;bottom:55px;overflow-y:auto}#welcome h1{font-size:clamp(44px,10vw,64px)}#welcome>p:not(.eyebrow){font-size:15px}#guestNav{flex-wrap:wrap;gap:2px}#guestNav button{font-size:12px;padding:8px;flex:0 1 auto}.room-note{bottom:135px}#map{bottom:125px}.overlay{overflow-y:auto}.question-card{max-height:90dvh;overflow-y:auto}}
@media(prefers-reduced-motion:reduce){#loading::before{animation:none;opacity:.28}}

.sound-control{display:flex;align-items:center;gap:8px}.sound-hint{font-size:12px;line-height:1.4;opacity:.8;max-width:145px}body:not([data-mode="landing"]) .sound-hint{display:none}@media(max-width:600px){.sound-control{gap:4px}.sound-hint{font-size:11px;max-width:105px}}

@font-face{font-family:AftertoneCNSerif;src:url('fonts/aftertone-cn-serif.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:AftertoneCNSans;src:url('fonts/aftertone-cn-sans.woff2') format('woff2');font-weight:400;font-display:swap}
html[lang="zh-CN"] body{font-family:AftertoneCNSans,"PingFang SC","Microsoft YaHei",sans-serif}
html[lang="zh-CN"] h1,html[lang="zh-CN"] h2,html[lang="zh-CN"] h3,html[lang="zh-CN"] #moon,html[lang="zh-CN"] .guest text,html[lang="zh-CN"] .artwork text{font-family:AftertoneCNSerif,"Songti SC",SimSun,serif;font-style:normal;letter-spacing:.025em}
html[lang="zh-CN"] h1 em,html[lang="zh-CN"] h2 em{font-style:normal}
.research-language{display:flex;justify-content:flex-end;margin-bottom:20px}
@media(max-width:600px){.language-control{font-size:11px;gap:4px}header nav{flex-wrap:wrap;justify-content:flex-end}.sound-hint{max-width:105px}}

body:not([data-mode="landing"]) .language-control{display:none}#caption>span{display:block}.caption-zh{font-family:AftertoneCNSans,"PingFang SC","Microsoft YaHei",sans-serif;margin-top:6px;line-height:1.55}html[lang="zh-CN"] #caption{max-height:35vh;overflow:auto}

.language-control{display:inline-flex;align-items:center;gap:9px;font:inherit;white-space:nowrap;pointer-events:auto}
.language-control .language-label{font-size:.85em;opacity:.65;margin-right:3px}
.language-control .language-divider{opacity:.35;font-size:.85em}
.language-control button{appearance:none;font:inherit;color:inherit;background:transparent;border:0;border-radius:0;box-shadow:none;padding:7px 0;min-height:36px;width:auto;cursor:pointer;opacity:.6;transition:opacity .2s,text-shadow .2s;text-decoration:none;text-underline-offset:6px}
.language-control button[aria-pressed="true"]{opacity:1;text-decoration:underline;text-decoration-thickness:1px}
.language-control button:hover{opacity:1;background:transparent;text-shadow:0 0 12px currentColor}
.language-control button:focus-visible{outline:1px solid currentColor;outline-offset:4px}/* Chinese uses a quieter scale: display serif, compact sans UI, generous reading leading. */
html[lang="zh-CN"] body{font-size:14px;line-height:1.75}
html[lang="zh-CN"] #welcome h1{font-size:clamp(40px,4.1vw,72px);line-height:1.22;letter-spacing:.035em;margin:20px 0 28px}
html[lang="zh-CN"] #welcome>p:not(.eyebrow){font-size:clamp(15px,1vw,18px);line-height:1.9;max-width:32em}
html[lang="zh-CN"] h2{font-size:clamp(26px,2.4vw,38px);line-height:1.4}
html[lang="zh-CN"] h3{font-size:24px;line-height:1.45}
html[lang="zh-CN"] #tools button,html[lang="zh-CN"] #guestNav button{font-family:AftertoneCNSans,"Microsoft YaHei",sans-serif;font-size:clamp(12px,.85vw,15px);letter-spacing:.035em;line-height:1.6}
html[lang="zh-CN"] #tools{gap:7px}
html[lang="zh-CN"] #enter{font-size:16px;letter-spacing:.08em}
html[lang="zh-CN"] .eyebrow{font-size:10px;letter-spacing:.18em;font-weight:400}
html[lang="zh-CN"] .room-note h2{font-size:clamp(26px,2.2vw,36px);line-height:1.4}
html[lang="zh-CN"] .room-note p:last-child{font-size:13px;line-height:1.8}
html[lang="zh-CN"] .question-card h2{font-size:clamp(23px,2.1vw,32px);line-height:1.6;letter-spacing:.02em}
html[lang="zh-CN"] #options button{font-size:14px;line-height:1.8}
html[lang="zh-CN"] .question-help{font-size:12px}
html[lang="zh-CN"] .style-card h3{font-size:25px}
html[lang="zh-CN"] .style-card .example{font-family:AftertoneCNSerif,serif;font-style:normal;line-height:1.8}
html[lang="zh-CN"] #moon{font-size:clamp(23px,1.9vw,34px);letter-spacing:.06em}
html[lang="zh-CN"] .art-description h2{font-size:clamp(27px,2.5vw,42px);line-height:1.4}
html[lang="zh-CN"] .art-description h3{font-size:21px}
html[lang="zh-CN"] .art-description p{font-size:14px;line-height:1.9}
html[lang="zh-CN"] .guest text,html[lang="zh-CN"] .artwork text{font-size:18px}
html[lang="zh-CN"] .caption-zh{font-size:clamp(13px,.9vw,16px);line-height:1.7;margin-top:4px}
html[lang="zh-CN"] .sound-hint{font-size:11px}
html[lang="zh-CN"] #brand span{font-family:AftertoneCNSans,sans-serif;letter-spacing:.16em}
@media(max-width:700px){html[lang="zh-CN"] #welcome h1{font-size:clamp(34px,8.2vw,50px);margin:16px 0 22px}html[lang="zh-CN"] #welcome>p:not(.eyebrow){font-size:14px;line-height:1.85}html[lang="zh-CN"] .question-card h2{font-size:22px}html[lang="zh-CN"] #tools button,html[lang="zh-CN"] #guestNav button{font-size:12px}html[lang="zh-CN"] #options button{font-size:13px}html[lang="zh-CN"] .room-note h2{font-size:26px}}
@media(max-height:620px){html[lang="zh-CN"] #welcome h1{font-size:clamp(30px,6.5vh,45px);margin:10px 0 14px}html[lang="zh-CN"] #welcome>p:not(.eyebrow){font-size:13px;line-height:1.65}}
