:root{color-scheme:dark;--ink:#0c1210;--paper:#eee9d8;--muted:#b1b7a8;--yellow:#e8bb58;--red:#d86a59;--line:#d4d8bc30;font-family:Arial,Helvetica,sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}button{color:inherit}button:active{transform:translateY(1px)}.hidden{display:none!important}#game{width:100%;height:100dvh;min-height:440px;position:relative;overflow:hidden;background:#16211c}#view{width:100%;height:100%;display:block;image-rendering:pixelated}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 65% 45%,transparent 20%,#05090880 75%,#050908c9 100%)}.grain{position:absolute;inset:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' 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;left:3.5%;right:3.5%;top:28px;display:flex;align-items:center;justify-content:space-between;z-index:15}.school{display:flex;align-items:center;gap:12px;font-size:14px;letter-spacing:2px;font-weight:700}.school-mark{width:38px;height:44px;display:grid;place-items:center;border:1px solid #e7ead382;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%);font-family:Georgia,serif;font-size:20px;letter-spacing:-2px;padding-right:2px}.school div>span{display:block;font-size:12px;letter-spacing:1.5px;font-weight:400;color:var(--muted);margin-top:7px}.top-right{display:flex;align-items:center;gap:22px}.clock{font:24px 'Courier New',monospace;letter-spacing:3px}.icon-button{width:42px;height:42px;display:grid;place-items:center;background:#0c13104d;border:1px solid var(--line);border-radius:50%}.icon-button:hover{background:#e8bb5820;border-color:var(--yellow)}.icon-button svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.5}.icon-button.muted{opacity:.6}.menu{position:absolute;inset:0;background:linear-gradient(90deg,#0a100cf0 0%,#0a100c9c 40%,transparent 76%);padding:0 8%;display:flex;align-items:center}.menu-copy{position:relative;padding-top:30px}.night-note{color:var(--yellow);font:13px 'Courier New',monospace;letter-spacing:3px;display:flex;align-items:center;gap:12px;margin-bottom:24px}.night-note span{width:28px;height:1px;background:var(--yellow)}h1{margin:0 0 25px;font-family:Impact,'Arial Narrow',Arial,sans-serif;font-weight:900;line-height:.9;letter-spacing:-4px}.numbers{display:block;font-size:clamp(95px,13vw,188px);letter-spacing:-8px}.numbers i{font-style:normal;color:var(--yellow);display:inline-block;transform:rotate(-5deg);margin-left:15px}.stand{display:block;font-size:clamp(54px,7.7vw,112px);margin-top:12px;letter-spacing:-2px}.period{color:var(--yellow)}.intro{font-size:18px;line-height:1.65;color:#d5d8c8;margin:0 0 30px}.primary{border:0;border-radius:2px;background:var(--yellow);color:#202118;min-height:54px;padding:17px 26px;font-size:14px;letter-spacing:1.5px;font-weight:800;display:flex;justify-content:space-between;gap:48px;align-items:center;transition:background .15s,transform .15s}.primary:hover{background:#f7d081}.primary span{font-size:20px}.menu-hint{color:var(--muted);font-size:13px;margin-top:18px}.warning-card{position:absolute;right:9%;bottom:20%;display:flex;gap:16px;align-items:flex-start;transform:rotate(-3deg);border:1px solid #d4d8bc70;border-left:3px solid var(--yellow);background:#121b15a3;padding:20px;font:13px 'Courier New',monospace;letter-spacing:1px}.warning-symbol{color:var(--yellow);border:1px solid var(--yellow);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:20px}.warning-card p{font:15px/1.6 Arial,sans-serif;letter-spacing:0;color:var(--muted);margin:10px 0 0}.menu-bottom{position:absolute;bottom:70px;left:3.5%;right:3.5%;display:flex;justify-content:space-between;align-items:center;color:#a6af9c;font:12px 'Courier New',monospace;letter-spacing:1.2px}.calm-option{font:14px Arial,sans-serif;letter-spacing:0;display:flex;align-items:center;gap:8px}.calm-option input{accent-color:var(--yellow);width:17px;height:17px}.controls{position:absolute;bottom:0;left:0;right:0;min-height:49px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:25px;background:#080e0bc4;border-top:1px solid var(--line);font-size:12px;color:#b5bdad;z-index:11}.controls>span{display:flex;align-items:center;gap:5px}kbd{font:11px 'Courier New',monospace;min-width:19px;text-align:center;padding:4px 5px;border:1px solid #abb89d54;border-radius:2px;color:#dde2cf;background:#121a13a8}.hud{position:absolute;inset:0;pointer-events:none;z-index:10}.objective{position:absolute;top:111px;left:3.5%;max-width:310px;border-left:2px solid var(--yellow);padding-left:16px;text-shadow:0 2px 6px #000}.objective-label{font:12px 'Courier New',monospace;letter-spacing:2px;color:var(--yellow)}.objective p{margin:9px 0;font-size:16px;line-height:1.5}.exercise-progress{display:flex;gap:6px}.exercise-progress i{height:4px;width:22px;background:#d6e0c344}.exercise-progress i.done{background:var(--yellow)}.map-button{position:absolute;right:3.5%;top:113px;background:#0c1513a6;border:1px solid var(--line);padding:10px 13px;font-size:12px;letter-spacing:1px;pointer-events:auto;display:flex;gap:13px;align-items:center}.map-button:hover,.bag-button:hover{border-color:var(--yellow)}.danger{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#772c269e;border:1px solid #da6b5666;padding:9px 17px;color:#ffae99;font:12px 'Courier New',monospace;letter-spacing:3px}.reticle{position:absolute;left:50%;top:50%;width:5px;height:5px;border:1px solid #ffffffb3;border-radius:50%;transform:translate(-50%,-50%)}.prompt{position:absolute;left:50%;top:60%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:#0b120ce3;padding:10px 16px;border:1px solid var(--line);white-space:nowrap;font-size:14px}.prompt kbd{font-size:16px;padding:6px 10px;border-color:var(--yellow);color:var(--yellow)}.subtitle{position:absolute;bottom:156px;left:50%;width:min(650px,90%);transform:translateX(-50%);font-size:16px;line-height:1.6;text-align:center;text-shadow:0 2px 5px #000}.subtitle:not(:empty){background:#080e0bca;padding:10px 16px;border-bottom:1px solid #d4d8bc44}.hud-bottom{position:absolute;bottom:73px;left:3.5%;right:3.5%;display:flex;align-items:flex-end;justify-content:space-between}.stamina{width:140px}.stamina>span{font:11px 'Courier New',monospace;letter-spacing:1.5px;color:var(--muted)}.stamina>div{height:4px;background:#c5ceb633;margin-top:10px}.stamina i{display:block;height:100%;width:100%;background:var(--yellow)}.bag-button{pointer-events:auto;background:#0e1610b3;border:1px solid var(--line);padding:10px 14px;font-size:12px;letter-spacing:1px}.bag-button>span{color:var(--yellow);font:22px 'Courier New',monospace;margin-right:8px}.bag-button kbd{margin-left:15px}.locks{text-align:right}.locks>span:first-child{font:30px 'Courier New',monospace;letter-spacing:1px}.locks>span:first-child span{font-size:16px;color:var(--muted);margin-left:4px}.lock-marks{display:flex;gap:5px;margin:8px 0 7px}.lock-marks i{width:11px;height:14px;border:1px solid #d6e0c377;position:relative}.lock-marks i:before{content:'';position:absolute;width:5px;height:5px;border:1px solid #d6e0c377;border-bottom:0;border-radius:3px 3px 0 0;top:-6px;left:2px}.lock-marks i.done{background:var(--yellow);border-color:var(--yellow)}.lock-marks i.done:before{transform:rotate(-35deg);transform-origin:bottom right;border-color:var(--yellow)}.lock-label{font:10px 'Courier New',monospace;letter-spacing:1px;color:var(--muted)}.cutscene{position:absolute;inset:0;z-index:18;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#000b 0 12%,transparent 12% 85%,#000b 85%);pointer-events:none}.cutscene>span{font:clamp(60px,10vw,128px) 'Courier New',monospace;letter-spacing:8px;text-shadow:0 0 40px #000}.cutscene>p{position:absolute;bottom:5%;font-size:18px;text-align:center}.squat-flash{position:absolute;inset:0;pointer-events:none;border:0 solid var(--yellow);transition:border-width .12s;z-index:12}.squat-flash.active{border-width:4px}.panel{position:absolute;z-index:25;width:min(900px,94%);max-height:82dvh;overflow:auto;left:50%;top:50%;transform:translate(-50%,-50%);padding:26px;background:#101a16f5;border:1px solid #a8b79b66;box-shadow:0 30px 120px #000c}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel h2{font-family:Georgia,serif;font-size:28px;margin:0}.close-panel{font-size:28px;background:transparent;border:0;width:44px;height:44px}.panel>p{font-size:14px;color:var(--muted);line-height:1.5}.panel canvas{width:100%;display:block;background:#0b120e}.map-legend{display:flex;justify-content:center;gap:24px;margin-top:16px;font:14px 'Courier New',monospace;color:var(--yellow)}.bag-panel{max-width:660px}#bag-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bag-row{padding:14px;border:1px solid var(--line);display:flex;align-items:center;gap:12px;color:var(--muted)}.bag-row>span{font:22px 'Courier New',monospace;color:#687b65}.bag-row strong{display:block;font-size:14px;font-weight:400}.bag-row small{display:block;font-size:12px;margin-top:6px}.bag-row.found{color:var(--paper);border-color:#e8bb5855}.bag-row.found>span{color:var(--yellow)}.bag-row.used{opacity:.55}.overlay{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#050b08c9;backdrop-filter:blur(6px);padding:24px}.dialog{width:min(490px,100%);text-align:center}.dialog-note{font:12px 'Courier New',monospace;letter-spacing:3px;color:var(--yellow)}.dialog h2{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(50px,7vw,84px);margin:18px 0;color:var(--paper);line-height:1}.dialog>p:not(.dialog-note){font-size:17px;line-height:1.6;color:var(--muted);margin-bottom:28px}.dialog .primary{width:100%;justify-content:center}.secondary{background:transparent;border:1px solid var(--line);margin-top:12px;width:100%;padding:14px;font-size:14px}.secondary:hover{border-color:var(--yellow)}.control-detail{font-size:13px;line-height:1.9;margin-top:26px;color:var(--muted)}.touch{position:absolute;inset:0;pointer-events:none;z-index:12}.joystick{position:absolute;bottom:42px;left:26px;width:116px;height:116px;border:1px solid #c6d2b36b;background:#101b165c;border-radius:50%;pointer-events:auto;touch-action:none}.joystick span{position:absolute;top:36px;left:36px;width:44px;height:44px;border-radius:50%;border:1px solid #e8bb5880;background:#e8bb5833}.touch-actions{position:absolute;right:20px;bottom:40px;display:flex;align-items:flex-end;gap:10px;pointer-events:auto}.touch-actions button{border:1px solid #c6d2b36b;border-radius:50%;width:48px;height:48px;background:#101b16b3;font-size:11px;touch-action:none}.touch-actions .touch-action{width:68px;height:68px;border-color:var(--yellow);color:var(--yellow);font-size:24px}.look-hint{position:absolute;right:20px;bottom:122px;color:var(--muted);font-size:11px}.game-playing #controls{opacity:.7}.game-playing .vignette{background:radial-gradient(ellipse at center,transparent 25%,#050908a6 100%)}.calm .grain{opacity:.04}
@media(min-width:1600px){.menu-copy{margin-left:4%}}@media(max-height:700px) and (min-width:761px){.menu-copy{padding-top:22px}.night-note{margin-bottom:16px}.numbers{font-size:115px}.stand{font-size:73px}.intro{font-size:16px;margin-bottom:20px}h1{margin-bottom:18px}.menu-hint{margin-top:12px}.menu-bottom{bottom:65px}.warning-card{bottom:25%}}
@media(max-width:760px){#game{min-height:360px}.topbar{top:20px;left:5%;right:5%}.school{font-size:12px;letter-spacing:1px}.school div>span{font-size:10px}.school-mark{width:30px;height:36px;font-size:17px}.top-right{gap:12px}.clock{font-size:20px}.icon-button{width:36px;height:36px}.menu{padding:0 8%;background:linear-gradient(90deg,#0a100cee,#0a100c75)}.menu-copy{padding-top:20px}.numbers{font-size:125px}.stand{font-size:74px}.intro{font-size:16px;margin-bottom:24px}.night-note{font-size:12px;margin-bottom:20px}.warning-card{display:none}.menu-hint{font-size:12px;max-width:260px;line-height:1.5}.menu-bottom{left:8%;right:8%;bottom:24px;gap:14px;align-items:flex-end}.menu-bottom>span{max-width:160px;font-size:10px;line-height:1.7}.calm-option{font-size:12px}.controls{display:none}.objective{top:89px;left:5%;max-width:230px;padding-left:12px}.objective p{font-size:14px}.objective-label{font-size:10px}.map-button{top:93px;right:5%;padding:9px;font-size:10px}.map-button kbd{display:none}.hud-bottom{bottom:180px;left:5%;right:5%}.stamina{width:85px}.stamina>span{font-size:9px}.bag-button{padding:7px;font-size:10px}.bag-button kbd{display:none}.bag-button>span{font-size:18px}.locks>span:first-child{font-size:24px}.lock-marks{gap:4px}.lock-marks i{width:8px;height:10px}.lock-marks i:before{width:4px;left:1px}.lock-label{font-size:8px}.subtitle{bottom:240px;font-size:14px}.prompt{top:55%;padding:8px 12px;font-size:13px;max-width:95%;white-space:normal}.danger{top:153px;font-size:10px}.panel{padding:18px;max-height:85dvh}.panel h2{font-size:24px}.panel>p{font-size:13px}.map-legend{gap:12px;font-size:11px;flex-wrap:wrap}.bag-row{padding:10px;gap:8px}.bag-row strong{font-size:12px}.bag-row small{font-size:11px}.cutscene>p{font-size:15px;padding:0 20px}}
@media(max-width:760px) and (max-height:520px){.numbers{font-size:65px}.stand{font-size:43px;margin-top:7px}.night-note{margin-bottom:10px}.intro{font-size:14px;margin-bottom:12px}h1{margin-bottom:12px}.menu-copy{padding-top:40px}.primary{min-height:42px;padding:12px 18px}.menu-hint{display:none}.menu-bottom{bottom:14px;left:auto}.menu-bottom>span{display:none}.hud-bottom{bottom:120px}.subtitle{bottom:174px}.objective{max-width:240px}.joystick{width:90px;height:90px;bottom:18px}.joystick span{top:23px;left:23px}.touch-actions{bottom:18px}.look-hint{bottom:92px}.panel canvas{max-height:240px;object-fit:contain}.cutscene>span{font-size:64px}}
#view{touch-action:none}
.menu-copy>.secondary{font-size:12px;max-width:360px;text-align:left;line-height:1.4}
.team-status{position:absolute;right:3.5%;top:166px;max-width:260px;padding:8px;background:#0c1513c9;color:#a6e6eb;font:12px/1.5 'Courier New',monospace;text-align:right}
.spectator{position:absolute;bottom:180px;left:50%;transform:translateX(-50%);width:min(440px,90%);padding:14px;background:#0c1513e8;border:1px solid var(--line);text-align:center;pointer-events:auto}
.spectator strong{font-size:16px;color:#a6e6eb}.spectator p{font-size:13px;color:var(--muted);margin:8px 0}.spectator button{padding:10px;margin-top:4px}
@media(max-width:760px){.spectator{bottom:100px}}
.multiplayer-dialog,.shop-dialog{max-height:90dvh;overflow:auto;padding:4px 8px;width:min(580px,100%)}
.multiplayer-dialog h2,.shop-dialog h2{font-size:clamp(38px,7vw,64px)}
.multiplayer-dialog label{display:block;text-align:left;color:var(--muted);font-size:13px;margin:18px 0 12px}
.multiplayer-dialog input{display:block;width:100%;margin-top:8px;padding:12px;background:#14231b;color:var(--paper);border:1px solid var(--line);border-radius:2px}
#room-code{text-transform:uppercase;letter-spacing:3px}
#network-error{color:var(--red);font-size:14px;margin:14px 0}
.dialog .network-help{font-size:12px;line-height:1.5;margin:16px 0}
.team-list{padding:0;list-style:none;text-align:left;margin:16px 0;font-size:14px}
.team-list li{padding:10px 12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.shop-wallet{color:var(--yellow)!important;margin:12px 0!important}
.shop-item{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);text-align:left}
.shop-item strong{font-size:16px}.shop-item p{font-size:13px;line-height:1.5;color:var(--muted);margin:6px 0}.shop-item small{font-size:12px;color:var(--yellow)}
.shop-item button{width:115px;flex-shrink:0;margin:0;padding:12px 8px;font-size:13px}
button:disabled{cursor:default;opacity:.45}
@media(max-width:760px){.team-status{right:5%;top:140px;font-size:10px;max-width:150px}.multiplayer-dialog,.shop-dialog{max-height:88dvh}.multiplayer-dialog h2,.shop-dialog h2{margin:8px 0}.multiplayer-dialog>p:not(.dialog-note),.shop-dialog>p:not(.dialog-note){font-size:14px;margin-bottom:14px}.shop-item{gap:12px}.shop-item button{width:92px}.menu-copy>.secondary{max-width:290px;padding:12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.grain{opacity:.04}}
.map-panel{width:min(1260px,96%);max-height:90dvh;background:#101d1dfc;padding:24px;}
.map-eyebrow{display:block;color:#83b6a3;font:11px 'Courier New',monospace;letter-spacing:2px;margin-bottom:8px;}
#map-charge{font:10px 'Courier New',monospace;letter-spacing:0;color:var(--yellow);}
#map-battery{color:#e8bb58;white-space:nowrap;}
.map-panel h2{font-size:30px;}
.map-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0;color:#b7c9b8;font:12px 'Courier New',monospace;}
.map-summary p{margin:0;color:#8ce0c9;font-size:14px;line-height:1.5;}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 225px;gap:20px;}
.map-main{min-width:0;}
.map-toolbar{display:flex;align-items:center;gap:8px;padding:8px;background:#0c1616;border:1px solid #9cbda333;border-bottom:0;}
.map-toolbar button{min-height:36px;padding:7px 12px;border:1px solid #8cae963d;background:#172824;color:#dbe8d3;font-size:12px;}
.map-toolbar button:hover{background:#254037;border-color:#85c6ac;}
.map-zoom{display:flex;align-items:center;margin-right:auto;gap:6px;}
.map-zoom button{font-size:22px;width:38px;padding:0;}
.map-zoom output{min-width:50px;text-align:center;font:12px 'Courier New',monospace;color:#b8d5c2;}
.map-stage{border:1px solid #9cbda333;overflow:hidden;}
.map-stage canvas{width:100%;height:auto;max-height:none;display:block;touch-action:none;cursor:grab;}
.map-stage canvas:active{cursor:grabbing;}
.map-help{font:11px/1.6 'Courier New',monospace;color:#8ba394;margin:10px 0 0;}
.map-sidebar h3{font:11px 'Courier New',monospace;letter-spacing:1.5px;color:#a3bdaa;margin:0 0 12px;}
#map-targets{display:grid;gap:5px;max-height:56dvh;overflow:auto;}
#map-targets button{display:flex;align-items:center;gap:10px;text-align:left;background:#182a25;border:1px solid #8fac9430;padding:10px;color:#dbe4c9;min-height:46px;}
#map-targets button>span:first-child{font:16px 'Courier New',monospace;color:#e6c774;}
#map-targets strong{display:block;font-size:12px;font-weight:400;}
#map-targets small{display:block;font-size:10px;color:#9ab6a4;margin-top:4px;}
#map-targets button[aria-pressed=true]{background:#24483e;border-color:#82d8ba;}
#map-targets button:hover:not(:disabled){border-color:#e6c774;}
#map-targets button:disabled{opacity:.45;cursor:default;}
.map-panel .map-legend{flex-wrap:wrap;gap:18px;font-size:12px;margin-top:18px;}
.map-you{color:#f0f6de;}.map-item{color:#e8c56e;}.map-camera{color:#e38a78;}.map-anomaly{color:#b5a4d5;}.map-path{color:#76d8c5;}
@media(max-width:900px){.map-summary{align-items:flex-start;flex-direction:column;gap:6px;}.map-layout{grid-template-columns:minmax(0,1fr) 180px;gap:12px;}}
@media(max-width:760px){.map-panel{padding:16px;max-height:92dvh;}.map-panel h2{font-size:24px;}.map-layout{grid-template-columns:1fr;}.map-sidebar{margin-top:8px;}#map-targets{grid-template-columns:1fr 1fr;max-height:190px;}.map-panel .map-stage canvas{max-height:none;object-fit:initial;}.map-panel .map-legend{gap:12px;font-size:11px;}.map-toolbar button{padding:6px 9px;}.map-help{font-size:10px;}.map-summary{margin:12px 0;}}
@media(max-width:760px){.map-button{flex-direction:column;gap:5px;max-width:126px;}#map-charge{font-size:9px;}}
