:root{--ink:#eee9d8;--dim:#aabcb0;--panel:#162b2aeF;--gold:#edc86e;--line:#74928760;--mint:#98c5a4;--red:#e2997c}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#142523;color:var(--ink);font:15px/1.8 'Microsoft JhengHei','PingFang TC',sans-serif}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.45;cursor:default}button{color:var(--ink);background:#294640;border:1px solid #708d77;border-radius:5px;padding:10px 18px}button:hover:not(:disabled){background:#3e5c4d;border-color:var(--gold)}a{color:var(--gold)}#game{position:relative;width:100%;height:100%;overflow:hidden}#world{width:100%;height:100%;display:block;image-rendering:auto;outline:none;touch-action:none;background:#8ca47a}#hud{position:absolute;left:20px;right:20px;top:18px;display:flex;gap:12px;align-items:stretch;pointer-events:none;z-index:3}.hud-block{background:var(--panel);border:1px solid var(--line);box-shadow:0 4px 0 #10221f55;border-radius:7px;backdrop-filter:blur(8px);padding:10px 17px;pointer-events:auto}.hud-brand{font-size:12px;letter-spacing:1px}.hud-brand strong{font-size:18px;display:block;letter-spacing:2px}.clock{font:700 24px/1.2 monospace;color:var(--gold);margin-top:3px}.hud-stats{display:flex;gap:22px;align-items:center}.meter{min-width:100px}.meter label{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--dim);margin-bottom:4px}.bar{height:6px;background:#0b1b18;border-radius:2px;overflow:hidden}.bar span{display:block;height:100%;transition:width .2s;background:var(--mint)}.meter.energy .bar span{background:#e3bf6b}.meter.pressure .bar span{background:#ce896f}.hud-tools{margin-left:auto;display:flex;align-items:center;gap:5px;padding:8px}.hud-tools button{background:transparent;border:0;padding:5px 10px;font-size:12px;min-width:40px}.hud-tools b{display:block;color:var(--gold);font-size:18px;line-height:1.4}.quest-panel{position:absolute;left:20px;top:130px;width:255px;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:17px 20px;backdrop-filter:blur(6px);box-shadow:0 4px 0 #14231c44}.quest-panel .eyebrow{font-size:10px;margin-bottom:6px}.quest-panel h2{font-size:16px;line-height:1.6;margin:0 0 8px}.quest-panel p{font-size:12px;color:var(--dim);margin:5px 0}.quest-panel .mini-btn{padding:4px 10px;font-size:11px;margin-top:10px;background:transparent}.quest-count{color:var(--gold);font:12px monospace}.eyebrow{color:var(--gold);font-size:11px;letter-spacing:2px}.quest-panel ul{list-style:none;padding:0;margin:10px 0}.quest-panel li{font-size:12px;border-top:1px solid #a2ba9520;padding-top:8px;margin-top:8px}.quest-panel li button{padding:0;background:transparent;border:0;text-align:left;font-size:12px;color:var(--ink)}.quest-panel li small{display:block;color:var(--dim);font-size:10px}.key{font-family:monospace;color:var(--gold);border:1px solid #9bb8a144;padding:1px 5px;border-radius:3px;font-size:11px}#bottom{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;background:#182d27dd;border:1px solid #b4ba8b33;border-radius:30px;padding:8px 18px;color:#d3dfce;pointer-events:none;max-width:85vw;text-overflow:ellipsis;overflow:hidden}#notice{position:absolute;top:128px;left:50%;transform:translateX(-50%);max-width:480px;min-width:240px;text-align:center;background:#263d30f2;border:1px solid #c2ad63;border-radius:6px;padding:13px 22px;font-size:13px;z-index:12;opacity:0;transition:opacity .2s;pointer-events:none}#notice.show{opacity:1}#controls{position:absolute;inset:auto 22px 24px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}#interact{pointer-events:auto;border:2px solid #d8c17b;background:#253f36e8;border-radius:50%;width:75px;height:75px;box-shadow:0 4px 0 #0c1d17;font:bold 22px monospace;padding:9px}#interact span{display:block;font:11px sans-serif;margin-top:2px}.dpad{display:none;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:3px;pointer-events:auto}.dpad button{padding:0;background:#153429c9;user-select:none;touch-action:none;border-color:#c5d3af66;font-size:19px}.dpad [data-move=up]{grid-column:2}.dpad [data-move=left]{grid-column:1;grid-row:2}.dpad [data-move=down]{grid-column:2;grid-row:2}.dpad [data-move=right]{grid-column:3;grid-row:2}#overlay:empty,#dialogue:empty{display:none}.veil{position:absolute;inset:0;background:#0b161ad6;display:flex;align-items:center;justify-content:center;padding:25px;z-index:20;backdrop-filter:blur(2px)}.title-screen{background:linear-gradient(0deg,#0d1e20ec,#10232366 60%,#10201e99);backdrop-filter:none;text-align:center}.title-card{max-width:770px;padding:25px 20px}.title-card .eyebrow{display:inline-block;border:1px solid #c5cba751;padding:5px 14px;font-size:11px;color:#ded8b4;letter-spacing:3px}.title-card h1{font-size:clamp(32px,4.7vw,61px);line-height:1.35;letter-spacing:4px;margin:23px 0 12px;text-shadow:3px 4px 0 #0c1d17}.title-card h1 span{display:block;font-size:clamp(18px,2.6vw,31px);letter-spacing:5px;color:#f0d998;margin-top:10px}.title-card .lead{color:#dddcc6;font-size:16px;margin:16px 0}.title-card p{max-width:550px;margin:16px auto;font-size:13px;color:#bacbc0;line-height:2}.btns{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:25px}.gold{background:#8a682a;border:2px solid #e8c56b;color:#fff7de;padding:12px 26px;font-weight:700;box-shadow:0 4px 0 #392b14}.gold:hover:not(:disabled){background:#9c7937}.subtle{background:#203c34be}.tiny{font-size:10px!important;color:#9eb0a1!important;margin-top:22px!important}.title-features{display:flex;justify-content:center;gap:25px;color:#c0cfb7;font-size:11px;margin-top:30px}.title-features b{color:#e9d49a}.panel{max-width:760px;width:100%;max-height:86vh;overflow:auto;background:#182f2dfb;border:1px solid #8e9c71;border-radius:9px;padding:28px 32px;box-shadow:0 12px 0 #07181566}.panel h2{font-size:24px;margin:3px 0 14px}.panel h3{font-size:15px;color:var(--gold);margin:20px 0 8px}.panel p,.panel li{font-size:13px;color:#c1d1c4}.panel .close{float:right;padding:3px 12px;font-size:20px;background:transparent;border:0}.panel-header{border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}.panel-header p{margin:0}.panel ul{padding-left:20px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.help-grid>div{background:#233f35;padding:12px;border-radius:5px;font-size:12px}.help-grid span{color:var(--gold);display:block}.notebook-row{padding:14px 0;border-bottom:1px solid var(--line)}.notebook-row summary{cursor:pointer;font-size:14px}.notebook-row small{color:#a0bda4;font-size:10px}.notebook-row p{margin:10px 0}.notebook-row .learned{color:#e0cd8c}.badge{font-size:10px;padding:3px 7px;background:#65744344;border:1px solid #b2b78744;color:#dfd6a6;border-radius:4px;display:inline-block}.dialogue-shell{position:absolute;inset:0;background:#0b1b1730;z-index:15;display:flex;align-items:flex-end;justify-content:center;padding:0 30px 30px;pointer-events:auto}.speech{width:min(960px,100%);background:#152b2afa;border:2px solid #a1af87;border-radius:8px;box-shadow:0 8px 0 #06161088;padding:23px 26px;position:relative;max-height:78vh;overflow:auto}.speech-top{display:flex;align-items:center;gap:13px;margin-bottom:12px}.portrait{width:52px;height:52px;background:#44634a;border:2px solid #71866c;border-radius:5px;display:grid;place-items:center;flex:none}.portrait svg{width:36px;height:42px;image-rendering:pixelated}.speaker{color:var(--gold);font-weight:700;font-size:16px}.speaker small{display:block;color:#9fb7a6;font-weight:400;font-size:10px;letter-spacing:1px}.speech p{font-size:15px;margin:8px 0 15px;line-height:1.9;color:#e2e5cf}.speech .context{color:#9fbaad;font-size:12px;border-left:2px solid #899b62;padding-left:12px;margin-bottom:15px}.speech .choice-list{display:grid;gap:7px}.choice-list button{text-align:left;background:#274437;border:1px solid #6c8868;font-size:13px;padding:10px 14px}.choice-list button span{color:var(--gold);font:12px monospace;margin-right:10px}.choice-list button:hover{background:#486043}.speech-foot{display:flex;justify-content:space-between;align-items:center;margin-top:15px;gap:14px}.speech-foot .hint{font-size:10px;color:#9eb09e}.speech-foot button{padding:7px 20px;background:#756329;border-color:#dcc273}.effect{display:inline-block;background:#8e9b6140;border:1px solid #aab57455;color:#d9e0b2;font-size:11px;padding:4px 9px;border-radius:4px;margin:3px 6px 3px 0}.effect.negative{background:#ac674333;color:#f0bd9b;border-color:#b88a6555}.map-wrap{position:relative;aspect-ratio:1280/900;max-height:58vh;background:#84a774;border:4px solid #405944;margin:20px auto}.map-wrap button{position:absolute;transform:translate(-50%,-50%);font-size:10px;padding:4px 8px;white-space:nowrap;border-color:#c5d49a;background:#213e32e6}.map-road-v{position:absolute;left:48%;width:6%;height:100%;background:#d2c7a1}.map-road-h{position:absolute;top:48%;width:100%;height:8%;background:#d2c7a1}.map-road-bottom{position:absolute;top:87%;width:100%;height:7%;background:#d2c7a1}.map-building{position:absolute;width:27%;height:25%;border:3px solid #574638;background:#bfa77c;display:grid;place-items:center;color:#313d30;font-size:14px;font-weight:700}.map-player{position:absolute;transform:translate(-50%,-50%);width:11px;height:11px;background:#f4d876;border:2px solid #313f39;border-radius:50%;pointer-events:none}.map-dest{color:#f0d993!important;border-color:#e1c861!important;box-shadow:0 0 0 3px #e2c97b55}.phone-msg{background:#234337;padding:15px;border-left:3px solid #d4bd72;border-radius:4px;margin:12px 0}.phone-msg p{margin:4px 0 10px}.phone-msg small{color:#a1b79f;font-size:10px}.phone-msg button{font-size:12px;padding:6px 12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.form-grid label{display:block;font-size:12px;color:#c2d1be}.form-grid select{width:100%;margin-top:7px;padding:10px;background:#213e34;color:var(--ink);border:1px solid #839577;border-radius:5px}.ending{text-align:center}.ending h2{font-size:31px;color:#eddb9f;line-height:1.4}.ending .ending-icon{font-size:48px;margin:12px}.ending .summary-stats{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;margin:25px 0}.summary-stats strong{display:block;font:700 25px monospace;color:var(--gold)}.summary-stats small{font-size:10px;color:var(--dim)}.log-row{padding:10px;border-bottom:1px solid var(--line);font-size:12px;text-align:left}.log-row small{color:#9db5a2}.log-row p{margin:3px 0}.journal-empty{padding:30px;text-align:center;color:var(--dim)}.warning{background:#ac774326;padding:12px;border-left:3px solid #c59858;font-size:12px;margin:16px 0;color:#e1cba0}.street-sign{font-family:monospace}.title-card .reset-link{display:block;margin:15px auto 0;background:none;border:0;padding:0;font-size:10px;color:#a7b9a4;text-decoration:underline}#hud.hidden,#quest.hidden,#controls.hidden,#bottom.hidden{display:none}.mobile-tog{display:none}.panel small,.muted{color:var(--dim)}
@media(max-width:1000px){#hud{top:12px;left:12px;right:12px;gap:8px}.hud-block{padding:8px 12px}.hud-brand{display:none}.hud-stats{gap:14px}.meter{min-width:80px}.quest-panel{top:115px;left:12px;width:220px;padding:12px 15px}.hud-tools button{padding:4px 7px;font-size:10px}.hud-tools b{font-size:16px}#bottom{bottom:15px}.dialogue-shell{padding:0 18px 18px}.speech{padding:18px 21px}}
@media(pointer:coarse){.dpad{display:grid}#bottom{bottom:125px}#controls{bottom:24px}#interact{height:80px;width:80px}}
@media(max-width:680px){#hud{left:8px;right:8px;top:8px;flex-wrap:wrap;gap:5px}.hud-block{padding:7px 9px}.hud-time{min-width:72px;order:0}.hud-time small{font-size:9px}.clock{font-size:20px}.hud-stats{order:2;width:100%;gap:12px;justify-content:space-between}.meter{min-width:0;flex:1}.meter label{font-size:9px;gap:4px}.bar{height:4px}.hud-tools{order:1;padding:3px;margin-left:auto;gap:0}.hud-tools button{font-size:9px;padding:3px 9px}.hud-tools b{font-size:15px}.quest-panel{top:132px;width:min(215px,65vw);padding:11px 13px;background:#162b2ade}.quest-panel h2{font-size:13px;margin-bottom:3px}.quest-panel p{font-size:10px;margin:3px 0}.quest-panel .eyebrow{font-size:8px}.quest-panel .mini-btn{margin-top:5px;font-size:10px}.quest-panel ul{margin:5px 0}.quest-panel li{font-size:11px;margin-top:5px;padding-top:4px}.quest-panel li small{font-size:9px}.quest-count{font-size:10px}#notice{top:140px;width:80%;min-width:0;font-size:12px;z-index:25}.title-card{padding:10px 0}.title-card h1{font-size:35px;letter-spacing:2px}.title-card h1 span{font-size:21px;letter-spacing:2px}.title-card .lead{font-size:13px}.title-card p{font-size:12px;line-height:1.9;max-width:360px}.title-card .eyebrow{font-size:8px;letter-spacing:2px}.title-features{gap:12px;font-size:9px;margin-top:23px}.title-card .btns{margin-top:20px;gap:9px}.title-card .btns button{font-size:12px;padding:10px 15px}.veil{padding:17px}.panel{padding:22px 20px;max-height:88vh}.panel h2{font-size:22px}.panel h3{font-size:14px}.panel p{font-size:12px}.help-grid{grid-template-columns:1fr 1fr}.dialogue-shell{padding:0 8px 10px;background:#0b1b1755}.speech{padding:15px 16px;max-height:75vh;border-radius:8px}.speech p{font-size:13px;line-height:1.9;margin:9px 0 13px}.speech .context{font-size:11px}.portrait{width:43px;height:43px}.portrait svg{width:30px;height:35px}.speaker{font-size:14px}.speaker small{font-size:9px}.choice-list button{font-size:12px;padding:9px 10px;line-height:1.7}.speech-foot .hint{font-size:9px}.speech-foot button{font-size:12px;padding:6px 15px}.speech-top{margin-bottom:8px}.dpad{display:grid;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,38px)}#controls{bottom:20px;left:13px;right:15px}#interact{width:64px;height:64px;font-size:19px}#bottom{font-size:9px;padding:6px 12px;bottom:119px;max-width:90vw}.form-grid{grid-template-columns:1fr}.map-wrap button{font-size:8px;padding:2px 4px}.map-building{font-size:11px}.ending h2{font-size:25px}.ending .summary-stats{gap:16px}.summary-stats strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Render type at native screen resolution and keep small UI labels readable. */
.meter label,.hud-tools button,.quest-panel p,.quest-panel li,.quest-panel li small,.quest-panel .eyebrow,.quest-count{font-size:12px}.quest-panel{background:#162b2af5}.quest-panel h2{font-size:17px}.speech p,.panel p,.panel li{font-size:15px}.tiny,.speaker small,.speech-foot .hint{font-size:12px!important}.evidence-paper{transform:none}#bottom{font-size:12px}
@media(max-width:680px){.quest-panel h2{font-size:15px}.quest-panel p,.quest-panel li,.quest-panel li small,.quest-panel .eyebrow,.quest-count,.meter label,.hud-tools button{font-size:11px}.speech p,.panel p,.choice-list button{font-size:14px}#bottom{font-size:11px}}
