:root{--bg:#fff;--bg-secondary:#f7f7f5;--text:#37352f;--text-secondary:#787774;--text-tertiary:#37352f73;--border:#37352f17;--hover:#37352f14;--active:#37352f29;--border-strong:#37352f33;--backdrop-scrim:#ffffff4d;--primary-bg:#37352f;--primary-bg-hover:#2f2d28;--primary-text:#fff;--shadow-card:#0f0f0f0d 0 0 0 1px,#0f0f0f1a 0 3px 6px,#0f0f0f33 0 9px 24px;--focus-ring:#2383e291;--record:#0d0d0d;--record-groove:#ffffff12;--record-sheen:#ffffff1f;--record-label:#e3e2e0;--arm:#fbfbfa;--arm-plate:#f1f1ef;--arm-shadow:#0f0f0f59;--record-shadow:#0f0f0f2e;--fader-track:#37352f1f;--fader-fill:#37352f52;--fader-knob:#5f5e63;--fader-knob-line:#fbe34a;--fader-knob-shadow:#0f0f0f1f 0 1px 2px,#0f0f0f1f 0 3px 8px;--fader-knob-hover:#4c4b50;--fader-knob-icon:#fff;--menu-bg:#fff;--shadow-menu:#0f0f0f0d 0 0 0 1px,#0f0f0f1a 0 3px 6px,#0f0f0f33 0 9px 24px;--switch-off:#8783784d;--switch-on:#2383e2;--switch-thumb:#fff;--switch-thumb-shadow:#0f0f0f33 0 1px 2px;--avatar-bg:#0f7b6c;--avatar-text:#fff;--play-overlay-bg:#fffffff0;--cover-spine:#efeeeb;--cover-edge:#e2e1dd;--play-overlay-icon:#191919;--play-overlay-shadow:#0f0f0f40 0 4px 16px;--font:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--radius-sm:4px;--radius:6px;--ease:150ms ease;color-scheme:light}:root[data-theme=dark]{--bg:#191919;--bg-secondary:#202020;--text:#ffffffcf;--text-secondary:#ffffff75;--text-tertiary:#ffffff47;--border:hsla(0,0%,100%,.094);--hover:hsla(0,0%,100%,.055);--active:#ffffff1a;--border-strong:#fff3;--backdrop-scrim:#0006;--primary-bg:#ffffffcf;--primary-bg-hover:#fff;--primary-text:#191919;--shadow-card:hsla(0,0%,100%,.094) 0 0 0 1px,#0000004d 0 3px 6px,#0006 0 9px 24px;--record:#0d0d0d;--record-label:#373737;--arm:#d3d3d0;--arm-plate:#2a2a2a;--arm-shadow:#0009;--record-shadow:#00000080;--fader-track:#ffffff1a;--fader-fill:#ffffff4d;--fader-knob:#6b6a70;--fader-knob-line:#fbe34a;--fader-knob-shadow:#0006 0 1px 2px,#0006 0 3px 8px;--fader-knob-hover:#7d7c83;--fader-knob-icon:#fff;--menu-bg:#252525;--shadow-menu:hsla(0,0%,100%,.094) 0 0 0 1px,#00000059 0 3px 6px,#00000080 0 9px 24px;--switch-off:#ffffff29;--switch-on:#2383e2;--switch-thumb:#fff;--switch-thumb-shadow:#0006 0 1px 2px;--avatar-bg:#2a9d8f;--avatar-text:#fff;--play-overlay-bg:#ffffffe6;--cover-spine:#2b2b2b;--cover-edge:#222;--play-overlay-icon:#191919;--play-overlay-shadow:#00000080 0 4px 18px;color-scheme:dark}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:#fff;background:var(--bg);color:#37352f;color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-family:var(--font);font-size:16px;line-height:1.5;transition:background-color .15s ease,color .15s ease;transition:background-color var(--ease),color var(--ease);-webkit-user-select:none;user-select:none}[contenteditable=true],input,textarea{-webkit-user-select:text;user-select:text}img,svg image{-webkit-user-drag:none}button{background:none;border:none;color:inherit;cursor:pointer;font:inherit}:focus-visible{border-radius:4px;border-radius:var(--radius-sm);outline:2px solid #2383e291;outline:2px solid var(--focus-ring);outline-offset:1px}.quiet-button{align-items:center;border-radius:4px;border-radius:var(--radius-sm);color:#787774;color:var(--text-secondary);display:inline-flex;font-size:14px;gap:6px;height:28px;padding:0 8px;transition:background .15s ease,color .15s ease;transition:background var(--ease),color var(--ease)}.quiet-button:hover{background:#37352f14;background:var(--hover);color:#37352f;color:var(--text)}.quiet-button:active{background:#37352f29;background:var(--active)}.quiet-button:disabled{background:none;color:#37352f73;color:var(--text-tertiary);cursor:default}.ambient{opacity:.4;transition:opacity .15s ease,scale .15s ease,background .15s ease,color .15s ease;transition:opacity var(--ease),scale var(--ease),background var(--ease),color var(--ease)}.ambient:focus-visible,.ambient:focus-within,.ambient:hover{opacity:1;scale:1.05}.visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.record{--record-spin-duration:8s;animation:record-spin var(--record-spin-duration) linear infinite;animation-play-state:paused;display:block;height:100%;overflow:visible;width:100%}.record--spinning{animation-play-state:running}.record__disc{fill:var(--record);transition:fill .4s ease}.record__label-art{display:none}.record__groove{fill:none;stroke:var(--record-groove);stroke-width:.6}.record__sheen{fill:none;stroke:var(--record-sheen);stroke-width:3;stroke-linecap:round}.record__label{fill:var(--record-label);fill:var(--album-color,var(--record-label));transition:fill .4s ease}.record__label-ring{fill:none;stroke:#ffffff40;stroke-width:.6}.record__label-text{fill:var(--text);fill:var(--label-text,var(--text));text-anchor:middle;font-family:var(--font)}.record__label-title{font-weight:700;letter-spacing:-.01em}.record__label-artist{font-weight:500;opacity:.85}.record__hole{fill:var(--bg)}:root[data-record=colored] .record__label-text{display:none}:root[data-record=picture] .record--has-picture .record__label-art{display:inline}:root[data-record=picture] .record--has-picture .record__label-text{display:none}@keyframes record-spin{to{transform:rotate(1turn)}}.mini-root{height:100vh}.mini{align-items:center;background-color:var(--bg);background-color:var(--album-pastel,var(--bg));box-sizing:border-box;display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center;overflow:hidden;padding:16px;transition:background-color 2s cubic-bezier(.45,0,.25,1)}:root[data-theme=dark] .mini{background-color:var(--bg);background-color:var(--album-deep,var(--bg))}.mini__record{aspect-ratio:1;filter:drop-shadow(0 6px 14px var(--record-shadow));width:min(72vw,calc(100vh - 150px))}.mini__meta{min-width:0;text-align:center;width:100%}.mini__artist,.mini__title{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini__title{color:var(--text);font-size:14px;font-weight:600}.mini__artist{color:var(--text-secondary);font-size:12px}.mini__controls{align-items:center;display:flex;gap:16px}.mini__button{align-items:center;border-radius:50%;color:var(--text-secondary);display:inline-flex;height:32px;justify-content:center;transition:background var(--ease),color var(--ease);width:32px}.mini__button:focus-visible,.mini__button:hover{background:var(--hover);color:var(--text)}.mini__button svg{height:16px;width:16px}.mini__button--play{background:var(--fader-knob);box-shadow:var(--fader-knob-shadow);color:var(--fader-knob-icon);height:40px;width:40px}.mini__button--play:focus-visible,.mini__button--play:hover{background:var(--fader-knob-hover);color:var(--fader-knob-icon)}.mini__button--play svg{fill:currentColor;height:18px;width:18px}.mini__play-icon{margin-left:2px}.mini__empty{color:var(--text-secondary);font-size:14px;margin:0}.actions{position:relative}.actions__trigger{justify-content:center;padding:0;width:28px}.actions__trigger svg{height:18px;width:18px}.actions__trigger--open{background:var(--hover);color:var(--text);opacity:1}.menu{animation:menu-open .14s ease-out;background:var(--menu-bg);border-radius:10px;box-shadow:var(--shadow-menu);display:flex;flex-direction:column;font-size:14px;gap:1px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);width:264px;z-index:40}.menu__item{align-items:center;border-radius:6px;color:var(--text);display:flex;gap:10px;height:32px;outline:none;padding:0 8px;text-align:left;transition:background var(--ease);width:100%}.menu__item:focus-visible,.menu__item:hover{background:var(--hover)}.menu__item:active{background:var(--active)}.menu__row{align-items:center;border-radius:6px;color:var(--text);display:flex;gap:10px;height:32px;padding:0 8px;transition:background var(--ease)}.menu__row:focus-within,.menu__row:hover{background:var(--hover)}.menu__swatches{display:flex;flex-shrink:0;gap:8px}.menu__swatch{align-items:center;background:var(--bg);border:1px solid var(--border-strong);border-radius:50%;color:var(--text-secondary);display:inline-flex;height:20px;justify-content:center;outline:none;transition:box-shadow var(--ease),color var(--ease);width:20px}.menu__swatch svg{height:11px;width:11px}.menu__swatch:focus-visible,.menu__swatch:hover{box-shadow:0 0 0 2px var(--menu-bg),0 0 0 3px var(--text-tertiary);color:var(--text)}.menu__swatch--selected,.menu__swatch--selected:focus-visible,.menu__swatch--selected:hover{box-shadow:0 0 0 2px var(--menu-bg),0 0 0 3.5px var(--switch-on);color:var(--text)}.menu__icon{color:var(--text-secondary);flex-shrink:0;height:18px;width:18px}.menu__label{flex:1 1}.menu__switch{background:var(--switch-off);border-radius:999px;flex-shrink:0;height:18px;position:relative;transition:background var(--ease);width:30px}.menu__switch-thumb{background:var(--switch-thumb);border-radius:50%;box-shadow:var(--switch-thumb-shadow);height:14px;left:2px;position:absolute;top:2px;transition:translate var(--ease);width:14px}.menu__switch--on{background:var(--switch-on)}.menu__switch--on .menu__switch-thumb{translate:12px 0}.menu__divider{background:var(--border);height:1px;margin:4px 2px}.menu__footer{display:flex;flex-direction:column;gap:6px;padding:6px 8px 4px}.menu__caption{color:var(--text-tertiary);font-size:12px}.menu__user{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:8px}.menu__user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu__avatar{border-radius:50%;flex-shrink:0;height:20px;object-fit:cover;width:20px}.menu__avatar--initial{align-items:center;background:var(--avatar-bg);color:var(--avatar-text);display:inline-flex;font-size:11px;font-weight:600;justify-content:center}@keyframes menu-open{0%{opacity:0;translate:0 -4px}}.topbar{align-items:center;background:var(--bg);display:flex;height:45px;justify-content:space-between;padding:0 12px;position:sticky;top:0;z-index:30}.topbar--transparent{background:#0000;pointer-events:none}.topbar--transparent>*{pointer-events:auto}.topbar__brand{align-items:center;display:flex;font-size:14px;font-weight:500;gap:6px;padding:0 6px}.topbar__brand--link{border-radius:var(--radius-sm);height:28px}.topbar__brand--link:hover{background:var(--hover)}.topbar__icon{color:var(--text-secondary);height:16px;width:16px}.topbar__actions{align-items:center;display:flex;gap:4px}.topbar__ambient{justify-content:center;padding:0;width:28px}.topbar__ambient svg{height:15px;width:15px}.topbar__ambient--on{background:var(--hover);color:var(--text)}.mode-toggle svg{height:14px;width:14px}.mode-toggle--listening{background:var(--hover);color:var(--text)}.auth-button{align-items:center;background:var(--primary-bg);border-radius:var(--radius);color:var(--primary-text);display:inline-flex;font-size:15px;font-weight:500;height:40px;justify-content:center;max-width:320px;padding:0 16px;transition:background var(--ease);width:100%}.auth-button:hover{background:var(--primary-bg-hover)}.welcome{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:400px;text-align:center}.welcome__record{margin-bottom:32px;width:112px}.welcome__title{font-size:40px;font-weight:700;letter-spacing:-.01em;line-height:1.2}.welcome__subtitle{text-wrap:balance;color:var(--text-secondary);font-size:18px;margin:8px 0 32px}.welcome__demo{font-size:15px;font-weight:500;height:32px;margin-top:12px;padding:0 12px}.welcome__demo svg{height:16px;transition:translate var(--ease);width:16px}.welcome__demo:focus-visible svg,.welcome__demo:hover svg{translate:2px 0}.welcome__note{color:var(--text-tertiary);font-size:12px;margin-top:16px}@media (max-width:600px){.welcome{padding-top:48px}.welcome__title{font-size:32px}.welcome__subtitle{font-size:16px}}.notice{align-items:center;background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;font-size:14px;gap:12px;left:50%;max-width:min(560px,calc(100vw - 32px));padding:8px 8px 8px 16px;position:fixed;top:53px;translate:-50% 0;z-index:30}.notice__message{flex:1 1}.notice__action{background:var(--primary-bg);border-radius:var(--radius-sm);color:var(--primary-text);font-size:14px;font-weight:500;height:28px;padding:0 10px;transition:background var(--ease);white-space:nowrap}.notice__action:hover{background:var(--primary-bg-hover)}.notice__dismiss{justify-content:center;padding:0;width:28px}.notice__dismiss svg{height:14px;width:14px}.credit{bottom:12px;color:var(--text-secondary);cursor:default;font-size:12px;line-height:1.5;margin:0;position:fixed;right:16px;transform-origin:bottom right;-webkit-user-select:none;user-select:none;z-index:25}.credit:hover{color:var(--text)}.loading-message{animation:loading-appear .2s ease .15s backwards;color:var(--text-tertiary);font-size:14px;text-align:center}@keyframes loading-appear{0%{opacity:0}}.coverflow{--cover-size:min(calc(100dvh - 388px),32vw,620px);--cover-depth:calc(var(--cover-size)*0.045);align-items:center;display:flex;flex-direction:column;margin-left:calc(50% - 50vw);overflow:hidden;-webkit-user-select:none;user-select:none;width:100vw}.coverflow__stage{cursor:grab;height:calc(var(--cover-size)*1.12);outline:none;position:relative;touch-action:pan-y;width:100%}.coverflow__stage--over-cover{cursor:pointer}.coverflow__scene{inset:0;perspective:calc(var(--cover-size)*var(--perspective-ratio));perspective-origin:50% var(--perspective-origin-y);pointer-events:none;position:absolute;transform-style:preserve-3d}.coverflow--dragging .coverflow__stage{cursor:grabbing}.coverflow__stage:focus-visible .coverflow__item--center .coverflow__card{outline:2px solid var(--focus-ring);outline-offset:4px}.coverflow__item{cursor:pointer;height:var(--cover-size);left:50%;margin-left:calc(var(--cover-size)/-2);pointer-events:none;position:absolute;top:calc(var(--cover-size)*var(--item-top-ratio));transform-style:preserve-3d;width:var(--cover-size)}.coverflow__box{height:100%;position:relative;transform-style:preserve-3d;transition:scale .22s ease,rotate .4s ease;width:100%}.coverflow__card,.coverflow__edge,.coverflow__spine{backface-visibility:hidden;filter:brightness(1);filter:brightness(var(--cover-brightness,1));transition:filter .22s ease}.coverflow__card{align-items:center;background:var(--bg-secondary);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.coverflow__edge,.coverflow__spine{height:100%;position:absolute;top:0;width:var(--cover-depth)}.coverflow__spine{align-items:center;background:var(--cover-spine);border-radius:var(--radius-sm) 0 0 var(--radius-sm);box-shadow:inset 0 0 0 1px var(--border);display:flex;justify-content:center;left:calc(var(--cover-depth)*-1);overflow:hidden;transform:rotateY(-90deg);transform-origin:right center}.coverflow__spine-title{box-sizing:border-box;color:var(--text);font-size:clamp(9px,calc(var(--cover-depth)*.48),13px);font-weight:600;letter-spacing:.04em;line-height:1;max-height:100%;overflow:hidden;padding:12px 0;text-overflow:ellipsis;white-space:nowrap;writing-mode:vertical-rl}.coverflow__edge{background:var(--cover-edge);box-shadow:inset 0 0 0 1px var(--border);left:100%;transform:rotateY(90deg);transform-origin:left center}.coverflow__image{display:block;height:100%;object-fit:cover;pointer-events:none;width:100%}.coverflow__placeholder{color:var(--text-tertiary);height:32%;width:32%}.coverflow:not(.coverflow--dragging) .coverflow__item--hovered:not(.coverflow__item--center) .coverflow__box{--cover-brightness:1;scale:var(--side-hover-scale)}.coverflow:not(.coverflow--dragging) .coverflow__item--center.coverflow__item--hovered .coverflow__box{--cover-brightness:0.8;rotate:y calc(var(--center-tilt)*-1);scale:var(--center-hover-scale)}.coverflow__play{align-items:center;background:var(--play-overlay-bg);border-radius:50%;box-shadow:var(--play-overlay-shadow);color:var(--play-overlay-icon);display:flex;height:72px;justify-content:center;left:50%;opacity:0;pointer-events:none;position:absolute;scale:.85;top:50%;transform:translateZ(2px);transition:opacity .2s ease,scale .2s ease;translate:-50% -50%;width:72px;z-index:1}.coverflow__play svg{fill:currentColor;height:30px;margin-left:4px;width:30px}.coverflow:not(.coverflow--dragging) .coverflow__item--center.coverflow__item--hovered .coverflow__play{opacity:1;scale:1}.coverflow__details{margin-top:20px;min-height:52px;text-align:center}.coverflow__title{font-size:18px;font-weight:600;line-height:1.3}.coverflow__meta{color:var(--text-secondary);font-size:14px;margin-top:2px}.library{animation:library-enter .3s ease backwards;width:100%}.library--leaving{animation:library-leave .22s ease-in both;pointer-events:none}@keyframes library-enter{0%{opacity:0;translate:0 8px}}@keyframes library-leave{to{opacity:0;scale:.97}}.library__header{align-items:flex-end;display:flex;gap:24px;justify-content:space-between;margin-bottom:24px}.library__title{font-size:32px;font-weight:700;letter-spacing:-.01em;line-height:1.2}.library__subtitle{color:var(--text-secondary);font-size:14px;margin-top:4px}.library__actions{display:flex;flex-shrink:0;gap:4px}.library__action svg{height:14px;width:14px}.library__hint{color:var(--text-tertiary);font-size:13px;margin:-16px 0 24px}.library__link{color:var(--text-secondary);text-decoration:underline;text-underline-offset:2px}.library__link:hover{color:var(--text)}.library__status{color:var(--text-tertiary);font-size:14px;padding:48px 0;text-align:center}.library__toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin:-8px 0 16px}.library__shelves{display:flex;gap:4px}.library__shelf--selected{background:var(--hover);color:var(--text)}.library__search{align-items:center;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);display:flex;gap:6px;height:28px;padding:0 8px;transition:opacity var(--ease),scale var(--ease),border-color var(--ease)}.library__search:focus-within{border-color:var(--border-strong)}.library__search-icon{flex-shrink:0;height:14px;width:14px}.library__search-input{background:#0000;border:0;color:var(--text);font:inherit;font-size:14px;outline:none;width:200px}.library__search-input::placeholder{color:var(--text-tertiary)}.library__search-input::-webkit-search-cancel-button{display:none}.library__search-clear{color:var(--text-tertiary);display:inline-flex}.library__search-clear:hover{color:var(--text)}.library__search-clear svg{height:13px;width:13px}.library__kbd{border:1px solid var(--border);border-radius:3px;color:var(--text-tertiary);font-family:inherit;font-size:11px;line-height:16px;padding:0 5px}.album-cover{align-items:center;background:var(--bg-secondary);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);display:flex;height:100%;justify-content:center;overflow:hidden;width:100%}.album-cover__image{display:block;height:100%;object-fit:cover;width:100%}.album-cover__placeholder{color:var(--text-tertiary);height:32%;width:32%}.tonearm{height:100%;inset:0;overflow:visible;pointer-events:none;position:absolute;width:100%}.tonearm__plate{fill:var(--arm-plate);stroke:var(--border);stroke-width:.8}.tonearm__arm{filter:drop-shadow(0 1px 1.5px var(--arm-shadow));transform:rotate(-10deg);transform-box:view-box;transform-origin:190px 24px;transition:transform .4s ease,scale .15s ease}.tonearm__arm--dragging,.tonearm__arm:focus-visible,.tonearm__arm:hover{scale:1.06}.tonearm__arm--lowered{transform:rotate(0deg)}.tonearm__arm{cursor:grab;outline:none;pointer-events:auto;touch-action:none}.tonearm__arm--dragging{cursor:grabbing;transition:scale .15s ease}.tonearm__arm:focus-visible .tonearm__rod{stroke:var(--focus-ring)}.tonearm__hit{fill:none;stroke:#0000;stroke-width:18;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.tonearm__rod{fill:none;stroke:var(--arm);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.tonearm__head,.tonearm__pivot,.tonearm__weight{fill:var(--arm)}.tonearm__time{font-feature-settings:"tnum";animation:tonearm-time-in .15s ease both;background:var(--menu-bg);border-radius:var(--radius);box-shadow:var(--shadow-menu);color:var(--text);display:inline-flex;font-size:12px;font-variant-numeric:tabular-nums;gap:8px;line-height:1.5;padding:3px 8px;pointer-events:none;position:absolute;translate:calc(-100% - 22px) -50%;white-space:nowrap;z-index:3}.tonearm__remaining{color:var(--text-secondary)}.tonearm__time--scrubbing .tonearm__elapsed{font-weight:600}@keyframes tonearm-time-in{0%{opacity:0}}.back-cover{backface-visibility:hidden;background:var(--bg-secondary);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);box-sizing:border-box;color:var(--text);cursor:pointer;display:flex;flex-direction:column;inset:0;overflow:hidden;padding:7% 8% 6%;position:absolute;text-align:left;transform:rotateY(180deg)}.deck:not(.deck--cover-front) .back-cover{padding-right:27%}.back-cover__status{color:var(--text-secondary);font-size:14px;margin:auto}.back-cover__header{flex-shrink:0;margin-bottom:12px}.back-cover__title{font-size:clamp(14px,calc(var(--record-size)*.03),20px);font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-cover__subtitle{color:var(--text-secondary);font-size:13px;margin-top:2px}.back-cover__tracks{flex:1 1;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:0;scrollbar-width:thin}.back-cover__track{align-items:center;border-radius:var(--radius-sm);color:var(--text);display:flex;font-size:13px;gap:10px;height:28px;padding:0 6px;text-align:left;transition:background var(--ease);width:100%}.back-cover__track:focus-visible,.back-cover__track:hover:not(:disabled){background:var(--hover)}.back-cover__track:disabled{color:var(--text-tertiary);cursor:default}.back-cover__track--playing{background:var(--hover);cursor:default;font-weight:600}.back-cover__number{font-feature-settings:"tnum";color:var(--text-tertiary);display:inline-flex;flex-shrink:0;font-variant-numeric:tabular-nums;justify-content:flex-end;width:18px}.back-cover__number svg{color:var(--text);height:14px;width:14px}.back-cover__name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-cover__duration{font-feature-settings:"tnum";color:var(--text-secondary);flex-shrink:0;font-variant-numeric:tabular-nums}.back-cover__label{color:var(--text-tertiary);flex-shrink:0;font-size:11px;margin-top:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck{--record-size:min(84dvh,calc(55.24862vw - 119.33702px));--teaser-gap:20px;--teaser-reveal:18%;--cover-tilt:rotate(-3deg);--stack-step:calc(100% + var(--teaser-gap));--stack-duration:1000ms;--stack-curve:cubic-bezier(0.65,0,0.35,1);--stack-ease:var(--stack-duration) var(--stack-curve);--hover-duration:1000ms;--hover-curve:cubic-bezier(0.45,0,0.25,1);--hover-ease:var(--hover-duration) var(--hover-curve);--next-nudge:10px;--previous-nudge:-10px;--cover-layer:0;--flip-duration:1400ms;--flip-curve:cubic-bezier(0.45,0,0.25,1);--sleeve-depth:calc(var(--record-size)*0.044);--sleeve-hover-tilt:26deg;--teaser-hover-tilt:24deg;--preview-move:450ms;--preview-drop:720ms;--preview-perspective:perspective(calc(var(--record-size)*3));--preview-hover-transform:var(--preview-perspective) rotate(-2deg) translate(30%,2%) rotateY(24deg) scale(0.94);--preview-rest-layer:1;height:var(--record-size);margin:0 0 0 auto;position:relative;width:calc(var(--record-size)*1.81)}.cover-teaser,.deck__sleeve{aspect-ratio:1;height:97%;left:0;position:absolute;top:0;transition:transform var(--stack-ease),opacity var(--stack-ease),z-index 0s linear var(--stack-duration)}.deck__sleeve{perspective:calc(var(--record-size)*2.5);transform:var(--cover-tilt) translate(0);z-index:var(--cover-layer)}.deck--cover-front{--cover-layer:3}.deck__cover{background:#0000;border:0;cursor:pointer;display:block;height:100%;padding:0;transform-style:preserve-3d;transition:scale var(--ease);width:100%}.deck__cover:focus-visible,.deck__cover:hover{scale:1.04}.deck__cover-box{height:100%;position:relative;transform-style:preserve-3d;transition:rotate .4s ease;width:100%}.deck__cover:focus-visible .deck__cover-box,.deck__cover:hover .deck__cover-box{rotate:y var(--sleeve-hover-tilt)}.deck__cover .deck__cover-box--turned,.deck__cover:focus-visible .deck__cover-box--turned,.deck__cover:hover .deck__cover-box--turned{rotate:y 180deg;transition:rotate .7s var(--hover-curve)}.deck__cover-box.deck__cover-box--returning{transition:rotate var(--stack-duration) var(--stack-curve)}.deck__cover--turned:focus-visible,.deck__cover--turned:hover{scale:1}.deck__cover-hint{animation:cover-hint-in .15s ease both;background:var(--menu-bg);border-radius:var(--radius);box-shadow:var(--shadow-menu);color:var(--text);font-size:12px;left:50%;line-height:1.5;padding:3px 8px;pointer-events:none;position:absolute;top:12px;translate:-50% 0;white-space:nowrap;z-index:2}@keyframes cover-hint-in{0%{opacity:0}}.deck__cover-box .album-cover,.deck__cover-edge,.deck__cover-spine{backface-visibility:hidden}.deck__cover-edge,.deck__cover-spine{height:100%;position:absolute;top:0;width:var(--sleeve-depth)}.deck__cover-spine{align-items:center;background:var(--cover-spine);background:var(--spine-color,var(--cover-spine));border-radius:var(--radius-sm) 0 0 var(--radius-sm);display:flex;justify-content:center;left:calc(var(--sleeve-depth)*-1);overflow:hidden;transform:rotateY(-90deg);transform-origin:right center;transition:background-color .6s ease}.deck__cover-spine-title{box-sizing:border-box;color:var(--text);color:var(--spine-text,var(--text));font-size:clamp(9px,calc(var(--sleeve-depth)*.42),14px);font-weight:600;letter-spacing:.04em;line-height:1;max-height:100%;overflow:hidden;padding:16px 0;text-overflow:ellipsis;white-space:nowrap;writing-mode:vertical-rl}.deck__cover-edge{background:var(--cover-edge);box-shadow:inset 0 0 0 1px var(--border);left:100%;transform:rotateY(90deg);transform-origin:left center}.deck--cover-to-back .deck__sleeve,.deck--cover-to-front .deck__sleeve{animation:cover-layer-swap var(--flip-duration) linear both}.deck--cover-to-back .deck__cover,.deck--cover-to-front .deck__cover{animation:cover-flip var(--flip-duration) var(--flip-curve) both}.deck--cover-to-back .deck__cover,.deck--cover-to-back .deck__sleeve{animation-direction:reverse}.cover-teaser{opacity:.45;padding:0;perspective:calc(var(--record-size)*2.5);transition:transform var(--hover-ease),opacity var(--hover-ease),z-index 0s linear var(--hover-duration);z-index:var(--cover-layer)}.deck--shift-next .cover-teaser,.deck--shift-previous .cover-teaser{transition:transform var(--stack-ease),opacity var(--stack-ease),z-index 0s linear var(--stack-duration)}.cover-teaser--reveal .album-cover{animation:teaser-reveal .35s ease both}.cover-teaser--next{transform:var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-1))}.cover-teaser--previous{transform:var(--cover-tilt) translate(var(--previous-nudge),var(--stack-step))}.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser:focus-visible,.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser:hover{opacity:1;transition:transform var(--hover-ease),opacity var(--hover-ease),z-index 0s;z-index:calc(var(--cover-layer) + 1)}.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser--next:focus-visible,.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser--next:hover{transform:var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-1 + var(--teaser-reveal)))}.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser--previous:focus-visible,.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser--previous:hover{transform:var(--cover-tilt) translate(var(--previous-nudge),calc(var(--stack-step) - var(--teaser-reveal)))}.cover-teaser__box{transition:rotate var(--hover-ease)}.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser:focus-visible .cover-teaser__box,.deck:not(.deck--shift-next):not(.deck--shift-previous) .cover-teaser:hover .cover-teaser__box{rotate:y var(--teaser-hover-tilt)}.deck--shift-next .cover-teaser--next,.deck--shift-previous .cover-teaser--previous{opacity:1;transform:var(--cover-tilt) translate(0)}.deck--shift-next .deck__sleeve{opacity:.45;transform:var(--cover-tilt) translate(var(--previous-nudge),var(--stack-step))}.deck--shift-previous .deck__sleeve{opacity:.45;transform:var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-1))}.deck--shift-next .cover-teaser--previous{transform:var(--cover-tilt) translate(var(--previous-nudge),calc(var(--stack-step)*2))}.deck--shift-previous .cover-teaser--next{transform:var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-2))}.cover-teaser--incoming-next,.cover-teaser--incoming-previous{animation:teaser-incoming var(--stack-duration) var(--stack-curve) both;opacity:.45;pointer-events:none}.cover-teaser--incoming-next{--incoming-from:var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-2));transform:var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-1))}.cover-teaser--incoming-previous{--incoming-from:var(--cover-tilt) translate(var(--previous-nudge),calc(var(--stack-step)*2));transform:var(--cover-tilt) translate(var(--previous-nudge),var(--stack-step))}@keyframes teaser-incoming{0%{opacity:0;transform:var(--incoming-from)}}.deck--instant .cover-teaser,.deck--instant .deck__sleeve{transition:none}.cover-teaser--hidden,.deck__sleeve--lifted{visibility:hidden}.deck--cover-front{--preview-rest-layer:4}.deck__preview{aspect-ratio:1;height:97%;left:0;pointer-events:none;position:absolute;top:0;transform-style:preserve-3d;transition:transform var(--preview-move) var(--hover-curve),opacity var(--preview-move) var(--hover-curve);z-index:6}.deck__preview--from-next{opacity:.45;transform:var(--preview-perspective) var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-1)) rotateY(0deg) scale(1)}.deck__preview--from-previous{opacity:.45;transform:var(--preview-perspective) var(--cover-tilt) translate(var(--previous-nudge),var(--stack-step)) rotateY(0deg) scale(1)}.deck__preview--from-far-next{opacity:0;transform:var(--preview-perspective) var(--cover-tilt) translate(var(--next-nudge),calc(var(--stack-step)*-2)) rotateY(0deg) scale(1)}.deck__preview--from-far-previous{opacity:0;transform:var(--preview-perspective) var(--cover-tilt) translate(var(--previous-nudge),calc(var(--stack-step)*2)) rotateY(0deg) scale(1)}.deck__preview--enter{transition:none}.deck__preview--held,.deck__preview--hover{opacity:1;transform:var(--preview-hover-transform)}.deck__preview--drop{animation:preview-drop var(--preview-drop) var(--hover-curve) forwards;opacity:1;transform:var(--preview-perspective) var(--cover-tilt) translate(0) rotateY(0deg) scale(1);transition:none}@keyframes preview-drop{0%{transform:var(--preview-hover-transform);z-index:6}50%{transform:var(--preview-perspective) rotate(-2deg) translate(-30%,1%) rotateY(14deg) scale(.97);z-index:6}50.01%{z-index:var(--preview-rest-layer)}to{transform:var(--preview-perspective) var(--cover-tilt) translate(0) rotateY(0deg) scale(1);z-index:var(--preview-rest-layer)}}.deck__turntable{aspect-ratio:1;filter:drop-shadow(0 8px 18px var(--record-shadow));height:100%;left:41.4%;position:absolute;top:0;z-index:2}@keyframes cover-layer-swap{0%,50%{z-index:0}50.01%,to{z-index:3}}@keyframes cover-flip{0%{transform:none}22%{transform:translateZ(calc(var(--record-size)*-.08)) rotateY(24deg)}48%{transform:translateX(-34%) translateZ(calc(var(--record-size)*-.08)) rotateY(24deg)}74%{transform:translateX(-34%) translateZ(calc(var(--record-size)*.06)) rotateY(-18deg)}to{transform:none}}@keyframes teaser-reveal{0%{opacity:0}}.volume-fader{--knob-height:46px;align-items:center;display:flex;flex:1 1;flex-direction:column;gap:12px;min-height:0}.volume-fader__slider{cursor:grab;flex:1 1;outline:none;position:relative;touch-action:none;width:48px}.volume-fader__slider:active{cursor:grabbing}.volume-fader__slider:focus-visible .volume-fader__knob{outline:2px solid var(--focus-ring);outline-offset:2px}.volume-fader__fill,.volume-fader__track{border-radius:2px;left:50%;position:absolute;translate:-50% 0;width:4px}.volume-fader__track{background:var(--fader-track);bottom:calc(var(--knob-height)/2);top:calc(var(--knob-height)/2)}.volume-fader__fill{background:var(--fader-fill);bottom:calc(var(--knob-height)/2);height:calc((100% - var(--knob-height))*var(--volume)/100)}.volume-fader__knob{align-items:center;background:var(--fader-knob);border-radius:12px;bottom:calc((100% - var(--knob-height))*var(--volume)/100);box-shadow:var(--fader-knob-shadow);display:flex;height:var(--knob-height);left:50%;position:absolute;translate:-50% 0;width:42px}.volume-fader__knob-line{background:var(--fader-knob-line);height:3px;width:100%}.volume-fader__mute{align-items:center;border-radius:var(--radius-sm);color:var(--text-secondary);display:inline-flex;height:32px;justify-content:center;transition:background var(--ease),color var(--ease);width:32px}.volume-fader__mute:hover{background:var(--hover);color:var(--text)}.volume-fader__mute svg{height:18px;width:18px}.stop-dot{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:44px;justify-content:center;position:relative;width:44px}.stop-dot__dot,.stop-dot__icon{position:absolute;transition:opacity var(--ease),scale var(--ease)}.stop-dot__dot{background:var(--text-secondary);border-radius:50%;height:10px;width:10px}.stop-dot__icon{stroke-width:2.5;color:var(--text);height:32px;opacity:0;scale:.4;width:32px}.stop-dot:focus-visible .stop-dot__dot,.stop-dot:hover .stop-dot__dot{opacity:0;scale:.4}.stop-dot:focus-visible .stop-dot__icon,.stop-dot:hover .stop-dot__icon{opacity:1;scale:1}.song-wheel{--wheel-radius:min(42dvh,400px);--hub-radius:calc(var(--wheel-radius)*var(--hub-ratio))}.song-wheel__dial{height:calc(var(--wheel-radius)*2);left:calc(var(--wheel-radius)*-1);opacity:0;pointer-events:none;position:fixed;scale:.3;top:50%;transition:opacity .2s ease,scale .2s ease;translate:0 -50%;width:calc(var(--wheel-radius)*2);z-index:18}.song-wheel--open .song-wheel__dial{opacity:1;pointer-events:auto;scale:1}.song-wheel__disc{background:var(--menu-bg);border:1px solid var(--border);border-radius:50%;box-shadow:var(--shadow-menu);cursor:grab;height:100%;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.song-wheel__disc:focus-visible{border-radius:50%}.song-wheel--dragging .song-wheel__disc{cursor:grabbing}.song-wheel__hover,.song-wheel__marker{background:conic-gradient(from calc(90deg - var(--slice)/2),var(--hover) 0 var(--slice),#0000 0);border-radius:50%;inset:0;pointer-events:none;position:absolute}.song-wheel__slice{box-sizing:border-box;display:flex;flex-direction:column;height:36px;justify-content:center;left:50%;margin-top:-18px;padding:0 32px 0 calc(var(--hub-radius) + 16px);pointer-events:none;position:absolute;top:50%;transform-origin:0 50%;width:50%}.song-wheel__slice:before{background:var(--border);content:"";height:1px;left:0;position:absolute;rotate:calc(var(--slice)/-2);top:50%;transform-origin:0 0;width:100%}.song-wheel__artist,.song-wheel__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-wheel__title{color:var(--text);font-size:14px;font-weight:500;line-height:18px}.song-wheel__artist{color:var(--text-secondary);font-size:12px;line-height:16px}.song-wheel__slice--playing .song-wheel__title{font-weight:600}.song-wheel__message{box-sizing:border-box;color:var(--text-secondary);font-size:14px;left:50%;line-height:1.5;margin:0;padding:0 32px 0 calc(var(--hub-radius) + 16px);position:absolute;top:50%;translate:0 -50%;width:50%}.song-wheel__hub{border:1px solid var(--border);border-radius:50%;height:calc(var(--hub-radius)*2);left:50%;top:50%;translate:-50% -50%;width:calc(var(--hub-radius)*2)}.song-wheel__hub,.song-wheel__query{background:var(--menu-bg);pointer-events:none;position:absolute}.song-wheel__query{border-radius:var(--radius);box-shadow:var(--shadow-menu);color:var(--text);font-size:13px;left:calc(50% + var(--hub-radius) + 16px);padding:2px 8px;top:calc(50% - var(--wheel-radius)*.62);z-index:2}.song-wheel__pin{fill:var(--text);height:20px;pointer-events:none;position:absolute;right:-6px;top:50%;translate:0 -50%;width:16px}.song-wheel__button{align-items:center;border-radius:50%;color:var(--text-secondary);display:inline-flex;height:40px;justify-content:center;left:20px;position:fixed;top:50%;translate:0 -50%;width:40px;z-index:19}.song-wheel--open .song-wheel__button,.song-wheel__button:hover{background:var(--hover);color:var(--text);opacity:1;scale:1.05}.song-wheel__button svg{height:18px;width:18px}.player-tour{inset:0;pointer-events:none;position:fixed;z-index:50}.player-tour__ring{border:2px solid var(--focus-ring);border-radius:var(--radius);position:fixed;transition:left .3s ease,top .3s ease,width .3s ease,height .3s ease}.player-tour__bubble{animation:player-tour-in .2s ease both;background:var(--menu-bg);border-radius:10px;box-shadow:var(--shadow-menu);box-sizing:border-box;color:var(--text);padding:14px 16px 10px;pointer-events:auto;position:fixed;transition:left .3s ease,top .3s ease;translate:0 -50%}.player-tour__step{color:var(--text-tertiary);font-size:12px;margin:0 0 4px}.player-tour__title{font-size:15px;font-weight:600;line-height:1.4;margin:0}.player-tour__body{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:4px 0 10px}.player-tour__actions{display:flex;justify-content:space-between}.player-tour__next{background:var(--hover);color:var(--text)}@keyframes player-tour-in{0%{opacity:0}}.player{--player-enter:1000ms;width:100%}.player--preparing{pointer-events:none}.player--preparing .player-backdrop,.player--preparing .player-backdrop:after,.player--preparing .player-backdrop:before{transition:none}.player--preparing .deck,.player--preparing .now-link,.player--preparing .player-backdrop,.player--preparing .side-controls,.player--preparing .song-wheel__button{opacity:0}.now-link{align-items:center;bottom:12px;color:var(--text-secondary);display:inline-flex;font-size:12px;gap:4px;left:16px;line-height:1.5;position:fixed;text-decoration:none;transform-origin:bottom left;z-index:20}.now-link:focus-visible,.now-link:hover{color:var(--text)}.now-link svg{height:13px;width:13px}.player-backdrop{--backdrop-fade:2000ms cubic-bezier(0.45,0,0.25,1);background-color:var(--bg);background-color:var(--album-pastel,var(--bg));inset:0;overflow:hidden;position:fixed;transition:background-color var(--backdrop-fade);z-index:-1}.player--ready .player-backdrop{animation:player-fade-in var(--player-enter) ease backwards}.player--ready .deck{animation:player-deck-enter var(--player-enter) cubic-bezier(.22,1,.36,1) backwards}.player--ready .now-link,.player--ready .side-controls,.player--ready .song-wheel__button{animation:player-fade-in .7s ease .3s backwards}.player--leaving{pointer-events:none}.player--leaving .now-link,.player--leaving .player-backdrop,.player--leaving .side-controls,.player--leaving .song-wheel{animation:player-fade-out .26s ease-in forwards}.player--leaving .deck{animation:player-deck-leave .26s ease-in forwards}@keyframes player-fade-out{to{opacity:0}}@keyframes player-deck-leave{to{opacity:0;scale:.94}}@keyframes player-fade-in{0%{opacity:0}}@keyframes player-deck-enter{0%{opacity:0;scale:.94}}:root[data-theme=dark] .player-backdrop{background-color:var(--bg);background-color:var(--album-deep,var(--bg))}:root[data-backdrop=static] .player-backdrop{background-color:var(--bg)}.player-backdrop:after,.player-backdrop:before{content:"";opacity:0;position:absolute;transition:opacity var(--backdrop-fade),background-image var(--backdrop-fade)}.player-backdrop:before{background:none 50%/cover no-repeat;background:var(--album-cover,none) center /cover no-repeat;filter:blur(90px) saturate(1.3);inset:-160px}.player-backdrop:after{background:var(--backdrop-scrim);inset:0}:root[data-backdrop=cover] .player-backdrop:after,:root[data-backdrop=cover] .player-backdrop:before{opacity:1}.side-controls{align-items:center;display:flex;flex-direction:column;gap:16px;height:min(60dvh,520px);position:fixed;right:28px;top:50%;translate:0 -50%;z-index:20}.play-toggle{align-items:center;background:var(--fader-knob);border-radius:50%;box-shadow:var(--fader-knob-shadow);color:var(--fader-knob-icon);display:inline-flex;flex-shrink:0;height:48px;justify-content:center;transition:background var(--ease);width:48px}.play-toggle:hover{background:var(--fader-knob-hover)}.play-toggle svg{fill:currentColor;height:20px;width:20px}.play-toggle__play{margin-left:2px}.app{flex-direction:column;min-height:100vh;overflow:clip}.app,.page{display:flex}.page{flex:1 1;flex-direction:column;justify-content:center;margin:0 auto;max-width:756px;padding:32px 24px 96px;width:100%}@media (max-width:600px){.page{justify-content:flex-start;padding:16px 16px 48px}}.page--player{max-width:none;padding:0 136px 0 32px}.app.app--idle,.app.app--idle *{cursor:none}.app.app--idle .credit,.app.app--idle .notice,.app.app--idle .now-link,.app.app--idle .side-controls,.app.app--idle .song-wheel,.app.app--idle .topbar{opacity:0;pointer-events:none;transition:opacity 1s ease}.page--library{justify-content:flex-start;max-width:1200px;padding:32px 48px}