:root{--bg:#030514;--fg:#e8ecff;--dim:#e8ecff73;--accent:#ff2a6d;--accent-glow:#ff2a6d99;--cyan:#05d9e8;--violet:#b14dff;--amber:#ffc44d;--good:#39ff14;--glass-bg:#060a186b;--glass-border:#05d9e84d;--integrity-color:#6ee7ff;--hud-pad:40px;--radius:14px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);-webkit-tap-highlight-color:transparent;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block}.dim{color:var(--dim)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}#screen-fx{pointer-events:none;z-index:5;position:fixed;inset:0}#damage-vignette{--damage-strength:1;transition:box-shadow .4s ease-out;position:absolute;inset:0;box-shadow:inset 0 0 150px #ff002800}#damage-vignette.hit{box-shadow:inset 0 0 calc(90px + 90px * var(--damage-strength)) rgba(255, 0, 40, calc(.85 * var(--damage-strength))), inset 0 0 40px rgba(255, 120, 140, calc(.4 * var(--damage-strength)));transition:none}#damage-vignette.shielded.hit{box-shadow:inset 0 0 140px #00beffb3,inset 0 0 40px #a0ebff59}#critical-vignette{opacity:0;background:radial-gradient(#0000 45%,#ff143c52 100%);transition:opacity .6s;position:absolute;inset:0}#critical-vignette.on{opacity:1;animation:1.15s ease-in-out infinite criticalPulse}@keyframes criticalPulse{0%,to{opacity:.55}50%{opacity:1}}#dash-streaks{opacity:0;background:radial-gradient(#0000 30%,#ffffff24 78%,#6ee7ff47 100%);transition:opacity .12s ease-out;position:absolute;inset:0}#dash-streaks.on{opacity:1}#hud{pointer-events:none;z-index:10;color:var(--fg);text-transform:uppercase;letter-spacing:2px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:absolute;inset:0}.hud-corner{flex-direction:column;gap:8px;display:flex;position:absolute}.hud-top-left{top:var(--hud-pad);left:var(--hud-pad)}.hud-top-right{top:var(--hud-pad);right:var(--hud-pad);align-items:flex-end}.hud-top-center{top:var(--hud-pad);text-align:center;position:absolute;left:50%;transform:translate(-50%)}.hud-bottom-center{bottom:calc(var(--hud-pad) - 8px);flex-direction:column;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-text{color:#ffffffb8;letter-spacing:4px;font-size:13px;font-weight:500}.hud-subtext{color:#ffffff57;letter-spacing:2px;font-size:11px;font-weight:400}.hud-value{color:#fff;letter-spacing:1px;text-shadow:0 0 14px #ffffff59;font-family:JetBrains Mono,ui-monospace,monospace;font-size:32px;font-weight:700;line-height:1}.hud-progress{flex-direction:column;gap:6px;min-width:190px;display:flex}.hud-progress-track{background:#ffffff1f;border-radius:2px;height:4px;overflow:hidden}.hud-progress-fill{transform-origin:0;background:linear-gradient(90deg, var(--cyan), #fff);width:100%;height:100%;box-shadow:0 0 12px var(--cyan);transition:transform .32s cubic-bezier(.22,1,.36,1);transform:scaleX(0)}.hud-progress-label{letter-spacing:1px;color:#fffc;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}.hud-progress.tick .hud-progress-label{animation:.3s ease-out tickPop}@keyframes tickPop{0%{color:#fff;transform:translateY(0)scale(1)}35%{color:var(--cyan);transform:translateY(-2px)scale(1.08)}to{transform:translateY(0)scale(1)}}.combo{place-items:center;width:88px;height:88px;margin-bottom:28px;display:grid;position:relative}.combo[hidden]{display:none}.combo-ring{width:100%;height:100%;transform:rotate(-90deg) scale(var(--combo-scale,1));transition:transform .18s cubic-bezier(.34,1.56,.64,1);position:absolute;inset:0}.combo-ring-track{fill:none;stroke:#ffffff1f;stroke-width:3px}.combo-ring-arc{fill:none;stroke:var(--cyan);stroke-width:3px;stroke-linecap:round;filter:drop-shadow(0 0 6px var(--cyan));transition:stroke-dashoffset .1s linear,stroke .3s}.combo.hot .combo-ring-arc{stroke:var(--amber);filter:drop-shadow(0 0 8px var(--amber))}.combo.blazing .combo-ring-arc{stroke:var(--accent);filter:drop-shadow(0 0 12px var(--accent))}.combo.expiring .combo-ring-arc{stroke:var(--accent);animation:.4s ease-in-out infinite alternate expiring}@keyframes expiring{0%{opacity:1}to{opacity:.35}}.combo-value{transform:scale(var(--combo-scale,1));color:#fff;text-shadow:0 0 12px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:26px;font-weight:700;line-height:1;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.combo-value:before{content:"×";opacity:.5;font-size:.7em}.combo-label{letter-spacing:3px;color:var(--dim);white-space:nowrap;margin-top:6px;font-size:9px;position:absolute;top:100%}.combo.bump .combo-value{animation:.28s cubic-bezier(.34,1.56,.64,1) comboBump}.combo.bump .combo-ring{animation:.28s cubic-bezier(.34,1.56,.64,1) comboBumpRing}@keyframes comboBump{0%{transform:scale(calc(var(--combo-scale,1) * 1.28))}to{transform:scale(var(--combo-scale,1))}}@keyframes comboBumpRing{0%{transform:rotate(-90deg) scale(calc(var(--combo-scale,1) * 1.28))}to{transform:rotate(-90deg) scale(var(--combo-scale,1))}}.powerup-chip{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);letter-spacing:2px;border-radius:999px;align-items:center;gap:10px;padding:8px 16px;font-size:12px;animation:.28s cubic-bezier(.34,1.56,.64,1) chipIn;display:inline-flex}.powerup-chip[hidden]{display:none}.powerup-icon{font-size:16px}.powerup-name{color:var(--cyan);font-weight:700}.powerup-time{color:var(--dim);font-family:JetBrains Mono,ui-monospace,monospace}.powerup-chip.fading{border-color:var(--accent-glow);animation:.5s ease-in-out infinite alternate fadingChip}@keyframes fadingChip{0%{opacity:1}to{opacity:.45}}@keyframes chipIn{0%{opacity:0;transform:translateY(-8px)scale(.92)}to{opacity:1;transform:none}}.hud-reticle{place-items:center;width:40px;height:40px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dash-ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.dash-ring-track{fill:none;stroke:#ffffff1a;stroke-width:2px}.dash-ring-arc{fill:none;stroke:#ffffff8c;stroke-width:2px;stroke-linecap:round;transition:stroke-dashoffset 80ms linear,stroke .2s}.hud-reticle.dash-ready .dash-ring-arc{stroke:var(--cyan);filter:drop-shadow(0 0 6px var(--cyan))}.hud-reticle.dash-pop{animation:.34s ease-out dashPop}@keyframes dashPop{0%{transform:translate(-50%,-50%)scale(1)}40%{transform:translate(-50%,-50%)scale(1.35)}to{transform:translate(-50%,-50%)scale(1)}}.reticle-dot{background:#ffffffbf;border-radius:50%;width:4px;height:4px;box-shadow:0 0 6px #fff9}.compass{--compass-radius:min(34vw, 32vh);pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.compass-mark{width:34px;height:34px;transition:opacity .12s linear;display:none;position:absolute;top:0;left:0}.compass-arrow{width:0;height:0;transform:scale(var(--mark-scale,1));border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:17px solid var(--amber);filter:drop-shadow(0 0 7px var(--amber));display:block}.compass-mark[data-kind=damage] .compass-arrow{border-left-color:var(--accent);filter:drop-shadow(0 0 9px var(--accent-glow))}.cycle-card{text-align:center;pointer-events:none;animation:2.4s cubic-bezier(.22,1,.36,1) forwards cycleCard;position:absolute;top:34%;left:50%;transform:translate(-50%)}.cycle-card[hidden]{display:none}.cycle-card-kicker{letter-spacing:10px;color:var(--dim);font-size:11px}.cycle-card-number{color:#fff;text-shadow:0 0 30px var(--cyan);font-family:JetBrains Mono,ui-monospace,monospace;font-size:76px;font-weight:700;line-height:1}.cycle-card-name{letter-spacing:8px;color:var(--cyan);font-size:13px}@keyframes cycleCard{0%{opacity:0;letter-spacing:0;transform:translate(-50%)scale(.9)}18%{opacity:1;transform:translate(-50%)scale(1)}72%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1.04)}}.run-summary{text-align:left;background:#ffffff09;border:1px solid #ffffff14;border-radius:12px;grid-template-columns:1fr auto;gap:8px 18px;margin:0 0 22px;padding:16px 18px;display:grid}.run-summary[hidden]{display:none}.run-summary dt{letter-spacing:2px;text-transform:uppercase;color:var(--dim);align-self:center;font-size:11px}.run-summary dd{color:#fff;text-align:right;margin:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:18px;font-weight:700}.setting-value{float:right;color:var(--cyan);letter-spacing:0;font-family:JetBrains Mono,ui-monospace,monospace}.slider{appearance:none;background:#ffffff29;border-radius:2px;outline:none;width:100%;height:4px}.slider::-webkit-slider-thumb{appearance:none;background:var(--cyan);width:18px;height:18px;box-shadow:0 0 12px var(--cyan);cursor:pointer;border:none;border-radius:50%}.slider::-moz-range-thumb{background:var(--cyan);width:18px;height:18px;box-shadow:0 0 12px var(--cyan);cursor:pointer;border:none;border-radius:50%}.slider:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.toasts{pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.toast{letter-spacing:3px;-webkit-backdrop-filter:blur(8px);white-space:nowrap;background:#060a18a8;border:1px solid #ffffff24;border-radius:999px;padding:7px 18px;font-size:12px;font-weight:700;animation:.24s cubic-bezier(.34,1.56,.64,1) toastIn}.toast-good{color:var(--cyan);border-color:#05d9e873;box-shadow:0 0 18px #05d9e840}.toast-warn{color:var(--amber);border-color:#ffc44d73}.toast-bad{color:var(--accent);border-color:var(--accent-glow);box-shadow:0 0 18px var(--accent-glow)}.toast-info{color:#ffffffd9}.toast.leaving{animation:.26s ease-in forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px)scale(.96)}}.integrity{--integrity-color:#6ee7ff;border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);background:#0407126b;border:1px solid #ffffff14;flex-direction:column;align-items:center;gap:7px;padding:12px 18px 14px;transition:border-color .3s,box-shadow .3s,transform .12s;display:flex}.integrity-head{align-items:baseline;gap:14px;display:flex}.integrity-label{letter-spacing:4px;color:#ffffff80;font-size:10px}.integrity-readout{color:var(--integrity-color);letter-spacing:1px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;font-weight:700}.integrity-bar{gap:6px;display:flex}.seg{background:#ffffff0f;border:1px solid #ffffff29;width:46px;height:15px;position:relative;overflow:hidden;transform:skew(-22deg)}.seg-chip,.seg-fill{transform-origin:0;position:absolute;inset:0}.seg-chip{background:#ffffffeb;transform:scaleX(0)}.seg-fill{background:linear-gradient(100deg, color-mix(in srgb, var(--integrity-color) 70%, #000 30%), var(--integrity-color));box-shadow:0 0 12px color-mix(in srgb, var(--integrity-color) 60%, transparent);transition:transform .14s cubic-bezier(.4,0,1,1);transform:scaleX(0)}.seg-spark{opacity:0;background:linear-gradient(100deg,#0000 20%,#fff 50%,#0000 80%);position:absolute;inset:0}.seg.filled .seg-fill,.seg.filled .seg-chip{transform:scaleX(1)}.seg.empty .seg-fill,.seg.empty .seg-chip,.seg.breaking .seg-fill{transform:scaleX(0)}.seg.breaking .seg-chip{transition:transform .45s cubic-bezier(.4,0,.2,1) .15s;transform:scaleX(0)}.seg.repairing .seg-spark{animation:.5s ease-out segSpark}@keyframes segSpark{0%{opacity:0;transform:translate(-100%)}40%{opacity:.9}to{opacity:0;transform:translate(100%)}}.integrity.hit{border-color:#ff2a6d99;animation:.3s cubic-bezier(.36,.07,.19,.97) integrityShake;transform:translate(0)}@keyframes integrityShake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}45%{transform:translate(4px)}70%{transform:translate(-2px)}}.integrity.repaired{box-shadow:0 0 26px color-mix(in srgb, var(--integrity-color) 55%, transparent)}.integrity.critical{border-color:#ff2a6da6;animation:1.15s ease-in-out infinite integrityAlarm}.integrity.critical .integrity-label,.integrity.critical .integrity-readout{color:var(--accent)}.integrity.critical .seg.filled .seg-fill{background:linear-gradient(100deg, #7a0020, var(--accent));box-shadow:0 0 16px var(--accent-glow)}@keyframes integrityAlarm{0%,to{box-shadow:0 0 #ff2a6d00}50%{box-shadow:0 0 30px #ff2a6d73}}.integrity.shielded{border-color:#00c8ff99;box-shadow:0 0 26px #00c8ff4d}.integrity.shielded .integrity-bar:after{content:"";pointer-events:none;background:repeating-linear-gradient(115deg,#78ebff24 0 3px,#0000 3px 8px);border:1px solid #78ebffa6;border-radius:4px;animation:2.4s linear infinite shieldDrift;position:absolute;inset:-4px -6px}.integrity-bar{position:relative}@keyframes shieldDrift{0%{background-position:0 0}to{background-position:34px 0}}.integrity.shield-break .integrity-bar:after{animation:.5s ease-out forwards shieldShatter}@keyframes shieldShatter{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}.integrity-shield{letter-spacing:3px;color:#7cebff;font-size:10px}.integrity-shield[hidden]{display:none}#overlay{z-index:20;-webkit-backdrop-filter:blur(6px);background:radial-gradient(#030514b8 0%,#01020af0 100%);place-items:center;padding:20px;transition:opacity .3s;display:grid;position:absolute;inset:0;overflow-y:auto}#overlay.hidden{opacity:0;pointer-events:none;display:none}.panel{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);text-align:center;border-radius:20px;width:min(520px,92vw);padding:42px 40px;animation:.42s cubic-bezier(.22,1,.36,1) fadeSlideUp;position:relative;box-shadow:0 20px 70px #0009,inset 0 1px #ffffff0f}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(22px)scale(.98)}to{opacity:1;transform:none}}.panel-mark{background:radial-gradient(circle at 35% 35%, #fff, var(--cyan) 45%, transparent 72%);width:46px;height:46px;box-shadow:0 0 34px var(--cyan);border-radius:50%;margin:0 auto 14px;animation:2.6s ease-in-out infinite markPulse}@keyframes markPulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.09)}}.panel h1{letter-spacing:10px;text-transform:uppercase;color:#0000;filter:drop-shadow(0 0 22px #05d9e873);background-image:linear-gradient(#fff,#9fd8ff);-webkit-background-clip:text;background-clip:text;margin:0 0 12px;font-size:46px;font-weight:800}.panel h1.title-death{filter:drop-shadow(0 0 22px var(--accent-glow));background-image:linear-gradient(#fff,#ff5c7c)}.panel h1.title-victory{filter:drop-shadow(0 0 22px #39ff1466);background-image:linear-gradient(#fff,#9dff8a)}.panel p{color:#e8ecffb8;margin:0 0 24px;font-size:15px;line-height:1.6}.panel-hint{letter-spacing:1px;color:var(--dim)!important;font-size:12px!important}.controls-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:22px;display:grid}.control-key{letter-spacing:2px;color:var(--dim);text-transform:uppercase;background:#ffffff0a;border:1px solid #ffffff12;border-radius:10px;flex-direction:column;gap:4px;padding:10px 8px;font-size:10px;display:flex}.control-key span{color:var(--cyan);letter-spacing:1px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;font-weight:700}.panel-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;display:flex}button{cursor:pointer;font-family:inherit}.btn-primary,.btn-secondary,.btn-icon,.btn-toggle,.color-btn{transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,background .2s,border-color .2s,color .2s}:where(button):focus-visible{outline:2px solid var(--cyan);outline-offset:3px;box-shadow:0 0 0 5px #05d9e82e}.btn-primary{letter-spacing:3px;text-transform:uppercase;color:#041018;background:linear-gradient(120deg, #7ef2ff, var(--cyan));border:none;border-radius:999px;padding:15px 40px;font-size:15px;font-weight:800;box-shadow:0 6px 26px #05d9e866}.btn-primary:hover:not(:disabled){transform:translateY(-2px)scale(1.03);box-shadow:0 10px 34px #05d9e88c}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-primary[hidden]{display:none}.btn-primary.full{width:100%;margin-top:26px}.btn-secondary{border:1px solid var(--glass-border);color:#e8ecffcc;letter-spacing:3px;text-transform:uppercase;background:0 0;border-radius:999px;padding:15px 28px;font-size:13px;font-weight:700}.btn-secondary:hover{border-color:var(--cyan);color:var(--cyan);transform:translateY(-2px)}.btn-icon{border:1px solid var(--glass-border);width:42px;height:42px;color:var(--cyan);background:#ffffff0a;border-radius:12px;font-size:20px;font-weight:700;line-height:1}.btn-icon:hover{background:#05d9e829;transform:scale(1.08)}.btn-toggle{border:1px solid var(--glass-border);color:#ffffff73;letter-spacing:2px;background:#00000073;border-radius:999px;min-width:92px;padding:9px 18px;font-size:13px;font-weight:700}.btn-toggle.active{border-color:var(--cyan);color:var(--cyan);background:#05d9e824;box-shadow:0 0 14px #05d9e84d}.setting-group{text-align:left;border-bottom:1px solid #ffffff12;padding:16px 0}.setting-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.setting-group label{letter-spacing:3px;text-transform:uppercase;color:var(--dim);margin-bottom:10px;font-size:12px;display:block}.setting-row label{margin-bottom:0}.level-selector{align-items:center;gap:16px;display:flex}#lvl-display{color:#fff;text-align:center;min-width:40px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:22px;font-weight:700}.color-picker{gap:12px;display:flex}.color-btn{background:var(--swatch);width:38px;height:38px;box-shadow:0 0 12px var(--swatch);border:2px solid #0000;border-radius:50%}.color-btn:hover{transform:scale(1.14)}.color-btn.active{border-color:#fff;transform:scale(1.2)}.registry{text-align:left;scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent;gap:14px;max-height:46vh;padding-right:6px;display:grid;overflow-y:auto}.registry-entry{border-left:2px solid var(--cyan);background:#ffffff09;border-radius:12px;padding:14px 16px}.registry-entry h2{letter-spacing:3px;text-transform:uppercase;color:var(--cyan);margin:0 0 6px;font-size:13px}.registry-entry p{color:#e8ecffb8;margin:0;font-size:13px;line-height:1.55}.registry-entry strong{color:#fff;font-weight:700}.hidden{display:none!important}#touch-controls{z-index:15;pointer-events:none;display:none;position:absolute;inset:0}#touch-left-zone,#touch-right-zone{pointer-events:auto;width:50%;height:100%;position:relative}#touch-controls{flex-direction:row}#touch-joystick-base{pointer-events:none;-webkit-backdrop-filter:blur(8px);background:#060a1866;border:1px solid #05d9e84d;border-radius:50%;width:140px;height:140px;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 0 20px #05d9e81a,0 0 15px #05d9e833}#touch-joystick-stick{background:#05d9e84d;border:2px solid #05d9e8cc;border-radius:50%;width:56px;height:56px;transition:transform 50ms ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 15px #05d9e899}#touch-right-zone{justify-content:flex-end;align-items:flex-end;gap:18px;padding:0 28px 34px 0;display:flex}#touch-jump-btn,#touch-dash-btn{color:#fff;-webkit-backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none;pointer-events:auto;background:#ffffff1a;border:2px solid #ffffff38;border-radius:50%;place-items:center;width:74px;height:74px;font-size:26px;display:grid}#touch-jump-btn:active,#touch-dash-btn:active{color:#fff;background:#05d9e84d;transform:scale(.9);box-shadow:inset 0 0 20px #05d9e899,0 0 30px #05d9e880}#touch-right-zone.tap-active{background:radial-gradient(circle,#05d9e814 0%,#0000 60%)}@media (pointer:coarse){#touch-controls:not(.hidden){display:flex}}@media (width<=768px){#hud{--hud-pad:18px}.hud-value{font-size:24px}.hud-progress{min-width:150px}.integrity-label{letter-spacing:3px;font-size:9px}.seg{width:34px;height:13px}.combo{width:68px;height:68px}.combo-value{font-size:20px}.toasts{top:16%}.panel{padding:30px 22px}.panel h1{letter-spacing:6px;font-size:32px}.panel p{font-size:14px}.panel-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%;padding:17px}.setting-row{flex-direction:column;align-items:flex-start}.btn-toggle{width:100%;padding:14px}.level-selector{justify-content:space-between;width:100%}.btn-icon{width:52px;height:52px;font-size:24px}.color-picker{justify-content:space-between;width:100%}.color-btn{width:46px;height:46px}.controls-grid{display:none}.registry{max-height:40vh}.compass{--compass-radius:min(38vw, 30vh)}.cycle-card-number{font-size:52px}.run-summary dd{font-size:16px}}@media (height<=480px){#hud{--hud-pad:12px}.hud-bottom-center{bottom:8px}.integrity{padding:8px 12px 10px}.seg{height:11px}}
