:root{--bg: #100e0c;--bg-2: #181512;--panel: #1c1915;--line: rgba(243, 234, 215, .08);--gold: #d4a24c;--gold-2: #e8c27a;--cream: #f3ead7;--muted: #9a8f7c;--ink: #2a2116;--shadow: 0 24px 80px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--cream);font-family:Outfit,sans-serif}body{min-height:100dvh;background:radial-gradient(900px 500px at 10% -10%,rgba(212,162,76,.14),transparent 55%),radial-gradient(700px 400px at 110% 10%,rgba(120,70,30,.18),transparent 50%),var(--bg)}button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}.app{display:grid;grid-template-rows:auto 1fr auto;height:100dvh;overflow:hidden}header{display:flex;align-items:center;gap:24px;padding:22px 28px 12px}.brand{display:flex;align-items:center;gap:12px;min-width:240px;width:auto;text-align:left;padding:0}.brand:hover h1{color:var(--gold-2)}.mark{width:40px;height:40px;border-radius:10px;object-fit:cover;flex-shrink:0;box-shadow:0 0 0 1px #f3ead71a}.brand h1{margin:0;font-family:"Instrument Serif",serif;font-size:28px;font-weight:400;letter-spacing:.02em}.brand p{margin:0;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}.search{flex:1;max-width:520px;position:relative}.search input{width:100%;height:44px;padding:0 16px 0 46px;border:1px solid var(--line);border-radius:999px;background:#ffffff08;color:var(--cream);outline:none}.search input:focus{border-color:#d4a24c8c}.search svg{position:absolute;left:14px;top:50%;width:20px;height:20px;transform:translateY(-50%);opacity:.7}.header-meter{margin-left:auto}header .vu-gauge{width:128px;height:50px}main{display:grid;grid-template-columns:260px 1fr;gap:20px;min-height:0;padding:8px 28px 12px;overflow:hidden}.sidebar,.stage{background:#1c1915b8;border:1px solid var(--line);border-radius:22px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar{padding:18px 12px;min-height:0;height:100%;overflow-y:auto}.sidebar h2,.album-meta p,.track-meta,.crumb-sep{margin:0;color:var(--muted);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;flex-shrink:0}.crumb{color:var(--gold-2);padding:0;width:auto;letter-spacing:.04em}.crumb:hover{text-decoration:underline}.artists{display:flex;flex-direction:column;gap:4px;margin-top:12px}.artist-btn,.track,.ctrl{width:100%;text-align:left;border-radius:12px;padding:10px 12px}.artist-btn:hover,.track:hover,.ctrl:hover{background:#f3ead70d}.artist-btn.active,.track.active{background:#d4a24c24;color:var(--gold-2)}.artist-btn small{display:block;color:var(--muted);font-size:12px}.stage{min-height:0;height:100%;padding:22px;display:flex;flex-direction:column;overflow:hidden}.albums{display:grid;grid-template-columns:repeat(auto-fill,240px);gap:18px;align-content:start;justify-content:start;flex:1;min-height:0;overflow-y:auto}.album-card{text-align:left;padding:0 2px 10px;border-radius:18px;overflow:visible;background:transparent}.cover,.cover-fallback{aspect-ratio:1;width:100%;border-radius:18px;object-fit:cover;background:#2a2318;box-shadow:var(--shadow)}.cover-fallback{display:grid;place-items:center;font-family:"Instrument Serif",serif;font-size:42px;color:var(--gold-2);background:radial-gradient(circle at 30% 25%,rgba(243,234,215,.18),transparent 36%),linear-gradient(160deg,#3a2c18,#161310)}.album-card h3{margin:12px 0 2px;font-size:16px;font-weight:500}.album-card p,.empty p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.album-view{display:grid;grid-template-columns:280px 1fr;gap:28px;flex:1;min-height:0;overflow:hidden;align-items:stretch}.album-hero{min-height:0;overflow-y:auto}.cover-hit{display:block;cursor:context-menu;-webkit-user-select:none;user-select:none}.cover-hit img{-webkit-user-drag:none}.ctx-menu{position:fixed;z-index:20;min-width:180px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#1c1915f5;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.ctx-menu button{display:block;width:100%;padding:10px 12px;border-radius:8px;text-align:left;color:var(--cream)}.ctx-menu button:hover{background:#d4a24c24;color:var(--gold-2)}.album-id3{margin-top:18px}.album-id3 h3,.album-id3 p{margin:0;color:var(--muted);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.album-id3 p{margin-top:8px;letter-spacing:.04em;text-transform:none;font-size:13px}.album-id3 dl{margin:10px 0 0;display:flex;flex-direction:column;gap:7px}.album-id3 dl div{display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:start}.album-id3 dt{color:var(--muted);font-size:12px}.album-id3 dd{margin:0;color:var(--cream);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.album-hero h2{margin:16px 0 4px;font-family:"Instrument Serif",serif;font-size:40px;font-weight:400;line-height:1.05}.save-album{margin-top:16px;padding:10px 14px;border:1px solid rgba(212,162,76,.35);border-radius:999px;color:var(--gold-2);width:auto}.save-album:disabled{opacity:.6;cursor:default}.saved{color:var(--gold-2);letter-spacing:.08em}.tracks{display:flex;flex-direction:column;gap:4px;min-height:0;height:100%;overflow-y:auto;padding-right:4px}.track{position:relative;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;overflow:hidden;isolation:isolate}.track-progress{position:absolute;inset:0 auto 0 0;z-index:0;background:#d4a24c33;pointer-events:none}.track>:not(.track-progress){position:relative;z-index:1}.track.downloading .track-meta,.saving{color:var(--gold-2);font-variant-numeric:tabular-nums}.track .num{color:var(--muted);font-variant-numeric:tabular-nums}.empty{display:grid;place-items:center;flex:1;min-height:0;text-align:center}.player{z-index:2;flex-shrink:0;display:grid;grid-template-columns:minmax(200px,1fr) minmax(340px,1.6fr) minmax(220px,.85fr);gap:12px 20px;align-items:center;padding:12px 22px 14px;background:#100e0ceb;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.now{display:flex;align-items:center;gap:12px;min-width:0;width:auto;text-align:left;padding:4px 10px 4px 4px;border-radius:14px}.now:hover:not(:disabled){background:#f3ead70d}.now:disabled{cursor:default}.now img,.now-fallback{width:56px;height:56px;border-radius:10px;object-fit:cover;background:#2a2318;flex:none}.now-fallback{display:grid;place-items:center;color:var(--gold)}.now h3,.now p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now h3{font-size:15px;font-weight:500}.now p{color:var(--muted);font-size:13px}.transport{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;max-width:560px;margin:0 auto}.controls{display:flex;align-items:center;justify-content:center;gap:2px}.ctrl{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:50%;color:var(--cream);opacity:.78}.ctrl.skip{width:40px;height:40px;color:var(--cream);opacity:.92;background:#f3ead714;box-shadow:inset 0 0 0 1px #e8c27a59}.ctrl:hover:not(:disabled){opacity:1;background:#f3ead714}.ctrl:disabled{opacity:.22;cursor:default}.ctrl.on{color:var(--gold-2);opacity:1}.play{width:56px;height:56px;margin:0 6px;background:var(--cream);color:var(--ink);opacity:1}.play:hover:not(:disabled){background:#fff6e4}.seek{display:flex;align-items:center;gap:10px;width:100%;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.seek input,.vol input{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:5px;border-radius:99px;background:#f3ead738;outline:none;cursor:pointer;accent-color:var(--gold-2)}.seek input::-webkit-slider-runnable-track,.vol input::-webkit-slider-runnable-track{height:5px;border-radius:99px;background:transparent}.seek input{flex:1}.seek input::-webkit-slider-thumb,.vol input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin-top:-4.5px;border:0;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 3px #100e0c59}.seek input::-moz-range-thumb,.vol input::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 3px #100e0c59}.vol .ctrl{width:44px;height:44px;flex:none}.vol svg{display:block;width:28px;height:28px}.queue-pos{min-width:3.2em;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;text-align:right}.status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.cache-status{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.extras{display:flex;justify-content:flex-end;align-items:center;align-self:end;gap:12px;padding-bottom:2px}.vol{display:flex;align-items:center;gap:10px;width:168px}.vol input{width:100%}.vu{display:flex;align-items:center}.vu-gauge{width:92px;height:44px;border-radius:10px;background:radial-gradient(circle at 50% 110%,rgba(232,194,122,.2),transparent 50%),#241c14;box-shadow:inset 0 0 0 1px #f3ead724}.vu-gauge svg{display:block;width:100%;height:100%;overflow:visible}.vu-arc{fill:none;stroke:#f3ead759;stroke-width:3.5;stroke-linecap:round}.vu-red{fill:none;stroke:#d4653a;stroke-width:3.5;stroke-linecap:round}.vu-tick{stroke:#f3ead766;stroke-width:1}.vu-label,.vu-ch{fill:#c4b59a;font-size:7px;font-family:Outfit,sans-serif;letter-spacing:.06em;dominant-baseline:middle}.vu-ch{font-size:9px;font-weight:600;fill:var(--gold-2)}.vu-needle{stroke:var(--cream);stroke-width:2;stroke-linecap:butt}.vu-pivot{fill:var(--gold)}.vu-peak{fill:#3a2218}.vu-peak.on{fill:#e07a4a;filter:drop-shadow(0 0 3px rgba(224,122,74,.8))}@media(max-width:860px){main{grid-template-rows:auto 1fr;grid-template-columns:1fr;padding:8px 16px 12px}.sidebar{max-height:180px}header,.player{padding-left:16px;padding-right:16px}.sidebar{position:static}.album-view{grid-template-columns:1fr;overflow-y:auto}.tracks{height:auto;overflow:visible}.player{grid-template-columns:1fr auto;grid-template-areas:"now extras" "transport transport"}.now{grid-area:now}.transport{grid-area:transport;max-width:none}.extras{grid-area:extras;display:none}.header-meter{display:none}.album-hero{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:end}.album-hero h2{font-size:28px}.album-id3,.save-album{grid-column:1 / -1}}
