:root{--bg:#05020d;--ink:#f4f0ff;--dim:#a79cc9;--cyan:#33e1ff;--pink:#ff2bd0;--gold:#ffd84a;--heat:#ff2bd0;--display:"Orbitron", "Rajdhani", system-ui, sans-serif;--text:"Rajdhani", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#stage{width:100vw;height:100vh;display:block;position:fixed;inset:0}.hidden{display:none!important}code{color:var(--cyan);font-family:ui-monospace,monospace}.btn{font-family:var(--display);letter-spacing:.12em;color:var(--ink);cursor:pointer;text-transform:uppercase;background:#ffffff0a;border:1px solid #ffffff2e;border-radius:10px;align-items:center;gap:8px;padding:14px 22px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s;display:inline-flex}.btn:hover{border-color:var(--cyan);transform:translateY(-2px);box-shadow:0 0 24px #33e1ff59}.btn:active{transform:translateY(0)scale(.98)}.btn.primary{background:linear-gradient(100deg, var(--cyan), var(--pink) 33%, var(--gold) 66%, var(--cyan));color:#07030f;background-size:300% 100%;border:none;animation:4s linear infinite sheen;box-shadow:0 0 30px #ff2bd073}.btn.small{padding:8px 14px;font-size:11px}@keyframes sheen{to{background-position:-300% 0}}.overlay{z-index:10;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#menu{background:radial-gradient(#05020d40,#05020dd9 75%)}.menu-inner{text-align:center;width:100%;max-width:720px;animation:.8s cubic-bezier(.2,.9,.2,1) both rise}@keyframes rise{0%{opacity:0;transform:translateY(30px)scale(.97)}}.logo{font-family:var(--display);letter-spacing:.08em;background:linear-gradient(95deg, var(--cyan) 0%, #8a5cff 35%, var(--pink) 60%, var(--gold) 100%);color:#0000;filter:drop-shadow(0 0 24px #ff2bd08c);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(64px,14vw,150px);font-style:italic;font-weight:900;line-height:1;animation:6s linear infinite sheen,.469s ease-out infinite pulse;position:relative}.logo:before,.logo:after{content:attr(data-text);color:#0000;pointer-events:none;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.logo:before{background-color:var(--cyan);opacity:.6;mix-blend-mode:screen;animation:3.1s step-end infinite glitch}.logo:after{background-color:var(--pink);opacity:.6;mix-blend-mode:screen;animation:2.3s step-end infinite reverse glitch}@keyframes glitch{0%,88%,to{clip-path:inset(0);transform:none}90%{clip-path:inset(10% 0 55%);transform:translate(-6px,2px)}93%{clip-path:inset(60% 0 8%);transform:translate(5px,-2px)}96%{clip-path:inset(35% 0);transform:translate(-3px)}}@keyframes pulse{0%{transform:scale(1.025)}to{transform:scale(1)}}.tagline{letter-spacing:.35em;text-transform:uppercase;color:var(--dim);margin:8px 0 34px;font-size:22px}.yt-form{background:#0a0618bf;border:1px solid #ffffff1f;border-radius:14px;gap:10px;padding:8px;display:flex;box-shadow:0 0 60px #8a5cff40,inset 0 0 20px #33e1ff0d}.yt-form input{min-width:0;color:var(--ink);font-family:var(--text);background:0 0;border:none;outline:none;flex:1;padding:0 14px;font-size:20px;font-weight:600}.yt-form input::placeholder{color:#a79cc999}.server-note{color:var(--gold);max-width:560px;margin:14px auto 0;font-size:15px}.menu-row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.how{max-width:620px;color:var(--dim);text-align:left;grid-template-columns:1fr 1fr;gap:8px 22px;margin:34px auto 0;font-size:16px;display:grid}.how b{color:var(--ink)}.keys{color:var(--dim);flex-wrap:wrap;justify-content:center;gap:22px;margin-top:18px;font-size:14px;display:flex}kbd{font-family:var(--display);color:var(--ink);border:1px solid #ffffff40;border-bottom-width:3px;border-radius:5px;margin:0 2px;padding:3px 7px;font-size:11px}.menu-footer{text-align:center;color:#a79cc999;font-size:14px;position:absolute;bottom:16px;left:0;right:0}.menu-footer a{color:var(--cyan);text-decoration:none}#loading{background:#05020db3}.loading-inner{text-align:center;width:min(520px,100%)}.loading-title{font-family:var(--display);letter-spacing:.06em;margin:26px 0 18px;font-size:22px;font-weight:700}.bar{background:#ffffff14;border-radius:6px;height:6px;overflow:hidden}.bar-fill{background:linear-gradient(90deg, var(--cyan), var(--pink), var(--gold));width:0;height:100%;box-shadow:0 0 16px var(--pink);transition:width .2s}.loading-status{color:var(--dim);min-height:22px;margin:14px 0 22px;font-size:17px}.spinner{justify-content:center;gap:10px;display:flex}.spinner i{background:var(--pink);border-radius:4px;width:14px;height:38px;animation:.9s ease-in-out infinite eq;box-shadow:0 0 18px}.spinner i:first-child{background:var(--cyan);color:var(--cyan)}.spinner i:nth-child(2){color:var(--pink);animation-delay:.15s}.spinner i:nth-child(3){background:var(--gold);color:var(--gold);animation-delay:.3s}@keyframes eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}#hud{pointer-events:none;z-index:5;position:fixed;inset:0}.hud-song{width:min(340px,42vw);position:absolute;top:18px;left:22px}.song-title{font-family:var(--display);white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 12px #ff2bd099;font-size:16px;font-weight:700;overflow:hidden}.song-artist{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:14px;overflow:hidden}#hud-progress{width:100%;height:30px;display:block}.hud-score{text-align:right;position:absolute;top:18px;right:22px}.score-row{justify-content:flex-end;align-items:baseline;gap:12px;display:flex}.combo{font-family:var(--display);color:var(--cyan);letter-spacing:.12em;text-shadow:0 0 10px #33e1ff99;transform-origin:100%;font-size:14px;display:inline-block}.combo.tick{animation:.16s ease-out tick}@keyframes tick{0%{transform:scale(1.25)}}.best{font-family:var(--display);color:#a79cc9b3;letter-spacing:.15em;min-height:14px;margin-top:2px;font-size:11px}.best.beaten{color:var(--gold);text-shadow:0 0 10px var(--gold)}.score{font-family:var(--display);font-variant-numeric:tabular-nums;text-shadow:0 0 14px var(--heat);font-size:46px;font-weight:900;line-height:1}.score.bump{transform-origin:100%;animation:.25s ease-out bump}@keyframes bump{0%{transform:scale(1.15)}}.mult{font-family:var(--display);color:var(--gold);text-shadow:0 0 14px var(--gold);height:26px;font-size:22px;font-weight:900}.mult.hot{animation:.4s ease-in-out infinite alternate wobble}@keyframes wobble{0%{transform:rotate(-4deg)scale(1.05)}to{transform:rotate(4deg)scale(1.15)}}.od{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;width:240px;height:14px;margin:8px 0 0 auto;position:relative;overflow:hidden}.od-fill{background:linear-gradient(90deg, #8a5cff, var(--cyan), var(--gold));width:0;box-shadow:0 0 14px var(--cyan);position:absolute;inset:0}.od-label{font-family:var(--display);letter-spacing:.3em;color:#ffffffbf;mix-blend-mode:difference;font-size:9px;font-weight:700;line-height:14px;position:absolute;inset:0}.od.ready{border-color:var(--gold);animation:.5s ease-in-out infinite alternate ready}.od.active .od-fill{background:linear-gradient(90deg, var(--gold), #fff, var(--gold));background-size:200% 100%;animation:.6s linear infinite sheen}@keyframes ready{to{box-shadow:0 0 26px var(--gold)}}.hud-hint{color:#a79cc98c;font-size:13px;transition:opacity 1s;position:absolute;bottom:8px;right:16px}#popups .pop.big{animation-duration:1.1s}#board{width:240px;margin:14px 0 0 auto;padding:0;list-style:none;position:relative}#board li{height:26px;font-family:var(--display);background:#0a061880;border-radius:7px;align-items:center;gap:8px;padding:0 10px;font-size:11px;font-weight:700;transition:transform .6s cubic-bezier(.3,1.2,.5,1);display:flex;position:absolute;left:0;right:0}#board li.me{background:#33e1ff24;box-shadow:inset 0 0 0 1px #33e1ff80}#board li .dot{background:currentColor;border-radius:50%;width:8px;height:8px}#board li .name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}#board li .pts{font-variant-numeric:tabular-nums}#tags .tag{font-family:var(--display);letter-spacing:.12em;opacity:.8;white-space:nowrap;text-shadow:0 0 6px #000c;font-size:10px;font-weight:700;position:absolute;transform:translate(-50%,-100%)}.pilot{color:var(--dim);font-family:var(--display);letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:10px;margin-bottom:14px;font-size:12px;display:inline-flex}.pilot input{color:var(--ink);font-family:var(--display);letter-spacing:.1em;background:#0a0618b3;border:1px solid #ffffff26;border-radius:8px;outline:none;width:170px;padding:7px 10px;font-size:13px}.pilot input:focus{border-color:var(--cyan)}#popups .pop{font-family:var(--display);white-space:nowrap;text-shadow:0 0 12px;font-weight:900;animation:.8s cubic-bezier(.2,.9,.3,1) forwards pop;position:absolute;transform:translate(-50%,-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-80%)scale(1.15)}to{opacity:0;transform:translate(-50%,-260%)scale(.9)}}#banner{text-align:center;font-family:var(--display);letter-spacing:.1em;opacity:0;font-size:clamp(40px,9vw,110px);font-style:italic;font-weight:900;position:absolute;top:26%;left:0;right:0}#banner.show{animation:1.3s cubic-bezier(.2,.9,.3,1) forwards banner}@keyframes banner{0%{opacity:0;filter:blur(10px);letter-spacing:.6em;transform:scale(2.2)}18%{opacity:1;filter:blur();letter-spacing:.1em;transform:scale(1)}75%{opacity:1}to{opacity:0;transform:scale(.9)translateY(-30px)}}#countdown{font-family:var(--display);color:#fff;text-shadow:0 0 40px var(--pink), 0 0 90px var(--cyan);justify-content:center;align-items:center;font-size:clamp(100px,22vw,260px);font-weight:900;display:flex;position:absolute;inset:0}#countdown span{animation:1s ease-out forwards count}@keyframes count{0%{opacity:0;transform:scale(1.8)}20%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.7)}}#pause,#results{background:#05020db8}.pause-inner{text-align:center;flex-direction:column;align-items:stretch;gap:14px;min-width:260px;display:flex}.pause-inner h2{font-family:var(--display);letter-spacing:.2em;margin:0 0 12px;font-size:42px}.results-inner{text-align:center;width:min(640px,100%);animation:.7s cubic-bezier(.2,.9,.2,1) both rise}.place{font-family:var(--display);background:linear-gradient(95deg, var(--cyan), var(--pink), var(--gold));color:#0000;filter:drop-shadow(0 0 22px #ff2bd080);-webkit-background-clip:text;background-clip:text;font-size:clamp(80px,16vw,140px);font-style:italic;font-weight:900;line-height:1}.res-song{color:var(--dim);margin:6px 0 10px;font-size:18px}.res-score{font-family:var(--display);text-shadow:0 0 20px var(--pink);font-size:44px;font-weight:900}.stats{grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;display:grid}.stats div{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;padding:10px}.stats b{font-family:var(--display);font-size:22px;display:block}.stats span{color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-size:14px}.res-best{color:var(--dim);font-family:var(--display);letter-spacing:.15em;min-height:20px;font-size:14px}.res-board{max-width:380px;max-height:200px;margin:14px auto 0;padding:0;list-style:none;overflow:auto}.res-board li{font-family:var(--display);border-radius:8px;gap:12px;padding:5px 12px;font-size:13px;display:flex}.res-board li.me{box-shadow:inset 0 0 0 1px var(--cyan);background:#33e1ff1f}.res-board li .name{text-align:left;flex:1}.res-best.record{color:var(--gold);text-shadow:0 0 14px var(--gold);animation:.6s ease-in-out infinite alternate ready}#drop-zone{z-index:50;border:3px dashed var(--pink);font-family:var(--display);background:#05020dcc;justify-content:center;align-items:center;font-size:40px;display:flex;position:fixed;inset:0}#toast{z-index:60;background:#280614eb;border:1px solid #ff3b5c;border-radius:10px;max-width:90vw;padding:12px 20px;font-size:17px;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}@media (max-width:700px){.how{grid-template-columns:1fr}.keys,.hud-hint{display:none}.score{font-size:38px}.od{width:200px}.hud-song{width:45vw}}#menu{flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0;overflow-y:auto}.topbar{background:linear-gradient(#05020dd9,#05020d00);align-items:center;gap:16px;padding:14px 24px;display:flex}.brand{font-family:var(--display);letter-spacing:.12em;font-size:22px;font-style:italic;font-weight:900}.brand span{color:var(--pink);text-shadow:0 0 12px var(--pink)}.net-status{color:var(--dim);flex:1;font-size:13px}.net-status.off{color:#ff8a7a}.profile-chip{color:var(--ink);cursor:pointer;font-family:var(--text);background:#0a0618b3;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:12px;padding:5px 16px 5px 5px;transition:border-color .2s,box-shadow .2s;display:flex}.profile-chip:hover{border-color:var(--cyan);box-shadow:0 0 18px #33e1ff4d}.avatar{width:32px;height:32px;font-family:var(--display);color:#07030f;background:linear-gradient(135deg, var(--cyan), var(--pink));border-radius:50%;place-items:center;font-size:14px;font-weight:900;display:grid}.me-name{font-family:var(--display);letter-spacing:.05em;font-size:14px;font-weight:700}.me-stat{flex-direction:column;align-items:center;line-height:1;display:flex}.me-stat small{letter-spacing:.2em;color:var(--dim);font-size:9px}.me-stat b{font-family:var(--display);color:var(--gold);font-size:14px}.menu-layout{flex:1;grid-template-columns:minmax(0,1fr) 340px;gap:24px;min-height:0;padding:0 24px 16px;display:grid}.menu-main{flex-direction:column;justify-content:center;align-items:center;gap:26px;min-width:0;display:flex}.hero{text-align:center;animation:.8s cubic-bezier(.2,.9,.2,1) both rise}.hero .logo{font-size:clamp(44px,7.6vw,100px)}.hero .tagline{margin:4px 0 0;font-size:18px}.modes{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;width:100%;max-width:980px;display:grid}.mode-card{background:linear-gradient(160deg,#140a2ce6,#080414e6);border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;gap:14px;padding:20px;transition:transform .25s,border-color .25s,box-shadow .25s;animation:.8s cubic-bezier(.2,.9,.2,1) both rise;display:flex;position:relative}.mode-card:nth-child(2){animation-delay:80ms}.mode-card:nth-child(3){animation-delay:.16s}.mode-card:hover{transform:translateY(-3px)}.mode-card.solo:hover{border-color:var(--cyan);box-shadow:0 0 40px #33e1ff33}.mode-card.ranked:hover{border-color:var(--gold);box-shadow:0 0 40px #ffd84a33}.mode-card.multi:hover{border-color:var(--pink);box-shadow:0 0 40px #ff2bd033}.mode-head{align-items:center;gap:14px;display:flex}.mode-head h2{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:20px}.mode-head p{color:var(--dim);margin:2px 0 0;font-size:15px}.mode-icon{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.solo .mode-icon{color:var(--cyan);text-shadow:0 0 12px var(--cyan)}.ranked .mode-icon{color:var(--gold);text-shadow:0 0 12px var(--gold)}.multi .mode-icon{color:var(--pink);text-shadow:0 0 12px var(--pink)}.mode-card .yt-form{box-shadow:none;padding:6px}.mode-card .yt-form input{font-size:16px}.mode-row{flex-wrap:wrap;gap:8px;display:flex}.mode-rules{color:var(--dim);flex:1;margin:0;padding-left:18px;font-size:15px;line-height:1.55}.btn.wide{justify-content:center;width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.queued{animation:.8s ease-in-out infinite alternate ready}.side{background:#080414e0;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;align-self:center;min-height:0;max-height:calc(100vh - 110px);display:flex;overflow:hidden}.tabs{border-bottom:1px solid #ffffff14;display:flex}.tab{color:var(--dim);cursor:pointer;font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:13px 0;font-size:11px;font-weight:700}.tab.active{color:var(--ink);border-bottom-color:var(--cyan)}.tab-panel{min-height:260px;padding:12px;overflow-y:auto}.inline-form{gap:8px;margin-bottom:10px;display:flex}.inline-form input,.lobby-center input[type=text],#chat-input,.modal input{min-width:0;color:var(--ink);font-family:var(--text);background:#ffffff0d;border:1px solid #ffffff24;border-radius:9px;outline:none;flex:1;padding:8px 11px;font-size:15px;font-weight:600}.inline-form input:focus,.lobby-center input[type=text]:focus,#chat-input:focus,.modal input:focus{border-color:var(--cyan)}.list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.list li{background:#ffffff09;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.list .empty{color:var(--dim);text-align:center;background:0 0;justify-content:center;font-size:14px}.list .grow{flex:1;min-width:0}.list .title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.list .meta{color:var(--dim);font-size:13px}.list .num{font-family:var(--display);font-size:13px;font-weight:700}.list .pos{font-family:var(--display);width:22px;color:var(--dim);font-size:13px}.list li.me{background:#33e1ff14;box-shadow:inset 0 0 0 1px #33e1ff80}.dot{background:#4a4460;border-radius:50%;flex:none;width:9px;height:9px}.dot.on{background:#3dffb0;box-shadow:0 0 8px #3dffb0}.tag-mode{font-family:var(--display);letter-spacing:.15em;color:var(--dim);background:#ffffff14;border-radius:5px;padding:2px 6px;font-size:9px}.tag-mode.ranked{color:var(--gold)}.tag-mode.casual{color:var(--pink)}.tag-mode.solo{color:var(--cyan)}.delta-up{color:#3dffb0}.delta-down{color:#ff6a6a}.icon-btn{color:var(--dim);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:15px}.icon-btn:hover{color:var(--ink);background:#ffffff14}.seg{background:#ffffff0d;border-radius:9px;gap:4px;margin-bottom:10px;padding:3px;display:flex}.seg-btn{color:var(--dim);cursor:pointer;font-family:var(--text);background:0 0;border:none;border-radius:7px;flex:1;padding:7px;font-size:14px;font-weight:700}.seg-btn.active{color:var(--ink);background:#ffffff1a}#name-modal{z-index:30;background:#05020dbf}.modal{background:#0e0820f2;border:1px solid #ffffff24;border-radius:18px;flex-direction:column;gap:12px;width:min(420px,100%);padding:26px;animation:.4s both rise;display:flex;box-shadow:0 0 60px #8a5cff4d}.modal h2{font-family:var(--display);letter-spacing:.06em;margin:0;font-size:20px}.modal p{color:var(--dim);margin:0}.modal input{padding:12px 14px;font-size:18px}.modal-error{color:#ff8a7a;min-height:18px;font-size:14px}.modal .menu-row{justify-content:flex-start;margin-top:4px}#lobby{background:radial-gradient(#05020d8c,#05020de6)}.lobby-wrap{flex-direction:column;gap:14px;width:min(1180px,100%);height:min(720px,100%);animation:.5s both rise;display:flex}.lobby-head{align-items:center;gap:16px;display:flex}.badge{font-family:var(--display);letter-spacing:.2em;color:var(--gold);background:#ffd84a24;border:1px solid #ffd84a66;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:900}.badge.casual{color:var(--pink);background:#ff2bd01f;border-color:#ff2bd066}.lobby-title{flex:1;min-width:0}.lobby-title h2{font-family:var(--display);letter-spacing:.04em;margin:0;font-size:22px}.lobby-title p{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;overflow:hidden}.rounds{gap:6px;display:flex}.rounds i{background:#ffffff1f;border-radius:3px;width:28px;height:6px}.rounds i.done{background:var(--cyan)}.rounds i.now{background:var(--gold);box-shadow:0 0 10px var(--gold)}.lobby-timer{font-family:var(--display);text-align:right;font-variant-numeric:tabular-nums;min-width:64px;font-size:26px;font-weight:900}.lobby-timer.urgent{color:var(--pink);animation:1s ease-out infinite pulse}.lobby-grid{flex:1;grid-template-columns:280px minmax(0,1fr) 300px;gap:14px;min-height:0;display:grid}.lobby-grid>*{background:#0a0618db;border:1px solid #ffffff1a;border-radius:16px;min-height:0}.lobby-players{flex-direction:column;gap:8px;margin:0;padding:10px;list-style:none;display:flex;overflow-y:auto}.lobby-players li{background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:10px;transition:opacity .3s;display:flex}.lobby-players li.me{box-shadow:inset 0 0 0 1px #33e1ff8c}.lobby-players li.off{opacity:.45}.lobby-players li.slot{color:#a79cc980;background:0 0;border:1px dashed #ffffff1a;justify-content:center;font-size:14px}.lobby-players .pinfo{flex:1;min-width:0}.lobby-players .pname{font-family:var(--display);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.lobby-players .pmeta{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.lobby-players .ppts{font-family:var(--display);color:var(--gold);font-size:18px;font-weight:900}.chips{gap:4px;display:flex}.chip{font-size:10px;font-family:var(--display);color:var(--dim);background:#ffffff14;border-radius:4px;padding:2px 5px}.chip.ok{color:#3dffb0;background:#3dffb026}.lobby-center{flex-direction:column;gap:14px;padding:20px;display:flex;overflow-y:auto}.lobby-center h3{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:0;font-size:15px}.song-card{background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:12px;padding:10px;display:flex}.song-card img,.song-card .thumb{object-fit:cover;background:linear-gradient(135deg,#2a1bff,#ff2bd0);border-radius:8px;flex:none;width:88px;height:50px}.song-card .grow{flex:1;min-width:0}.song-card .title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.song-card .meta{color:var(--dim);font-size:13px}.candidates{gap:10px;display:grid}.candidate{cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.candidate:hover{border-color:#ffffff4d;transform:translateY(-2px)}.candidate.mine{border-color:var(--cyan);box-shadow:0 0 22px #33e1ff40}.candidate.winner{border-color:var(--gold);box-shadow:0 0 30px #ffd84a59}.votes{font-family:var(--display);text-align:center;min-width:32px;font-size:22px;font-weight:900}.pick-row{flex-wrap:wrap;gap:8px;display:flex}.hint{color:var(--dim);margin:0;font-size:14px}.big-status{text-align:center;margin:auto 0}.big-status .big{font-family:var(--display);font-size:28px;font-weight:900}.table{border-collapse:collapse;width:100%;font-size:15px}.table td,.table th{text-align:left;border-bottom:1px solid #ffffff0f;padding:8px}.table th{font-family:var(--display);letter-spacing:.15em;color:var(--dim);font-size:10px;font-weight:700}.table tr.me td{color:var(--cyan)}.table .r{text-align:right;font-variant-numeric:tabular-nums}.podium{justify-content:center;align-items:flex-end;gap:12px;margin:6px 0;display:flex}.podium div{text-align:center;background:#ffffff0d;border-radius:12px;min-width:110px;padding:12px 16px}.podium .p1{background:#ffd84a1f;border:1px solid #ffd84a80;padding-top:22px}.podium b{font-family:var(--display);font-size:15px;display:block}.podium span{color:var(--dim);font-size:13px}.lobby-chat{flex-direction:column;padding:10px;display:flex}#chat-log{flex-direction:column;flex:1;gap:6px;margin:0;padding:0 4px;font-size:15px;list-style:none;display:flex;overflow-y:auto}#chat-log li b{color:var(--cyan);margin-right:6px}#chat-log li.sys{color:var(--dim);font-size:13px;font-style:italic}#chat-log li.mine b{color:var(--gold)}#chat-form{margin-top:8px;display:flex}.pace{font-family:var(--display);letter-spacing:.1em;min-height:14px;margin-top:4px;font-size:11px}@media (max-width:1100px){.menu-layout{grid-template-columns:1fr}.side{max-height:none}.modes{grid-template-columns:minmax(0,1fr);max-width:560px}.menu-layout{flex:none}.lobby-grid{grid-template-columns:1fr;overflow-y:auto}.lobby-wrap{height:auto}}@media (max-width:700px){.topbar{gap:8px;padding:10px 16px}.brand{font-size:18px}.hangar-btn span,.me-name{display:none}.profile-chip{padding:4px}.menu-layout{padding:0 16px 16px}.me-stat{display:none}.hero .logo{font-size:40px}.menu-main{gap:16px}}.queue-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.queue-btn{cursor:pointer;color:var(--ink);text-align:left;background:#ffffff0a;border:1px solid #ffffff24;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 16px 14px;transition:transform .15s,box-shadow .2s,border-color .2s,background .2s;display:flex}.queue-btn .q-title{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;font-size:17px;font-weight:700}.queue-btn .q-sub{color:var(--dim);font-size:14px}.queue-btn.ranked{background:linear-gradient(150deg,#ffd84a29,#ff8a1a0f);border-color:#ffd84a8c}.queue-btn.ranked .q-title{color:var(--gold);text-shadow:0 0 14px #ffd84a80}.queue-btn.casual .q-title{color:#ff8ae6}.queue-btn:hover:not(:disabled){transform:translateY(-2px)}.queue-btn.ranked:hover:not(:disabled){box-shadow:0 0 28px #ffd84a59}.queue-btn.casual:hover:not(:disabled){border-color:var(--pink);box-shadow:0 0 24px #ff2bd04d}.queue-btn:disabled{opacity:.5;cursor:not-allowed}.queue-btn.queued{animation:.8s ease-in-out infinite alternate ready}.private-row{border-top:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex}.private-row .fr-label{white-space:nowrap;flex:1}.mode-card{min-width:0}.fr-label{font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-right:4px;font-size:11px}.fr-sep{color:var(--dim);font-size:14px}.code-form{gap:6px;display:flex}.code-form input{width:96px;color:var(--ink);font-family:var(--display);letter-spacing:.25em;text-transform:uppercase;text-align:center;background:#ffffff0d;border:1px solid #ffffff29;border-radius:9px;outline:none;padding:6px 10px;font-size:15px;font-weight:700}.code-form input:focus{border-color:var(--cyan)}.code-chip{cursor:pointer;color:var(--ink);font-family:var(--text);background:#33e1ff14;border:1px solid #33e1ff66;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:flex}.code-chip:hover{box-shadow:0 0 16px #33e1ff59}.code-chip small{font-family:var(--display);letter-spacing:.2em;color:var(--dim);font-size:9px}.code-chip b{font-family:var(--display);letter-spacing:.2em;font-size:16px}.code-chip span{color:var(--cyan);font-size:13px}#menu .menu-footer{padding:6px 0 14px;position:static}.modal-error:empty{display:none}.hangar-btn{cursor:pointer;color:var(--ink);font-family:var(--display);letter-spacing:.15em;text-transform:uppercase;background:#0a0618cc;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:8px;padding:3px 14px 3px 4px;font-size:12px;font-weight:700;display:flex}.hangar-btn:hover{border-color:var(--cyan);box-shadow:0 0 18px #33e1ff4d}.hangar-btn img{object-fit:contain;width:58px;height:36px}#hangar{z-index:20;background:#05020de6}.hangar-wrap{flex-direction:column;gap:12px;width:min(1280px,100%);height:min(760px,100%);animation:.4s both rise;display:flex}.hangar-head{align-items:center;gap:10px;display:flex}.hangar-head h2{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:24px}.hangar-name{color:var(--dim);font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.hangar-grid{flex:1;grid-template-columns:170px minmax(0,1fr) 340px;gap:12px;min-height:0;display:grid}.hangar-cats,.hangar-options,.hangar-view{background:#0a0618e0;border:1px solid #ffffff1a;border-radius:16px;min-height:0}.hangar-cats{flex-direction:column;gap:3px;padding:8px;display:flex;overflow-y:auto}.hangar-cats button{text-align:left;color:var(--dim);cursor:pointer;font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;background:0 0;border:none;border-radius:9px;justify-content:space-between;align-items:center;gap:6px;padding:10px 12px;font-size:11px;font-weight:700;display:flex}.hangar-cats button.active{color:var(--ink);background:#33e1ff1f}.hangar-cats button:hover{color:var(--ink)}.hangar-cats .swatch-mini{border-radius:3px;flex:none;width:12px;height:12px}.hangar-view{position:relative;overflow:hidden}.hangar-view canvas,.ship-modal canvas{cursor:grab;width:100%;height:100%;display:block}.hangar-options{grid-template-columns:repeat(2,1fr);align-content:start;gap:8px;padding:10px;display:grid;overflow-y:auto}.hangar-options.colors{grid-template-columns:repeat(6,1fr)}.opt{cursor:pointer;color:var(--ink);font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:6px;font-size:10px;font-weight:700;transition:border-color .15s,background .15s,transform .15s;display:flex}.opt:hover{border-color:#ffffff4d;transform:translateY(-1px)}.opt.on{border-color:var(--cyan);background:#33e1ff1a;box-shadow:0 0 16px #33e1ff40}.opt img,.opt .ph,.opt canvas.thumb{aspect-ratio:16/10;object-fit:contain;width:100%}.opt .ph{background:radial-gradient(circle,#ffffff0d,#0000 70%)}.swatch{aspect-ratio:1;cursor:pointer;border:2px solid #ffffff1f;border-radius:9px;transition:transform .15s,box-shadow .15s}.swatch:hover{transform:scale(1.08)}.swatch.on{border-color:#fff;box-shadow:0 0 14px}.lobby-players .pship{object-fit:contain;cursor:zoom-in;flex:none;width:64px;height:40px}.podium img{object-fit:contain;width:120px;height:75px;margin:0 auto 4px;display:block}#ship-modal{z-index:25;background:#05020dcc}.ship-modal{background:#07030f;border:1px solid #ffffff24;border-radius:18px;flex-direction:column;width:min(820px,100%);height:min(520px,90vh);animation:.3s both rise;display:flex;overflow:hidden}.ship-modal header{font-family:var(--display);letter-spacing:.1em;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.ship-modal canvas{flex:1;min-height:0}@media (max-width:1000px){.hangar-grid{grid-template-rows:auto 300px auto;grid-template-columns:1fr;overflow-y:auto}.hangar-cats{flex-flow:wrap}.hangar-wrap{height:auto}}.credits{font-family:var(--display);color:var(--gold);text-shadow:0 0 12px #ffd84a80;font-size:16px;font-weight:900}.credits-stat b{color:var(--gold)}.hangar-side{flex-direction:column;gap:10px;min-height:0;display:flex}.hangar-side .hangar-options{flex:1}.hangar-bar{background:#ffd84a12;border:1px solid #ffd84a59;border-radius:14px;flex-direction:column;gap:6px;padding:10px;display:flex}.hangar-bar .buy{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.bar-error{color:#ff8a7a;font-size:13px}.hangar-cats .lock{color:var(--gold);font-size:12px}.opt{position:relative}.opt .tag{font-family:var(--display);background:#05020dcc;border-radius:6px;padding:2px 6px;font-size:10px;position:absolute;top:6px;right:6px}.opt .tag.price{color:var(--gold)}.opt .tag.on{color:#3dffb0}.opt.locked canvas.thumb{filter:saturate(.6)brightness(.8)}.opt.rare{box-shadow:inset 0 -3px #2f7bff}.opt.epic{box-shadow:inset 0 -3px #b07aff}.opt.legendary{box-shadow:inset 0 -3px 0 var(--gold)}.opt.on.rare,.opt.on.epic,.opt.on.legendary,.opt.on{border-color:var(--cyan)}.buy.rare span{color:#7fb0ff}.buy.epic span{color:#c9a6ff}.buy.legendary span{color:var(--gold)}.hangar-options.colors-panel{flex-direction:column;gap:14px;display:flex}.color-zone{flex-direction:column;gap:8px;display:flex}.zone-head{font-family:var(--display);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;font-size:11px;display:flex}.zone-head b{color:var(--ink)}.zone-swatches{grid-template-columns:repeat(8,1fr);gap:5px;display:grid}.zone-swatches .swatch{border-width:1px;border-radius:6px}.picker{cursor:pointer;border:1px solid #fff6;border-radius:6px;width:42px;height:22px;position:relative;overflow:hidden}.picker input{opacity:0;cursor:pointer;position:absolute;inset:0}.color-zone input[type=range]{width:100%;accent-color:var(--cyan)}.res-credits{font-family:var(--display);color:var(--gold);min-height:20px;font-size:16px}.table .gold{color:var(--gold)}.top-btn{cursor:pointer;width:40px;height:40px;color:var(--ink);background:#0a0618cc;border:1px solid #ffffff24;border-radius:50%;font-size:17px}.top-btn:hover{border-color:var(--cyan);box-shadow:0 0 18px #33e1ff4d}.lock-note{text-align:center;font-family:var(--display);letter-spacing:.15em;color:var(--dim);font-size:11px}#ranking-all{justify-content:center;margin-top:10px}#profile,#leaderboard,#pilot,#about{z-index:22;background:#05020de0}#pilot{z-index:23}.panel-wrap{background:#0c071cf5;border:1px solid #ffffff1f;border-radius:18px;flex-direction:column;gap:14px;width:min(880px,100%);max-height:100%;padding:20px;animation:.35s both rise;display:flex;overflow-y:auto}.panel-wrap.small{width:min(520px,100%)}.panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-head h2{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:22px}.tabs.inline{border:none;gap:6px}.tabs.inline .tab{flex:none;padding:8px 14px}.panel-wrap h3{font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:0 0 8px;font-size:12px}.profile-top{align-items:center;gap:18px;display:flex}.pf-ship{object-fit:contain;background:radial-gradient(circle,#33e1ff14,#0000 70%);border-radius:14px;flex:none;width:200px;height:125px}.pf-id{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.pf-id input{font-family:var(--display);font-size:18px}.pf-stats{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.pf-stats div{background:#ffffff0d;border-radius:10px;padding:8px 10px}.pf-stats b{font-family:var(--display);font-size:18px;display:block}.pf-stats span{color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.pf-cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.socials{flex-direction:column;gap:6px;display:flex}.socials label{align-items:center;gap:10px;display:flex}.socials label span{width:70px;color:var(--dim);font-size:14px}.socials input,.setting input[type=text]{min-width:0;color:var(--ink);font-family:var(--text);background:#ffffff0d;border:1px solid #ffffff24;border-radius:8px;outline:none;flex:1;padding:6px 10px;font-size:15px;font-weight:600}.socials .btn{align-self:flex-end}#history-list{max-height:260px;overflow-y:auto}.setting>span small{color:var(--dim);font-size:13px;display:block}.setting{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:16px;padding:12px 4px;font-size:16px;display:flex}.setting input[type=range]{width:220px;accent-color:var(--cyan)}.setting .seg{width:260px;margin:0}.switch{cursor:pointer;flex:none;width:46px;height:26px;position:relative}.switch input{opacity:0;width:0;height:0}.switch i{background:#ffffff24;border-radius:13px;transition:background .2s;position:absolute;inset:0}.switch i:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch input:checked+i{background:var(--cyan)}.switch input:checked+i:after{transform:translate(20px)}.lb-scroll{max-height:60vh;overflow-y:auto}.table.lb td{vertical-align:middle}.table.lb img{object-fit:contain;width:64px;height:40px;display:block}.table.lb tr[data-pilot]{cursor:pointer}.table.lb tr[data-pilot]:hover td{background:#ffffff0a}.lb-me{border-top:1px solid #33e1ff66}.lb-me:empty{display:none}.social-links{flex-wrap:wrap;gap:8px;margin:2px 0 10px;display:flex}.social-links a{color:var(--cyan);background:#33e1ff14;border-radius:8px;padding:4px 10px;font-size:14px;text-decoration:none}.social-links span{background:#ffffff0f;border-radius:8px;padding:4px 10px;font-size:14px}#fps{z-index:40;color:#3dffb0;pointer-events:none;background:#00000080;border-radius:4px;padding:2px 6px;font-family:ui-monospace,monospace;font-size:12px;position:fixed;bottom:8px;left:10px}@media (max-width:760px){.pf-cols{grid-template-columns:1fr}.profile-top{flex-direction:column;align-items:stretch}.setting input[type=range],.setting .seg{width:150px}}.tribute{cursor:pointer;color:var(--dim);font:inherit;letter-spacing:.02em;opacity:.85;background:0 0;border:0;margin:14px auto 0;padding:4px 10px;font-size:13px;transition:opacity .2s,color .2s;display:block}.tribute b{color:#f4f0ff;font-weight:600}.tribute:hover{opacity:1;color:var(--cyan)}.about h3{font-family:var(--display);letter-spacing:.18em;color:var(--cyan);text-transform:uppercase;margin:6px 0 -4px;font-size:12px}.about p{color:#d8d2ee;margin:0;line-height:1.5}.about p.fine{color:var(--dim);font-size:13px}.about a:not(.btn){color:var(--cyan)}.about .menu-row{justify-content:flex-start}#code-input.masked{-webkit-text-security:disc;text-security:disc}#library{z-index:22;background:#05020de0}.lib-add{gap:8px;display:flex}.lib-add input{min-width:0;color:var(--ink);font:inherit;background:#33e1ff0f;border:1px solid #33e1ff59;border-radius:10px;outline:none;flex:1;padding:10px 14px;font-size:16px}.lib-add input:focus{border-color:var(--cyan);box-shadow:0 0 14px #33e1ff40}.lib-status{min-height:18px;color:var(--cyan);margin-top:-6px;font-size:14px}.lib-status:empty{display:none}.lib-status.error{color:#ff8a7a}.lib-bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lib-bar input{min-width:180px;color:var(--ink);font:inherit;background:#ffffff0d;border:1px solid #ffffff29;border-radius:10px;outline:none;flex:1;padding:10px 14px;font-size:16px}.lib-bar input:focus{border-color:var(--cyan)}.lib-bar .seg{width:330px;max-width:100%;margin:0}.lib-list{flex-direction:column;gap:8px;max-height:62vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.lib-list li{background:#ffffff0a;border:1px solid #ffffff12;border-radius:12px;align-items:center;gap:14px;padding:8px 12px 8px 8px;display:flex}.lib-list li:hover{border-color:#33e1ff59}.lib-list li.empty{color:var(--dim);background:0 0;border-style:dashed;justify-content:center;padding:28px}.lib-list img,.lib-art{object-fit:cover;background:#ffffff0f;border-radius:8px;flex:none;width:96px;height:54px}.lib-art{color:var(--cyan);place-items:center;font-size:22px;display:grid}.lib-list .grow{flex:1;min-width:0}.lib-list .title{text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:700;overflow:hidden}.lib-list .meta{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.lib-best{flex-direction:column;align-items:flex-end;min-width:70px;line-height:1.1;display:flex}.lib-best b{font-family:var(--display);color:var(--gold);font-size:15px}.lib-best small{color:var(--dim);letter-spacing:.15em;text-transform:uppercase;font-size:11px}@media (max-width:640px){.lib-list img,.lib-art{width:64px;height:36px}.lib-best{display:none}}
