:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root,[data-theme=dark]{--bg:#080808;--surface:#0e0e0e;--surface-2:#141414;--surface-3:#1c1c1c;--border:#1e1e1e;--border-2:#2a2a2a;--border-3:#383838;--fg:#ede5da;--fg-2:#b8afa6;--fg-3:#7e756c;--fg-4:#565050;--fg-5:#343030;--brand:#e05c3a;--brand-glow:#e05c3a38;--brand-dim:#e05c3a1f;--shadow:#000000a6;--shadow-sm:#00000059;--scrollbar:#252525}[data-theme=light]{--bg:#f2ede8;--surface:#fff;--surface-2:#f7f3ef;--surface-3:#ede8e2;--border:#e0d8d0;--border-2:#cdc5bd;--border-3:#b8b0a8;--fg:#1a1410;--fg-2:#3c3430;--fg-3:#6b6058;--fg-4:#948880;--fg-5:#bbb0a8;--brand:#e05c3a;--brand-glow:#e05c3a2e;--brand-dim:#e05c3a1a;--shadow:#0000002e;--shadow-sm:#00000014;--scrollbar:#cdc5bd}[data-theme=midnight]{--bg:#060810;--surface:#0a0c18;--surface-2:#0e1020;--surface-3:#131528;--border:#1a1c2e;--border-2:#252740;--border-3:#303350;--fg:#dde5f5;--fg-2:#95a5c5;--fg-3:#5d6d90;--fg-4:#404f70;--fg-5:#283048;--brand:#e05c3a;--brand-glow:#e05c3a33;--brand-dim:#e05c3a1a;--shadow:#000c;--shadow-sm:#0006;--scrollbar:#1e2238}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);width:100%;height:100%;overflow:hidden}body{background:var(--bg);width:100%;height:100%;margin:0;padding:0;overflow:hidden}#root{width:100%;height:100%;display:flex;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 18px var(--brand-glow)}50%{box-shadow:0 0 32px var(--brand-glow)}}.anim-fade-in{animation:.22s both fadeIn}.anim-slide-up{animation:.22s both slideInUp}.anim-slide-down{animation:.2s both slideInDown}.anim-slide-left{animation:.22s both slideInLeft}.anim-pop-in{animation:.18s cubic-bezier(.34,1.56,.64,1) both popIn}.auth-overlay{background:var(--bg);justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:24px 16px;font-family:Courier New,monospace;animation:.3s fadeIn;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:0 24px 80px var(--shadow);border-radius:18px;flex-direction:column;align-items:center;gap:14px;padding:40px 36px 32px;animation:.28s cubic-bezier(.34,1.56,.64,1) popIn;display:flex}.auth-vinyl-logo{border:2px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;animation:10s linear infinite spin;display:flex}.auth-vinyl-disc{background:var(--surface);border:2px solid;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.auth-vinyl-hole{border-radius:50%;width:14px;height:14px}.auth-app-label{letter-spacing:.35em;color:var(--fg-4);margin-top:-4px;font-size:11px}.auth-heading{color:var(--fg);letter-spacing:.03em;text-align:center;margin:0;font-size:22px;font-weight:700;line-height:1.2}.auth-sub{color:var(--fg-3);letter-spacing:.04em;text-align:center;margin:-4px 0 2px;font-size:12px}.auth-banner{letter-spacing:.04em;text-align:center;border-radius:8px;width:100%;padding:10px 14px;font-size:11px;line-height:1.6;animation:.18s slideInDown}.auth-banner-error{background:var(--brand-dim);color:var(--brand);border:1px solid #e05c3a47}.auth-banner-success{color:#1db954;background:#1db9541a;border:1px solid #1db95447}.auth-form{flex-direction:column;gap:10px;width:100%;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-label{letter-spacing:.18em;color:var(--fg-3);font-size:9.5px;font-weight:700}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-wrap .auth-input{padding-right:36px}.auth-eye{color:var(--fg-4);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:13px;line-height:1;transition:color .15s;position:absolute;right:10px}.auth-eye:hover{color:var(--fg-3)}.auth-input{background:var(--surface-2);border:1px solid var(--border-2);width:100%;color:var(--fg);letter-spacing:.04em;border-radius:8px;outline:none;padding:11px 14px;font-family:Courier New,monospace;font-size:13px;transition:border-color .15s,box-shadow .15s}.auth-input:focus{border-color:#e05c3a80;box-shadow:0 0 0 3px #e05c3a14}.auth-input::placeholder{color:var(--fg-4)}.auth-btn-primary{background:var(--brand);color:#fff;letter-spacing:.12em;cursor:pointer;width:100%;box-shadow:0 0 20px var(--brand-glow);border:none;border-radius:8px;justify-content:center;align-items:center;min-height:42px;margin-top:2px;padding:12px;font-family:Courier New,monospace;font-size:13px;font-weight:700;transition:opacity .2s,box-shadow .2s,transform .1s;display:flex}.auth-btn-primary:hover:not(:disabled){opacity:.88;box-shadow:0 0 28px var(--brand-glow)}.auth-btn-primary:active:not(:disabled){transform:scale(.98)}.auth-btn-primary:disabled{opacity:.35;cursor:default}.auth-spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.65s linear infinite spin;display:inline-block}.auth-divider{align-items:center;gap:10px;width:100%;margin:2px 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border-2);flex:1;height:1px}.auth-divider span{color:var(--fg-4);letter-spacing:.14em;font-size:10px}.auth-btn-link{color:var(--fg-3);letter-spacing:.06em;cursor:pointer;text-align:center;background:0 0;border:none;padding:4px 0;font-family:Courier New,monospace;font-size:11px;transition:color .15s}.auth-btn-link:hover{color:var(--fg-2)}.auth-btn-link span{color:var(--brand)}.login-overlay{background:var(--bg);justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:24px 16px;font-family:Courier New,monospace;animation:.3s fadeIn;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;width:100%;max-width:380px;box-shadow:0 24px 80px var(--shadow);border-radius:16px;flex-direction:column;align-items:center;gap:20px;padding:48px 40px;animation:.28s cubic-bezier(.34,1.56,.64,1) popIn;display:flex}.login-logo{background:var(--brand-dim);border:2px solid #e05c3a47;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;animation:10s linear infinite spin;display:flex}.login-logo-disc{background:var(--surface);border:2px solid #e05c3a66;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.login-logo-hole{background:var(--brand);border-radius:50%;width:16px;height:16px}.login-label{letter-spacing:.25em;color:var(--fg-3);font-size:11px}.login-heading{color:var(--fg);letter-spacing:.03em;margin:0;font-size:28px;font-weight:700;line-height:1.2}.login-sub{color:var(--fg-3);letter-spacing:.03em;margin:0;font-size:13px;line-height:1.6}.login-btn{color:#fff;letter-spacing:.06em;cursor:pointer;background:#f50;border:none;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px 28px;font-family:Courier New,monospace;font-size:13px;font-weight:700;transition:opacity .2s,box-shadow .2s,transform .1s;display:flex;box-shadow:0 0 24px #ff550040}.login-btn:hover:not(:disabled){opacity:.88;box-shadow:0 0 32px #f506}.login-btn:active:not(:disabled){transform:scale(.98)}.login-sc-icon{flex-shrink:0;width:20px;height:20px}.login-note{color:var(--fg-3);margin:0;font-size:11px;line-height:1.6}.login-note code{color:var(--fg-2);background:var(--surface-2);word-break:break-all;border-radius:3px;padding:2px 5px}.login-btn-spotify{color:#000!important;background:#1db954!important}.login-btn-spotify:hover:not(:disabled){background:#1ed760!important}.login-btn-enter{margin-top:4px;border:1px solid var(--border-2)!important;color:var(--fg-2)!important;box-shadow:none!important;background:0 0!important}.login-btn-enter:hover{background:var(--surface-2)!important;color:var(--fg)!important}.login-btn.connected,.login-btn-spotify.connected{opacity:.6;cursor:default}.player{background:var(--bg);width:100%;height:100dvh;color:var(--fg);font-family:Courier New,monospace;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:310px;display:flex;overflow:hidden}.sidebar-header-row{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px 12px;display:flex}.sidebar-brand{align-items:baseline;gap:8px;display:flex}.sidebar-brand-logo{color:var(--brand);letter-spacing:.22em;font-family:Courier New,monospace;font-size:17px;font-weight:800}.sidebar-brand-sep{color:var(--border-3);font-size:14px}.sidebar-username{color:var(--fg-2);letter-spacing:.06em;font-family:Courier New,monospace;font-size:13px}.queue-toggle-pill{letter-spacing:.06em;cursor:pointer;white-space:nowrap;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:4px 9px;font-family:Courier New,monospace;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,color .15s,transform .1s;display:flex}.queue-toggle-pill:hover{transform:scale(1.06)}.queue-toggle-pill:active{transform:scale(.94)}.theme-switcher{align-items:center;gap:4px;display:flex}.theme-btn{border:1.5px solid var(--border-2);background:var(--surface-2);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px;line-height:1;transition:border-color .15s,background .15s,transform .1s;display:flex}.theme-btn:hover{border-color:var(--brand);background:var(--brand-dim);transform:scale(1.12)}.theme-btn.active{border-color:var(--brand);background:var(--brand-dim)}.theme-btn:active{transform:scale(.9)}.sidebar-tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.sidebar-tab{color:var(--fg-3);cursor:pointer;letter-spacing:.12em;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:12px 6px;font-family:Courier New,monospace;font-size:11px;font-weight:700;transition:color .15s,border-color .15s,background .15s}.sidebar-tab:hover{color:var(--fg-2);background:var(--surface-2)}.sidebar-tab.active{border-bottom-color:var(--brand);color:var(--brand);background:color-mix(in srgb, var(--brand) 5%, transparent)}.search-container{flex-shrink:0;padding:10px 10px 6px;position:relative}.search-form{background:var(--surface-2);border:1px solid var(--border-2);border-radius:8px;align-items:center;gap:8px;padding:0 10px;transition:border-color .15s,box-shadow .15s;display:flex}.search-form:focus-within{border-color:color-mix(in srgb, var(--accent) 55%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent)}.search-icon{color:var(--fg-3);flex-shrink:0;font-size:16px;line-height:1}.search-input{color:var(--fg);letter-spacing:.04em;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:10px 0;font-family:Courier New,monospace;font-size:13px}.search-input::placeholder{color:var(--fg-3)}.search-spinner{border:1.5px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.7s linear infinite spin}.search-clear{color:var(--fg-3);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:12px;line-height:1;transition:color .15s}.search-clear:hover{color:var(--fg)}.search-dropdown{background:var(--surface);border:1px solid var(--border-3);z-index:100;box-shadow:0 10px 36px var(--shadow);border-radius:10px;flex-direction:column;max-height:340px;animation:.18s slideInDown;display:flex;position:absolute;top:calc(100% - 4px);left:10px;right:10px;overflow:hidden}.search-dropdown-scroll{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent;flex:1;overflow-y:auto}.search-dropdown-scroll::-webkit-scrollbar{width:4px}.search-dropdown-scroll::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:2px}.search-error,.search-empty{letter-spacing:.08em;color:var(--fg-3);text-align:center;padding:16px;font-size:12px}.search-error{color:var(--brand)}.search-result-row{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 12px;transition:background .12s;display:flex}.search-result-row:last-child{border-bottom:none}.search-result-row:hover{background:var(--surface-2)}.search-result-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.search-result-info{flex:1;min-width:0}.search-result-title{color:var(--fg);letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.search-result-artist{color:var(--fg-3);letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.search-result-duration{color:var(--fg-3);flex-shrink:0;font-size:11px}.search-result-enqueue{border:1px solid var(--border-2);color:var(--accent);cursor:pointer;text-align:center;opacity:0;background:0 0;border-radius:50%;flex-shrink:0;width:22px;height:22px;padding:0;font-size:14px;line-height:20px;transition:border-color .15s,background .15s,transform .1s}.search-result-row:hover .search-result-enqueue{opacity:1}.search-result-enqueue:hover{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:var(--accent);transform:scale(1.15)}.queue-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px 6px;display:flex}.queue-label{color:var(--fg-2);letter-spacing:.18em;font-family:Courier New,monospace;font-size:11px;font-weight:700}.queue-label-count{color:var(--fg-4);margin-left:6px;font-weight:400}.queue-clear-btn{color:var(--fg-3);cursor:pointer;letter-spacing:.1em;background:0 0;border:none;border-radius:4px;padding:3px 7px;font-family:Courier New,monospace;font-size:10px;font-weight:700;transition:color .15s,background .15s}.queue-clear-btn:hover{color:var(--brand);background:var(--brand-dim)}.track-list{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent;flex:1;padding:4px 0;overflow-y:auto}.track-list::-webkit-scrollbar{width:4px}.track-list::-webkit-scrollbar-track{background:0 0}.track-list::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:2px}.track-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-left:2px solid #0000;align-items:center;gap:8px;padding:8px 10px 8px 14px;transition:background .12s,border-color .12s;display:flex}.track-row:hover{background:var(--surface-2)}.track-row.active{background:var(--surface-2);border-left-color:var(--accent)}.queue-track-row{gap:6px;padding:7px 10px 7px 12px;animation:.2s both slideInUp}.track-row.drag-over{border-top:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.track-row.dragging{opacity:.35}.track-row[draggable=true]{cursor:grab}.track-row[draggable=true]:active{cursor:grabbing}.queue-num{width:22px;color:var(--fg-3);letter-spacing:0;flex-shrink:0;justify-content:center;align-items:center;font-family:Courier New,monospace;font-size:12px;line-height:1;display:flex}.drag-handle{color:var(--fg-4);cursor:grab;flex-shrink:0;align-items:center;padding:2px 1px;font-size:13px;line-height:1;transition:color .15s;display:flex}.track-row:hover .drag-handle{color:var(--fg-3)}.track-row.active .drag-handle{color:color-mix(in srgb, var(--accent) 45%, var(--fg-3))}.track-info{flex:1;min-width:0}.track-name{color:var(--fg-2);letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;transition:color .15s;overflow:hidden}.track-name.active{color:var(--fg);font-weight:700}.track-artist{color:var(--fg-3);letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.track-meta{flex-shrink:0;align-items:center;gap:4px;display:flex}.track-duration{color:var(--fg-3);letter-spacing:.04em;font-size:11px}.queue-track-actions{opacity:0;flex-direction:column;align-items:center;gap:2px;margin-left:2px;transition:opacity .15s;display:flex}.track-row:hover .queue-track-actions,.track-row.active .queue-track-actions{opacity:1}.queue-action-btn{cursor:pointer;width:18px;height:18px;color:var(--fg-3);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;transition:color .12s,background .12s,transform .1s;display:flex}.queue-action-btn.liked{color:var(--brand)}.queue-action-btn:hover{color:var(--fg);background:var(--surface-3);transform:scale(1.1)}.queue-action-playlist:hover,.queue-action-remove:hover{color:var(--brand)!important}.empty-queue{opacity:.4;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;animation:.3s fadeIn;display:flex}.empty-queue-icon{font-size:28px}.empty-queue-text{letter-spacing:.08em;text-align:center;color:var(--fg-3);font-size:13px;line-height:1.6}.recent-track-row{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:10px;padding:9px 14px;transition:background .12s,border-color .12s;animation:.2s both slideInLeft;display:flex}.recent-track-row:hover{background:var(--surface-2)}.recent-track-row.active{background:var(--surface-2);border-left-color:var(--accent)}.recent-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:transform .15s}.recent-track-row:hover .recent-dot{transform:scale(1.3)}.recent-info{flex:1;min-width:0}.recent-title{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;transition:color .12s;overflow:hidden}.recent-track-row:hover .recent-title,.recent-track-row.active .recent-title{color:var(--fg)}.recent-artist{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.recent-time{color:var(--fg-4);letter-spacing:.04em;flex-shrink:0;font-size:10px}.playlist-search-row{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:10px 14px;display:flex}.playlist-search-input{color:var(--fg);background:0 0;border:none;outline:none;flex:1;font-family:Courier New,monospace;font-size:13px}.playlist-search-input::placeholder{color:var(--fg-3)}.playlist-liked-btn{cursor:pointer;letter-spacing:.08em;border-radius:8px;flex-shrink:0;align-items:center;gap:10px;margin:10px 10px 8px;padding:11px 14px;font-family:Courier New,monospace;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .1s;display:flex}.playlist-liked-btn:active{transform:scale(.98)}.playlist-liked-count{background:var(--surface-3);color:var(--fg-2);border-radius:10px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:600}.playlist-row{cursor:pointer;border-left:3px solid #0000;border-radius:7px;align-items:center;margin-bottom:3px;padding:11px 10px;transition:background .12s,border-color .12s;animation:.18s both slideInLeft;display:flex}.playlist-row:hover{background:var(--surface-2)}.playlist-row.active{background:var(--brand-dim);border-left-color:var(--brand)}.playlist-row-name{color:var(--fg-2);font-family:Courier New,monospace;font-size:13px;font-weight:700;transition:color .12s}.playlist-row.active .playlist-row-name{color:var(--brand)}.playlist-row-count{color:var(--fg-3);margin-top:2px;font-size:11px}.playlist-delete-btn{color:var(--fg-4);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:13px;transition:color .15s,transform .1s}.playlist-delete-btn:hover{color:var(--brand);transform:scale(1.15)}.sidebar-connect-bar{border-top:1px solid var(--border);background:var(--bg);flex-direction:column;flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.connect-btn{letter-spacing:.08em;cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:9px 12px;font-family:Courier New,monospace;font-size:11px;font-weight:700;transition:opacity .15s,transform .1s;display:flex}.connect-btn:active{transform:scale(.98)}.main{background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:40px 32px;display:flex;position:relative;overflow:hidden}.spectrum-wrap{flex-shrink:0;width:300px;height:300px;position:relative;overflow:visible}.bg-glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 70%);pointer-events:none;z-index:0;border-radius:50%;width:420px;height:420px;transition:background .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spectrum-canvas{z-index:1;position:absolute;inset:0}.vinyl-center{pointer-events:none;z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.vinyl-disc{background:repeating-radial-gradient(circle,#151515 0,#111 4px,#181818 5px,#0f0f0f 8px);border:1.5px solid #222;border-radius:50%;justify-content:center;align-items:center;width:156px;height:156px;transition:box-shadow .4s;display:flex}[data-theme=light] .vinyl-disc{background:repeating-radial-gradient(circle,#2a2828 0,#222 4px,#2e2c2c 5px,#1e1c1c 8px);border-color:#333}.vinyl-disc.spinning{box-shadow:0 0 32px color-mix(in srgb, var(--accent) 22%, transparent);animation:3s linear infinite spin}.vinyl-hole{background:#0b0b0b;border:1.5px solid #1e1e1e;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.vinyl-dot{background:var(--accent);opacity:.85;border-radius:50%;width:8px;height:8px}.track-info-main{text-align:center;width:100%;max-width:420px;animation:.25s fadeIn}.track-title-main{color:var(--fg);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:20px;font-weight:700;overflow:hidden}.track-artist-main{color:var(--fg-2);letter-spacing:.16em;font-size:12px;font-weight:500}.progress-wrap{width:100%;max-width:460px}.progress-wrap input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) var(--progress,0%), var(--border-2) var(--progress,0%));cursor:pointer;border-radius:2px;outline:none;width:100%;height:3px;transition:background 50ms linear}.progress-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:14px;height:14px;box-shadow:0 0 6px color-mix(in srgb, var(--accent) 65%, transparent);border-radius:50%;transition:transform .15s}.progress-wrap input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.progress-wrap input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.35)}.progress-wrap input[type=range]:disabled{opacity:.2;cursor:default}.progress-times{color:var(--fg-3);letter-spacing:.08em;justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.controls{align-items:center;gap:16px;display:flex}.btn-ctrl{cursor:pointer;color:var(--fg-3);letter-spacing:.05em;background:0 0;border:none;border-radius:8px;padding:7px;font-family:Courier New,monospace;font-size:13px;line-height:1;transition:color .15s,background .15s,transform .1s}.btn-ctrl:hover:not(:disabled){color:var(--fg);background:var(--surface-2)}.btn-ctrl:active:not(:disabled){transform:scale(.88)}.btn-ctrl:disabled{opacity:.2;cursor:default}.btn-ctrl.active{color:var(--accent)}.btn-play{width:54px;height:54px;box-shadow:0 4px 18px var(--brand-glow);justify-content:center;align-items:center;background:var(--accent)!important;color:#fff!important;border-radius:50%!important;font-size:16px!important;transition:opacity .15s,transform .1s,background .4s!important;display:flex!important}.btn-play:hover:not(:disabled){opacity:.85;box-shadow:0 4px 28px var(--brand-glow)}.btn-play:active:not(:disabled){transform:scale(.92)!important}.btn-play:disabled{box-shadow:none;background:var(--surface-3)!important;color:var(--fg-4)!important}.btn-prev,.btn-next{font-size:15px}.btn-shuffle,.btn-repeat{font-size:17px}.volume-wrap{align-items:center;gap:10px;width:100%;max-width:200px;display:flex}.vol-icon-lo,.vol-icon-hi{color:var(--fg-3);flex-shrink:0;font-size:11px}.volume-wrap input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) var(--volume,80%), var(--border-2) var(--volume,80%));cursor:pointer;border-radius:2px;outline:none;flex:1;height:3px;transition:background 50ms linear}.volume-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--fg);cursor:pointer;width:12px;height:12px;box-shadow:0 0 4px var(--shadow-sm);border-radius:50%;transition:background .15s,transform .15s}.volume-wrap input[type=range]::-moz-range-thumb{background:var(--fg);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px}.volume-wrap input[type=range]:hover::-webkit-slider-thumb{background:var(--accent);transform:scale(1.25)}.barviz{align-items:flex-end;gap:2px;width:20px;height:16px;display:flex}.barviz-bar{background:var(--accent);opacity:.85;transform-origin:bottom;border-radius:1px;flex:1}@keyframes bv0{0%,to{transform:scaleY(1)}50%{transform:scaleY(.25)}}@keyframes bv1{0%,to{transform:scaleY(.35)}40%{transform:scaleY(1)}}@keyframes bv2{0%,to{transform:scaleY(.6)}25%{transform:scaleY(1)}75%{transform:scaleY(.2)}}@keyframes bv0b{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}@keyframes bv1b{0%,to{transform:scaleY(1)}60%{transform:scaleY(.2)}}@keyframes bv2b{0%,to{transform:scaleY(.2)}45%{transform:scaleY(.9)}}@keyframes bv0c{0%,to{transform:scaleY(.7)}33%{transform:scaleY(.15)}66%{transform:scaleY(1)}}.barviz-bar.anim-0{animation:.55s ease-in-out infinite bv0}.barviz-bar.anim-1{animation:.7s ease-in-out 80ms infinite bv1}.barviz-bar.anim-2{animation:.6s ease-in-out .16s infinite bv2}.barviz-bar.anim-0b{animation:.65s ease-in-out .24s infinite bv0b}.barviz-bar.anim-1b{animation:.75s ease-in-out 50ms infinite bv1b}.barviz-bar.anim-2b{animation:.58s ease-in-out .2s infinite bv2b}.barviz-bar.anim-0c{animation:.8s ease-in-out .12s infinite bv0c}.source-badge{letter-spacing:.07em;white-space:nowrap;opacity:.9;border-radius:3px;flex-shrink:0;align-items:center;padding:2px 5px;font-size:.56rem;font-weight:800;display:inline-flex}.source-badge[data-source=soundcloud]{color:#f50;background:#ff550029;border:1px solid #ff550052}.source-badge[data-source=spotify]{color:#1db954;background:#1db95429;border:1px solid #1db95452}.right-panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;width:280px;min-width:280px;animation:.22s slideInLeft;display:flex;overflow:hidden}.right-panel-header{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.right-panel-title{letter-spacing:.12em;color:var(--fg-2);font-family:Courier New,monospace;font-size:13px;font-weight:800}.right-panel-close{color:var(--fg-3);cursor:pointer;background:0 0;border:none;font-size:16px;transition:color .15s,transform .1s}.right-panel-close:hover{color:var(--fg);transform:scale(1.15)}.right-panel-track{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:8px;padding:9px 12px;transition:background .12s,border-color .12s;display:flex}.right-panel-track:hover{background:var(--surface-2)}.right-panel-track.active-panel{border-left-color:var(--accent);background:var(--surface-2)}.right-panel-track-title{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;transition:color .12s;overflow:hidden}.right-panel-track.active-panel .right-panel-track-title{color:var(--accent)}.right-panel-track-artist{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.right-panel-empty{color:var(--fg-3);text-align:center;padding:40px 20px;font-family:Courier New,monospace;font-size:12px}.space-hint{letter-spacing:.12em;opacity:.3;text-transform:uppercase;text-align:center;color:var(--fg-3);font-size:.65rem}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000b3;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border-2);width:290px;max-height:420px;box-shadow:0 20px 60px var(--shadow);border-radius:14px;flex-direction:column;padding:20px;animation:.2s cubic-bezier(.34,1.56,.64,1) popIn;display:flex}.modal-title{color:var(--fg);letter-spacing:.1em;margin-bottom:4px;font-family:Courier New,monospace;font-size:13px;font-weight:700}.modal-subtitle{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;margin-bottom:16px;font-family:Courier New,monospace;font-size:12px;overflow:hidden}.modal-playlist-row{cursor:pointer;background:var(--surface-2);border-radius:7px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:11px 12px;transition:background .12s,transform .1s;display:flex}.modal-playlist-row:hover{background:var(--surface-3);transform:translate(2px)}.modal-playlist-row-name{color:var(--fg);font-family:Courier New,monospace;font-size:13px;font-weight:600}.modal-playlist-row-count{color:var(--fg-3);font-size:11px}.modal-cancel{background:var(--surface-2);border:1px solid var(--border-2);color:var(--fg-2);cursor:pointer;border-radius:7px;margin-top:12px;padding:9px;font-family:Courier New,monospace;font-size:12px;font-weight:700;transition:background .12s,color .12s}.modal-cancel:hover{background:var(--surface-3);color:var(--fg)}.new-playlist-row{border-top:1px solid var(--border);flex-shrink:0;gap:6px;padding:12px 14px;display:flex}.new-playlist-input{background:var(--surface-2);border:1px solid var(--border-2);color:var(--fg);border-radius:5px;outline:none;flex:1;padding:7px 10px;font-family:Courier New,monospace;font-size:13px;transition:border-color .15s}.new-playlist-input:focus{border-color:var(--brand)}.new-playlist-confirm{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:7px 11px;font-size:13px;transition:opacity .15s,transform .1s}.new-playlist-confirm:hover{opacity:.85}.new-playlist-confirm:active{transform:scale(.95)}.new-playlist-cancel{background:var(--surface-2);color:var(--fg-3);cursor:pointer;border:none;border-radius:5px;padding:7px 11px;font-size:13px;transition:background .12s}.new-playlist-cancel:hover{background:var(--surface-3)}.new-playlist-trigger{border:1px dashed var(--border-3);width:calc(100% - 20px);color:var(--fg-3);cursor:pointer;letter-spacing:.12em;background:0 0;border-radius:8px;margin:8px 10px 10px;padding:11px;font-family:Courier New,monospace;font-size:12px;font-weight:700;transition:border-color .15s,color .15s,background .15s}.new-playlist-trigger:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-dim)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:2px}
