:root{--ink:#070b1a;--ink-raised:#0e1530;--line:#22305a;--text:#e8f3ff;--text-dim:#8fa3c7;--calm:#6fd3ff;--hot:#e2456f;--gold:#ffe27a;--font-display:"Avenir Next Condensed", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-data:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--text);font:15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}h1,h2{font-family:var(--font-display);text-wrap:balance;margin:0}:focus-visible{outline:2px solid var(--calm);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.menu{max-width:1080px;padding:48px max(16px, env(safe-area-inset-right)) 64px max(16px, env(safe-area-inset-left));background:radial-gradient(80% 40% at 50% 0,#6fd3ff1f,#0000 70%),linear-gradient(#0000 60%,#e2456f0f);gap:32px;min-height:100%;margin:0 auto;display:grid}.brand__name{letter-spacing:-.02em;background:linear-gradient(90deg, var(--calm), var(--hot));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,9vw,96px);font-weight:800;line-height:.9}.brand__tag{max-width:52ch;color:var(--text-dim);margin:12px 0 0;font-size:17px}.menu__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start;gap:24px;display:grid}.panel{border:1px solid var(--line);background:var(--ink-raised);border-radius:10px;gap:16px;min-width:0;padding:20px;display:grid}.panel__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.panel__header h2{letter-spacing:.01em;font-size:22px}.panel__note{color:var(--text-dim);margin:0}.panel__note--error{color:var(--hot)}.chip{border:1px solid var(--line);color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:12px}.picker{border:1.5px dashed var(--line);text-align:center;cursor:pointer;border-radius:8px;place-items:center;gap:6px;min-height:160px;padding:24px;transition:border-color .15s,background-color .15s;display:grid}.picker:hover,.picker--over{border-color:var(--calm);background:#6fd3ff0f}.picker--busy{cursor:progress}.picker:focus-within{outline:2px solid var(--calm);outline-offset:2px}.picker__input{opacity:0;width:1px;height:1px;position:absolute}.picker__title{font-family:var(--font-display);font-size:22px;font-weight:700}.picker__hint{color:var(--text-dim);font-size:13px}.picker__wave{align-items:center;gap:4px;height:32px;display:flex}.picker__wave span{background:linear-gradient(var(--calm), var(--hot));border-radius:2px;width:4px;height:100%;animation:.9s ease-in-out infinite alternate bar}@keyframes bar{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}.song{gap:14px;padding-top:4px;display:grid}.song__title{font-family:var(--font-display);overflow-wrap:anywhere;font-size:24px;font-weight:700}.stats{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px;margin:0;display:grid}.stat dt{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.stat dd{font-family:var(--font-data);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:18px}.results-panel{max-width:560px}.results-panel__score{font-family:var(--font-data);font-variant-numeric:tabular-nums;margin:0;font-size:clamp(40px,8vw,64px);line-height:1}.results-panel__actions{flex-wrap:wrap;gap:12px;display:flex}.grade{font-family:var(--font-display);color:var(--gold);font-size:44px;font-weight:800;line-height:1}.button{border:1px solid var(--line);color:var(--text);font:600 15px var(--font-body);cursor:pointer;background:0 0;border-radius:6px;padding:10px 18px}.button:hover:not(:disabled){border-color:var(--calm)}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:linear-gradient(90deg, var(--calm), var(--hot));color:var(--ink);border-color:#0000}.button--wide{width:100%;padding-block:14px;font-size:17px}.search{gap:8px;display:flex}.search__input{border:1px solid var(--line);background:var(--ink);min-width:0;color:var(--text);font:inherit;border-radius:6px;flex:1;padding:10px 12px}.results{gap:10px;margin:0;padding:0;list-style:none;display:grid}.result{grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.result__thumb{aspect-ratio:16/9;object-fit:cover;border-radius:4px;width:96px}.result__body{min-width:0;display:grid}.result__title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.result__title:hover{color:var(--calm)}.result__meta{color:var(--text-dim);font-size:13px}.ride{background:var(--ink);touch-action:none;position:fixed;inset:0;overflow:hidden}.ride__canvas{width:100%;height:100%;display:block}.hud{padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;gap:16px;display:flex;position:absolute;inset:0 0 auto}.hud__song{gap:4px;min-width:0;max-width:40ch;display:grid}.hud__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.hud__time,.hud__chain{color:var(--text-dim);font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:13px}.hud__progress{background:var(--line);width:200px;max-width:100%;height:3px}.hud__progress-fill{background:linear-gradient(90deg, var(--calm), var(--hot));transform-origin:0;height:100%}.hud__score{justify-items:end;display:grid}.hud__points{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:32px;line-height:1.1}.ride__countdown{font-family:var(--font-display);color:var(--text);text-shadow:0 0 40px #6fd3ff99;pointer-events:none;place-items:center;font-size:140px;font-weight:800;display:grid;position:absolute;inset:0}.ride__pause{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#070b1abf;place-content:center;justify-items:center;gap:20px;display:grid;position:absolute;inset:0}.ride__pause h2{font-size:48px}.ride__pause-actions{gap:12px;display:flex}.ride__help{inset:auto 0 max(12px, env(safe-area-inset-bottom));text-align:center;color:var(--text-dim);pointer-events:none;margin:0;font-size:12px;position:absolute}@media (prefers-reduced-motion:reduce){.picker__wave span{animation:none}}
