html.game,html.game body{overscroll-behavior:none;width:100%;height:100%;position:fixed;inset:0;overflow:hidden}#app{background:radial-gradient(ellipse at 50% 40%, #0c1440 0%, var(--bg) 70%);position:fixed;inset:0;overflow:hidden}#game-canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#ui{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}#ui button,#ui a,#ui input,#ui select,#ui .panel{pointer-events:auto}.fx-vignette,.fx-flash{pointer-events:none;position:absolute;inset:0}.fx-vignette{background:radial-gradient(#0000 52%,#02030e9e 100%)}.fx-flash{opacity:0;mix-blend-mode:screen}.screen{opacity:0;transition:opacity .28s var(--ease);position:absolute;inset:0}.screen.is-visible{opacity:1}.screen[hidden]{display:none}.overlay{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(5px);pointer-events:auto;background:#0305149e;place-items:center;display:grid;overflow-y:auto}.overlay--modal{z-index:5}.panel{border:1px solid var(--line-strong);border-radius:var(--radius);text-align:center;width:min(100%,470px);max-height:100%;transition:transform .32s var(--ease);background:linear-gradient(160deg,#0e163ef0,#06091ef0);padding:clamp(18px,4vw,30px);overflow-y:auto;transform:translateY(14px)scale(.98);box-shadow:0 0 0 1px #22e6ff14,0 0 44px #2278ff47,0 24px 60px #0000008c}.screen.is-visible .panel{transform:none}.panel--narrow{width:min(100%,340px)}.panel--wide{text-align:left;width:min(100%,720px)}.panel__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel__header .panel__title{margin:0}.panel__eyebrow{color:var(--cyan);font-family:var(--font-display);letter-spacing:.26em;text-transform:uppercase;margin:0 0 4px;font-size:.68rem}.panel__title{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;font-size:clamp(1.25rem,4.6vw,1.75rem);font-weight:800}.panel__text{color:var(--muted);margin:0 0 16px}.panel__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.panel__actions--stack{flex-direction:column}.menu{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));pointer-events:auto;background:radial-gradient(70% 55% at 50% 46%,#030516c7,#03051640 70%),linear-gradient(#0305168c,#0000 30% 70%,#030516b3);flex-direction:column;display:flex;overflow-y:auto}.menu__top{justify-content:space-between;align-items:center;display:flex}.menu__center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 0;display:flex}.logo{font-family:var(--font-display);text-transform:uppercase;flex-direction:column;align-items:center;margin:0;font-weight:900;line-height:.95;display:flex}.logo__top{letter-spacing:.9em;color:var(--cyan);text-shadow:0 0 12px #22e6ffe6,0 0 34px #22e6ff80;margin-right:-.9em;font-size:clamp(1.1rem,4.2vw,2rem)}.logo__main{letter-spacing:.06em;background:linear-gradient(#fff 0%,#9defff 38%,#3d7bff 62%,#c04dff 100%);color:#0000;filter:drop-shadow(0 0 22px #3d7bffa6);-webkit-background-clip:text;background-clip:text;font-size:clamp(2.5rem,12.5vw,6.2rem);animation:4s ease-in-out infinite logo-pulse}.logo__sub{letter-spacing:1.1em;color:var(--magenta);text-shadow:0 0 12px #ff3df0e6,0 0 34px #ff3df080;margin-right:-1.1em;font-size:clamp(1.3rem,5.2vw,2.5rem)}@keyframes logo-pulse{0%,to{filter:drop-shadow(0 0 20px #3d7bff8c)}50%{filter:drop-shadow(0 0 34px #c04dffcc)}}.menu__tag{color:var(--muted);letter-spacing:.12em;margin:10px 0 0;font-size:clamp(.95rem,2.8vw,1.15rem)}.menu__best{color:var(--muted);font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;margin:6px 0 12px;font-size:.72rem}.menu__best strong{color:var(--text);letter-spacing:.06em;margin-left:.5em;font-size:1.1rem}.menu__actions{flex-direction:column;align-items:center;gap:12px;display:flex}.menu__row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.menu__hint{text-align:center;color:var(--muted);letter-spacing:.06em;opacity:.85;margin:0;font-size:.9rem}.chip{border:1px solid var(--line);min-height:44px;color:var(--muted);font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;background:#080d2899;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.68rem;text-decoration:none;display:inline-flex}.chip:hover{color:var(--text);border-color:var(--cyan)}.toggles{gap:8px;display:flex}.toggles--center{justify-content:center;margin-top:16px}.icon-btn{border:1px solid var(--line);width:46px;height:46px;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#080d28a8;border-radius:50%;place-items:center;padding:0;transition:border-color .2s,box-shadow .2s,color .2s,opacity .2s;display:inline-grid}.icon-btn:hover{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.icon-btn[aria-pressed=false]{color:var(--muted);opacity:.55;background-image:linear-gradient(135deg, transparent 46%, var(--orange) 46%, var(--orange) 54%, transparent 54%)}.icon-btn--label{width:auto;font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;gap:8px;padding:0 16px;font-size:.68rem;display:inline-flex}.hud{pointer-events:none;padding:max(12px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.hud__left{top:max(12px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left));text-shadow:0 2px 10px #000c;position:absolute}.hud__score{flex-direction:column;line-height:1;display:flex}.hud__label{color:var(--cyan);font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;font-size:.58rem}.hud__score strong{font-family:var(--font-display);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:clamp(1.7rem,6.4vw,2.7rem);font-weight:800}.hud__meta{gap:8px;margin-top:8px;display:flex}.hud__pill{border:1px solid var(--line);font-family:var(--font-display);letter-spacing:.06em;font-variant-numeric:tabular-nums;background:#060a2099;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-size:.74rem;font-weight:600;display:inline-flex}.hud__pill svg{width:15px;height:15px}.hud__pill--crystal{color:#b6fbff;border-color:#22e6ff80}.hud__pill--crystal.is-pop{animation:pill-pop .26s var(--ease)}@keyframes pill-pop{40%{box-shadow:var(--glow-cyan);transform:scale(1.22)}}.hud__pill--daily{color:#ffb3f8;border-color:#ff3df099}.hud__pause{top:max(12px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));width:52px;height:52px;position:absolute}.hud__progress{left:50%;bottom:max(14px, env(safe-area-inset-bottom));background:#78c8ff29;border-radius:999px;width:min(52vw,360px);height:5px;position:absolute;transform:translate(-50%)}.hud__progress[hidden]{display:none}.hud__progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--blue), var(--cyan));width:100%;height:100%;box-shadow:var(--glow-cyan);transform-origin:0;transition:transform .2s linear;transform:scaleX(0)}.hud__progress-label{color:var(--muted);font-family:var(--font-display);letter-spacing:.24em;text-transform:uppercase;font-size:.54rem;position:absolute;bottom:9px;right:0}.hud__progress.is-beaten .hud__progress-fill{background:linear-gradient(90deg, var(--purple), var(--magenta));box-shadow:var(--glow-magenta)}.hud__banner{opacity:0;transition:opacity .3s var(--ease), transform .3s var(--ease);text-align:center;white-space:nowrap;text-shadow:0 0 18px #22e6ffb3;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:17%;left:50%;transform:translate(-50%,-8px)}.hud__banner.is-active{opacity:1;transform:translate(-50%)}.hud__banner strong{font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;font-size:clamp(1rem,4.2vw,1.5rem);font-weight:800}.hud__banner span{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.92rem}.hud__countdown{font-family:var(--font-display);color:#fff;text-shadow:0 0 26px #22e6fff2,0 0 70px #3d7bffb3;font-size:clamp(4rem,22vw,8.5rem);font-weight:900;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.hud__countdown.is-tick{animation:count-tick .42s var(--ease)}@keyframes count-tick{0%{opacity:0;transform:translate(-50%,-50%)scale(1.7)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.hud__hint{left:50%;bottom:max(40px, calc(env(safe-area-inset-bottom) + 30px));border:1px solid var(--line);color:var(--text);letter-spacing:.06em;white-space:nowrap;background:#060a20b8;border-radius:999px;padding:8px 18px;font-size:.95rem;animation:1.6s ease-in-out infinite hint-bob;position:absolute;transform:translate(-50%)}.hud__hint[hidden],.hud__hint-touch{display:none}@media (hover:none) and (pointer:coarse){.hud__hint-touch{display:inline}.hud__hint-keys{display:none}}@keyframes hint-bob{50%{transform:translate(-50%,-5px)}}.badge{background:linear-gradient(90deg, var(--magenta), var(--orange));color:#1a0420;font-family:var(--font-display);letter-spacing:.24em;text-transform:uppercase;border-radius:999px;margin:0 0 6px;padding:4px 16px;font-size:.7rem;font-weight:800;animation:1.2s ease-in-out infinite badge-glow;display:inline-block}.badge[hidden]{display:none}@keyframes badge-glow{50%{transform:scale(1.05);box-shadow:0 0 26px #ff3df0d9}}.final-score{margin:4px 0 0;line-height:1}.final-score strong{font-family:var(--font-display);letter-spacing:.03em;font-variant-numeric:tabular-nums;background:linear-gradient(#fff,#8fe9ff 55%,#5a8bff);color:#0000;filter:drop-shadow(0 0 18px #22e6ff80);-webkit-background-clip:text;background-clip:text;font-size:clamp(2.6rem,13vw,4.4rem);font-weight:900}.final-best{color:var(--muted);font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;margin:6px 0 14px;font-size:.7rem}.final-best strong{color:var(--text);margin-left:.4em}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.stats--two{grid-template-columns:repeat(2,1fr)}.stats>div{border:1px solid var(--line);border-radius:var(--radius-sm);background:#080e2c99;padding:10px 6px}.stats dt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.74rem}.stats dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.1rem;font-weight:700}.stats small{color:var(--cyan);font-size:.78rem}.unlocks{border-radius:var(--radius-sm);text-align:left;background:#ff3df014;border:1px solid #ff3df080;margin:14px 0 0;padding:10px 14px;font-size:.95rem;list-style:none}.unlocks[hidden]{display:none}.unlocks li+li{margin-top:4px}.howto{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.howto__card{border:1px solid var(--line);border-radius:var(--radius-sm);background:#080e2c8c;padding:12px 14px}.howto__card--full{grid-column:1/-1}.howto__card h3,.section-title{color:var(--cyan);font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;margin:0 0 6px;font-size:.78rem}.section-title{margin:18px 0 10px}.section-title:first-child{margin-top:0}.section-title small{color:var(--muted);margin-left:.6em}.howto__card p{color:var(--muted);margin:0 0 6px;font-size:.98rem;line-height:1.35}.keys span{margin-top:4px;font-size:.88rem;display:block}kbd{border:1px solid var(--line-strong);min-width:1.9em;color:var(--text);font-family:var(--font-display);text-align:center;background:#142256b3;border-bottom-width:3px;border-radius:6px;padding:1px 7px;font-size:.72rem;display:inline-block}.swatch{vertical-align:middle;border-radius:3px;width:12px;height:12px;margin-right:8px;display:inline-block}.swatch--danger{background:var(--orange);box-shadow:0 0 10px var(--orange)}.swatch--good{background:#9dfcff;box-shadow:0 0 10px #9dfcff}.settings{gap:10px;display:grid}.field{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#080e2c8c;justify-content:space-between;align-items:center;gap:14px;min-height:52px;padding:8px 14px;display:flex}.field small{color:var(--muted);font-size:.84rem;display:block}.field select{border:1px solid var(--line-strong);background:var(--panel-solid);min-height:40px;color:var(--text);font:inherit;border-radius:8px;padding:0 10px}.field input[type=checkbox]{appearance:none;border:1px solid var(--line-strong);cursor:pointer;background:#142256b3;border-radius:999px;flex:none;width:50px;height:28px;margin:0;transition:background .2s;position:relative}.field input[type=checkbox]:after{content:"";background:var(--muted);width:20px;height:20px;transition:transform .2s var(--ease), background .2s;border-radius:50%;position:absolute;top:3px;left:3px}.field input[type=checkbox]:checked{border-color:var(--cyan);background:#22e6ff47}.field input[type=checkbox]:checked:after{background:var(--cyan);box-shadow:var(--glow-cyan);transform:translate(22px)}.settings__note{color:var(--muted);margin:8px 0 0;font-size:.88rem}.cosmetics{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.cosmetic{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font:inherit;text-align:center;cursor:pointer;transition:border-color .2s, box-shadow .2s, transform .15s var(--ease);background:#080e2c8c;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 10px;display:flex}.cosmetic:not(:disabled):hover{border-color:var(--cyan);transform:translateY(-2px)}.cosmetic.is-selected{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.cosmetic.is-locked{cursor:default;opacity:.72}.cosmetic__orb{background:radial-gradient(circle at 38% 34%, var(--ring) 0%, var(--core) 46%, transparent 62%), radial-gradient(circle, transparent 48%, var(--shell) 70%, transparent 74%);width:54px;height:54px;box-shadow:0 0 20px var(--shell), inset 0 0 12px var(--shell);border-radius:50%}.cosmetic.is-locked .cosmetic__orb,.cosmetic.is-locked .cosmetic__trail{filter:grayscale(.7)brightness(.7)}.cosmetic__trail{border-radius:999px;width:86%;height:12px;margin:21px 0;box-shadow:0 0 14px #ffffff4d}.cosmetic__name{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:700}.cosmetic__state{color:var(--cyan);align-items:center;gap:4px;font-size:.78rem;display:inline-flex}.cosmetic.is-locked .cosmetic__state{color:var(--muted)}.cosmetic__state svg{width:14px;height:14px}.cosmetic small{color:var(--muted);font-size:.8rem;line-height:1.2}.meter{background:#78c8ff29;border-radius:999px;width:100%;height:4px;overflow:hidden}.meter>span{background:linear-gradient(90deg, var(--blue), var(--cyan));height:100%;display:block}.achievements{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.achievements li{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);opacity:.75;align-items:center;gap:10px;padding:8px 12px;display:flex}.achievements li.is-done{color:var(--text);opacity:1;border-color:#22e6ff99}.achievements li.is-done svg{color:var(--cyan)}.achievements strong,.achievements small{line-height:1.25;display:block}.achievements small{color:var(--muted);font-size:.82rem}.toast{left:50%;bottom:max(26px, calc(env(safe-area-inset-bottom) + 18px));z-index:9;border:1px solid var(--line-strong);box-shadow:var(--glow-cyan);opacity:0;transition:opacity .25s, transform .25s var(--ease);white-space:nowrap;background:#080d28f0;border-radius:999px;padding:10px 20px;position:absolute;transform:translate(-50%,12px)}.toast.is-visible{opacity:1;transform:translate(-50%)}.toast[hidden]{display:none}.boot{z-index:20;background:radial-gradient(ellipse at 50% 40%, #0c1440 0%, var(--bg) 70%);text-align:center;transition:opacity .5s var(--ease);place-content:center;gap:18px;display:grid;position:absolute;inset:0}.boot.is-done{opacity:0;pointer-events:none}.boot__title{font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;color:var(--cyan);text-shadow:var(--glow-cyan);margin:0;font-size:clamp(1.2rem,5vw,2rem);font-weight:900}.boot__bar{background:#78c8ff29;border-radius:999px;width:min(60vw,260px);height:4px;margin:0 auto;overflow:hidden}.boot__bar:after{content:"";border-radius:inherit;background:linear-gradient(90deg, var(--cyan), var(--magenta));width:40%;height:100%;animation:1.1s ease-in-out infinite boot-slide;display:block}@keyframes boot-slide{0%{transform:translate(-110%)}to{transform:translate(260%)}}.boot__msg{max-width:34ch;color:var(--muted);margin:0}.boot.is-error .boot__bar{display:none}@media (max-width:520px){.howto{grid-template-columns:1fr}.stats dd{font-size:.98rem}.btn{font-size:.76rem}.btn--xl{font-size:1.05rem}}@media (max-height:520px){.logo__main{font-size:clamp(2rem,13vh,3.4rem)}.logo__top,.logo__sub{font-size:clamp(.8rem,4.5vh,1.2rem)}.menu__tag,.menu__hint{display:none}.menu__actions{flex-flow:wrap;justify-content:center}.menu__row{width:100%}.btn--xl{min-height:50px}.panel{padding:14px 18px}.final-score strong{font-size:2.4rem}.hud__countdown{font-size:4.2rem}}
