.sidebar[data-v-8d1b8e0f]{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-8d1b8e0f]{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-8d1b8e0f]{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-8d1b8e0f]{font:600 var(--fs-md)/1 var(--font-ui);letter-spacing:.2px;color:var(--ink)}.nav-section[data-v-8d1b8e0f]{margin-bottom:0}.nav-label[data-v-8d1b8e0f]{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-8d1b8e0f]{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-8d1b8e0f]:hover{background:var(--surface-2);color:var(--ink)}.nav-item.is-active[data-v-8d1b8e0f]{background:var(--accent-soft);color:var(--accent-ink)}.nav-icon[data-v-8d1b8e0f]{flex:none;place-items:center;width:19px;height:19px;display:grid}.nav-icon[data-v-8d1b8e0f] svg{width:19px;height:19px}.nav-text[data-v-8d1b8e0f]{white-space:nowrap}.nav-count[data-v-8d1b8e0f]{font:500 var(--fs-xs)/1 var(--font-mono);color:var(--ink-3);margin-left:auto}.nav-item.is-active .nav-count[data-v-8d1b8e0f]{color:var(--accent-ink)}.nav-admin[data-v-8d1b8e0f]{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px dashed var(--line-2)}.nav-admin .nav-label[data-v-8d1b8e0f]{color:var(--ink-3);padding-top:var(--space-1)}.nav-admin .nav-item[data-v-8d1b8e0f]{color:var(--ink-2);border:1px dashed var(--line-2);background:var(--surface-2)}.nav-admin .nav-item[data-v-8d1b8e0f]:hover{background:var(--surface-3)}.util-key[data-v-8d1b8e0f]{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-8d1b8e0f]{padding-top:var(--space-4);gap:var(--space-05);flex-direction:column;margin-top:auto;display:flex}.theme-toggle[data-v-8d1b8e0f]{width:100%;font:inherit;background:0 0;border:none}.user-row[data-v-8d1b8e0f]{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-8d1b8e0f]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.logout-btn[data-v-8d1b8e0f]{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-8d1b8e0f]:hover{color:var(--accent-ink)}.logout-btn[data-v-8d1b8e0f] svg{width:18px;height:18px}@container (width<=900px){.brand-name[data-v-8d1b8e0f],.nav-text[data-v-8d1b8e0f],.nav-count[data-v-8d1b8e0f],.nav-label span[data-v-8d1b8e0f],.util-key[data-v-8d1b8e0f]{display:none}.nav-label[data-v-8d1b8e0f]{text-align:center;padding:var(--space-4) 0 var(--space-2)}.nav-label[data-v-8d1b8e0f]:after{content:"·"}.nav-item[data-v-8d1b8e0f]{padding:var(--space-25) 0;justify-content:center}.nav-admin .nav-item[data-v-8d1b8e0f]{border-style:dashed}.user-row[data-v-8d1b8e0f]{justify-content:center}.user-name[data-v-8d1b8e0f]{display:none}.logout-btn[data-v-8d1b8e0f]{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}.coll-add-wrap[data-v-7973c5c6]{display:inline-flex;position:relative}.btn-coll[data-v-7973c5c6]{align-items:center;gap:var(--space-15);height:38px;padding:0 var(--space-3);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;transition:color .12s,border-color .12s;display:inline-flex}.btn-coll[data-v-7973c5c6]:hover,.btn-coll.is-open[data-v-7973c5c6]{color:var(--ink);border-color:var(--ink-3)}.btn-coll svg[data-v-7973c5c6]{width:16px;height:16px}.btn-coll-icon[data-v-7973c5c6]{border:1px solid var(--line-2);background:var(--surface);width:30px;height:30px;color:var(--ink-2);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:color .12s,border-color .12s,background .12s;display:grid}.btn-coll-icon[data-v-7973c5c6]:hover,.btn-coll-icon.is-open[data-v-7973c5c6]{color:var(--ink);border-color:var(--ink-3);background:var(--surface-2)}.btn-coll-icon.is-open[data-v-7973c5c6]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.btn-coll-icon svg[data-v-7973c5c6]{width:16px;height:16px}.btn-coll-icon[data-v-7973c5c6]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.coll-dropdown[data-v-7973c5c6]{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:var(--space-1);overflow-y:auto}.coll-dd-state[data-v-7973c5c6]{padding:var(--space-25) var(--space-3);font:400 var(--fs-sm) var(--font-ui);color:var(--ink-3)}.coll-dd-item[data-v-7973c5c6]{width:100%;padding:var(--space-2) var(--space-3);color:var(--ink);font:500 var(--fs-sm) var(--font-ui);cursor:pointer;border-radius:var(--r-sm);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;transition:background .1s;display:flex}.coll-dd-item[data-v-7973c5c6]:hover:not(:disabled){background:var(--surface-2)}.coll-dd-item[data-v-7973c5c6]:disabled{color:var(--ink-3);cursor:default}.coll-dd-check[data-v-7973c5c6]{color:var(--pos-ink);font-weight:600}.coll-dd-new[data-v-7973c5c6]{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--line)}.coll-dd-add[data-v-7973c5c6]{width:100%;padding:var(--space-2) var(--space-3);color:var(--accent-ink);font:500 var(--fs-sm) var(--font-ui);cursor:pointer;border-radius:var(--r-sm);text-align:left;background:0 0;border:none;transition:background .1s;display:block}.coll-dd-add[data-v-7973c5c6]:hover{background:var(--surface-2)}.coll-dd-input[data-v-7973c5c6]{width:100%;height:34px;padding:0 var(--space-3);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font:500 var(--fs-sm) var(--font-ui);box-sizing:border-box;outline:none}.coll-dd-input[data-v-7973c5c6]::placeholder{color:var(--ink-3)}.coll-dd-input[data-v-7973c5c6]:focus{border-color:var(--accent)}.player[data-v-6e8833c9]{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-6e8833c9]{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-6e8833c9]{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-6e8833c9]:hover{background:var(--accent-hover)}.pl-play svg[data-v-6e8833c9]{width:18px;height:18px}.pl-next[data-v-6e8833c9]{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-6e8833c9]:hover{color:var(--ink)}.pl-next svg[data-v-6e8833c9]{width:20px;height:20px}.pl-avis[data-v-6e8833c9],.pl-coll[data-v-6e8833c9]{flex:none;align-items:center;display:flex}.pl-eq[data-v-6e8833c9]{align-items:flex-end;gap:var(--space-05);flex:none;height:20px;display:flex}.eq-bar[data-v-6e8833c9]{background:var(--accent);transform-origin:bottom;border-radius:1px;width:3px;animation:1s ease-in-out infinite alternate paused eq-dance-6e8833c9}.pl-eq.active .eq-bar[data-v-6e8833c9]{animation-play-state:running}.eq-bar[data-v-6e8833c9]:first-child{height:14px;animation-duration:.85s}.eq-bar[data-v-6e8833c9]:nth-child(2){height:10px;animation-duration:1s;animation-delay:-.3s}.eq-bar[data-v-6e8833c9]:nth-child(3){height:18px;animation-duration:1.15s;animation-delay:-.5s}.eq-bar[data-v-6e8833c9]:nth-child(4){height:8px;animation-duration:1.35s;animation-delay:-.1s}.eq-bar[data-v-6e8833c9]:nth-child(5){height:12px;animation-duration:1.55s;animation-delay:-.7s}@keyframes eq-dance-6e8833c9{0%{transform:scaleY(.3)}to{transform:scaleY(1)}}.pl-id[data-v-6e8833c9]{gap:var(--space-05);flex-direction:column;flex:1;min-width:0;display:flex}.pl-title[data-v-6e8833c9]{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-6e8833c9]{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-6e8833c9]{color:inherit;cursor:pointer;text-decoration:none}.pl-link[data-v-6e8833c9]:hover{color:var(--accent)}.pl-stats[data-v-6e8833c9]{gap:var(--space-3);flex:none;display:flex}.pl-stat[data-v-6e8833c9]{align-items:center;gap:var(--space-05);flex-direction:column;display:flex}.pl-stat+.pl-stat[data-v-6e8833c9]{padding-left:var(--space-3);border-left:1px solid var(--line)}.pl-stat-val[data-v-6e8833c9]{font:500 var(--fs-sm)/1 var(--font-mono);color:var(--ink-2)}.pl-stat--key .pl-stat-val[data-v-6e8833c9]{color:var(--accent-ink)}.pl-stat-lbl[data-v-6e8833c9]{font:400 var(--fs-nano)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.mono[data-v-6e8833c9]{font-family:var(--font-mono);font-size:var(--fs-xs);text-align:center;flex:none;min-width:32px}.pl-elapsed[data-v-6e8833c9]{color:var(--ink-2)}.pl-remain[data-v-6e8833c9]{color:var(--ink-3)}.pl-rail[data-v-6e8833c9]{cursor:pointer;touch-action:none;flex:1;min-width:60px;height:20px;position:relative}.pl-rail[data-v-6e8833c9]: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-6e8833c9]{background:var(--accent);border-radius:2px;height:4px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.pl-thumb[data-v-6e8833c9]{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-6e8833c9]:focus-visible{outline:none}.pl-rail[data-v-6e8833c9]:focus-visible:before{outline:2px solid var(--accent-soft);outline-offset:3px}.pl-rail:hover .pl-thumb[data-v-6e8833c9],.pl-rail:active .pl-thumb[data-v-6e8833c9],.pl-rail.scrubbing .pl-thumb[data-v-6e8833c9]{transform:translateY(-50%)scale(1)}.pl-vol[data-v-6e8833c9]{align-items:center;gap:var(--space-15);flex:none;display:flex}.pl-vol-icon[data-v-6e8833c9]{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-6e8833c9]:hover{color:var(--ink)}.pl-vol-icon svg[data-v-6e8833c9]{width:18px;height:18px}.pl-vol-slider[data-v-6e8833c9]{appearance:none;background:var(--line-2);cursor:pointer;border-radius:2px;outline:none;width:84px;height:4px}.pl-vol-slider[data-v-6e8833c9]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink-2);cursor:pointer;border-radius:50%;width:10px;height:10px}.pl-vol-slider[data-v-6e8833c9]::-moz-range-thumb{background:var(--ink-2);cursor:pointer;border:none;border-radius:50%;width:10px;height:10px}.pl-close[data-v-6e8833c9]{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-6e8833c9]:hover{color:var(--ink)}.pl-close svg[data-v-6e8833c9]{width:18px;height:18px}@container player (width<=720px){.pl-stats[data-v-6e8833c9]{display:none}}@container player (width<=560px){.pl-elapsed[data-v-6e8833c9],.pl-remain[data-v-6e8833c9],.pl-eq[data-v-6e8833c9]{display:none}}@container player (width<=440px){.pl-shell[data-v-6e8833c9]{gap:var(--space-2);padding:var(--space-3) var(--space-3)}.pl-vol[data-v-6e8833c9],.pl-coll[data-v-6e8833c9]{display:none}.pl-rail[data-v-6e8833c9]{min-width:36px}}@media (prefers-reduced-motion:reduce){.eq-bar[data-v-6e8833c9]{animation-play-state:paused!important}}@media (width<=640px){.player[data-v-6e8833c9]{left:8px;right:8px;bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 8px)}}.bottom-nav[data-v-aed422ab]{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-aed422ab]{display:flex}}.bottom-nav-item[data-v-aed422ab]{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;text-decoration:none;display:flex;position:relative}.bottom-nav-item.is-active[data-v-aed422ab]{color:var(--accent)}.bottom-nav-item.is-active[data-v-aed422ab]: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-aed422ab]{place-items:center;width:22px;height:22px;display:grid}.bottom-nav-icon[data-v-aed422ab] svg{width:22px;height:22px}.bottom-nav-label[data-v-aed422ab]{font:500 var(--fs-xs)/1 var(--font-mono)}.bottom-nav-badge[data-v-aed422ab]{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)}.bp-embed[data-v-ccef04d1]{gap:var(--space-1);flex-direction:column;width:100%;max-width:600px;display:flex}.bp-frame[data-v-ccef04d1]{border-radius:var(--r-md);background:var(--surface-2);border:0;width:100%;height:162px;display:block}.bp-frame--placeholder[data-v-ccef04d1]{border:1px solid var(--line);box-sizing:border-box}.bp-link[data-v-ccef04d1]{font:500 var(--fs-xs) / 1 var(--font-ui);color:var(--accent-ink);align-self:flex-end;text-decoration:none}.bp-link[data-v-ccef04d1]:hover{text-decoration:underline}.bp-link[data-v-ccef04d1]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bp-card[data-v-36f7fa31]{bottom:18px;left:var(--sidebar-w,232px);width:min(608px, calc(100% - var(--sidebar-w,232px) - 48px));z-index:150;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);flex-direction:column;gap:0;margin:0 auto;padding:0 4px 4px;animation:.34s cubic-bezier(.22,.61,.36,1) bp-in-36f7fa31;display:flex;position:fixed;right:0}@keyframes bp-in-36f7fa31{0%{opacity:0;transform:translateY(calc(100% + 28px))}}@media (prefers-reduced-motion:reduce){.bp-card[data-v-36f7fa31]{animation:.2s bp-fade-36f7fa31}@keyframes bp-fade-36f7fa31{0%{opacity:0}}}.bp-card[data-v-36f7fa31] .bp-frame{border-radius:0}.bpc-row[data-v-36f7fa31]{align-items:center;gap:0;min-height:20px;margin:0 -2px;display:flex}.bpc-sp[data-v-36f7fa31]{flex:1}.bpc-ghost[data-v-36f7fa31]{width:20px;height:20px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;text-decoration:none;display:grid}.bpc-ghost[data-v-36f7fa31]:hover{background:var(--surface-2);color:var(--ink)}.bpc-ghost svg[data-v-36f7fa31]{width:11px;height:11px}.bpc-resume[data-v-36f7fa31]{border:1px solid var(--line-2);background:var(--surface);height:18px;color:var(--ink-2);font:500 11.5px var(--font-ui);cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:100%;padding:0 8px 0 6px;display:inline-flex}.bpc-resume[data-v-36f7fa31]:hover{border-color:var(--ink-3);color:var(--ink)}.bpc-eq[data-v-36f7fa31]{flex:none;align-items:flex-end;gap:2px;height:12px;display:flex}.bpc-eq i[data-v-36f7fa31]{background:var(--ink-3);border-radius:2px;width:2px}.bpc-eq i[data-v-36f7fa31]:first-child{height:5px}.bpc-eq i[data-v-36f7fa31]:nth-child(2){height:11px}.bpc-eq i[data-v-36f7fa31]:nth-child(3){height:7px}.bpc-eq i[data-v-36f7fa31]:nth-child(4){height:9px}.bpc-t[data-v-36f7fa31]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bpc-t em[data-v-36f7fa31]{color:var(--ink-3);font-style:normal}@media (width<=640px){.bp-card[data-v-36f7fa31]{width:auto;left:8px;right:8px;bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 8px)}.bp-card[data-v-36f7fa31] .bp-embed{max-width:none}.bpc-t em[data-v-36f7fa31]{display:none}}*,: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-b0218e37]{--sidebar-w:232px;height:100vh;container-type:inline-size}.app-shell[data-v-b0218e37]{grid-template-columns:var(--sidebar-w) 1fr;height:100%;display:grid;overflow:hidden}.app-shell.no-sidebar[data-v-b0218e37]{grid-template-columns:1fr}.app-main[data-v-b0218e37]{overscroll-behavior-x:none;min-width:0;overflow:hidden auto;container:app/inline-size}.app-main.has-player[data-v-b0218e37]{padding-bottom:100px}.app-main.has-beatport[data-v-b0218e37],.app-main.has-player.has-beatport[data-v-b0218e37]{padding-bottom:188px}@container (width<=900px){.app-container[data-v-b0218e37]{--sidebar-w:66px}}@container (width<=640px){.app-container[data-v-b0218e37]{--sidebar-w:0px}.app-shell[data-v-b0218e37]{grid-template-columns:1fr}.app-sidebar[data-v-b0218e37]{display:none}.app-main[data-v-b0218e37]{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px))}.app-main.has-player[data-v-b0218e37]{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 90px)}.app-main.has-beatport[data-v-b0218e37],.app-main.has-player.has-beatport[data-v-b0218e37]{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 188px)}}: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-albums:oklch(60% .17 330);--chart-embeddings:oklch(60% .15 230);--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-albums:oklch(70% .16 330);--chart-embeddings:oklch(72% .14 230);--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;position:relative}.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)}}.at-region{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;container-type:inline-size}.at-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.at-title{font:600 var(--fs-title)/1.2 var(--font-ui);color:var(--ink)}.at-count{padding:2px var(--space-2);border-radius:var(--r-pill);background:var(--surface-3);color:var(--ink-2);font:600 var(--fs-nano)/1 var(--font-mono);letter-spacing:.04em;align-items:center;display:inline-flex}.at-scroll{overflow-x:auto}.at-table{border-collapse:collapse;width:100%}.at-table th{padding:var(--space-2) var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--line);font:600 var(--fs-label)/1 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;text-align:left;white-space:nowrap;color:var(--ink-3)}.at-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);vertical-align:top;font-size:var(--fs-table);color:var(--ink)}.at-table tbody tr:hover{background:var(--surface-2)}.at-table tbody tr:last-child td{border-bottom:0}.at-table td[data-stack]{max-width:260px}.at-id{font:600 var(--fs-table-sm)/1.35 var(--font-mono);color:var(--ink)}.at-tech{font:400 var(--fs-table-sm)/1.35 var(--font-mono);color:var(--ink-2)}.at-tech--right{text-align:right}.at-source{font:500 var(--fs-nano)/1 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.at-table td[data-label=Source]:empty:before{content:"—";color:var(--ink-3)}.at-pill{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--r-pill);font:600 var(--fs-nano)/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;display:inline-flex}.at-pill--ok{background:var(--pos-soft);color:var(--pos-ink)}.at-pill--err{background:var(--neg-soft);color:var(--neg-ink)}.at-pill--run{background:var(--surface-3);color:var(--ink-2)}.at-pill--neutral{background:var(--surface-2);color:var(--ink-3)}.at-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.at-chip{align-items:baseline;gap:var(--space-1);padding:2px var(--space-15);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-xs);display:inline-flex}.at-chip-k{font:600 var(--fs-nano)/1.3 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.at-chip-v{font:500 var(--fs-xs)/1.3 var(--font-mono);color:var(--ink-2)}.at-chip--true .at-chip-v{color:var(--ink);font-weight:700}.at-details summary{align-items:center;gap:var(--space-1);cursor:pointer;font:500 var(--fs-xs)/1 var(--font-mono);color:var(--ink-3);list-style:none;display:inline-flex}.at-details summary::-webkit-details-marker{display:none}.at-details-chev{transition:transform .15s}.at-details[open] .at-details-chev{transform:rotate(180deg)}.at-kv{gap:var(--space-1) var(--space-3);margin-top:var(--space-2);grid-template-columns:auto 1fr;display:grid}.at-kv-k{font:600 var(--fs-nano)/1.4 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.at-kv-v{font:500 var(--fs-xs)/1.4 var(--font-mono);color:var(--ink-2)}.at-err-msg{white-space:nowrap;text-overflow:ellipsis;max-width:340px;font:500 var(--fs-xs)/1.4 var(--font-mono);color:var(--neg-ink);display:block;overflow:hidden}.at-pager{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-top:1px solid var(--line);display:flex}.at-pager-count{font:500 var(--fs-xs)/1 var(--font-mono);color:var(--ink-2)}.at-empty{padding:var(--space-6);font-size:var(--fs-sm);color:var(--ink-3)}@container (width<=859px){.at-scroll{overflow-x:visible}.at-table td[data-stack]{max-width:none}.at-head{flex-direction:column;align-items:stretch}.at-table thead{display:none}.at-table,.at-table tbody,.at-table tr,.at-table td{display:block}.at-table tbody tr{margin:var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.at-table tbody tr:hover{background:var(--surface)}.at-table td{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);display:flex}.at-table td:last-child{border-bottom:0}.at-table td:before{content:attr(data-label);font:600 var(--fs-label)/1.3 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);flex:none}.at-table td:empty{display:none}.at-table td[data-stack]{align-items:stretch;gap:var(--space-15);flex-direction:column}.at-table td[data-lead]:before{display:none}.at-table td[data-act]{padding:var(--space-2) var(--space-3);display:block}.at-table td[data-act]:before{display:none}.at-table td[data-act]>.btn,.at-table td[data-act] button{width:100%;min-height:var(--touch-min)}.at-pager>.btn{min-height:var(--touch-min);flex:1}}.at-seg{gap:var(--space-05);padding:var(--space-05);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);display:inline-flex}.at-seg-b{padding:var(--space-1) var(--space-3);border-radius:var(--r-pill);font:500 var(--fs-sm)/1 var(--font-ui);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;transition:color .12s,background .12s}.at-seg-b:hover{color:var(--ink)}.at-seg-b.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}@container (width<=859px){.at-seg{width:100%;display:flex}.at-seg-b{min-height:var(--touch-min);flex:1}}
