:root{--ink: #3d3d3d;--ink-muted: #6e6e6e;--surface: rgba(255, 255, 255, .82);--surface-border: rgba(83, 83, 83, .24);--accent: #e85d04;--dash-ready: #f48c06;--cyan-glow: #00b4d8;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", Courier, monospace;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}body.dark-ui{--ink: #f1f5f9;--ink-muted: #cbd5e1;--surface: rgba(15, 23, 42, .78);--surface-border: rgba(248, 250, 252, .22)}body.rewinding-fx #game-canvas{filter:hue-rotate(-25deg) contrast(1.12) saturate(1.25)}*{box-sizing:border-box;user-select:none;-webkit-user-select:none}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#f7f7f7;font-family:var(--font-sans);color:var(--ink);transition:color .35s ease}#game-canvas{position:fixed;inset:0;width:100vw;height:100vh;display:block;touch-action:none;transition:filter .2s ease}#ui-layer{position:fixed;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:18px 24px}#hud-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.hud-left{display:flex;flex-direction:column;gap:8px}.badge-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}#act-badge,#chrono-pill{font-family:var(--font-mono);font-size:11.5px;font-weight:700;letter-spacing:.07em;padding:5px 10px;border-radius:6px;background:var(--surface);border:1px solid var(--surface-border);backdrop-filter:blur(8px);width:fit-content}#chrono-pill.armed{border-color:#ffbe0b;color:#d97706;box-shadow:0 0 14px #ffbe0b61}body.dark-ui #chrono-pill.armed{color:#ffd166}.quick-toggles{display:flex;flex-wrap:wrap;gap:6px;pointer-events:auto}.quick-toggles button{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--surface-border);border-radius:5px;padding:4px 8px;cursor:pointer;backdrop-filter:blur(6px);transition:transform .12s ease,border-color .15s ease}.quick-toggles button:hover{border-color:var(--accent);transform:translateY(-1px)}.score-cluster{font-family:var(--font-mono);font-size:clamp(20px,3vw,28px);font-weight:800;letter-spacing:.1em;display:flex;gap:18px;padding:6px 14px;border-radius:8px;background:var(--surface);border:1px solid var(--surface-border);backdrop-filter:blur(8px)}#hi-score{color:var(--ink-muted)}.milestone-blink{animation:blink-score .25s steps(2,start) 4}@keyframes blink-score{to{visibility:hidden}}#wifi-boss-bar{position:fixed;top:78px;left:50%;transform:translate(-50%);width:min(460px,88vw);background:#0f172ae0;color:#e0f2fe;border:1px solid rgba(56,189,248,.65);border-radius:10px;padding:8px 14px;backdrop-filter:blur(10px);box-shadow:0 0 24px #00e5ff47}.wifi-bar-header{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11.5px;font-weight:800;letter-spacing:.06em;margin-bottom:6px}#wifi-relay-count{color:#38bdf8}.wifi-progress-track{width:100%;height:6px;background:#ffffff24;border-radius:999px;overflow:hidden}#wifi-progress-fill{height:100%;width:10%;background:linear-gradient(90deg,#00e5ff,#3b82f6);transition:width .08s linear}#act-toast{position:fixed;top:132px;left:50%;transform:translate(-50%) translateY(-16px);opacity:0;background:var(--surface);border:1px solid var(--surface-border);border-left:4px solid var(--accent);border-radius:10px;padding:10px 20px;text-align:center;backdrop-filter:blur(10px);box-shadow:0 10px 28px #00000024;transition:opacity .35s ease,transform .35s ease}#act-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}#act-toast-title{font-family:var(--font-mono);font-weight:800;font-size:14px;letter-spacing:.09em}#act-toast-sub{font-size:12.5px;color:var(--ink-muted);margin-top:3px}#rewind-banner{position:fixed;top:28%;left:50%;transform:translate(-50%);background:#0f172ae0;border:2px solid #ffd166;color:#ffd166;border-radius:12px;padding:12px 24px;text-align:center;box-shadow:0 0 32px #ffd16673}.rewind-title{font-family:var(--font-mono);font-weight:800;font-size:17px;letter-spacing:.1em}.rewind-sub{font-size:12.5px;color:#f8fafc;margin-top:3px}#bonus-layer{position:fixed;top:38%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.bonus-popup{font-family:var(--font-mono);font-weight:800;font-size:15px;color:#ff9f1c;text-shadow:0 2px 8px rgba(0,0,0,.55);animation:float-up .92s cubic-bezier(.2,.8,.2,1) forwards}@keyframes float-up{0%{opacity:0;transform:translateY(10px) scale(.85)}20%{opacity:1;transform:translateY(0) scale(1.06)}to{opacity:0;transform:translateY(-34px) scale(.96)}}#prologue-card{position:fixed;top:15%;left:min(52%,calc(50% - 20px));transform:translate(-35%);max-width:510px;background:#f7f7f7e0;border:1px solid rgba(83,83,83,.18);border-radius:12px;padding:20px 26px;color:#535353;backdrop-filter:blur(8px);box-shadow:0 12px 32px #0000000f}#prologue-card h1{margin:0 0 8px;font-size:24px;font-weight:600;color:#202124}#prologue-card .offline-lead{margin:0 0 6px;font-size:14px;font-weight:500}#prologue-card ul{margin:0 0 14px;padding-left:20px;font-size:13.5px;line-height:1.65}kbd{font-family:var(--font-mono);font-size:11.5px;font-weight:700;padding:1px 6px;border-radius:4px;background:#5353531f;border:1px solid rgba(83,83,83,.28)}.error-code{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:#757575;margin-bottom:12px}.start-prompt{font-family:var(--font-mono);font-size:13px;font-weight:800;color:#202124;letter-spacing:.06em;animation:pulse-prompt 1.4s ease-in-out infinite}@keyframes pulse-prompt{0%,to{opacity:1}50%{opacity:.45}}#pause-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;padding:26px 34px;text-align:center;backdrop-filter:blur(14px);box-shadow:0 20px 50px #0000003d;pointer-events:auto}#gameover-card{position:fixed;top:32%;left:58%;transform:translate(-50%,-50%);background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;padding:24px 32px;text-align:center;backdrop-filter:blur(14px);box-shadow:0 20px 50px #0000003d;pointer-events:auto}.gameover-title{font-family:var(--font-mono);font-size:24px;font-weight:800;letter-spacing:.14em;margin-bottom:16px}#restart-btn{width:54px;height:54px;border-radius:12px;border:2px solid var(--surface-border);background:#535353;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-bottom:18px;transition:transform .15s ease,background .15s ease}#restart-btn:hover{background:var(--accent);transform:scale(1.07) rotate(-25deg)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:12px;font-family:var(--font-mono)}.stats-grid span{display:block;font-size:10.5px;color:var(--ink-muted);margin-bottom:3px}.stats-grid strong{font-size:16px}.combo-line{font-family:var(--font-mono);font-size:12px;color:var(--accent);font-weight:700;margin-bottom:12px}.restart-hint{font-size:12.5px;color:var(--ink-muted)}#ability-bar{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;pointer-events:auto}.ability-pill{position:relative;width:min(275px,44vw);padding:8px 14px;border-radius:999px;border:1px solid var(--surface-border);background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:11px;font-weight:800;letter-spacing:.06em;cursor:pointer;overflow:hidden;backdrop-filter:blur(8px)}.ability-pill.ready{border-color:var(--dash-ready);box-shadow:0 0 18px #f48c0657}#mega-btn.mega-ready{border-color:#ef4444;box-shadow:0 0 22px #ef444480;animation:pulse-mega .9s ease-in-out infinite}#mega-btn.mega-active{border-color:#ffd166;box-shadow:0 0 26px #ffd166a6}@keyframes pulse-mega{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.ability-bar-track{position:absolute;inset:0;z-index:0;opacity:.28}#dash-bar-fill{height:100%;width:100%;background:linear-gradient(90deg,#ffba08,#e85d04);transition:width .06s linear}#mega-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,#f97316,#dc2626);transition:width .08s linear}#dash-bar-label,#mega-bar-label{position:relative;z-index:1}.hidden{display:none!important}@media(max-width:700px){#ui-layer{padding:12px}#prologue-card{left:50%;top:12%;transform:translate(-50%);width:90vw;padding:16px}.quick-toggles button{font-size:10px;padding:4px 6px}#gameover-card{left:50%;top:42%}}
