@font-face{font-family:Share Tech Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ShareTechMono-Regular.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--cyan: #00f3ff;--green: #00ff41;--red: #ff3355;--pink: #ff2d95;--bg: oklch(2% .006 195);--bg-card: oklch(5% .008 195);--bg-surface: oklch(9% .01 195);--bg-elevated: oklch(12% .012 195);--border: oklch(18% .012 195);--border-dim: oklch(13% .008 195);--text: oklch(88% .005 195);--text-dim: oklch(50% .012 195);--text-muted: oklch(35% .008 195);--cyan-dim: oklch(68% .18 195);--glow-cyan: 0 0 8px oklch(68% .18 195 / .45);--glow-green: 0 0 8px oklch(65% .22 145 / .45);--font: "Share Tech Mono", monospace;--radius: 2px;--player-h: 108px;--header-h: 42px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.crt-overlay{position:fixed;inset:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,transparent,transparent 2px,oklch(0% 0 0 / .05) 2px,oklch(0% 0 0 / .05) 4px)}#boot-overlay{position:fixed;inset:0;z-index:10000;pointer-events:none;background:#0a2225;background:oklch(14% .05 195);opacity:1}#boot-overlay:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,oklch(0% 0 0 / .15) 2px,oklch(0% 0 0 / .15) 4px);z-index:1;pointer-events:none}#boot-overlay:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,oklch(22% .08 195 / .25) 0%,transparent 65%);z-index:0;pointer-events:none}#boot-overlay.shutoff{animation:crt-shutoff .5s cubic-bezier(.4,0,1,1) forwards}@keyframes crt-shutoff{0%{opacity:1;clip-path:inset(0 0 0 0)}8%{opacity:1;clip-path:inset(0 0 0 0);filter:brightness(1.3)}25%{opacity:1;clip-path:inset(30% 0 30% 0);filter:brightness(1.6)}45%{opacity:1;clip-path:inset(44% 0 44% 0);filter:brightness(2.5)}60%{opacity:1;clip-path:inset(48.5% 0 48.5% 0);filter:brightness(4)}72%{opacity:1;clip-path:inset(49.8% 0 49.8% 0);filter:brightness(6)}80%{opacity:.6;clip-path:inset(50% 0 50% 0);filter:brightness(8)}to{opacity:0;clip-path:inset(50% 0 50% 0);filter:brightness(0)}}#boot-text{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10001;pointer-events:none;font-family:var(--font);font-size:11px;letter-spacing:.25em;color:#00bebf;color:oklch(72% .18 195);text-transform:uppercase;text-shadow:0 0 8px oklch(68% .18 195 / .6);white-space:nowrap;opacity:.9}#boot-text.shutoff{animation:crt-shutoff-text .5s cubic-bezier(.4,0,1,1) forwards}@keyframes crt-shutoff-text{0%{opacity:.9;transform:translate(-50%,-50%) scaleY(1)}30%{opacity:.7;transform:translate(-50%,-50%) scaleY(.6)}55%{opacity:.3;transform:translate(-50%,-50%) scaleY(.1)}70%{opacity:0;transform:translate(-50%,-50%) scaleY(0)}to{opacity:0;transform:translate(-50%,-50%) scaleY(0)}}#app{display:flex;flex-direction:column;height:100%;height:100dvh;max-height:100dvh;overflow:hidden;position:relative}#header{flex-shrink:0;height:var(--header-h);display:flex;align-items:center;gap:10px;padding:0 10px;border-bottom:1px solid var(--border-dim);background:var(--bg-card);z-index:10}.logo-text{font-size:15px;letter-spacing:.06em;color:var(--cyan);flex-shrink:0;line-height:1;filter:drop-shadow(0 0 5px oklch(68% .18 195 / .5));text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none}.logo-accent{color:#5a6666;filter:none}.header-status{width:4px;height:4px;border-radius:50%;background:var(--text-muted);flex-shrink:0;transition:background .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.header-status.active{background:var(--green);box-shadow:0 0 6px #00ad2f99;box-shadow:0 0 6px oklch(65% .22 145 / .6)}.header-status.buffering{background:var(--cyan-dim);animation:status-blink 1.2s cubic-bezier(.65,0,.35,1) infinite}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.25}}#main-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}#main-content::-webkit-scrollbar{width:3px}#main-content::-webkit-scrollbar-thumb{background:var(--border)}#main-content::-webkit-scrollbar-track{background:transparent}#welcome{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:20px 16px 24px;min-height:160px;gap:6px}#welcome:before{content:"sabbyvibes v2 // signal intercept";display:block;font-size:9px;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}#welcome h1{font-size:20px;letter-spacing:.12em;color:#8ac4c3;margin:0;line-height:1}#welcome h1 .logo-accent{color:#617676;filter:none}#welcome-prompt{display:flex;align-items:center;gap:0;cursor:text;min-height:18px}#welcome-prompt .prompt-label{font-size:11px;color:var(--text-muted);letter-spacing:.04em;white-space:nowrap;pointer-events:none}#welcome-prompt .prompt-cursor{color:var(--cyan-dim);animation:blink-cursor 1.1s step-end infinite;font-size:11px;line-height:1;pointer-events:none}#welcome-search{display:none;background:none;border:none;color:var(--text);font-family:var(--font);font-size:11px;letter-spacing:.04em;outline:none;padding:0;width:100%;caret-color:var(--cyan-dim)}#welcome-prompt.active .prompt-label,#welcome-prompt.active .prompt-cursor{display:none}#welcome-prompt.active #welcome-search{display:block}#welcome-prompt.active:before{content:">";color:var(--cyan-dim);font-size:11px;margin-right:6px;flex-shrink:0}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.prompt-clear{display:none;flex-shrink:0;color:var(--text-muted);transition:color .15s linear}.prompt-clear:hover{color:var(--text)}#welcome-prompt.searching{flex:1;min-width:0;min-height:0;gap:0}#welcome-prompt.searching .prompt-label,#welcome-prompt.searching .prompt-cursor{display:none}#welcome-prompt.searching #welcome-search{display:block;font-size:12px}#welcome-prompt.searching:before{content:">";color:var(--cyan-dim);font-size:12px;margin-right:6px;flex-shrink:0}#welcome-prompt.searching .prompt-clear{display:flex;align-items:center;justify-content:center;margin-left:8px}#search-results{padding-bottom:8px}#results-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;font-size:9px;color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase}#results-loading,#results-empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-muted);font-size:11px;letter-spacing:.06em}.spinner{width:14px;height:14px;border:1px solid var(--border);border-top-color:var(--cyan-dim);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.results-section{margin-bottom:2px}.results-section-header{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;padding:8px 12px 5px;color:var(--text-muted);font-family:var(--font);font-size:9px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .12s cubic-bezier(.16,1,.3,1);text-align:left;position:relative}.results-section-header:before{content:"──";color:var(--border);margin-right:2px;font-size:8px;letter-spacing:-.05em}.results-section-header:hover{color:var(--text-dim)}.results-section-header:hover svg{color:var(--text-dim)}.section-count{color:var(--text-muted);font-size:9px;opacity:.7}.section-chevron{margin-left:auto;flex-shrink:0;transition:transform .18s cubic-bezier(.16,1,.3,1);color:var(--text-muted);opacity:.6}.results-section-body{overflow:hidden;transition:max-height .2s cubic-bezier(.16,1,.3,1)}.results-section-body.collapsed{max-height:0!important}.track-row{display:grid;grid-template-columns:28px 36px 1fr auto;align-items:center;gap:8px;padding:5px 12px 5px 8px;cursor:pointer;transition:background .1s cubic-bezier(.16,1,.3,1);min-height:42px;position:relative}.track-row:hover{background:var(--bg-surface)}.track-row:active{background:var(--bg-elevated)}.track-row.playing{background:#010404}.track-row.playing .track-cover{outline:1px solid oklch(68% .18 195 / .6);outline-offset:-1px}.track-index{font-size:10px;color:var(--text-muted);text-align:right;line-height:1;font-variant-numeric:tabular-nums;transition:opacity .1s;flex-shrink:0;-webkit-user-select:none;user-select:none}.track-row.playing .track-index:after{content:"▶";color:var(--cyan-dim);font-size:9px}.track-row.playing .track-index-num{display:none}.drag-handle{font-size:12px;color:var(--text-muted);cursor:grab;line-height:1;-webkit-user-select:none;user-select:none;opacity:0;text-align:center;transition:opacity .1s;letter-spacing:-.06em}.track-row:hover .drag-handle{opacity:.5}.track-row.dragging{opacity:.35}.track-row.drag-over{background:#030909;box-shadow:inset 0 1px #00afb080;box-shadow:inset 0 1px oklch(68% .18 195 / .5)}.track-row .track-cover{width:36px;height:36px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;background:var(--bg-elevated);display:block}.track-cover--round{border-radius:50%!important}.track-row .track-info{min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}.track-row .track-name{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.track-row.playing .track-name{color:#e4e9e9}.track-row .track-artist{font-size:10px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.track-row .track-duration{font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;letter-spacing:.02em;white-space:nowrap}.row-enter-icon{flex-shrink:0;color:var(--text-muted);opacity:0;transition:opacity .1s}.track-row:hover .row-enter-icon{opacity:.6}.track-meta{display:flex;align-items:center;gap:4px}.queue-remove-btn{flex-shrink:0;opacity:0;transition:opacity .1s,color .1s;padding:3px;color:var(--text-muted)}.track-row:hover .queue-remove-btn{opacity:1}.queue-remove-btn:hover{color:var(--red)!important}.queue-empty{padding:24px 12px;color:var(--text-muted);font-size:11px;letter-spacing:.06em}#queue-header{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;font-size:9px;color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase}#queue-count{font-size:9px;color:var(--text-muted);opacity:.6}#clear-queue-btn{margin-left:auto;color:var(--text-muted);transition:color .12s}#clear-queue-btn:hover{color:var(--red)}#side-panel{position:absolute;bottom:var(--player-h);left:0;right:0;top:var(--header-h);background:#000000f7;border-top:1px solid var(--border);z-index:20;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .25s cubic-bezier(.16,1,.3,1);overflow:hidden;visibility:hidden;pointer-events:none}#side-panel.active{transform:translateY(0);visibility:visible;pointer-events:auto}#side-panel-resizer{display:none}.side-panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-dim);flex-shrink:0}.side-panel-header h3{font-size:9px;color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase}#side-panel-controls{display:flex;align-items:center;gap:4px}#side-panel-content{flex:1;overflow-y:auto;padding:10px 12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}#side-panel-content::-webkit-scrollbar{width:2px}#side-panel-content::-webkit-scrollbar-thumb{background:var(--border)}#fullscreen-cover-overlay{position:fixed;inset:0;background:#000000f7;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center}#fullscreen-lyrics-overlay{position:fixed;inset:0;background:#000000fa;z-index:55;display:flex;flex-direction:column;overflow:hidden}.fs-bg-layer{position:absolute;inset:-40px;z-index:0;opacity:0;transition:opacity .5s cubic-bezier(.16,1,.3,1);pointer-events:none}.fs-bg-layer.visible{opacity:1}.fs-bg-layer img{width:100%;height:100%;object-fit:cover;filter:blur(50px) saturate(.6) brightness(.25);animation:fs-bg-pan 25s cubic-bezier(.45,0,.55,1) infinite alternate}@keyframes fs-bg-pan{0%{transform:scale(1.15) translate(0)}25%{transform:scale(1.2) translate(-2%,1%)}50%{transform:scale(1.18) translate(1%,-1.5%)}75%{transform:scale(1.22) translate(-1%,-.5%)}to{transform:scale(1.15) translate(1.5%,1%)}}.fs-visualizer{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;transition:opacity .3s cubic-bezier(.16,1,.3,1);pointer-events:none}.fs-visualizer.visible{opacity:1}.fs-viz-label{position:absolute;top:56px;right:12px;z-index:3;padding:4px 8px;border:1px solid oklch(68% .18 195 / .35);background:#000101e6;color:var(--cyan);font-size:9px;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1)}.fs-viz-label.visible{opacity:1;transform:translateY(0)}#fullscreen-lyrics-overlay.has-bg{background:#0009}.fs-lyrics-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;flex-shrink:0;border-bottom:1px solid var(--border-dim);position:relative;z-index:2}.fs-toolbar{display:flex;align-items:center;gap:2px;margin-left:auto;margin-right:8px}.fs-toolbar .btn-icon{color:var(--text-muted);transition:color .15s cubic-bezier(.16,1,.3,1),background .15s cubic-bezier(.16,1,.3,1)}.fs-toolbar .btn-icon:hover{color:var(--text-dim)}.fs-toolbar .btn-icon.active{color:var(--cyan);background:#000404}.fs-lyrics-track{display:flex;align-items:center;gap:10px;flex:1;min-width:0}#fs-lyrics-cover{width:38px;height:38px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;background:var(--bg-elevated);outline:1px solid oklch(100% 0 0 / .06);outline-offset:-1px}.fs-lyrics-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}#fs-lyrics-title{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#fs-lyrics-artist{font-size:10px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#fs-lyrics-content{flex:1;overflow-y:auto;padding:12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;position:relative;z-index:2;transition:opacity .2s cubic-bezier(.16,1,.3,1)}#fullscreen-lyrics-overlay.lyrics-hidden #fs-lyrics-content{opacity:0;pointer-events:none}#fs-lyrics-content::-webkit-scrollbar{width:2px}#fs-lyrics-content::-webkit-scrollbar-thumb{background:var(--cyan-dim)}.fs-lyrics-seek{display:flex;align-items:center;gap:8px;padding:6px 12px;flex-shrink:0;position:relative;z-index:2}.fs-lyrics-seek span{font-size:9px;color:var(--text-muted);min-width:30px;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.03em}.fs-lyrics-seek input[type=range]{flex:1;height:3px;background:linear-gradient(to right,oklch(68% .18 195) var(--fs-seek-pct, 0%),oklch(18% .008 195) var(--fs-seek-pct, 0%))}.fs-lyrics-seek input[type=range]:hover,.fs-lyrics-seek input[type=range]:focus{height:5px}.fs-lyrics-seek input[type=range]:hover::-webkit-slider-thumb,.fs-lyrics-seek input[type=range]:focus::-webkit-slider-thumb,.fs-lyrics-seek input[type=range]:active::-webkit-slider-thumb{width:10px;height:10px;background:var(--cyan);border-radius:0;box-shadow:0 0 6px #00afb080;box-shadow:0 0 6px oklch(68% .18 195 / .5);margin-top:-4px}.fs-lyrics-seek input[type=range]:hover::-moz-range-thumb,.fs-lyrics-seek input[type=range]:focus::-moz-range-thumb,.fs-lyrics-seek input[type=range]:active::-moz-range-thumb{width:10px;height:10px;background:var(--cyan);border-radius:0;box-shadow:0 0 6px #00afb080;box-shadow:0 0 6px oklch(68% .18 195 / .5)}.fs-lyrics-controls{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 12px 14px;flex-shrink:0;position:relative;z-index:2}.fs-volume-inline{position:absolute;right:12px;display:flex;align-items:center;gap:4px}#fs-volume-bar{width:56px;height:2px;background:linear-gradient(to right,oklch(68% .18 195) var(--fs-vol-pct, 50%),oklch(18% .008 195) var(--fs-vol-pct, 50%));border-radius:0;cursor:pointer;flex:none}#fs-volume-bar::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:8px;background:#687474;border-radius:0;border:none;cursor:pointer;transition:background .12s}#fs-volume-bar:hover::-webkit-slider-thumb{background:var(--cyan)}#fs-volume-bar::-moz-range-thumb{width:8px;height:8px;background:#687474;border-radius:0;border:none;cursor:pointer}#fs-volume-bar:hover::-moz-range-thumb{background:var(--cyan)}.fullscreen-lyrics-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:11px;letter-spacing:.06em;padding:24px}.now-playing-bar{flex-shrink:0;background:#000;border-top:1px solid var(--border-dim);padding:6px 10px;display:flex;flex-direction:column;gap:3px;z-index:15;position:relative;transition:border-top-color .3s cubic-bezier(.16,1,.3,1)}.now-playing-bar:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:var(--cyan);opacity:0;transition:opacity .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);box-shadow:none}.now-playing-bar.has-track:before{opacity:1;box-shadow:0 0 8px #00afb04d,0 0 20px #00afb014;box-shadow:0 0 8px oklch(68% .18 195 / .3),0 0 20px oklch(68% .18 195 / .08)}#autoplay-banner{display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 8px;background:#010404;border:1px solid oklch(60% .18 195 / .5);border-radius:var(--radius);color:var(--cyan-dim);font-size:10px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;animation:pulse-banner 2s cubic-bezier(.65,0,.35,1) infinite}@keyframes pulse-banner{0%,to{opacity:1}50%{opacity:.45}}.player-track-info{display:flex;align-items:center;gap:8px}.player-track-info .cover{width:40px;height:40px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;background:var(--bg-elevated);display:none;outline:1px solid oklch(100% 0 0 / .06);outline-offset:-1px;cursor:pointer;transition:outline-color .2s cubic-bezier(.16,1,.3,1)}.player-track-info .cover[src]:not([src=""]){display:block}.now-playing-bar.has-track .player-track-info .cover[src]:not([src=""]){outline-color:#00afb047;outline-color:oklch(68% .18 195 / .28);animation:cover-pulse 3s cubic-bezier(.65,0,.35,1) infinite}@keyframes cover-pulse{0%,to{outline-color:#00afb047;outline-color:oklch(68% .18 195 / .28)}50%{outline-color:#00afb014;outline-color:oklch(68% .18 195 / .08)}}.cover-zoom-overlay{position:fixed;inset:0;z-index:100;background:#000000eb;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s cubic-bezier(.16,1,.3,1)}.cover-zoom-overlay.visible{opacity:1;pointer-events:auto}.cover-zoom-overlay img{max-width:85%;max-height:85%;border-radius:var(--radius);outline:1px solid oklch(68% .18 195 / .25);box-shadow:0 0 40px #00afb026;box-shadow:0 0 40px oklch(68% .18 195 / .15);transform:scale(.85);transition:transform .2s cubic-bezier(.16,1,.3,1)}.cover-zoom-overlay.visible img{transform:scale(1)}.track-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.track-text .title{font-size:11px;color:#c1c5c5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.now-playing-bar.has-track .track-text .title{color:#dadfdf}.track-text .artist{font-size:9px;color:#515a5a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.seek-row{position:relative;display:flex;align-items:center;gap:6px;height:14px}.seek-row span{font-size:9px;color:#424949;min-width:28px;letter-spacing:.04em;font-variant-numeric:tabular-nums;pointer-events:none;flex-shrink:0;line-height:1}#current-time{text-align:left}#total-duration{text-align:right}#seek-bar{flex:1}.controls-row{display:flex;align-items:center;gap:0}.spacer{flex:1}.volume-control{display:flex;align-items:center;gap:2px}#volume-bar{width:56px}@media(max-width:380px){#volume-bar{display:none}}.btn-icon{background:none;border:none;color:#566060;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;border-radius:var(--radius);transition:color .12s cubic-bezier(.16,1,.3,1),background .12s cubic-bezier(.16,1,.3,1)}.btn-icon:hover{color:var(--cyan)}.btn-icon:active{background:#030606;color:var(--cyan)}.btn-icon.active{color:var(--cyan);filter:drop-shadow(0 0 4px oklch(68% .18 195 / .45))}.btn-icon.small{padding:4px}.btn-icon.play-btn{background:transparent;color:var(--cyan-dim);width:34px;height:34px;border:1px solid oklch(68% .18 195 / .5);border-radius:var(--radius);margin:0 6px;transition:background .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1);box-shadow:0 0 6px #00afb01f;box-shadow:0 0 6px oklch(68% .18 195 / .12)}.btn-icon.play-btn:hover{background:#00afb0;background:oklch(68% .18 195);color:#000;border-color:#00afb0;border-color:oklch(68% .18 195);box-shadow:0 0 12px #00afb059,0 0 24px #00afb01a;box-shadow:0 0 12px oklch(68% .18 195 / .35),0 0 24px oklch(68% .18 195 / .1)}.btn-icon.play-btn:active{background:#008586;background:oklch(55% .18 195);border-color:#008586;border-color:oklch(55% .18 195);color:#000;box-shadow:0 0 4px #00afb026;box-shadow:0 0 4px oklch(68% .18 195 / .15)}#prev-btn,#next-btn{color:#7a8282;padding:5px}#prev-btn:hover,#next-btn:hover{color:#d8e0df}#shuffle-btn.active svg,#repeat-btn.active svg{stroke:var(--cyan);filter:drop-shadow(0 0 4px oklch(68% .18 195 / .5))}#radio-btn.active{color:var(--cyan)}#radio-btn.active svg{stroke:var(--cyan);filter:drop-shadow(0 0 4px oklch(68% .18 195 / .5))}input[type=range]:disabled{opacity:.3;cursor:not-allowed}button:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}#results-list[style*="pointer-events: none"],#queue-list[style*="pointer-events: none"]{opacity:.45}input[type=range]{-webkit-appearance:none;appearance:none;height:2px;background:#0e1313;border-radius:0;outline:none;cursor:pointer}#seek-bar{flex:1;height:3px;background:linear-gradient(to right,oklch(68% .18 195) var(--seek-pct, 0%),oklch(18% .008 195) var(--seek-pct, 0%));transition:height .15s cubic-bezier(.16,1,.3,1)}.seek-row:hover #seek-bar,#seek-bar:focus{height:5px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:0;height:0;background:transparent;border:none;cursor:pointer;transition:width .12s cubic-bezier(.16,1,.3,1),height .12s cubic-bezier(.16,1,.3,1)}input[type=range]::-moz-range-thumb{width:0;height:0;background:transparent;border:none;cursor:pointer}#seek-bar:hover::-webkit-slider-thumb,#seek-bar:focus::-webkit-slider-thumb,#seek-bar:active::-webkit-slider-thumb{width:10px;height:10px;background:var(--cyan);border-radius:0;box-shadow:0 0 6px #00afb080;box-shadow:0 0 6px oklch(68% .18 195 / .5);margin-top:-4px}#seek-bar:hover::-moz-range-thumb,#seek-bar:focus::-moz-range-thumb,#seek-bar:active::-moz-range-thumb{width:10px;height:10px;background:var(--cyan);border-radius:0;box-shadow:0 0 6px #00afb080;box-shadow:0 0 6px oklch(68% .18 195 / .5)}#volume-bar::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:8px;background:#687474;border-radius:0;border:none;cursor:pointer;transition:background .12s}#volume-bar:hover::-webkit-slider-thumb{background:var(--cyan)}#volume-bar::-moz-range-thumb{width:8px;height:8px;background:#687474;border-radius:0;border:none;cursor:pointer}#volume-bar:hover::-moz-range-thumb{background:var(--cyan)}#party-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 10px;background:#000101;border-bottom:1px solid var(--border-dim);font-size:10px;letter-spacing:.06em;z-index:11}#party-bar.party-bar--visible{animation:party-bar-in .22s cubic-bezier(.16,1,.3,1)}@keyframes party-bar-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.party-left{display:flex;align-items:center;gap:6px}.party-badge{font-size:9px;letter-spacing:.12em;padding:2px 5px;border-radius:var(--radius)}.party-badge--host{background:#010404;border:1px solid oklch(68% .18 195 / .5);color:var(--cyan-dim)}.party-badge--guest{background:#010201;border:1px solid oklch(65% .22 145 / .5);color:#00ad2f;color:oklch(65% .22 145)}#party-members{display:flex;align-items:center;gap:3px;color:var(--text-muted)}.party-center{display:flex;align-items:center;gap:5px;color:var(--text-muted);flex:1;justify-content:center}.party-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.party-dot--synced{background:#00ad2f;background:oklch(65% .22 145);box-shadow:0 0 4px #00ad2f99;box-shadow:0 0 4px oklch(65% .22 145 / .6);animation:party-pulse 2.2s cubic-bezier(.65,0,.35,1) infinite}.party-dot--drifting{background:#f2943c;box-shadow:0 0 4px #f2943c99;animation:party-pulse .7s cubic-bezier(.65,0,.35,1) infinite}.party-dot--offline{background:var(--text-muted);box-shadow:none;animation:none}@keyframes party-pulse{0%,to{opacity:1}50%{opacity:.35}}#party-status{font-size:9px;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;transition:color .2s}.party-right{display:flex;align-items:center;gap:4px}.party-takeover{display:flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid oklch(65% .22 145 / .6)!important;color:#00ad2f!important;color:oklch(65% .22 145)!important;border-radius:var(--radius);font-size:9px;letter-spacing:.08em;transition:background .15s}.party-takeover:hover{background:#010201!important}#party-lock-btn{padding:3px 5px;border-radius:var(--radius);color:var(--text-muted);border:1px solid transparent;transition:color .15s,border-color .15s}#party-lock-btn:hover{color:var(--cyan-dim);border-color:#00afb04d;border-color:oklch(68% .18 195 / .3)}#party-lock-btn.locked{color:var(--cyan-dim);border-color:#00afb080;border-color:oklch(68% .18 195 / .5)}#party-lock-btn .lock-icon-closed,#party-lock-btn.locked .lock-icon-open{display:none}#party-lock-btn.locked .lock-icon-closed{display:block}.party-bar--locked #party-role-badge{opacity:.6}#context-menu{position:fixed;z-index:200;min-width:156px;background:#000101;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #0009;padding:3px 0;animation:ctx-in .08s cubic-bezier(.16,1,.3,1)}@keyframes ctx-in{0%{opacity:0;transform:scale(.97) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.ctx-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:7px 12px;color:var(--text);font-family:var(--font);font-size:11px;letter-spacing:.02em;cursor:pointer;transition:background .08s,color .08s;text-align:left;white-space:nowrap}.ctx-item:hover{background:var(--bg-surface);color:var(--text)}.ctx-item svg{flex-shrink:0;color:var(--text-muted);transition:color .08s}.ctx-item:hover svg{color:var(--text-dim)}.ctx-divider{height:1px;background:var(--border-dim);margin:3px 0}.notification-toast{position:fixed;bottom:calc(var(--player-h) + 8px);left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-dim);padding:5px 14px;border-radius:var(--radius);font-size:11px;letter-spacing:.04em;z-index:100;white-space:nowrap;animation:toast-in .2s cubic-bezier(.16,1,.3,1)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.quality-badge{display:inline-flex;align-items:center;gap:2px;font-size:8px;padding:1px 3px;border-radius:1px;background:none;border:1px solid var(--border);color:var(--text-muted);vertical-align:middle;letter-spacing:.06em;text-transform:uppercase}.quality-badge.quality-atmos{border-color:#00afb080;border-color:oklch(68% .18 195 / .5);color:var(--cyan-dim)}.quality-badge.quality-hires{border-color:#00ad2f80;border-color:oklch(65% .22 145 / .5);color:#00ad2f;color:oklch(65% .22 145)}.quality-badge.quality-lossless{border-color:#00afb066;border-color:oklch(68% .18 195 / .4);color:var(--cyan-dim)}.lyrics-timing-controls{display:flex;align-items:center;gap:4px}.lyrics-timing-display{font-size:10px;color:var(--text-muted);min-width:36px;text-align:center}am-lyrics{display:block;width:100%;min-height:200px;font-family:var(--font);--am-font-family: "Share Tech Mono", monospace}.genius-annotation-modal{position:fixed;inset:0;background:#000000d9;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}.hidden{display:none!important}.error-text{color:var(--red);font-size:11px}#artist-page,#album-page{display:flex;flex-direction:column;min-height:100%}.page-header{display:flex;align-items:center;padding:8px 12px 4px;border-bottom:1px solid var(--border-dim)}.page-back-btn{display:flex;align-items:center;gap:5px;background:none;border:none;color:var(--text-muted);font-family:var(--font);font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:4px 6px 4px 2px;transition:color .12s cubic-bezier(.16,1,.3,1)}.page-back-btn:hover{color:var(--cyan-dim)}.page-back-btn svg{flex-shrink:0;transition:transform .12s cubic-bezier(.16,1,.3,1)}.page-back-btn:hover svg{transform:translate(-2px)}.page-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-muted);font-size:11px;letter-spacing:.06em}.page-hero{flex-shrink:0}.artist-hero{display:flex;align-items:flex-end;gap:14px;padding:16px 14px 14px;position:relative;background:linear-gradient(to bottom,oklch(8% .01 195) 0%,var(--bg) 100%)}.artist-hero-img{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0;outline:1px solid var(--border);outline-offset:-1px}.artist-hero-img--placeholder{background:var(--bg-surface);width:80px;height:80px;border-radius:50%;flex-shrink:0}.artist-hero-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.artist-hero-label{font-size:8px;letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase}.artist-hero-name{font-family:var(--font);font-size:20px;color:var(--text);letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.15}.album-hero{display:flex;align-items:flex-end;gap:14px;padding:16px 14px 14px;background:linear-gradient(to bottom,oklch(8% .01 195) 0%,var(--bg) 100%)}.album-hero-img{width:80px;height:80px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;outline:1px solid var(--border);outline-offset:-1px}.album-hero-img--placeholder{background:var(--bg-surface);width:80px;height:80px;border-radius:var(--radius);flex-shrink:0}.album-hero-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.album-hero-label{font-size:8px;letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase}.album-hero-title{font-family:var(--font);font-size:18px;color:var(--text);letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.2}.album-hero-artist{font-size:12px;color:var(--cyan-dim);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-hero-detail{font-size:10px;color:var(--text-muted);letter-spacing:.06em}.page-section{margin-bottom:4px}.page-section-header{display:flex;align-items:center;gap:6px;padding:8px 12px 5px;color:var(--text-muted);font-size:9px;letter-spacing:.14em;text-transform:uppercase;position:relative}.page-section-header:before{content:"──";color:var(--border);margin-right:2px;font-size:8px;letter-spacing:-.05em}.page-section-header .section-count{opacity:.7}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;padding:6px 12px 14px}.album-card{display:flex;flex-direction:column;gap:4px;cursor:pointer;padding:4px;border-radius:var(--radius);transition:background .1s cubic-bezier(.16,1,.3,1)}.album-card:hover{background:var(--bg-surface)}.album-card:active{background:var(--bg-elevated)}.album-card-img{width:100%;aspect-ratio:1;border-radius:var(--radius);object-fit:cover;outline:1px solid var(--border-dim);outline-offset:-1px;display:block}.album-card-img--placeholder{width:100%;aspect-ratio:1;border-radius:var(--radius);background:var(--bg-surface);display:block}.album-card-title{font-size:10px;color:var(--text);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.album-card-year{font-size:9px;color:var(--text-muted);letter-spacing:.04em}
