@font-face{font-family:DreamSerif;src:local("Noto Serif CJK SC"),local("Source Han Serif SC"),local("STSong"),local("SimSun");font-display:swap}
:root{color-scheme:dark;--ink:#0d181d;--paper:#f0e8d7;--muted:#b1b5ad;--gold:#d0b483;--line:rgba(212,186,139,.25);font-family:"Microsoft YaHei UI","PingFang SC",sans-serif;font-size:16px;color:var(--paper);background:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{color:inherit;cursor:pointer;background:transparent;border:0}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}a{color:inherit;text-decoration:none}button:hover,a:hover{color:#fbe0a8}button{transition:color .2s,background .2s,transform .2s}button:active{transform:translateY(1px)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 5px;border:1px solid #bcc3bb44;border-radius:3px;font:12px/1.2 inherit;color:#dbdcd0;background:#0b151b66}small{font-size:12px}.stage-frame{position:relative;width:100%;height:100dvh;min-height:420px;overflow:hidden;background:#13232a}#viewport,#viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}.legacy-canvas{position:absolute!important;width:1px;height:1px;opacity:0;pointer-events:none;left:-10px}.cinematic-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 62% 42%,transparent 20%,#07121b35 60%,#07121bba 110%),linear-gradient(0deg,#081116e8,transparent 24%,transparent 80%,#08111666);transition:opacity 1s}.film-grain{position:absolute;inset:0;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}
.topbar{position:absolute;z-index:6;top:0;left:0;width:100%;padding:30px 42px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:14px;font:24px Georgia,serif;letter-spacing:1px}.brand-symbol{display:grid;place-items:center;width:41px;height:45px;color:var(--gold);border:1px solid #c6a67575;outline:1px solid #c6a67535;outline-offset:3px;font:26px DreamSerif,serif}.brand small{display:block;font:10px sans-serif;letter-spacing:3px;margin-top:5px;color:#c9c4b4}.chapter-indicator{display:flex;align-items:center;gap:20px;color:#e0decec9;font-size:12px;letter-spacing:3px}.line{width:45px;height:1px;background:var(--line)}.toolbar{display:flex;align-items:center;gap:17px;font-size:13px;color:#e3e0d3}.toolbar button{padding:10px 0}.toolbar span{margin-left:8px;color:var(--gold)}.overline{font-size:11px;letter-spacing:3px;color:var(--gold);font-weight:500}.title-screen{position:absolute;z-index:4;top:23%;left:9%;width:410px}.title-screen:before{content:"";position:absolute;inset:-40vh -70px -30vh -20vw;background:linear-gradient(90deg,#07141ae6 28%,#07141a66 65%,transparent);z-index:-1;pointer-events:none}.title-rule{height:1px;width:45px;background:var(--gold);margin:25px 0}.title-screen h1{font-family:DreamSerif,"STKaiti","KaiTi",serif;font-size:clamp(64px,6.5vw,106px);font-weight:400;letter-spacing:10px;line-height:1.22;text-shadow:0 2px 32px #060d1280}.title-screen h1 span{display:block;padding-left:45px}.title-poem{font:15px/2.2 DreamSerif,serif;letter-spacing:5px;color:#c7ccc2;margin:22px 0 32px}.main-menu{display:flex;flex-direction:column;align-items:stretch;width:286px;gap:6px}.main-menu button{padding:13px 18px;text-align:left;font-family:DreamSerif,serif;font-size:19px;letter-spacing:3px;display:flex;align-items:center;position:relative}.main-menu button small{font:9px/1 sans-serif;letter-spacing:1.8px;margin-left:auto;color:#b7bcb187}.main-menu button:not(.primary-menu){padding-left:33px}.main-menu button:hover{background:#d4b6800c}.main-menu .primary-menu{border-top:1px solid #d4b68080;border-bottom:1px solid #d4b68050;background:linear-gradient(90deg,#b79a652f,transparent);color:#ecd4a7;margin-bottom:8px;padding:18px 14px}.menu-diamond{font:16px sans-serif;margin-right:10px}.menu-arrow{position:absolute;right:-30px;color:var(--gold);opacity:0;transition:.2s}.primary-menu:hover .menu-arrow{right:-14px;opacity:1}.edition{margin-top:32px;display:flex;gap:9px;align-items:center;color:#d3d8ce80;font-size:11px;letter-spacing:2px}.status-dot{height:5px;width:5px;border-radius:50%;background:#b6c0a0;box-shadow:0 0 9px #d2ca96}.landscape-caption{position:absolute;right:7%;bottom:17%;display:flex;align-items:center;gap:20px;pointer-events:none;text-shadow:0 2px 12px #000}.landscape-caption>span{font:56px DreamSerif,serif;color:#cfb37c;border-right:1px solid #c9b47f66;padding-right:25px}.landscape-caption small{font-size:10px;letter-spacing:3px;color:#ced0c2}.landscape-caption strong{display:block;font:27px DreamSerif,serif;letter-spacing:6px;margin-top:10px}.landscape-caption p{font-size:12px;color:#c6c9bd;letter-spacing:2px;margin-top:9px}.menu-footer{position:absolute;bottom:25px;left:42px;right:42px;display:flex;justify-content:space-between;color:#b5bcb98c;font-size:10px;letter-spacing:2px}.menu-footer i{padding:0 12px;font-style:normal;color:#c1a47666}.menu-footer a{color:#cfcabb}
#hud{position:absolute;inset:0;pointer-events:none;z-index:3}#hud button{pointer-events:auto}.quest-tracker{position:absolute;left:42px;top:138px;max-width:295px;padding:17px 20px 19px 17px;border-left:1px solid #c3a6726b;background:linear-gradient(90deg,#07131ad9,transparent)}.quest-tracker .overline{font-size:10px;letter-spacing:2px}.quest-tracker .overline span{margin:0 6px}.quest-tracker h2{font:21px DreamSerif,serif;letter-spacing:2px;margin:14px 0 10px}.quest-tracker>p:not(.overline){font-size:13px;line-height:1.9;color:#d0d2c5}.quest-tracker button{font-size:11px;color:#d0b483a0;margin-top:14px;padding:0}.quest-tracker kbd{margin-left:9px;height:19px;min-width:19px;font-size:10px}.compass{position:absolute;right:42px;top:116px;display:flex;flex-direction:column;align-items:center;gap:6px}.compass>span{font:12px DreamSerif,serif;color:var(--gold)}#minimap{width:125px;height:125px;border-radius:50%;border:1px solid #cdb78280;box-shadow:0 0 0 5px #080e1355,0 0 0 6px #cdb78225;background:#0c1b24ad}.compass strong{font:17px DreamSerif,serif;letter-spacing:3px;margin-top:8px;text-shadow:0 2px 6px #000}.compass small{font-size:10px;color:#b7c0b7;letter-spacing:2px}.player-status{position:absolute;bottom:72px;left:42px;display:flex;align-items:center;gap:18px}.player-sigil{width:50px;height:50px;border:1px solid #c6ab79;display:grid;place-items:center;border-radius:50%;font:27px DreamSerif,serif;background:#101f26aa;box-shadow:0 0 0 4px #08151b80,0 0 0 5px #a7905b44}.vitals{width:208px}.player-name{font:17px DreamSerif,serif;letter-spacing:2px;margin-bottom:10px}.player-name small{font:10px sans-serif;color:#babaa4;margin-left:12px;letter-spacing:1px}.bar{height:4px;background:#aebab222;margin-top:6px;transform:skewX(-20deg);overflow:hidden}.bar i{display:block;height:100%;width:100%;transition:width .4s}.bar.hp i{background:linear-gradient(90deg,#819e7d,#b6cda8);box-shadow:0 0 10px #b7c59655}.bar.mp{height:2px}.bar.mp i{background:#80afb3}#vitals-text{display:block;font:9px/1 monospace;letter-spacing:2px;color:#b8c3b5;margin-top:9px}.quick-actions{position:absolute;right:42px;bottom:64px;display:flex;gap:23px}.quick-actions button{font-size:10px;color:#cfd0c0;padding:0}.quick-actions button>span{display:grid;place-items:center;border:1px solid #c6b08170;border-radius:50%;width:39px;height:39px;margin:0 auto 9px;font:18px DreamSerif,serif;background:#08151a66}.quick-actions kbd{height:15px;min-width:15px;font-size:8px;margin-left:4px;padding:0 3px}.controls-hint{position:absolute;bottom:22px;left:42px;display:flex;align-items:center;gap:22px;color:#b4c0b582;font-size:10px;letter-spacing:1px}.controls-hint kbd{height:16px;min-width:16px;font-size:8px;padding:0 3px;margin-right:2px;color:#c7cebf99}.controls-hint button{font-size:10px;color:#c3c4ad80;padding:0}.interaction{position:absolute;left:50%;bottom:20%;transform:translateX(-50%);background:#0d1a21d9;box-shadow:0 4px 30px #05101566;backdrop-filter:blur(12px);border:1px solid #c7b17d6b;padding:12px 20px;display:flex;align-items:center;gap:15px;font:17px DreamSerif,serif;letter-spacing:2px}.interaction kbd{color:#f4dfb2;border-color:#c6a979}
.actor-label{position:absolute;transform:translate(-50%,-100%);font-size:11px;letter-spacing:2px;text-shadow:0 2px 4px #000,0 0 9px #000;pointer-events:none;white-space:nowrap;color:#eee5c9;padding-bottom:12px}.actor-label:after{content:"◇";position:absolute;bottom:-2px;left:50%;font-size:10px;color:#d7c08e;transform:translateX(-50%)}.actor-label.portal{font-size:10px;color:#e3cd9b}.dialogue{position:absolute;z-index:8;left:9%;right:9%;bottom:7%;padding:25px 30px;display:flex;align-items:flex-start;gap:26px;background:linear-gradient(100deg,#0a1823f5,#101f29ed);backdrop-filter:blur(15px);border-top:1px solid #c4a67580;border-bottom:1px solid #c4a6754f;box-shadow:0 12px 90px #0006}.dialogue-mark{font:34px DreamSerif,serif;color:#c8a87645;border:1px solid #c8a87630;padding:8px;align-self:center}.dialogue>div{flex:1}#dialogue-speaker{font:21px DreamSerif,serif;letter-spacing:3px;color:#e2c48c;margin-bottom:14px}#dialogue-text{font:17px/1.95 DreamSerif,"Microsoft YaHei",serif;letter-spacing:.7px;white-space:pre-line;max-width:930px}.dialogue button{align-self:flex-end;font-size:11px;white-space:nowrap;color:#c4cabb}.dialogue button kbd{margin-left:7px}.chapter-screen{position:absolute;z-index:5;left:10%;top:33%;width:38%;pointer-events:auto}.chapter-screen h2{font:80px DreamSerif,serif;letter-spacing:10px;font-weight:400;margin:24px 0}.chapter-screen>p:not(.overline){color:#c7cfc6;font:18px/2 DreamSerif,serif;letter-spacing:2px;margin-bottom:35px}.gold-button{min-height:43px;padding:12px 24px;border:1px solid #b69c6e88;background:linear-gradient(100deg,#ac885b33,#89754b11);color:#efd6a9;letter-spacing:2px;font-size:14px}.gold-button span{margin-left:30px}.gold-button:hover{background:#ac885b44}.arcade-screen{position:absolute;z-index:5;inset:22% 10% auto;text-align:center}.arcade-screen h2{font:50px DreamSerif,serif;letter-spacing:8px;margin:20px 0}.arcade-screen>p:not(.overline){font:15px DreamSerif,serif;color:#c1c9ba;letter-spacing:3px}.arcade-options{display:flex;gap:20px;margin:40px auto 30px;max-width:940px}.arcade-options button{flex:1;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;border:1px solid #b7a17455;background:linear-gradient(135deg,#16282deb,#101c22ca);backdrop-filter:blur(8px)}.arcade-options button:hover,.arcade-options button.active{border-color:#cfb780;background:#213432dc}.arcade-options b{font:46px DreamSerif,serif;color:#bda478}.arcade-options strong{font:23px DreamSerif,serif;letter-spacing:3px}.arcade-options span{font-size:12px;color:#b5c2b5}.text-button{font-size:13px;color:#d2bd92;padding:10px 0}.battle-hud{position:absolute;left:25%;right:25%;top:118px;text-align:center;pointer-events:none}.battle-health{display:flex;justify-content:space-between;font:18px DreamSerif,serif}.battle-health b{display:block;font:25px/1.8 sans-serif;color:#d2c19e;letter-spacing:7px}.battle-hud p{font-size:12px;color:#c2c8ba;line-height:1.9}.battle-result{position:absolute;top:calc(38vh - 118px);left:0;right:0;padding:35px;background:#0b1a24e8;border-block:1px solid #d8bc8180;pointer-events:auto}.battle-result h2{font:32px DreamSerif,serif;margin-bottom:20px}
.modal-shell{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;background:#030c13ad;backdrop-filter:blur(10px);padding:30px}.panel{width:min(940px,94vw);max-height:86dvh;overflow:auto;background:linear-gradient(130deg,#192a30fa,#101c25fa);border:1px solid #bc9e635a;box-shadow:0 15px 100px #0007;padding:32px 38px}.panel>header{display:flex;justify-content:space-between;align-items:flex-start}.panel h2{font:32px DreamSerif,serif;font-weight:400;letter-spacing:5px;margin-top:10px}.close-button{font:32px/1 sans-serif;color:#c4c8bc;padding:0 5px}.panel-tabs{display:flex;gap:34px;border-bottom:1px solid var(--line);margin:28px 0 25px}.panel-tabs button{padding:12px 3px;color:#abb8b0;font-size:15px;letter-spacing:3px;border-bottom:2px solid transparent}.panel-tabs button.active{color:#e4c895;border-bottom-color:#d5b67d}.panel-content{min-height:230px}.panel>footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:26px;padding-top:20px;gap:15px}.panel>footer>span{font-size:11px;color:#9ea99e}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.stat{padding:18px 20px;background:#819e9e08;border-bottom:1px solid #b09c7030}.stat small{display:block;color:#a9b6a8;font-size:12px;letter-spacing:2px}.stat strong{font:30px/1.7 Georgia,serif;color:#ebd7ac}.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.inventory-item{padding:17px 14px;min-height:88px;border:1px solid #bbab802e;background:#afc1ab05;display:flex;align-items:center;gap:12px;text-align:left}.inventory-item.selected{border-color:#d5bd8488;background:#ac946018}.item-seal{display:grid;place-items:center;font:25px DreamSerif,serif;color:#c5af7d;width:36px;height:40px;background:#91a2910c;border:1px solid #a7aa8933;flex-shrink:0}.inventory-item strong{font-weight:400;font-size:13px;line-height:1.7}.inventory-item small{display:block;color:#9aaf9c;margin-top:6px;font-size:10px}.inventory-item>span:last-child{margin-left:auto;color:#dbc38e;font:18px Georgia}.item-action{margin-top:20px;display:flex;align-items:center;gap:20px}.item-action p{font-size:12px;color:#aab7a9;line-height:1.9}.quest-entry{border-left:1px solid #bea57655;padding:5px 20px 20px;margin-bottom:20px}.quest-entry h3{font:21px DreamSerif,serif;color:#e3d0a6;letter-spacing:2px;margin-bottom:9px}.quest-entry>p{font-size:13px;line-height:1.9;color:#b4bfb3}.checkpoint{display:flex;gap:14px;margin-top:12px;font-size:13px;color:#c5cbbb}.checkpoint.done{color:#8fb397}.checkpoint em{font-style:normal;color:#bba376}.save-mode{display:flex;gap:16px;margin-bottom:15px}.save-mode button{border:1px solid var(--line);padding:8px 22px;font-size:13px}.save-mode button.active{background:#b49a6325;color:#dec596}.save-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.save-slot{padding:0 0 15px;text-align:left;border:1px solid #c4ad7638;background:#adc9ad05;overflow:hidden}.save-slot:hover,.save-slot.selected{border-color:#ccb47e80}.save-slot img,.empty-preview{width:100%;aspect-ratio:1.45;object-fit:cover;display:block;background:#0b1921}.empty-preview{display:grid;place-items:center;font:30px DreamSerif,serif;color:#b7a3794d}.save-slot strong{display:block;font:17px DreamSerif,serif;padding:12px 12px 6px;color:#deceaa}.save-slot small{display:block;color:#9fae9e;padding:0 12px;line-height:1.9;font-size:10px}.save-confirm{margin-top:22px;padding:18px;border:1px solid #c5aa6c50;background:#0a171a80;display:flex;align-items:center;gap:18px}.save-confirm p{flex:1;font-size:14px}.settings-panel{width:550px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0;border-bottom:1px solid var(--line)}.setting-row strong,.setting-row label{font-size:15px;font-weight:400}.setting-row small{display:block;margin-top:8px;color:#9cafa4;font-size:11px}.setting-row button,select{padding:9px 15px;border:1px solid #c1aa773a;color:#dfc79a;font-size:13px;background:#101e25}input[type=range]{accent-color:#c6ad7a;width:150px}.classic-link{display:block;color:#b7bdac;font-size:12px;margin-top:26px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin:28px 0}.guide-grid h3{font:21px DreamSerif,serif;letter-spacing:2px;color:#d4ba87;margin-bottom:15px}.guide-grid p{font-size:14px;line-height:2;margin-bottom:16px;color:#bdc7bc}.guide-note{font-size:12px;color:#9da99d;border-top:1px solid var(--line);padding-top:20px;line-height:2;margin-bottom:20px}
#toast{position:absolute;z-index:20;left:50%;top:95px;transform:translateX(-50%);max-width:90%;padding:14px 26px;background:#0b1b23f2;border:1px solid #b6a16c6b;color:#ecd5a9;font-size:14px;letter-spacing:1px;box-shadow:0 6px 25px #0004}#scene-fade{position:absolute;inset:0;pointer-events:none;background:#071016;opacity:0;z-index:10}.loading{position:absolute;inset:0;z-index:30;background:radial-gradient(ellipse at center,#1a2c31,#0a151d 70%);display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-seal{font:52px DreamSerif,serif;color:var(--gold);border:1px solid #bda67555;padding:10px;outline:1px solid #bda67520;outline-offset:5px;margin-bottom:30px}.loading h2{font:32px DreamSerif,serif;letter-spacing:8px;margin:18px 0 30px}.loading-track{width:190px;height:1px;background:#c8af8233;overflow:hidden}.loading-track i{display:block;background:#d3b77f;width:40%;height:100%;animation:loading 2s ease-in-out infinite}.loading>p:not(.overline){font-size:12px;color:#94a89e;margin-top:20px;max-width:80%;text-align:center;line-height:1.9}.loading a{font-size:12px;color:#c5bb9a;margin-top:40px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.touch-controls{display:none;position:absolute;left:20px;right:20px;bottom:20px;justify-content:space-between;align-items:end;pointer-events:none;z-index:7}.touch-controls button{pointer-events:auto;border:1px solid #b8ab8255;background:#0b1a2388;backdrop-filter:blur(8px);width:43px;height:43px;font-size:16px;border-radius:6px;touch-action:none}.touch-controls button.is-held{background:#b2984b66}.touch-dpad{display:grid;grid-template-columns:repeat(3,43px);gap:4px}.touch-dpad button:first-child{grid-column:2}.touch-dpad button:nth-child(2){grid-row:2;grid-column:1}.touch-dpad button:nth-child(3){grid-row:2;grid-column:2}.touch-dpad button:nth-child(4){grid-row:2;grid-column:3}.touch-buttons{display:flex;gap:7px}.touch-buttons button{font-size:12px}.playing .landscape-caption,.playing #menu-footer{display:none}.playing .cinematic-vignette{opacity:.7}body[data-scene="characterEnter"] .cinematic-vignette{background:linear-gradient(90deg,#08151a,transparent 80%)}@keyframes loading{0%{transform:translateX(-100%)}100%{transform:translateX(360%)}}
.menu-footer button{font-size:10px;letter-spacing:2px;padding:0}.menu-selected{color:#f0d39c!important;text-shadow:0 0 15px #bd9b6355}.main-menu .menu-selected{background:linear-gradient(90deg,#b09a6025,transparent)}.legacy-art{margin-top:28px;max-height:55dvh;overflow:auto;text-align:center;background:#08131a}.legacy-art canvas{max-width:100%;height:auto}.title-screen{top:19%}.title-screen h1{font-size:clamp(64px,5.8vw,94px);line-height:1.13}.title-rule{margin:18px 0}.title-poem{margin:20px 0 25px}.edition{margin-top:24px}
@media(max-height:790px) and (min-width:761px){.title-screen{top:19%}.title-screen h1{font-size:70px;line-height:1.05}.title-rule{margin:15px 0}.title-poem{font-size:13px;margin:18px 0}.main-menu button{padding-top:10px;padding-bottom:10px}.main-menu .primary-menu{padding-top:13px;padding-bottom:13px}.edition{margin-top:20px}.quest-tracker{top:110px}.compass{top:95px}.chapter-screen{top:28%}}
@media(max-width:1000px){.chapter-indicator{display:none}.topbar{padding:25px 28px}.quest-tracker{left:25px;max-width:235px}.compass{right:28px}.quick-actions{right:28px;gap:14px}.player-status{left:28px}.controls-hint{left:28px}.panel{padding:25px}.save-slots{gap:7px}.save-slot strong{font-size:14px}.dialogue{left:5%;right:5%}.title-screen{left:8%}.landscape-caption{right:5%}.chapter-screen h2{font-size:58px}}
@media(max-width:760px){.topbar{padding:22px}.brand{font-size:20px}.brand-symbol{width:32px;height:36px;font-size:22px}.brand small{font-size:8px}.toolbar{font-size:11px;gap:14px}.title-screen{top:22%;left:9%;width:82%}.title-screen h1{font-size:74px;letter-spacing:8px}.title-screen h1 span{padding-left:32px}.title-poem{font-size:13px;line-height:2.1;margin:20px 0 23px}.title-rule{margin:17px 0}.title-screen>.overline{font-size:9px}.main-menu{width:255px}.main-menu button{font-size:17px;padding-top:11px;padding-bottom:11px}.main-menu .primary-menu{padding-top:15px;padding-bottom:15px}.edition{margin-top:23px;font-size:10px}.landscape-caption{display:none}.menu-footer{left:22px;right:22px;bottom:22px;font-size:9px;letter-spacing:1px}.menu-footer>span:nth-child(2){display:none}.quest-tracker{left:20px;top:105px;max-width:215px;padding:12px}.quest-tracker h2{font-size:17px;margin-top:10px}.quest-tracker>p:not(.overline){font-size:11px}.quest-tracker .overline{font-size:8px}.quest-tracker button{font-size:10px;margin-top:8px}.compass{right:20px;top:107px;gap:3px}#minimap{width:80px;height:80px}.compass strong{font-size:12px;letter-spacing:1px}.compass small{font-size:8px}.compass>span{font-size:9px}.player-status{left:22px;bottom:130px;gap:10px}.player-sigil{width:34px;height:34px;font-size:21px}.vitals{width:126px}.player-name{font-size:14px;letter-spacing:1px;margin-bottom:6px}.player-name small{display:none}#vitals-text{font-size:8px}.quick-actions{right:20px;bottom:138px;gap:12px}.quick-actions button{font-size:9px}.quick-actions button>span{width:31px;height:31px;font-size:14px;margin-bottom:6px}.quick-actions kbd{display:none}.quick-actions button:first-child{display:none}.controls-hint{display:none}.playing .touch-controls{display:flex}.interaction{bottom:27%;padding:10px 12px;font-size:14px;max-width:90%;white-space:nowrap;gap:10px}.actor-label{font-size:10px}.dialogue{bottom:23%;left:5%;right:5%;padding:19px 18px;gap:0}.dialogue-mark{display:none}#dialogue-speaker{font-size:18px;margin-bottom:10px}#dialogue-text{font-size:14px;line-height:1.9}.dialogue button{margin-left:10px;font-size:10px}.dialogue button kbd{display:none}.panel{padding:24px 20px;max-height:90dvh;width:95vw}.modal-shell{padding:10px}.panel h2{font-size:26px}.panel .overline{font-size:9px}.panel-tabs{gap:22px;margin:20px 0}.panel-tabs button{font-size:13px;letter-spacing:2px}.panel>footer{align-items:flex-start}.panel>footer>span{font-size:10px;max-width:60%;line-height:1.8}.panel>footer button{font-size:11px;white-space:nowrap}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:15px}.stat strong{font-size:26px}.inventory-grid{grid-template-columns:repeat(2,1fr)}.inventory-item{padding:10px;gap:8px}.inventory-item strong{font-size:11px}.item-seal{width:28px;font-size:20px}.save-slots{grid-template-columns:repeat(2,1fr);gap:10px}.save-slot img,.empty-preview{aspect-ratio:2}.save-slot small{font-size:10px}.save-confirm{flex-wrap:wrap;gap:10px;padding:12px}.save-confirm p{flex-basis:100%;line-height:1.7}.guide-grid{grid-template-columns:1fr;gap:20px}.guide-grid p{font-size:13px}.guide-grid h3{font-size:19px}.chapter-screen{left:8%;width:84%;top:23%}.chapter-screen h2{font-size:55px}.chapter-screen>p:not(.overline){font-size:16px;max-width:280px}.arcade-screen{inset:16% 7% auto}.arcade-screen h2{font-size:36px}.arcade-screen>p:not(.overline){font-size:12px;letter-spacing:1px}.arcade-options{flex-direction:column;margin:22px 0;gap:10px}.arcade-options button{min-height:100px;display:grid;grid-template-columns:50px 1fr;text-align:left;gap:8px 16px;padding:16px 25px}.arcade-options b{grid-row:span 2;font-size:40px}.arcade-options strong{font-size:20px;align-self:end}.arcade-options span{font-size:11px;align-self:start}.battle-hud{left:12%;right:12%;top:112px}.battle-health{font-size:14px}.battle-health b{font-size:19px}.battle-hud p{font-size:11px}#toast{top:85px;padding:12px 17px;font-size:12px;width:max-content;max-width:90%}}
@media(max-height:550px){.title-screen{top:20%;left:8%;width:420px}.title-screen h1{font-size:46px;display:flex;gap:10px}.title-screen h1 span{padding:0}.title-rule,.title-poem,.edition{display:none}.title-screen>.overline{margin-bottom:16px}.main-menu{margin-top:20px;width:280px;gap:0}.main-menu button{font-size:15px;padding-top:8px;padding-bottom:8px}.main-menu .primary-menu{padding-top:9px;padding-bottom:9px}.topbar{padding:17px 24px}.menu-footer{bottom:14px}.quest-tracker{top:85px}.compass{top:82px}#minimap{width:73px;height:73px}.player-status{bottom:47px}.quick-actions{bottom:45px}.controls-hint{bottom:14px}.dialogue{bottom:8%;padding:18px 25px}#dialogue-text{font-size:14px}.chapter-screen{top:28%}.chapter-screen h2{font-size:48px;margin:14px 0}.chapter-screen>p:not(.overline){font-size:14px;margin-bottom:20px}.arcade-screen{inset:19% 12% auto}.arcade-screen h2{font-size:30px;margin:10px 0}.arcade-options{flex-direction:row;margin:20px 0}.arcade-options button{min-height:145px;padding:12px;display:flex;gap:9px}.arcade-options b{font-size:29px}.arcade-options strong{font-size:17px;align-self:center}.arcade-options span{font-size:10px;align-self:center}.arcade-screen>.overline{display:none}.playing .touch-controls{bottom:12px}.playing .player-status{bottom:110px}.playing .quick-actions{bottom:110px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.film-grain{display:none}}

/* Inventory seals use small line illustrations so every item remains legible at a glance. */
.inventory-item .item-seal{display:grid;place-items:center;width:48px;height:48px;padding:5px;border-radius:50%;background:radial-gradient(circle,#cdb57b16,#18282a00 72%);border-color:#cdb57b55}
.item-icon{width:38px;height:38px;fill:none;stroke:#d6bd82;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #c7a85d55)}
.item-icon-herb{stroke:#a9c99b}.item-icon-food{stroke:#e0bb76}.item-icon-jar{stroke:#9ec2c1}.item-icon-scroll{stroke:#c9b9d2}
.inventory-item .item-copy{min-width:0}.inventory-item .item-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-item .item-count{margin-left:auto;flex-shrink:0}
.item-action kbd{margin-left:6px;font-size:10px;color:#192522;background:#e2cd9b33;border-color:#ddc89366}
@media(max-width:760px){.inventory-grid{gap:8px}.inventory-item{min-height:84px}.inventory-item .item-seal{width:38px;height:38px;padding:4px}.item-icon{width:30px;height:30px}.inventory-item .item-copy small{line-height:1.45}.item-action{align-items:flex-start;flex-wrap:wrap;gap:8px}.item-action p{flex-basis:100%;margin:0}}
@media(max-width:760px){.inventory-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.inventory-item{min-width:0;width:100%;overflow:hidden}.inventory-item .item-copy{overflow:hidden;min-width:0}.inventory-item .item-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.inventory-item.item-used{animation:item-use-seal .52s ease-out}.inventory-item.item-used .item-seal{border-color:#f0d28c;box-shadow:0 0 0 5px #d9b76c22,0 0 22px #d9b76c88}.inventory-item.item-used .item-icon{filter:drop-shadow(0 0 9px #f2d18a)}
@keyframes item-use-seal{0%{transform:scale(1)}35%{transform:scale(1.025)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.inventory-item.item-used{animation:none}}
/* Visible original-art carousel; the existing circular menu and actions stay intact. */
body #title-screen.title-screen .menu-orbit{width:min(43vw,560px);transform:translateY(-34px)}
body #title-screen.title-screen .menu-art{background-image:radial-gradient(ellipse,#233d3d,#0a1c23);}
#title-screen .menu-art #menu-portrait{display:block;width:100%;height:100%;object-fit:cover;object-position:center 24%;transition:opacity .35s ease;filter:saturate(.87)}
body #title-screen.title-screen .menu-seal{top:88%;width:11%;font-size:23px}
#title-screen .menu-gallery{position:absolute;left:50%;bottom:-108px;transform:translateX(-50%);width:min(100%,410px);z-index:4;text-align:center;pointer-events:auto}
.menu-gallery-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font:12px DreamSerif,serif;letter-spacing:2px;color:#e1c997}
#menu-portrait-play{font-size:11px;letter-spacing:1px;padding:5px 9px;border:1px solid #b99c6566;border-radius:3px;background:#0b2025a8}
#menu-portrait-play:disabled{opacity:.65;cursor:default}
.menu-portrait-choices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.menu-portrait-choices button{display:flex;flex-direction:column;align-items:center;gap:5px;color:#c7c8b9;padding:5px 3px;border:1px solid #bca16a33;border-radius:4px;background:#0c2128bd;transition:background .2s,border-color .2s}
.menu-portrait-choices img{width:37px;height:42px;object-fit:cover;object-position:center 23%;border-radius:2px}
.menu-portrait-choices span{font:11px DreamSerif,serif;letter-spacing:1px}
.menu-portrait-choices button[aria-pressed=true]{border-color:#dfc17d;background:#a98c432f;color:#efdba7;box-shadow:0 0 12px #d2b6781c}
#title-screen .menu-gallery button:focus-visible{outline:2px solid #efd294;outline-offset:3px}
.menu-portrait-timer{height:2px;margin-top:9px;background:#c9ae7223;overflow:hidden}.menu-portrait-timer i{display:block;width:0;height:100%;background:#c7b07a}
.menu-gallery[data-paused=true] .menu-portrait-timer{opacity:.35}
/* Flower spirit tracks only reported batch progress. Waiting never invents a percent. */
#loading{padding:34px 24px;overflow-y:auto;background:radial-gradient(ellipse at 38% 40%,#203a38,#0a161d 70%)}
#loading .loading-journey{display:grid;grid-template-columns:240px minmax(0,420px);gap:clamp(32px,5vw,78px);align-items:center;max-width:100%;margin:auto}
#loading .loading-memory-art{position:relative;align-self:stretch;min-height:370px;max-height:470px;border:1px solid #b4a07044;box-shadow:0 16px 48px #0004;background:linear-gradient(140deg,#273e38,#0b1c22);overflow:hidden}
#loading-memory-portrait{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center top;opacity:.85;mask-image:linear-gradient(#000 65%,#0003)}
#loading .loading-memory-art>span{position:absolute;bottom:22px;left:22px;font:30px DreamSerif,serif;color:#d3b680;border:1px solid #a7926366;padding:7px 10px}
#loading .loading-journey-copy{min-width:0;text-align:left}
#loading h2{font-size:37px;letter-spacing:6px;margin:14px 0 92px}
#loading .loading-track{position:relative;width:100%;height:3px;overflow:visible;background:#a9ad8429;--loader-position:50%;border-radius:3px}
#loading .loading-track>i{width:var(--loader-position);height:100%;animation:none;transform:none;transition:width .35s ease;background:linear-gradient(90deg,#72835b,#d9bc83);border-radius:3px}
#loading-guide{position:absolute;left:var(--loader-position);top:-83px;width:72px;height:86px;transform:translateX(-50%);transition:left .35s ease;pointer-events:none;filter:drop-shadow(0 4px 6px #101d1d88)}
#loading-guide img{width:72px;height:86px;object-fit:cover;object-position:center 32%;mask-image:radial-gradient(ellipse 57% 58%,#000 47%,transparent 83%);animation:huaying-hover 3.4s ease-in-out infinite}
#loading-guide b{position:absolute;bottom:2px;left:0;width:100%;text-align:center;font:10px DreamSerif,serif;letter-spacing:3px;color:#e5d3a4}
#loading-guide:after{content:'';position:absolute;bottom:-4px;left:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#e9d7a0;box-shadow:0 0 12px #d9e0a3}
#loading-guide.art-unavailable{height:30px;top:-27px}
#loading[data-progress=waiting] .loading-track>i,#loading[data-progress=error] .loading-track>i{width:0}
#loading[data-progress=waiting] .loading-track{background:repeating-linear-gradient(90deg,#9dac783d 0 10px,transparent 10px 16px)}
#loading[data-progress=error] #loading-guide img{animation:none;filter:saturate(.45)}
#loading-phase{font:11px/1.7 sans-serif;color:#d8c59f;margin:15px 0 7px;letter-spacing:1px}
#loading-detail{font:13px/1.8 sans-serif;color:#b9c8bb;margin:0;min-height:2em}
#loading-retry{margin-top:16px}
#loading .loading-memory-copy{margin-top:25px;padding-top:20px;border-top:1px solid #b7a77a30}
#loading-memory-kicker{font:10px sans-serif;color:#a6b39b;letter-spacing:3px}
#loading-memory-title{font:21px DreamSerif,serif;color:#dfd0ac;margin:10px 0}
#loading-memory-text{font:14px/1.9 DreamSerif,serif;color:#b9c3b5;max-width:360px}
#loading .loading-journey-copy>a{display:inline-block;margin-top:27px;font-size:11px;color:#c5bb9a}
@keyframes huaying-hover{50%{transform:translateY(-5px) rotate(-3deg)}}
@media(max-width:760px){
 body #title-screen.title-screen{top:84px;left:50%;transform:translateX(-50%);width:100%;max-height:calc(100dvh - 139px);overflow-y:auto;padding:8px 18px 20px;justify-content:flex-start}
 body #title-screen.title-screen .menu-orbit{width:min(54vw,21dvh,225px);transform:none;margin-bottom:100px}
 #title-screen .menu-gallery{bottom:-92px;width:min(88vw,326px)}
 .menu-gallery-heading{margin-bottom:5px;font-size:11px}.menu-portrait-choices{gap:5px}.menu-portrait-choices button{padding:4px 1px;gap:3px}.menu-portrait-choices img{width:30px;height:34px}.menu-portrait-choices span{font-size:10px}.menu-portrait-timer{margin-top:7px}
 body #title-screen.title-screen .menu-seal{font-size:14px;width:13%}
 body #title-screen.title-screen>.overline{margin:0 0 7px;font-size:8px}
 body #title-screen.title-screen>.title-rule{display:none}
 body #title-screen.title-screen>h1{display:flex;gap:10px;font-size:42px;letter-spacing:5px}body #title-screen.title-screen>h1 span{padding:0}
 body #title-screen.title-screen>.title-poem{font-size:11px;margin:8px 0 12px;line-height:1.6}
 body #title-screen.title-screen>.main-menu button{padding-top:10px;padding-bottom:10px;font-size:16px}
 body #title-screen.title-screen>.main-menu .primary-menu{padding-top:12px;padding-bottom:12px;margin-bottom:3px}
 body #title-screen.title-screen>.edition{margin:12px 0 4px;font-size:8px}
 #loading{padding:24px 30px}#loading .loading-journey{grid-template-columns:1fr;gap:17px;width:100%;max-width:390px}
 #loading .loading-memory-art{width:116px;height:145px;min-height:0;margin:auto;align-self:auto}#loading .loading-memory-art>span{font-size:18px;bottom:8px;left:8px;padding:3px 6px}
 #loading .loading-journey-copy{text-align:center}#loading h2{font-size:29px;letter-spacing:5px;margin:10px 0 90px}#loading .overline{font-size:9px}
 #loading .loading-memory-copy{margin-top:18px;padding-top:16px}#loading-memory-title{font-size:19px}#loading-memory-text{font-size:12px;max-width:none}
}
@media(prefers-reduced-motion:reduce){#menu-portrait,#loading .loading-track>i,#loading-guide{transition:none!important}#loading-guide img{animation:none!important}.menu-portrait-choices button{transition:none}}

@media(max-width:760px){body #menu-footer>span:first-child{display:none}body #menu-footer>span:nth-child(2){display:inline-flex;align-items:center}body #menu-footer{gap:10px;justify-content:space-between;flex-wrap:nowrap}body #menu-footer>span:last-child{margin-left:0}body #menu-footer i{padding:0 5px}}
@media(min-width:761px) and (max-height:850px){body #title-screen.title-screen .menu-orbit{width:min(42vw,54dvh,500px)}}
.actor-label.world-action{pointer-events:auto;cursor:pointer;border:0;border-radius:3px;background:#10202366;padding:7px 9px 15px;min-height:36px;font-family:inherit;transition:background .15s,color .15s}
.actor-label.world-action:hover{background:#102023da;color:#fff0c5}
.actor-label.world-action:focus-visible{outline:2px solid #e0c68b;outline-offset:3px;background:#102023ed}
#actor-labels{position:absolute;inset:0;z-index:5;pointer-events:none}
#actor-labels .actor-label.world-action{pointer-events:auto}
#actor-labels .actor-label.world-action:active{transform:translate(-50%,-100%)}

/* Complete original reference paintings, head to toe. */
body #title-screen.title-screen .menu-art{background-image:radial-gradient(ellipse,#233d3d,#0a1c23);}

#title-screen .menu-art #menu-portrait{object-fit:cover;object-position:center 24%;padding:0;filter:saturate(.87);}


/* Approved expressive full-body menu paintings. */
body #title-screen.title-screen .menu-art{background:#091b21;}
#title-screen .menu-art #menu-portrait{width:auto;max-width:100%;height:100%;margin:auto;object-fit:contain;object-position:center;padding:3% 0;box-sizing:border-box;filter:none;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);mask-composite:intersect;}

/* Zixuan upper-body thumbnail; hidden sizing image inherits every existing responsive size. */
#title-screen .menu-portrait-choices .menu-thumb-half{display:block;position:relative;overflow:hidden;line-height:0;border-radius:2px}
#title-screen .menu-portrait-choices .menu-thumb-size{display:block;visibility:hidden}
#title-screen .menu-portrait-choices .menu-thumb-crop{position:absolute;height:256.4%;width:auto;max-width:none;left:50%;top:-15.4%;transform:translateX(-50%);object-fit:contain;border-radius:0}
/* New short-bodied Huaying: crop source whitespace while retaining stem, wings and feet. */
#loading-guide{width:88px;height:98px;top:-95px}
#loading-guide img{position:absolute;left:-4px;top:-25px;width:96px;height:144px;object-fit:contain;object-position:center;mask-image:radial-gradient(ellipse 55% 38% at 50% 47%,#000 80%,transparent 100%)}
#loading-guide b{bottom:0}

/* Independent music / spoken dialogue controls share the compact top toolbar. */
.toolbar #music-start,.toolbar #voice-start{white-space:nowrap}.toolbar #voice-start[aria-pressed="false"]{opacity:.7}
@media(max-width:600px){.toolbar{gap:9px}.toolbar #music-start,.toolbar #voice-start{font-size:10px}.topbar{padding-left:14px;padding-right:14px}}

/* Touch movement: prevent selection and long-press callouts on controls. */
.touch-controls,.touch-controls *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.touch-joystick{position:relative;width:128px;height:128px;flex:none;pointer-events:auto;border:1px solid #b8ab8266;border-radius:50%;background:radial-gradient(circle,#17303988 0 22%,#0b1a2366 23% 68%,#b8ab821f 69%);box-shadow:inset 0 0 22px #0004;touch-action:none}.joystick-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px;border:1px solid #d7c28c88;border-radius:50%;background:#75694fc9;box-shadow:0 3px 10px #0006;transform:translate(var(--stick-x,0px),var(--stick-y,0px));pointer-events:none}.touch-joystick.is-held .joystick-knob{background:#b2984bcc}
@media(pointer:coarse){.playing .touch-controls{display:flex}}
