/* Sanandaj Music – site theme (charcoal, accent #9f1239; no inline scripts, CSP-safe) */
@font-face{font-family:Plex;src:url(/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Plex;src:url(/fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Plex;src:url(/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Plex;src:url(/fonts/ibm-plex-sans-arabic-arabic-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --bg:#1c1c1c;--side:#212121;--card:#262626;--hover:#2c2c2c;--line:#303030;--line2:#2b2b2b;
  --txt:#f5f5f5;--mute:#a6a6a6;
  --ac:#9f1239;--ac2:#e11d48;--ac-text:#fb7185;
  --player-h:96px;--side-w:228px;--aside-w:320px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{background:var(--bg);color:var(--txt);font-family:Inter,Plex,sans-serif;font-size:12px;min-height:100vh;padding-bottom:var(--player-h);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
button:disabled{cursor:default;opacity:.45}
:focus-visible{outline:2px solid var(--ac-text);outline-offset:2px}
.fa{font-family:Plex,Inter,sans-serif}
.card .m .fa,.li .fa{unicode-bidi:plaintext}

/* ---------- layout (frame is LTR like the design: sidebar left; page content stays RTL) ---------- */
.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);align-items:start;align-content:start;min-height:calc(100vh - var(--player-h));direction:ltr}
.app>*{min-width:0}
.page{direction:rtl;padding:18px 28px 28px}
.page-home{direction:ltr;padding:0}

/* ---------- sidebar ---------- */
.side{position:sticky;top:0;height:calc(100vh - var(--player-h));background:#0f0f0f;border-right:1px solid #2a2a2a;padding:18px 20px 0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent}
.logo{display:block;margin:0 0 22px -4px}
.logo img{width:190px;height:auto}
.wordmark{margin:4px 0 26px 0;width:max-content}
.wordmark img{display:block;width:190px;height:auto}
.wm-text{display:block;font:700 25px/1 Inter,sans-serif;letter-spacing:-.6px;color:#fff;white-space:nowrap}
.wm-text i{font-style:normal;color:var(--ac2)}
.wm-wave{display:block;width:84%;height:11px;margin-top:7px;fill:none;stroke:var(--ac2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wordmark:hover .wm-wave{stroke:var(--ac-text)}
.nav a{display:flex;align-items:center;gap:16px;height:46px;padding:0 20px;border-radius:24px;color:#d4d4d4;font-size:14.5px;transition:background .2s,color .2s}
.nav a:hover{background:#1f1f1f;color:#fff}
.nav svg,.lib svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.nav a.on{background:linear-gradient(90deg,var(--ac),#7f1d3a);color:#fff;font-weight:600;height:48px;margin-bottom:8px;box-shadow:0 8px 22px rgba(159,18,57,.35)}
.lib{border-top:1px solid var(--line);margin-top:18px;padding-top:22px}
.lib h4{font-size:15px;font-weight:600;margin:0 0 6px 16px}
.lib a{display:flex;align-items:center;gap:16px;height:38px;padding:0 16px;border-radius:19px;color:#cfcfcf;font-size:13px;transition:background .2s,color .2s}
.lib svg{width:20px;height:20px}
.lib a:hover{background:#1f1f1f;color:#fff}
.lib a.on{color:var(--ac-text);background:rgba(159,18,57,.16)}
.side-waves{display:block;margin:auto -20px 0;width:calc(100% + 40px);height:90px;opacity:.5;flex-shrink:0}

/* ---------- main ---------- */
.main{min-width:0}
.top{display:flex;align-items:center;gap:20px;height:86px;padding:0 28px;direction:ltr;background:#121212;border-bottom:1px solid #2a2a2a}
.search{flex:0 1 394px;height:44px;background:#222;border:1px solid transparent;border-radius:22px;display:flex;align-items:center;gap:12px;padding:0 16px}
.search svg{width:20px;height:20px;stroke:#ddd;fill:none;stroke-width:1.8;flex-shrink:0}
.search input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--txt);font:inherit;font-size:13px}
.search input::placeholder{color:#8a8a8a;font-family:Inter,sans-serif}
.search:focus-within{border-color:#4a4a4a}
.tnav{display:flex;gap:30px;margin-left:auto;font-size:14px;white-space:nowrap}
.tnav a{position:relative;color:#d9d9d9;padding:6px 0;transition:color .2s}
.tnav a:hover{color:#fff}
.tnav a.on{color:#fff}
.tnav a.on:after{content:"";position:absolute;left:-8px;right:-8px;bottom:-24px;height:2px;border-radius:2px;background:var(--ac2)}
.top-user{margin-left:14px;color:#e5e5e5;display:grid;place-items:center}
.top-user svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.6}
.top-user:hover{color:var(--ac-text)}

.sec-h{display:flex;justify-content:space-between;align-items:center;margin:18px 4px 10px}
.sec-h h2{font-size:14.5px;font-weight:600}
.sec-h a{color:var(--ac-text);font-size:11px}
.empty{color:var(--mute);font-size:14px;text-align:center;padding:80px 0}

/* round artist photos */
.circ{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.cc{position:relative;aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 12px 26px rgba(0,0,0,.45);display:block}
.cc img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cc:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.28);transition:background .3s}
.cc:hover img{transform:scale(1.06)}
.cc:hover:after{background:rgba(0,0,0,.15)}
.cc b{position:absolute;inset:0;z-index:1;display:grid;place-items:center;text-align:center;padding:0 10px;font:700 14px Inter,Plex,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.9);direction:ltr}

/* cards */
.row5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);border-color:#3c3c3c;box-shadow:0 14px 30px rgba(0,0,0,.45)}
.card .cv{aspect-ratio:240/150;position:relative;overflow:hidden;background:#2a2a2a}
.card .cv img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .cv img{transform:scale(1.05)}
.play{position:absolute;bottom:10px;right:10px;width:26px;height:26px;border-radius:50%;border:1.5px solid #fff;display:grid;place-items:center;background:rgba(0,0,0,.35);transition:background .2s,border-color .2s}
.play:after{content:"";border-left:7px solid #fff;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;margin-left:2px}
.card:hover .play{background:var(--ac);border-color:var(--ac)}
.card .m{padding:9px 11px;direction:ltr;text-align:left}
.card .m b{display:block;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .m span{display:block;font-size:10.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card.album .m>div{min-width:0}

/* genres */
.genres{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.gen{height:86px;border-radius:10px;overflow:hidden;position:relative;border:1px solid var(--line);direction:ltr;display:block;background:#2a2a2a}
.gen img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gen:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.65),rgba(0,0,0,0) 70%)}
.gen:hover img{transform:scale(1.06)}
.gen .t{position:absolute;z-index:1;bottom:10px;left:12px;line-height:1.35}
.gen .t b{font-size:12.5px;font-weight:600;display:block}
.gen .t span{font-size:11px;color:#ddd}
.gen .arr{position:absolute;z-index:1;bottom:12px;right:12px;color:#fff;font-size:14px}

/* ---------- aside ---------- */
.aside{position:sticky;top:0;padding:16px 16px 16px 0;display:flex;flex-direction:column;gap:10px}
.box{background:var(--side);border:1px solid var(--line);border-radius:14px;padding:13px 16px}
.box h3{font-size:13.5px;font-weight:600;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.box h3 a{color:var(--ac-text);font-size:11px;font-weight:500}
.li{display:flex;align-items:center;gap:12px;direction:ltr;padding:5px 0;border-bottom:1px solid var(--line2)}
.li:last-child{border:0}
.li img{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#2a2a2a}
.li .tx{min-width:0}
.li b{font-size:11.5px;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li span{font-size:10px;color:var(--mute)}
.li .end{margin-left:auto;color:var(--mute);font-size:10.5px;flex-shrink:0}
.li:hover b,.ar:hover b{color:var(--ac-text)}
.rank{width:14px;color:var(--ac-text);font-weight:600;font-size:13px;flex-shrink:0}
.ar{display:flex;align-items:center;gap:14px;direction:ltr;padding:4px 0}
.av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;color:#fff;border:1px solid #3a3a3a;flex-shrink:0;object-fit:cover}
.av-1{background:#9f1239}.av-2{background:#be123c}.av-3{background:#881337}.av-4{background:#e11d48}.av-5{background:#701a32}
.ar b{font-size:11.5px;font-weight:500}

/* ---------- player ---------- */
.player{position:fixed;left:0;right:0;bottom:0;z-index:50;height:var(--player-h);background:#0f0f0f;border-top:1px solid #2a2a2a;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,600px) minmax(0,1fr);align-items:center;direction:ltr}
.pl-l{display:flex;gap:16px;align-items:center;padding-left:20px;min-width:0}
.pl-l img{width:68px;height:68px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#2a2a2a}
.pl-l .pl-meta{min-width:0;flex:0 1 auto;text-align:start}
.pl-ic{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#ddd;flex-shrink:0;transition:color .2s,background .2s}
.pl-ic:hover:not(:disabled){background:#222;color:#fff}
.pl-ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pl-ic .dot{fill:currentColor;stroke:none}
.pl-l .pl-ic:first-of-type{margin-left:14px}
.pl-ic[aria-pressed="true"]{color:var(--ac2)}
.pl-ic[aria-pressed="true"] svg path{fill:var(--ac2)}
a.pl-np:not([href]){opacity:.45;pointer-events:none}
.pl-c{padding:0 10px}
.ctrls{display:flex;justify-content:center;align-items:center;gap:40px;margin-bottom:4px}
.ctrls svg{width:22px;height:22px;stroke:#ddd;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ctrls .fill{fill:#ddd}
.ctrls button:hover svg{stroke:#fff}
.pp{width:48px;height:48px;border-radius:50%;background:var(--ac);display:grid;place-items:center;box-shadow:0 8px 24px rgba(159,18,57,.45);transition:transform .15s,background .2s}
.pp:hover{background:#b3163f;transform:scale(1.05)}
.ctrls .pp svg{width:20px;height:20px;fill:#fff;stroke:none}
.prog{display:flex;align-items:center;gap:14px;color:#ddd;font-size:13px;font-variant-numeric:tabular-nums}
.pl-r{display:flex;gap:22px;justify-content:flex-end;padding-right:28px;align-items:center}
.pl-r>button svg{width:22px;height:22px;stroke:#ddd;fill:none;stroke-width:1.7}
.eq{display:flex;align-items:flex-end;gap:3px;height:20px;width:22px}
.eq i{flex:1;background:var(--ac2);border-radius:1px;height:40%}
.eq i:nth-child(2){height:75%}.eq i:nth-child(3){height:55%}.eq i:nth-child(4){height:100%}
.player.is-playing .eq i{animation:eq 1s ease-in-out infinite alternate}
.player.is-playing .eq i:nth-child(2){animation-delay:-.4s}
.player.is-playing .eq i:nth-child(3){animation-delay:-.7s}
.player.is-playing .eq i:nth-child(4){animation-delay:-.2s}
@keyframes eq{0%{height:20%}100%{height:100%}}
@media (prefers-reduced-motion:reduce){.player.is-playing .eq i{animation:none}}

/* queue popover */
.queue{position:absolute;right:20px;bottom:calc(100% + 10px);width:340px;max-height:min(420px,60vh);overflow-y:auto;background:#222;border:1px solid #363636;border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.55);padding:12px;direction:rtl;scrollbar-width:thin;scrollbar-color:#444 transparent}
.queue h4{font-size:13.5px;font-weight:600;margin:2px 6px 8px}
.queue ol{list-style:none}
.queue button{display:flex;align-items:center;gap:10px;width:100%;padding:6px;border-radius:8px;direction:ltr;text-align:left}
.queue button:hover{background:#2c2c2c}
.queue button.on{background:rgba(159,18,57,.2)}
.queue button.on b{color:var(--ac-text)}
.queue img{width:32px;height:32px;border-radius:4px;object-fit:cover;flex-shrink:0;background:#2a2a2a}
.queue span{min-width:0;display:block}
.queue b{display:block;font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}
.queue small{font-size:11px;color:var(--mute)}
.q-empty{display:none;color:var(--mute);font-size:12.5px;text-align:center;padding:16px 0}
.queue.is-empty .q-empty{display:block}

/* ---------- detail pages ---------- */
.phead{position:relative;display:flex;align-items:flex-end;gap:28px;padding:34px 30px 30px;border-radius:18px;overflow:hidden;margin-bottom:22px;isolation:isolate;background:var(--side);border:1px solid var(--line)}
.phead .amb{position:absolute;inset:-40px;z-index:-1;background-size:cover;background-position:center;filter:blur(50px) saturate(1.1);opacity:.35}
.phead:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(28,28,28,.95),rgba(28,28,28,.35))}
.phead .art{width:220px;height:220px;border-radius:12px;object-fit:cover;flex-shrink:0;box-shadow:0 22px 50px rgba(0,0,0,.55);background:#2a2a2a}
.phead .art.round{border-radius:50%}
.phead .info{min-width:0}
.kind{font-size:12px;color:var(--ac-text);font-weight:600}
.phead h1{font:700 40px/1.15 Inter,Plex,sans-serif;margin:8px 0 4px;direction:ltr;text-align:right;letter-spacing:-.5px}
.phead .loc{font-size:17px;color:#dcdcdc}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;color:var(--mute);font-size:12.5px}
.meta a{color:#fff;font-weight:600}
.meta i{width:4px;height:4px;border-radius:50%;background:#555}
.acts{display:flex;align-items:center;gap:12px;margin-top:20px}
.bplay{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 26px;border-radius:22px;background:linear-gradient(135deg,var(--ac2),var(--ac));color:#fff;font-size:14px;font-weight:600;box-shadow:0 10px 26px rgba(159,18,57,.45)}
.bplay svg{width:14px;height:14px;fill:#fff}
.bicon{width:44px;height:44px;border-radius:50%;border:1px solid #444;display:grid;place-items:center;color:#ddd}
.bicon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.soc{display:flex;gap:10px}
.soc a{width:36px;height:36px;border-radius:50%;background:#2c2c2c;display:grid;place-items:center}
.soc svg{width:16px;height:16px;fill:#ddd}

.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.panel{background:var(--side);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.panel h2{font-size:15px;font-weight:600;margin-bottom:10px}

/* track list */
.tracks{list-style:none}
.tr{display:grid;grid-template-columns:28px 44px minmax(0,1fr) 140px 70px;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;direction:ltr}
.tr:hover{background:var(--hover)}
.tr.on{background:rgba(159,18,57,.18)}
.tr .n{color:var(--mute);font-size:12px;text-align:center}
.tr.on .n{color:var(--ac-text)}
.tr img{width:44px;height:44px;border-radius:6px;object-fit:cover;background:#2a2a2a}
.tr .t{min-width:0}
.tr .t b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr.on .t b{color:var(--ac-text)}
.tr .t span{font-size:11.5px;color:var(--mute)}
.tr .al{font-size:11.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr .pc{font-size:11.5px;color:var(--mute);text-align:right}
.tr-h{color:#777;font-size:11px;border-bottom:1px solid var(--line);border-radius:0;margin-bottom:6px;padding-bottom:10px}
.tr-h:hover{background:none}

/* lyrics */
.lyrics{direction:rtl;text-align:center;font-family:Plex,Inter,sans-serif;font-size:15px;line-height:2.3;color:#cfcfcf;white-space:pre-line}
.lrc p{color:#777;transition:color .3s}
.lrc p.on{color:#fff;font-weight:600;font-size:17px}
.lrc p.past{color:#a6a6a6}
.badge-sync{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--ac-text);background:rgba(159,18,57,.18);padding:2px 10px;border-radius:12px;margin-right:8px;vertical-align:middle}
.bio{font-size:13px;line-height:2;color:#cfcfcf;white-space:pre-line}
.page-empty{color:var(--mute);text-align:center;padding:30px 0;font-size:13px}
.tracks.compact .tr{grid-template-columns:22px 40px minmax(0,1fr) 54px;gap:10px;padding:7px 6px}
.tracks.compact .tr img{width:40px;height:40px}

.phead .loc{direction:rtl}
.meta a.soft{color:var(--mute);font-weight:400}
.meta a:hover{color:var(--ac-text)}
.desc{margin-top:16px;color:#cfcfcf;font-size:13px;line-height:2;max-width:640px;white-space:pre-line}
.page-h{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:6px 4px 16px}
.page-h h1{font-size:22px;font-weight:700}
button.bplay{border:0;cursor:pointer;font-family:Plex,Inter,sans-serif}
.cols>.panel+.panel{margin-top:0}
.panel+.panel,.panel+.sec-h{margin-top:18px}
:not(.cols)>.panel+.panel{margin-top:18px}
.tr{cursor:pointer}
.tr-h{cursor:default}
.tr .t .tl{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--txt)}
.tr .t .ta{font-size:11.5px;color:var(--mute)}
.tr .t a:hover,.tr .al a:hover{color:var(--ac-text)}
.tr.on .t .tl{color:var(--ac-text)}
.tr.on .n{font-size:0}
.tr.on .n:before{content:"";display:inline-block;width:10px;height:10px;background:var(--ac-text);clip-path:polygon(0 0,100% 50%,0 100%)}
.tr.on.playing .n:before{width:12px;clip-path:none;background:linear-gradient(90deg,var(--ac-text) 0 3px,transparent 3px 4.5px,var(--ac-text) 4.5px 7.5px,transparent 7.5px 9px,var(--ac-text) 9px 12px)}
.lyrics.lrc{white-space:normal;line-height:2.4;max-height:440px;overflow-y:auto;position:relative;scrollbar-width:thin;scrollbar-color:#444 transparent}
.lrc p{cursor:pointer;padding:0 6px}
.nav .soon{display:flex;align-items:center;gap:14px;padding:10px 14px;color:#777;font-size:13.5px;cursor:default}
.nav .soon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;flex-shrink:0}
.nav small{margin-right:auto;font-size:10px;color:#777;border:1px solid #3a3a3a;border-radius:8px;padding:0 6px}
.pager{display:flex;justify-content:center;gap:12px;margin:20px 0}
.pager a,.pager span{padding:8px 18px;border-radius:18px;border:1px solid var(--line);font-size:12.5px}
.pager a:hover{border-color:var(--ac);color:var(--ac-text)}
.pager .off{color:#666}
.toast{position:fixed;left:50%;bottom:calc(var(--player-h) + 18px);transform:translate(-50%,20px);background:#2c2c2c;border:1px solid #3a3a3a;color:#fff;padding:9px 18px;border-radius:20px;font-size:12.5px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:60}
.toast.show{opacity:1;transform:translate(-50%,0)}
.is-loading #app{opacity:.55;transition:opacity .15s}
#main:focus{outline:none}

/* player: live state */
.pl-meta{min-width:0}
.pl-title{font-size:16px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;unicode-bidi:plaintext}
a.pl-title[href]:not([href="#"]):hover{color:var(--ac-text)}
.pl-artist{font-size:14px;color:#bbb;white-space:nowrap;display:block;overflow:hidden;text-overflow:ellipsis;max-width:200px;unicode-bidi:plaintext}
.ctrls button[aria-pressed="true"] svg{stroke:var(--ac-text)}
.ctrls .pp .i-pause{display:none}
.player.is-playing .pp .i-play{display:none}
.player.is-playing .pp .i-pause{display:block}
.player.is-muted .pl-r>button[data-act="mute"] svg{stroke:#777}
.range{-webkit-appearance:none;appearance:none;height:14px;background:transparent;cursor:pointer;--p:0%}
.range::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:linear-gradient(90deg,var(--ac2) 0 var(--p),#3a3a3a var(--p) 100%)}
.range::-moz-range-track{height:3px;border-radius:3px;background:#3a3a3a}
.range::-moz-range-progress{height:3px;border-radius:3px;background:var(--ac2)}
.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;margin-top:-4.5px;border:0}
.range::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:0}
.seek{flex:1;min-width:0}
.vol{width:100px;--p:80%}

/* ---------- responsive (frame) ---------- */
@media (max-width:1000px){
  .row5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .genres,.circ{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1180px){
  .tnav{display:none}
  .search{flex:1 1 auto;max-width:520px}
  .top-user{margin-left:auto}
  .player{grid-template-columns:minmax(0,1fr) minmax(0,480px) minmax(0,1fr)}
  .pl-np,.vol{display:none}
  .ctrls{gap:28px}
}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}
  .logo{margin:0}
  .logo img{width:150px}
  .wordmark{margin:2px 0 6px 0}
  .wordmark img{width:170px}
  .nav,.lib{display:flex;overflow-x:auto;width:100%;gap:6px;scrollbar-width:none}
  .lib{border:0;margin:0;padding:0}
  .lib h4,.side-waves{display:none}
  .nav a,.lib a,.nav a.on{white-space:nowrap;margin:0;height:38px;padding:0 14px;font-size:13px;gap:8px;box-shadow:none}
  .nav svg,.lib svg{width:18px;height:18px}
  .top{height:auto;padding:12px 14px}
  .page{padding:14px 14px 24px}
  .player{grid-template-columns:minmax(0,1fr) auto;height:76px}
  :root{--player-h:76px}
  .pl-l{padding-left:12px;gap:10px}
  .pl-l img{width:50px;height:50px}
  .pl-l [data-act="share"],.pl-r{display:none}
  .pl-c{position:static;padding:0}
  .pl-c .prog{position:absolute;left:0;right:0;top:-7px;gap:0;height:14px}
  .pl-c .prog .pl-cur,.pl-c .prog .pl-dur{display:none}
  .pl-c .prog .seek{width:100%;margin:0}
  .pl-c .prog .seek::-webkit-slider-thumb{width:12px;height:12px}
  .pl-l .pl-ic:first-of-type{margin-left:2px}
  .ctrls{gap:16px;margin:0;padding-right:14px}
  .ctrls [data-act="shuffle"],.ctrls [data-act="repeat"]{display:none}
  .pp{width:42px;height:42px}
  .pl-title{font-size:14px;max-width:150px}
  .pl-artist{font-size:12px;max-width:150px}
  .queue{display:none}
}
@media (max-width:560px){
  .row5,.genres{grid-template-columns:repeat(2,minmax(0,1fr))}
  .circ{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .cc b{font-size:11px}
}

@media (max-width:1100px){
  .cols{grid-template-columns:1fr}
  .tr{grid-template-columns:28px 44px minmax(0,1fr) 60px}
  .tr .al{display:none}
}
@media (max-width:860px){
  .phead{flex-direction:column;align-items:center;text-align:center;padding:24px 18px}
  .phead h1{text-align:center;font-size:28px}
  .phead .art{width:180px;height:180px}
  .meta,.acts{justify-content:center}
  .pl-title{max-width:120px}
}

/* ---------- home (design: hero + New Releases / Editor's Selection + Trending / Artists / promo) ---------- */
.hero{position:relative;height:320px;overflow:hidden;border-top:1px solid var(--line2);border-bottom:1px solid var(--line);background:linear-gradient(90deg,#181818,#1d1a1b 50%,#191717)}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s}
.slide.on{opacity:1;visibility:visible}
.slide:before{content:"";position:absolute;left:44%;top:50%;width:520px;height:520px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(225,29,72,.42) 0,rgba(159,18,57,.16) 40%,rgba(159,18,57,0) 70%);pointer-events:none}
.hero-text{position:absolute;left:50px;top:72px;max-width:min(560px,36%);z-index:2}
.tag{color:var(--ac-text);font-size:13px;font-weight:600;letter-spacing:2px}
.hero h1{font:700 52px/1.15 Inter,Plex,sans-serif;letter-spacing:-.5px;margin:4px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}
.hero h1 a:hover{color:#fff;text-shadow:0 0 30px rgba(225,29,72,.45)}
.hero .sub{font-size:19px;color:#ddd;unicode-bidi:plaintext;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-acts{display:flex;align-items:center;gap:18px;margin-top:26px}
.btn-play{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;height:50px;padding:0 28px;border-radius:25px;background:var(--ac);color:#fff;font-size:14px;font-weight:600;box-shadow:0 10px 26px rgba(159,18,57,.45);transition:background .2s,transform .15s}
.btn-play:hover{background:#b3163f;transform:translateY(-1px)}
.btn-play svg{width:14px;height:14px;fill:#fff}
.btn-plus{width:42px;height:42px;border-radius:50%;border:1.5px solid #888;display:grid;place-items:center;color:#fff;transition:border-color .2s,background .2s}
.btn-plus:hover{border-color:#fff}
.save svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.save .s-ok{display:none}
.save[aria-pressed="true"]{border-color:var(--ac2);color:var(--ac-text)}
.save[aria-pressed="true"] .s-add{display:none}
.save[aria-pressed="true"] .s-ok{display:block}
.vinyl{position:absolute;left:44%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:22px;z-index:1}
.disc{position:relative;width:262px;height:262px;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,#141414 0 2px,#1b1b1b 2px 5px);box-shadow:0 0 0 1px rgba(251,113,133,.18),0 0 0 28px rgba(251,113,133,.04),0 0 0 29px rgba(251,113,133,.14),0 30px 60px rgba(0,0,0,.5)}
.disc:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#141414;box-shadow:0 0 0 2px rgba(255,255,255,.15)}
.disc img{width:116px;height:116px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #9f1239;background:#2a2a2a}
.vinyl:hover .disc{animation:spin 6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.bars{display:flex;align-items:center;gap:7px}
.bars i{width:5px;border-radius:3px;background:var(--ac2);opacity:.75;height:20px}
.bars i:nth-child(2){height:48px}.bars i:nth-child(3){height:28px}
.bars-l i:nth-child(1){height:28px}.bars-l i:nth-child(3){height:20px}
.hero-brand{position:absolute;right:56px;top:50%;transform:translateY(-50%);width:300px;text-align:center;z-index:2;pointer-events:none}
.hero-brand img{width:150px;height:auto;margin:0 auto}
.hero-brand p{margin-top:10px;letter-spacing:7px;font-size:15px;color:#ccc}
.dots{position:absolute;left:52px;bottom:24px;display:flex;gap:4px;z-index:3}
.dots button{width:20px;height:20px;display:grid;place-items:center}
.dots button:before{content:"";width:8px;height:8px;border-radius:50%;background:#555;transition:background .2s,transform .2s}
.dots button.on:before{background:var(--ac2);transform:scale(1.1)}
.dots button:hover:before{background:#888}

.home-body{padding:0 28px 28px}
.hrow{display:grid;gap:44px;padding:22px 0;border-bottom:1px solid var(--line)}
.hrow:last-child{border-bottom:0}
.hrow-a{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.hrow-a.single{grid-template-columns:1fr}
.hrow-b{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.hrow-a>.hsec+.hsec,.hrow-b>.hsec+.hsec{position:relative}
.hrow>.hsec+.hsec:before,.hrow>.hsec+.promo:before{content:"";position:absolute;left:-22px;top:0;bottom:0;width:1px;background:var(--line)}
.hrow-b>.promo{position:relative}
.hsec{min-width:0}
.hs-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.hs-h h2{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:600;white-space:nowrap}
.hs-h h2:before{content:"";width:4px;height:24px;border-radius:2px;background:var(--ac2)}
.hs-h a{font-size:14px;color:#ddd;white-space:nowrap;transition:color .2s}
.hs-h a:hover{color:var(--ac-text)}
.trend .hs-h a,.fart .hs-h a{font-size:12.5px}

.covers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.cover-card{min-width:0}
.cover-card .art{position:relative;display:block;width:100%;aspect-ratio:1/.95;border-radius:6px;overflow:hidden;background:#2a2a2a}
.cover-card .art img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cover-card .art:hover img{transform:scale(1.05)}
.cover-card .play{opacity:0;transition:opacity .2s,background .2s}
.cover-card .art:hover .play,.cover-card .art:focus-visible .play{opacity:1;background:var(--ac);border-color:var(--ac)}
.cover-card .ct{display:block;font-size:13.5px;font-weight:600;margin:12px 5px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}
.cover-card .ca{display:block;font-size:12.5px;color:var(--mute);margin:0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cover-card a:hover{color:var(--ac-text)}

.editor{position:relative;display:flex;align-items:center;gap:22px;height:200px;padding:20px;border-radius:10px;overflow:hidden;border:1px solid #3a2a30;background:radial-gradient(240px 200px at 110px 100px,#4a1626,#1e1a1b 72%),#1e1a1b;transition:border-color .25s,transform .25s}
.editor:hover{border-color:#5a2a3a;transform:translateY(-2px)}
.ed-art{width:160px;height:160px;border-radius:8px;overflow:hidden;flex-shrink:0;box-shadow:0 16px 36px rgba(0,0,0,.5);background:#2a2a2a}
.ed-art img{width:100%;height:100%;object-fit:cover}
.ed-tx{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.pill{background:var(--ac);font-size:10.5px;font-weight:700;letter-spacing:.6px;padding:3px 8px;border-radius:4px}
.ed-tx b{font-size:21px;font-weight:700;margin:8px 0 6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}
.ed-desc{font-family:Plex,Inter,sans-serif;font-size:14px;color:#ddd;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
.btn-sm{display:inline-flex;align-items:center;gap:6px;margin-top:14px;height:30px;padding:0 14px;border-radius:15px;background:var(--ac);font-size:12px;font-weight:600}
.editor:hover .btn-sm{background:#b3163f}

.trend-list{list-style:none}
.trow{grid-template-columns:20px 40px minmax(0,1fr) 26px 44px;gap:12px;height:52px;padding:0 6px;margin:0 -6px}
.trow .n{text-align:left;color:#ccc;font-size:13.5px}
.trow img{width:40px;height:40px;border-radius:4px}
.trow .tl{font-size:13.5px}
.trow .ta{font-size:12.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbtn{width:26px;height:26px;border-radius:50%;border:1.5px solid #ccc;display:grid;place-items:center;transition:background .2s,border-color .2s}
.pbtn:after{content:"";border-left:7px solid #fff;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;margin-left:2px}
.trow:hover .pbtn,.trow.on .pbtn{background:var(--ac);border-color:var(--ac)}
.trow.playing .pbtn:after{border:0;width:8px;height:9px;margin:0;background:linear-gradient(90deg,#fff 0 3px,transparent 3px 5px,#fff 5px 8px)}
.trow .pc{color:#bbb;font-size:12.5px}

.fart-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.fart-list a{text-align:center;min-width:0}
.fart-list img{width:100%;max-width:88px;height:auto;aspect-ratio:1;margin:0 auto;border-radius:50%;object-fit:cover;background:#2a2a2a;box-shadow:0 0 0 2px transparent;transition:box-shadow .25s,transform .25s}
.fart-list a:hover img{box-shadow:0 0 0 2px var(--ac2);transform:translateY(-2px)}
.fart-list b{display:block;font-size:12.5px;font-weight:600;margin-top:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;unicode-bidi:plaintext}
.fart-list a:hover b{color:var(--ac-text)}

.promo{display:block;height:198px;border-radius:10px;overflow:hidden;isolation:isolate;background:radial-gradient(260px 200px at 26% 50%,rgba(159,18,57,.32),rgba(159,18,57,0) 70%),linear-gradient(90deg,#1a1718,#161616);border:1px solid #2e2629;transition:transform .25s,border-color .25s}
.promo:hover{border-color:#4a2a35}
.promo:hover{transform:translateY(-2px)}
.promo-logo{position:absolute;left:26px;top:50%;width:min(220px,40%);height:auto;transform:translateY(-50%);transition:transform .4s}
.promo:hover .promo-logo{transform:translateY(-50%) scale(1.04)}
.promo>b.promo-title{left:44%;font:700 26px/1.3 Inter,Plex,sans-serif;direction:ltr;text-align:right;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;unicode-bidi:plaintext}
.promo>b{position:absolute;right:24px;top:28px;font-size:28px;font-weight:700;line-height:1.45;text-align:right;direction:rtl;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.btn-ol{position:absolute;right:20px;bottom:24px;background:rgba(18,18,18,.35);backdrop-filter:blur(4px);display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 22px;border:1.5px solid var(--ac-text);border-radius:20px;font-size:13px;transition:background .2s}
.promo:hover .btn-ol{background:var(--ac);border-color:var(--ac)}

@media (max-width:1400px){
  .hero-brand{display:none}
  .slide:before,.vinyl{left:68%}
  .hero-text{max-width:48%}
}
@media (max-width:1280px){
  .covers{grid-template-columns:repeat(5,150px);overflow-x:auto;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent;padding-bottom:6px}
}
@media (max-width:1280px){
  .hrow-a{grid-template-columns:1fr}
  .hrow>.hsec+.hsec:before{display:none}
}
@media (max-width:860px){
  .hero{height:auto;min-height:300px}
  .slide{position:absolute}
  .slide.on{position:relative}
  .hero-text{position:relative;left:auto;top:auto;max-width:none;padding:26px 18px 54px;width:62%}
  .hero h1{font-size:32px;white-space:normal}
  .hero .sub{font-size:15px}
  .btn-play{height:44px;padding:0 20px}
  .vinyl{left:auto;right:-60px;transform:translateY(-50%)}
  .slide:before{left:auto;right:-170px;transform:translateY(-50%)}
  .disc{width:220px;height:220px}
  .disc img{width:96px;height:96px}
  .bars{display:none}
  .dots{left:14px;bottom:14px}
  .home-body{padding:0 14px 24px}
  .hrow,.hrow-b{grid-template-columns:1fr;gap:26px}
  .hrow>.hsec+.promo:before{display:none}
  .hs-h h2{font-size:18px}
  .covers{grid-template-columns:repeat(5,132px)}
  .editor{height:auto}
  .ed-art{width:110px;height:110px}
  .fart-list{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}
}
@media (max-width:560px){
  .hero-text{width:100%;padding-right:150px}
  .vinyl{right:-110px}
}

/* artist circles (top of home): every circle exactly the same size, photo always cropped to fill */
.artists-top{display:block}
.art-circles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.art-circles a{display:flex;flex-direction:column;align-items:center;min-width:0}
.art-circles .ph{display:block;width:100%;max-width:190px;aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:#2a2a2a;box-shadow:0 12px 26px rgba(0,0,0,.45),0 0 0 2px transparent;transition:box-shadow .25s,transform .25s;flex-shrink:0}
.art-circles img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.art-circles a:hover .ph{box-shadow:0 12px 26px rgba(0,0,0,.45),0 0 0 3px var(--ac2);transform:translateY(-3px)}
.art-circles b{display:block;max-width:100%;margin-top:12px;font-size:14px;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}
.art-circles a:hover b{color:var(--ac-text)}
@media (max-width:860px){
  .art-circles{grid-template-columns:repeat(5,120px);gap:14px;overflow-x:auto;scrollbar-width:none}
  .art-circles .ph{width:120px}
  .art-circles b{font-size:12.5px}
}

/* ---------- library ---------- */
.lib-tabs{display:flex;gap:8px;margin:0 4px 16px;flex-wrap:wrap}
.lib-tabs a{padding:7px 16px;border-radius:18px;border:1px solid var(--line);font-size:12.5px;color:#ddd}
.lib-tabs a:hover{border-color:#4a4a4a;color:#fff}
.lib-tabs a.on{background:var(--ac);border-color:var(--ac);color:#fff}
.lib-note{color:#8a8a8a;font-size:11.5px;text-align:center;margin-top:18px}
.library .empty{padding:60px 0 20px}
.library .card .m span{unicode-bidi:plaintext}
.bplay[hidden],.panel[hidden],.empty[hidden]{display:none}

/* ---------- A–Z filter (list pages) ---------- */
.letters{direction:ltr;display:flex;flex-wrap:wrap;gap:6px;margin:0 4px 22px;padding:10px;background:var(--side);border:1px solid var(--line);border-radius:12px}
.letters a,.letters span{flex:1 0 30px;height:34px;min-width:30px;display:grid;place-items:center;border-radius:8px;font:600 13px Inter,sans-serif}
.letters a{color:#e5e5e5;transition:background .2s,color .2s}
.letters a:hover{background:var(--hover);color:#fff}
.letters a.on{background:var(--ac);color:#fff;box-shadow:0 6px 16px rgba(159,18,57,.35)}
.letters span{color:#555;cursor:default}
.letters .all{flex:0 0 auto;padding:0 14px}
@media (max-width:860px){
  .letters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:8px}
  .letters a,.letters span{flex:0 0 32px}
  .letters .all{flex:0 0 auto}
}

/* ---------- home v3: genre strip, big New Releases, playlists, two chart columns ---------- */
.home-body>.hrow:first-child{padding-top:26px}
.gs-list{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 5 * 14px) / 6);gap:14px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent;padding:4px 0 8px}
.gs-list a{display:block;aspect-ratio:1920/1000;border-radius:8px;overflow:hidden;background:#2a2a2a;box-shadow:0 10px 26px rgba(0,0,0,.4);outline-offset:3px;transition:transform .3s,box-shadow .3s}
.gs-list img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gs-list a:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.5),0 0 0 2px var(--ac2)}
.gs-list a:hover img{transform:scale(1.04)}
.covers-lg{gap:20px}
.covers-lg .art{aspect-ratio:1/1;border-radius:8px}
.covers-lg .ct{font-size:15px;margin-top:14px}
.covers-lg .ca{font-size:13.5px}
.home-pl{gap:20px}
.charts2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
.chart-list{list-style:none}
.crow{grid-template-columns:30px 60px minmax(0,1fr) auto;gap:16px;height:84px;padding:0 10px;margin:0;border-bottom:1px solid var(--line);border-radius:0}
.crow:last-child{border-bottom:0}
.crow .n{color:#bbb;font-size:15px;font-variant-numeric:tabular-nums}
.crow img{width:60px;height:60px;border-radius:6px}
.crow .tl{font-size:15px;font-weight:600}
.crow .ta{display:block;font-size:13.5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow .pc{display:flex;align-items:center;gap:10px;color:#ccc;font-size:14px;font-variant-numeric:tabular-nums}
.crow .pbtn{width:22px;height:22px;border-color:#bbb}
.crow:hover,.crow.on{background:rgba(159,18,57,.12)}
.crow:hover .pbtn,.crow.on .pbtn{background:var(--ac);border-color:var(--ac)}
.crow.playing .pbtn:after{border:0;width:8px;height:9px;margin:0;background:linear-gradient(90deg,#fff 0 3px,transparent 3px 5px,#fff 5px 8px)}
.chart-empty{color:var(--mute);font-size:13.5px;padding:30px 0;text-align:center;direction:rtl}
@media (max-width:1100px){
  .charts2{grid-template-columns:1fr;gap:28px}
}
@media (max-width:860px){
  .gs-list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:46%;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .gs-list a{scroll-snap-align:start}
  .covers-lg{grid-template-columns:repeat(5,160px);overflow-x:auto}
  .home-pl{grid-template-columns:repeat(5,160px);overflow-x:auto;scrollbar-width:none}
  .crow{height:72px;gap:12px;grid-template-columns:24px 50px minmax(0,1fr) auto}
  .crow img{width:50px;height:50px}
}
.home-body>section.hrow{display:block}
.charts2>.hsec{position:relative}

/* a11y: touch targets >= 24px */
.ctrls button:not(.pp),.pl-r>button{min-width:32px;min-height:32px;display:grid;place-items:center}
.range{height:24px}
.tr .tl,.tr .ta,.cover-card .ct,.cover-card .ca{display:block;min-height:24px;line-height:24px}
.cover-card .ct{margin-top:8px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pager .off,.off{color:#8a8a8a!important}
.card .cv{aspect-ratio:1/1}
.phead .art.art-wide{width:422px;height:220px;aspect-ratio:1920/1000}
@media (max-width:860px){.phead .art.art-wide{width:100%;max-width:420px;height:auto}}
.upnext{position:fixed;right:24px;bottom:calc(var(--player-h) + 16px);z-index:60;width:340px;max-width:calc(100vw - 24px);display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;background:rgba(24,24,24,.96);backdrop-filter:blur(12px);border:1px solid #333;border-left:3px solid var(--ac2);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.55);direction:ltr;opacity:0;transform:translateY(12px);transition:opacity .35s,transform .35s}
.upnext.on{opacity:1;transform:none}
.upnext[hidden]{display:none}
.upnext img{width:52px;height:52px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#2a2a2a}
.un-tx{flex:1;min-width:0}
.un-tx small{display:block;font-family:Plex,Inter,sans-serif;font-size:11.5px;color:var(--ac-text);margin-bottom:2px;direction:rtl;text-align:left}
.un-tx b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext;text-align:left}
.un-tx span{display:block;font-size:12.5px;color:#bbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext;text-align:left}
.un-play,.un-x{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border-radius:50%}
.un-play{background:var(--ac)}
.un-play:hover{background:#b3163f}
.un-play svg{width:16px;height:16px;fill:#fff;stroke:#fff;stroke-width:2;stroke-linejoin:round}
.un-x{color:#999}
.un-x:hover{background:#2c2c2c;color:#fff}
.un-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
@media (max-width:860px){.upnext{right:12px;left:12px;width:auto;bottom:calc(var(--player-h) + 10px)}}
@media (prefers-reduced-motion:reduce){.upnext{transition:none}}
