@font-face{font-family:"Exo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(./exo2-latin-CQ1lLIdm.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Exo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(./exo2-cyrillic-DINSYtDx.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}:root{--fire:#ff5a3c;--ice:#3ca9ff;--fire-a:#ff7a4a;--fire-b:#ff3c2c;--fire-txt:#ffb8a0;--fire-line:#ff5a3c;--ice-a:#5ac8ff;--ice-b:#2a7aff;--ice-txt:#aadcff;--ice-line:#3ca9ff;--violet:#8f7fff;--muted:#7a7590;--bg-0:#0d0b1a;--bg-1:#1a1440;--tile:#2a2450;--tile-next:#453c82;--tile-done:#1e1a3a;--text:#f2efff;--perfect:#6cff9e;--good:#ffd24a;--ok:#ff9a4a;--miss:#ff4a6c;--safe-top:max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px),var(--tg-safe-bottom,0px));--safe-left:max(env(safe-area-inset-left,0px),var(--tg-safe-left,0px));--safe-right:max(env(safe-area-inset-right,0px),var(--tg-safe-right,0px))}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden;color:var(--text);background:radial-gradient(circle at 50% 40%,var(--bg-1),var(--bg-0));font-family:"Exo 2",-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;user-select:none;-webkit-user-select:none;touch-action:manipulation}#stage{position:fixed;inset:0}canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#stage[data-screen] #hud,#stage[data-screen] #progress{display:none}#hud{position:absolute;left:0;right:0;top:calc(var(--safe-top) + 14px);display:flex;justify-content:space-between;z-index:5;pointer-events:none;padding-left:calc(20px + var(--safe-left));padding-right:calc(20px + var(--safe-right))}.stat{text-align:center}.stat .label{font-size:10px;letter-spacing:2px;opacity:.45;text-transform:uppercase}.stat .value{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}#judge{position:absolute;top:28%;left:0;right:0;text-align:center;z-index:4;font-size:24px;font-weight:800;letter-spacing:3px;text-transform:uppercase;opacity:0;transition:opacity .1s;pointer-events:none}#judge.show{opacity:1}#combo{position:absolute;top:34%;left:0;right:0;text-align:center;z-index:4;font-size:42px;font-weight:800;opacity:0;transform:scale(.7);transition:opacity .15s,transform .15s;pointer-events:none}#combo.show{opacity:1;transform:scale(1)}#tapHint{position:absolute;bottom:15%;left:0;right:0;text-align:center;z-index:4;font-size:20px;font-weight:800;letter-spacing:4px;color:var(--fire);opacity:0;transition:opacity .08s;pointer-events:none;text-transform:uppercase}#tapHint.show{opacity:.95}.overlay{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:calc(34px + var(--safe-top)) calc(34px + var(--safe-right)) calc(34px + var(--safe-bottom)) calc(34px + var(--safe-left));background:#080614e0;backdrop-filter:blur(7px)}.overlay.hidden{display:none}.title{font-size:44px;font-weight:800;letter-spacing:-1px;line-height:1;text-shadow:0 0 22px rgba(143,127,255,.45),0 0 58px rgba(143,127,255,.22)}.title .f{color:var(--fire);text-shadow:0 0 20px rgba(255,90,60,.55),0 0 48px rgba(255,90,60,.25)}.title .i{color:var(--ice);text-shadow:0 0 20px rgba(60,169,255,.55),0 0 48px rgba(60,169,255,.25)}.sub{font-size:14px;opacity:.7;max-width:320px;line-height:1.5}.modePick{display:flex;flex-direction:column;gap:12px;width:100%;max-width:330px}.btn{pointer-events:auto;cursor:pointer;padding:15px 44px;border:none;border-radius:40px;font-size:16px;font-weight:700;color:#0d0b1a;background:linear-gradient(120deg,var(--fire),var(--ice));box-shadow:0 6px 30px #ff5a3c4d}.btn:active{transform:scale(.96)}.end-stat{font-size:15px;opacity:.8}.end-stat b{font-size:22px;color:var(--text)}.hint{font-size:12px;opacity:.35;letter-spacing:1px}.backBtn{pointer-events:auto;cursor:pointer;font-size:13px;opacity:.6;text-decoration:underline;background:none;border:none;color:var(--text);margin-top:4px}.neonBg{backdrop-filter:none;background:radial-gradient(125% 85% at 50% 16%,#1a1035,#0d0b1a 55%,#070510);overflow:hidden}#startScreen{justify-content:center;gap:0}.stars{position:absolute;inset:0;pointer-events:none}.star{position:absolute;border-radius:50%;animation:twinkle var(--dur) ease-in-out var(--delay) infinite}@keyframes twinkle{0%,to{opacity:var(--o)}50%{opacity:calc(var(--o) * .3)}}.orbitViz{--viz:230px;position:relative;width:var(--viz);height:var(--viz);flex:none}#startScreen .orbitViz{margin-bottom:22px}.oRing{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed rgba(143,127,255,.2)}.o1{width:calc(var(--viz) * 96 / 230);height:calc(var(--viz) * 96 / 230);opacity:.55}.o2{width:calc(var(--viz) * 154 / 230);height:calc(var(--viz) * 154 / 230);opacity:.85;animation:oSlow 34s linear infinite reverse}.o3{width:calc(var(--viz) * 212 / 230);height:calc(var(--viz) * 212 / 230);opacity:.4}.oSpin{position:absolute;inset:0;animation:oSpin 11s linear infinite}@keyframes oSpin{to{transform:rotate(360deg)}}@keyframes oSlow{to{transform:translate(-50%,-50%) rotate(360deg)}}.oTrail{position:absolute;top:50%;left:50%;width:calc(var(--viz) * 140 / 230);height:calc(var(--viz) * 140 / 230);transform:translate(-50%,-50%);border-radius:50%;background:conic-gradient(from 180deg,#5ac8ff80,#2a7aff29 46deg,#2a7aff00 120deg,#ff3c2c00 180deg,#ff3c2c29 226deg,#ff7a4a80 300deg 360deg);-webkit-mask:radial-gradient(circle closest-side,transparent 84%,#000 89%,#000 96%,transparent 100%);mask:radial-gradient(circle closest-side,transparent 84%,#000 89%,#000 96%,transparent 100%)}.oPlanet{position:absolute;top:50%;border-radius:50%;transform:translate(-50%,-50%);width:calc(var(--viz) * 26 / 230);height:calc(var(--viz) * 26 / 230)}.oPlanet.fire{left:calc(50% - var(--viz) * 62 / 230);background:linear-gradient(150deg,var(--fire-a),var(--fire-b));box-shadow:0 0 16px 1px #ff5a3c80;--g:rgba(255,110,70,.5)}.oPlanet.ice{left:calc(50% + var(--viz) * 62 / 230);background:linear-gradient(150deg,var(--ice-a),var(--ice-b));box-shadow:0 0 16px 1px #3ca9ff80;--g:rgba(70,170,255,.5)}.oGlow{position:absolute;inset:calc(var(--viz) * -15 / 230);border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--g) 0%,transparent 68%);animation:oPulse 3.6s ease-in-out infinite}.oPlanet.ice .oGlow{animation-delay:-1.8s}@keyframes oPulse{0%,to{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.18)}}.brand{margin-bottom:30px}.logo{font-size:clamp(38px,13vw,54px);font-weight:800;letter-spacing:2px;line-height:1;color:var(--text);text-shadow:0 0 22px rgba(143,127,255,.45),0 0 58px rgba(143,127,255,.22)}.tagline{margin-top:10px;font-size:10px;font-weight:600;letter-spacing:6px;color:var(--violet);opacity:.8;text-indent:6px}.modeCard{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:13px;width:100%;padding:15px 18px;border-radius:14px;font-family:inherit;font-size:15px;font-weight:700;letter-spacing:2px;color:var(--mcTxt);background:var(--mcBg);border:1px solid var(--mcLine);transition:transform .16s ease,box-shadow .24s ease,background .24s ease}.mc-fire{--mcBg:rgba(255,122,74,.12);--mcLine:var(--fire-line);--mcTxt:var(--fire-txt);--mcA:var(--fire-a);--mcB:var(--fire-b);--mcGlow:rgba(255,90,60,.45)}.mc-ice{--mcBg:rgba(90,200,255,.12);--mcLine:var(--ice-line);--mcTxt:var(--ice-txt);--mcA:var(--ice-a);--mcB:var(--ice-b);--mcGlow:rgba(60,169,255,.45)}.modeCard:hover{box-shadow:0 0 24px var(--mcGlow);background:color-mix(in srgb,var(--mcA) 20%,transparent)}.modeCard:active{transform:scale(.975);box-shadow:0 0 30px var(--mcGlow)}.mcDot{width:22px;height:22px;border-radius:50%;flex:none;background:linear-gradient(150deg,var(--mcA),var(--mcB));box-shadow:0 0 11px var(--mcGlow)}.mcName{flex:1;text-align:left}.mcGo{font-size:19px;font-weight:700;opacity:.5}#loadScreen{gap:22px;--load-accent:var(--violet)}.loadCap{font-size:13px;letter-spacing:3px;text-transform:uppercase;opacity:.55}.loadName{font-size:26px;font-weight:800;letter-spacing:-.5px;max-width:320px;text-shadow:0 0 22px color-mix(in srgb,var(--load-accent) 55%,transparent)}.loadBar{position:relative;width:min(72%,300px);height:10px;border-radius:8px;background:#ffffff14;overflow:hidden;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--load-accent) 22%,transparent)}.loadBarFill{position:relative;height:100%;width:0;border-radius:8px;transition:width .18s ease;background:linear-gradient(90deg,color-mix(in srgb,var(--load-accent) 60%,#fff),var(--load-accent));box-shadow:0 0 16px color-mix(in srgb,var(--load-accent) 70%,transparent)}.loadBar:after{content:"";position:absolute;inset:0;border-radius:8px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);background-size:38% 100%;background-repeat:no-repeat;animation:loadSheen 1.15s linear infinite}@keyframes loadSheen{0%{background-position:-40% 0}to{background-position:140% 0}}.loadPct{font-size:13px;letter-spacing:1px;opacity:.75;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.loadBar:after{animation:none}}#sectionScreen .orbitViz{--viz:150px}#sectionScreen .trackList,#trackScreen .trackList{padding:12px;border-radius:20px;background:#0907168c;box-shadow:0 0 0 1px #8f7fff12}#startScreen .orbitViz,#startScreen .brand,#startScreen .modePick,#sectionScreen .orbitViz,#sectionScreen .title,#sectionScreen .sub,#sectionScreen .trackList,#sectionScreen .backBtn{animation:menuIn .55s cubic-bezier(.2,.7,.3,1) both}#startScreen .brand,#sectionScreen .title{animation-delay:.07s}#startScreen .modePick,#sectionScreen .sub{animation-delay:.14s}#sectionScreen .trackList{animation-delay:.21s}#sectionScreen .backBtn{animation-delay:.28s}@keyframes menuIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.oSpin,.o2,.oGlow,.star{animation:none}#startScreen .orbitViz,#startScreen .brand,#startScreen .modePick{animation-duration:.01ms}}#trackScreen{background:transparent;backdrop-filter:none}.trackList{display:flex;flex-direction:column;gap:12px;width:100%;max-width:330px}.trackCard{pointer-events:auto;cursor:pointer;text-align:left;padding:16px 18px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 10%,rgba(255,255,255,.04));box-shadow:0 4px 22px color-mix(in srgb,var(--accent) 18%,transparent)}.trackCard:active{transform:scale(.98)}.trackTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.trackTop h3{font-size:18px}.diffDots{display:flex;gap:5px}.diffDot{width:9px;height:9px;border-radius:50%;background:#ffffff29}.diffDot.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.trackBest{font-size:13px;opacity:.7}.trackBest b{color:var(--text);font-variant-numeric:tabular-nums}.trackGrade{font-weight:800;color:var(--accent)}#progress{position:absolute;left:50%;transform:translate(-50%);top:calc(var(--safe-top) + 54px);width:min(62%,240px);height:6px;z-index:5;border-radius:6px;background:#ffffff1a;pointer-events:none}#progressFill{height:100%;width:0;border-radius:6px;transition:width .12s ease;background:linear-gradient(90deg,var(--ice),var(--fire))}#progressText{position:absolute;top:9px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:1px;opacity:.5;font-variant-numeric:tabular-nums}.grade{font-size:clamp(30px,11vw,46px);font-weight:800;line-height:1.1;margin:4px 0;letter-spacing:2px;white-space:nowrap;color:var(--perfect);text-shadow:0 0 26px currentColor}.grade[data-grade=PRO]{color:var(--ice)}.grade[data-grade=SKILLED]{color:var(--good)}.grade[data-grade=ROOKIE]{color:var(--miss)}.board{width:100%;max-width:330px;display:flex;flex-direction:column;gap:2px}.bRow{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:14px;background:#ffffff0a;border:1px solid transparent}.bRank{opacity:.45;font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.bName{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.bScore{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.2px}.bRow.me{background:color-mix(in srgb,var(--ice) 22%,rgba(255,255,255,.04));border-color:var(--ice);box-shadow:0 0 14px #3ca9ff59}.bRow.me .bRank{opacity:.9;font-weight:700}.bRow.me .bName{opacity:1;font-weight:800;color:var(--ice)}.bGap{text-align:center;font-size:11px;line-height:1;opacity:.3;padding:2px 0;letter-spacing:2px}
