: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;scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none;width:0;height:0}html,body,#app{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--cream);font-family:Outfit,sans-serif}body{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{position:fixed;left:0;right:0;top:var(--app-offset, 0px);display:grid;grid-template-rows:auto 1fr auto;height:var(--app-height, 100dvh);overflow:hidden}.top{min-width:0}header{display:flex;align-items:center;gap:24px;padding:22px 28px 12px;padding-top:max(22px,env(safe-area-inset-top))}.install-bar{display:flex;align-items:center;gap:10px;margin:0 28px 8px;padding:8px 12px;border:1px solid rgba(212,162,76,.28);border-radius:12px;background:#d4a24c1a;color:var(--gold-2)}.install-bar p{margin:0;flex:1;min-width:0;font-size:13px;line-height:1.35}.install-bar svg{display:inline-block;vertical-align:-2px}.install-go{flex:none;padding:6px 12px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:13px}.install-hide{flex:none;width:32px;height:32px;border-radius:50%;color:var(--muted);font-size:20px;line-height:1}@media(display-mode:standalone){.install-bar{display:none}}.brand{display:flex;align-items:center;gap:12px;min-width:180px;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}.search-toggle{display:none}.search-typeahead{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:12;display:flex;flex-direction:column;gap:2px;max-height:min(420px,60vh);overflow-y:auto;padding:10px;border:1px solid var(--line);border-radius:18px;background:#1c1915f5;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.search-typeahead .search-count{padding:2px 10px 8px}.search-empty{margin:0;padding:10px 10px 6px;color:var(--muted);font-size:13px}.search-hit.cursor{background:#d4a24c24;color:var(--gold-2)}.search-results{display:flex;flex-direction:column;gap:10px;min-height:0;height:100%}.search-count{margin:0;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.search-hit{grid-template-columns:40px minmax(0,1fr);gap:16px;padding:8px 10px;border-radius:12px;text-align:left}.search-hit .cover,.search-hit .cover-fallback{width:40px;min-width:40px;height:40px;border-radius:8px;object-fit:cover;box-shadow:none}.search-hit .cover-fallback{display:grid;place-items:center;background:#2a2318;color:var(--gold-2);font-family:"Instrument Serif",serif;font-size:16px}.track-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.track-sub{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}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,.album-meta p,.crumb-sep{margin:0;color:var(--muted);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.stage-bar{display:none}.album-heading{min-width:0}.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{display:flex;flex-direction:column;min-height:0;overflow:hidden}.album-heading{flex:none;min-width:0;margin-top:14px}.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{flex:1;min-height:0;margin-top:18px;overflow-y:auto;overscroll-behavior:contain}.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 minmax(0,1fr) auto;align-items:center;gap:12px;overflow:hidden;isolation:isolate}.track-progress{position:absolute;inset:0 auto 0 0;z-index:0;max-width:100%;border-radius:inherit;background:#d4a24c33;pointer-events:none}.track>:not(.track-progress){position:relative;z-index:1}.track-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-meta{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;margin:0;flex-shrink:0;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.track-size{color:var(--muted)}.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>div{min-width:0}.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){header{gap:8px;padding:8px 12px 4px;padding-top:max(8px,env(safe-area-inset-top))}.install-bar{margin:0 12px 6px;padding:7px 10px}.install-bar p{font-size:12px}header.album-nav,header.artist-nav{gap:6px}.brand{min-width:0;gap:8px}.brand h1{font-size:18px}.mark{width:32px;height:32px;border-radius:8px}.search{max-width:none;min-width:0}.search input{height:38px;padding:0 12px 0 38px}.search svg{left:12px;width:16px;height:16px}.header-meter{display:none}main{display:flex;flex-direction:column;gap:6px;min-height:0;padding:2px 12px 0;overflow:hidden}.sidebar{height:auto;max-height:none;padding:8px;border-radius:16px;overflow:hidden}.sidebar h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.artists{flex-direction:row;gap:8px;margin-top:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.artists::-webkit-scrollbar{display:none}.artist-btn{width:auto;flex:0 0 auto;padding:8px 14px;border-radius:999px;background:#f3ead70d;white-space:nowrap}.artist-btn small{display:none}.stage{flex:1;min-height:0;height:0;padding:12px 12px 8px;border-radius:16px}main:has(.album-view) .sidebar,.app:has(header.searching) .sidebar{display:none}.app:has(header.searching) .install-bar{display:none}.stage:has(.search-results){min-height:0}.crumbs{display:none}header .back-btn,header .nav-btn{display:inline-flex;align-items:center;gap:2px;width:auto;min-height:36px;padding:4px 8px;border-radius:999px;background:#f3ead70f;color:var(--gold-2)}header .back-btn{min-width:0;max-width:38%;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}header .back-btn span{overflow:hidden;text-overflow:ellipsis}header .back-btn svg{flex:none}header .album-switch{display:flex;align-items:center;gap:0;flex:none}header .album-switch span{min-width:2.4em;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;text-align:center}header .nav-btn{width:36px;height:36px;padding:0;justify-content:center}header .nav-btn:disabled{opacity:.28;cursor:default}header:not(.searching) .search{display:none}header.searching .search{display:block;flex:1;min-width:0}header.searching .now-chip,header.searching .album-switch,header.searching .brand h1{display:none}header.searching .back-btn{display:none}.search-toggle{display:grid;place-items:center;flex:none;width:40px;height:40px;margin-left:auto;border-radius:50%;background:#f3ead70f;color:var(--gold-2)}header.album-nav .back-btn,header.has-now .back-btn{max-width:calc(100% - 188px)}header .now-chip{display:flex;align-items:center;gap:8px;min-width:0;max-width:calc(100% - 132px);width:auto;padding:3px 10px 3px 3px;border-radius:999px;background:#f3ead70f;text-align:left}header .now-chip img,header .now-chip-fallback{width:28px;height:28px;border-radius:7px;object-fit:cover;flex:none}header .now-chip-fallback{display:grid;place-items:center;background:#2a2318;color:var(--gold-2);font-family:"Instrument Serif",serif;font-size:14px}header .now-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cream);font-size:13px}.albums{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.albums:has(>.album-card:only-child){grid-template-columns:minmax(0,280px)}.album-card{padding-bottom:4px}.cover,.cover-fallback{border-radius:14px}.album-card h3{margin:8px 0 2px;font-size:14px}.album-card p,.empty p{font-size:12px}.album-view,.search-results{display:flex;flex-direction:column;grid-template-columns:unset;gap:10px;flex:1;min-height:0;height:auto;overflow:hidden;touch-action:pan-y}.search-results{overflow-y:auto;padding-bottom:88px;-webkit-overflow-scrolling:touch}.album-hero{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px 12px;align-items:center;flex:none;min-width:0;overflow:hidden}.album-hero>.cover-hit{width:72px;min-width:72px}.album-hero h2{margin:0 0 2px;font-size:20px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.album-heading{display:flex;flex-direction:column;justify-content:center;min-width:0;margin-top:0}.album-heading .album-meta{display:none}.album-heading>p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-id3{display:none}.save-album{margin-top:8px;padding:6px 10px;font-size:12px;max-width:100%;align-self:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracks{flex:1;min-height:0;height:auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.track{grid-template-columns:28px minmax(0,1fr) auto;gap:8px;padding:8px 10px}.search-hit{grid-template-columns:40px minmax(0,1fr);gap:16px}.player{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"seek" "controls";gap:6px;align-items:center;padding:8px 12px max(10px,env(safe-area-inset-bottom))}.player.idle{padding-top:10px}.player .now,.player.idle .seek{display:none}.app:has(header.searching) .player{display:none}.transport{display:contents}.controls{grid-area:controls;width:100%;justify-content:center;gap:18px}.seek{grid-area:seek;gap:6px;font-size:10px}.seek input{height:4px}.seek input::-webkit-slider-runnable-track{height:4px}.seek input::-webkit-slider-thumb{width:12px;height:12px;margin-top:-4px}.ctrl{width:30px;height:30px}.ctrl.skip{width:52px;height:52px}.ctrl.skip svg{width:28px;height:28px}.play{width:72px;height:72px;margin:0}.play svg{width:36px;height:36px}.extras{display:none}}@media(max-width:480px){.brand h1{display:none}.controls .ctrl:not(.skip):not(.play){display:none}}
