@font-face{font-family:Courier Prime;src:url(/fonts/courier-prime-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Courier Prime;src:url(/fonts/courier-prime-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:block}:root{--lyric-cols:45;--lyric-size-min:11px;--lyric-size-max:15px;--bg:#0c0b0a;--surface:#1a1816;--surface-raised:#221f1c;--hover:#ffffff0e;--border:#ffffff1a;--border-strong:#ffffff3d;--fg:#f2f0ee;--muted:#8e8880;--accent:#f97347;--accent-fill:#eb5224;--accent-fg:#1a0a03;--chord:#0f0;--facet-era:#f0b429;--facet-genre:#a78bfa;--facet-subgenre:#60a5fa;--facet-format:#2dd4bf;--facet-vibe:#f472b6;--rail-w:232px;--topbar-h:87px;--field-bg:#222;--field-border:#444}[data-facet=era]{--facet:var(--facet-era)}[data-facet=genre]{--facet:var(--facet-genre)}[data-facet=subgenre]{--facet:var(--facet-subgenre)}[data-facet=format]{--facet:var(--facet-format)}[data-facet=vibe]{--facet:var(--facet-vibe)}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body{overflow-x:hidden}.lyrics{font-family:Courier Prime,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(var(--lyric-size-min), calc((100vw - 32px) / (var(--lyric-cols) * .6)), var(--lyric-size-max));padding:0 16px 40px;line-height:1.35}@media (width>=801px){.lyrics{--lyric-size-max:13.5px}}.lyrics__columns{column-width:calc(var(--lyric-cols) * 1ch);column-count:3;column-gap:3ch}.lyrics__section{break-inside:avoid;margin:0 0 1.6em}.lyrics__heading{margin:0 0 .2em;font-size:1.06em;font-weight:700}.lyrics__line,.lyrics__chords{white-space:pre-wrap;overflow-wrap:break-word;font-variant-ligatures:none;tab-size:4;margin:0}.lyrics__chords{color:var(--chord)}.lyrics-preview{width:calc(var(--lyric-cols) * 1ch);font-family:Courier Prime,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.35}.lyrics-preview__line{white-space:pre;cursor:pointer;font-variant-ligatures:none;margin:0}.lyrics-preview__line--chords{color:var(--chord)}.lyrics-preview__heading{font-weight:700;font-size:inherit;margin:1.6em 0 .2em}.lyrics-preview__blank{height:1.35em}.lyrics__blank{white-space:pre;margin:0}.song-page{--bg:#000;background:var(--bg);min-height:100vh}.songbar{z-index:12;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:8px;padding:10px 16px;transition:transform .18s;display:flex;position:sticky;top:0}.songbar--hidden{transform:translateY(-100%)}@media (prefers-reduced-motion:reduce){.songbar{transition:none}}.songbar__spacer{flex:1}.song-header{text-align:center;padding:8px 16px 20px}.song-header__title{letter-spacing:-.01em;margin:0 0 6px;font-size:clamp(20px,5vw,26px);font-weight:700}.song-header__artist{color:var(--muted);font:inherit;cursor:pointer;border:0;border-bottom:1px solid var(--border-strong);background:0 0;padding:0}.song-header__artist:hover{color:var(--fg)}.song-header__links{justify-content:center;gap:20px;margin-top:12px;font-size:13px;display:flex}.song-header__links a{color:var(--accent);border-bottom:1px solid #0000;text-decoration:none}.song-header__links a:hover{border-bottom-color:currentColor}.song-nav{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding-inline:clamp(32px,7vw,96px);display:grid}.song-nav__arrow{width:44px;height:44px;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.song-nav__arrow:hover:not(:disabled){color:var(--fg);background:var(--hover)}.song-nav__arrow:disabled{opacity:.22;cursor:default}@media (width<=800px){.song-nav{padding-inline:2px}.song-nav .song-header{padding-inline:4px}}.autoscroll{right:12px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:.55;border-radius:999px;flex-direction:column;align-items:center;gap:6px;padding:6px 6px 7px;transition:opacity .16s;display:flex;position:fixed}.autoscroll--playing,.autoscroll:focus-within{opacity:1}.autoscroll__row{align-items:center;gap:2px;display:flex}.autoscroll__btn{width:44px;height:44px;color:var(--fg);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.autoscroll__btn:disabled{opacity:.25;cursor:default}.autoscroll__btn--play{color:var(--accent)}.autoscroll--playing .autoscroll__btn--play{background:var(--accent-fill);color:var(--accent-fg)}.autoscroll__meter{gap:3px;display:flex}.autoscroll__pip{background:var(--border-strong);border-radius:2px;width:5px;height:3px}.autoscroll__pip--on{background:var(--accent)}@media (width<=800px){.lyrics{padding-bottom:108px}}.speeds{min-height:100vh}.speeds__body{max-width:640px;padding:8px 16px 40px}.speeds__title{margin:0 0 4px;font-size:20px}.speeds__count{color:var(--muted);margin:0 0 20px}.speeds__share{font:inherit;background:var(--accent-fill);color:var(--accent-fg);cursor:pointer;border:0;border-radius:10px;padding:12px 20px;font-weight:600}.speeds__note{color:var(--muted);font-size:13px}.speeds__json{border:1px solid var(--border);background:var(--surface);color:var(--muted);white-space:pre;-webkit-user-select:all;user-select:all;border-radius:8px;max-height:50vh;margin-top:24px;padding:12px;font-family:Courier Prime,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;overflow:auto}.browse{grid-template-columns:var(--rail-w) minmax(0, 1fr);min-height:100vh;display:grid}.browse__rail{border-right:1px solid var(--border);overscroll-behavior:contain;align-self:start;max-height:100vh;padding:20px 0 40px;position:sticky;top:0;overflow-y:auto}.browse__main{min-width:0}.browse__filter-btn{display:none}@media (width<=800px){.browse{grid-template-columns:minmax(0,1fr)}.browse__rail{display:none}.browse__filter-btn{display:inline-flex}}.topbar{z-index:12;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:10px 16px;position:sticky;top:0}.topbar__row{align-items:center;gap:8px;display:flex}.search{min-width:0;height:36px;color:var(--fg);font:inherit;background:var(--surface);border:1px solid var(--border);border-radius:8px;outline:none;flex:1;padding:0 12px;font-size:14px}.search::placeholder{color:var(--muted)}.search:focus{border-color:var(--border-strong)}.btn{color:var(--muted);font:inherit;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;display:inline-flex}.btn--icon{flex:none;width:36px;height:36px;position:relative}.btn:hover{color:var(--fg);border-color:var(--border-strong)}.btn--on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.btn__badge{min-width:15px;height:15px;color:var(--accent-fg);background:var(--accent-fill);border-radius:8px;padding:0 4px;font-size:10px;line-height:15px;position:absolute;top:-5px;right:-5px}.sortmenu{flex:none;position:relative}.sortmenu__list{z-index:20;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:10px;min-width:170px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 28px #0000008c}.sortmenu__list button{text-align:left;width:100%;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:13px;display:block}.sortmenu__list button:hover{background:var(--hover)}.sortmenu__list .is-current{color:var(--accent)}.topbar__status{flex-wrap:wrap;align-items:center;gap:6px;min-height:22px;margin-top:8px;display:flex}.topbar__count{color:var(--muted);margin-right:2px;font-size:12px}.pill{height:22px;font:inherit;color:#17130e;background:var(--facet,var(--accent));cursor:pointer;border:0;border-radius:11px;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:inline-flex}.pill--suggest{color:var(--facet,var(--accent));background:color-mix(in srgb, var(--facet,var(--accent)) 14%, transparent);border:1px dashed color-mix(in srgb, var(--facet,var(--accent)) 45%, transparent)}.recents{padding:16px 16px 4px}.recents__label,.facet__label{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:10px;font-weight:700}.facet__label{color:color-mix(in srgb, var(--facet,var(--muted)) 62%, var(--muted))}.recents__items{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.recents__items::-webkit-scrollbar{display:none}.recents__item{text-align:left;max-width:190px;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;flex:none;gap:2px;padding:8px 12px;display:flex}.recents__item:hover{border-color:var(--border-strong)}.recents__title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.recents__artist{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.list-wrap{position:relative}.list{padding:8px 0 64px}.group{border-left:3px solid color-mix(in srgb, var(--accent) 28%, transparent);margin-top:22px}.group:first-child{margin-top:4px}.group__header{top:var(--topbar-h);z-index:8;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:7px 16px 7px 13px;font-size:11px;font-weight:700;display:flex;position:sticky}.group__count{letter-spacing:0;color:var(--muted);font-weight:400}.row{text-align:left;width:100%;font:inherit;color:var(--fg);border:0;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:9px 16px 9px 13px;display:flex}.row:last-child{border-bottom:0}.row:hover{background:var(--hover)}.row--active{background:color-mix(in srgb, var(--accent) 11%, transparent)}.row__main{align-items:baseline;gap:8px;min-width:0;display:flex}.row__title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.row__artist{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.row__meta{color:var(--muted);flex:none;align-items:center;gap:6px;display:flex}.row__tag{color:color-mix(in srgb, var(--facet,var(--muted)) 78%, white 22%);background:color-mix(in srgb, var(--facet,var(--muted)) 13%, transparent);white-space:nowrap;border-radius:9px;padding:2px 7px;font-size:10px}@media (width<=620px){.row__tag:nth-of-type(n+3){display:none}}@media (width<=460px){.row__tag{display:none}}.jump{z-index:10;flex-direction:column;gap:1px;display:flex;position:fixed;top:50%;right:2px;transform:translateY(-50%)}.jump button{width:18px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:9px;line-height:1.5}.jump button:hover{color:var(--accent)}.rail{padding:0 16px}.rail__head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.rail__title{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:700}.rail__clear{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.facet{margin-bottom:18px}.facet__chips{flex-wrap:wrap;gap:5px;display:flex}.chip{font:inherit;color:color-mix(in srgb, var(--facet,var(--fg)) 72%, white 28%);background:color-mix(in srgb, var(--facet,var(--fg)) 10%, transparent);border:1px solid color-mix(in srgb, var(--facet,var(--border-strong)) 22%, transparent);cursor:pointer;border-radius:11px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;display:inline-flex}.chip:hover:not(:disabled){border-color:color-mix(in srgb, var(--facet,var(--fg)) 55%, transparent)}.chip--on{color:#17130e;background:var(--facet,var(--accent));border-color:var(--facet,var(--accent))}.chip:disabled{opacity:.3;cursor:default}.chip__count{opacity:.6;font-size:10px}.chip--on .chip__count{opacity:.75}.sheet{z-index:30;background:#0009;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet__panel{overscroll-behavior:contain;width:100%;max-height:82vh;padding:16px 0 calc(16px + env(safe-area-inset-bottom));background:var(--surface-raised);border-top-left-radius:16px;border-top-right-radius:16px;overflow-y:auto}.sheet__done{z-index:1;width:calc(100% - 32px);font:inherit;color:var(--accent-fg);background:var(--accent-fill);cursor:pointer;border:0;border-radius:9px;margin:0 16px 16px;padding:11px;font-size:14px;display:block;position:sticky;top:0}.status{text-align:center;color:var(--muted);padding:40px 16px;font-size:13px}.update-prompt{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;border:1px solid var(--field-border);background:#1b1b1b;border-radius:8px;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #00000080}.update-prompt button{color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:0;padding:2px 6px}.update-prompt button:first-of-type{text-decoration:underline}
