:root{--bg: #0a0612;--bg2: #140a26;--panel: rgba(24, 14, 46, .72);--panel-solid: #170d2c;--line: rgba(168, 85, 247, .28);--pink: #ff2e97;--cyan: #22e1ff;--purple: #a855f7;--yellow: #ffd23f;--green: #54ffb0;--red: #ff5470;--text: #ece6ff;--muted: #9b8fc4;--display: "Orbitron", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:radial-gradient(120% 90% at 50% -10%,#2a1150 0%,var(--bg2) 45%,var(--bg) 100%);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;overflow:hidden;-webkit-user-select:none;user-select:none}button{font-family:var(--mono);cursor:pointer;color:inherit}.neon{text-shadow:0 0 8px currentColor,0 0 22px currentColor}.display{font-family:var(--display);letter-spacing:.06em}.btn{font-family:var(--display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--cyan);background:#22e1ff0f;color:var(--cyan);padding:14px 26px;border-radius:10px;font-size:15px;transition:transform .08s ease,box-shadow .18s ease,background .18s ease;box-shadow:0 0 #22e1ff00}.btn:hover{box-shadow:0 0 18px #22e1ff73,inset 0 0 14px #22e1ff1f;transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn.primary{border-color:var(--pink);color:#fff;background:linear-gradient(180deg,#ff2e9759,#ff2e971f)}.btn.primary:hover{box-shadow:0 0 26px #ff2e9799}.btn.ghost{border-color:var(--line);color:var(--muted);background:transparent}.btn.ghost:hover{color:var(--text);box-shadow:0 0 14px #a855f759}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.app{height:100%;display:flex;flex-direction:column;align-items:center}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 52%,#000 86%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0%,transparent 52%,#000 86%,#000 100%);transform:perspective(360px) rotateX(62deg) scale(2.4) translateY(8%);transform-origin:center bottom;opacity:.6;animation:gridscroll 5s linear infinite}@keyframes gridscroll{0%{background-position-y:0,0}to{background-position-y:46px,46px}}.landing{position:relative;z-index:1;width:min(960px,94vw);padding:4vh 0 6vh;overflow-y:auto;height:100%}.landing::-webkit-scrollbar{width:0}.brand{text-align:center;margin-bottom:8px}.brand h1{font-family:var(--display);font-weight:900;font-size:clamp(34px,7vw,72px);letter-spacing:.04em;line-height:1;background:linear-gradient(180deg,#fff 0%,var(--yellow) 38%,var(--pink) 88%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 18px rgba(255,46,151,.45))}.brand .tick{color:var(--cyan)}.brand p{color:var(--muted);margin-top:10px;font-size:14px;letter-spacing:.14em;text-transform:uppercase}.meta-row{display:flex;gap:12px;justify-content:center;margin:18px 0 22px;flex-wrap:wrap}.chip{border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:12px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;background:var(--panel)}.chip b{color:var(--text)}.chip .hot{color:var(--yellow)}.feature{position:relative;border-radius:18px;padding:28px;margin:0 auto 26px;background:var(--panel);border:1px solid var(--line);box-shadow:0 0 0 1px #ff2e970f,0 24px 60px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.feature .week-tag{position:absolute;top:0;right:0;background:var(--pink);color:#fff;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.16em;padding:6px 14px;border-bottom-left-radius:12px}.feature h2{font-family:var(--display);font-weight:900;font-size:clamp(30px,6vw,52px);letter-spacing:.05em;color:var(--cyan)}.feature .tagline{color:var(--muted);margin:6px 0 22px;font-size:14px}.feature .cta{display:flex;gap:12px;flex-wrap:wrap}.daily-done{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:16px 0 4px}.daily-done .res{font-family:var(--display)}.daily-done .res .big{font-size:30px;color:var(--yellow)}.share-pre{font-family:var(--mono);white-space:pre;background:#0c0720;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.5;color:var(--text)}.roster-title{text-align:center;color:var(--muted);font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin:14px 0}.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.slot{border:1px dashed var(--line);border-radius:12px;padding:16px 12px;text-align:center;background:#0c072080}.slot .wk{font-family:var(--display);font-size:11px;color:var(--purple);letter-spacing:.14em}.slot .nm{margin-top:8px;font-size:13px;color:var(--text)}.slot .st{margin-top:6px;font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.slot.live{border-style:solid;border-color:var(--pink);box-shadow:0 0 18px #ff2e9738}.slot.live .st{color:var(--green)}.slot.today{background:#ff2e9714}.slot.today .wk{color:var(--yellow)}.foot{text-align:center;color:var(--muted);font-size:11px;margin-top:26px;opacity:.7}.game-wrap{position:relative;z-index:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.stage{position:relative;width:min(1000px,96vw);height:min(720px,92vh);border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 0 60px #0009;display:flex;flex-direction:column}.playfield{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}canvas.play{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.game-wrap.touch{align-items:stretch;justify-content:stretch}.game-wrap.touch .stage{width:100vw;height:100vh;height:100dvh;border-radius:0;border:none;box-shadow:none}.keyboard{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#140c2699,#0a0612f5);border-top:1px solid var(--line);touch-action:manipulation;-webkit-user-select:none;user-select:none}.krow{display:flex;gap:5px;justify-content:center}.key{flex:1 1 0;min-width:0;max-width:54px;height:48px;border-radius:9px;border:1px solid var(--line);background:#281846b8;color:var(--text);font-family:var(--mono);font-weight:700;font-size:18px;text-transform:uppercase;-webkit-tap-highlight-color:transparent;transition:transform .05s ease,background .1s ease,box-shadow .12s ease}.key:active{transform:translateY(1px) scale(.94);background:var(--cyan);color:#04121a}.key.start{border-color:var(--cyan);color:var(--cyan);box-shadow:inset 0 0 10px #22e1ff33}.key.next{border-color:var(--pink);color:#fff;background:#ff2e9766;box-shadow:0 0 14px #ff2e9799}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hud .top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:14px 18px;background:linear-gradient(180deg,#080410e0 30%,#08041000)}.hud .stat{font-family:var(--display)}.hud .stat .lbl{font-size:9px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}.hud .stat .val{font-size:22px;line-height:1;color:var(--text)}.hud .stat .val.score{color:var(--yellow)}.hud .topright{display:flex;gap:18px;text-align:right}.hud .lives{font-size:18px;letter-spacing:2px}.hud .combo{position:absolute;top:54px;left:18px;font-family:var(--display);font-weight:900;color:var(--pink);font-size:16px}.hud .level-flash{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:900;font-size:clamp(34px,7vw,64px);color:var(--cyan);text-shadow:0 0 24px var(--cyan);opacity:0;pointer-events:none}.hud .level-flash.show{animation:flash 1.1s ease-out}@keyframes flash{0%{opacity:0;transform:scale(.7)}22%{opacity:1;transform:scale(1.05)}70%{opacity:1}to{opacity:0;transform:scale(1.2)}}.hud .exit,.hud .pausebtn{pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);padding:6px 14px;font-size:12px}.hud .exit{right:12px;top:auto;bottom:12px;transform:none}.hud .pausebtn{left:12px;top:auto;bottom:12px;transform:none;font-size:15px;padding:5px 12px}@media(max-width:560px){.hud .top{padding:10px 12px}.hud .stat .lbl{font-size:8px;letter-spacing:.12em}.hud .stat .val{font-size:17px}.hud .topright{gap:11px}.hud .combo{top:46px;left:12px;font-size:14px}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#0804128c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:5;pointer-events:auto}.overlay .count{font-family:var(--display);font-weight:900;font-size:clamp(70px,18vw,150px);color:var(--yellow);text-shadow:0 0 40px var(--pink)}.overlay .count.go{color:var(--green)}.overlay h3{font-family:var(--display);font-size:34px;letter-spacing:.1em}.overlay p{color:var(--muted)}.results{position:relative;z-index:1;width:min(560px,94vw);margin:auto;text-align:center;padding:64px 0 30px}.results .verdict{font-family:var(--display);font-weight:900;font-size:clamp(40px,9vw,72px)}.results .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.statbox{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--panel)}.statbox .lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.statbox .num{font-family:var(--display);font-size:32px;margin-top:6px}.statbox.score .num{color:var(--yellow)}.statbox.wpm .num{color:var(--cyan)}.statbox.acc .num{color:var(--green)}.statbox.combo .num{color:var(--pink)}.results .cta{display:flex;gap:12px;justify-content:center;margin-top:22px;flex-wrap:wrap}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:var(--green);color:#03110a;font-family:var(--display);font-weight:700;padding:10px 20px;border-radius:999px;z-index:50;box-shadow:0 0 24px #54ffb099}.rankbadge{display:inline-block;margin:14px auto 0;padding:8px 18px;border:1px solid var(--pink);border-radius:999px;color:var(--pink);font-family:var(--display);font-weight:700;font-size:14px}.sound-toggle{display:inline-flex;align-items:center;justify-content:center;background:#140c2699;border:1px solid var(--line);border-radius:999px;font-size:18px;line-height:1;padding:7px 12px;color:var(--text);-webkit-tap-highlight-color:transparent}.sound-toggle:hover{box-shadow:0 0 12px #a855f766}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;margin-bottom:6px}.iconbtn{width:42px;height:42px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line);background:#140c2680;color:var(--text);padding:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;transition:transform .08s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease}.iconbtn:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 16px #22e1ff66}.iconbtn:active{transform:scale(.92)}.linkbtn{background:none;border:none;color:var(--cyan);text-decoration:underline;font:inherit;cursor:pointer;padding:0}.save-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 auto 18px;padding:12px 16px;border:1px solid var(--cyan);border-radius:12px;background:#22e1ff14}.save-banner span{font-size:13px}.hud .hudsound{pointer-events:auto;position:absolute;bottom:12px;left:50%;transform:translate(-50%);padding:5px 12px;font-size:15px}.backbtn{position:absolute;top:14px;left:14px;z-index:6;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line);background:#140c2680;color:var(--text);font-size:22px;line-height:1;padding:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;transition:transform .08s ease,box-shadow .18s ease,border-color .18s ease,color .18s ease}.backbtn:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 16px #22e1ff66}.backbtn:active{transform:scale(.92)}.endless-row{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.endless-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}.el-title{font-family:var(--display);font-weight:700;letter-spacing:.14em;color:var(--green);font-size:13px}.endless-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lb-section{margin-top:30px}.lb-empty{text-align:center;padding:22px 0}.challenge-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 auto 20px;padding:14px 18px;border:1px solid var(--pink);border-radius:14px;background:#ff2e971a;box-shadow:0 0 24px #ff2e9733}.challenge-banner span{font-size:14px}.challenge-banner b{color:var(--text)}.challenge-banner .btn{padding:10px 18px;font-size:13px}.namegate{position:relative;z-index:1;width:min(460px,92vw);margin:auto;text-align:center;padding:64px 0 30px}.namegate h2{font-size:clamp(26px,6vw,40px);color:var(--cyan);margin-bottom:8px}.nameinput{margin-top:22px;width:100%;max-width:360px;text-align:center;font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:.06em;background:#0c0720;border:1.5px solid var(--cyan);border-radius:12px;color:var(--text);padding:14px 16px;outline:none;text-transform:uppercase;box-shadow:inset 0 0 16px #22e1ff1a}.nameinput::placeholder{color:var(--muted);text-transform:none;letter-spacing:normal}.dim{color:var(--muted)}.leaderboard{position:relative;z-index:1;width:min(560px,94vw);margin:auto;padding:64px 0 30px;max-height:100%;overflow-y:auto}.leaderboard::-webkit-scrollbar{width:0}.leaderboard h2{text-align:center;font-size:clamp(28px,6vw,44px);color:var(--yellow);margin-bottom:18px}.tabs{display:flex;gap:8px;justify-content:center;margin-bottom:18px}.tab{font-family:var(--display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px;padding:9px 22px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted)}.tab.on{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 14px #22e1ff4d}.lbrows{list-style:none;display:flex;flex-direction:column;gap:7px}.lbrow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.lbrow .rk{font-family:var(--display);font-weight:900;color:var(--purple);font-size:16px;width:22px}.lbrow .nm{font-weight:700;flex:1 1 auto;min-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lbrow .sc{font-family:var(--display);font-weight:900;color:var(--yellow);font-size:18px;margin-left:auto}.lbrow .meta{flex-basis:100%;font-size:11px;color:var(--muted)}.lbrow .sharemini{background:transparent;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:14px;margin-left:8px;-webkit-tap-highlight-color:transparent}.lbrow .sharemini:hover{box-shadow:0 0 10px #22e1ff66}.lbrow.you{border-color:var(--pink);box-shadow:0 0 16px #ff2e9740;background:#ff2e9712}.lbrow.you .nm{color:var(--pink)}.myhistory{margin-top:26px}.standing{text-align:center;border:1px solid var(--line);border-radius:14px;padding:22px 18px;background:var(--panel)}.standing-top{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.standing .big{font-family:var(--display);font-weight:900;font-size:clamp(30px,8vw,46px);color:var(--cyan);line-height:1;text-shadow:0 0 18px rgba(34,225,255,.4)}.standing .sub{margin-top:10px;font-size:13px}.standing .sub b{color:var(--text)}.admin{position:relative;z-index:1;width:min(1000px,96vw);margin:0 auto;padding:28px 0 50px;height:100%;overflow-y:auto}.admin::-webkit-scrollbar{width:0}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.admin-head h2{font-size:clamp(22px,4vw,34px);color:var(--cyan)}.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}.admin-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--panel)}.admin-card .lbl{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.admin-card .num{font-family:var(--display);font-weight:900;font-size:30px;margin-top:6px}.admin-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.admin-panel{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--panel)}.admin-panel h3{font-family:var(--display);font-size:15px;letter-spacing:.06em;margin-bottom:12px;color:var(--text)}.admin-wide{grid-column:1 / -1}.howto{position:relative;z-index:1;width:min(560px,94vw);margin:auto;padding:64px 0 30px}.howto h2{font-family:var(--display);color:var(--cyan);font-size:30px;margin-bottom:16px}.howto ol{margin:0 0 22px 18px;line-height:1.9;color:var(--text)}.howto ol b{color:var(--yellow)}
