:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gc-0:#040b19;--gc-1:#04173d;--gc-2:#03296a;--gc-3:#0356a1;--gc-4:#2b9dc4;--gc-5:#83d9e2;--gc-6:#047bc1;--gc-7:#035aa9;--ig-0:#04100d;--ig-1:#081f0f;--ig-2:#153c18;--ig-3:#30681c;--ig-4:#6fb522;--ig-5:#a0880e;--ig-6:#d29c24;--ig-7:#b07513;--ic-0:#0f0820;--ic-1:#200d35;--ic-2:#381550;--ic-3:#652469;--ic-4:#bb5371;--ic-5:#b6443f;--ic-6:#b83d0e;--ic-7:#ad430e;--n-0:#131216;--n-1:#3f3d3e;--n-2:#8e8b8a;--n-3:#eceae7;--n-4:#c9c7c8;--bloom-white:#f4fbff;--bloom-cyan:#73faff;--bloom-blue:#77d3fc;--bloom-violet:#c9a6ff;--bloom-lime:#c7f56a;--bloom-amber:#ffdf6a;--bloom-rose:#ff8fa3;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-tech:ui-monospace, "SF Mono", SFMono-Regular, Menlo, "DejaVu Sans Mono", Consolas, monospace;--void:#03070f;--deep:#04122c;--panel:#040b1af2;--panel-soft:#06142cbd;--ink:#e9f5ff;--muted:#7d94b4;--cyan:#6fe2fa;--violet:#a98cf5;--amber:#f0c04e;--coral:#f0707f;--lime:#9fd94a;--line:#6fe2fa38;--line-strong:#8ccdf080;--focus:#f4fbff;--combo-neutral:#e6f0ff;--combo-blue:#6bd0ff;--combo-green:#7cffa7;--combo-yellow:#ffd34d;--combo-purple:#a07cff;--combo-orange:#ffa24d;--combo-popup-dur:.8s;--combo-break-dur:.5s;--power-banner-dur:1.5s;--tick-c:#8cdefacc;--tick-len:4px;font-family:var(--font-body);background:var(--void);color:var(--ink);font-synthesis:none;text-rendering:geometricprecision}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none;background:var(--void)}button,input{font:inherit}button{color:inherit}.button:before,.difficulty:before,.modal-panel:before,.control-group:before,.pause-loadout div:before,.result-score:before,.gate-accessibility:before,.gate-shop-panel:before,.hud-pause:before{content:"";pointer-events:none;background:linear-gradient(var(--tick-c), var(--tick-c)) 0 0 / var(--tick-len) 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 0 0 / 1px var(--tick-len) no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 0 / var(--tick-len) 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 0 / 1px var(--tick-len) no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 0 100% / var(--tick-len) 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 0 100% / 1px var(--tick-len) no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 100% / var(--tick-len) 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 100% / 1px var(--tick-len) no-repeat;transition:background .12s linear;position:absolute;inset:-1px}.app-shell{grid-template-rows:calc(40px + env(safe-area-inset-top)) minmax(0, 1fr) calc(32px + env(safe-area-inset-bottom));isolation:isolate;background:radial-gradient(circle at 18% 12%, #383ea033, transparent 30%), radial-gradient(circle at 82% 78%, #1482b026, transparent 34%), linear-gradient(145deg, #03070f 0%, var(--gc-1) 48%, #04091a 100%);width:100%;height:100%;min-height:0;display:grid;position:relative}.app-shell:before{content:"";z-index:-1;pointer-events:none;opacity:.35;background-image:linear-gradient(#6fe2fa09 1px,#0000 1px),linear-gradient(90deg,#6fe2fa09 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 85%);mask-image:linear-gradient(#000,#0000 85%)}.top-rail,.bottom-rail{z-index:3;min-width:0;padding:0 max(16px, env(safe-area-inset-left));border-color:var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:var(--font-tech);letter-spacing:.2em;text-transform:uppercase;background:#03070fe6;justify-content:space-between;align-items:center;gap:16px;display:flex}.top-rail{padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--line);font-size:10px}.bottom-rail{padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);color:var(--muted);letter-spacing:.24em;font-size:8px}.brand-mark{color:var(--bloom-white);letter-spacing:.28em;white-space:nowrap;text-shadow:0 0 10px #6fe2fa59;align-items:center;gap:9px;font-weight:700;display:flex}.brand-prism{border:1px solid var(--bloom-cyan);background:#6fe2fa29;width:9px;height:9px;transform:rotate(45deg);box-shadow:0 0 8px #6fe2fab3,inset 0 0 4px #f4fbff80}.runtime-status{color:var(--muted);white-space:nowrap;gap:16px;display:flex;overflow:hidden}.runtime-status span{text-overflow:ellipsis;overflow:hidden}.bottom-rail span{white-space:nowrap}.game-viewport{place-items:center;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.game-surface{width:384px;height:216px;image-rendering:pixelated;touch-action:none;background:#040814;flex:none;position:relative;overflow:hidden;box-shadow:0 0 0 1px #6fe2fa42,0 0 0 4px #03070feb,0 18px 70px #000000ad,0 0 60px #3a64c829}.game-canvas{image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.scanline-mask{z-index:2;pointer-events:none;opacity:.12;mix-blend-mode:soft-light;background:repeating-linear-gradient(#0000 0 2px,#00000061 3px);position:absolute;inset:0}.app-shell.touch-device.mode-playing .scanline-mask{display:none}.ui-layer{z-index:4;pointer-events:none;font-size:clamp(7px,1.9cqh,11px);position:absolute;inset:0}.ui-layer button,.ui-layer input,.ui-layer label{pointer-events:auto}button{box-shadow:var(--own-shadow,0 0 #0000);font-family:var(--font-tech);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:linear-gradient(158deg,#051432eb,#030b1cf0);border:1px solid #6fe2fa57;border-radius:0;transition:border-color .11s linear,background .11s linear,color .11s linear,box-shadow .13s linear,opacity .11s linear;position:relative}button:hover:not(:disabled){color:var(--bloom-white);background:linear-gradient(158deg,#0a285cf2,#051432f2);border-color:#73faffbf}button:active:not(:disabled){--own-shadow:inset 0 0 9px #6fe2fa6b, inset 0 0 2px #f4fbff80;border-color:var(--bloom-cyan);color:var(--bloom-cyan);background:linear-gradient(158deg,#041028f5,#030b1cf5)}button:disabled{cursor:not-allowed;color:var(--n-2);opacity:.46;border-color:#8f9aac42}.button{--tick-len:4px;min-height:26px;padding:6px 12px;font-size:8px;font-weight:700}.button:hover:not(:disabled){--tick-c:var(--bloom-cyan);--tick-len:6px}.button:active:not(:disabled){--tick-c:var(--bloom-white);--tick-len:6px}.button:disabled{--tick-c:#8f9aac4d}.button.primary{--own-shadow:inset 0 1px 0 #a0e1ff52, inset 0 0 12px #3c96ff47, 0 0 7px #3a8ceb47;--tick-c:var(--bloom-cyan);color:var(--bloom-white);text-shadow:0 0 5px #73faff80;background:linear-gradient(112deg,#0d3486 0%,#0a2263 38%,#071a4c 66%,#0c2a6e 100%);border-color:#73faffb3}.button.primary:after{content:"";pointer-events:none;background:linear-gradient(104deg,#9edaff4d 0%,#9edaff12 24%,#0000 44%);position:absolute;inset:0}.button.primary:hover:not(:disabled){--own-shadow:inset 0 1px 0 #beeeff6b, inset 0 0 16px #50afff66, 0 0 12px #48a5ff6b;border-color:var(--bloom-cyan);background:linear-gradient(112deg,#1447a8 0%,#0f2f80 38%,#0a2263 66%,#12377f 100%)}.button.primary:active:not(:disabled){--own-shadow:inset 0 0 14px #73faff80, inset 0 0 3px #f4fbff99;color:var(--bloom-cyan);background:linear-gradient(112deg,#071c4c 0%,#061635 60%,#08214f 100%)}.button.primary:disabled{color:var(--n-2);text-shadow:none;background:linear-gradient(112deg,#1b2030,#14171f);border-color:#8f9aac4d}.button.danger{--tick-c:#ff8fa3bf;color:#ffd2d9;border-color:#f0707f8c}.button.danger:hover:not(:disabled){border-color:var(--bloom-rose);color:#fff;background:linear-gradient(158deg,#40101ef2,#1e0914f2)}.button.danger:active:not(:disabled){--own-shadow:inset 0 0 9px #f0707f66;color:var(--bloom-rose)}button:focus-visible,input:focus-visible{outline:1px solid var(--focus);outline-offset:2px;box-shadow:var(--own-shadow,0 0 #0000), 0 0 0 1px #03070ff2, 0 0 0 3px #6fe2fa52, 0 0 10px #6fe2fa80}.toggle-setting:has(input:focus-visible){outline:1px solid var(--focus);outline-offset:2px;box-shadow:var(--own-shadow,0 0 #0000), 0 0 0 1px #03070ff2, 0 0 0 3px #6fe2fa52, 0 0 10px #6fe2fa80}.eyebrow{color:var(--cyan);font-family:var(--font-tech);letter-spacing:.34em;text-transform:uppercase;text-shadow:0 0 6px #6fe2fa66;align-items:center;gap:5px;margin:0 0 5px;font-size:7px;font-weight:700;display:flex}.eyebrow:before{content:"";background:url(../assets/ui/accent-teal.png) 50%/contain no-repeat;flex:none;width:15px;height:13px}.modal-panel,.title-panel,.ending-panel{pointer-events:auto;position:absolute}.modal-panel{--tick-c:#bee8ffd9;--tick-len:7px;background:radial-gradient(1px 1px at 17% 21%,#a0e0ff80,#0000 100%),radial-gradient(1px 1px at 63% 13%,#78beff66,#0000 100%),radial-gradient(1px 1px at 85% 57%,#a0e0ff52,#0000 100%),radial-gradient(1px 1px at 33% 77%,#78beff4d,#0000 100%),radial-gradient(1px 1px at 8% 63%,#a0e0ff3d,#0000 100%),radial-gradient(1px 1px at 73% 89%,#a0e0ff47,#0000 100%),radial-gradient(1px 1px at 46% 44%,#78beff38,#0000 100%),linear-gradient(#5aaaff21,#0000 100%) 27% 0/1px 34% no-repeat,linear-gradient(#0000,#5aaaff1a) 68% 58%/1px 30% no-repeat,radial-gradient(130% 90% at 50% 0,#143e7c52,#0000 62%),linear-gradient(158deg,#050e22f6,#04122af2);border:1px solid #8ccdf04d;width:min(86%,310px);top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #03070fcc,0 12px 44px #0000009e,0 0 20px #328cdc33,inset 0 0 26px #286ec81a}.modal-panel:after{content:"";pointer-events:none;border:1px solid var(--bloom-cyan);background:#050d1e;width:5px;height:5px;position:absolute;top:-3px;left:50%;transform:translate(-50%)rotate(45deg);box-shadow:0 0 6px #73faff99}.modal-panel{padding:14px 16px}.modal-panel h2,.ending-panel h2{font-family:var(--font-tech);letter-spacing:.2em;color:var(--bloom-white);text-shadow:0 0 12px #6fe2fa59,0 0 30px #3a8ceb40;margin:0;font-size:17px;font-weight:500;line-height:1.05}.modal-panel>p:not(.eyebrow),.ending-panel>p:not(.eyebrow){color:#aec2da;line-height:1.55}.panel-actions{justify-content:flex-end;gap:7px;margin-top:12px;display:flex}.panel-actions.vertical{flex-direction:column;align-items:stretch}.panel-note{border-top:1px solid var(--line);margin:10px 0 0;padding-top:8px;font-size:7px;position:relative}.boot-panel{pointer-events:auto;background:#01030a;place-items:center;display:grid;position:absolute;inset:0}.boot-lockup{text-align:center;justify-items:center;gap:6px;display:grid}.boot-title{color:var(--bloom-white);font-family:var(--font-tech);letter-spacing:.42em;text-indent:.42em;text-shadow:0 0 12px #73faff59,0 0 30px #3a8ceb33;margin:0;font-size:15px;font-weight:400}.boot-rule{background:linear-gradient(90deg,#0000,#8ccdf073 22% 78%,#0000);width:168px;height:1px;display:block;position:relative}.boot-rule:after{content:"";border:1px solid var(--bloom-cyan);background:#030a16;width:4px;height:4px;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:45deg;box-shadow:0 0 6px #73faffb3}.boot-line{color:var(--cyan);font-family:var(--font-tech);letter-spacing:.3em;text-shadow:0 0 7px #6fe2fa66;margin:0;font-size:7px}.boot-cursor{vertical-align:-1px;background:var(--bloom-cyan);width:4px;height:7px;margin-left:5px;animation:.9s step-end infinite cursor-blink;display:inline-block;box-shadow:0 0 6px #73faffcc}@keyframes cursor-blink{50%{opacity:0}}.intro-overlay{z-index:9;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.intro-veil{background:#01030a;position:absolute;inset:0}.intro-bloom{opacity:0;background:var(--bloom-white);border-radius:50%;width:3px;height:3px;position:absolute;top:52%;left:50%;translate:-50% -50%;box-shadow:0 0 22px 10px #73faff80,0 0 90px 40px #3a8ceb47}.intro-boot .boot-lockup{animation:.8s ease-out both boot-in}.intro-reveal .boot-lockup{animation:.62s ease-in forwards boot-out}.intro-reveal .intro-veil{animation:1.5s cubic-bezier(.3,0,.2,1) forwards intro-wake}.intro-reveal .intro-bloom{animation:1.5s cubic-bezier(.25,.7,.3,1) forwards core-awaken}@keyframes boot-in{0%{opacity:0;filter:blur(4px)}}@keyframes boot-out{to{opacity:0;filter:blur(5px);transform:translateY(-6px)}}@keyframes intro-wake{0%{opacity:1;-webkit-backdrop-filter:brightness(.12)saturate(.2)blur(3px);backdrop-filter:brightness(.12)saturate(.2)blur(3px)}55%{opacity:.4;-webkit-backdrop-filter:brightness(.55)saturate(.66)blur(1px);backdrop-filter:brightness(.55)saturate(.66)blur(1px)}to{opacity:0;-webkit-backdrop-filter:brightness()saturate()blur();backdrop-filter:brightness()saturate()blur()}}@keyframes core-awaken{0%{opacity:0;scale:.25}40%{opacity:.95;scale:1}to{opacity:0;scale:2.6}}.title-panel{--stack-w:min(100%, 372px);text-align:center;background:radial-gradient(112% 78% at 50% 44%,#02061099,#0000 72%),linear-gradient(#020610e6 0%,#02061057 26% 72%,#020610eb 100%);align-content:center;justify-items:center;gap:11px;padding:14px 20px;display:grid;inset:0}.title-drift{pointer-events:none;position:absolute;inset:0;overflow:hidden}.title-drift i{position:absolute;inset:0}.title-drift i:first-child{background-image:radial-gradient(1.4px 1.4px at 22px 34px,#a0e0ffd9,#0000 100%),radial-gradient(1.1px 1.1px at 104px 78px,#73faffb3,#0000 100%),radial-gradient(1.1px 1.1px at 63px 12px,#78beff99,#0000 100%);background-size:134px 96px;animation:23s linear infinite drift-a}.title-drift i:nth-child(2){background-image:radial-gradient(1.1px 1.1px at 15px 58px,#c9a6ffa8,#0000 100%),radial-gradient(1.5px 1.5px at 78px 20px,#a0e0ff94,#0000 100%);background-size:97px 71px;animation:34s linear infinite drift-b}.title-drift i:nth-child(3){background-image:radial-gradient(1.8px 1.8px at 40px 26px,#f4fbff8c,#0000 100%);background-size:181px 143px;animation:48s linear infinite drift-c}@keyframes drift-a{to{background-position:-22px -96px}}@keyframes drift-b{to{background-position:16px -71px}}@keyframes drift-c{to{background-position:-9px -143px}}.title-lockup{justify-items:center;display:grid;position:relative}.title-lockup:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#3a8ceb3d,#0000 100%);width:260px;height:110px;animation:6s ease-in-out infinite lockup-pulse;position:absolute;top:46%;left:50%;translate:-50% -50%}.title-lockup .eyebrow{margin-bottom:7px}.title-panel h1{font-family:var(--font-tech);letter-spacing:.36em;text-indent:.36em;color:var(--bloom-white);text-shadow:0 0 20px #3a8ceb4d;gap:1px;margin:0;font-size:clamp(15px,5cqh,25px);font-weight:300;line-height:1.02;display:grid}.title-panel h1 span{color:var(--bloom-cyan);text-shadow:0 0 9px #73faff8c,0 0 24px #3a8ceb73}.title-panel h1 b{font-weight:300}.title-divider{width:216px;max-width:100%;height:26px;image-rendering:pixelated;background:url(../assets/ui/divider-rule.png) 50%/216px 26px no-repeat;margin:2px 0 0;animation:6s ease-in-out infinite lockup-pulse}@keyframes lockup-pulse{0%,to{opacity:.6}50%{opacity:1}}.title-copy{color:#9fb4cd;max-width:300px;font-family:var(--font-tech);letter-spacing:.26em;margin:0;font-size:5.5px;line-height:1.6}.difficulty-picker{width:var(--stack-w);border:0;gap:9px;min-width:0;margin:0;padding:0;display:flex}.difficulty-picker legend{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.difficulty{--accent-line:#8cdefa8c;--accent-bloom:#73faff;--accent-deep:#143e7c5c;--tick-c:color-mix(in srgb, var(--accent-line) 70%, transparent);--tick-len:6px;aspect-ratio:.72;border:1px solid color-mix(in srgb, var(--accent-line) 62%, transparent);background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent-bloom) 14%, transparent)) 26% 34% / 1px 40% no-repeat, linear-gradient(180deg, color-mix(in srgb, var(--accent-bloom) 12%, transparent), transparent) 71% 24% / 1px 34% no-repeat, linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent-bloom) 10%, transparent)) 84% 46% / 1px 26% no-repeat, radial-gradient(116% 62% at 50% 0%, var(--accent-deep), transparent 70%), linear-gradient(180deg, #051026d6, #030916c7);text-align:center;letter-spacing:0;flex:1 1 0;grid-template-rows:auto 1fr auto;min-width:0;padding:7px 6px 8px;transition:border-color .13s linear,background .13s linear,box-shadow .15s linear,translate .15s ease-out;display:grid;position:relative}.difficulty[data-accent=calm]{--accent-line:#4baeed8c;--accent-bloom:#8ccdf8;--accent-deep:#06266075;--card-icon:url(../assets/ui/mode-icon-calm.png);--card-orn:url(../assets/ui/accent-cyan.png)}.difficulty[data-accent=bright]{--accent-line:#a0d66e8c;--accent-bloom:#d5f0a2;--accent-deep:#1e3e1680;--card-icon:url(../assets/ui/mode-icon-bright.png);--card-orn:url(../assets/ui/accent-green.png)}.difficulty[data-accent=fracture]{--accent-line:#b069d680;--accent-bloom:#d59cf2;--accent-deep:#38155080;--card-icon:url(../assets/ui/mode-icon-fracture.png);--card-orn:url(../assets/ui/accent-violet.png)}.difficulty strong{color:color-mix(in srgb, var(--accent-bloom) 55%, #b9cee3);font-family:var(--font-tech);letter-spacing:.24em;text-indent:.24em;align-self:start;font-size:7.5px;font-weight:600;transition:color .13s linear}.difficulty span{color:var(--muted);font-family:var(--font-tech);letter-spacing:.16em;text-indent:.16em;white-space:nowrap;align-self:end;font-size:4.5px}.difficulty:after{content:"";aspect-ratio:1;pointer-events:none;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent-bloom) 16%, transparent), transparent 100%);opacity:.7;width:78%;transition:opacity .15s linear;position:absolute;top:47%;left:50%;translate:-50% -50%}.difficulty:hover:after,.difficulty.active:after{opacity:1}.card-crystal{z-index:1;aspect-ratio:60/76;pointer-events:none;background:var(--card-icon) center / contain no-repeat;width:min(60px,52%);image-rendering:pixelated;opacity:.74;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--accent-bloom) 26%, transparent));transition:opacity .14s linear,filter .16s linear;position:absolute;top:47%;left:50%;translate:-50% -50%}.card-frame{pointer-events:none;position:absolute;inset:0}.card-frame b{border:1px solid var(--accent-bloom);opacity:0;width:4px;height:4px;box-shadow:0 0 6px color-mix(in srgb, var(--accent-bloom) 70%, transparent);background:#030916e6;transition:opacity .13s linear;position:absolute;rotate:45deg}.card-frame b:first-child{top:-2px;left:-2px}.card-frame b:nth-child(2){top:-2px;right:-2px}.card-frame b:nth-child(3){bottom:-2px;left:-2px}.card-frame b:nth-child(4){bottom:-2px;right:-2px}.card-frame:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-line), transparent);height:1px;position:absolute;bottom:22px;left:14%;right:14%}.card-frame:after{content:"";background:var(--card-orn) center / contain no-repeat;opacity:.85;width:26px;height:23px;transition:opacity .13s linear;position:absolute;bottom:15px;left:50%;translate:-50%}.difficulty:hover:not(.active),.difficulty:focus-visible{--tick-c:var(--accent-bloom);--tick-len:8px;border-color:color-mix(in srgb, var(--accent-bloom) 60%, transparent)}.difficulty:hover .card-frame b,.difficulty:focus-visible .card-frame b,.difficulty.active .card-frame b{opacity:1}.difficulty:hover:not(.active) .card-crystal{opacity:.9;filter:drop-shadow(0 0 7px color-mix(in srgb, var(--accent-bloom) 45%, transparent))}.difficulty:hover .card-frame:after,.difficulty.active .card-frame:after{opacity:1}.difficulty.active{--own-shadow:inset 0 0 24px var(--accent-deep), 0 0 14px color-mix(in srgb, var(--accent-bloom) 30%, transparent);--tick-c:var(--bloom-white);--tick-len:9px;border-color:var(--accent-bloom);background:radial-gradient(116% 72% at 50% 0%, color-mix(in srgb, var(--accent-deep) 100%, transparent), transparent 72%), linear-gradient(180deg, color-mix(in srgb, var(--accent-deep) 78%, #050e22e6), #040d20db);color:var(--ink);translate:0 -3px}.difficulty.active strong{color:var(--accent-bloom);text-shadow:0 0 8px color-mix(in srgb, var(--accent-bloom) 60%, transparent)}.difficulty.active span{color:#9dc0dd}.difficulty.active .card-crystal{opacity:1;animation:3.6s ease-in-out infinite crystal-pulse}@keyframes crystal-pulse{0%,to{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--accent-bloom) 45%, transparent))}50%{filter:drop-shadow(0 0 11px color-mix(in srgb, var(--accent-bloom) 85%, transparent))}}.title-actions{width:var(--stack-w);gap:9px;margin-top:2px;display:flex}.menu-slot{flex:1;min-width:0;display:flex;position:relative}.menu-slot.wide{flex:1.5}.menu-slot .button{flex:1}.menu-slot:before,.menu-slot:after{content:"";pointer-events:none;opacity:0;background:url(../assets/ui/cursor-diamond.png) 50%/contain no-repeat;width:15px;height:19px;margin-top:-9.5px;transition:opacity .13s linear,translate .17s ease-out;position:absolute;top:50%}.menu-slot:before{left:-15px;translate:5px}.menu-slot:after{right:-15px;translate:-5px;scale:-1 1}.menu-slot:hover:before,.menu-slot:hover:after{opacity:1;translate:0}.menu-slot:has(:focus-visible):before{opacity:1;translate:0}.menu-slot:has(:focus-visible):after{opacity:1;translate:0}.input-hint{color:var(--cyan);font-family:var(--font-tech);letter-spacing:.28em;justify-items:center;gap:3px;margin:3px 0 0;font-size:6px;display:grid}.input-hint em{color:var(--muted);font-style:normal}.input-hint b{border:1px solid var(--bloom-cyan);width:10px;height:10px;color:var(--bloom-white);letter-spacing:0;vertical-align:-2px;border-radius:50%;place-items:center;font-size:5px;font-weight:700;display:inline-grid;box-shadow:0 0 6px #73faff80}.input-hint small{color:var(--muted);letter-spacing:.3em;font-size:5px}.ui-layer[data-intro=boot] .title-panel,.ui-layer[data-intro=reveal] .title-panel{visibility:hidden}.ui-layer[data-intro=title] .title-drift{animation:1.4s ease-out .6s both fade-in}.ui-layer[data-intro=title] .title-lockup .eyebrow{animation:.62s ease-out both rise-in}.ui-layer[data-intro=title] .title-panel h1 span{animation:1s ease-out .12s both letters-in}.ui-layer[data-intro=title] .title-panel h1 b{animation:1s ease-out .28s both letters-in}.ui-layer[data-intro=title] .title-divider{animation:.62s ease-out .72s both rise-in}.ui-layer[data-intro=title] .title-copy{animation:.62s ease-out .84s both rise-in}.ui-layer[data-intro=title] .difficulty-picker{animation:.62s ease-out .96s both rise-in}.ui-layer[data-intro=title] .title-actions{animation:.62s ease-out 1.09s both rise-in}.ui-layer[data-intro=title] .input-hint{animation:.62s ease-out 1.22s both rise-in}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;translate:0 6px}}@keyframes letters-in{0%{opacity:0;letter-spacing:1.1em;filter:blur(7px)}}.app-shell.departing .game-surface{transition:transform .62s cubic-bezier(.34,.02,.32,1);transform:scale(1.035)}.title-panel.departing{pointer-events:none}.title-panel.departing .title-lockup{animation:.44s ease-in forwards scatter-up}.title-panel.departing .title-drift{animation:.44s linear forwards fade-out}.title-panel.departing .difficulty-picker{animation:.44s ease-in 40ms forwards scatter-apart}.title-panel.departing .title-actions{animation:.44s ease-in 60ms forwards scatter-down}.title-panel.departing .input-hint{animation:.44s ease-in 90ms forwards scatter-down}@keyframes fade-out{to{opacity:0}}@keyframes scatter-up{to{opacity:0;filter:blur(6px);letter-spacing:.9em;translate:0 -10px}}@keyframes scatter-down{to{opacity:0;filter:blur(5px);translate:0 12px}}@keyframes scatter-apart{to{opacity:0;filter:blur(5px);scale:1.08}}.controls-panel{width:min(92%,346px)}.control-columns{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px;display:grid}.control-group{--tick-c:#8cdefa80;--tick-len:4px;border:1px solid var(--line);background:linear-gradient(#081a3899,#040c1e80);min-width:0;padding:7px;position:relative}.control-group h3{color:var(--bloom-cyan);font-family:var(--font-tech);letter-spacing:.24em;text-shadow:0 0 6px #73faff66;margin:0 0 5px;font-size:7px;font-weight:600}.control-group dl{margin:0}.control-group dl div{border-bottom:1px solid #6fe2fa1a;gap:1px;padding:2px 0;display:grid}.control-group dl div:last-child{border-bottom:0}.control-group dt{color:var(--muted);font-family:var(--font-tech);letter-spacing:.08em;font-size:4.8px}.control-group dd{color:#d3e5f6;margin:0;font-size:5.5px}.hud{pointer-events:none;color:var(--ink);text-shadow:0 1px 2px #000;position:absolute;inset:0}.hud-top{grid-template-columns:78px 1fr 52px 20px;align-items:start;gap:4px;padding:5px 6px 0;display:grid}.hud-score,.hud-lux{font-family:var(--font-tech);display:grid}.hud-score span,.hud-lux span{color:var(--cyan);letter-spacing:.24em;font-size:4.5px}.hud-score strong,.hud-lux strong{letter-spacing:.12em;text-shadow:0 0 6px #6fe2fa59,0 1px 2px #000;font-size:8px;font-weight:600}.hud-stage{min-width:0;font-family:var(--font-tech);justify-items:center;display:grid}.hud-stage strong{max-width:100%;color:var(--bloom-white);letter-spacing:.1em;text-overflow:ellipsis;white-space:nowrap;font-size:6px;font-weight:600;overflow:hidden}.hud-stage span{color:var(--muted);letter-spacing:.14em;font-size:4px}.hud-lux{text-align:right}.hud-pause{--tick-c:#bee8ff80;--tick-len:3px;pointer-events:auto;background:#030813a8;border-color:#bee8ff4d;place-items:center;width:18px;height:18px;padding:0;font-size:7px;display:grid}.stage-progress{background:#a0c8f024;height:1px;position:absolute;top:25px;left:6px;right:6px;overflow:hidden}.stage-progress i{transform-origin:0;background:linear-gradient(90deg, #3a8cebd9, var(--bloom-cyan));height:100%;display:block;box-shadow:0 0 5px #73faffcc}.hud-bottom{font-family:var(--font-tech);grid-template-columns:auto auto auto 1fr auto;align-items:end;gap:7px;display:grid;position:absolute;bottom:5px;left:6px;right:6px}.lives,.node-meter,.power-meter{align-items:center;gap:2px;display:flex}.lives>span,.node-meter>span,.power-meter>span{color:var(--muted);letter-spacing:.18em;margin-right:2px;font-size:4px}.lives i{color:#bed8f02e;font-size:6px;font-style:normal}.lives i.live{color:var(--coral);text-shadow:0 0 5px #f0707fd9}.node-charge{border:1px solid #6fe2fa52;width:15px;height:3px;position:relative;overflow:hidden}.node-charge b{transform-origin:0;background:linear-gradient(90deg, #3a8cebe6, var(--bloom-cyan));position:absolute;inset:0}.power-pip{border:1px solid #ff8fa352;width:15px;height:3px;position:relative;overflow:hidden}.power-pip b{transform-origin:0;background:linear-gradient(90deg, #f05a82e6, var(--bloom-rose));position:absolute;inset:0}.power-pip.filled{border-color:#ff8fa3b3;box-shadow:0 0 4px #ff8fa38c}.loadout-strip{color:#c3d6e8;letter-spacing:.06em;white-space:nowrap;justify-content:center;gap:6px;min-width:0;font-size:4.5px;display:flex}.loadout-strip span{text-overflow:ellipsis;overflow:hidden}.formation-strip{justify-items:end;display:grid}.formation-strip span{color:var(--amber);letter-spacing:.12em;text-shadow:0 0 6px #f0c04e66;font-size:6px;font-weight:700}.formation-strip small{color:var(--muted);letter-spacing:.1em;font-size:3.8px}.combo-hud{transform-origin:top;color:var(--combo-neutral);font-family:var(--font-tech);pointer-events:none;flex-direction:column;align-items:center;gap:1px;display:flex;position:absolute;top:46px;left:50%;transform:translate(-50%)scale(2)}.combo-start{color:var(--combo-blue)}.combo-chain{color:var(--combo-green)}.combo-rush{color:var(--combo-yellow)}.combo-storm{color:var(--combo-purple)}.combo-overdrive{color:var(--combo-orange)}.combo-digits{gap:1px;animation:.16s ease-out combo-pop;display:flex}.combo-digits img{height:24px;image-rendering:pixelated}.combo-phase{letter-spacing:.3em;text-indent:.3em;font-size:5px;font-weight:700}.combo-count{letter-spacing:.04em;text-shadow:0 0 4px,0 0 9px;font-size:14px;font-weight:800;line-height:1;animation:.16s ease-out combo-pop}.combo-label{color:var(--muted);letter-spacing:.22em;text-indent:.22em;font-size:4px}.combo-gauge{background:#ffffff29;width:24px;height:2px;margin-top:1px;position:relative;overflow:hidden}.combo-gauge b{transform-origin:0;background:currentColor;position:absolute;inset:0}.combo-popup{letter-spacing:.2em;text-indent:.2em;text-shadow:0 0 5px;animation:combo-announce var(--combo-popup-dur) ease-out forwards;margin-top:2px;font-size:7px;font-weight:800}.combo-break{color:var(--muted);letter-spacing:.26em;text-indent:.26em;animation:combo-break-out var(--combo-break-dur) ease-out forwards;font-size:6px;font-weight:700}@keyframes combo-pop{0%{transform:scale(1.55)}to{transform:scale(1)}}@keyframes combo-announce{0%{opacity:0;transform:scale(.62)}16%{opacity:1;transform:scale(1.18)}30%{transform:scale(1)}68%{opacity:1}to{opacity:0;transform:scale(1)}}@keyframes combo-break-out{0%{opacity:.9;transform:scale(1.2)}26%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(1)}}.app-shell.touch-device .combo-hud{transform:translate(-50%)scale(1.35)}.app-shell.touch-device .combo-count,.app-shell.touch-device .combo-digits,.app-shell.touch-device .combo-popup,.app-shell.touch-device .combo-break{animation:none}.app-shell.touch-device .combo-count{text-shadow:none}.app-shell.touch-device .combo-popup,.app-shell.touch-device .combo-break{display:none}.power-banner{color:var(--bloom-rose);font-family:var(--font-tech);letter-spacing:.22em;text-indent:.22em;text-shadow:0 0 6px;pointer-events:none;animation:power-banner-in var(--power-banner-dur) ease-out forwards;font-size:7px;font-weight:800;position:absolute;bottom:17px;left:50%}@keyframes power-banner-in{0%{opacity:0;transform:translate(-50%,6px)}14%{opacity:1;transform:translate(-50%)}72%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}.boss-hud{width:170px;font-family:var(--font-tech);position:absolute;top:31px;left:50%;transform:translate(-50%)}.boss-hud div{letter-spacing:.12em;justify-content:space-between;gap:8px;font-size:4.5px;display:flex}.boss-hud div span{color:var(--amber)}.boss-hud>i{border:1px solid #f0707f80;height:3px;margin-top:2px;display:block;position:relative;overflow:hidden}.boss-hud>i b{transform-origin:0;background:linear-gradient(90deg, var(--coral), var(--bloom-amber));position:absolute;inset:0}.pause-panel{text-align:center;width:min(72%,270px)}.pause-loadout{text-align:left;grid-template-columns:repeat(2,1fr);gap:5px;margin:12px 0;display:grid}.pause-loadout div{--tick-c:#8cdefa73;--tick-len:4px;border:1px solid var(--line);background:linear-gradient(#081a3880,#040c1e6b);padding:6px 6px 6px 8px;position:relative}.pause-loadout div:after{content:"";background:linear-gradient(180deg, transparent, var(--bloom-cyan), transparent);width:1px;position:absolute;top:4px;bottom:4px;left:0;box-shadow:0 0 4px #73faff99}.pause-loadout dt{color:var(--muted);font-family:var(--font-tech);letter-spacing:.22em;font-size:5px}.pause-loadout dd{color:#dcecfa;font-family:var(--font-tech);letter-spacing:.06em;margin:2px 0 0;font-size:7px}.result-panel,.gameover-panel{text-align:center}.result-score{--tick-c:#8cdefa6b;--tick-len:4px;border:1px solid var(--line);font-family:var(--font-tech);background:linear-gradient(90deg,#081a3880,#040c1e4d);justify-content:space-between;margin-top:8px;padding:6px 8px;display:flex;position:relative}.result-score span{color:var(--muted);letter-spacing:.22em}.result-score strong{color:var(--bloom-amber);letter-spacing:.16em;text-shadow:0 0 8px #ffdf6a59}.result-panel-ranked{text-align:left;width:min(92%,370px);max-height:94%;padding:11px 13px;overflow:hidden}.result-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.result-heading .eyebrow{letter-spacing:.25em;margin-bottom:2px;font-size:4.5px}.result-heading h2{font-size:13px}.result-heading>span{color:var(--cyan);font-family:var(--font-tech);letter-spacing:.22em;border:1px solid #6fe2fa52;flex:none;margin-top:2px;padding:2px 5px;font-size:4.5px}.result-main{grid-template-columns:minmax(0,1fr) 72px;gap:6px;margin-top:7px;display:grid}.result-stage-score,.result-rank,.result-total,.result-board{font-family:var(--font-tech);background:linear-gradient(112deg,#081c3db8,#030b1cd1);border:1px solid #6fe2fa42}.result-stage-score{align-content:center;min-width:0;padding:6px 9px;animation:.28s cubic-bezier(.16,.84,.34,1) 90ms both result-score-lock;display:grid}.result-stage-score>span,.result-rank>span,.result-total>span,.result-board-title{color:var(--muted);letter-spacing:.24em;font-size:4.5px}.result-stage-score strong{color:var(--bloom-amber);letter-spacing:.13em;text-overflow:clip;text-shadow:0 0 9px #ffdf6a61;white-space:nowrap;margin-top:1px;font-size:17px;font-weight:600;line-height:1.05;overflow:hidden}.result-stage-score small{color:var(--amber);letter-spacing:.17em;margin-top:2px;font-size:4px}.result-rank{min-height:54px;color:var(--bloom-cyan);align-content:center;justify-items:center;animation:.34s cubic-bezier(.12,.82,.22,1.18) .27s both result-rank-stamp;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 18px #73faff14,0 0 10px #3a8ceb24}.result-rank:after{content:"";opacity:.42;background:currentColor;height:1px;position:absolute;top:50%;left:6px;right:6px;box-shadow:0 -12px #73faff24,0 12px #73faff24}.result-rank>*{z-index:1;position:relative}.result-rank strong{text-shadow:0 0 13px;margin:-2px 0 -4px;font-size:34px;line-height:1}.result-rank small{max-width:66px;color:var(--ink);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-size:3.5px;overflow:hidden}.rank-a .result-rank{color:var(--bloom-amber)}.rank-b .result-rank{color:#d9efff}.rank-c .result-rank{color:#8da4bb}.result-total{grid-template-columns:auto auto 1fr;align-items:baseline;gap:8px;margin-top:5px;padding:4px 7px;animation:.26s ease-out .36s both result-score-lock;display:grid}.result-total strong{color:var(--bloom-white);letter-spacing:.16em;font-size:7px}.result-total small{color:var(--muted);letter-spacing:.1em;justify-self:end;font-size:3.8px}.result-board{margin-top:5px;padding:4px 7px 3px}.result-board-title{border-bottom:1px solid #6fe2fa2e;justify-content:space-between;padding-bottom:2px;display:flex}.result-board ol{margin:0;padding:0;list-style:none}.result-board li{color:#aec2da;letter-spacing:.13em;opacity:0;border-bottom:1px solid #6fe2fa1a;grid-template-columns:20px 1fr auto;align-items:center;min-height:11px;font-size:4.5px;animation:.21s ease-out both result-row-in;display:grid}.result-board li:first-child{animation-delay:.47s}.result-board li:nth-child(2){animation-delay:.515s}.result-board li:nth-child(3){animation-delay:.56s}.result-board li:nth-child(4){animation-delay:.605s}.result-board li:nth-child(5){animation-delay:.65s}.result-board li:last-child{border-bottom:0}.result-board li b{color:var(--cyan);font-weight:600}.result-board li em{color:var(--amber);letter-spacing:.12em;font-size:3.7px;font-style:normal}.result-board li.is-current{color:var(--bloom-white);text-shadow:0 0 6px #ffdf6a40;background:linear-gradient(90deg,#ffdf6a21,#0000)}.result-actions{margin-top:6px;animation:.24s ease-out .72s both result-actions-in}.result-actions .button{min-height:20px;padding:4px 8px;font-size:5px}@keyframes result-score-lock{0%{opacity:0;transform:translate(-7px)}to{opacity:1;transform:translate(0)}}@keyframes result-rank-stamp{0%{opacity:0;filter:brightness(2);transform:scale(1.72)}68%{opacity:1;filter:brightness(1.35);transform:scale(.94)}to{opacity:1;filter:brightness();transform:scale(1)}}@keyframes result-row-in{0%{opacity:0;transform:translate(7px)}to{opacity:1;transform:translate(0)}}@keyframes result-actions-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.continue-rule{font-family:var(--font-tech);letter-spacing:.16em;font-size:6px;color:var(--amber)!important}.gate-accessibility{--tick-c:#bee8ffb3;--tick-len:6px;pointer-events:auto;background:radial-gradient(120% 140% at 0 0,#143e7c66,#0000 62%),#030813eb;border:1px solid #6fe2fa4d;justify-content:space-between;align-items:center;gap:8px;padding:5px 7px;display:flex;position:absolute;bottom:7px;left:9px;right:9px;box-shadow:0 0 18px #328cdc2e,inset 0 0 20px #286ec81a}.gate-accessibility h2{font-family:var(--font-tech);letter-spacing:.16em;color:var(--bloom-white);margin:0;font-size:7px;font-weight:600}.gate-accessibility p{color:var(--muted);margin:2px 0 0;font-size:4.5px}.gate-accessibility .eyebrow{letter-spacing:.3em;font-size:4px}.gate-actions{gap:3px;display:flex}.gate-actions button{letter-spacing:.14em;min-height:18px;padding:3px 5px;font-size:4.5px}.gate-actions .primary{--own-shadow:inset 0 0 10px #ffdf6a29, 0 0 6px #f0c04e3d;color:var(--bloom-amber);background:linear-gradient(112deg,#48340ce6,#261b08e6);border-color:#f0c04eb3}.gate-actions .primary:hover:not(:disabled){border-color:var(--bloom-amber);color:#fff3cf;background:linear-gradient(112deg,#664a12f2,#38280cf2)}.gate-ahead-banner{color:var(--bloom-amber);font-family:var(--font-tech);letter-spacing:.3em;text-shadow:0 0 9px #ffdf6a80;pointer-events:none;background:linear-gradient(112deg,#48340c9e,#261b089e);border:1px solid #f0c04e8c;align-items:center;gap:8px;padding:4px 11px;font-size:8px;animation:.3s ease-out both fade-in;display:flex;position:absolute;top:17%;left:50%;transform:translate(-50%);box-shadow:0 0 14px #f0c04e33,inset 0 0 10px #ffdf6a1a}.gate-ahead-banner i{font-style:normal;animation:.7s steps(2,end) infinite gate-chevron}@keyframes gate-chevron{50%{opacity:.25}}.gate-shop{pointer-events:auto;background:radial-gradient(120% 120% at 50% 42%,#02060e94,#010309e6);place-items:center;padding:8px;animation:.24s ease-out both fade-in;display:grid;position:absolute;inset:0}.gate-shop-panel{--tick-c:#bee8ffd9;--tick-len:7px;overscroll-behavior:contain;scrollbar-width:none;background:radial-gradient(1px 1px at 17% 21%,#a0e0ff80,#0000 100%),radial-gradient(1px 1px at 63% 13%,#78beff66,#0000 100%),radial-gradient(1px 1px at 85% 57%,#a0e0ff52,#0000 100%),radial-gradient(1px 1px at 33% 77%,#78beff4d,#0000 100%),radial-gradient(130% 90% at 50% 0,#143e7c52,#0000 62%),linear-gradient(158deg,#050e22f6,#04122af2);border:1px solid #8ccdf052;width:min(94%,470px);max-height:96%;padding:10px 12px 11px;animation:.32s ease-out both rise-in;position:relative;overflow:hidden auto;box-shadow:0 0 0 1px #03070fcc,0 12px 44px #0000009e,0 0 20px #328cdc33,inset 0 0 26px #286ec81a}.gate-shop-panel::-webkit-scrollbar{display:none}.gate-shop-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.gate-shop-header h2{font-family:var(--font-tech);letter-spacing:.2em;color:var(--bloom-white);text-shadow:0 0 12px #6fe2fa59,0 0 30px #3a8ceb40;margin:0;font-size:14px;font-weight:500}.gate-shop-sub{color:var(--muted);font-family:var(--font-tech);letter-spacing:.18em;margin:3px 0 0;font-size:5.5px}.gate-shop-lux{font-family:var(--font-tech);background:linear-gradient(112deg,#48340c8c,#261b088c);border:1px solid #f0c04e73;flex:none;justify-items:end;gap:1px;padding:4px 7px;display:grid}.gate-shop-lux span{color:var(--amber);letter-spacing:.3em;font-size:5px}.gate-shop-lux strong{color:var(--bloom-amber);letter-spacing:.14em;text-shadow:0 0 8px #ffdf6a66;font-size:12px}.gate-shop-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px;display:grid}.gate-shop-column{align-content:start;gap:3px;display:grid}.gate-shop-column h3{border-bottom:1px solid var(--line);color:var(--cyan);font-family:var(--font-tech);letter-spacing:.26em;margin:0 0 1px;padding-bottom:2px;font-size:5px;font-weight:700}.gate-item{text-align:left;grid-template-columns:26px minmax(0,1fr) auto;grid-template-areas:"glyph name tag""glyph pips tag";align-items:center;column-gap:4px;min-height:28px;padding:3px 5px;font-size:5.5px;display:grid}.gate-item-icon{width:24px;height:24px;image-rendering:pixelated;grid-area:glyph}.gate-detail-icon{vertical-align:-7px;width:24px;height:24px;image-rendering:pixelated;margin-right:4px}.gate-item-name{color:var(--ink);letter-spacing:.1em;white-space:nowrap;text-overflow:ellipsis;grid-area:name;font-size:5.5px;overflow:hidden}.gate-item-tag{color:var(--bloom-amber);letter-spacing:.12em;grid-area:tag;font-size:5px}.gate-item-pips{color:var(--amber);letter-spacing:.2em;grid-area:pips;font-size:4.5px}.gate-item.is-selected{background:linear-gradient(112deg,#48340c99,#141a2ed9);border-color:#f0c04ed9;box-shadow:0 0 10px #f0c04e47,inset 0 0 8px #f0c04e24}.gate-item.is-equipped{border-color:#6fe2fab3}.gate-item.is-equipped .gate-item-tag{color:var(--bloom-cyan)}.gate-item.is-locked .gate-item-name{color:var(--muted)}.gate-item.is-locked .gate-item-tag{color:var(--coral)}.gate-item.is-spent .gate-item-tag{color:var(--muted)}.gate-shop-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:10px;margin-top:9px;padding-top:7px;display:flex}.gate-shop-detail{min-width:0}.gate-detail-name{color:var(--bloom-white);font-family:var(--font-tech);letter-spacing:.14em;margin:0;font-size:7px}.gate-detail-name span{color:var(--muted);font-size:5.5px}.gate-detail-desc{color:#aec2da;margin:2px 0 0;font-size:6px;line-height:1.5}.gate-detail-status{color:var(--muted);font-family:var(--font-tech);letter-spacing:.2em;margin:3px 0 0;font-size:5px}.gate-detail-status.has-message{color:var(--bloom-amber);text-shadow:0 0 7px #ffdf6a66}.gate-shop-actions{flex:none;gap:4px;min-width:108px;display:grid}.gate-shop-actions button{letter-spacing:.14em;min-height:18px;padding:3px 6px;font-size:5.5px}.gate-shop-actions .primary{--own-shadow:inset 0 0 10px #ffdf6a29, 0 0 6px #f0c04e3d;color:var(--bloom-amber);background:linear-gradient(112deg,#48340ce6,#261b08e6);border-color:#f0c04eb3}.gate-shop-actions .primary:hover:not(:disabled){border-color:var(--bloom-amber);color:#fff3cf;background:linear-gradient(112deg,#664a12f2,#38280cf2)}.gate-shop-actions .gate-leave{color:var(--bloom-cyan);border-color:#6fe2fa8c}.gate-shop-actions .gate-leave:hover{border-color:var(--bloom-cyan);color:#fff}.settings-panel{width:min(82%,310px)}.settings-grid{grid-template-columns:repeat(2,1fr);gap:8px 10px;margin-top:10px;display:grid}.range-setting{gap:4px;display:grid;position:relative}.range-setting:before,.range-setting:after{content:"";pointer-events:none;background:var(--bloom-cyan);width:3px;height:3px;margin-bottom:-1px;position:absolute;bottom:5px;transform:rotate(45deg);box-shadow:0 0 4px #73faffb3}.range-setting:before{left:-1px}.range-setting:after{opacity:.4;right:-1px}.range-setting>span{color:var(--muted);font-family:var(--font-tech);letter-spacing:.16em;justify-content:space-between;font-size:5px;display:flex}.range-setting output{color:var(--bloom-cyan);text-shadow:0 0 5px #73faff66}.range-setting input{appearance:none;width:100%;height:12px;accent-color:var(--cyan);cursor:pointer;background:0 0}.range-setting input::-webkit-slider-runnable-track{background:radial-gradient(1.5px 1.5px at 25%,#a0e0ffb3,#0000 100%),radial-gradient(1.5px 1.5px,#a0e0ffb3,#0000 100%),radial-gradient(1.5px 1.5px at 75%,#a0e0ffb3,#0000 100%),linear-gradient(90deg,#73faffe6,#3a8ceb99 52%,#6fe2fa29);border:0;height:1px;box-shadow:0 0 5px #6fe2fa66}.range-setting input::-moz-range-track{background:radial-gradient(1.5px 1.5px at 25%,#a0e0ffb3,#0000 100%),radial-gradient(1.5px 1.5px,#a0e0ffb3,#0000 100%),radial-gradient(1.5px 1.5px at 75%,#a0e0ffb3,#0000 100%),linear-gradient(90deg,#73faffe6,#3a8ceb99 52%,#6fe2fa29);border:0;height:1px;box-shadow:0 0 5px #6fe2fa66}.range-setting input::-webkit-slider-thumb{appearance:none;border:1px solid var(--bloom-white);background:linear-gradient(150deg,#f4fbff 0%,#73faff 42%,#1f7fd4 100%);border-radius:0;width:7px;height:7px;margin-top:-3px;transform:rotate(45deg);box-shadow:0 0 5px #73faffd9,0 0 10px #3a8ceb80}.range-setting input::-moz-range-thumb{border:1px solid var(--bloom-white);background:linear-gradient(150deg,#f4fbff 0%,#73faff 42%,#1f7fd4 100%);border-radius:0;width:7px;height:7px;transform:rotate(45deg);box-shadow:0 0 5px #73faffd9,0 0 10px #3a8ceb80}.range-setting input:hover::-webkit-slider-thumb{box-shadow:0 0 8px #73faff,0 0 16px #3a8cebb3}.range-setting input:hover::-moz-range-thumb{box-shadow:0 0 8px #73faff,0 0 16px #3a8cebb3}.toggle-setting{border:1px solid var(--line);min-height:20px;color:var(--muted);font-family:var(--font-tech);letter-spacing:.16em;cursor:pointer;background:linear-gradient(90deg,#081a3873,#040c1e4d);justify-content:space-between;align-items:center;padding:4px 27px 4px 7px;font-size:5px;transition:border-color .13s linear,color .13s linear,background .13s linear;display:flex;position:relative}.toggle-setting input{opacity:0;cursor:pointer;width:21px;height:11px;margin:0;position:absolute;right:3px}.toggle-setting i{clip-path:polygon(3px 0,calc(100% - 3px) 0,100% 50%,calc(100% - 3px) 100%,3px 100%,0 50%);background:linear-gradient(#030c20f0,#020714f0);border:1px solid #6fe2fa61;width:19px;height:9px;margin-top:-4.5px;transition:border-color .13s linear,background .13s linear;position:absolute;top:50%;right:4px}.toggle-setting i:after{content:"";clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);background:linear-gradient(#5f7285,#2c3d50);width:8px;height:5px;transition:transform .14s linear,background .14s linear;position:absolute;top:1px;left:1px}.toggle-setting:after{content:"";pointer-events:none;width:19px;height:9px;margin-top:-4.5px;transition:box-shadow .15s linear;position:absolute;top:50%;right:4px}.toggle-setting:hover{color:#a9c1da;border-color:#73faff6b}.toggle-setting input:checked~i{border-color:var(--bloom-cyan);background:linear-gradient(#0a2c60f2,#04122ef2)}.toggle-setting input:checked~i:after{background:linear-gradient(#f4fbff,#73faff 45%,#1f7fd4);transform:translate(9px)}.toggle-setting:has(input:checked){color:var(--cyan);background:linear-gradient(90deg,#0c2a5a80,#040e2252);border-color:#73faff61}.toggle-setting:has(input:checked):after{box-shadow:0 0 7px #73faff99,0 0 14px #3a8ceb59}.ending-panel{text-align:center;background:radial-gradient(circle at 50% 45%,#6fe2fa2e,#030814f5 56%);align-content:center;justify-items:center;padding:24px 58px;display:grid;inset:0}.ending-panel>p:not(.eyebrow){max-width:260px;margin:9px 0;font-size:7px;line-height:1.55}.ending-panel .button{margin-top:10px}.ending-light{width:68px;height:38px;margin-bottom:8px;position:relative}.ending-light:before{content:"";border:1px solid var(--bloom-cyan);background:#73faff1a;width:26px;height:26px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 36px #73faffcc,inset 0 0 12px #f4fbff4d}.ending-light i{border:1px solid var(--bloom-amber);width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;transform:rotate(45deg);box-shadow:0 0 8px #ffdf6a80}.ending-light i:first-child{left:0}.ending-light i:nth-child(2){left:30px}.ending-light i:nth-child(3){right:0}.ending-stats{color:var(--amber);font-family:var(--font-tech);letter-spacing:.18em;gap:12px;margin:5px 0;font-size:5px;display:flex}.error-panel{--tick-c:#ff8fa3cc;border-color:#f0707f99}.error-panel h2{color:var(--bloom-rose);text-shadow:0 0 12px #f0707f66}.touch-controls{--touch-opacity:.72;--pad-l:max(13px, env(safe-area-inset-left));--pad-r:max(15px, env(safe-area-inset-right));--pad-b:max(20px, env(safe-area-inset-bottom));z-index:6;pointer-events:none;touch-action:none;position:absolute;inset:0}.touch-capture{z-index:1;pointer-events:auto;touch-action:none;background:0 0;position:absolute;inset:0}.touch-guide{pointer-events:none;display:none}.touch-controls .touch-fire{right:var(--pad-r);bottom:var(--pad-b);z-index:3;width:78px;height:78px;image-rendering:pixelated;color:var(--bloom-white);font-family:var(--font-tech);letter-spacing:.12em;text-shadow:0 1px 3px #000;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:url(../assets/ui/fire-idle.png) 50%/contain no-repeat;border:0;padding:0;font-size:9px;font-weight:800;transition:none;position:absolute}.touch-controls .touch-fire.is-down,.touch-controls .touch-fire:active{background:url(../assets/ui/fire-press.png) 50%/contain no-repeat;transform:scale(.96)}.touch-actions{top:50%;right:var(--pad-r);z-index:2;pointer-events:auto;flex-direction:column;gap:8px;display:flex;position:absolute;transform:translateY(-50%)}.touch-controls .touch-fn:not(:disabled){width:52px;height:52px;image-rendering:pixelated;color:#d5c8ff;letter-spacing:.12em;text-shadow:0 1px 2px #000;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:url(../assets/ui/fn-idle.png) 50%/52px 36px no-repeat;border:0;padding:0;font-size:7px;font-weight:700;transition:none}.touch-controls .touch-fn.is-down:not(:disabled),.touch-controls .touch-fn:active:not(:disabled){color:var(--bloom-white);background:url(../assets/ui/fn-live.png) 50%/52px 36px no-repeat}.touch-controls .touch-fire,.touch-controls .touch-actions,.touch-controls .touch-guide{opacity:var(--touch-opacity)}.rotate-hint{--tick-c:#8cdefacc;background:#040b1aed;border:1px solid #6fe2fa73;grid-template-columns:auto auto;place-items:center start;gap:1px 9px;width:max-content;padding:8px 12px;animation:.42s ease-out both rotate-hint-in;display:grid;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 24px #03070fcc,inset 0 0 20px #04173d99}.rotate-hint:before{content:"";pointer-events:none;background:linear-gradient(var(--tick-c), var(--tick-c)) 0 0 / 5px 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 0 0 / 1px 5px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 0 / 5px 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 0 / 1px 5px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 0 100% / 5px 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 0 100% / 1px 5px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 100% / 5px 1px no-repeat, linear-gradient(var(--tick-c), var(--tick-c)) 100% 100% / 1px 5px no-repeat;position:absolute;inset:-1px}.rotate-hint strong{color:var(--bloom-white);letter-spacing:.16em;text-shadow:0 0 9px #6fe2fa73;font-size:7px;font-weight:700}.rotate-hint small{color:var(--muted);letter-spacing:.16em;font-size:5px}.rotate-hint-glyph{grid-row:1/span 2;width:30px;height:22px;display:block;position:relative}.rotate-hint-glyph i{border:1px solid var(--bloom-cyan);background:#6fe2fa1f;border-radius:2px;width:13px;height:21px;margin:-10px -6px;animation:2.6s ease-in-out infinite rotate-hint-tip;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #73faff4d}.rotate-hint-glyph b{border:1px solid #73faff99;border-color:#73faff99 #73faff99 #0000 #0000;border-radius:50%;position:absolute;inset:0;transform:rotate(28deg)}@keyframes rotate-hint-in{0%{opacity:0;transform:translate(-50%,calc(5px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes rotate-hint-tip{0%,26%{transform:rotate(0)}52%,78%{transform:rotate(-90deg)}to{transform:rotate(0)}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (hover:hover) and (pointer:fine){.app-shell:not(.touch-device) .touch-controls,.rotate-hint{display:none}}@media (max-width:680px){.app-shell{grid-template-rows:calc(34px + env(safe-area-inset-top)) minmax(0, 1fr) calc(26px + env(safe-area-inset-bottom))}.runtime-status span:first-child{display:none}.top-rail{letter-spacing:.14em;font-size:9px}.bottom-rail{letter-spacing:.16em;font-size:7px}.title-panel{gap:5px;padding:8px 10px}.title-divider{width:150px;margin:5px 0 4px}.title-copy,.card-crystal,.difficulty:after{display:none}.difficulty{aspect-ratio:1.5;padding:5px 4px 6px}.card-frame:before{bottom:12px}.card-frame:after{bottom:10px}.input-hint small{display:none}}@media (max-aspect-ratio:11/16){.runtime-status{gap:8px}.runtime-status span:nth-child(2),.card-crystal,.difficulty:after{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.scanline-mask,.intro-overlay{display:none}.ui-layer[data-intro] .title-panel{visibility:visible}}@media (pointer:coarse) and (orientation:landscape){.app-shell.mode-playing,.app-shell.mode-gate,.app-shell.mode-paused{grid-template-rows:minmax(0,1fr);width:100dvw;height:100dvh}.app-shell.mode-playing .top-rail,.app-shell.mode-gate .top-rail,.app-shell.mode-paused .top-rail,.app-shell.mode-playing .bottom-rail,.app-shell.mode-gate .bottom-rail,.app-shell.mode-paused .bottom-rail{display:none}.hud-top{padding-left:max(6px, env(safe-area-inset-left));padding-right:max(6px, env(safe-area-inset-right));padding-top:max(5px, env(safe-area-inset-top))}}@media (pointer:coarse){.hud-pause:after{content:"";pointer-events:auto;position:absolute;inset:-13px}}.mobile-audio-unlock{--tick-c:var(--bloom-cyan);top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));z-index:12;background:linear-gradient(135deg,#0a3678f7,#04112bfa);border-color:#73faffd1;gap:1px;min-width:112px;min-height:46px;padding:7px 11px;display:grid;position:absolute;box-shadow:0 0 18px #3a8ceb80,inset 0 0 14px #73faff1f}.mobile-audio-unlock strong{color:var(--bloom-white);letter-spacing:.2em;font-size:10px}.mobile-audio-unlock small{color:var(--cyan);letter-spacing:.14em;font-size:6px}.mobile-fullscreen{top:max(10px, env(safe-area-inset-top));left:max(10px, env(safe-area-inset-left));z-index:11;background:linear-gradient(135deg,#362470f5,#07102afa);border-color:#c9a6ffb8;gap:1px;min-width:122px;min-height:46px;padding:7px 11px;display:grid;position:absolute;box-shadow:0 0 16px #845cdc61,inset 0 0 14px #c9a6ff1a}.mobile-fullscreen strong{color:var(--bloom-white);letter-spacing:.17em;font-size:9px}.mobile-fullscreen small{color:#c7b5f4;letter-spacing:.12em;font-size:6px}.fullscreen-help{z-index:30;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#01040cd1;place-items:center;display:grid;position:absolute;inset:0}.fullscreen-help>div{width:min(340px,92dvw);font-family:var(--font-tech);text-align:center;background:linear-gradient(150deg,#091f43fa,#030a1bfc);border:1px solid #73faff8c;padding:18px;box-shadow:0 0 36px #3a8ceb4d}.fullscreen-help strong{color:var(--bloom-white);letter-spacing:.22em;font-size:15px}.fullscreen-help p{color:#c7d7e9;margin:14px 0;font-size:12px;line-height:1.75}.app-shell:fullscreen{width:100%;height:100%}.app-shell:fullscreen::backdrop{background:var(--void)}@media (orientation:landscape){.app-shell.touch-device{grid-template-rows:minmax(0,1fr);width:100dvw;height:100dvh}.app-shell.touch-device .top-rail,.app-shell.touch-device .bottom-rail{display:none}.app-shell.touch-device .hud-top{padding-left:max(6px, env(safe-area-inset-left));padding-right:max(6px, env(safe-area-inset-right));padding-top:max(5px, env(safe-area-inset-top))}}@media (orientation:portrait){.app-shell.touch-device{grid-template-rows:minmax(0,1fr);width:100dvw;height:100dvh}.app-shell.touch-device .top-rail,.app-shell.touch-device .bottom-rail{display:none}.app-shell.touch-device.mode-playing .game-viewport{place-items:start center}.app-shell.touch-device.mode-playing .game-surface{box-shadow:0 1px #73faff73,0 18px 52px #000000b8,0 0 44px #3a64c829}.app-shell.touch-device.mode-playing .touch-controls:before{content:"";z-index:0;opacity:var(--touch-opacity);background:radial-gradient(circle at 24% 42%,#2c68b438,#0000 30%),linear-gradient(#6fe2fa09 1px,#0000 1px) 0 0/24px 24px,linear-gradient(90deg,#6fe2fa09 1px,#0000 1px) 0 0/24px 24px,linear-gradient(#05122be0,#020712fa);border-top:1px solid #6fe2fa33;position:absolute;inset:56.25vw 0 0}.app-shell.touch-device.mode-playing .touch-guide{left:max(20px, env(safe-area-inset-left));bottom:max(31px, env(safe-area-inset-bottom));z-index:2;color:var(--cyan);font-family:var(--font-tech);text-shadow:0 0 9px #73faff73;gap:5px;display:grid;position:absolute}.app-shell.touch-device.mode-playing .touch-guide strong{letter-spacing:.2em;font-size:11px}.app-shell.touch-device.mode-playing .touch-guide span{color:var(--muted);letter-spacing:.16em;font-size:7px}.app-shell.touch-device.mode-playing .touch-actions{top:auto;right:max(12px, env(safe-area-inset-right));bottom:calc(max(18px, env(safe-area-inset-bottom)) + 91px);flex-direction:row;gap:6px;transform:none}.app-shell.touch-device.mode-playing .touch-fire{right:max(14px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom))}.app-shell.touch-device .controls-panel{width:min(86dvw,346px)}.app-shell.touch-device .control-columns{grid-template-columns:1fr}.app-shell.touch-device .controls-panel .control-group:first-child,.app-shell.touch-device .controls-panel .control-group:nth-child(2){display:none}.app-shell.touch-device .result-panel-ranked,.app-shell.touch-device .gate-shop-panel,.app-shell.touch-device .settings-panel{width:min(92dvw,470px);max-height:88dvh}.app-shell.touch-device .gate-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell.touch-device .gate-shop-footer{flex-direction:column;align-items:stretch}.app-shell.touch-device .gate-shop-actions{grid-template-columns:1fr 1fr;width:100%}}
