:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f6f8ff;--ink-muted:#a9b4ca;--void:#03050d;--void-soft:#080d1c;--line:#b8cfff33;--shield:#f8fbff;--danger:#ff465d;--energy:#56f6a9;--repair:#49b8ff;--violet:#bb74ff}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--void);width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{color:var(--ink);-webkit-user-select:none;user-select:none;overscroll-behavior:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}body:before,body:after{z-index:0;pointer-events:none;content:"";position:fixed;inset:0}body:before{background:radial-gradient(circle at 50% 56%, #1f417c38, transparent 31%), radial-gradient(circle at 18% 12%, #532b8d1f, transparent 30%), linear-gradient(155deg, var(--void-soft), var(--void) 62%)}body:after{opacity:.42;background-image:radial-gradient(circle,#dbe5ff8f 0 1px,#0000 1.3px),radial-gradient(circle,#86aeff61 0 1px,#0000 1.2px);background-position:0 0,31px 49px;background-size:83px 83px,137px 137px}.hud{z-index:3;padding:max(1rem, env(safe-area-inset-top)) clamp(1rem, 3vw, 2.5rem) 0;pointer-events:none;transition:opacity .18s;position:fixed;top:0;left:0;right:0}body[data-game-state=paused] .hud{opacity:.42}.hud__inner{justify-content:space-between;align-items:flex-start;gap:1.5rem;width:100%;display:flex}.wordmark{color:var(--ink-muted);letter-spacing:.18em;text-transform:uppercase;grid-template-columns:1.05rem auto;align-items:center;gap:0 .65rem;margin:0;font-size:clamp(.78rem,1.1vw,.96rem);font-weight:650;line-height:1.16;display:grid}.wordmark strong{color:var(--ink);letter-spacing:.25em;grid-column:2;font-size:1.18em;font-weight:780}.wordmark__orbit{border:1px solid #f6f8ffb8;border-radius:50%;grid-row:1/span 2;width:1.05rem;height:1.05rem;position:relative}.wordmark__orbit:after{background:var(--danger);width:5px;height:5px;box-shadow:0 0 10px var(--danger);content:"";border-radius:50%;position:absolute;top:-3px;right:0}.mode-chip{top:max(3.7rem, calc(env(safe-area-inset-top) + 2.7rem));color:#b9e5ff;letter-spacing:.16em;text-transform:uppercase;background:#1252843d;border:1px solid #49b8ff7a;border-radius:999px;padding:.28rem .48rem;font-size:.63rem;font-weight:780;line-height:1;position:absolute;left:clamp(1rem,3vw,2.5rem);box-shadow:0 0 1rem #49b8ff1f}.mode-chip:empty{display:none}.sound-toggle{top:max(3.7rem, calc(env(safe-area-inset-top) + 2.7rem));color:#c8d8f4;cursor:pointer;pointer-events:auto;background:#060c1bb8;border:1px solid #aecbff4d;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:color .16s,border-color .16s,background-color .16s,box-shadow .16s;display:grid;position:absolute;right:clamp(1rem,3vw,2.5rem);box-shadow:0 0 1.4rem #689fff14}.sound-toggle:hover{color:var(--ink);background:#16284bc7;border-color:#f6f8ffb3}.sound-toggle:active{background:#2a4370b8}.sound-toggle:focus-visible{outline-offset:3px;outline:3px solid #56f6a9c7}.sound-toggle[data-muted=true]{color:var(--ink-muted);box-shadow:none;background:#060c1be0}.sound-toggle[data-playing=true][data-muted=false]{color:#e2ccff;border-color:#bb74ff94;box-shadow:0 0 1.5rem #bb74ff2e}.sound-toggle svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:1.25rem;height:1.25rem}.sound-toggle__speaker{fill:currentColor;stroke:none}.sound-toggle__mute,.sound-toggle[data-muted=true] .sound-toggle__waves{display:none}.sound-toggle[data-muted=true] .sound-toggle__mute{display:block}.sound-toggle[data-playing=true] .sound-toggle__waves{animation:.76s ease-in-out infinite sound-signal}@keyframes sound-signal{50%{opacity:.35}}[data-rank=D]{--rank-colour:#a9b4ca}[data-rank=C]{--rank-colour:#78a9ff}[data-rank=B]{--rank-colour:#49dfff}[data-rank=A]{--rank-colour:#56f6a9}[data-rank=S]{--rank-colour:#ffd84d}[data-rank=S\+]{--rank-colour:#bb74ff}[data-rank=SS]{--rank-colour:#ff8db8}.performance-hud{top:max(3.7rem, calc(env(safe-area-inset-top) + 2.7rem));white-space:nowrap;background:#060c1bc2;border:1px solid #aecbff33;border-radius:999px;justify-content:center;align-items:center;gap:.7rem;min-width:9.5rem;min-height:2.75rem;padding:.36rem .68rem;transition:opacity .22s,border-color .18s,box-shadow .18s;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 .7rem 2rem #00000038}body[data-game-state=ready] .performance-hud{opacity:.34}.performance-stat{min-width:3.65rem;color:var(--ink-muted);letter-spacing:.13em;text-transform:uppercase;justify-content:center;align-items:baseline;gap:.28rem;font-size:.58rem;font-weight:760;line-height:1;display:flex}.performance-stat+.performance-stat{border-left:1px solid #aecbff33;padding-left:.68rem}.performance-stat strong{min-width:2ch;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0;text-align:center;transform-origin:50%;font-size:1.2rem;line-height:1;display:inline-block}.performance-rank strong{color:var(--rank-colour);text-shadow:0 0 .85rem var(--rank-colour)}.performance-combo strong{min-width:3ch}.performance-hud.is-combo-hit .performance-combo strong{animation:.26s ease-out combo-hit}.performance-hud.is-rank-up{border-color:color-mix(in srgb, var(--rank-colour,#f6f8ff) 58%, transparent);box-shadow:0 0 1.6rem color-mix(in srgb, var(--rank-colour,#f6f8ff) 28%, transparent)}.performance-hud.is-rank-up .performance-rank strong{animation:.52s cubic-bezier(.2,.85,.2,1) rank-up}.performance-hud.is-combo-broken .performance-combo strong{animation:.36s ease-out combo-broken}@keyframes combo-hit{35%{color:#f6f8ff;text-shadow:0 0 1rem #49dfffe6;transform:scale(1.28)}}@keyframes rank-up{38%{filter:brightness(1.5);transform:scale(1.42)rotate(-4deg)}}@keyframes combo-broken{34%{color:var(--danger);opacity:.45;transform:scale(.72)}}.meters{align-items:flex-start;gap:clamp(1rem,3vw,2rem);transition:opacity .22s;display:flex}body[data-game-state=ready] .meters{opacity:.34}.meter{gap:.42rem;display:grid}.meter__label{color:var(--ink-muted);letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;font-weight:700;line-height:1}.meter__pips{align-items:center;gap:.32rem;display:flex}.meter i{border:1px solid var(--line);background:#ffffff09;width:.72rem;height:.34rem;transition:background-color .18s,border-color .18s,box-shadow .18s;display:block}.meter--integrity i{border-color:#ff465d57;width:.84rem;height:.48rem;transform:skew(-17deg)}.meter--integrity i.is-filled{border-color:var(--danger);background:var(--danger);box-shadow:0 0 10px #ff465d8c}.meter--charge i{border-color:#56f6a942;border-radius:999px}.meter--charge i.is-filled{border-color:var(--energy);background:var(--energy);box-shadow:0 0 10px #56f6a980}body[data-game-mode=infinite] .meter--charge i{border-color:#49b8ff57;border-radius:.12rem}body[data-game-mode=infinite] .meter--charge i:nth-child(n+3){visibility:hidden}body[data-game-mode=infinite] .meter--charge i.is-filled{border-color:var(--repair);background:var(--repair);box-shadow:0 0 12px #49b8ff9e}.meter--charge.is-charging i.is-filled{animation:.42s ease-out meter-charge}.meter--integrity.is-restored i.is-filled{animation:.62s ease-out meter-restore}@keyframes meter-charge{35%{box-shadow:0 0 22px #49b8fff2}}@keyframes meter-restore{35%{background:#f6f8ff;border-color:#f6f8ff;box-shadow:0 0 22px #49b8fff2}}main,.game-stage{z-index:1;width:100%;height:100%;position:relative}.game-stage{isolation:isolate}#game-canvas{cursor:crosshair;touch-action:none;outline:none;width:100%;height:100%;display:block}#game-canvas:focus-visible{outline-offset:-5px;outline:2px solid #f6f8ffc2}.start-screen{z-index:4;background:radial-gradient(circle at 50% 53.5%,#234d941f,#0000 25%);place-items:center;transition:opacity .22s,transform .22s;display:grid;position:absolute;inset:0}.start-screen.is-leaving{pointer-events:none;opacity:0;transform:scale(1.035)}.start-core{aspect-ratio:1;width:clamp(9.5rem,17vw,11.5rem);color:var(--ink);cursor:pointer;background:#070d1d5c;border:1px solid #aecbff61;border-radius:50%;place-items:center;padding:0;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s;display:grid;position:absolute;top:53.5%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1.6rem #6899f305,0 0 4rem #3e74d72b}.start-core:before,.start-core:after{content:"";border-radius:50%;position:absolute}.start-core:before{border:1px dashed #aecbff2e;animation:8s linear infinite start-turn;inset:12%}.start-core:after{border:1px solid #d8e8ff42;inset:27%}.start-core:hover{background:#14254966;border-color:#e6efffcc;transform:translate(-50%,-50%)scale(1.025);box-shadow:0 0 0 1.6rem #6899f307,0 0 5rem #6095f742}.start-core:active{transform:translate(-50%,-50%)scale(.96)}.start-core:focus-visible{outline-offset:7px;outline:3px solid #56f6a9db}.start-core__orbit{filter:drop-shadow(0 0 .55rem #dae9ffb8);border:.28rem solid #f8fbfff0;border-color:#f8fbfff0 #f8fbff29 #0000 #0000;border-radius:50%;animation:3.8s linear infinite start-turn;position:absolute;inset:4%}.start-core__orb{z-index:1;aspect-ratio:1;background:radial-gradient(circle at 38% 34%,#f7fbff 0 5%,#7aabff 18%,#21457f 54%,#091227 100%);border:1px solid #dceaffa8;border-radius:50%;place-items:center;width:44%;animation:1.8s ease-in-out infinite start-breathe;display:grid;position:relative;box-shadow:0 0 1.3rem #689fffc7,inset 0 0 1.1rem #d3e7ff33}.start-core__orb i{aspect-ratio:1;border:1px solid #eef6ffdb;width:22%;display:block;transform:rotate(45deg)}.mode-picker{background:#040812c2;border:1px solid #aecbff2e;border-radius:999px;padding:.24rem;display:flex;position:absolute;top:min(53.5% + clamp(6.4rem,10vw,7.2rem),100% - 3.4rem);left:50%;transform:translate(-50%);box-shadow:0 .8rem 2.4rem #0000003d}.mode-picker__option{color:#bdc8dc;cursor:pointer;min-width:7rem;min-height:2.75rem;font:inherit;letter-spacing:.1em;text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.48rem;padding:.58rem .9rem;font-size:.69rem;font-weight:750;line-height:1;transition:border-color .15s,color .15s,background-color .15s,box-shadow .15s;display:flex}.mode-picker__option svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:1.15rem;height:1.15rem}.mode-picker__option:hover:not(:disabled){color:var(--ink);background:#f6f8ff0f}.mode-picker__option[data-mode=standard][aria-pressed=true]{color:#c9ffe5;background:#237d532e;border-color:#56f6a980;box-shadow:inset 0 0 1rem #56f6a912}.mode-picker__option[data-mode=infinite][aria-pressed=true]{color:#c5ebff;background:#1d669e38;border-color:#49b8ff8f;box-shadow:inset 0 0 1rem #49b8ff1a}.mode-picker__option:focus-visible{outline-offset:3px;outline:3px solid #f6f8ffd6}.mode-picker__option:disabled{cursor:default}@keyframes start-turn{to{transform:rotate(1turn)}}@keyframes start-breathe{50%{transform:scale(1.06);box-shadow:0 0 2.2rem #689ffffa,inset 0 0 1.3rem #d3e7ff4d}}.impact-vignette{--feedback-colour:#ff2d4885;--feedback-peak:.86;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(circle at center, transparent 14%, var(--feedback-colour) 100%), linear-gradient(var(--feedback-colour), var(--feedback-colour));position:absolute;inset:0}.impact-vignette.is-hit{--feedback-peak:.86;animation:.43s ease-out background-hit-flash}.impact-vignette.is-blocked{--feedback-peak:.68;animation:.48s ease-out background-block-flash}@keyframes background-hit-flash{0%{opacity:0}18%{opacity:var(--feedback-peak)}42%{opacity:.3}to{opacity:0}}@keyframes background-block-flash{0%{opacity:0}24%{opacity:var(--feedback-peak)}52%{opacity:.24}to{opacity:0}}.pause-screen{z-index:4;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#03050db3;place-items:center;padding:1rem;animation:.18s ease-out backwards pause-fade-in;display:grid;position:absolute;inset:0}.pause-screen__card{text-align:center;background:#050a17f0;border:1px solid #8db7ff61;place-items:center;min-width:min(18rem,100vw - 2rem);padding:2rem 2.2rem 1.8rem;animation:.22s cubic-bezier(.2,.85,.2,1) backwards pause-card-in;display:grid;box-shadow:0 1.5rem 5rem #00000080,inset 0 0 2rem #49b8ff0d}.pause-screen__mark{border:1px solid #8db7ff9e;border-radius:50%;justify-content:center;align-items:center;gap:.42rem;width:3.2rem;height:3.2rem;margin-bottom:1rem;display:flex;box-shadow:0 0 1.4rem #49b8ff29}.pause-screen__mark i{background:#b9e5ff;border-radius:999px;width:.22rem;height:1rem;display:block;box-shadow:0 0 .55rem #49b8ffbf}.pause-screen p{color:var(--ink-muted);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:720;line-height:1.3}.pause-screen h2{color:var(--ink);letter-spacing:.2em;text-transform:uppercase;margin:.4rem 0 .75rem;font-size:clamp(1.45rem,5vw,2rem);font-weight:780;line-height:1}.pause-screen kbd{color:var(--ink);font:inherit;letter-spacing:.08em;background:#f6f8ff14;border:1px solid #f6f8ff61;border-radius:.22rem;padding:.15rem .32rem;box-shadow:0 2px #f6f8ff29}#resume-button{color:#d9ffec;cursor:pointer;min-width:8.5rem;min-height:3rem;font:inherit;letter-spacing:.13em;text-transform:uppercase;background:#22764f33;border:1px solid #56f6a99e;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;margin-top:1.4rem;padding:.65rem 1.1rem;font-size:.72rem;font-weight:780;transition:border-color .15s,background-color .15s,box-shadow .15s;display:flex;box-shadow:inset 0 0 1.2rem #56f6a912}#resume-button:hover{background:#2e94644d;border-color:#d9ffec;box-shadow:0 0 1.4rem #56f6a926}#resume-button:active{background:#3cb17961}#resume-button:focus-visible{outline-offset:4px;outline:3px solid #56f6a9db}#resume-button svg{fill:currentColor;stroke:currentColor;stroke-linejoin:round;width:1.15rem;height:1.15rem}@keyframes pause-fade-in{0%{opacity:0}}@keyframes pause-card-in{0%{opacity:0;transform:scale(.96)}}.end-screen{z-index:4;text-align:center;background:#040710f5;border:1px solid #c6d8ff33;place-items:center;min-width:min(20rem,100vw - 2rem);padding:2.2rem 2.5rem 2rem;animation:.28s cubic-bezier(.2,.8,.2,1) backwards end-arrive;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1.5rem 5rem #0000008c}.end-screen:before,.end-screen:after{content:"";border-color:#f6f8ff85;width:2rem;height:2rem;position:absolute}.end-screen:before{border-top:1px solid;border-left:1px solid;top:-1px;left:-1px}.end-screen:after{border-bottom:1px solid;border-right:1px solid;bottom:-1px;right:-1px}@keyframes end-arrive{0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}}.end-screen__mark{border:1px solid var(--danger);border-radius:50%;place-items:center;width:3.8rem;height:3.8rem;margin-bottom:1.2rem;display:grid;box-shadow:0 0 1.5rem #ff465d2e}.end-screen__mark span{border:2px solid var(--danger);width:.72rem;height:.72rem;display:block;transform:rotate(45deg)}.end-screen[data-result=won] .end-screen__mark{border-color:var(--energy);box-shadow:0 0 1.5rem #56f6a93d}.end-screen[data-result=won] .end-screen__mark span{border-color:var(--energy);border-radius:50%}.end-screen h2{color:var(--ink);letter-spacing:.19em;text-transform:uppercase;margin:0;font-size:clamp(1.25rem,4vw,1.7rem);font-weight:760;line-height:1.2}.end-screen__scores{gap:.42rem;margin:.65rem 0 1.5rem;display:grid}.end-screen p{color:var(--ink-muted);font-variant-numeric:tabular-nums;letter-spacing:.2em;margin:0;font-size:.82rem;font-weight:700}.end-screen .end-screen__performance{color:var(--rank-colour);letter-spacing:.14em;text-shadow:0 0 .8rem color-mix(in srgb, var(--rank-colour) 42%, transparent);font-size:.68rem}.end-screen__actions{align-items:center;gap:.75rem;display:flex}#restart-button,#mode-button{width:3.5rem;height:3.5rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #f6f8ff85;border-radius:50%;place-items:center;padding:0;transition:color .16s,border-color .16s,background-color .16s;display:grid}#mode-button{color:#b9e5ff;border-color:#49b8ff6b}#restart-button:hover,#mode-button:hover{border-color:var(--ink);background:#f6f8ff14}#restart-button:active,#mode-button:active{background:#f6f8ff29}#restart-button:focus-visible,#mode-button:focus-visible{outline-offset:4px;outline:3px solid #56f6a9c7}#restart-button svg,#mode-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}@media (width<=520px){.hud{padding:max(.8rem, env(safe-area-inset-top)) .85rem 0}.hud__inner{gap:.75rem}.wordmark{letter-spacing:.12em;grid-template-columns:.8rem auto;gap:0 .42rem;font-size:.69rem}.wordmark strong{letter-spacing:.17em}.wordmark__orbit{width:.8rem;height:.8rem}.wordmark__orbit:after{width:4px;height:4px}.meters{gap:.75rem}.sound-toggle{top:max(3.35rem, calc(env(safe-area-inset-top) + 2.35rem));right:.85rem}.performance-hud{top:max(3.35rem, calc(env(safe-area-inset-top) + 2.35rem));gap:.42rem;min-width:8.8rem;min-height:2.6rem;padding:.32rem .5rem}.performance-stat{letter-spacing:.09em;gap:.2rem;min-width:3.35rem;font-size:.53rem}.performance-stat+.performance-stat{padding-left:.42rem}.performance-stat strong{font-size:1.05rem}.meter{gap:.32rem}.meter__label{letter-spacing:.1em;font-size:.7rem}.meter__pips{gap:.2rem}.meter--integrity i{width:.66rem;height:.4rem}.meter--charge i{width:.43rem;height:.3rem}.end-screen{padding:1.8rem 1.5rem 1.6rem}.start-core{width:9rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.impact-vignette.is-hit,.impact-vignette.is-blocked{--feedback-peak:.22;animation-duration:.16s!important}}
