:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#e2dfd3;background:#414a53}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas#world{display:block;width:100vw;height:100dvh;outline:none;touch-action:none}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#414a53;font-size:14px;letter-spacing:.05em}#loading[hidden],[hidden]{display:none!important}#menu{position:fixed;left:6vw;bottom:7vh;width:min(510px,88vw);text-shadow:0 2px 18px #0009}h1{font-family:Impact,'Arial Narrow',sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(42px,5.3vw,74px);line-height:1;margin:0 0 15px;letter-spacing:.012em}h1 span{color:#b98561;font-size:.55em;vertical-align:12%}.scene-name{font-size:19px;letter-spacing:.04em;margin:0 0 20px}.intro{font-size:15px;line-height:1.7;margin:0 0 27px;color:#d0d0c8}.actions{display:flex;gap:10px;flex-wrap:wrap}button,select{font:600 13px Arial,sans-serif;letter-spacing:.02em;border:1px solid #cdcabb66;border-radius:2px;color:#e2dfd3;background:#26312fde;padding:12px 18px;cursor:pointer}button:hover{background:#3c4945}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #dbc49d;outline-offset:4px}button.primary{color:#242e2c;background:#ded5bd;border-color:#ded5bd}button.primary:hover{background:#f2e7cb}button:disabled{opacity:.5;cursor:default}.note{max-width:470px;font-size:11px;line-height:1.6;color:#d4d3cc;min-height:17px}.settings{display:flex;align-items:center;flex-wrap:wrap;gap:16px;border-top:1px solid #c3c7bf40;padding-top:17px;margin-top:20px}.settings label{font-size:11px;display:flex;align-items:center;gap:8px}.settings select{font-weight:400;font-size:11px;padding:6px 8px;background:#26312fd9}.settings input{width:90px;accent-color:#c3ae89}#comfort-label{width:100%}.controls{font-size:11px;line-height:1.8;color:#b7bdb7;margin:18px 0 0}#pause{position:fixed;top:22px;right:24px;padding:9px 15px;font-size:11px;background:#28333299}#crosshair{position:fixed;left:50%;top:50%;width:3px;height:3px;background:#eeecda99;border-radius:50%;pointer-events:none}#perf{position:fixed;top:22px;left:24px;background:#172327e8;padding:14px 18px;font:11px/1.8 Consolas,monospace;white-space:pre;color:#d5e4ce;pointer-events:none}#message{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);font-size:12px;background:#1d292ce6;border-radius:2px;padding:10px 16px;display:none;max-width:90vw}#touch{position:fixed;bottom:20px;right:20px;display:grid;grid-template-columns:repeat(3,45px);gap:5px}#touch button{padding:12px 0;background:#293534bb}#touch button:first-child{grid-column:2}#touch button:nth-child(2){grid-column:1}#touch button:nth-child(3){grid-column:2}#touch button:nth-child(4){grid-column:3}@media(max-width:600px){#menu{bottom:5vh;left:6vw}.intro{margin-bottom:17px}.scene-name{margin-bottom:12px}.settings{gap:10px;margin-top:14px;padding-top:12px}.controls{font-size:10px}.note{max-width:88vw}#pause{top:15px;right:15px}.actions button{padding:11px 14px}#perf{top:15px;left:15px;font-size:10px}}@media(max-height:570px){#menu{bottom:5vh}.intro{display:none}.settings{margin-top:10px;padding-top:9px}.controls{margin-top:9px}.scene-name{margin-bottom:12px}h1{font-size:40px;margin-bottom:10px}}

.district-travel{display:flex;gap:8px;margin:16px 0}.district-travel select{flex:1;min-width:0;background:#263038;color:#ddd3b9;border:1px solid #66706e;padding:8px;border-radius:3px}.borough-map{font-size:12px;color:#c3c4b7;margin:8px 0}.borough-map summary{cursor:pointer}.borough-map img{width:100%;height:auto;margin-top:8px}.borough-map p{font-size:11px}#menu{max-height:92dvh;overflow-y:auto}
#combat-hud{position:fixed;left:24px;bottom:24px;padding:12px 16px;background:#182822dd;border-left:3px solid #76d8ad;font:12px/1.5 Consolas,monospace;pointer-events:none}
#combat-hint{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);text-align:center;width:max-content;max-width:90vw;font-size:12px;color:#e3e9dc;text-shadow:0 1px 4px #000;pointer-events:none}
#crosshair.hit{width:12px;height:12px;background:transparent;border:2px solid #8effb4;transform:translate(-4px,-4px)}
#touch #grab{grid-column:1 / 3}#touch #fire{grid-column:3;color:#f9b8a0}
@media(max-width:600px){#combat-hud{left:12px;bottom:160px;font-size:10px;padding:8px}#combat-hint{bottom:215px;font-size:11px}#message{bottom:260px;pointer-events:none}}

#objective{position:fixed;top:24px;left:24px;max-width:calc(100vw - 130px);padding:10px 14px;background:#182822dd;border-left:3px solid #f5c65c;color:#f5db9b;font:12px/1.5 Consolas,monospace;pointer-events:none}#perf{top:85px}#calibrate{font-size:11px;padding:7px 10px}.settings input[type=checkbox]{width:auto}

.coop-panel{padding:12px 0;border-top:1px solid #c3c7bf40;border-bottom:1px solid #c3c7bf40;font-size:13px}.coop-panel summary{cursor:pointer;font-weight:bold}.coop-panel label{display:block;margin:12px 0 6px;font-size:11px}.coop-panel input{width:100%;padding:10px;background:#182427e8;border:1px solid #84978c;color:#eeecdf;margin-bottom:10px;font-size:12px}.coop-panel .actions button{padding:9px 12px}#coop-badge{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#172327df;color:#b4e8e2;padding:8px 12px;font-size:11px;max-width:60vw;text-align:center;pointer-events:none}
#coop-room-code{display:block;font-size:30px;letter-spacing:.16em;color:#b4e8e2;margin:8px 0;font-family:monospace}#coop-code-panel .note{display:block}
#rematch-panel{position:fixed;left:50%;bottom:15%;transform:translateX(-50%);width:min(420px,90vw);padding:22px;background:#172327ed;border:1px solid #8bdbc1;text-align:center;color:#b4e8e2;z-index:5}#rematch-panel p{font-size:13px;line-height:1.5}#rematch-panel strong{letter-spacing:.12em}
