.discover[data-v-6f5af948]{width:100%;max-width:960px;margin:var(--space-2) auto 0}.sk-title[data-v-6f5af948]{width:180px;height:16px;margin:0 0 var(--space-4);background:var(--surface-3);border-radius:6px;animation:1.4s ease-in-out infinite sk-pulse-6f5af948;display:block}.hb-shelfgrid[data-v-6f5af948]{gap:var(--space-3);padding:0 0 var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.sk-card[data-v-6f5af948]{gap:var(--space-25);padding:var(--space-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:0;display:flex}.sk-cover[data-v-6f5af948]{border-radius:var(--r-sm);background:var(--surface-3);flex-shrink:0;width:64px;height:64px;animation:1.4s ease-in-out infinite sk-pulse-6f5af948}.sk-body[data-v-6f5af948]{gap:var(--space-15);flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.sk-line[data-v-6f5af948]{border-radius:5px;animation:1.4s ease-in-out infinite sk-pulse-6f5af948}.sk-line--1[data-v-6f5af948]{background:var(--surface-3);width:70%;height:11px}.sk-line--2[data-v-6f5af948]{background:var(--surface-2);width:45%;height:9px}.sk-line--3[data-v-6f5af948]{background:var(--surface-2);width:60%;height:9px}@keyframes sk-pulse-6f5af948{0%,to{opacity:.4}50%{opacity:.9}}@container app (width<=720px){.hb-shelfgrid[data-v-6f5af948]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container app (width<=640px){.discover[data-v-6f5af948]{max-width:100%}.hb-shelfgrid[data-v-6f5af948]{grid-template-columns:1fr}}.hub-page[data-v-6d1ec8fa]{flex-direction:column;min-height:100%;display:flex}.hub-top[data-v-6d1ec8fa]{z-index:30;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--page-px);background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;position:sticky;top:0}.top-word[data-v-6d1ec8fa]{align-items:center;gap:var(--space-2);font-weight:600;font-size:var(--fs-md);letter-spacing:.2px;color:var(--ink);transition:opacity .2s;display:inline-flex}.top-word.hidden[data-v-6d1ec8fa]{opacity:0;pointer-events:none}.top-word .glyph[data-v-6d1ec8fa]{background:var(--accent);width:26px;height:26px;color:var(--on-accent);font-weight:700;font-size:var(--fs-base);border-radius:8px;place-items:center;display:grid}.top-right[data-v-6d1ec8fa]{align-items:center;gap:var(--space-25);margin-left:auto;display:flex}.btn-login[data-v-6d1ec8fa]{align-items:center;gap:var(--space-2);height:38px;padding:0 var(--space-4);border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent);font:600 var(--fs-sm) var(--font-ui);cursor:pointer;white-space:nowrap;border:0;display:inline-flex}.btn-login[data-v-6d1ec8fa]:hover{background:var(--accent-hover)}.btn-login svg[data-v-6d1ec8fa]{width:16px;height:16px}.btn-login.ghost[data-v-6d1ec8fa]{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-2)}.btn-login.ghost[data-v-6d1ec8fa]:hover{border-color:var(--ink-3);color:var(--ink)}.top-user[data-v-6d1ec8fa]{align-items:center;gap:var(--space-2);height:38px;padding:0 var(--space-15) 0 var(--space-3);border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font:500 var(--fs-sm) var(--font-ui);color:var(--ink-2);display:inline-flex}.top-user .av[data-v-6d1ec8fa]{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-ink);font:600 var(--fs-xs) var(--font-mono);border-radius:50%;place-items:center;display:grid}.hub[data-v-6d1ec8fa]{padding:0 var(--page-px) var(--space-10);flex-direction:column;flex:1;display:flex}.hub.is-empty[data-v-6d1ec8fa]{justify-content:flex-start}.hub-discover[data-v-6d1ec8fa]{display:contents}.hub-hero[data-v-6d1ec8fa]{text-align:center;align-items:center;gap:var(--space-25);padding:var(--space-15x) 0 var(--space-8);flex-direction:column;display:flex}.big-word[data-v-6d1ec8fa]{align-items:center;gap:var(--space-4);display:inline-flex}.big-word .glyph[data-v-6d1ec8fa]{background:var(--accent);width:54px;height:54px;color:var(--on-accent);font-weight:700;font-size:var(--fs-xl);box-shadow:var(--shadow-md);border-radius:15px;place-items:center;display:grid}.big-word .w[data-v-6d1ec8fa]{font:600 var(--fs-hero)/1 var(--font-ui);letter-spacing:-1.2px}.hub-hero .tag[data-v-6d1ec8fa]{font:500 var(--fs-base)/1.5 var(--font-mono);color:var(--ink-3);max-width:420px}.searchwrap[data-v-6d1ec8fa]{align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-pill);width:100%;max-width:720px;box-shadow:var(--shadow-md);padding:var(--space-15) var(--space-2) var(--space-15) var(--space-15);margin:0 auto;transition:box-shadow .16s,border-color .16s;display:flex}.searchwrap.focused[data-v-6d1ec8fa]{border-color:var(--accent);box-shadow:var(--shadow-md), 0 0 0 4px var(--accent-soft)}.scope[data-v-6d1ec8fa]{flex:none;position:relative}.scope-btn[data-v-6d1ec8fa]{align-items:center;gap:var(--space-2);height:46px;padding:0 var(--space-3) 0 var(--space-3);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);font:600 var(--fs-sm) var(--font-ui);cursor:pointer;white-space:nowrap;border:0;display:inline-flex}.scope-btn[data-v-6d1ec8fa]:hover{background:var(--surface-3);color:var(--ink)}.scope-btn .chev[data-v-6d1ec8fa]{width:14px;height:14px;color:var(--ink-3);transition:transform .16s}.scope.open .scope-btn .chev[data-v-6d1ec8fa]{transform:rotate(180deg)}.scope-btn .scope-ic[data-v-6d1ec8fa]{width:16px;height:16px;color:var(--ink-2);flex:none;display:inline-flex}.scope-btn .scope-ic[data-v-6d1ec8fa] svg{width:100%;height:100%}.scope-menu[data-v-6d1ec8fa]{z-index:40;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);min-width:180px;box-shadow:var(--shadow-lg);padding:var(--space-15);display:none;position:absolute;top:calc(100% + 8px);left:0}.scope.open .scope-menu[data-v-6d1ec8fa]{display:block}.scope-menu button[data-v-6d1ec8fa]{align-items:center;gap:var(--space-25);text-align:left;width:100%;color:var(--ink-2);font:500 var(--fs-sm) var(--font-ui);padding:var(--space-2) var(--space-25);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;display:flex}.scope-menu button[data-v-6d1ec8fa]:hover{background:var(--surface-2);color:var(--ink)}.scope-menu button.on[data-v-6d1ec8fa]{background:var(--accent-soft);color:var(--accent-ink)}.scope-menu button .ic[data-v-6d1ec8fa]{width:18px;height:18px;color:var(--ink-3);flex:none;display:inline-flex}.scope-menu button .ic[data-v-6d1ec8fa] svg{width:100%;height:100%}.scope-menu button.on .ic[data-v-6d1ec8fa]{color:var(--accent-ink)}.scope-menu button .ml[data-v-6d1ec8fa]{flex:1}.scope-menu button.on .ml[data-v-6d1ec8fa]{font-weight:600}.scope-menu button .cnt[data-v-6d1ec8fa]{font:500 var(--fs-xs)/1 var(--font-mono);color:var(--ink-3);flex:none}.scope-menu button.on .cnt[data-v-6d1ec8fa]{color:var(--accent-ink)}.search-field[data-v-6d1ec8fa]{align-items:center;gap:var(--space-25);padding:0 var(--space-2);flex:1;min-width:0;display:flex}.search-field>svg[data-v-6d1ec8fa]{width:20px;height:20px;color:var(--ink-3);flex:none}.search-field input[data-v-6d1ec8fa]{min-width:0;font:400 var(--fs-input) var(--font-ui);color:var(--ink);background:0 0;border:0;outline:none;flex:1}.search-field input[data-v-6d1ec8fa]::placeholder{color:var(--ink-3)}.clear-q[data-v-6d1ec8fa]{width:30px;height:30px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.clear-q svg[data-v-6d1ec8fa]{width:16px;height:16px}.clear-q[data-v-6d1ec8fa]:hover{background:var(--surface-2);color:var(--ink)}.extras[data-v-6d1ec8fa]{width:100%;max-width:720px;margin:var(--space-6) auto 0}.ex-section[data-v-6d1ec8fa]{margin-bottom:var(--space-6)}.ex-label[data-v-6d1ec8fa]{font:500 var(--fs-xs)/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 var(--space-3)}.qsugs[data-v-6d1ec8fa]{gap:var(--space-2);margin-top:var(--space-15);flex-wrap:wrap;display:flex}.qsug[data-v-6d1ec8fa]{align-items:center;gap:var(--space-15);font:500 var(--fs-sm) var(--font-mono);color:var(--ink-2);background:var(--surface-2);border-radius:var(--r-pill);padding:var(--space-15) var(--space-3);cursor:pointer;border:0;transition:background .14s,color .14s;display:inline-flex}.qsug[data-v-6d1ec8fa]:hover{background:var(--surface-3);color:var(--ink)}.qsug-arrow[data-v-6d1ec8fa]{width:14px;height:14px;color:var(--accent-ink);flex:none}@container app (width<=640px){.hub[data-v-6d1ec8fa],.hub-top[data-v-6d1ec8fa]{padding-left:var(--page-px-mobile);padding-right:var(--page-px-mobile)}.searchwrap[data-v-6d1ec8fa],.extras[data-v-6d1ec8fa]{max-width:100%}.scope-btn .lbl-long[data-v-6d1ec8fa]{display:none}.big-word .w[data-v-6d1ec8fa]{font-size:var(--fs-display)}}.sidebar[data-v-55ebe2b0]{background:var(--surface);border-right:1px solid var(--line);height:100%;padding:var(--space-5) var(--space-4) var(--space-4);gap:var(--space-05);flex-direction:column;display:flex}.sidebar-brand[data-v-55ebe2b0]{align-items:center;gap:var(--space-25);padding:var(--space-1) var(--space-2) var(--space-5);cursor:pointer;text-decoration:none;display:flex}.brand-glyph[data-v-55ebe2b0]{border-radius:var(--r-sm);background:var(--accent);width:30px;height:30px;color:var(--on-accent);font:700 var(--fs-title)/1 var(--font-ui);flex:none;place-items:center;display:grid}.brand-name[data-v-55ebe2b0]{font:600 var(--fs-md)/1 var(--font-ui);letter-spacing:.2px;color:var(--ink)}.nav-section[data-v-55ebe2b0]{margin-bottom:0}.nav-label[data-v-55ebe2b0]{font:500 var(--fs-xs)/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:var(--space-4) var(--space-25) var(--space-2);margin:0}.nav-item[data-v-55ebe2b0]{align-items:center;gap:var(--space-25);padding:var(--space-2) var(--space-25);border-radius:var(--r-sm);color:var(--ink-2);cursor:pointer;font:500 var(--fs-base)/1 var(--font-ui);-webkit-user-select:none;user-select:none;line-height:1;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item[data-v-55ebe2b0]:hover{background:var(--surface-2);color:var(--ink)}.nav-item.is-active[data-v-55ebe2b0]{background:var(--accent-soft);color:var(--accent-ink)}.nav-icon[data-v-55ebe2b0]{flex:none;place-items:center;width:19px;height:19px;display:grid}.nav-icon[data-v-55ebe2b0] svg{width:19px;height:19px}.nav-text[data-v-55ebe2b0]{white-space:nowrap}.nav-count[data-v-55ebe2b0]{font:500 var(--fs-xs)/1 var(--font-mono);color:var(--ink-3);margin-left:auto}.nav-item.is-active .nav-count[data-v-55ebe2b0]{color:var(--accent-ink)}.nav-admin[data-v-55ebe2b0]{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px dashed var(--line-2)}.nav-admin .nav-label[data-v-55ebe2b0]{color:var(--ink-3);padding-top:var(--space-1)}.nav-admin .nav-item[data-v-55ebe2b0]{color:var(--ink-2);border:1px dashed var(--line-2);background:var(--surface-2)}.nav-admin .nav-item[data-v-55ebe2b0]:hover{background:var(--surface-3)}.util-key[data-v-55ebe2b0]{font:600 var(--fs-nano)/1 var(--font-mono);letter-spacing:.1em;color:var(--ink-3);border:1px solid var(--line-2);padding:var(--space-05) var(--space-1);border-radius:4px;margin-left:auto}.sidebar-footer[data-v-55ebe2b0]{padding-top:var(--space-4);gap:var(--space-05);flex-direction:column;margin-top:auto;display:flex}.theme-toggle[data-v-55ebe2b0]{width:100%;font:inherit;background:0 0;border:none}.user-row[data-v-55ebe2b0]{align-items:center;gap:var(--space-25);padding:var(--space-2) var(--space-25);border-radius:var(--r-sm);color:var(--ink-2);font:500 var(--fs-base)/1 var(--font-ui);display:flex}.user-name[data-v-55ebe2b0]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.logout-btn[data-v-55ebe2b0]{padding:var(--space-05);cursor:pointer;color:var(--ink-3);background:0 0;border:none;border-radius:4px;place-items:center;margin-left:auto;transition:color .12s,background .12s;display:grid}.logout-btn[data-v-55ebe2b0]:hover{color:var(--accent-ink)}.logout-btn[data-v-55ebe2b0] svg{width:18px;height:18px}@container (width<=900px){.brand-name[data-v-55ebe2b0],.nav-text[data-v-55ebe2b0],.nav-count[data-v-55ebe2b0],.nav-label span[data-v-55ebe2b0],.util-key[data-v-55ebe2b0]{display:none}.nav-label[data-v-55ebe2b0]{text-align:center;padding:var(--space-4) 0 var(--space-2)}.nav-label[data-v-55ebe2b0]:after{content:"·"}.nav-item[data-v-55ebe2b0]{padding:var(--space-25) 0;justify-content:center}.nav-admin .nav-item[data-v-55ebe2b0]{border-style:dashed}.user-row[data-v-55ebe2b0]{justify-content:center}.user-name[data-v-55ebe2b0]{display:none}.logout-btn[data-v-55ebe2b0]{margin-left:0}}.ld[data-v-433ec4f3]{align-items:center;gap:var(--space-15);display:inline-flex}.ld-btn[data-v-433ec4f3]{border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surface);width:30px;height:30px;color:var(--ink-3);cursor:pointer;flex:none;place-items:center;padding:0;transition:color .14s,border-color .14s,background .14s,opacity .16s;display:grid}.ld-btn svg[data-v-433ec4f3]{pointer-events:none;fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;display:block}.ld-btn.like[data-v-433ec4f3]:hover{color:var(--pos);border-color:var(--pos)}.ld-btn.dislike[data-v-433ec4f3]:hover{color:var(--neg);border-color:var(--neg)}.ld[data-state=liked] .ld-btn.like[data-v-433ec4f3]{background:var(--pos-soft);color:var(--pos-ink);border-color:#0000}.ld[data-state=liked] .ld-btn.like svg[data-v-433ec4f3]{fill:var(--pos-ink);stroke:var(--pos-ink)}.ld[data-state=disliked] .ld-btn.dislike[data-v-433ec4f3]{background:var(--neg-soft);color:var(--neg-ink);border-color:#0000}.player[data-v-4d0f2fa9]{bottom:18px;left:calc(var(--sidebar-w,232px) + 24px);z-index:1000;max-width:1200px;margin:0 auto;position:fixed;right:24px}.pl-shell[data-v-4d0f2fa9]{align-items:center;gap:var(--space-4);padding:14px var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:flex;container:player/inline-size}.pl-play[data-v-4d0f2fa9]{background:var(--accent);width:36px;height:36px;color:var(--on-accent);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;transition:background .12s;display:grid}.pl-play[data-v-4d0f2fa9]:hover{background:var(--accent-hover)}.pl-play svg[data-v-4d0f2fa9]{width:18px;height:18px}.pl-next[data-v-4d0f2fa9]{width:30px;height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items:center;transition:color .12s;display:grid}.pl-next[data-v-4d0f2fa9]:hover{color:var(--ink)}.pl-next svg[data-v-4d0f2fa9]{width:20px;height:20px}.pl-avis[data-v-4d0f2fa9]{flex:none;align-items:center;display:flex}.pl-eq[data-v-4d0f2fa9]{align-items:flex-end;gap:var(--space-05);flex:none;height:20px;display:flex}.eq-bar[data-v-4d0f2fa9]{background:var(--accent);transform-origin:bottom;border-radius:1px;width:3px;animation:1s ease-in-out infinite alternate paused eq-dance-4d0f2fa9}.pl-eq.active .eq-bar[data-v-4d0f2fa9]{animation-play-state:running}.eq-bar[data-v-4d0f2fa9]:first-child{height:14px;animation-duration:.85s}.eq-bar[data-v-4d0f2fa9]:nth-child(2){height:10px;animation-duration:1s;animation-delay:-.3s}.eq-bar[data-v-4d0f2fa9]:nth-child(3){height:18px;animation-duration:1.15s;animation-delay:-.5s}.eq-bar[data-v-4d0f2fa9]:nth-child(4){height:8px;animation-duration:1.35s;animation-delay:-.1s}.eq-bar[data-v-4d0f2fa9]:nth-child(5){height:12px;animation-duration:1.55s;animation-delay:-.7s}@keyframes eq-dance-4d0f2fa9{0%{transform:scaleY(.3)}to{transform:scaleY(1)}}.pl-id[data-v-4d0f2fa9]{gap:var(--space-05);flex-direction:column;flex:1;min-width:0;display:flex}.pl-title[data-v-4d0f2fa9]{font:600 var(--fs-sm)/1.2 var(--font-ui);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pl-artist[data-v-4d0f2fa9]{font:400 var(--fs-xs)/1.2 var(--font-ui);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pl-link[data-v-4d0f2fa9]{color:inherit;cursor:pointer;text-decoration:none}.pl-link[data-v-4d0f2fa9]:hover{color:var(--accent)}.pl-stats[data-v-4d0f2fa9]{gap:var(--space-3);flex:none;display:flex}.pl-stat[data-v-4d0f2fa9]{align-items:center;gap:var(--space-05);flex-direction:column;display:flex}.pl-stat+.pl-stat[data-v-4d0f2fa9]{padding-left:var(--space-3);border-left:1px solid var(--line)}.pl-stat-val[data-v-4d0f2fa9]{font:500 var(--fs-sm)/1 var(--font-mono);color:var(--ink-2)}.pl-stat--key .pl-stat-val[data-v-4d0f2fa9]{color:var(--accent-ink)}.pl-stat-lbl[data-v-4d0f2fa9]{font:400 var(--fs-nano)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.mono[data-v-4d0f2fa9]{font-family:var(--font-mono);font-size:var(--fs-xs);text-align:center;flex:none;min-width:32px}.pl-elapsed[data-v-4d0f2fa9]{color:var(--ink-2)}.pl-remain[data-v-4d0f2fa9]{color:var(--ink-3)}.pl-rail[data-v-4d0f2fa9]{cursor:pointer;touch-action:none;flex:1;min-width:60px;height:20px;position:relative}.pl-rail[data-v-4d0f2fa9]:before{content:"";background:var(--line-2);border-radius:2px;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.pl-fill[data-v-4d0f2fa9]{background:var(--accent);border-radius:2px;height:4px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.pl-thumb[data-v-4d0f2fa9]{background:var(--accent);border-radius:50%;width:10px;height:10px;transition:transform .12s;position:absolute;top:50%;right:-5px;transform:translateY(-50%)scale(0)}.pl-rail[data-v-4d0f2fa9]:focus-visible{outline:none}.pl-rail[data-v-4d0f2fa9]:focus-visible:before{outline:2px solid var(--accent-soft);outline-offset:3px}.pl-rail:hover .pl-thumb[data-v-4d0f2fa9],.pl-rail:active .pl-thumb[data-v-4d0f2fa9],.pl-rail.scrubbing .pl-thumb[data-v-4d0f2fa9]{transform:translateY(-50%)scale(1)}.pl-vol[data-v-4d0f2fa9]{align-items:center;gap:var(--space-15);flex:none;display:flex}.pl-vol-icon[data-v-4d0f2fa9]{color:var(--ink-2);cursor:pointer;padding:var(--space-05);background:0 0;border:none;place-items:center;transition:color .12s;display:grid}.pl-vol-icon[data-v-4d0f2fa9]:hover{color:var(--ink)}.pl-vol-icon svg[data-v-4d0f2fa9]{width:18px;height:18px}.pl-vol-slider[data-v-4d0f2fa9]{appearance:none;background:var(--line-2);cursor:pointer;border-radius:2px;outline:none;width:84px;height:4px}.pl-vol-slider[data-v-4d0f2fa9]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink-2);cursor:pointer;border-radius:50%;width:10px;height:10px}.pl-vol-slider[data-v-4d0f2fa9]::-moz-range-thumb{background:var(--ink-2);cursor:pointer;border:none;border-radius:50%;width:10px;height:10px}.pl-close[data-v-4d0f2fa9]{color:var(--ink-3);cursor:pointer;padding:var(--space-1);border-radius:var(--r-xs);background:0 0;border:none;flex:none;place-items:center;transition:color .12s;display:grid}.pl-close[data-v-4d0f2fa9]:hover{color:var(--ink)}.pl-close svg[data-v-4d0f2fa9]{width:18px;height:18px}@container player (width<=720px){.pl-stats[data-v-4d0f2fa9]{display:none}}@container player (width<=560px){.pl-elapsed[data-v-4d0f2fa9],.pl-remain[data-v-4d0f2fa9],.pl-eq[data-v-4d0f2fa9]{display:none}}@container player (width<=440px){.pl-shell[data-v-4d0f2fa9]{gap:var(--space-2);padding:var(--space-3) var(--space-3)}.pl-vol[data-v-4d0f2fa9]{display:none}.pl-rail[data-v-4d0f2fa9]{min-width:36px}}@media (prefers-reduced-motion:reduce){.eq-bar[data-v-4d0f2fa9]{animation-play-state:paused!important}}@media (width<=640px){.player[data-v-4d0f2fa9]{left:8px;right:8px;bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 8px)}}.bottom-nav[data-v-6a9f3459]{z-index:999;height:var(--bottom-nav-h);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line);align-items:center;display:none;position:fixed;bottom:0;left:0;right:0}@media (width<=640px){.bottom-nav[data-v-6a9f3459]{display:flex}}.bottom-nav-item[data-v-6a9f3459]{justify-content:center;align-items:center;gap:var(--space-1);cursor:pointer;color:var(--ink-3);background:0 0;border:none;flex-direction:column;flex:1;height:100%;padding:0;display:flex;position:relative}.bottom-nav-item.is-active[data-v-6a9f3459]{color:var(--accent)}.bottom-nav-item.is-active[data-v-6a9f3459]:before{content:"";background:var(--accent);border-radius:0 0 2px 2px;width:26px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.bottom-nav-icon[data-v-6a9f3459]{place-items:center;width:22px;height:22px;display:grid}.bottom-nav-icon[data-v-6a9f3459] svg{width:22px;height:22px}.bottom-nav-label[data-v-6a9f3459]{font:500 var(--fs-xs)/1 var(--font-mono)}.bottom-nav-badge[data-v-6a9f3459]{background:var(--accent);color:var(--on-accent);font:600 var(--fs-nano)/1 var(--font-mono);padding:var(--space-05) var(--space-1);border-radius:var(--r-sm);text-align:center;min-width:16px;position:absolute;top:5px;left:calc(50% + 9px)}.toast[data-v-b3ad2a88]{bottom:calc(var(--bottom-nav-h,0px) + 16px);z-index:9000;padding:var(--space-25) var(--space-5);border-radius:var(--r-sm);font:500 var(--fs-sm)/1.4 var(--font-ui);cursor:pointer;text-align:center;max-width:90vw;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 16px oklch(0% 0 0/.2)}.toast.error[data-v-b3ad2a88]{background:var(--neg-soft);color:var(--neg-ink);border:1px solid var(--neg-ink)}.toast.success[data-v-b3ad2a88]{background:var(--pos-soft);color:var(--pos-ink);border:1px solid var(--pos-ink)}.toast.info[data-v-b3ad2a88]{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-ink)}.toast-action[data-v-b3ad2a88]{margin-left:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--r-xs);background:var(--accent);color:var(--bg);font:600 var(--fs-sm)/1 var(--font-ui);cursor:pointer;border:none}.toast-action[data-v-b3ad2a88]:hover{background:var(--accent-hover)}.toast-enter-active[data-v-b3ad2a88],.toast-leave-active[data-v-b3ad2a88]{transition:opacity .25s,transform .25s}.toast-enter-from[data-v-b3ad2a88],.toast-leave-to[data-v-b3ad2a88]{opacity:0;transform:translate(-50%)translateY(12px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.player-enter-active{transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .34s}.player-enter-from{opacity:0;transform:translateY(100%)}.player-leave-active{transition:transform .24s ease-in,opacity .24s ease-in}.player-leave-to{opacity:0;transform:translateY(100%)}@media (prefers-reduced-motion:reduce){.player-enter-active,.player-leave-active{transition:opacity .2s}.player-enter-from,.player-leave-to{transform:none}}.skip-link{z-index:9999;padding:var(--space-2) var(--space-4);background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);font:500 var(--fs-base) var(--font-ui);text-decoration:none;position:absolute;top:-100%;left:16px}.skip-link:focus{top:8px}.app-container[data-v-ac1cb6a3]{--sidebar-w:232px;height:100vh;container-type:inline-size}.app-shell[data-v-ac1cb6a3]{grid-template-columns:var(--sidebar-w) 1fr;height:100%;display:grid;overflow:hidden}.app-shell.no-sidebar[data-v-ac1cb6a3]{grid-template-columns:1fr}.app-main[data-v-ac1cb6a3]{overscroll-behavior-x:none;min-width:0;overflow:hidden auto;container:app/inline-size}.app-main.has-player[data-v-ac1cb6a3]{padding-bottom:100px}@container (width<=900px){.app-container[data-v-ac1cb6a3]{--sidebar-w:66px}}@container (width<=640px){.app-container[data-v-ac1cb6a3]{--sidebar-w:0px}.app-shell[data-v-ac1cb6a3]{grid-template-columns:1fr}.app-sidebar[data-v-ac1cb6a3]{display:none}.app-main[data-v-ac1cb6a3]{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px))}.app-main.has-player[data-v-ac1cb6a3]{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 90px)}}:root,[data-theme=light]{--font-ui:"Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--fs-nano:9px;--fs-label:10.5px;--fs-xs:11px;--fs-table-sm:12.5px;--fs-sm:13px;--fs-base:14px;--fs-table:14.5px;--fs-title:15px;--fs-input:16px;--fs-md:18px;--fs-lg:22px;--fs-xl:28px;--fs-fallback:32px;--fs-display:36px;--fs-hero:46px;--bg:oklch(97.4% .008 92);--surface:oklch(99.5% .004 92);--surface-2:oklch(95.5% .009 92);--surface-3:oklch(93.5% .01 92);--ink:oklch(25.5% .012 70);--ink-2:oklch(45.5% .012 70);--ink-3:oklch(61.5% .01 70);--line:oklch(90.5% .008 88);--line-2:oklch(87.5% .009 88);--accent-h:328;--accent-l:.615;--accent-c:.132;--accent:oklch(var(--accent-l) var(--accent-c) var(--accent-h));--accent-hover:oklch(.565 .138 var(--accent-h));--accent-soft:oklch(.94 .046 var(--accent-h));--accent-soft-2:oklch(.9 .062 var(--accent-h));--accent-ink:oklch(.47 .122 var(--accent-h));--on-accent:oklch(.987 .01 var(--accent-h));--accent-wash:oklch(.962 .022 var(--accent-h));--pos-h:138;--pos-l:.58;--pos-c:.098;--pos:oklch(var(--pos-l) var(--pos-c) var(--pos-h));--pos-soft:oklch(.94 .046 var(--pos-h));--pos-ink:oklch(.46 .098 var(--pos-h));--pos-wash:oklch(var(--pos-l) var(--pos-c) var(--pos-h) / .06);--pos-wash-2:oklch(var(--pos-l) var(--pos-c) var(--pos-h) / .1);--neg-h:28;--neg:oklch(.585 .132 var(--neg-h));--neg-soft:oklch(.942 .04 var(--neg-h));--neg-ink:oklch(.49 .13 var(--neg-h));--warn:oklch(70% .13 70);--warn-soft:oklch(94% .052 70);--warn-ink:oklch(52% .11 70);--error:oklch(55% .18 25);--tag-bg-l:.94;--tag-bg-c:.06;--tag-fg-l:.46;--tag-fg-c:.13;--tag-dot-l:.65;--tag-dot-c:.152;--ct-l:.965;--ct-c:.03;--ct-line:oklch(30% .02 70/.1);--fb-l1:.92;--fb-c1:.07;--fb-l2:.97;--fb-c2:.03;--genre-tile-ink:oklch(99% .004 92);--genre-tile-scrim:oklch(20% .02 70/.42);--genre-tile-shadow:oklch(20% .02 70/.6);--genre-tile-border-dark:oklch(28% .012 262);--hero-scrim-l:.11;--hero-scrim-c:.015;--hero-scrim-h:70;--hue-house:72;--hue-techno:242;--hue-trance:292;--hue-dnb:162;--hue-hardcore:28;--hue-harddance:338;--r-xs:6px;--r-sm:9px;--r-md:13px;--r-lg:18px;--r-xl:24px;--r-pill:999px;--shadow-sm:0 1px 2px oklch(40% .02 70/.06), 0 1px 1px oklch(40% .02 70/.04);--shadow-md:0 4px 14px oklch(40% .02 70/.07), 0 2px 5px oklch(40% .02 70/.05);--shadow-lg:0 18px 48px oklch(40% .02 70/.12), 0 6px 16px oklch(40% .02 70/.07);--space-05:2px;--space-1:4px;--space-15:6px;--space-2:8px;--space-25:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-15x:60px;--row-h:56px;--pad:16px;--page-max-w:1400px;--detail-max-w:1080px;--sidebar-w:232px;--bottom-nav-h:56px;--page-px:30px;--page-px-mobile:16px;--touch-min:44px;--overlay-modal:oklch(20% .02 262/.72);--overlay-soft:oklch(20% .02 70/.42);--overlay-text:oklch(96% .01 92);--chart-deezer:oklch(55% .19 293);--chart-beatport:oklch(62% .14 165);--chart-deezer-soft:oklch(74% .09 293);--chart-beatport-soft:oklch(78% .075 165);--chart-bpm:oklch(68% .16 60);--chart-sets:oklch(60% .16 20);--chart-neutral:oklch(62% .03 70);--chart-grid:oklch(90.5% .008 88/.7);--chart-axis:oklch(61.5% .01 70)}[data-theme=dark]{--bg:oklch(19.8% .012 262);--surface:oklch(23.8% .014 262);--surface-2:oklch(27.8% .014 262);--surface-3:oklch(31.2% .014 262);--ink:oklch(94.5% .006 92);--ink-2:oklch(74.5% .01 92);--ink-3:oklch(59.5% .012 92);--line:oklch(33% .014 262);--line-2:oklch(38.8% .015 262);--accent-l:.76;--accent-c:.128;--accent-hover:oklch(.81 .122 var(--accent-h));--accent-soft:oklch(.338 .066 var(--accent-h));--accent-soft-2:oklch(.388 .078 var(--accent-h));--accent-ink:oklch(.832 .108 var(--accent-h));--on-accent:oklch(.182 .03 var(--accent-h));--accent-wash:oklch(.272 .038 var(--accent-h));--pos-l:.778;--pos-c:.104;--pos-soft:oklch(.338 .062 var(--pos-h));--pos-ink:oklch(.832 .094 var(--pos-h));--neg:oklch(.705 .13 var(--neg-h));--neg-soft:oklch(.34 .072 var(--neg-h));--neg-ink:oklch(.818 .108 var(--neg-h));--warn:oklch(78% .12 70);--warn-soft:oklch(34.5% .06 70);--warn-ink:oklch(83% .105 70);--error:oklch(65% .18 25);--tag-bg-l:.336;--tag-bg-c:.064;--tag-fg-l:.836;--tag-fg-c:.106;--tag-dot-l:.73;--tag-dot-c:.138;--ct-l:.268;--ct-c:.044;--ct-line:oklch(100% 0 0/.07);--fb-l1:.36;--fb-c1:.085;--fb-l2:.24;--fb-c2:.05;--shadow-sm:0 1px 2px oklch(0% 0 0/.3);--shadow-md:0 4px 14px oklch(0% 0 0/.34), 0 2px 5px oklch(0% 0 0/.28);--shadow-lg:0 18px 48px oklch(0% 0 0/.48), 0 6px 16px oklch(0% 0 0/.34);--chart-deezer:oklch(66% .17 293);--chart-beatport:oklch(66% .15 165);--chart-deezer-soft:oklch(50% .1 293);--chart-beatport-soft:oklch(50% .09 165);--chart-bpm:oklch(74% .15 60);--chart-sets:oklch(70% .15 20);--chart-neutral:oklch(66% .03 92);--chart-grid:oklch(33% .014 262/.7);--chart-axis:oklch(59.5% .012 92)}[data-density=compact]{--row-h:46px;--pad:12px}[data-density=comfy]{--row-h:68px;--pad:22px}.btn{align-items:center;gap:var(--space-15);height:38px;padding:0 var(--space-4);border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font:500 var(--fs-sm) var(--font-ui);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn:hover,.btn.is-hover{background:var(--surface-2);color:var(--ink)}.btn--accent{background:var(--accent);color:var(--on-accent);border-color:#0000;font-weight:600}.btn--accent:hover,.btn--accent.is-hover{background:var(--accent-hover);color:var(--on-accent)}.btn--ghost-accent{border-color:var(--accent);color:var(--accent-ink)}.btn--ghost-accent:hover,.btn--ghost-accent.is-hover{background:var(--accent-soft)}.btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--fs-sm)}.btn--danger:hover,.btn--danger.is-hover{color:var(--neg-ink);border-color:var(--neg-ink);background:var(--surface)}.btn svg{width:15px;height:15px}.dt-wrap{overflow-x:auto;container-type:inline-size}table.dt{border-collapse:collapse;table-layout:fixed;width:100%;min-width:720px}table.dt thead th{font:600 var(--fs-label)/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:var(--space-25) var(--space-3);border-bottom:1px solid var(--line);white-space:nowrap;-webkit-user-select:none;user-select:none}table.dt th.num,table.dt td.num{text-align:center}table.dt th.end,table.dt td.end{text-align:right}table.dt th.sortable{cursor:pointer}table.dt th.sortable:hover{color:var(--ink-2)}table.dt th.is-sorted{color:var(--accent-ink)}table.dt .arr{color:var(--accent-ink);margin-left:var(--space-1)}table.dt tbody tr{border-bottom:1px solid var(--line);height:var(--row-h)}table.dt tbody tr:hover{background:var(--surface-2)}table.dt td{padding:0 var(--space-3);vertical-align:middle}table.dt tbody tr.liked{background:var(--pos-wash)}table.dt tbody tr.disliked td:not(.c-avis){opacity:.42}.td-track{align-items:center;gap:var(--space-3);min-width:0;display:flex}.td-track .aw{border-radius:var(--r-xs);background:var(--surface-3);flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex;overflow:hidden}.td-track .aw img{object-fit:cover;width:100%;height:100%;display:block}.td-track .fallback-letter{font:600 var(--fs-title)/1 var(--font-ui);color:var(--ink-3);text-transform:uppercase}.td-track .tx{flex:1;min-width:0}.td-track .tt-title{font-size:var(--fs-table);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.td-track .tt-art{font-size:var(--fs-table-sm);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.td-bpm{font:500 var(--fs-sm) var(--font-mono);color:var(--ink-2)}.td-key{font:500 var(--fs-sm) var(--font-mono);color:var(--accent-ink)}.td-empty{font:500 var(--fs-sm) var(--font-mono);color:var(--ink-3)}@media (hover:none){table.dt .pbtn,table.dt .act{opacity:1}}@container (width<=640px){table.dt{min-width:0}}.lt-thead,.lt-row{padding-inline:var(--page-px);align-items:center;display:grid}.lt-thead{z-index:10;background:var(--bg);border-bottom:1px solid var(--line-2);height:36px;position:sticky;top:0}.lt-th{font:600 var(--fs-label) / 1 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;text-align:left;-webkit-user-select:none;user-select:none}.lt-th--btn{cursor:pointer;background:0 0;border:0;padding:0;transition:color .12s}.lt-th--btn:hover{color:var(--ink-2)}.lt-th--btn.is-sorted{color:var(--accent-ink)}.lt-th--btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lt-th--center{text-align:center}.lt-th--right{text-align:right}.lt-row{min-height:var(--row-h);padding-block:var(--space-2);border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}.lt-row:hover{background:var(--surface-2)}.lt-row.liked{background:var(--pos-wash)}.lt-row.liked:hover,[data-theme=dark] .lt-row.liked{background:var(--pos-wash-2)}.lt-sentinel{justify-content:center;align-items:center;gap:var(--space-25);padding:var(--space-4) var(--page-px) var(--space-2);color:var(--ink-3);font:500 var(--fs-xs) / 1 var(--font-mono);display:none}.lt-sentinel.on{display:flex}.page-head{align-items:flex-start;gap:var(--space-5);padding:var(--space-6) var(--page-px) var(--space-5);flex-wrap:wrap;display:flex}.state{color:var(--ink-3);font-size:var(--fs-base);padding-top:var(--space-10);font-style:italic}@keyframes spin{to{transform:rotate(360deg)}}
