@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/barlow-condensed-latin-700-normal-B9NQhHK3.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/barlow-condensed-latin-800-normal-jAD-BpyZ.woff2)format("woff2")}:root{--ink:#070b1a;--ink-raised:#0e1530;--line:#22305a;--line-strong:#52659e;--text:#e8f3ff;--text-dim:#8fa3c7;--calm:#6fd3ff;--hot:#e2456f;--gold:#ffe27a;--font-display:"Barlow Condensed", "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:radial-gradient(ellipse 80% 40% at 50% 0%, #6fd3ff1f, transparent 70%), linear-gradient(180deg, transparent 60%, #e2456f0f), var(--ink);color:var(--text);font:15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;background-repeat:no-repeat;background-attachment:fixed}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{padding:48px max(16px, 3vw, env(safe-area-inset-right)) 64px max(16px, 3vw, env(safe-area-inset-left));align-content:start;gap:32px;display:grid}.brand__name{letter-spacing:-.02em;background:linear-gradient(90deg, var(--calm), var(--hot));color:#0000;-webkit-background-clip:text;background-clip:text;width:fit-content;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;grid-template-columns:minmax(0,1fr);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)}.song{gap:14px;padding-top:4px;display:grid}.difficulty{gap:6px;display:grid}.difficulty__row{flex-wrap:wrap;gap:8px;display:flex}.difficulty__option{padding-inline:14px}.difficulty__option[aria-pressed=true]{border-color:var(--calm);background:#6fd3ff1f}.difficulty__hint{color:var(--text-dim);margin:0;font-size:13px}.tag{color:var(--gold);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;margin-left:8px;font-size:11px;font-weight:700}.song__credit{color:var(--text-dim);margin:-8px 0 0;font-size:12px}.song__credit a{color:var(--calm)}.hud__credit{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.song__note{color:var(--text-dim);text-align:center;margin:-6px 0 0;font-size:13px}.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}.library{grid-column:1/-1}.library .results{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));column-gap:24px}.library__heading{color:var(--text-dim);font:600 12px/1.2 var(--font-body);letter-spacing:.08em;text-transform:uppercase;margin:0}.stage{border-color:var(--calm)}.stage__step{margin:0;font-size:17px}.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__best{color:var(--text-dim);margin:0}.results-panel__best--new{color:var(--gold);font-weight:600}.songs{gap:6px;margin:0;padding:0;list-style:none;display:grid}.songs__row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title action""meta action";align-items:center;gap:2px 12px;padding:6px 0;display:grid}.songs__row:last-child{border-bottom:0}.songs__row--plain{grid-template-areas:"title title""meta meta"}.songs__row .button{grid-area:action}.songs__title{text-overflow:ellipsis;white-space:nowrap;grid-area:title;font-weight:600;overflow:hidden}.songs__meta{color:var(--text-dim);font-variant-numeric:tabular-nums;grid-area:meta;font-size:13px}.songs__aside{color:var(--text-dim);white-space:nowrap;grid-area:action;font-size:13px}.songs__grade{color:var(--gold);font-family:var(--font-display);font-size:15px;font-weight:800}.page__header{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.page__title{letter-spacing:-.01em;font-size:clamp(28px,5vw,40px);font-weight:800}.page__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start;gap:24px;display:grid}.menu__nav{color:var(--text-dim);margin:0}.menu__nav a{color:var(--calm)}.board{gap:8px;display:grid}.board__title{font-family:var(--font-display);margin:0;font-size:18px;font-weight:700}.board__note{color:var(--text-dim);margin:0;font-size:13px}.board__note--error{color:var(--hot)}.board__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.board__row{font-variant-numeric:tabular-nums;border-radius:4px;grid-template-columns:2ch minmax(0,1fr) 2ch auto;align-items:baseline;gap:12px;padding:4px 8px;display:grid}.board__row--mine{background:#6fd3ff1a;font-weight:600}.board__row--gap{border-top:1px dashed var(--line);margin-top:8px;padding-top:10px}.board__rank,.board__score{font-family:var(--font-data)}.board__rank{color:var(--text-dim);text-align:right}.board__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board__grade{color:var(--gold);font-family:var(--font-display);text-align:center;font-weight:800}.board__score{text-align:right}.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-strong);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-strong);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__thumb--empty{background:var(--ink)}.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--loading{color:var(--text-dim);place-items:center;display:grid}.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;align-items:flex-start;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;position:relative}.hud__points{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:32px;line-height:1.1}.hud__block{background:#070b1a99;border-radius:4px;padding:6px 10px}.hud__scoreline{align-items:baseline;gap:10px;display:flex}.hud__grade{color:var(--gold);font-family:var(--font-display);font-size:28px;font-weight:800;line-height:1}.hud__meter{background:var(--line);width:100%;height:3px;margin-top:4px}.hud__meter-fill{background:var(--gold);transform-origin:0;height:100%;transition:transform .12s linear}.hud__stats{flex-wrap:wrap;justify-content:end;column-gap:.6em;display:flex}.hud__stat{white-space:nowrap}.hud__stats,.hud__pace{color:var(--text-dim);font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:12px}.hud__pace--ahead{color:var(--calm)}.hud__pace--behind{color:var(--hot)}.choice{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.choice__legend{color:var(--text-dim);padding:0}.choice__option{align-items:baseline;gap:8px;display:flex}.choice__hint{color:var(--text-dim);font-size:13px}@media (width<=600px){.hud__points{font-size:24px}.hud__grade{font-size:22px}.hud__song{max-width:44vw}.hud__progress{width:120px}.ride__help--riding{display:none}}.hud__points--pop{animation:.16s ease-out hud-pop}.hud__gain{color:var(--calm);font-family:var(--font-data);font-variant-numeric:tabular-nums;pointer-events:none;font-size:15px;animation:.6s ease-out forwards hud-float;position:absolute;top:100%;right:0}.hud__chain--up{color:var(--gold);animation:.3s ease-out hud-pop}.hud__chain--lost{color:var(--hot);animation:.3s ease-out hud-shake}.ride__vignette{pointer-events:none;transition:box-shadow .5s ease-out;position:absolute;inset:0;box-shadow:inset 0 0 120px #ff5a3600}.ride__vignette--hit{transition:none;box-shadow:inset 0 0 120px 20px #ff5a368c}@keyframes hud-pop{50%{transform:scale(1.15)}}@keyframes hud-float{to{opacity:0;transform:translateY(-24px)}}@keyframes hud-shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.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__countdown--tick{animation:.5s ease-out countdown-tick}.ride__countdown--go{color:var(--calm);animation:.7s ease-out forwards countdown-go}@keyframes countdown-tick{0%{opacity:.6;transform:scale(1.25)}}@keyframes countdown-go{0%{opacity:0;transform:scale(.8)}25%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.3)}}.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){.ride__countdown--tick,.ride__countdown--go,.hud__points--pop,.hud__gain,.hud__chain--up,.hud__chain--lost{animation:none}.ride__vignette{transition:none}}.settings{grid-column:1/-1;gap:12px}.settings__summary{cursor:pointer;font-family:var(--font-display);font-size:22px;font-weight:700}.offset{gap:8px;width:min(100%,420px);display:grid}.offset__label{color:var(--text-dim);justify-content:space-between;gap:12px;display:flex}.offset__value{color:var(--text);font-family:var(--font-data);font-variant-numeric:tabular-nums}.offset__row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.offset__step{min-width:40px;padding-inline:0}.offset__range{width:100%;accent-color:var(--calm)}.volume{gap:8px;width:min(100%,420px);display:grid}.volume__label{color:var(--text-dim);justify-content:space-between;gap:12px;display:flex}.volume__value{color:var(--text);font-family:var(--font-data);font-variant-numeric:tabular-nums}.volume__range{width:100%;accent-color:var(--calm)}.calibrate{justify-items:start;gap:10px;width:min(100%,420px);display:grid}.calibrate__hint,.calibrate__result{color:var(--text-dim);margin:0;font-size:13px}.calibrate__result{color:var(--text);font-size:15px}.calibrate__result--error{color:var(--hot)}.calibrate__pad{border:1.5px dashed var(--line-strong);width:100%;min-height:120px;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#6fd3ff0f;border-radius:8px;place-items:center;gap:4px;display:grid}.calibrate__pad:active{border-color:var(--calm);background:#6fd3ff24}.calibrate__count{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:32px}.calibrate__actions{flex-wrap:wrap;gap:12px;display:flex}.offset__hint{color:var(--text-dim);margin:0;font-size:13px}.brand__row{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;display:flex}.account{justify-self:end;position:relative}.account__who{align-items:center;gap:8px;display:inline-flex}.account__role{background:var(--gold);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700}.account__popover{z-index:20;border:1px solid var(--line);background:var(--ink-raised);border-radius:10px;gap:14px;width:min(320px,100vw - 32px);padding:16px;display:grid;position:absolute;inset:calc(100% + 8px) 0 auto auto;box-shadow:0 12px 32px #00000073}.account__quotas{gap:6px;margin:0;display:grid}.account__quotas div{justify-content:space-between;gap:12px;display:flex}.account__quotas dt{color:var(--text-dim)}.account__quotas dd{font-family:var(--font-data);font-variant-numeric:tabular-nums;margin:0}.account__section summary{cursor:pointer;color:var(--text-dim)}.signin{gap:12px;display:grid}.signin label{color:var(--text-dim);gap:4px;font-size:13px;display:grid}.signin__fields{gap:10px;display:grid}.admin{grid-column:1/-1}.admin__scroll{overflow-x:auto}.admin__table{border-collapse:collapse;width:100%;min-width:640px}.admin__table th,.admin__table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 8px}.admin__table thead th{color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.admin__table tbody th{align-items:center;gap:8px;display:flex}.admin__num{font-family:var(--font-data);font-variant-numeric:tabular-nums}.admin__row--off{opacity:.55}.admin__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin__reset{gap:8px;display:flex}.admin__new{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));align-items:end;gap:12px;display:grid}.admin__new h3{font-family:var(--font-display);grid-column:1/-1;margin:0;font-size:18px}.admin__new label{color:var(--text-dim);gap:4px;font-size:13px;display:grid}.library__controls{flex-wrap:wrap;align-items:center;gap:10px 12px;display:flex}.library__search{flex:260px;min-width:0}.library__sort{flex:none}.library__count{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.crash{max-width:560px;margin:48px auto}.ride--crashed{padding-inline:max(16px, env(safe-area-inset-left));place-items:center;display:grid}.waveform{--waveform-played:var(--calm);--waveform-upcoming:#8fa3c773;width:100%;height:48px;display:block}.waveform--card{height:56px}.ride__waveform{inset:auto 0 max(40px, env(safe-area-inset-bottom) + 32px);opacity:.85;pointer-events:none;width:min(720px,100% - 32px);height:44px;margin-inline:auto;position:absolute}.settings__toggle{color:var(--text-dim);align-items:center;gap:10px;display:flex}.settings__toggle input{width:18px;height:18px;accent-color:var(--calm)}.ride__waveform--live{opacity:.95;height:72px}.settings__select{width:auto;max-width:100%}.timeline{gap:6px;margin:0;display:grid}.timeline__strip{touch-action:none;cursor:crosshair;height:56px;position:relative}.timeline__wave{--waveform-upcoming:#8fa3c759;height:100%}.timeline__chain{pointer-events:none;background:#6fd3ff29;border-radius:4px;position:absolute;inset-block:0;box-shadow:inset 0 0 0 1px #6fd3ff59}.timeline__mark{background:var(--text-dim);pointer-events:none;border-radius:1px;width:2px;margin-left:-1px;position:absolute;inset-block:2px}.timeline__mark--crash{background:#ff5a36}.timeline__mark--focus{background:var(--text);width:4px;margin-left:-2px;inset-block:-4px}.timeline__mark--crash.timeline__mark--focus{background:#ff8a6d}.timeline__caption{color:var(--text-dim);font-size:13px}
