@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/press-start-2p.ttf)format("truetype")}@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/silkscreen-regular.ttf)format("truetype")}@font-face{font-family:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/silkscreen-bold.ttf)format("truetype")}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vt323.ttf)format("truetype")}:root{--bg:#141210;--panel-bg:#1f1b17;--panel-border:#443b31;--panel-bevel-light:#594d40;--panel-bevel-dark:#12100e;--panel-shadow:#000000a6;--line:#3a322a;--input-bg:#151310;--input-border:#4a4034;--input-text:#e8dfcf;--text:#e8dfcf;--dim:#8c8273;--bright:#fff;--accent:#c8963e;--accent-hover:#dba84e;--accent-active:#a87b2e;--accent-text:#141210;--btn-sec-bg:#2b2520;--btn-sec-border:#4a4034;--btn-sec-text:#ded4c3;--btn-sec-hover:#383029;--gold:#d4a342;--danger:#b84738;--safe:#5b8a58;--hud-bg:#161310eb;--hud-border:#443b31;--crosshair-color:#8c8273;--crosshair-in-reach:#c8963e;--crosshair-out-of-reach:#b84738;--font-pixel:"Silkscreen", "Press Start 2P", "VT323", ui-monospace, "Courier New", monospace;--font-heading:"Press Start 2P", "Silkscreen", ui-monospace, monospace;--font-mono:"VT323", ui-monospace, "Courier New", monospace;font-family:var(--font-pixel);color:var(--text)}*{box-sizing:border-box;image-rendering:pixelated}html,body{height:100%;background:var(--bg);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;font-smooth:never;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;height:100dvh;text-rendering:pixelated;margin:0;overflow:hidden}#scene{width:100%;height:100%;touch-action:none;height:100dvh;display:block;position:fixed;inset:0}.hidden{display:none!important}.overlay{z-index:20;background:#0e0c0ae0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.panel{background:var(--panel-bg);border:2px solid var(--panel-border);box-shadow:inset 1px 1px 0 var(--panel-bevel-light), inset -1px -1px 0 var(--panel-bevel-dark), 4px 4px 0 var(--panel-shadow);border-radius:0;min-width:360px;max-width:540px;max-height:95vh;padding:24px 28px;overflow-y:auto}h1{font-family:var(--font-heading);letter-spacing:2px;color:var(--accent);text-align:center;margin:0 0 16px;font-size:26px;font-weight:700}h2{font-family:var(--font-heading);letter-spacing:1px;color:var(--text);text-align:center;margin:0 0 14px;font-size:18px}label{color:var(--dim);justify-content:space-between;align-items:center;gap:16px;margin:10px 0;font-size:11px;display:flex}input,select{background:var(--input-bg);border:1px solid var(--input-border);color:var(--input-text);font-family:var(--font-pixel);border-radius:0;padding:6px 8px;font-size:11px}input[type=range]{max-width:200px;accent-color:var(--accent);flex:1;padding:0}button{font-family:var(--font-heading);letter-spacing:1px;border:2px solid var(--accent-hover);width:100%;box-shadow:inset 1px 1px 0 #eed99e, inset -1px -1px 0 #7a581e, 2px 2px 0 var(--panel-shadow);cursor:pointer;color:var(--accent-text);background:var(--accent);text-transform:uppercase;border-radius:0;margin-top:16px;padding:12px 14px;font-size:12px}button:hover{background:var(--accent-hover)}button:active{box-shadow:inset -1px -1px 0 #eed99e, inset 1px 1px 0 #7a581e, 1px 1px 0 var(--panel-shadow);transform:translate(1px,1px)}button.secondary{background:var(--btn-sec-bg);border:2px solid var(--btn-sec-border);color:var(--btn-sec-text);box-shadow:inset 1px 1px 0 #4a4034, inset -1px -1px 0 #181512, 2px 2px 0 var(--panel-shadow)}button.secondary:hover{background:var(--btn-sec-hover)}.row{gap:10px;display:flex}.menu-modes{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.menu-modes button{flex:180px;margin-top:0}#mode-label{color:var(--dim);text-align:center;margin-top:10px;font-size:10px}.rules{background:var(--input-bg);border:1px solid var(--line);color:var(--dim);margin:16px 0 0;padding:10px 12px;font-size:10px;line-height:1.8}.rules .key{color:var(--accent);margin-right:4px;font-weight:700}#results-table{border-collapse:collapse;width:100%;font-size:11px}#results-table th{color:var(--dim);text-align:left;border-bottom:1px solid var(--line);background:#181512;padding:6px 8px;font-size:10px}#results-table td{border-bottom:1px solid var(--line);padding:6px 8px}#results-table tr.me td{color:var(--accent);font-weight:700}#results-table td.num{text-align:right;font-variant-numeric:tabular-nums}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#crosshair{border:1px solid var(--crosshair-color);width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%}#crosshair .dot{background:var(--text);width:2px;height:2px;margin:-1px 0 0 -1px;position:absolute;top:50%;left:50%}#crosshair.in-reach{border-color:var(--crosshair-in-reach);background:#c8963e26}#crosshair.out-of-reach{border-color:var(--crosshair-out-of-reach)}#aim-hint{color:var(--dim);letter-spacing:1px;white-space:nowrap;border:1px solid var(--line);background:#141210cc;padding:2px 6px;font-size:10px;position:absolute;top:calc(50% + 18px);left:50%;transform:translate(-50%)}#aim-hint:empty{display:none}#top-center{text-align:center;background:var(--hud-bg);border:2px solid var(--hud-border);box-shadow:2px 2px 0 var(--panel-shadow);padding:6px 14px;position:absolute;top:14px;left:50%;transform:translate(-50%)}#timer{font-family:var(--font-heading);letter-spacing:2px;font-variant-numeric:tabular-nums;color:var(--text);font-size:24px}#timer.urgent{color:var(--danger);animation:1s infinite pulse}#golden-timer{color:var(--gold);letter-spacing:1px;margin-top:3px;font-size:10px}@keyframes pulse{50%{transform:scale(1.05)}}#feed{width:260px;font-size:10px;position:absolute;top:14px;left:14px}.feed-item{background:var(--hud-bg);border-left:3px solid var(--accent);border-top:1px solid var(--hud-border);border-bottom:1px solid var(--hud-border);border-right:1px solid var(--hud-border);margin-bottom:4px;padding:4px 8px;transition:opacity .6s}.feed-item.gold{border-left-color:var(--gold);color:var(--gold)}.feed-item.bad{border-left-color:var(--danger);color:var(--danger)}#leaderboard{background:var(--hud-bg);border:2px solid var(--hud-border);width:190px;box-shadow:2px 2px 0 var(--panel-shadow);padding:6px 8px;font-size:10px;position:absolute;top:14px;right:14px}.lb-row{font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;display:flex}.lb-row.me{color:var(--accent);font-weight:700}.lb-row .name{text-overflow:ellipsis;white-space:nowrap;max-width:130px;overflow:hidden}.lb-sep{border-top:1px dashed var(--line);margin:4px 0}#me-panel{background:var(--hud-bg);border:2px solid var(--hud-border);box-shadow:2px 2px 0 var(--panel-shadow);align-items:center;gap:10px;padding:6px 12px;display:flex;position:absolute;bottom:14px;left:14px}.tally-item{align-items:center;gap:5px;display:flex}.tally-lbl{color:var(--dim);font-size:9px}#me-health{font-family:var(--font-heading);color:var(--safe);font-variant-numeric:tabular-nums;letter-spacing:.5px;font-size:11px}#me-health.low{color:var(--danger);animation:.8s ease-in-out infinite alternate hp-low-pulse}#me-health.out{color:var(--danger)}@keyframes hp-low-pulse{0%{opacity:.5}to{opacity:1}}#me-score{font-family:var(--font-heading);color:var(--accent);font-size:13px}#me-flags,#me-rank{font-family:var(--font-pixel);font-size:11px}.tally-sep{color:var(--line);font-size:10px}#minimap-container{border:2px solid var(--hud-border);width:180px;height:180px;box-shadow:2px 2px 0 var(--panel-shadow);pointer-events:auto;background:#141210;position:absolute;bottom:14px;right:14px}#minimap{width:100%;height:100%;image-rendering:pixelated;display:block}#minimap-toggle{display:none}.touch-only{display:none!important}.desktop-only{display:block}#btn-touch-pause{background:var(--hud-bg);border:2px solid var(--hud-border);width:38px;height:38px;box-shadow:2px 2px 0 var(--panel-shadow);color:var(--accent);cursor:pointer;pointer-events:auto;z-index:15;justify-content:center;align-items:center;margin:0;padding:0;font-size:16px;position:absolute;top:14px;left:14px}#btn-touch-pause:active{background:var(--panel-bevel-light);transform:translate(1px,1px)}#banner{font-family:var(--font-heading);letter-spacing:2px;text-align:center;opacity:0;white-space:nowrap;background:var(--hud-bg);border:2px solid var(--hud-border);padding:8px 16px;font-size:20px;transition:opacity .3s;position:absolute;top:25%;left:50%;transform:translate(-50%)}#banner.show{opacity:1}#banner.gold{color:var(--gold);border-color:var(--gold)}#countdown{font-family:var(--font-heading);color:var(--accent);font-size:72px;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}#stun{border:4px solid var(--danger);background:#140c0ad9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stun-title{font-family:var(--font-heading);letter-spacing:4px;color:var(--danger);font-size:32px}#stun-time{font-family:var(--font-heading);font-variant-numeric:tabular-nums;margin:6px 0;font-size:20px}.stun-penalty{color:var(--danger);font-size:14px}.stun-roast{display:none}#paused{background:var(--panel-bg);border:2px solid var(--panel-border);box-shadow:inset 1px 1px 0 var(--panel-bevel-light), inset -1px -1px 0 var(--panel-bevel-dark), 4px 4px 0 var(--panel-shadow);text-align:center;pointer-events:auto;width:min(400px,100vw - 32px);max-height:90vh;padding:16px 22px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}#paused small{color:var(--dim);margin-top:10px;font-size:10px;line-height:1.6;display:block}#scoreboard{background:var(--panel-bg);border:2px solid var(--panel-border);box-shadow:4px 4px 0 var(--panel-shadow);columns:2;pointer-events:auto;column-gap:24px;width:600px;max-height:80vh;padding:16px 20px;font-size:11px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}details{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}summary{cursor:pointer;color:var(--dim);font-size:11px}.controls-note{color:var(--dim);font-size:10px;line-height:1.6}#menu-error{color:var(--danger);margin-top:8px;font-size:11px;line-height:1.5}#menu-error:empty{display:none}#opt-seed,#opt-name{width:140px}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#paused h2{margin-bottom:6px;font-size:16px}#paused p{color:var(--dim);font-size:10px}#paused button{margin-top:8px;padding:10px;font-size:11px}#session-label{color:var(--dim);white-space:nowrap;letter-spacing:1px;font-size:9px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}#results-summary{color:var(--dim);margin-bottom:12px;font-size:11px}#lobby-players{max-height:40vh;font-size:11px;line-height:1.8;overflow-y:auto}#connection-status,#room-label{font-size:11px;line-height:1.6}#opt-room{text-transform:uppercase;width:140px}.results-scroll{max-height:55vh;overflow-y:auto}#touch-controls{pointer-events:none;z-index:11;-webkit-user-select:none;user-select:none;touch-action:none;position:fixed;inset:0}.touch-zone{pointer-events:auto;touch-action:none;position:absolute}#touch-left-zone{width:48vw;height:60vh;bottom:0;left:0}#touch-right-zone{width:48vw;height:55vh;bottom:0;right:0}#touch-center-zone{height:50vh;bottom:0;left:20vw;right:20vw}#touch-controls.mode-dual #touch-left-zone,#touch-controls.mode-dual #touch-right-zone{display:block}#touch-controls.mode-dual #touch-center-zone,#touch-controls.mode-gyro #touch-left-zone,#touch-controls.mode-gyro #touch-right-zone{display:none}#touch-controls.mode-gyro #touch-center-zone{display:block}.stick-base{pointer-events:none;opacity:0;background:#1412108c;border:2px solid #c8963e73;border-radius:50%;transition:opacity .12s ease-out,transform .16s cubic-bezier(.18,.89,.32,1.25);position:fixed;transform:translate(-50%,-50%)scale(.65);box-shadow:inset 0 0 12px #c8963e26,0 0 10px #0009}.stick-base.visible{opacity:1;transform:translate(-50%,-50%)scale(1)}#stick-left-base,#stick-center-base{width:160px;height:160px}#stick-right-base{width:108px;height:108px}.stick-sprint-ring{pointer-events:none;box-sizing:border-box;border:1.5px dashed #c8963e8c;border-radius:50%;width:144px;height:144px;transition:border-color .12s,box-shadow .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stick-base.sprinting .stick-sprint-ring{border-color:var(--gold);box-shadow:0 0 12px var(--gold), inset 0 0 8px #d4a34266;border-style:solid}.stick-knob{background:var(--accent);border:2px solid var(--accent-hover);pointer-events:none;will-change:transform;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:50%;left:50%;box-shadow:inset 1px 1px #eed99e,inset -1px -1px #7a581e,0 0 8px #c8963e99}.stick-base.sprinting .stick-knob{background:var(--gold);box-shadow:0 0 14px var(--gold);border-color:#ffe699}#touch-action-buttons{pointer-events:none;z-index:13;position:fixed}.touch-btn{width:62px;height:62px;font-family:var(--font-heading);letter-spacing:1px;cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none;touch-action:none;box-shadow:2px 2px 0 var(--panel-shadow), inset 1px 1px 0 #ffffff40;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:0;font-size:10px;transition:transform 80ms,filter 80ms;display:flex}.touch-btn.pressed,.touch-btn:active{filter:brightness(1.25);transform:scale(.92)}#btn-touch-scan{background:var(--accent);border:2px solid var(--accent-hover);color:var(--accent-text)}#btn-touch-mark{background:var(--danger);color:#fff;border:2px solid #e05e4d}#btn-touch-jump{background:var(--btn-sec-bg);border:2px solid var(--btn-sec-border);color:var(--btn-sec-text);font-size:9px}#touch-controls.mode-dual #touch-action-buttons{right:calc(env(safe-area-inset-right,0px) + 20px);bottom:calc(env(safe-area-inset-bottom,0px) + 155px);grid-gap:12px;grid-template-columns:62px 62px;align-items:center;display:grid}#touch-controls.mode-dual #btn-touch-jump{border-radius:8px;grid-column:span 2;justify-self:center;width:76px;height:38px}#touch-controls.mode-gyro #touch-action-buttons{inset:0}#touch-controls.mode-gyro #btn-touch-scan{left:calc(env(safe-area-inset-left,0px) + 20px);bottom:calc(env(safe-area-inset-bottom,0px) + 20px);position:fixed}#touch-controls.mode-gyro #btn-touch-mark{right:calc(env(safe-area-inset-right,0px) + 20px);bottom:calc(env(safe-area-inset-bottom,0px) + 20px);position:fixed}#touch-controls.mode-gyro #btn-touch-jump{right:calc(env(safe-area-inset-right,0px) + 20px);bottom:calc(env(safe-area-inset-bottom,0px) + 94px);position:fixed}@media (max-width:760px),(pointer:coarse){.touch-only{display:flex!important}p.touch-only,small.touch-only,div.touch-only{display:block!important}.desktop-only{display:none!important}.panel{width:min(500px,100vw - 24px);min-width:0;max-height:90dvh;padding:16px}.menu-modes{flex-direction:column}h1{font-size:20px}#btn-touch-pause{top:calc(env(safe-area-inset-top,0px) + 8px);left:calc(env(safe-area-inset-left,0px) + 8px)}#top-center{top:calc(env(safe-area-inset-top,0px) + 8px);padding:4px 10px}#timer{font-size:18px}#golden-timer{font-size:9px}#me-panel{top:calc(env(safe-area-inset-top,0px) + 54px);padding:4px 10px;font-size:9px;bottom:auto;left:50%;transform:translate(-50%)}#minimap-container{top:calc(env(safe-area-inset-top,0px) + 8px);right:calc(env(safe-area-inset-right,0px) + 8px);cursor:pointer;z-index:15;width:72px;height:72px;transition:width .18s,height .18s;bottom:auto}#minimap-container.expanded{width:160px;height:160px;box-shadow:0 0 20px #000c, 2px 2px 0 var(--panel-shadow)}#minimap-toggle{color:var(--accent);background:var(--hud-bg);border:1px solid var(--line);white-space:nowrap;letter-spacing:.5px;padding:1px 4px;font-size:8px;display:block;position:absolute;bottom:-15px;left:50%;transform:translate(-50%)}#feed{width:150px;top:calc(env(safe-area-inset-top,0px) + 54px);left:calc(env(safe-area-inset-left,0px) + 8px);font-size:8px}#leaderboard{width:120px;top:calc(env(safe-area-inset-top,0px) + 98px);right:calc(env(safe-area-inset-right,0px) + 8px);max-height:25vh;font-size:8px;overflow-y:hidden}#scoreboard{columns:1;width:calc(100vw - 32px)}#banner{width:80%;font-size:14px}}
