:root{--ink:#15203a;--panel:#10162cb8;--panel-solid:#10162cf0;--accent:#5fe3c6;--accent-2:#ffd36b;--text:#f5f7ff;font-family:Nunito,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);background:#0b1030;margin:0;overflow:hidden}canvas#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#hud>*{pointer-events:auto}.panel{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:10px 12px;box-shadow:0 6px 20px #00000040}.hidden{display:none!important}.muted{opacity:.75;margin:4px 0;font-size:13px}.error{color:#ff9a8a;min-height:1.2em;margin:4px 0;font-size:13px}button{font:inherit;color:var(--ink);background:var(--accent);cursor:pointer;touch-action:manipulation;border:0;border-radius:12px;padding:10px 14px;font-weight:800}button:disabled{opacity:.5;cursor:default}button.secondary{background:#ffffffd9}button.wide{width:100%;margin-top:8px}button.link{color:var(--text);opacity:.8;background:0 0;width:100%;padding:8px;font-weight:600;text-decoration:underline}button.round{background:var(--panel);width:44px;height:44px;color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;padding:0;font-size:20px}input{font:inherit;width:100%;color:var(--text);background:#ffffff14;border:1px solid #fff3;border-radius:10px;margin:6px 0;padding:10px 12px}input::placeholder{color:#f5f7ff80}#stats{font-variant-numeric:tabular-nums;white-space:pre;min-width:180px;font-size:12px;line-height:1.45;position:absolute;top:12px;left:12px;pointer-events:none!important}#counters{gap:14px;font-size:15px;font-weight:700;display:flex;position:absolute;top:12px;right:12px}#counters .v{color:var(--accent-2)}#zone{letter-spacing:.04em;padding:6px 14px;font-size:14px;font-weight:700;position:absolute;top:14px;left:50%;transform:translate(-50%);pointer-events:none!important}#hint{text-align:center;max-width:86vw;padding:8px 14px;font-size:13px;transition:opacity .4s;position:absolute;bottom:120px;left:50%;transform:translate(-50%);pointer-events:none!important}#hint.hidden{opacity:0}#toasts{flex-direction:column;align-items:center;gap:6px;max-width:90vw;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%);pointer-events:none!important}.toast{white-space:pre-wrap;text-align:center;padding:6px 12px;font-size:13px;transition:opacity .5s}.toast.fade{opacity:0}#menubutton{position:absolute;top:58px;right:12px}#menu{background:var(--panel-solid);width:340px;max-width:calc(100vw - 24px);max-height:calc(100vh - 130px);font-size:14px;position:absolute;top:110px;right:12px;overflow-y:auto}#menu h3{text-transform:uppercase;letter-spacing:.08em;opacity:.7;margin:12px 0 6px;font-size:13px}#menu .close{width:36px;height:36px;font-size:16px;position:absolute;top:8px;right:8px}#menu .objective{margin:0 0 6px;line-height:1.4}#menu .row{align-items:center;gap:8px;display:flex}#menu .row input{margin:0}#menu ul.online{margin:4px 0;padding-left:18px}.skins{grid-template-columns:1fr 1fr;gap:8px;display:grid}.skin{text-align:left;color:var(--text);background:#ffffff1a;border:2px solid #0000;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.skin small{opacity:.8;font-size:11px;font-weight:500;line-height:1.3}.skin.selected{border-color:var(--accent);background:#5fe3c62e}.skin.locked{opacity:.45}.overlay{background:#0508148c;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.overlay .card{background:var(--panel-solid);width:460px;max-width:100%;max-height:90vh;padding:20px;overflow-y:auto}.overlay h2{margin:0 0 10px;font-size:24px}.overlay .text p{margin:0 0 10px;font-size:15px;line-height:1.5}#touchzone{touch-action:none;width:60%;position:absolute;top:70px;bottom:0;left:0}#joystick{pointer-events:none;background:#ffffff1f;border:2px solid #ffffff40;border-radius:50%;width:128px;height:128px;position:absolute}#joystick .knob{background:var(--accent);border-radius:50%;width:58px;height:58px;margin:-29px 0 0 -29px;position:absolute;top:50%;left:50%;box-shadow:0 4px 12px #00000059}#buttons{flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:18px;right:18px}#buttons button{touch-action:none;border-radius:50%;width:72px;height:72px;padding:0;font-size:13px;box-shadow:0 6px 16px #0000004d}#buttons button.secondary{width:60px;height:60px}#buttons button.on{background:var(--accent-2)}#loading{z-index:10;background:radial-gradient(circle at 50% 30%,#2f7fe8,#0b1030 70%);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}#loading h1{letter-spacing:.02em;margin:0;font-size:38px}#loading p{opacity:.85;margin:0}#loading .bar{background:#fff3;border-radius:4px;width:240px;height:8px;overflow:hidden}#loading .bar i{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}#loading.hidden{display:none}#bench{white-space:pre;font-size:13px;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#bench.show{display:block}@media (pointer:fine){#touchzone,#buttons{display:none}}@media (max-width:520px){#stats{min-width:150px;font-size:10px}#counters{font-size:13px}#menubutton{top:54px}#menu{top:104px}.skins{grid-template-columns:1fr}}
