:root{--night:#102b31;--wood:#4b3024;--stone:#dfd8c5;--gold:#ceb17a;--paper:#d6c7a6;--light:#f6dfb0;color:var(--stone);font-family:'Microsoft YaHei','PingFang SC',sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#081a1e}body{user-select:none;-webkit-user-select:none}button{font:inherit;color:inherit;border:0;cursor:pointer}button:focus-visible{outline:2px solid var(--light);outline-offset:4px}[hidden]{display:none!important}#game{position:relative;width:100%;height:100dvh;overflow:hidden;display:grid;place-items:center;background:#0e2429}#world-fill{position:absolute;inset:-20px;background:linear-gradient(#0d282944,#0a181b44),url('assets/concept-gallery.webp') center/cover;filter:blur(10px) brightness(.7)}#stage{width:min(100vw,177.7778dvh);height:min(100dvh,56.25vw);position:relative;overflow:hidden;isolation:isolate;touch-action:none;container-type:size}#world{display:block;width:100%;height:100%;touch-action:none}svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.hud-left,.hud-right{position:absolute;top:max(14px,env(safe-area-inset-top));display:flex;gap:6px;z-index:30}.hud-left{left:max(16px,env(safe-area-inset-left))}.hud-right{right:max(16px,env(safe-area-inset-right))}.icon-button{position:relative;width:46px;height:46px;padding:10px;background:radial-gradient(#112d31b3,#112d3100 75%);color:#edd8ab;filter:drop-shadow(0 2px 3px #000a)}.icon-button:hover{color:#fff1cd}.notebook-button{padding:8px}#note-dot{position:absolute;right:5px;top:4px;width:5px;height:5px;border-radius:50%;background:#f4dba6;box-shadow:0 0 8px #ffce6b}#scene-name{position:absolute;left:6%;top:12%;font:clamp(17px,2.4cqw,36px) KaiTi,STKaiti,'Songti SC',serif;color:#f5dfb6;text-shadow:0 2px 10px #000;pointer-events:none;opacity:0;transition:opacity .7s}#scene-name.show{opacity:1}#toast{position:absolute;bottom:9%;left:20%;right:20%;text-align:center;font-size:clamp(13px,1.65cqw,23px);color:#ffedc9;text-shadow:0 2px 5px #000,0 0 15px #071517;line-height:1.7;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;z-index:32}#toast.show{opacity:1;transform:none}#toast.error{color:#f2c5ab}#onboarding{position:absolute;bottom:5%;left:20%;right:20%;text-align:center;font-size:clamp(12px,1.4cqw,20px);text-shadow:0 2px 8px #000;color:#e7d9b6;opacity:1;transition:opacity .4s;pointer-events:none}#onboarding.dismissed{opacity:0}#rotate{position:absolute;width:46px;height:46px;border-radius:50%;background:#2a2620ed;color:#ffe5ab;border:1px solid #d7bd86;box-shadow:0 4px 15px #0008;padding:9px;z-index:15}#media-status{position:absolute;bottom:10px;left:14px;color:#e6e1ce7a;font-size:10px;pointer-events:none;z-index:5}#loading{position:absolute;inset:0;background:#102b31;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .5s}#loading span{font:56px KaiTi,serif;letter-spacing:10px;color:#eed4a1}#loading p{font:15px KaiTi,serif;letter-spacing:3px;color:#b2b7a6;margin-top:24px}#loading.done{opacity:0;pointer-events:none}#portrait{display:none;position:absolute;inset:0;z-index:200;background:radial-gradient(ellipse at center,#21454b,#0b2228);align-items:center;justify-content:center;flex-direction:column;color:#e7d6af}#portrait svg{width:85px;height:85px;stroke-width:1}#portrait p{font:27px KaiTi,serif;margin:30px 0 15px}#portrait small{font-size:13px;color:#b6c2ba}#choices{position:absolute;right:6%;bottom:14%;z-index:25;display:flex;flex-direction:column;gap:8px;align-items:flex-end}#choices button{font-size:clamp(13px,1.55cqw,22px);padding:12px 24px;background:linear-gradient(90deg,#162e2a00,#162e2aeb 20%,#162e2af5);color:#f1ddba;border-right:2px solid #bea171;min-height:44px;min-width:145px;text-align:right;text-shadow:0 1px 3px #000}#choices button:active{color:#fff1d6;background:#68553bd9}#dialogue{position:absolute;bottom:0;left:0;right:0;min-height:25%;padding:3.4% 10% 3.4%;background:linear-gradient(transparent,#071c20dc 30%,#071c20f0);z-index:25}#speaker{font:clamp(15px,1.6cqw,24px) KaiTi,serif;color:#e1c596;margin:0 0 8px}#line{font-size:clamp(15px,1.85cqw,27px);line-height:1.7;margin:0;max-width:1000px;text-shadow:0 2px 4px #000}#next-line{position:absolute;right:4%;bottom:18%;font-size:13px;padding:12px;background:transparent;color:#e5d6b4;min-height:44px}#next-line span{font:27px serif;margin-left:5px}#media-layer{position:absolute;inset:0;z-index:20;background:#091c25}#media-layer video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;visibility:hidden}#media-layer video.live{visibility:visible;z-index:1}#media-layer.waiting{z-index:0;pointer-events:none}#caption{position:absolute;left:12%;right:12%;bottom:7%;z-index:3;font-size:clamp(15px,1.9cqw,28px);text-align:center;color:#fff1d4;text-shadow:0 2px 4px #000;background:#0b1c2699;padding:8px}#caption:empty{display:none}#media-controls{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;pointer-events:none}#media-controls button{pointer-events:auto;background:#18353c;padding:14px 25px;border:1px solid #b89b68}.sr-only{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}dialog{color:var(--stone);border:0;box-shadow:0 20px 80px #0009}dialog::backdrop{background:#06171ed9;backdrop-filter:blur(5px)}.close{position:absolute;right:14px;top:5px;width:44px;height:44px;background:transparent;color:inherit;font:33px Georgia;z-index:10}#pause-panel{width:360px;max-width:88vw;max-height:94dvh;padding:22px 40px;background:linear-gradient(130deg,#1b393d,#10292d);text-align:center;border:1px solid #a48c6055}#pause-panel>button:not(.close){display:block;width:100%;padding:12px 8px;background:transparent;border-bottom:1px solid #b0aa8d26;font-size:16px;min-height:44px}.pause-title{font:48px KaiTi,serif;letter-spacing:8px;color:#edd4a1;margin:10px 0}#chapter-label{font-size:12px;color:#afbaad;margin:10px 0 20px}.build-note{font-size:11px;line-height:1.7;color:#abb6a8;margin:25px 0 0}#notes{width:min(1060px,92vw);height:88dvh;max-height:780px;padding:0;background:#cbbb98;color:#393428;border:1px solid #c4ae7e;border-radius:2px;overflow:hidden;user-select:text}#note-tabs{display:flex;padding:13px 60px 10px 22px;gap:8px;background:#af9b76;border-bottom:1px solid #705d3844;height:61px}#note-tabs button{padding:8px 14px;background:transparent;color:#413725;border-bottom:2px solid transparent;font:18px KaiTi,serif;min-height:40px}#note-tabs button.active{border-bottom-color:#5c4522;color:#241f14}#note-content{height:calc(100% - 61px);display:grid;grid-template-columns:44% 56%;background:linear-gradient(90deg,#d4c5a5 43.8%,#847352 44%,#b2a07d 44.3%,#d8c9a9 45%)}.note-left{padding:18px 26px;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:0}.note-left img{width:100%;height:calc(100% - 45px);object-fit:contain;filter:drop-shadow(0 4px 5px #3b2c2255)}.note-left span{font:15px KaiTi,serif;color:#655539}.note-right{overflow:auto;padding:22px 32px;overscroll-behavior:contain;touch-action:pan-y}.note-right h2{font:30px KaiTi,serif;margin:0 0 10px}.note-right h3{font:19px KaiTi,serif;margin:20px 0 8px;color:#644c2d}.note-right p{font-size:14px;line-height:1.9;margin:8px 0}.note-right details{font-size:12px;margin-top:20px;line-height:1.9}.note-right a{display:block;color:#665132;margin-top:8px;text-decoration-color:#66513266}.note-right .small{font-size:11px;color:#75654b}
@media(max-height:500px){.hud-left,.hud-right{top:7px}.icon-button{width:44px;height:44px}#scene-name{top:14%}#pause-panel{padding:10px 35px;width:340px}.pause-title{font-size:32px;margin:4px 0}#chapter-label{margin:4px 0 8px}#pause-panel>button:not(.close){padding:7px;font-size:14px;min-height:36px}.build-note{font-size:10px;margin-top:12px}#notes{height:94dvh}#note-tabs{height:50px;padding:5px 50px 5px 16px}#note-tabs button{font-size:15px;padding:6px 10px}#note-content{height:calc(100% - 50px)}.note-left{padding:12px 18px}.note-right{padding:14px 24px}.note-right h2{font-size:24px}.note-right h3{font-size:17px;margin-top:13px}.note-right p{font-size:12px}#dialogue{min-height:27%;padding-top:3%}#choices{bottom:10%}#choices button{padding:9px 20px}#media-status{font-size:9px;bottom:7px}}
@media(orientation:portrait) and (max-width:900px){#portrait{display:flex}#stage{visibility:hidden}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.build-stop{position:absolute;inset:0;z-index:26;display:grid;place-items:center;background:#071d25d9;backdrop-filter:blur(7px);padding:6%}.build-stop>div{max-width:650px;text-align:center}.stop-eyebrow{font-size:12px;color:#b7bca5;letter-spacing:3px}.build-stop h1{font:clamp(23px,3.5cqw,48px) KaiTi,STKaiti,serif;color:#f2dcac;margin:14px 0 18px}.build-stop p{font-size:clamp(13px,1.6cqw,21px);color:#cbd0be;line-height:1.9;margin:12px 0}.build-stop small{display:block;font-size:11px;color:#9fab9a}.build-stop nav{display:flex;justify-content:center;gap:14px;margin-top:24px}.build-stop button{min-height:44px;background:#2c4848;color:#f4e3bd;border:1px solid #b5a37570;padding:10px 20px}.build-stop button+button{background:transparent;color:#cbd0be}#stage:has(.build-stop:not([hidden])) #onboarding,#stage:has(.build-stop:not([hidden])) #scene-name{display:none}
#stage[data-chapter="2"] #toast{left:28%;right:7%;top:15%;bottom:auto;padding:5px 10px;background:#0a2229eb;font-size:clamp(12px,1.7cqw,23px);border-radius:3px}

#welcome{position:absolute;inset:0;z-index:90;background:linear-gradient(90deg,#061c25f0 0%,#0b2830c9 38%,#102a2c22 75%),url('assets/encounter.webp') center/cover;display:flex;align-items:center;padding:7% 10%}.welcome-copy{max-width:75%}.welcome-kicker{font-size:clamp(11px,1.25cqw,18px);letter-spacing:.18em;color:#cbb689;margin:0 0 1.5em}#welcome h1{font:clamp(54px,8.2cqw,120px) KaiTi,STKaiti,serif;letter-spacing:.18em;color:#f0d8a7;margin:0 0 .15em}.welcome-line{font:clamp(18px,2.25cqw,32px)/1.9 KaiTi,STKaiti,serif;letter-spacing:.12em;color:#e4dac3;margin:0 0 1.5em}#start-game{min-height:44px;min-width:190px;font-size:clamp(14px,1.5cqw,22px);padding:13px 24px;background:#d5bc86;color:#182d30;border:1px solid #f1d59f;box-shadow:0 5px 24px #0003;text-align:left}#start-game span{float:right;margin-left:2.8em}.welcome-tip{font-size:clamp(10px,1.1cqw,16px);color:#aabbb6;margin:1.8em 0 0}#goal{position:absolute;z-index:8;top:5%;left:17%;right:17%;text-align:center;font-size:clamp(12px,1.4cqw,20px);color:#f5e2bc;text-shadow:0 2px 7px #000;pointer-events:none}#open-actions{position:absolute;z-index:30;bottom:max(8px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));min-height:44px;padding:9px 16px;border:1px solid #c4b28566;background:#102c31c9;font-size:12px;color:#e6d7b5}#actions{width:600px;max-width:92vw;max-height:89dvh;overflow:auto;background:#17353a;border:1px solid #b5a17170;padding:20px 25px}#actions h2{font:27px KaiTi,serif;color:#e8d2a4;margin:0 0 10px}#actions p{font-size:12px;color:#bdc6b6;margin:0 40px 14px 0}#access-actions{display:flex;flex-wrap:wrap;gap:9px}#access-actions button{min-height:44px;padding:10px 15px;background:#29484a;border:1px solid #ae9b7166;color:#eedebc;font-size:14px}#stage:has(#media-layer:not([hidden])) #goal,#stage:has(#media-layer:not([hidden])) #onboarding{display:none}#stage[data-chapter="5"] #toast{bottom:5%;background:#0a2229e8;padding:5px 10px;left:20%;right:20%}#media-status{font-size:clamp(10px,1.05cqw,15px);color:#c5ccbc;bottom:15px}#pause-panel>button:not(.close){min-height:44px}
#stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
html,body,#game{overflow:clip}
#stage:has(#media-layer:not([hidden])) #open-actions{display:none}

#stage[data-intro="true"] #goal,#stage[data-intro="true"] #onboarding,#stage[data-intro="true"] #open-actions,#stage[data-intro="true"] #rotate{display:none}
#intro-dialog{position:absolute;left:0;right:0;bottom:0;z-index:25;padding:2% 7% 3%;background:linear-gradient(transparent,#071c20ed 22%);text-shadow:0 2px 5px #000}
#intro-speaker{font:clamp(14px,1.5cqw,23px) KaiTi,serif;color:#e1c596;margin:0 0 .4em}
#intro-text{font-size:clamp(14px,1.8cqw,27px);line-height:1.7;margin:0 0 .7em}
#intro-responses{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
#intro-responses button{min-height:44px;border:1px solid #bda3738c;padding:9px 20px;background:#17383ae8;color:#f5e4c3;font-size:clamp(13px,1.45cqw,21px)}
#intro-responses button:hover{background:#3d5147}
#pause-panel button:disabled{opacity:.4;cursor:default}
#credits{width:min(1000px,94vw);height:90dvh;padding:44px 0 0;background:#101414;border:1px solid #a48c6055;overflow:hidden}#credits iframe{display:block;border:0;width:100%;height:100%;background:#101414}

.ending-replay{position:absolute;z-index:8;left:50%;top:80%;transform:translate(-50%,-50%);width:clamp(130px,15%,240px);min-height:44px;padding:.65em 1.1em;border:1px solid #d8bd83aa;border-radius:3px;background:#123239d9;color:#f2dcac;font:clamp(16px,1.65vw,28px) KaiTi,STKaiti,serif;box-shadow:0 3px 16px #071b2266;cursor:pointer}.ending-replay:hover,.ending-replay:focus-visible{background:#245058;color:#fff1c9;border-color:#f5dba1;outline:2px solid #f0d298;outline-offset:4px}

#stage[data-chapter="0"][data-intro="false"] #toast{top:82%;bottom:auto;left:30%;right:30%;font-size:clamp(11px,1.25cqw,20px);line-height:1.5}#stage[data-chapter="0"][data-intro="false"] #onboarding{display:none}
