:root{--ink: #e8f0ff;--muted: #9fb3d1;--accent: #ffb547;--danger: #ff4d4d;--ok: #4dff9a;--panel: rgba(8, 16, 30, .72);--edge: rgba(160, 200, 255, .25);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#0b1220;color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:none}canvas#game{position:fixed;inset:0;width:100vw;height:100dvh;display:block}.hidden{display:none!important}#hud{position:fixed;inset:0;pointer-events:none;padding:env(safe-area-inset-top) 10px env(safe-area-inset-bottom)}.top{display:flex;gap:8px;align-items:flex-start;padding-top:8px}.bars{flex:1;display:grid;gap:5px}.bar{position:relative;height:14px;background:#00000073;border:1px solid var(--edge);border-radius:7px;overflow:hidden}.bar i{position:absolute;inset:0;width:100%;transform-origin:left;background:linear-gradient(90deg,#36d17c,#b7ff6a);transition:width .15s}.bar.prog i{background:linear-gradient(90deg,#3a7bff,#7ad0ff)}.bar span{position:absolute;left:8px;top:0;font-size:10px;line-height:14px;letter-spacing:1px;font-weight:700;text-shadow:0 1px 2px #000}.score{text-align:right;min-width:74px;text-shadow:0 2px 3px #000}.score b{display:block;font-size:20px;letter-spacing:1px}.score small{color:var(--accent);font-weight:700}button{font:inherit;color:inherit}.icon{pointer-events:auto;width:38px;height:38px;border-radius:10px;border:1px solid var(--edge);background:var(--panel);font-size:14px}.boss{margin-top:8px;text-align:center}.boss span{font-size:12px;font-weight:800;letter-spacing:2px;color:#ffd0d0;text-shadow:0 1px 3px #000}.boss .bar{height:12px;margin-top:3px}.boss .bar i{background:linear-gradient(90deg,#ff3b3b,#ffb547)}.warn{position:absolute;top:28%;left:0;right:0;text-align:center;font-size:22px;font-weight:900;letter-spacing:4px;color:var(--danger);text-shadow:0 0 12px rgba(255,0,0,.8);animation:blink .4s steps(2) infinite}@keyframes blink{50%{opacity:.2}}.toast{position:absolute;top:38%;left:0;right:0;text-align:center;font-size:26px;font-weight:900;letter-spacing:3px;opacity:0;text-shadow:0 3px 10px #000;transition:opacity .3s}.toast.show{opacity:1}.controls{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 16px);left:10px;right:10px;display:flex;justify-content:space-between}.weapon{pointer-events:auto;width:84px;height:84px;border-radius:50%;border:2px solid var(--edge);background:radial-gradient(circle at 40% 35%,#3c5a8ccc,#0a1428d9);display:grid;place-items:center;align-content:center;gap:2px;box-shadow:0 6px 18px #00000080}.weapon span{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--muted)}.weapon b{font-size:24px}.weapon.ready{border-color:var(--accent)}.weapon:active,.weapon.pressed{transform:scale(.94)}.weapon.empty{opacity:.4}.screen{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 50% 30%,#1428508c,#03060ee6);overflow-y:auto;touch-action:pan-y}.screen:empty{display:none}.card{width:min(420px,100%);background:var(--panel);border:1px solid var(--edge);border-radius:18px;padding:22px 18px;text-align:center;box-shadow:0 20px 60px #0009}.card h1{margin:0 0 4px;font-size:34px;letter-spacing:3px;background:linear-gradient(180deg,#fff,#9cc7ff);-webkit-background-clip:text;background-clip:text;color:transparent}.card h2{margin:0 0 6px;font-size:22px;letter-spacing:2px}.card p{color:var(--muted);margin:6px 0 14px;line-height:1.45;font-size:14px}.btn{pointer-events:auto;display:block;width:100%;margin:8px 0;padding:14px;border-radius:12px;border:1px solid var(--accent);background:linear-gradient(180deg,#ffbf5e,#e88a1a);color:#1a1000;font-weight:900;letter-spacing:2px;font-size:16px}.btn.alt{background:transparent;color:var(--ink);border-color:var(--edge);font-weight:700}.btn:disabled{opacity:.4}.levels{display:grid;gap:8px;margin:10px 0}.level{text-align:left;padding:12px;border-radius:12px;border:1px solid var(--edge);background:#ffffff0a}.level b{display:block}.level small{color:var(--muted)}.level.locked{opacity:.4}.shop{display:grid;gap:8px;margin:12px 0;text-align:left}.item{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--edge);background:#ffffff0a}.item small{color:var(--muted);grid-column:1}.item .pips{grid-column:1;letter-spacing:3px;color:var(--accent)}.item button{grid-row:1 / span 3;grid-column:2;padding:10px 12px;border-radius:10px;border:1px solid var(--accent);background:#ffb54726;color:var(--accent);font-weight:800;pointer-events:auto}.item button:disabled{opacity:.35}.stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 14px;font-size:14px}.stats div{padding:8px;border-radius:10px;background:#ffffff0d}.stats b{display:block;font-size:20px;color:var(--accent)}.credits{font-size:11px;color:var(--muted);text-align:left;line-height:1.5;max-height:40vh;overflow:auto}.loader{width:100%;height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden;margin-top:12px}.loader i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3a7bff,#7ad0ff);transition:width .2s}.rotate{display:none}@media (orientation: landscape) and (max-height: 500px){.rotate{display:grid;place-items:center;position:fixed;inset:0;z-index:10;background:#0b1220;font-size:20px;font-weight:800;letter-spacing:1px}}.controls .col{display:grid;gap:10px;justify-items:center;align-content:end}.weapon.small{width:64px;height:64px;position:relative;overflow:hidden}.weapon.small b{font-size:13px;letter-spacing:1px}.weapon.small span{font-size:9px;position:relative}.weapon.small b{position:relative}.weapon.special i{position:absolute;left:0;right:0;bottom:0;height:0%;background:#5aaaff59}.weapon.special.ready{border-color:#7ad0ff;box-shadow:0 0 16px #78c8ff99}.weapon.strike{border-color:#ff7a4d}.weapon.strike.used{opacity:.25}.combo{position:absolute;top:118px;left:0;right:0;text-align:center;text-shadow:0 2px 6px #000}.combo b{font-size:26px;font-weight:900;color:#fff}.combo span{display:block;font-size:13px;font-weight:800;color:var(--accent);letter-spacing:2px}.tabs{display:flex;gap:6px;margin:8px 0}.tabs button{flex:1;padding:8px 4px;border-radius:10px;border:1px solid var(--edge);background:transparent;font-size:12px;font-weight:800;letter-spacing:1px;pointer-events:auto}.tabs button.on{background:#ffb5472e;border-color:var(--accent);color:var(--accent)}.item.sel{border-color:var(--accent)}.rank{font-size:64px;font-weight:900;line-height:1;margin:4px 0;background:linear-gradient(180deg,#fff3c4,#ffb547);-webkit-background-clip:text;background-clip:text;color:transparent}.stars{color:var(--accent);letter-spacing:4px;font-size:18px}.dialog{display:grid;gap:8px;margin:10px 0 12px;text-align:left}.line{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:start}.line svg{width:52px;height:52px;border-radius:12px;background:#ffffff0f;border:1px solid var(--edge)}.line b{display:block;font-size:12px;color:var(--accent);letter-spacing:1px}.line p{margin:2px 0 0;font-size:13.5px;color:var(--ink)}.board{text-align:left;font-size:14px;margin:8px 0;max-height:46vh;overflow:auto}.board div{display:grid;grid-template-columns:30px 1fr auto;gap:8px;padding:6px 8px;border-radius:8px}.board div:nth-child(odd){background:#ffffff0a}.board .me{color:var(--accent)}.nick{width:100%;padding:12px;border-radius:10px;border:1px solid var(--edge);background:#0000004d;color:var(--ink);font:inherit;font-size:16px;margin:6px 0;user-select:text;-webkit-user-select:text}.chip{display:inline-block;padding:3px 8px;border-radius:8px;background:#ffffff12;font-size:12px;margin:2px}.daily{padding:10px 12px;border-radius:12px;border:1px dashed var(--accent);text-align:left;margin:8px 0;font-size:13px}.daily b{color:var(--accent)}.ach{opacity:.45}.ach.got{opacity:1;border-color:var(--ok)}.opt{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin:6px 0;text-align:left}.opt button{padding:8px 12px;border-radius:10px;border:1px solid var(--edge);background:transparent;font-weight:800;pointer-events:auto;min-width:120px}
