:root{--cyan: #00f0ff;--magenta: #ff2bd6;--violet: #7b2bff;--bg: #05010f;--text: #e8f4ff;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;color:var(--text)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--bg);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.stage{position:fixed;inset:0;touch-action:none}.stage canvas{display:block;width:100%;height:100%}.hud{position:fixed;inset:0;pointer-events:none;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:flex-start;font-variant-numeric:tabular-nums;letter-spacing:.06em;text-transform:uppercase}.hud-block{display:flex;flex-direction:column;gap:2px}.hud-block.right{align-items:flex-end}.hud-label{font-size:11px;opacity:.6}.hud-value{font-size:clamp(22px,4vw,34px);font-weight:700;color:var(--cyan);text-shadow:0 0 12px rgba(0,240,255,.8),0 0 28px rgba(0,240,255,.35)}.hud-value.small{font-size:clamp(14px,2.4vw,18px);color:var(--magenta);text-shadow:0 0 10px rgba(255,43,214,.8)}.lives{display:flex;gap:6px;margin-top:4px}.life{width:18px;height:18px;clip-path:polygon(50% 0%,100% 100%,50% 75%,0% 100%);background:var(--magenta);box-shadow:0 0 10px var(--magenta);transition:opacity .2s,transform .2s}.life.lost{opacity:.15;transform:scale(.8);box-shadow:none}.hud-center{position:absolute;left:50%;top:max(14px,env(safe-area-inset-top));transform:translate(-50%);font-size:11px;opacity:.55}.speedbar{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(220px,50vw);height:4px;background:#ffffff14;border-radius:2px;overflow:hidden;pointer-events:none}.speedbar>i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta));box-shadow:0 0 12px var(--cyan);transition:width .15s linear}.flash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#ff3c3c00 40%,#ff28508c);opacity:0;transition:opacity .35s ease-out}.flash.on{opacity:1;transition:opacity .03s}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at center,#05010f8c,#05010fe6);backdrop-filter:blur(2px);animation:fadeIn .35s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel{text-align:center;max-width:520px;width:100%}.title{font-size:clamp(44px,12vw,96px);font-weight:900;letter-spacing:.12em;line-height:1;background:linear-gradient(180deg,#ffffff 0%,var(--cyan) 45%,var(--magenta) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 18px rgba(0,240,255,.55)) drop-shadow(0 0 40px rgba(255,43,214,.3));animation:pulse 2.6s ease-in-out infinite}@keyframes pulse{0%,to{filter:drop-shadow(0 0 18px rgba(0,240,255,.55)) drop-shadow(0 0 40px rgba(255,43,214,.3))}50%{filter:drop-shadow(0 0 28px rgba(0,240,255,.9)) drop-shadow(0 0 60px rgba(255,43,214,.5))}}.subtitle{margin-top:10px;font-size:clamp(13px,2.4vw,16px);letter-spacing:.3em;text-transform:uppercase;opacity:.7}.over-title{font-size:clamp(36px,9vw,72px);font-weight:900;letter-spacing:.14em;color:var(--magenta);text-shadow:0 0 20px rgba(255,43,214,.9),0 0 60px rgba(255,43,214,.4)}.stats{margin:26px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:420px}.stat{padding:12px 8px;border:1px solid rgba(0,240,255,.25);border-radius:10px;background:#00f0ff0d;box-shadow:inset 0 0 20px #00f0ff0f}.stat b{display:block;font-size:clamp(20px,4vw,28px);color:var(--cyan);text-shadow:0 0 10px rgba(0,240,255,.7);font-variant-numeric:tabular-nums}.stat.best b{color:#ffd166;text-shadow:0 0 10px rgba(255,209,102,.8)}.stat span{display:block;margin-top:4px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;opacity:.6}.newrecord{margin-top:14px;color:#ffd166;font-weight:700;letter-spacing:.25em;text-transform:uppercase;text-shadow:0 0 14px rgba(255,209,102,.9);animation:pulse 1.2s ease-in-out infinite}.btn{margin-top:28px;display:inline-block;padding:16px 44px;font-size:clamp(15px,2.6vw,19px);font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:#05010f;background:var(--cyan);border:none;border-radius:999px;cursor:pointer;box-shadow:0 0 20px #00f0ffb3,0 0 60px #00f0ff4d;transition:transform .12s,box-shadow .12s,background .12s;font-family:inherit}.btn:hover,.btn:focus-visible{transform:translateY(-2px) scale(1.03);box-shadow:0 0 30px #00f0ffe6,0 0 80px #00f0ff66;outline:none}.btn:active{transform:scale(.97)}.controls{margin-top:26px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.6}.controls kbd{display:inline-block;padding:2px 7px;margin-right:4px;border:1px solid rgba(255,255,255,.3);border-radius:5px;font-family:inherit;font-size:11px}.legend{margin-top:18px;display:flex;justify-content:center;gap:20px;font-size:12px;letter-spacing:.1em;opacity:.75}.legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:middle;border-radius:2px}.legend .c{background:var(--cyan);box-shadow:0 0 8px var(--cyan);transform:rotate(45deg)}.legend .a{background:#ff6a3d;box-shadow:0 0 8px #ff6a3d;border-radius:50%}.legend .w{background:var(--magenta);box-shadow:0 0 8px var(--magenta);width:16px;height:6px}.pause-btn{position:absolute;left:50%;bottom:max(34px,calc(env(safe-area-inset-bottom) + 20px));transform:translate(-50%);pointer-events:auto;width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,240,255,.35);background:#05010f80;color:var(--cyan);font-size:13px;font-family:inherit;letter-spacing:-.1em;cursor:pointer;opacity:.55;transition:opacity .15s,box-shadow .15s}.pause-btn:hover,.pause-btn:focus-visible{opacity:1;box-shadow:0 0 14px #00f0ff80;outline:none}.overlay.pause{background:#05010fb8;backdrop-filter:blur(4px) saturate(.7);cursor:pointer}.pause-title{font-size:clamp(40px,10vw,84px);font-weight:900;letter-spacing:.3em;padding-left:.3em;color:#fff;text-shadow:0 0 18px rgba(0,240,255,.9),0 0 50px rgba(0,240,255,.45);animation:pulse 1.8s ease-in-out infinite}.difficulty{margin:22px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:420px}.diff-btn{position:relative;padding:12px 6px 10px;font-family:inherit;font-size:clamp(12px,2.4vw,14px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text);background:#ffffff0a;border:1px solid rgba(255,255,255,.18);border-radius:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s,transform .12s}.diff-btn small{display:block;margin-bottom:4px;font-size:10px;font-weight:400;opacity:.45}.diff-btn:hover,.diff-btn:focus-visible{border-color:#ffffff73;transform:translateY(-1px);outline:none}.diff-btn.active{--glow: var(--cyan);color:#fff;border-color:var(--glow);background:color-mix(in srgb,var(--glow) 14%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--glow) 55%,transparent),inset 0 0 18px color-mix(in srgb,var(--glow) 18%,transparent);text-shadow:0 0 8px var(--glow)}.diff-btn.easy.active{--glow: #4dff9d}.diff-btn.normal.active{--glow: var(--cyan)}.diff-btn.hard.active{--glow: var(--magenta)}.diff-hint{margin-top:10px;font-size:12px;letter-spacing:.08em;opacity:.6;min-height:1.2em}.best-line{margin-top:18px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#ffd166;text-shadow:0 0 10px rgba(255,209,102,.6)}@media(max-width:480px){.stats{gap:8px}.btn{padding:14px 36px}}
