:root{--bg:#05070d;--panel:#0e1426d1;--line:#587ac847;--ink:#e8eeff;--ink-dim:#8b9bc4;--accent:#4cc9ff;--danger:#ff3b5c;--ok:#5cffa0;--r:14px;--tap:44px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;touch-action:manipulation;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:700;overflow:hidden}#app{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#hud{flex:none;align-items:stretch;gap:4px;padding:6px 8px 4px;display:flex}.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;min-width:0;padding:5px 2px;display:flex}.stat .k{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;font-size:8.5px}.stat b{font-variant-numeric:tabular-nums;font-size:15px;line-height:1}#stat-lives b{color:var(--danger)}#stat-points b{color:var(--accent)}#stat-quota b{color:var(--ok)}.stat.low b{animation:.7s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.25}}.icon-btn{background:var(--panel);border:1px solid var(--line);width:38px;color:var(--ink);border-radius:10px;flex:none;font-family:inherit;font-size:16px}.icon-btn.off{color:var(--ink-dim);opacity:.5}#stage{touch-action:none;flex:auto;min-height:0;position:relative}#stage canvas{width:100%;height:100%;display:block}#controls{flex-direction:column;flex:none;gap:6px;padding:6px 8px 8px;display:flex;position:relative}#wave-banner{border-radius:var(--r);background:var(--panel);border:1px solid var(--line);align-items:center;gap:10px;padding:7px 11px;display:flex}.wb-side{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:nowrap;font-size:11px}.wb-main{flex:1;min-width:0}.wb-title{font-size:13px;line-height:1.2}.wb-title.boss{color:#ffd23f}.wb-title.flying{color:#fff}.wb-label{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:600;overflow:hidden}.wb-next{flex:none;align-items:flex-start;gap:8px;display:flex}.wb-slot{flex-direction:column;align-items:center;gap:3px;display:flex}.wb-swatch{border:1.5px solid #ffffff59;border-radius:8px;width:26px;height:26px}.wb-swatch.small{opacity:.75;border-radius:6px;width:18px;height:18px;margin-top:4px}.wb-cap{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;font-size:7.5px}.tip{color:#ffe8a3;background:#ffd23f1a;border:1px solid #ffd23f4d;border-radius:10px;padding:6px 10px;font-size:10.5px;font-weight:600;line-height:1.35}#palette{flex-direction:column;gap:5px;display:flex}.row{gap:5px;display:flex}.row[hidden]{display:none}.chip.lum{flex-direction:row;gap:6px;height:38px}.chip.lum svg{width:15px;height:15px}.chip{min-width:0;height:var(--tap);color:var(--ink);letter-spacing:.04em;background:#ffffff0a;border:2px solid #ffffff1a;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:3px 2px;font-family:inherit;font-size:10px;font-weight:800;transition:transform 90ms,border-color .12s,background .12s;display:flex}.chip:active{transform:scale(.94)}.chip svg{width:19px;height:19px;display:block}.chip .cap{text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:8.5px;overflow:hidden}.chip.on{background:#ffffff1c}.chip.on .cap{color:var(--ink)}.chip.locked{opacity:.32}button{cursor:pointer;font-family:inherit}.primary{width:100%;height:var(--tap);letter-spacing:.04em;color:#05070d;background:linear-gradient(160deg,#7cf7c0,#2bd48a);border:2px solid #ffffff29;border-radius:12px;padding:0 12px;font-size:13px;font-weight:800;transition:transform 90ms,filter .12s;box-shadow:0 0 22px #2bd48a66}.primary:active{transform:scale(.98)}.primary.wave-running{color:var(--ink-dim);box-shadow:none;background:linear-gradient(160deg,#2a3350,#1c2338)}button:disabled{pointer-events:none}button:disabled:not(.wave-running){opacity:.4;filter:grayscale(.6)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.overlay{z-index:20;-webkit-backdrop-filter:blur(6px);background:radial-gradient(circle at 50% 35%,#141e3cb3,#03050af0);justify-content:center;align-items:center;padding:18px;animation:.22s fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.overlay[hidden]{display:none}@keyframes fade{0%{opacity:0}}.sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--line);background:linear-gradient(170deg,#141c34f5,#090d1afa);border-radius:20px;flex-direction:column;gap:12px;width:100%;max-width:440px;max-height:100%;padding:20px 18px;display:flex;overflow-y:auto;box-shadow:0 20px 70px #0009}.sheet h1{letter-spacing:-.02em;text-align:center;background:linear-gradient(100deg,#ff2d55,#ffe500 30%,#2bff88 55%,#2d8cff 78%,#b14dff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:40px;line-height:1}.sheet h1 span{-webkit-text-fill-color:var(--ink);color:var(--ink)}.sheet h2{text-align:center;margin:0;font-size:22px}.tagline,.sub{text-align:center;color:var(--ink-dim);margin:0;font-size:12.5px;font-weight:600;line-height:1.5}.big{height:52px;font-size:15px}.diff,.lang{gap:6px;display:flex}.lang button{border:1px solid var(--line);color:var(--ink-dim);background:#ffffff08;border-radius:10px;flex:1;padding:7px 4px;font-family:inherit;font-size:11px;font-weight:700}.lang button.on{color:var(--ink);background:#ffffff1a;border-color:#ffffff47}.diff button{color:var(--ink-dim);background:#ffffff0a;border:2px solid #ffffff1a;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px;font-size:11px;font-weight:800;display:flex}.diff button .rate{opacity:.8;font-size:9px;font-weight:600}.diff button.on{color:#05070d;background:var(--accent);border-color:#fff5}.rules{color:var(--ink-dim);font-size:11.5px;font-weight:600;line-height:1.5}.rules summary{cursor:pointer;color:var(--accent);padding:6px 0}.rules ul{margin:4px 0 0;padding-left:18px}.rules li{margin-bottom:6px}.rules b{color:var(--ink)}#shop-list{flex-direction:column;gap:7px;display:flex}.skill{border:1px solid var(--line);background:#ffffff09;border-radius:13px;align-items:center;gap:10px;padding:10px 12px;display:flex}.skill .txt{flex:1;min-width:0}.skill .name{font-size:13px}.skill .det{color:var(--ink-dim);font-size:10px;font-weight:600;line-height:1.35}.skill .lvl{color:var(--accent);font-variant-numeric:tabular-nums;font-size:10px}.skill button{color:#05070d;background:linear-gradient(160deg,#7cf7c0,#2bd48a);border:2px solid #ffffff29;border-radius:11px;flex:none;min-width:62px;height:40px;font-size:12px;font-weight:800}.go-stats{grid-template-columns:1fr 1fr;gap:6px;display:grid}.go-stats div{border:1px solid var(--line);text-align:center;background:#ffffff0a;border-radius:12px;padding:10px}.go-stats span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:3px;font-size:9px;display:block}.go-stats b{font-variant-numeric:tabular-nums;font-size:19px}#toast{z-index:30;pointer-events:none;flex-direction:column;align-items:center;gap:4px;padding-bottom:4px;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.toast-item{letter-spacing:.02em;border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;background:#0a0f1eeb;border-radius:999px;max-width:92vw;padding:7px 15px;font-size:12px;font-weight:800;animation:.28s cubic-bezier(.2,1.4,.4,1) toastIn;overflow:hidden;box-shadow:0 8px 30px #00000080}.toast-item.out{animation:.3s forwards toastOut}.toast-item.warn{color:#ffd23f;border-color:#ffd23f66}.toast-item.bad{color:var(--danger);border-color:#ff3b5c66}.toast-item.good{color:var(--ok);border-color:#5cffa066}@keyframes toastIn{0%{opacity:0;transform:translateY(-12px)scale(.92)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px)}}@media (min-height:780px){.stat b{font-size:17px}.wb-title{font-size:15px}:root{--tap:48px}}
