@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #020202;--bg-raise: #0b0b0b;--fg: #f4f4f5;--muted: #8a8a8a;--line: rgba(255, 255, 255, .08);--line-hover: rgba(255, 255, 255, .2);--hover: rgba(255, 255, 255, .04);--signal: #4ade80;--signal-ink: #03140a;--danger: #f87171;--wave-rest: rgba(255, 255, 255, .16);--scrim: rgba(0, 0, 0, .6);--glass-bg: linear-gradient(135deg, rgba(255, 255, 255, .07) 0%, rgba(255, 255, 255, .01) 100%), rgba(8, 8, 8, .87);--glass-line: rgba(255, 255, 255, .08);--glass-shadow: 0 24px 48px -12px rgba(0, 0, 0, .5), inset 0 1px 1px 0 rgba(255, 255, 255, .05);--blur: blur(40px) saturate(140%);--font: "Archivo Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--s1: 4px;--s2: 12px;--s3: 24px;--s4: 48px;--s5: 96px;--ease: cubic-bezier(.16, 1, .3, 1);--z-header: 10;--z-dock: 20;--z-now: 25;--z-sheet: 30;--text: var(--fg);--strong: var(--fg);--panel: var(--bg-raise);--bg-deep: var(--bg);--line-soft: var(--line);--line-hard: var(--line-hover);--dim: var(--muted);--dim-2: var(--line-hover);--accent: var(--signal);--accent-hover: var(--signal);--accent-ink: var(--signal-ink);--accent-soft: color-mix(in srgb, var(--signal) 28%, transparent);--wave-rest-hover: var(--line-hover);--rail: var(--line-hover);--scroll: var(--line-hover);--scroll-hover: var(--muted);--knob-shadow: rgba(0, 0, 0, .6);--overlay: var(--scrim);--mono: var(--font)}[data-theme=light]{color-scheme:light;--bg: #f4f4f2;--bg-raise: #ffffff;--fg: #0a0a0a;--muted: #5c5c5c;--line: #d8d8d4;--line-hover: #b8b8b2;--hover: rgba(0, 0, 0, .04);--signal: #15803d;--signal-ink: #ffffff;--danger: #b91c1c;--wave-rest: rgba(0, 0, 0, .16);--scrim: rgba(20, 20, 20, .3);--glass-bg: linear-gradient(135deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .2) 100%), rgba(236, 236, 234, .88);--glass-line: rgba(0, 0, 0, .08);--glass-shadow: 0 24px 48px -12px rgba(0, 0, 0, .18);--knob-shadow: rgba(0, 0, 0, .25)}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-weight:340;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}button,input,select{font:inherit;color:inherit}h1,h2,h3{text-wrap:balance;font-weight:500;letter-spacing:-.02em;margin:0}::selection{background:var(--fg);color:var(--bg)}:focus{outline:none}:focus-visible{outline:1px solid var(--fg);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--line-hover) transparent}.t-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-variation-settings:"wdth" 112;color:var(--muted)}.t-display{font-variation-settings:"wdth" 125;font-weight:800;text-transform:uppercase;letter-spacing:-.03em;line-height:.9}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}}body{transition:background-color .2s ease,color .2s ease}.app{display:flex;flex-direction:column;height:100vh}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-header{position:relative;z-index:var(--z-header);flex:none;height:64px;display:flex;align-items:center;gap:var(--s4);padding:0 var(--s3);border-bottom:1px solid transparent;transition:border-color .2s var(--ease)}.app-header.scrolled{border-bottom-color:var(--line)}.wordmark{color:var(--fg);text-decoration:none;white-space:nowrap;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-variation-settings:"wdth" 125}.wordmark span{color:var(--muted);font-weight:400;margin:0 .2em}.app-nav{display:flex;align-items:center;gap:var(--s3)}.app-nav a{color:var(--muted);font-size:14px;font-weight:450;text-decoration:none;padding:var(--s1) 0}.app-nav a:hover,.app-nav a.on{color:var(--fg)}.app-tools{margin-left:auto;display:flex;align-items:center;gap:var(--s2)}.header-search{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font-size:13px;cursor:pointer;transition:border-color .15s var(--ease),color .15s var(--ease)}.header-search:hover{border-color:var(--line-hover);color:var(--fg)}.header-search kbd{font:inherit;font-size:12px;color:var(--muted)}.crate-badge{display:inline-flex;align-items:center;gap:6px;color:var(--fg);text-decoration:none;font-size:14px}.crate-badge span{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:var(--signal);color:var(--signal-ink);font-size:12px;font-weight:600}.header-menu{position:relative}.header-menu summary{list-style:none;cursor:pointer;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600}.header-menu summary::-webkit-details-marker{display:none}.header-menu summary:hover{border-color:var(--line-hover);color:var(--fg)}.header-popover{position:absolute;z-index:var(--z-sheet);right:0;top:calc(100% + 8px);min-width:180px;display:flex;flex-direction:column;padding:var(--s1);border:1px solid var(--glass-line);border-radius:12px;background:var(--glass-bg);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--glass-shadow)}.header-popover button{display:flex;align-items:center;gap:8px;padding:10px 12px;border:0;border-radius:8px;background:none;color:var(--fg);text-align:left;cursor:pointer;font-size:13px}.header-popover button:hover{background:var(--hover)}.dig{flex:1;min-height:0;display:flex;flex-direction:column}.filter-row{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);padding:var(--s3) var(--s3) var(--s2)}.view-tabs{display:flex;gap:var(--s3)}.view-tabs a{color:var(--muted);text-decoration:none;font-size:22px;font-weight:500;letter-spacing:-.02em}.view-tabs a:hover,.view-tabs a.on{color:var(--fg)}.day-step{display:inline-flex;align-items:center;gap:2px;color:var(--fg);font-size:14px}.day-step span{min-width:64px;text-align:center}.day-step button{width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--muted);font-size:18px;cursor:pointer}.day-step button:hover{background:var(--hover);color:var(--fg)}.filters{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2)}.filters select,.filters input:not([type=checkbox]),.fchip{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}.filters select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:12px;max-width:220px}.filters select option{background:var(--bg-raise);color:var(--fg)}.filters select:hover,.filters input:not([type=checkbox]):hover,.fchip:hover{border-color:var(--line-hover);color:var(--fg)}.filters select.on,.fchip.on{border-color:var(--fg);color:var(--fg)}.bpm-range{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.bpm-range input{width:64px;text-align:center;cursor:text}.bpm-range input::placeholder{color:var(--muted)}.list-head{display:flex;justify-content:space-between;padding:var(--s2) var(--s3)}.more{padding:var(--s3);text-align:center}.ghost{height:36px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--fg);font-size:13px;cursor:pointer}.ghost:hover{border-color:var(--line-hover)}.ghost:disabled{color:var(--muted);cursor:default}.list{flex:1;overflow-y:auto;padding-bottom:56px}.row{display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);min-height:56px}.row img{width:40px;height:40px;border-radius:6px;background:var(--line)}.row .title{font-size:14px;font-weight:500;color:var(--fg)}.row .sub{font-size:13px;color:var(--muted);margin-top:2px}.tag{font-size:12px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:500;padding:3px 8px;border-radius:999px;border:1px solid var(--line-hover);color:var(--fg)}.btn{display:inline-flex;align-items:center;gap:var(--s1);min-height:36px;padding:0 16px;border:1px solid var(--fg);border-radius:999px;background:var(--fg);color:var(--bg);font:inherit;font-size:13px;font-weight:500;text-decoration:none;cursor:pointer}.btn:hover:not(:disabled){opacity:.88}.btn:disabled{opacity:.35;cursor:default}.page-title{margin:0;padding:var(--s3) var(--s3) var(--s2);font-size:22px;font-weight:500;letter-spacing:-.02em;color:var(--fg)}.empty{padding:var(--s2) var(--s3);color:var(--muted);font-size:14px;max-width:64ch}.empty a{color:var(--fg)}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:24px 16px 18px;border-bottom:1px solid var(--line)}.eyebrow{font:600 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.page-heading h1,.genre-hero h1{margin:6px 0 0;color:var(--strong);font-size:30px;letter-spacing:-.03em}.page-heading p,.genre-hero p{margin:6px 0 0;color:var(--muted);font-size:12px}.genre-search{width:180px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--text);padding:8px 9px;font-size:12px}.genre-atlas{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1px;background:var(--line)}.genre-tile{min-height:120px;padding:14px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;background:var(--bg);color:var(--muted);text-decoration:none}.genre-tile:hover{background:var(--hover)}.genre-tile b{color:var(--strong);font-size:15px}.genre-tile span{font:600 12px var(--mono)}.genre-tile small{margin-top:auto;color:var(--accent);font:700 12px var(--mono)}.genre-hero{padding:25px 16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,var(--panel),var(--bg))}.genre-tabs{display:flex;gap:16px;margin-top:18px}.genre-tabs a{color:var(--dim);text-decoration:none;font-size:12px;font-weight:700;padding-bottom:7px}.genre-tabs a.on{color:var(--strong);border-bottom:2px solid var(--accent)}.genre-play{margin-top:16px}.genre-feature{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.genre-feature b{color:var(--strong);font-size:14px}.genre-feature span:last-child{color:var(--muted);font-size:12px}.login{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.login form{display:flex;flex-direction:column;gap:10px;width:260px;text-align:center}.login .brand{font:700 30px/1 var(--font);color:var(--strong);letter-spacing:-.03em}.login .brand span{color:var(--accent)}.login .hint{color:var(--dim);font-size:12px;margin:0 0 10px}.login input{background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:10px 12px;color:var(--text);font-size:14px;outline:none}.login input:focus{border-color:var(--fg)}.login .btn{padding:10px;font-size:12px}.login .err{color:#ff5a5a;font-size:12px;margin:4px 0 0}.chev{background:none;border:0;color:var(--dim);cursor:pointer;font-size:12.5px;width:18px;padding:0;flex:0 0 18px}.row>div[style]{cursor:pointer}.btn.sm{padding:4px 7px;font-size:12px}*{scrollbar-width:thin;scrollbar-color:var(--scroll) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:6px;border:3px solid var(--bg)}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}.app.has-dock .main :is(.list,.stations,.lib-list,.lib-clusters,.lib-card,.tagger){padding-bottom:120px}.dock{position:fixed;z-index:var(--z-dock);left:50%;bottom:var(--s3);transform:translate(-50%);width:min(1120px,calc(100vw - 2 * var(--s3)));height:72px;padding:0 var(--s2) 0 14px;display:grid;align-items:center;gap:var(--s3);grid-template-columns:minmax(180px,280px) auto minmax(0,1fr) auto auto;background:var(--glass-bg);border:1px solid var(--glass-line);border-radius:999px;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.dock-open{display:flex;align-items:center;gap:var(--s2);min-width:0;background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer;font:inherit}.dock-cover{width:44px;height:44px;border-radius:999px;object-fit:cover;background:var(--line);flex:none}.dock-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.dock-title,.dock-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-title{color:var(--fg);font-weight:500}.dock-sub{color:var(--muted);font-size:12px}.dock-open:hover .dock-title{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-hover)}.dock-seek{display:flex;align-items:center;gap:var(--s2);min-width:0}.dock-key{display:flex;align-items:center;gap:var(--s2);color:var(--muted);font-size:12px;white-space:nowrap}.dock-actions,.transport{display:flex;align-items:center;gap:4px}.pbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:none;border:0;color:var(--muted);cursor:pointer;text-decoration:none;transition:color .16s var(--ease),background-color .16s var(--ease)}.pbtn:hover:not(:disabled){color:var(--fg);background:var(--hover)}.pbtn:disabled{opacity:.35;cursor:default}.pbtn.primary{width:44px;height:44px;background:var(--fg);color:var(--bg)}.pbtn.primary:hover:not(:disabled){background:var(--fg);opacity:.88}.ptime{font-size:12px;color:var(--muted);white-space:nowrap;min-width:36px;text-align:center}.pseek{flex:1;position:relative;height:36px;cursor:pointer;display:flex;align-items:center;touch-action:none;min-width:120px}.wavemask{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.wave-rest{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--wave-rest)}.wave-done{position:absolute;left:0;top:0;bottom:0;background:var(--signal)}.pseek:hover .wave-rest{background:var(--muted)}.pbar-rail{position:absolute;left:0;right:0;height:2px;background:var(--line-hover);border-radius:2px}.pbar-fill{position:absolute;left:0;height:2px;background:var(--signal);border-radius:2px;pointer-events:none}.pbar-knob{position:absolute;width:2px;top:4px;bottom:4px;border-radius:2px;background:var(--fg);transform:translate(-1px) scaleY(0);transition:transform .18s var(--ease);pointer-events:none}.pseek:hover .pbar-knob,.pseek:focus-visible .pbar-knob,.pseek.scrubbing .pbar-knob{transform:translate(-1px) scaleY(1)}@media (max-width: 1100px){.dock{grid-template-columns:minmax(160px,240px) auto minmax(0,1fr) auto}.dock-key{display:none}}.toast-region{position:fixed;z-index:var(--z-sheet);left:50%;transform:translate(-50%);bottom:var(--s3);pointer-events:none}.app.has-dock .toast-region{bottom:calc(var(--s3) + 72px + var(--s1) * 2)}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--s3);max-width:min(560px,calc(100vw - 2 * var(--s3)));padding:10px 10px 10px 18px;border-radius:999px;background:var(--fg);color:var(--bg);box-shadow:var(--glass-shadow);animation:toast-in .22s var(--ease)}.toast span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.toast button{flex:none;border:0;border-radius:999px;padding:6px 12px;cursor:pointer;background:transparent;color:inherit;font:inherit;font-weight:600}.toast button:hover{background:color-mix(in srgb,var(--bg) 10%,transparent)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);background:var(--scrim);display:grid;place-items:center;padding:var(--s3)}.sheet{width:min(480px,100%);max-height:calc(100vh - 2 * var(--s3));overflow-y:auto;padding:var(--s3);border-radius:20px;background:var(--bg-raise);border:1px solid var(--line);box-shadow:var(--glass-shadow)}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s2)}.sheet-head h2{margin:0;font-size:16px;font-weight:500;color:var(--fg)}.keys{margin:0;display:grid}.keys>div{display:grid;grid-template-columns:120px 1fr;gap:var(--s2);align-items:center;padding:10px 0;border-top:1px solid var(--line)}.keys dt{display:flex;gap:4px}.keys dd{margin:0;color:var(--muted)}kbd{min-width:24px;padding:3px 7px;border:1px solid var(--line-hover);border-radius:6px;font:inherit;font-size:12px;color:var(--fg);text-align:center}.btn.icon{display:inline-flex;align-items:center;justify-content:center}.btn.icon.on{color:var(--accent);border-color:var(--accent-soft)}.tag.src{margin-left:6px;opacity:.75;text-transform:lowercase}.btn.sm.icon{padding:4px 6px}.chev{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;color:var(--dim);cursor:pointer;width:18px;height:18px;padding:0;flex:0 0 18px}.chev:hover{color:var(--accent)}.kbtn{display:flex;align-items:center;gap:8px;margin:0 14px 18px;padding:7px 9px;border-radius:5px;cursor:pointer;text-align:left;background:var(--panel);border:1px solid var(--line);color:var(--muted);font-size:12px;width:calc(100% - 28px)}.kbtn:hover{border-color:var(--dim);color:var(--text)}.kbtn .grow{flex:1}kbd{font:600 12px/1 var(--mono);color:var(--dim);padding:2px 4px;border:1px solid var(--line);border-bottom-width:2px;border-radius:3px}.filt{padding:3px 14px;display:flex;align-items:center;gap:6px}.filt label{font:600 12px/1.5 var(--mono);color:var(--dim);flex:1}.filt select,.filt input{background:var(--panel);border:1px solid var(--line);border-radius:4px;color:var(--text);font:600 12px/1.4 var(--mono);padding:4px 5px;outline:none;min-width:0}.filt select{width:100%}.filt input[type=number]{width:52px;-moz-appearance:textfield}.filt input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.filt input[type=checkbox]{accent-color:var(--accent);margin:0}.filt select:focus,.filt input:focus{border-color:var(--accent)}.sidebar .filt+h4,.sidebar .stat+h4{margin-top:18px}.sidebar h4 .clear{float:right;background:none;border:0;color:var(--dim);font-size:12px;letter-spacing:.06em;cursor:pointer;padding:0;text-transform:none}.sidebar h4 .clear:hover{color:var(--accent)}.theme{display:flex;align-items:center;gap:8px;margin:14px 14px 0;background:none;border:1px solid var(--line);border-radius:5px;color:var(--muted);cursor:pointer;padding:6px 9px;font-size:12px;width:calc(100% - 28px)}.theme:hover{color:var(--text);border-color:var(--dim)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh}.search{width:min(880px,92vw);max-height:80vh;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line-hard);border-radius:8px;box-shadow:0 24px 60px #00000073;overflow:hidden}.search .sbar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--dim)}.search input{flex:1;background:none;border:0;outline:none;color:var(--strong);font-size:16px;font-family:inherit}.search input::placeholder{color:var(--dim)}.search .sbody{overflow-y:auto;flex:1}.search .shint{padding:8px 16px 10px;color:var(--dim);font-size:12px}.search .shint b{color:var(--muted)}.split{flex:1;display:flex;min-height:0}.stations{width:250px;flex:none;border-right:1px solid var(--line);overflow-y:auto;padding-bottom:56px}.station{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;border:0;background:none;color:var(--text);font-size:13.5px;text-align:left;cursor:pointer}.station:hover{background:var(--hover)}.station.on{color:var(--strong);background:var(--panel)}.station.off{opacity:.5}.station .acts{display:none;gap:2px}.station:hover .acts{display:flex}.station .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#e5484d;margin-right:6px}.ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.platform{flex:none;font:700 12px/1 var(--mono);color:var(--dim);border:1px solid var(--line-hard);border-radius:3px;padding:3px 4px}.row.miss{opacity:.62}.row.miss .title{color:var(--muted)}.state{font-size:12px;color:var(--muted);min-width:140px;text-align:right}.seg{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center;padding:var(--s1) var(--s3) var(--s2)}.seg .line{flex:1}.seg button,.seg select{min-height:32px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.seg select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.seg button:hover,.seg select:hover{border-color:var(--line-hover);color:var(--fg)}.seg button.on,.seg select.on{border-color:var(--fg);color:var(--fg)}.station .grow{flex:1}.shelf{padding:var(--s3) var(--s3) var(--s1)}.shelf-head{display:flex;align-items:center;gap:var(--s2);padding-bottom:var(--s2)}.shelf-head h2{margin:0;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.shelf-head .count{color:var(--muted);font-size:12px}.shelf-head .line{flex:1;height:1px;background:var(--line)}.shelf-all{color:var(--muted);font-size:13px;text-decoration:none}.shelf .rrow,.shelf .trk{margin:0 calc(-1 * var(--s3))}.shelf .erow{margin:0 calc(-1 * var(--s2))}.shelf-all:hover{color:var(--fg)}.strip{display:flex;gap:var(--s3);overflow-x:auto;padding-bottom:var(--s1);scrollbar-width:none}.card{flex:0 0 152px;width:152px}.card-art{display:block;padding:0;border:0;background:none;cursor:pointer;border-radius:8px}.card img{width:152px;height:152px;border-radius:8px;object-fit:cover;background:var(--line);display:block;transition:opacity .15s var(--ease)}.card-art:hover img{opacity:.85}.card-title{margin-top:var(--s1);font-size:14px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-title a,.card-play{color:inherit;text-decoration:none;padding:0;border:0;background:none;font:inherit;cursor:pointer}.card-title a:hover,.card-play:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-hover)}.card-sub{font-size:12px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero{display:flex;gap:var(--s4);align-items:flex-end;padding:var(--s4) var(--s3) var(--s3)}.hero-art{width:240px;height:240px;border-radius:14px;object-fit:cover;background:var(--line);flex:none}.hero-art-blank{background:var(--line)}.hero-body{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--s1);min-width:0;padding-bottom:4px}.hero-eyebrow{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-variation-settings:"wdth" 112}.hero-title{margin:0;color:var(--fg);font-size:clamp(30px,4.6vw,64px);line-height:.98;font-weight:800;text-transform:uppercase;letter-spacing:-.015em;font-variation-settings:"wdth" 125;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hero-meta{font-size:14px;color:var(--muted)}.hero-fact{white-space:nowrap;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.hero-play{align-self:flex-start}.hero-ghost .ghost-line{display:block;height:12px;border-radius:6px;background:var(--hover)}.hero-ghost .ghost-line.tall{height:44px}.ghost-line.w20{width:20%}.ghost-line.w40{width:40%}.ghost-line.w60{width:60%}.ghost-row{height:56px;margin:0 var(--s3);border-bottom:1px solid var(--line)}@media (max-width: 720px){.hero{flex-direction:column;align-items:stretch;gap:var(--s3);padding:var(--s2) var(--s2) var(--s3)}.hero-art{width:100%;height:min(calc(100vw - 2 * var(--s2)),36svh)}.top-page .hero-art{display:none}.hero-title{font-size:clamp(28px,9vw,40px)}.hero-actions>*{flex:1 1 0;justify-content:center;min-height:44px}.shelf{padding-left:var(--s2);padding-right:var(--s2)}.shelf .rrow,.shelf .trk,.shelf .erow{margin:0 calc(-1 * var(--s2))}.page-title,.empty{padding-left:var(--s2);padding-right:var(--s2)}}.erow{display:flex;align-items:center;gap:var(--s2);min-height:56px;padding:var(--s1) var(--s2);border-radius:10px;color:inherit;text-decoration:none}a.erow:hover{background:var(--hover)}.erow-num{width:28px;flex:none;color:var(--muted);font-size:13px;text-align:right}.erow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.erow-title,.erow-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.erow-title{color:var(--fg);font-size:14px;font-weight:500;padding:0;border:0;background:none;font-family:inherit;text-align:left}button.erow-title{cursor:pointer}button.erow-title:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-hover)}.erow-sub{color:var(--muted);font-size:13px}.erow .tmeta{color:var(--muted);font-size:13px;white-space:nowrap}.echip{display:inline-flex;align-items:center;gap:var(--s1);flex:none;max-width:240px;min-height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--line);color:var(--fg);text-decoration:none;font-size:13px;white-space:nowrap}.echip:hover{border-color:var(--line-hover);background:var(--hover)}.echip-name{overflow:hidden;text-overflow:ellipsis}.echip .count{color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s2)}.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line-hover)}.btn.ghost:hover:not(:disabled){background:var(--hover);opacity:1}.fetch-all{display:inline-flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.fetch-note{font-size:12px;color:var(--muted)}.fetch-note.err{color:var(--danger)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:var(--s3) var(--s2);padding:var(--s1) 0 var(--s2)}.chart-card{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit;min-width:0}.chart-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:var(--line);margin-bottom:var(--s1);transition:opacity .15s var(--ease)}.chart-card:hover img{opacity:.85}.chart-card b{font-size:14px;font-weight:500;color:var(--fg);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chart-card-sub,.chart-card-genres,.chart-card-meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .reason{font-size:12px;color:var(--muted);font-style:italic;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note{margin:8px 16px 0;font-size:12px;color:var(--muted)}.lib-page{display:flex;flex-direction:column;min-height:0}.lib-split{flex:1;display:flex;min-height:0}.lib-list{flex:1;min-width:0;overflow-y:auto}.lib-row{display:grid;grid-template-columns:minmax(0,1fr) auto 44px 52px;align-items:center;gap:var(--s2);width:100%;min-height:56px;padding:var(--s1) var(--s3);border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.lib-row:hover{background:var(--hover)}.lib-row.sel{background:var(--hover);box-shadow:inset 2px 0 0 var(--fg)}.lib-row-main{min-width:0;display:flex;flex-direction:column;gap:2px}.lib-row-main .title,.lib-row-main .sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-row-main .title{color:var(--fg);font-size:14px;font-weight:500}.lib-row-main .sub{color:var(--muted);font-size:13px}.lib-row .tnum{color:var(--muted);font-size:13px;text-align:right}.lib-row-tags{display:flex;gap:4px;align-items:center}.lib-more{margin:14px 16px}.lib-fn{font-size:12px;font-weight:500;line-height:1;padding:4px 9px;border-radius:999px;border:1px solid currentColor;background:none;text-transform:lowercase}.lib-fn.launch{color:#60a5fa}.lib-fn.tunnel{color:var(--signal)}.lib-fn.vortex{color:var(--danger)}[data-theme=light] .lib-fn.launch{color:#1d4ed8}.lib-card{width:380px;flex:none;overflow-y:auto;padding:18px 16px 120px;border-left:1px solid var(--line);background:var(--panel)}.lib-card h2{margin:6px 0 2px;font-size:19px;color:var(--strong);letter-spacing:-.02em}.lib-card-sub{font-size:12.5px;color:var(--muted)}.lib-card-sub em{font-style:normal;color:var(--dim)}.lib-card-keys{display:flex;align-items:center;gap:8px;margin:12px 0}.lib-audio{width:100%;height:32px;margin-bottom:10px}.lib-text{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--dim)}.lib-styles{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.lib-filed{font-size:12px;color:var(--dim)}.lib-similar-head{display:block;margin:18px 0 6px}.lib-similar{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 34px 30px;align-items:center;gap:8px;padding:6px 0;border:0;border-top:1px solid var(--line);background:none;color:var(--muted);font-size:12px;text-align:left;cursor:pointer}.lib-similar:hover{color:var(--strong)}.lib-similar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-similar-name b{color:var(--text);font-weight:600}.lib-similar .bpm{font-size:12px}.lib-clusters{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;background:var(--line)}.lib-cluster{background:var(--bg);padding:14px 16px}.lib-cluster header{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}.lib-cluster header .eyebrow{grid-column:1 / -1}.lib-cluster input{border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--strong);padding:7px 9px;font-size:13px;font-weight:700}.lib-cluster input:focus{outline:none;border-color:var(--fg)}.lib-cluster ol{margin:10px 0 0;padding-left:18px;font-size:12px;color:var(--muted);line-height:1.7}.lib-cluster ol b{color:var(--text);font-weight:600}@media (max-width: 860px){.lib-split{flex-direction:column}.lib-card{width:auto;border-left:0;border-top:1px solid var(--line);max-height:55vh}.lib-row{grid-template-columns:minmax(0,1fr) 44px 40px}.lib-row-tags{display:none}}.group.lib-folder{position:sticky;top:0;z-index:1;max-width:760px;padding-top:var(--s2);background:var(--bg)}.lib-list-row{grid-template-columns:minmax(0,1fr);max-width:760px}.lib-off{color:var(--dim);font-size:12px}.lib-list-head{display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3) var(--s2)}.lib-list-head .lib-row-main{flex:1}.dl-menu{position:relative}.dl-menu summary{list-style:none;cursor:pointer}.dl-menu .header-popover{background:var(--panel);min-width:220px}.dl-note{margin:4px 12px 6px;max-width:26ch;color:var(--muted);font-size:12px;line-height:1.4}.dl-menu summary::-webkit-details-marker{display:none}.dl-menu a{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:8px;color:var(--fg);text-decoration:none;font-size:13px}.dl-menu a span{color:var(--muted)}.dl-menu a:hover{background:var(--hover)}@media (max-width: 720px){.lib-list-head{flex-wrap:wrap}.lib-list-head .lib-row-main{order:3;flex-basis:100%}.lib-list-head .lib-row-main .sub{white-space:normal}.lib-list-head .dl-menu{margin-left:auto}.lib-list-head .btn,.dl-menu summary,.dl-menu a{min-height:44px;display:inline-flex;align-items:center}.dl-menu a{display:flex}}.tag-rows{display:flex;flex-direction:column;gap:10px}.tag-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;align-items:start}.tag-row-name{font:600 12px/24px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.tag-row.moment{opacity:.7}.tag-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{font:600 12.5px/1 inherit;font-family:inherit;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--dim);cursor:pointer}.chip:hover{color:var(--text);border-color:var(--muted)}.chip.sugg{color:var(--accent);border-color:var(--accent);border-style:dashed}.chip.on{background:var(--accent);border-color:var(--accent);color:#04261b}.chip.on.launch{background:#2b6cb0;border-color:#2b6cb0;color:#eaf3ff}.chip.on.vortex{background:#c0392b;border-color:#c0392b;color:#fff0ee}.chip.add,.chip.more{color:var(--muted);border-style:dashed}.chip-add{width:110px;font-size:12.5px;padding:5px 9px;border-radius:999px;border:1px solid var(--fg);background:var(--panel);color:var(--strong)}.chip-add:focus{outline:none}.chip-err{font-size:12px;color:#e0695c}.tagger{flex:1;overflow-y:auto;padding:16px}.tagger-bar{display:flex;align-items:center;gap:12px;max-width:640px;margin:0 auto 12px}.tagger-bar select{border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--text);padding:6px 8px}.tagger-left{font:600 12px/1 var(--mono);color:var(--muted);margin-left:auto}.tagger-note{font-size:12px;color:var(--dim)}.tagger-err{max-width:640px;margin:0 auto 10px;color:#e0695c;font-size:12px}.tag-card{max-width:640px;margin:0 auto;padding:20px 20px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.tag-wave{position:relative;height:56px;margin:14px 0 6px;cursor:pointer;display:flex;align-items:center;touch-action:none}.tag-wave:hover .wave-rest{background:var(--wave-rest-hover)}.tag-wave-mark{position:absolute;left:40%;top:0;bottom:0;width:1px;background:var(--accent);opacity:.5;pointer-events:none}.tag-card h2{margin:6px 0 2px;font-size:22px;color:var(--strong);letter-spacing:-.02em}.tag-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.tag-actions .primary{min-width:96px}.tag-actions .btn:not(.primary){background:none;color:var(--dim);box-shadow:inset 0 0 0 1px var(--line-hard)}.tag-actions kbd{font:600 12px/1 var(--mono);opacity:.6;margin-left:4px}.lib-card-tags{margin:4px 0 14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.tag.mine{color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#04261b}.btn.primary:disabled{opacity:.5}.tracks{padding:var(--s1) 0 var(--s2)}.trk{display:grid;align-items:center;column-gap:var(--s2);grid-template-columns:32px minmax(0,1.4fr) minmax(0,1fr) 44px 52px 36px minmax(66px,auto);min-height:48px;padding:6px var(--s3);border-radius:8px}.trk.with-cover{grid-template-columns:32px 36px minmax(0,1.4fr) minmax(0,1fr) 44px 52px 36px minmax(66px,auto)}.trk:hover{background:var(--hover)}.trk .pos{position:relative;width:32px;height:32px;display:grid;place-items:center;border:0;background:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0}.trk .pos svg{display:none;color:var(--fg)}.trk:hover .pos:not(:disabled) span,.trk .pos:focus-visible span{display:none}.trk:hover .pos:not(:disabled) svg,.trk .pos:focus-visible svg{display:block}.trk.playing .pos span{color:var(--signal)}.trk .tcover{width:36px;height:36px;border-radius:4px;object-fit:cover;background:var(--line);display:block}.trk .ttitle{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px}.trk .tname{min-width:0;max-width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:var(--fg);font-size:14px;font-weight:450;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trk.playing .tname{font-weight:600}.trk .tnote{flex-basis:100%;color:var(--muted);font-size:12px}.trk .tartist{min-width:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trk .tnum{color:var(--muted);font-size:13px;text-align:right;white-space:nowrap}.trk .tactions{display:flex;gap:2px;justify-content:flex-end}.trk.miss{color:var(--muted)}.trk.miss .ttitle{color:var(--muted);font-size:14px}.trk.miss .tnote{grid-column:span 4;flex-basis:auto;text-align:right}.trk.miss .tcover{border:1px dashed var(--line);background:none}.trk-status{padding:var(--s2) var(--s3) var(--s2) calc(var(--s3) + 44px);color:var(--muted);font-size:13px}.mark{color:var(--muted);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-variation-settings:"wdth" 112}.move{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.move.up{color:var(--fg)}.move.down{color:var(--muted)}.pill-row{display:flex;flex-wrap:nowrap;gap:var(--s1);overflow-x:auto;scrollbar-width:none;padding:0 var(--s3) var(--s2)}.pill-row>*{flex:none}.movers{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s3);margin:0;padding:0 var(--s3) var(--s3);font-size:14px}.movers a{color:var(--fg);text-decoration:none;display:inline-flex;gap:6px;align-items:baseline}.movers a:hover{text-decoration:underline;text-underline-offset:3px}.keytext{display:inline-flex;align-items:center;gap:6px;color:var(--fg)}.keytext i{width:6px;height:6px;border-radius:50%;flex:none}.keytext.fits{margin:-2px -6px;padding:2px 6px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--muted)}.ibtn{width:32px;height:32px;display:inline-grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer;text-decoration:none}.ibtn:hover{color:var(--fg);background:var(--hover)}.ibtn.kept{color:var(--signal)}.group{display:flex;align-items:center;gap:var(--s2);margin:0;padding:var(--s4) var(--s3) var(--s1);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-variation-settings:"wdth" 112;color:var(--muted)}.group:first-child{padding-top:var(--s2)}.group a{color:var(--fg)}.group .line{flex:1;height:1px;background:var(--line)}.group .count{color:var(--muted)}.entity-links a{color:inherit;text-decoration:none}.entity-links a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.rrow{position:relative;display:grid;align-items:center;column-gap:var(--s3);grid-template-columns:44px minmax(0,2fr) minmax(0,1fr) 56px 64px 52px 36px 112px;min-height:68px;padding:var(--s2) var(--s3);border-radius:10px}.rrow.grouped{grid-template-columns:44px minmax(0,3fr) 56px 64px 52px 36px 112px}.rrow:hover,.rrow.open{background:var(--hover)}.rrow .row-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border:0;border-radius:inherit;background:none;cursor:pointer}.rrow>:not(.row-hit){position:relative;z-index:1}.rrow .rlabel,.rrow .rnum,.rrow .rmain{pointer-events:none}.rrow [title],.rrow a,.rrow button{pointer-events:auto}.rcover button{position:relative;display:block;padding:0;border:0;background:none;cursor:pointer;border-radius:6px}.rcover img,.rcover .noart{display:block;width:44px;height:44px;border-radius:6px;object-fit:cover;background:var(--line)}.rcover svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;color:#fff;opacity:0;filter:drop-shadow(0 1px 6px rgba(0,0,0,.6));transition:opacity .15s var(--ease)}.rcover button:hover svg,.rcover button:focus-visible svg{opacity:1}.rrow.playing .rcover:before{content:"";position:absolute;left:-15px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--signal)}.rmain{min-width:0;display:flex;flex-direction:column;gap:2px}.rtitle{max-width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:var(--fg);font-size:15px;font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}span.rtitle{cursor:default}.rrow.playing .rtitle{font-weight:650}.rsub,.rwhy{min-width:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsub .mark{margin-left:8px}.rlabel{min-width:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;gap:8px}.rnum{color:var(--muted);font-size:13px;text-align:right;white-space:nowrap}.ractions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s1)}.ractions .done{color:var(--muted);display:inline-grid;place-items:center;width:24px}.ractions .zip{padding:6px 8px;border-radius:6px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:500;letter-spacing:.08em;opacity:0;transition:opacity .15s var(--ease)}.ractions .zip:hover{color:var(--fg);background:var(--hover)}.rrow:hover .zip,.rrow:focus-within .zip,.rrow.open .zip{opacity:1}.ibtn.play{color:var(--fg);border:1px solid var(--line-hover)}.ibtn.play:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.tabbar,.more-btn,.rline{display:none}.more-sheet{padding:var(--s1) var(--s2) calc(var(--s2) + env(safe-area-inset-bottom))}.sheet-scrim.bottom{place-items:end stretch;padding:0}.sheet-scrim.bottom .sheet{width:100%;border-radius:20px 20px 0 0;border-bottom:0;animation:sheet-up .24s var(--ease)}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}}.more-title{padding:var(--s2) var(--s2) var(--s1);color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-item{display:flex;align-items:center;width:100%;min-height:48px;padding:0 var(--s2);border:0;border-radius:12px;background:none;color:var(--fg);font:inherit;font-size:15px;text-align:left;text-decoration:none;cursor:pointer}.more-item:hover,.more-item:focus-visible{background:var(--hover)}.more-item:last-child{color:var(--muted)}.more-note{padding:var(--s1) var(--s2) var(--s2);color:var(--muted);font-size:13px}@media (max-width: 720px){:root{--tabbar-h: calc(60px + env(safe-area-inset-bottom)) }.app-header{height:56px;gap:var(--s2);padding:0 var(--s2)}.app-nav,.header-search{display:none}.app-tools .crate-badge,.header-menu summary{min-height:44px;display:inline-flex;align-items:center}.header-menu summary{justify-content:center;min-width:44px}.tabbar{position:fixed;z-index:var(--z-dock);left:0;right:0;bottom:0;height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:var(--glass-bg);border-top:1px solid var(--glass-line);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:44px;border:0;background:none;color:var(--muted);font:inherit;font-size:12px;text-decoration:none;cursor:pointer}.tabbar .on{color:var(--fg)}.main :is(.list,.stations,.lib-list,.lib-clusters,.lib-card,.tagger){padding-bottom:calc(var(--tabbar-h) + var(--s3))}.app.has-dock .main :is(.list,.stations,.lib-list,.lib-clusters,.lib-card,.tagger){padding-bottom:calc(var(--tabbar-h) + 64px + var(--s4))}.dock{left:var(--s1);right:var(--s1);width:auto;transform:none;bottom:calc(var(--tabbar-h) + var(--s1));height:64px;padding:0 6px 0 10px;border-radius:16px;gap:var(--s1);grid-template-columns:minmax(0,1fr) auto auto}.dock-cover{width:44px;height:44px;border-radius:8px}.dock-open{min-height:44px}.dock .transport .pbtn:not(.primary),.dock-seek,.dock-key,.dock-actions a{display:none}.dock .pbtn.primary,.dock .ibtn{width:44px;height:44px}.app.has-dock .toast-region{bottom:calc(var(--tabbar-h) + 64px + var(--s2))}.toast-region{bottom:calc(var(--tabbar-h) + var(--s1))}.filter-row{flex-wrap:wrap;row-gap:var(--s2);padding-left:var(--s2);padding-right:var(--s2)}.filters{margin-left:0;width:calc(100% + 2 * var(--s2));margin-right:calc(-1 * var(--s2));flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-right:var(--s2)}.filters>*{flex:none}.filters select,.filters input:not([type=checkbox]),.fchip{min-height:44px}.view-tabs a{font-size:20px;min-height:44px;display:inline-flex;align-items:center}.pill-row{padding-left:var(--s2);padding-right:var(--s2)}.pill-row .fchip{min-height:44px}.movers{padding-left:var(--s2);padding-right:var(--s2)}.view-tabs{gap:var(--s2)}.view-tabs a{min-width:44px;justify-content:center}.day-step button{width:44px;height:44px}.wordmark{min-height:44px;display:inline-flex;align-items:center}.rrow .rsub a{pointer-events:none}.list-head,.group{padding-left:var(--s2);padding-right:var(--s2)}.rrow,.rrow.grouped{grid-template-columns:56px minmax(0,1fr) auto;column-gap:var(--s2);padding:var(--s1) var(--s2);min-height:76px}.rrow .rlabel,.rrow .rnum,.rrow .zip,.rrow .ractions .done{display:none}.rcover img,.rcover .noart{width:56px;height:56px}.rcover svg{display:none}.rline{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rrow.playing .rcover:before{left:-10px}.ractions{gap:0}.more-btn{display:inline-flex}.ibtn,.ibtn.play{width:44px;height:44px}.trk,.trk.with-cover{grid-template-columns:44px minmax(0,1fr) auto auto;grid-template-rows:auto auto;column-gap:var(--s1);row-gap:2px;padding:4px var(--s2) 4px 0}.trk .pos{grid-row:1 / 3;min-height:44px;width:44px}.trk .tcover,.trk .ttime{display:none}.trk .ttitle{grid-column:2;grid-row:1}.trk .tartist{grid-column:2;grid-row:2;font-size:12px}.trk .tnum{grid-column:3;font-size:12px}.trk .tkey{grid-row:1}.trk .tbpm{grid-row:2}.trk .tactions{grid-column:4;grid-row:1 / 3;gap:0}.trk .tactions .dl{display:none}.trk.miss{grid-template-columns:44px minmax(0,1fr);padding-right:var(--s2)}.trk.miss .pos{display:grid;place-items:center}.trk.miss .tnote{grid-column:2;text-align:left}.trk-status{padding-left:44px}}code{font:inherit;color:var(--fg);padding:1px 6px;border-radius:6px;background:var(--hover);border:1px solid var(--line)}.trk .twave{grid-column:1 / -1;width:100%;height:18px;margin-top:2px;object-fit:fill;opacity:.35;pointer-events:none}.trk.playing .twave{opacity:.7}.open-release{display:inline-flex;align-items:center;min-height:44px;margin-left:calc(var(--s3) + 32px + var(--s2));color:var(--muted);font-size:13px;text-decoration:none}.open-release:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}a.rtitle{display:block;color:var(--fg);text-decoration:none}a.rtitle:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-hover)}@media (max-width: 720px){.open-release{margin-left:44px}.trk .twave{grid-row:3}}.np-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-now);background:var(--bg);color:var(--fg);overflow-y:auto;overscroll-behavior:contain;animation:np-up .24s cubic-bezier(.2,.8,.2,1)}.np-sheet:focus{outline:none}.main h1[tabindex="-1"]:focus{outline:none}@keyframes np-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.np-sheet{animation:none}}.np-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);width:min(1120px,100%);margin:0 auto;padding:var(--s2) var(--s3) 0}.np-eyebrow{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-variation-settings:"wdth" 112;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.np-close{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:none;color:var(--fg);cursor:pointer}.np-close:hover{border-color:var(--line-hover)}.np-body{width:min(1120px,100%);margin:0 auto;padding:var(--s3)}.np-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s3)}.np-card-wrap{position:relative;min-width:0}.np-card{position:relative;display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:var(--s3);background:var(--bg)}.np-sleeve{width:120px;height:120px;border-radius:10px;object-fit:cover;background:var(--line)}.np-id{min-width:0;display:flex;flex-direction:column;gap:var(--s1)}.np-title{margin:0;color:var(--fg);font-size:clamp(28px,3.4vw,48px);line-height:.98;font-weight:800;text-transform:uppercase;letter-spacing:-.015em;font-variation-settings:"wdth" 125;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.np-facts{font-size:14px;color:var(--muted)}.np-facts a{color:inherit}.np-facts a:hover{color:var(--fg)}.np-controls{display:flex;align-items:center;gap:var(--s3)}.np-transport{display:flex;align-items:center;gap:4px}.np-nopreview{font-size:12px;color:var(--muted);padding:0 var(--s1)}.np-decide{display:flex;gap:var(--s1)}.np-decide .btn{min-width:96px;min-height:44px;justify-content:center}.np-keep.kept{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.np-wave{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s4)}.np-wave .np-seek{height:120px}.np-wave .np-seek:not(.wave){height:44px}.np-open-release{display:inline-block;margin-top:var(--s2);font-size:14px;color:var(--muted)}.np-open-release:hover{color:var(--fg)}.np-pills{list-style:none;margin:var(--s2) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s1)}.np-pill{font-size:12px;font-weight:600;color:var(--dim);padding:6px 10px;border:1px solid var(--line);border-radius:999px}.np-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s4)}.np-list ol{list-style:none;margin:0;padding:0}.np-h{margin:0 0 var(--s1);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-variation-settings:"wdth" 112}.np-row{width:100%;min-height:44px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--s2);padding:6px var(--s1);border:0;border-radius:6px;background:none;color:var(--fg);font:inherit;font-size:14px;text-align:left;cursor:pointer}.np-row:hover{background:var(--hover)}.np-pos,.np-time{color:var(--muted);font-size:13px}.np-row.playing .np-pos{color:var(--signal)}.np-row.playing .np-name{font-weight:600}.np-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.np-sub{margin-left:var(--s1);color:var(--muted);font-size:13px}.np-sub:before{content:"· "}.np-then{margin:var(--s1) 0 0;padding:0 var(--s1);font-size:13px;color:var(--muted)}.np-fits{grid-column:1 / -1;scroll-margin-top:var(--s3)}.np-fit{min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s2);padding:6px var(--s1);font-size:14px}.np-why{display:block;color:var(--muted);font-size:13px}.np-fit .tnum{color:var(--muted);font-size:13px}.np-none{margin:0;padding:0 var(--s1);font-size:13px;color:var(--muted)}.np-era{grid-column:1 / -1}.np-era .np-fit{grid-template-columns:minmax(0,1fr) auto auto auto;padding-right:0}.np-era-play{display:block;min-width:0;overflow:hidden;min-height:44px;padding:0;border:0;border-radius:6px;background:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.np-era-play .np-name{display:block}.np-era-play:hover .np-name{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}@media (max-width: 720px){.np-top{padding:var(--s1) var(--s2) 0}.np-body{padding:var(--s2) var(--s2) calc(152px + env(safe-area-inset-bottom))}.np-head{grid-template-columns:minmax(0,1fr);gap:var(--s2);align-items:start}.np-card{grid-template-columns:64px minmax(0,1fr);gap:var(--s2);align-items:start}.np-sleeve{width:64px;height:64px;border-radius:8px}.np-title{font-size:26px;-webkit-line-clamp:3}.np-facts{font-size:13px}.np-controls{position:fixed;left:0;right:0;bottom:0;z-index:1;display:grid;gap:var(--s1);justify-items:center;padding:var(--s1) var(--s2) calc(var(--s2) + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}.np-transport .pbtn{width:48px;height:48px}.np-decide{width:100%;display:grid;grid-template-columns:1fr 1fr}.np-decide .btn{min-height:48px}.np-wave{margin-top:var(--s3);gap:var(--s1)}.np-wave .np-seek{height:96px}.np-wave .np-seek:not(.wave){height:44px}.np-lists{grid-template-columns:minmax(0,1fr);margin-top:var(--s3)}}.view-count{margin-left:4px;color:var(--muted);font-size:14px;font-weight:500;letter-spacing:0}.quiet-line{margin:0;padding:0 var(--s3) var(--s2);color:var(--muted);font-size:13px}.quiet-line a{color:inherit}.quiet-line a:hover{color:var(--fg)}.inbox-head{position:sticky;top:0;z-index:2;background:var(--bg);display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--s2) var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}.inbox-title{margin:0;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-variation-settings:"wdth" 112}.inbox-since{margin:var(--s1) 0 0;font-size:14px;color:var(--fg)}.inbox-bar{display:flex;align-items:center;gap:var(--s2)}.inbox-left{font-size:14px;color:var(--fg);min-width:64px;text-align:right}.inbox-browse{font-size:13px;color:var(--muted)}.inbox-browse:hover{color:var(--fg)}.inbox-item{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease,opacity .2s ease}.inbox-item>div{overflow:hidden;min-height:0}.inbox-item.gone{grid-template-rows:0fr;opacity:0;pointer-events:none}@media (prefers-reduced-motion: reduce){.inbox-item{transition:none}}.mark.kept-mark{color:var(--signal);margin-left:8px}.rrow.skipped{opacity:.45}.rrow.skipped:hover{opacity:.8}@media (max-width: 720px){.inbox-head{padding-left:var(--s2);padding-right:var(--s2)}.inbox-bar .btn{min-height:44px}.quiet-line{padding-left:var(--s2);padding-right:var(--s2)}}.summary-head{padding:var(--s4) var(--s3) var(--s3);border-bottom:1px solid var(--line)}.summary-title:focus{outline:none}.summary-counts{margin:var(--s2) 0 0;color:var(--muted);font-size:16px}.summary .list-head{align-items:center}.summary-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);padding:var(--s3);border-top:1px solid var(--line)}.summary-left{color:var(--fg);font-size:14px}.summary-foot .btn{margin-left:auto;text-decoration:none}@media (max-width: 720px){.summary-head,.summary-foot{padding-left:var(--s2);padding-right:var(--s2)}.summary-foot{flex-direction:column;align-items:stretch}.summary-foot .btn{margin-left:0;min-height:44px;justify-content:center}}.swipe-wrap{position:relative}.swipe-under{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 var(--s3);border-radius:10px;background:var(--hover);color:var(--muted);font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;--swipe-p: 0;opacity:calc(.35 + .65 * var(--swipe-p))}.swipe-under span{color:color-mix(in srgb,var(--fg) calc(var(--swipe-p) * 100%),var(--muted))}@media (pointer: coarse){.rrow.swipeable:not(.open){background:var(--bg)}}@media not (pointer: coarse){.swipe-under{display:none}}.swipe-wrap:has(.rrow.open) .swipe-under{display:none}.np-under{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--s2);border-radius:10px;background:var(--hover);visibility:hidden;font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;--swipe-p: 0}.np-under[data-dir=left],.np-under[data-dir=right]{visibility:visible}.np-under span{opacity:calc(.35 + .65 * var(--swipe-p))}.np-under-keep{color:var(--signal)}.np-under-skip{color:color-mix(in srgb,var(--fg) calc(var(--swipe-p) * 100%),var(--muted))}.np-under[data-dir=left] .np-under-keep,.np-under[data-dir=right] .np-under-skip{visibility:hidden}.np-hint{margin:var(--s1) 0 0;color:var(--muted);font-size:13px}button.link{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}button.link:hover,.handoff-line,.handoff-line a{color:var(--fg)}.crate-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding-right:var(--s3)}.crate-head .page-title{padding-right:0}.crate-week{margin-top:var(--s3);border-top:1px solid var(--line)}.tracks.quiet .ttitle,.tracks.quiet .tname{color:var(--muted)}@media (max-width: 720px){.crate-head{padding-right:var(--s2)}}
