:root{--bg:#faf6f0;--card:#fffdf9;--ink:#2a211b;--muted:#7a6a5d;--accent:#b5562b;--line:#e8ddd0;--chip:#f1e7da}
[data-theme=dark]{--bg:#1b1714;--card:#25201c;--ink:#efe6dc;--muted:#a8998b;--accent:#e08a5b;--line:#3a322b;--chip:#322a24}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1714;--card:#25201c;--ink:#efe6dc;--muted:#a8998b;--accent:#e08a5b;--line:#3a322b;--chip:#322a24}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 Georgia,"Iowan Old Style","Palatino Linotype",serif;padding-bottom:190px}
button,select,input{font:inherit;color:inherit}
button,select{background:var(--chip);border:1px solid var(--line);border-radius:10px;padding:.35em .75em;cursor:pointer}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
a{color:var(--accent)}
.muted{color:var(--muted);font-size:.88em}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1em;padding:.6em 1em;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap}
.logo{margin:0;font-size:1.5em;cursor:pointer;letter-spacing:.02em}.logo span{color:var(--accent);font-style:italic}
nav{display:flex;gap:.4em}
main{max-width:860px;margin:0 auto;padding:1em}
h2{font-weight:normal;font-size:1.5em;margin:.4em 0}
.row{display:flex;gap:.8em;align-items:center}
.searchbar{display:flex;gap:.5em;margin:.5em 0 1.2em}
.searchbar input{flex:1;padding:.55em .8em;border-radius:10px;border:1px solid var(--line);background:var(--card)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.8em;margin:.6em 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1em}
.tile{cursor:pointer}.tile img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:var(--chip)}
.tile div{font-size:.92em;margin-top:.3em}
.result img,.pod-head img{width:72px;height:72px;border-radius:10px;object-fit:cover;flex:none}
.pod-head img{width:140px;height:140px}
.ep{display:flex;gap:.8em}
.ep .body{flex:1;min-width:0}
.ep h3{margin:0;font-size:1.05em}
.ep .acts{display:flex;gap:.4em;flex-wrap:wrap;margin-top:.4em}
.badge{display:inline-block;background:var(--chip);border-radius:6px;padding:0 .4em;font-size:.8em;margin-right:.3em;font-family:system-ui,sans-serif}
.progress{height:3px;background:var(--line);border-radius:2px;margin-top:.4em}.progress i{display:block;height:100%;background:var(--accent);border-radius:2px}
.notes{overflow-wrap:anywhere}.notes img{max-width:100%}
.ts{font-family:ui-monospace,monospace;font-size:.9em}
table.info{border-collapse:collapse;width:100%;font-family:system-ui,sans-serif;font-size:.92em}
table.info td{padding:.3em .5em;border-bottom:1px solid var(--line)}table.info td:first-child{color:var(--muted);width:40%}
.chapters li{cursor:pointer;padding:.15em 0}.chapters li.cur{color:var(--accent);font-weight:bold}
.transcript{max-height:60vh;overflow:auto;white-space:pre-wrap}
.transcript p{margin:.2em 0;cursor:pointer}.transcript p.cur{background:var(--chip)}
.tabs{display:flex;gap:.4em;margin:1em 0 .4em;flex-wrap:wrap}.tabs button.on{background:var(--accent);color:#fff}
.player{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:.5em 1em calc(.6em + env(safe-area-inset-bottom));z-index:10;box-shadow:0 -4px 20px #0002}
.player.hidden{display:none}
.np{display:flex;gap:.7em;align-items:center;max-width:860px;margin:0 auto}
.np img{width:44px;height:44px;border-radius:8px;object-fit:cover}
.np-text{min-width:0}#np-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seek{display:flex;gap:.6em;align-items:center;max-width:860px;margin:.3em auto;font-family:ui-monospace,monospace;font-size:.8em}
.seek input{flex:1;accent-color:var(--accent)}
.controls{display:flex;gap:.4em;justify-content:center;align-items:center;flex-wrap:wrap}
.controls .big{font-size:1.3em;width:2.6em;height:2.6em;border-radius:50%;background:var(--accent);color:#fff;border:none}
.settings label{display:block;margin:.4em 0}
.settings input{width:5em}
.toast{position:fixed;bottom:200px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:.5em 1em;border-radius:10px;z-index:20}
/* browse */
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8em}
.cat{display:flex;flex-direction:column;gap:.2em;padding:1em;border-radius:14px;text-decoration:none;color:var(--ink);border:1px solid var(--line);
  background:linear-gradient(135deg,hsl(calc(18 + var(--h)) 55% 50% / .22),var(--card) 70%)}
.cat:hover{border-color:var(--accent)}.cat .ic{font-size:1.8em;line-height:1}
.sec{font-weight:normal;font-size:1.2em;margin:1.2em 0 .5em;border-bottom:2px solid var(--accent);padding-bottom:.2em}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8em}
.pick{display:flex;gap:.7em;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.7em;cursor:pointer}
.pick:hover{border-color:var(--accent)}
.pick img{width:96px;height:96px;border-radius:10px;object-fit:cover;flex:none}
.pick .pb{min-width:0}.pick .why{font-style:italic;font-size:.9em;margin:.2em 0 .3em}
.housepick{border:2px solid var(--accent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--card)),var(--card))}
.badge.house{background:var(--accent);color:#fff}.badge.hifi{background:#2f6f5e;color:#fff}
.chartrow{display:flex;gap:.7em;overflow-x:auto;padding-bottom:.6em;scroll-snap-type:x mandatory}
.chart{flex:0 0 112px;scroll-snap-align:start;position:relative;text-decoration:none;color:var(--ink);font-size:.82em;opacity:.92}
.chart img{width:112px;height:112px;border-radius:10px;object-fit:cover;border:1px solid var(--line)}
.chart .rank{position:absolute;top:4px;left:4px;background:var(--ink);color:var(--bg);border-radius:6px;padding:0 .4em;font-family:system-ui,sans-serif}
.ct{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:500px){.top nav button{padding:.3em .5em;font-size:.9em}.pick img{width:80px;height:80px}}
.preview{margin:.25em 0 .1em;font-size:.92em;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.more{display:flex;gap:1em;align-items:center;justify-content:center;margin:1em 0}
#topsearch{flex:1;max-width:420px;min-width:180px}
#topsearch input{width:100%;padding:.4em .9em;border-radius:999px;border:1px solid var(--line);background:var(--card)}
#topsearch input:focus{outline:2px solid var(--accent);border-color:transparent}
.result{cursor:pointer}.result:hover{border-color:var(--accent)}
@media (max-width:700px){.top{gap:.5em}#topsearch{order:3;flex:1 0 100%;max-width:none}}
.sugg{margin-top:2em}.sugg .note{font-style:italic;margin-top:.8em}
.sugg{padding-bottom:40vh}.sugg .sec,.vibe{scroll-margin-top:90px}
.vibe{font-weight:normal;font-size:1.02em;margin:1em 0 .4em}
a.pick{text-decoration:none;color:var(--ink)}
:target,section{scroll-margin-top:90px}
.badge.explicit{background:#666;color:#fff;font-weight:600;font-size:.7em;vertical-align:middle}
/* ---- home ---- */
.home-sec{margin:.4em 0 1.6em}
.hh{font-size:1.35em;margin:.2em 0 .6em}.hh .muted{font-size:.55em}
.hsub{font-weight:normal;font-size:1.05em;margin:1em 0 .5em;color:var(--muted)}
.empty{background:var(--card);border:1px dashed var(--line);border-radius:14px;padding:.8em 1em;font-size:.95em}
.shelf,.keep{display:flex;gap:.8em;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.4em;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.shelf::-webkit-scrollbar,.keep::-webkit-scrollbar{display:none}
.shelf-tile{flex:none;width:112px;scroll-snap-align:start;color:var(--ink);text-decoration:none;font-size:.85em;line-height:1.3}
.shelf-tile img{width:112px;height:112px;object-fit:cover;border-radius:14px;display:block;margin-bottom:.35em;background:var(--chip);box-shadow:0 3px 10px #0002}
.shelf-tile span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.keep-card{flex:none;width:280px;scroll-snap-align:start;display:flex;gap:.6em;align-items:center;text-align:left;background:var(--card);border-radius:14px;padding:.5em}
.keep-card img{width:56px;height:56px;border-radius:10px;object-fit:cover;flex:none}
.kt{flex:1;min-width:0;display:flex;flex-direction:column;font-size:.85em;line-height:1.3}.kt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kplay{width:34px;height:34px;flex:none;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:.8em}
.pills{display:grid;grid-template-columns:repeat(2,1fr);gap:.55em}
@media (min-width:640px){.pills{grid-template-columns:repeat(5,1fr)}}
.pill{display:flex;align-items:center;gap:.5em;padding:.7em .8em;border-radius:16px;text-decoration:none;color:var(--ink);font-family:system-ui,sans-serif;font-size:.92em;font-weight:600;
  background:linear-gradient(135deg,hsl(var(--h) 60% 88% / .9),hsl(calc(var(--h) + 30) 55% 80% / .7));border:1px solid hsl(var(--h) 40% 75% / .6);transition:transform .12s}
[data-theme=dark] .pill{background:linear-gradient(135deg,hsl(var(--h) 35% 26%),hsl(calc(var(--h) + 30) 30% 20%));border-color:hsl(var(--h) 30% 32%)}
.pill:active{transform:scale(.97)}.pill .em{font-size:1.3em}
.charts{display:grid;gap:.8em}@media (min-width:640px){.charts{grid-template-columns:1fr 1fr}}
.chartcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.6em .8em}
.chead{display:flex;justify-content:space-between;align-items:baseline;text-decoration:none;color:var(--ink);font-family:system-ui,sans-serif;font-weight:700;padding:.1em 0 .4em;border-bottom:1px solid var(--line)}
.chead .muted{font-weight:normal;color:var(--accent)}
.ctop{list-style:none;margin:0;padding:0;min-height:3em}.ctop li{padding:.35em 0}
.ctop a{display:flex;align-items:center;gap:.6em;text-decoration:none;color:var(--ink)}
.ctop .rk{width:1.2em;text-align:center;font-weight:700;color:var(--accent);font-family:system-ui,sans-serif}
.ctop img{width:44px;height:44px;border-radius:9px;object-fit:cover;flex:none;background:var(--chip)}
.cn{display:flex;flex-direction:column;min-width:0;font-size:.88em;line-height:1.3}.cn b,.cn .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-wrap summary{cursor:pointer;font-weight:bold}
@media (max-width:600px){.top{gap:.5em}#topsearch{order:3;flex-basis:100%}#topsearch input{width:100%}nav{gap:.25em}nav button{padding:.3em .55em;font-size:.88em}}
.hnote{margin:-.45em 0 .7em;color:var(--muted);font-size:.85em;font-style:italic}
.homefoot{text-align:center;font-size:.9em;margin:1.2em 0 .4em}
.about{max-width:620px;margin:0 auto}.about .lead{font-size:1.08em;margin:.3em 0 1.2em}
.ab-sec{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.7em 1em;margin:.7em 0}
.ab-sec h3{margin:0 0 .25em;font-family:system-ui,sans-serif;font-size:1em;display:flex;gap:.5em;align-items:center}.ab-sec .em{font-size:1.3em}
.ab-sec p{margin:0}.ab-foot{margin:1.4em 0 .6em}
