:root{--bg: #070b14;--panel: #0e1524;--panel-2: #131c30;--line: #223050;--text: #e8eefb;--muted: #8b9bbd;--ruby: #ff4d6b;--amber: #ffb224;--azure: #31c8ff;--rose: #d46bff;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI Variable Display,Segoe UI,SF Pro Display,ui-sans-serif,system-ui,-apple-system,sans-serif;overscroll-behavior:none;-webkit-user-select:none;user-select:none}body:before,body:after{content:"";position:fixed;top:-30%;right:-30%;bottom:-30%;left:-30%;pointer-events:none;z-index:-1}body:before{background:radial-gradient(46rem 32rem at 78% 12%,rgba(212,107,255,.085),transparent 62%);animation:auroraA 87s ease-in-out infinite alternate}body:after{background:radial-gradient(42rem 30rem at 16% 86%,rgba(49,200,255,.08),transparent 62%);animation:auroraB 71s ease-in-out infinite alternate}@keyframes auroraA{0%{transform:translate(0) scale(1)}to{transform:translate(-4%,5%) scale(1.12)}}@keyframes auroraB{0%{transform:translate(0) scale(1.1)}to{transform:translate(5%,-4%) scale(1)}}.app{height:100%;max-width:560px;margin:0 auto;padding:max(10px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.top{display:flex;align-items:center;justify-content:space-between;padding:4px 2px}.brand{display:flex;flex-direction:column;gap:1px}.wordmark{margin:0;font-size:19px;font-weight:800;letter-spacing:.2em;background:linear-gradient(92deg,var(--azure) 0%,var(--rose) 30%,var(--ruby) 50%,var(--rose) 70%,var(--azure) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(120,160,255,.25);animation:wordmarkDrift 14s ease-in-out infinite alternate}@keyframes wordmarkDrift{0%{background-position:0% 50%}to{background-position:100% 50%}}.tagline{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.actions{display:flex;gap:8px}.icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:17px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.icon-btn:hover{background:var(--panel-2);border-color:#35507e}.icon-btn:active{transform:scale(.94)}.icon-btn.active{border-color:var(--azure);color:var(--azure)}.meta{display:flex;justify-content:center;padding:8px 0 2px;min-height:44px}.chip{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:#0e1524cc;color:var(--muted);font-size:13.5px}.chip strong{color:var(--text)}.diff-picker{display:inline-flex;gap:4px;margin-left:2px}.diff{border:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;padding:3px 9px;border-radius:999px;cursor:pointer}.diff.on{border-color:var(--azure);color:var(--azure)}.stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:2px 0}.board{width:100%;height:100%;max-height:62vh;aspect-ratio:1;touch-action:manipulation}.cell{fill:#94afe60b;stroke:#94afe617;stroke-width:1.5}.beams{mix-blend-mode:screen;pointer-events:none}.beam .bloom{animation:beamIn .3s ease-out}.beam .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:beamDraw var(--dur) cubic-bezier(.25,.6,.3,1) forwards}@keyframes beamIn{0%{opacity:0}to{opacity:1}}@keyframes beamDraw{to{stroke-dashoffset:0}}.beam .flow{opacity:0;stroke-dasharray:5 75;animation-name:flowIn,flowMove;animation-duration:.5s,1.15s;animation-timing-function:ease-out,linear;animation-delay:var(--dur),var(--phase);animation-iteration-count:1,infinite;animation-fill-mode:forwards,none}@keyframes flowIn{to{opacity:.4}}@keyframes flowMove{0%{stroke-dashoffset:0}to{stroke-dashoffset:-80}}.source.armed{cursor:pointer;outline:none}.armed-ring{transform-box:fill-box;transform-origin:center;animation:armedPulse 1.6s ease-in-out infinite}@keyframes armedPulse{0%,to{opacity:.25;transform:scale(1)}50%{opacity:.7;transform:scale(1.12)}}.beat-mirror .mirror-ring{stroke:#ffb2248c;stroke-dasharray:2 5;animation:beatRing 1.2s ease-in-out infinite}@keyframes beatRing{50%{stroke:#ffb224f2}}.beat-mirror{cursor:default}.mirror.cracked .mirror-ring{stroke:#ffb22466}.debris{pointer-events:none}.shard{transform-box:fill-box;transform-origin:center;animation:shardSettle .5s cubic-bezier(.2,.9,.4,1) both}@keyframes shardSettle{0%{transform:scale(2.4) rotate(90deg);opacity:0}55%{opacity:.85}to{transform:none;opacity:.55}}.halo{transform-box:fill-box;transform-origin:center;animation:breathe 3.6s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.78}50%{transform:scale(1.13);opacity:1}}.mirror{cursor:pointer;outline:none}.mirror-ring{fill:#94afe60d;stroke:#94afe647;stroke-width:1.5;stroke-dasharray:4 7;transition:stroke .15s,fill .15s}.mirror:hover .mirror-ring,.mirror:focus-visible .mirror-ring{stroke:#78c8ffd9;fill:#78c8ff17}.mirror.frozen{cursor:default}.mirror.frozen .mirror-ring{stroke:#94afe61f}.mirror-bar{transform-box:fill-box;transform-origin:center;transition:transform .18s cubic-bezier(.34,1.4,.64,1)}.gem polygon{transition:fill-opacity .25s,stroke-opacity .25s}.gem .facet{transition:opacity .3s;pointer-events:none}.sparkle{transform-box:fill-box;transform-origin:center;opacity:0;animation:sparklePing 2.1s ease-in-out infinite}.sparkle.s2{animation-delay:.7s}.sparkle.s3{animation-delay:1.3s}@keyframes sparkleFade{0%,to{opacity:.1}50%{opacity:.9}}@keyframes sparklePing{0%,55%,to{opacity:0;transform:scale(0) rotate(0)}12%{opacity:1;transform:scale(1) rotate(28deg)}30%{opacity:0;transform:scale(.2) rotate(60deg)}}.gem.lit{animation:gemPop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes gemPop{0%{transform:scale(1)}40%{transform:scale(1.22)}to{transform:scale(1)}}.gem.lit,.gem{transform-box:fill-box;transform-origin:center}.flash-ring{transform-box:fill-box;transform-origin:center;pointer-events:none;animation:ringPing .55s ease-out both}@keyframes ringPing{0%{transform:scale(.55);opacity:.95}to{transform:scale(1.85);opacity:0}}.stage.just-solved .board{animation:solvedGlow 1.4s ease-out}.stage.just-solved .beams{animation:beamsSurge 1.5s ease-out}@keyframes solvedGlow{0%{filter:brightness(1)}25%{filter:brightness(1.5) saturate(1.3)}to{filter:brightness(1)}}@keyframes beamsSurge{0%{filter:brightness(1)}22%{filter:brightness(1.9) saturate(1.25)}to{filter:brightness(1)}}.celebration{pointer-events:none}.cheer-ring{transform-box:fill-box;transform-origin:center;opacity:0;animation:cheerRing .9s cubic-bezier(.2,.7,.3,1) both}.cheer-ring.wide{animation-duration:1.15s}@keyframes cheerRing{0%{transform:scale(.5);opacity:.9}to{transform:scale(2.6);opacity:0}}.mote{transform-box:fill-box;transform-origin:center;opacity:0;animation-name:moteRise;animation-timing-function:ease-out;animation-fill-mode:both}@keyframes moteRise{0%{transform:translate(0) scale(.6);opacity:0}18%{opacity:.95}to{transform:translate(var(--dx, 0px),-84px) scale(1.05);opacity:0}}.hud{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 2px}.hud-stat{display:flex;flex-direction:column;align-items:center;min-width:58px}.hud-stat em{font-style:normal;font-size:21px;font-weight:700;font-variant-numeric:tabular-nums}.hud-stat span{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.hud-buttons{display:flex;gap:8px;margin-left:auto}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:14px;font-weight:600;padding:10px 18px;border-radius:12px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.btn:hover:not(:disabled){background:var(--panel-2);border-color:#35507e}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:linear-gradient(92deg,#1d4ed8,#7c3aed);border-color:transparent;box-shadow:0 4px 18px #5a50ff59}.btn.primary:hover{background:linear-gradient(92deg,#2563eb,#8b5cf6)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04070eb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:40;animation:fadeIn .18s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{width:min(430px,100%);max-height:86vh;overflow-y:auto;background:linear-gradient(180deg,#111a2e,#0c1322);border:1px solid #24345a;border-radius:20px;padding:20px 22px 24px;box-shadow:0 24px 80px #0000008c;animation:rise .22s cubic-bezier(.34,1.3,.64,1)}@keyframes rise{0%{transform:translateY(14px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-head h2{margin:0;font-size:17px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.help-row{display:flex;align-items:center;gap:14px;margin:10px 0}.help-icon{width:54px;height:54px;flex:none;background:#94afe60f;border-radius:14px}.help-row p{margin:0;font-size:14.5px;line-height:1.45;color:#c6d2ea}.help-note{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.5;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center;margin-bottom:18px}.stat-grid em{display:block;font-style:normal;font-size:26px;font-weight:800}.stat-grid span{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.dist h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.dist-row{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:13px}.dist-row>span{width:44px;color:var(--muted)}.dist-bar{height:22px;border-radius:6px;display:flex;align-items:center;justify-content:flex-end;padding:0 8px;font-size:12px;font-weight:700;min-width:26px}.dist-bar.under{background:linear-gradient(90deg,#0ea5e9,#22d3ee)}.dist-bar.at{background:linear-gradient(90deg,#7c3aed,#a855f7)}.dist-bar.over{background:#2a3a5e}.win{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}.win .btn{width:100%;margin-top:8px}.win-burst{font-size:30px;height:44px;display:flex;gap:14px}.win-burst .g1{color:var(--ruby);animation:burst .9s ease-out both}.win-burst .g2{color:var(--amber);animation:burst .9s .12s ease-out both}.win-burst .g3{color:var(--azure);animation:burst .9s .24s ease-out both}@keyframes burst{0%{transform:translateY(16px) scale(.4);opacity:0}55%{transform:translateY(-6px) scale(1.25);opacity:1}to{transform:none;opacity:1}}.win-headline{margin:0;font-size:21px;font-weight:800}.win-score{margin:0;color:#c6d2ea;font-size:15px}.win-verdict{margin:0;font-size:14px;color:var(--muted)}.win-verdict.good{color:#38e0b0;font-weight:700}.stamp{display:inline-block;margin:2px 0 0;padding:4px 14px;border:2px solid #38e0b0;border-radius:10px;color:#38e0b0;font-weight:800;font-size:13px;letter-spacing:.22em;text-transform:uppercase;animation:stampIn .4s cubic-bezier(.2,1.4,.4,1) .3s both}.stamp.gold{border-color:var(--amber);color:var(--amber);text-shadow:0 0 14px rgba(255,178,36,.5)}@keyframes stampIn{0%{transform:scale(1.9) rotate(-8deg);opacity:0}to{transform:scale(1) rotate(-3deg);opacity:1}}.win-milestone{margin:4px 0 0;font-size:14px;font-weight:700;background:linear-gradient(92deg,var(--azure),var(--rose),var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent}.win-streak{margin:2px 0 0;font-size:14.5px;font-weight:700;color:var(--amber)}.win-next{margin:10px 0 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.chip-done{background:#38e0b01f;color:#38e0b0;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700}.chip-back{background:transparent;border:none;color:var(--azure);font-size:13.5px;font-weight:700;cursor:pointer;padding:0 2px}.toast{position:fixed;bottom:84px;left:50%;transform:translate(-50%);background:#14203a;border:1px solid #2c3f68;color:var(--text);padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:600;z-index:60;animation:rise .2s ease-out;box-shadow:0 10px 34px #00000080}.arcade-card{max-width:330px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;padding:28px 22px;background:linear-gradient(180deg,#111a2e,#0c1322);border:1px solid #24345a;border-radius:22px}.arcade-card h2{margin:0;font-size:22px;letter-spacing:.08em}.arcade-card p{margin:0;color:#c6d2ea;font-size:14.5px;line-height:1.5}.arcade-card .btn{width:100%}.arcade-icon{font-size:34px;filter:drop-shadow(0 0 14px rgba(120,160,255,.45))}.arcade-score{font-size:16px}.arcade-score em{font-style:normal;font-size:40px;font-weight:800;display:block}.arcade-best{color:var(--muted);font-size:13.5px}.arcade-hud{padding:6px 4px 0}.timer{height:7px;border-radius:999px;background:#94afe61f;overflow:hidden}.timer-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--azure),var(--rose));transition:width .1s linear}.timer.urgent .timer-fill{background:linear-gradient(90deg,#ff4d6b,#ff8a2a)}.arcade-meta{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 0;font-variant-numeric:tabular-nums}.timer-num{font-size:17px;font-weight:800}.timer-num.urgent{color:#ff5c77;animation:pulseText .8s infinite}@keyframes pulseText{50%{opacity:.55}}.arcade-solves{font-weight:700;color:#c6d2ea}.arcade-shields span{margin-left:3px}.arcade-shields .lost{opacity:.22;filter:grayscale(1)}.stage.vault{align-items:flex-start;overflow-y:auto}.vault-wrap{width:100%;padding:6px 2px 14px}.vault-note{text-align:center;color:var(--muted);font-size:13px;margin:4px 0 12px}.vault-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.vault-cell{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:10px 4px;color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:3px;align-items:center;transition:border-color .15s,background .15s}.vault-cell:hover{border-color:#35507e;background:var(--panel-2)}.vault-cell em{font-style:normal;font-weight:800;font-size:14.5px}.vault-cell span{font-size:11px;color:var(--muted);letter-spacing:.2em}.vault-cell.done{border-color:#38e0b073}.vault-cell.done span{color:#38e0b0;letter-spacing:0}.sheet-overlay{align-items:flex-end;padding:0}.sheet{width:100%;max-width:560px;margin:0 auto;max-height:88vh;overflow-y:auto;background:linear-gradient(180deg,#121b30,#0b1220);border:1px solid #24345a;border-bottom:none;border-radius:22px 22px 0 0;padding:10px 18px calc(18px + env(safe-area-inset-bottom));animation:sheetUp .24s cubic-bezier(.34,1.2,.64,1)}@keyframes sheetUp{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.sheet-grip{width:42px;height:4px;border-radius:999px;background:#2c3f68;margin:4px auto 10px}.sheet-title{margin:14px 2px 8px;font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.mode-list{display:flex;flex-direction:column;gap:6px}.mode-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:11px 14px;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.mode-row:hover{border-color:#35507e;background:var(--panel-2)}.mode-row.on{border-color:var(--azure)}.mode-icon{font-size:19px;width:26px;text-align:center}.mode-text{display:flex;flex-direction:column;gap:1px;flex:1}.mode-text strong{font-size:15px}.mode-text small{color:var(--muted);font-size:12px}.mode-tag{color:var(--rose);font-weight:800;font-size:15px}.mode-row.on .mode-tag{color:var(--azure)}.theme-row{display:flex;gap:10px;flex-wrap:wrap}.theme-swatch{position:relative;display:flex;gap:3px;padding:9px;border-radius:12px;border:1px solid var(--line);background:var(--panel);cursor:pointer}.theme-swatch span{width:14px;height:22px;border-radius:4px}.theme-swatch.on{border-color:var(--azure);box-shadow:0 0 0 1px var(--azure)}.swatch-lock{position:absolute;top:-6px;right:-6px;font-style:normal;font-size:11px;color:var(--rose);background:#0b1220;border:1px solid #2c3f68;border-radius:999px;padding:1px 4px}.feel-row{display:flex;gap:10px}.feel-toggle{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.feel-toggle.on{border-color:var(--azure);color:var(--text)}.prism-banner{display:flex;align-items:center;gap:12px;width:100%;margin-top:16px;text-align:left;border:1px solid transparent;border-radius:16px;padding:13px 16px;color:var(--text);cursor:pointer;background:linear-gradient(#111a2e,#111a2e) padding-box,linear-gradient(92deg,var(--azure),var(--rose),var(--ruby)) border-box}.prism-gems{font-size:16px;letter-spacing:2px;background:linear-gradient(92deg,var(--azure),var(--rose),var(--ruby));-webkit-background-clip:text;background-clip:text;color:transparent}.prism-banner strong{display:block;font-size:15px}.prism-banner small{color:var(--muted);font-size:12px}.prism-banner .mode-tag{margin-left:auto}.sheet-foot{margin:16px 2px 0;text-align:center;color:var(--muted);font-size:12px}.sheet-foot a{color:var(--azure);text-decoration:none}.paywall{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.paywall-lead{margin:0;font-size:15px;line-height:1.5;font-weight:600}.paywall-list{list-style:none;margin:6px 0;padding:0;width:100%;display:flex;flex-direction:column;gap:9px;text-align:left}.paywall-list li{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;line-height:1.45;color:#c6d2ea}.pw-icon{width:22px;text-align:center;flex:none;font-size:15px}.paywall-cta{width:100%;text-align:center;text-decoration:none;display:block}.paywall-note{margin:2px 0 0;font-size:12px;color:var(--muted);line-height:1.5}@media(prefers-reduced-motion:reduce){.beam .bloom,.gem.lit,.flash-ring,.halo,.armed-ring,.beat-mirror .mirror-ring,.shard,.cheer-ring,.mote,.stage.just-solved .board,.stage.just-solved .beams,.win-burst span,.stamp,.wordmark,.modal,.overlay,body:before,body:after{animation:none!important}.beam .draw{stroke-dasharray:none;stroke-dashoffset:0;animation:none!important}.beam .flow{display:none}.stamp{opacity:1;transform:rotate(-3deg)}.sparkle{animation:sparkleFade 2.6s ease-in-out infinite}.sparkle.s2{animation-delay:.9s}.sparkle.s3{animation-delay:1.7s}.mirror-bar{transition:none}}@media(max-width:400px){.wordmark{font-size:16px;letter-spacing:.16em}}
