/* ================================================================
   EGWU — discover.css
   Design system for the music discovery section:
   /explore, /trending-music, /genres, /genres/{slug}, /artists,
   /artists/{uid}/{slug}. Rendered by js/discover.js.
   Tokens mirror the Egwu mobile app theme.
   ================================================================ */

:root{
  --bg:#14181B; --bg2:#171C20; --card:#1C2427; --card2:#1B2226; --line:#283136; --line2:#34424B;
  --blue:#004AAD; --blue-hi:#1F6FE0; --blue-tx:#7FB0FF; --verified:#4E90F5;
  --acc:#EE8B61; --acc-dim:rgba(238,139,97,.16); --acc-ink:#2A1408;
  --tx:#FFFFFF; --tx2:#C9D2DA; --mut:#8A97A3;
  --r-sm:10px; --r:14px; --r-lg:22px; --r-xl:28px;
  --gut:clamp(16px,3.2vw,64px); --maxw:1480px;
  --hdr:84px; --player:76px;
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.dx{margin:0;background:var(--bg);color:var(--tx);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}
.dx a{color:var(--blue-tx);text-decoration:none}
.dx a:hover{color:#A9C9FF}
.dx img{max-width:100%}
.dx button,.dx input,.dx select{font-family:inherit;-webkit-appearance:none;appearance:none;margin:0}
.dx button{font-size:inherit;color:inherit}
.dx a.t1{display:block;color:#fff}.dx a.t1:hover,.dx .t1 a:hover{text-decoration:underline;text-underline-offset:3px}
.dx .t1 a{color:inherit}
.mut{color:var(--mut)}
.dx :focus-visible{outline:2px solid var(--blue-hi);outline-offset:2px}
.dx h1,.dx h2,.dx h3,.dx p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Pre-rendered SEO snapshot: for crawlers/no-JS only */
.js .dx-ssr{display:none!important}
.dx-ssr{max-width:var(--maxw);margin:0 auto;padding:24px var(--gut)}
.dx-ssr img{width:56px;height:56px;object-fit:cover;border-radius:8px}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}

/* ── Buttons & primitives ─────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:12px;font-size:14px;font-weight:700;border:1px solid transparent;cursor:pointer;white-space:nowrap;line-height:1;transition:background .15s,border-color .15s,color .15s,transform .1s}
.btn:active{transform:scale(.98)}
.btn svg{width:16px;height:16px;flex-shrink:0}
.dx .btn-p{background:var(--blue);color:#fff}.dx .btn-p:hover{background:var(--blue-hi);color:#fff}
.dx .btn-w{background:#fff;color:var(--bg)}.dx .btn-w:hover{background:#E8EDF2;color:var(--bg)}
.dx .btn-g{background:transparent;color:#fff;border-color:#3A4852}.dx .btn-g:hover{border-color:var(--mut);color:#fff}
.dx .btn-lock{background:transparent;color:var(--acc);border-color:rgba(238,139,97,.6)}.dx .btn-lock:hover{background:var(--acc-dim);color:var(--acc)}
.btn-sm{height:36px;padding:0 14px;font-size:13px;border-radius:10px}
.btn-dis{opacity:.5;pointer-events:none}
.ib{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--line);color:#fff;cursor:pointer;flex-shrink:0;padding:0;transition:background .15s,border-color .15s}
.ib:hover{border-color:var(--line2)}
.ib svg{width:16px;height:16px}
.ib.sm{width:36px;height:36px}.ib.sm svg{width:13px;height:13px}
.ib.play{background:var(--blue);border-color:var(--blue)}.ib.play:hover{background:var(--blue-hi);border-color:var(--blue-hi)}
.ib.on{background:#fff;border-color:#fff;color:var(--bg)}
.ib.lock{background:transparent;border:1.5px solid var(--acc);color:var(--acc)}
.chip{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--tx2);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;flex-shrink:0}
.dx a.chip{color:var(--tx2)}
.chip:hover,.dx a.chip:hover{border-color:var(--line2);color:#fff}
.chip.on,.dx a.chip.on{background:#fff;color:var(--bg);border-color:#fff}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:1.4px;color:var(--acc);text-transform:uppercase}
.eyebrow.mut{color:var(--mut)}
.t1{font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2{font-size:13px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx a.t2{color:var(--mut)}.dx a.t2:hover{color:#fff}
.tagx{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;background:var(--acc-dim);color:var(--acc);font-size:10.5px;font-weight:800;letter-spacing:.4px;vertical-align:2px;white-space:nowrap}
.tagx.solid{background:var(--acc);color:var(--acc-ink)}
.gtag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--tx2);font-size:12px;font-weight:600;white-space:nowrap}
.ver{display:inline-block;width:16px;height:16px;vertical-align:-3px;flex-shrink:0}
.sec{margin-top:56px}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px}
.sec-h h2{font-size:24px;font-weight:800;letter-spacing:-.4px}
.sec-h a,.sec-h button{font-size:13px;font-weight:700;background:none;border:0;color:var(--blue-tx);cursor:pointer;padding:0}
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:32px}
.page-h h1{font-size:clamp(32px,4.6vw,48px);font-weight:900;letter-spacing:-1.4px;line-height:1.02;margin-top:8px}
.page-h p{font-size:15px;color:var(--mut);margin-top:8px;max-width:640px;line-height:1.6}
.empty{padding:40px 20px;text-align:center;color:var(--mut);font-size:14px;line-height:1.6;border:1px dashed var(--line);border-radius:var(--r-lg)}
.err{padding:20px;color:var(--mut);font-size:14px}

/* skeleton loading */
.sk{background:linear-gradient(90deg,#1B2226 25%,#222B30 50%,#1B2226 75%);background-size:200% 100%;animation:sk 1.4s ease-in-out infinite;border-radius:var(--r)}
@keyframes sk{to{background-position:-200% 0}}

/* ── Header (desktop) ─────────────────────────────────────────── */
.hdr{position:sticky;top:0;z-index:40;background:rgba(20,24,27,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:24px;height:var(--hdr)}
.brand{display:flex;align-items:center;height:56px;flex-shrink:0;border-radius:10px}
.brand img{display:block;height:48px;width:96px;object-fit:contain;transform:translateY(-7px)}
.vdiv{width:1px;height:28px;background:var(--line);flex-shrink:0}
.navg{display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--card2);border:1px solid var(--line)}
.dx .nl{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:999px;color:var(--mut);font-size:14px;font-weight:600;letter-spacing:-.1px;transition:background .15s,color .15s}
.dx .nl:hover{color:#fff;background:rgba(255,255,255,.05)}
.dx .nl.on{color:#fff;background:#2A353C;font-weight:700;box-shadow:inset 0 0 0 1px var(--line2)}
.hdr-search{position:relative;flex:1;max-width:440px;margin-left:auto}
.sbox{display:flex;align-items:center;gap:10px;height:44px;padding:0 16px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:var(--mut)}
.sbox:focus-within{border-color:var(--line2)}
.sbox input:focus,.sbox input:focus-visible{outline:none;box-shadow:none}
.sbox input::-webkit-search-decoration,.sbox input::-webkit-search-cancel-button{-webkit-appearance:none}
.sbox svg{width:18px;height:18px;flex-shrink:0}
.sbox input{all:unset;flex:1;min-width:0;color:#fff;font-size:14px}
.sbox input::placeholder{color:var(--mut)}
.hdr-act{display:flex;gap:10px;margin-left:auto;flex-shrink:0}
.hdr-m{display:none}

/* search results popover */
.sres{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:50;background:var(--card);border:1px solid var(--line2);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.5);padding:8px;max-height:min(70vh,520px);overflow:auto;display:none}
.sres.open{display:block}
.sres-h{font-size:11px;font-weight:800;letter-spacing:1.2px;color:var(--mut);text-transform:uppercase;padding:10px 10px 6px}
.sres-i{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;cursor:pointer;color:#fff;width:100%;background:none;border:0;text-align:left}
.dx a.sres-i{color:#fff}
.sres-i:hover,.sres-i.act{background:var(--card2)}
.sres-i img,.sres-i .ph{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.sres-i img.round{border-radius:50%}
.sres-none{padding:18px;text-align:center;color:var(--mut);font-size:14px}

/* ── Mobile header, menu sheet, tab bar ───────────────────────── */
.mhdr{display:none}
.msheet{position:fixed;inset:0;z-index:80;background:var(--bg);display:flex;flex-direction:column;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;overflow:hidden}
.msheet.open{opacity:1;transform:none;visibility:visible}
.msheet::before{content:"";position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;background:rgba(31,111,224,.22);filter:blur(50px);pointer-events:none}
/* shared top-bar layout: the closed header (.mhdr) and the open menu (.msheet-h)
   are pixel-identical; only the right-hand button changes (menu ↔ close) */
.mbar{height:68px;padding:0 16px;display:flex;align-items:center;gap:10px}
.msearch{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:var(--mut);font-size:15px;font-weight:500;cursor:pointer;text-align:left;line-height:1}
.msearch svg{width:18px;height:18px;flex-shrink:0}
.msearch:hover{border-color:var(--line2);color:#fff}
.msheet-h{position:relative;height:68px;padding:0 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);flex-shrink:0}
.msheet-b{position:relative;flex:1;overflow:auto;padding:20px 16px 24px}
.msheet-f{position:relative;padding:14px 16px calc(14px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);background:var(--bg2)}
.msheet-f .btn{height:50px;border-radius:14px;font-size:15px;width:100%}
.mlbl{font-size:11px;font-weight:800;letter-spacing:1.3px;color:var(--mut);text-transform:uppercase;margin:0 0 10px 2px}
.mlbl+*{margin-bottom:26px}
.mnav{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.dx a.mi{display:flex;align-items:center;gap:14px;height:60px;padding:0 16px;color:#fff;font-size:17px;font-weight:700;letter-spacing:-.2px}
.mi+.mi{border-top:1px solid var(--line)}
.mi:hover,.mi:active{background:rgba(255,255,255,.04)}
.mi .ic{width:36px;height:36px;border-radius:10px;background:var(--card2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--tx2);flex-shrink:0}
.mi .ic svg{width:18px;height:18px}
.mi .lb{flex:1;min-width:0}
.mi .go{display:flex;color:var(--mut);transform:rotate(180deg)}
.mi .go svg{width:16px;height:16px}
.mi.on{background:rgba(255,255,255,.05)}
.mi.on{color:var(--blue-tx)}
.mi.on .ic{background:var(--blue);border-color:var(--blue);color:#fff}
.dx a.mi.on{color:var(--blue-tx)}
.mgen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dx .mgen a{display:flex;align-items:center;height:56px;padding:0 16px;border-radius:14px;font-size:15px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabbar{display:none}
.msrch{display:none}

/* ── Hero / featured ──────────────────────────────────────────── */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:24px}
.feat{position:relative;overflow:hidden;border-radius:var(--r-xl);background:#0B1F45;min-height:420px;display:flex;align-items:flex-end;padding:36px}
.feat-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;filter:blur(42px) saturate(1.3);transform:scale(1.3)}
.feat-sh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,36,.92) 0%,rgba(10,18,36,.55) 60%,rgba(10,18,36,.2) 100%)}
.feat-in{position:relative;display:flex;gap:32px;align-items:flex-end;flex-wrap:wrap;width:100%}
.feat-cov{width:clamp(180px,20vw,260px);aspect-ratio:1;border-radius:18px;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.5);background:var(--card2)}
.feat-tx{flex:1;min-width:240px;display:flex;flex-direction:column;gap:14px}
.feat-tx h1,.feat-tx h2{font-size:clamp(34px,4.4vw,52px);line-height:1;font-weight:900;letter-spacing:-1.6px}
.feat-tx h1 small,.feat-tx h2 small{display:block;font-size:clamp(17px,1.6vw,22px);font-weight:600;letter-spacing:-.2px;color:var(--tx2);margin-top:10px}
.feat-tx p{font-size:14px;color:var(--tx2);line-height:1.6}
.feat-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:24px}
.panel .sec-h{margin-bottom:8px}
.panel .sec-h h2{font-size:20px}

/* ── Rows (compact track lists) ───────────────────────────────── */
.row{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:var(--r);cursor:pointer;transition:background .12s}
.row:hover{background:var(--card)}
.row.playing{background:rgba(0,74,173,.14)}
.row.playing .t1{color:var(--blue-tx)}
.row .rk{width:22px;font-size:15px;font-weight:800;color:var(--mut);text-align:center;flex-shrink:0}
.row .rk.top{color:var(--acc)}
.row .art{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.row .meta{flex:1;min-width:0}
.row .end{font-size:13px;color:var(--mut);flex-shrink:0;font-variant-numeric:tabular-nums}
.rows2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}

/* ── Cards ────────────────────────────────────────────────────── */
.grid6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.scard{display:flex;flex-direction:column;gap:10px;min-width:0;cursor:pointer}
.cov{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:var(--card2)}
.cov img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.scard:hover .cov img{transform:scale(1.04)}
.cov .tagx{position:absolute;top:10px;left:10px}
.cov .pf{position:absolute;right:10px;bottom:10px;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;border:0;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.45);cursor:pointer;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.cov .pf svg{width:16px;height:16px}
.cov .pf.lock{background:var(--acc);color:var(--acc-ink)}
.scard:hover .pf,.scard.playing .pf,.scard:focus-within .pf{opacity:1;transform:none}
.scard.playing .pf{background:#fff;color:var(--bg)}
.grid9{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:18px}
.acirc{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-width:0}
.dx a.acirc{color:#fff}
.acirc img,.acirc .ini{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;background:var(--card2);transition:transform .2s}
.acirc:hover img,.acirc:hover .ini{transform:scale(1.04)}
.acirc .t1{font-size:14px;max-width:100%}
.ini{display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;font-size:clamp(20px,2.6vw,40px);letter-spacing:-1px}

/* app promo */
.promo{position:relative;overflow:hidden;border-radius:var(--r-xl);background:var(--blue);padding:32px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:280px}
.promo::before{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:rgba(238,139,97,.35);filter:blur(30px)}
.promo>*{position:relative}
.promo h2{font-size:clamp(22px,2.4vw,28px);font-weight:900;letter-spacing:-.6px;line-height:1.1;margin-top:10px}
.promo p{font-size:14px;color:rgba(255,255,255,.82);line-height:1.6;margin-top:10px}
.promo .eyebrow{color:#FFD9C7}
.dx .promo .btn-g{border-color:rgba(255,255,255,.4)}
.cols-2-1{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px}

/* ── Trending chart ───────────────────────────────────────────── */
.seg{display:inline-flex;padding:4px;border-radius:12px;background:var(--card);border:1px solid var(--line);gap:2px}
.dx .seg a{height:36px;padding:0 16px;border-radius:9px;font-size:13px;font-weight:700;color:var(--mut);display:inline-flex;align-items:center;white-space:nowrap}
.dx .seg a:hover{color:#fff}
.dx .seg a.on{background:var(--blue);color:#fff}
.spot{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;margin-bottom:28px}
.no1{position:relative;overflow:hidden;border-radius:var(--r-xl);background:#0B1F45;padding:32px;display:flex;gap:28px;align-items:center;flex-wrap:wrap;min-height:250px}
.no1 .big{position:relative;font-size:clamp(90px,10vw,140px);font-weight:900;line-height:.8;letter-spacing:-8px;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.5)}
.no1 .c{position:relative;width:clamp(140px,13vw,190px);aspect-ratio:1;border-radius:16px;object-fit:cover;box-shadow:0 24px 50px rgba(0,0,0,.5);background:var(--card2)}
.no1 .x{position:relative;flex:1;min-width:200px;display:flex;flex-direction:column;gap:10px}
.no1 h2{font-size:clamp(28px,3vw,40px);font-weight:900;letter-spacing:-1px}
.no23{display:grid;grid-template-rows:1fr 1fr;gap:20px}
.runner{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;display:flex;align-items:center;gap:18px;cursor:pointer;min-width:0}
.runner .n{font-size:44px;font-weight:900;color:var(--acc);width:40px;text-align:center;flex-shrink:0}
.runner img{width:clamp(64px,7vw,92px);aspect-ratio:1;border-radius:14px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.runner .t1{font-size:20px}
.chart{background:var(--bg2);border:1px solid var(--line);border-radius:24px;padding:20px 12px}
.tr{display:grid;grid-template-columns:44px minmax(0,2.4fr) minmax(0,1fr) 110px 100px 132px;align-items:center;gap:16px;padding:10px 16px;border-radius:var(--r);cursor:pointer}
.tr:hover{background:var(--card)}
.tr.playing{background:rgba(0,74,173,.14)}.tr.playing .t1{color:var(--blue-tx)}
.tr.th{font-size:11px;font-weight:800;letter-spacing:1px;color:var(--mut);text-transform:uppercase;padding-top:0;padding-bottom:12px;border-bottom:1px solid var(--line);border-radius:0;cursor:default}
.tr.th:hover{background:transparent}
.tr .rk{font-size:17px;font-weight:800;color:var(--mut);text-align:center;font-variant-numeric:tabular-nums}
.tr .who{display:flex;align-items:center;gap:14px;min-width:0}
.tr .who img{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.tr .num{font-size:14px;color:var(--tx2);font-variant-numeric:tabular-nums}
.tr .act{display:flex;gap:8px;justify-content:flex-end}

/* ── Genres ───────────────────────────────────────────────────── */
.gg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.dx a.gt{position:relative;overflow:hidden;border-radius:var(--r-lg);aspect-ratio:4/3;display:block;color:#fff;isolation:isolate}
.dx a.gt.big{grid-column:span 2;aspect-ratio:auto;min-height:280px}
.dx a.gt.wide{grid-column:span 2;aspect-ratio:8/3}
.gt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.05);transition:transform .4s}
.gt:hover img{transform:scale(1.05)}
.gt .ov{position:absolute;inset:0}
.gt .tx{position:absolute;left:20px;right:20px;bottom:18px;display:flex;flex-direction:column;gap:4px}
.gt .tx b{font-size:24px;font-weight:900;letter-spacing:-.5px}
.gt.big .tx b{font-size:40px;letter-spacing:-1px}
.gt .tx small{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gt .tx .eyebrow{color:rgba(255,255,255,.85)}
.ghero{position:relative;overflow:hidden}
.ghero-in{position:relative;padding-top:32px;padding-bottom:48px;display:flex;flex-direction:column;gap:14px;min-height:340px;justify-content:flex-end}
.ghero h1{font-size:clamp(48px,7vw,84px);font-weight:900;letter-spacing:-3px;line-height:.95}
.ghero p{font-size:15px;color:rgba(255,255,255,.88);max-width:560px;line-height:1.6}
.ghero .crumb{font-size:13px;color:rgba(255,255,255,.75);display:flex;gap:8px}
.dx .ghero .crumb a{color:rgba(255,255,255,.9)}
.gstack{position:absolute;right:var(--gut);top:40px;display:flex;gap:16px;transform:rotate(-6deg)}
.gstack img{width:clamp(110px,11vw,170px);aspect-ratio:17/22;border-radius:20px;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.45);background:rgba(0,0,0,.2)}
.gstack img:nth-child(2){margin-top:40px}
.ib.glass{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}
.alist{display:flex;flex-direction:column;gap:6px}
.dx a.arow{display:flex;align-items:center;gap:14px;padding:8px;border-radius:var(--r);color:#fff}
.arow:hover{background:var(--card2)}
.arow img,.arow .ini{width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0;font-size:16px;letter-spacing:0}
.rg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dx .rg a{display:flex;align-items:flex-end;height:84px;padding:14px;border-radius:16px;font-weight:800;font-size:16px;color:#fff}
.side{display:flex;flex-direction:column;gap:20px}
.cols-side{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:40px}

/* ── Artists directory ────────────────────────────────────────── */
.ag{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.dx a.ac{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;display:flex;flex-direction:column;gap:14px;color:#fff;transition:border-color .15s,transform .15s;min-width:0}
.ac:hover{border-color:#3E5A7A;transform:translateY(-2px)}
.ac-img{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--card2)}
.ac-img img{width:100%;height:100%;object-fit:cover;display:block}
.ac-img .ini{height:100%;font-size:56px;border-radius:0}
.gp{position:absolute;left:10px;bottom:10px;padding:5px 10px;border-radius:999px;background:rgba(20,24,27,.78);backdrop-filter:blur(8px);font-size:11.5px;font-weight:700;color:#fff}
.ac-b{display:flex;align-items:center;gap:10px;padding:0 4px 4px}
.ac-b .meta{flex:1;min-width:0}
.sel{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:#fff;font-size:14px;font-weight:600;cursor:pointer}
.sel select{all:unset;cursor:pointer;padding-right:4px}
.sel option{background:var(--card);color:#fff}
.aspot{position:relative;overflow:hidden;border-radius:var(--r-xl);background:#0B1F45;padding:28px;display:flex;align-items:center;gap:28px;margin-bottom:32px}
.aspot .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:blur(36px);transform:scale(1.3)}
.aspot .sh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,40,96,.92),rgba(11,31,69,.6))}
.aspot .av{position:relative;width:150px;height:150px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px rgba(255,255,255,.12),0 24px 50px rgba(0,0,0,.45);flex-shrink:0;background:var(--card2)}
.aspot .x{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.aspot h2{font-size:clamp(26px,3vw,36px);font-weight:900;letter-spacing:-1px;display:flex;align-items:center;gap:10px}
.aspot .ver{width:24px;height:24px}
.aspot .b{position:relative;display:flex;gap:10px;flex-wrap:wrap}
.cta-band{border-radius:24px;border:1px solid var(--line);background:var(--card2);padding:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:40px}
.cta-band h2{font-size:24px;font-weight:800;letter-spacing:-.4px;margin-top:6px}
.cta-band p{font-size:14px;color:var(--mut);margin-top:6px}

/* ── Artist profile ───────────────────────────────────────────── */
.phero{position:relative;overflow:hidden;background:#13254F}
.phero .bn{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero .sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,24,27,0) 30%,rgba(20,24,27,.75) 75%,var(--bg) 100%)}
.phero-in{position:relative;padding-top:120px;padding-bottom:32px}
.dx a.back{position:absolute;top:24px;left:var(--gut);display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;background:rgba(20,24,27,.55);backdrop-filter:blur(8px);color:#fff;font-size:13px;font-weight:600}
.back svg{width:14px;height:14px}
.pid{display:flex;align-items:flex-end;gap:28px}
.pav{width:184px;height:184px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 5px var(--bg),0 24px 60px rgba(0,0,0,.5);flex-shrink:0;background:var(--card2)}
.pav.ini{font-size:64px}
.pid .x{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;padding-bottom:6px}
.pid h1{font-size:clamp(40px,6vw,76px);font-weight:900;letter-spacing:-3px;line-height:.95;overflow-wrap:anywhere}
.vpill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#A9C9FF}
.vpill .ver{width:18px;height:18px}
.pstats{display:flex;gap:8px 22px;flex-wrap:wrap;font-size:14px;color:var(--tx2)}
.pstats b{color:#fff}
.pacts{display:flex;align-items:center;gap:12px;margin-top:28px;flex-wrap:wrap}
.ib.big{width:60px;height:60px;box-shadow:0 12px 30px rgba(0,74,173,.45)}.ib.big svg{width:22px;height:22px}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{all:unset;cursor:pointer;padding:14px 18px;font-size:14px;font-weight:700;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.tab:hover{color:#fff}
.tab.on{color:#fff;border-bottom-color:var(--blue)}
.tab.x{color:var(--acc)}.tab.x.on{border-bottom-color:var(--acc)}
.tab svg{width:14px;height:14px}
.tab:focus-visible{outline:2px solid var(--blue-hi);border-radius:6px}
.badge{padding:1px 8px;border-radius:10px;background:var(--acc);color:var(--acc-ink);font-size:11px;font-weight:800}
.ptr{display:grid;grid-template-columns:32px minmax(0,1fr) 110px auto;align-items:center;gap:16px;padding:10px 14px;border-radius:var(--r);cursor:pointer}
.ptr:hover{background:var(--card)}
.ptr.playing{background:rgba(0,74,173,.14)}.ptr.playing .t1{color:var(--blue-tx)}
.ptr .rk{font-size:15px;font-weight:700;color:var(--mut);text-align:center}
.ptr .who{display:flex;align-items:center;gap:14px;min-width:0}
.ptr .who img{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.ptr .num{font-size:14px;color:var(--tx2);font-variant-numeric:tabular-nums}
.ptr .act{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:14px}
.eq i{width:3px;background:var(--verified);border-radius:1px;animation:eq 1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:.2s}.eq i:nth-child(3){animation-delay:.4s}
@keyframes eq{0%,100%{height:4px}50%{height:14px}}
.alb{background:linear-gradient(135deg,#0B2A66 0%,var(--card) 70%);border:1px solid var(--line);border-radius:24px;overflow:hidden;margin-bottom:14px}
.alb-h{display:flex;gap:24px;align-items:center;padding:20px;flex-wrap:wrap}
.alb-h img{width:clamp(110px,12vw,168px);aspect-ratio:1;border-radius:16px;object-fit:cover;box-shadow:0 20px 40px rgba(0,0,0,.4);background:var(--card2)}
.alb-h .x{flex:1;min-width:200px;display:flex;flex-direction:column;gap:8px}
.alb-h h3{font-size:clamp(22px,2.4vw,30px);font-weight:900;letter-spacing:-.8px}
.alb-h p{font-size:13px;color:var(--tx2);line-height:1.6}
.alb-b{border-top:1px solid var(--line);padding:8px;display:none;background:rgba(20,24,27,.5)}
.alb.open .alb-b{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px}
.card h2{font-size:18px;font-weight:800;margin-bottom:12px}
.card p{font-size:14px;color:var(--tx2);line-height:1.65}
.dl{margin:16px 0 18px;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}
.dl dt{color:var(--mut)}.dl dd{margin:0}
.socs{display:flex;gap:8px;flex-wrap:wrap}
.dx a.soc{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;background:var(--card2);border:1px solid var(--line);color:#fff;font-size:13px;font-weight:600}
.soc:hover{border-color:#3E5A7A}
.soc svg{width:15px;height:15px}
.appcard{position:relative;overflow:hidden;border-radius:24px;background:var(--blue);padding:24px;display:flex;flex-direction:column;gap:12px}
.appcard::before{content:"";position:absolute;right:-50px;top:-50px;width:180px;height:180px;border-radius:50%;background:rgba(238,139,97,.4);filter:blur(28px)}
.appcard>*{position:relative}
.appcard h2{font-size:20px;font-weight:900;letter-spacing:-.3px;margin:0}
.appcard p{font-size:13px;color:rgba(255,255,255,.85);line-height:1.6}
.dx .appcard .btn-g{border-color:rgba(255,255,255,.4)}

/* events */
.ev{display:flex;align-items:center;gap:14px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px}
.ev.x{border-color:rgba(238,139,97,.3)}
.ev.past{opacity:.6}
.ev-d{width:56px;flex-shrink:0;padding:8px 0;border-radius:12px;background:var(--card2);border:1px solid var(--line);text-align:center}
.ev-d span{display:block;font-size:10px;font-weight:800;color:var(--blue-tx);letter-spacing:.6px}
.ev.x .ev-d span{color:var(--acc)}
.ev-d b{display:block;font-size:20px;font-weight:900;line-height:1.15}
.ev-img{width:64px;height:64px;border-radius:10px;object-fit:cover;flex-shrink:0}
.ev .meta{flex:1;min-width:0}
.ev-bar{height:4px;border-radius:4px;background:rgba(255,255,255,.08);margin-top:8px;overflow:hidden;max-width:220px}
.ev-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--verified))}
.ev.x .ev-bar i{background:var(--acc)}
.ev-left{font-size:11px;color:var(--mut);margin-top:4px;font-weight:600}
.ev-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.price{font-size:13px;font-weight:800}
/* merch */
.mg{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.mc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.mc.x{border-color:rgba(238,139,97,.3)}
.mc-img{position:relative;aspect-ratio:1;background:var(--card2)}
.mc-img img{width:100%;height:100%;object-fit:cover;display:block}
.mc-tags{position:absolute;top:8px;left:8px;display:flex;gap:5px}
.mc-out{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;letter-spacing:1px}
.mc-b{padding:12px;display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.mc-p{font-size:14px;font-weight:800}
.mc-p s{font-size:11px;font-weight:500;color:var(--mut);margin-left:4px}
.mc-s{font-size:11px;color:var(--mut);font-weight:600}.mc-s.low{color:var(--acc)}
.mc-cta{margin-top:auto;padding-top:8px}.mc-cta .btn{width:100%}
/* exclusive */
.xpill{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 8px;border-radius:7px;background:var(--acc-dim);color:var(--acc);font-size:11px;font-weight:700}
.xpill.past{background:rgba(255,255,255,.05);color:var(--mut)}
.xpill svg{width:11px;height:11px}.xpill b{font-variant-numeric:tabular-nums}
.xhero{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:24px;background:linear-gradient(135deg,#003a8c 0%,#0b1a2e 55%,var(--bg) 100%);border:1px solid rgba(238,139,97,.3);margin-bottom:12px}
.xhero::before{content:"";position:absolute;top:-70px;right:-70px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(238,139,97,.26),transparent 70%)}
.xhero>*{position:relative}
.xhero h2{font-size:24px;font-weight:900;margin:12px 0 6px;letter-spacing:-.4px}
.xhero p{font-size:14px;color:rgba(255,255,255,.78);line-height:1.6;max-width:560px}
.xnext{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 14px;background:rgba(0,0,0,.3);border-radius:14px}
.cd{display:flex;gap:6px}
.cd span{min-width:48px;padding:6px 4px 5px;border-radius:9px;background:var(--acc-dim);text-align:center;font-size:17px;font-weight:800;color:var(--acc);font-variant-numeric:tabular-nums;line-height:1.1}
.cd small{display:block;font-size:8.5px;font-weight:700;color:var(--mut);letter-spacing:.6px;margin-top:2px}
.steps{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:4px 16px;margin-bottom:8px}
.step{display:flex;align-items:center;gap:12px;padding:14px 0}
.step+.step{border-top:1px solid var(--line)}
.step-n{width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(238,139,97,.4);color:var(--acc);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step .meta{flex:1;min-width:0}.step strong{display:block;font-size:14px}.step span{display:block;font-size:12.5px;color:var(--mut);margin-top:2px}
.xsec{display:flex;align-items:center;gap:10px;margin:28px 0 12px}
.xsec::before{content:"";width:4px;height:16px;border-radius:3px;background:var(--acc)}
.xsec h3{font-size:16px;font-weight:800}.xsec span{font-size:12px;color:var(--mut);font-weight:600}
.xcard{display:flex;align-items:center;gap:12px;padding:12px;background:var(--card);border:1px solid rgba(238,139,97,.3);border-radius:var(--r);margin-bottom:8px}
.xcard.past{border-color:var(--line)}
.xcard img{width:56px;height:56px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.xcard .meta{flex:1;min-width:0}

/* ── Song page ────────────────────────────────────────────────── */
.shero{position:relative;overflow:hidden;background:#0B1F45}
.shero .feat-bg{opacity:.6}
.shero-sh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,18,36,.55) 0%,rgba(20,24,27,.85) 70%,var(--bg) 100%)}
.shero-in{position:relative;padding-top:28px;padding-bottom:36px}
.dx .shero .crumb{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.7);margin-bottom:24px}
.dx .shero .crumb a{color:rgba(255,255,255,.9)}
.shero-row{display:flex;gap:36px;align-items:flex-end}
.scov{width:clamp(200px,22vw,300px);aspect-ratio:1;border-radius:18px;object-fit:cover;box-shadow:0 30px 70px rgba(0,0,0,.55);flex-shrink:0;background:var(--card2)}
.shero .x{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.shero h1{font-size:clamp(34px,5vw,64px);font-weight:900;letter-spacing:-2px;line-height:1;overflow-wrap:anywhere}
.ex{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:rgba(255,255,255,.18);color:#fff;font-size:12px;font-weight:900;letter-spacing:0;vertical-align:middle}
.shero .by{font-size:16px;font-weight:600;color:var(--tx2)}
.dx .shero .by a{color:#fff;font-weight:800}
.smeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--tx2)}
.smeta i{font-style:normal;color:var(--mut)}
.dx .smeta a.gtag{color:var(--tx2)}
.wave{display:flex;align-items:center;gap:20px;margin-top:-8px;padding:20px 24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);position:relative}
.wave .ib.big{flex-shrink:0}
.wv-main{flex:1;min-width:0}
.wv-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.wv-top .t2{white-space:normal;text-align:right}
.wv{position:relative;height:88px;cursor:pointer}
.wv svg{display:block;width:100%;height:88px}
.wv-base{color:#3A4852}.wv-base svg rect{fill:currentColor}
.wv-win{position:absolute;top:-6px;bottom:-6px;border-radius:8px;background:rgba(31,111,224,.12);box-shadow:inset 0 0 0 1px rgba(31,111,224,.45)}
.wv-fill{position:absolute;inset:0;pointer-events:none;color:var(--blue-hi);clip-path:inset(0 100% 0 0)}
.wv-fill svg rect{fill:currentColor}
.wv-time{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}
.lyr .lyr-t{white-space:pre-line;font-size:15px;line-height:1.8;color:var(--tx2)}
.lyr.clip .lyr-t{max-height:300px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
.lyr.clip.open .lyr-t{max-height:none;-webkit-mask-image:none;mask-image:none}
.lyr .btn{margin-top:14px}
.dx a.albc{display:flex;gap:14px;align-items:center;color:#fff;transition:border-color .15s}
.albc:hover{border-color:#3E5A7A}
.albc img,.albc .ph{width:72px;height:72px;border-radius:12px;object-fit:cover;flex-shrink:0}
@media (max-width:900px){
  .shero-row{flex-direction:column;align-items:flex-start;gap:20px}
  .scov{width:min(260px,70vw)}
  .shero-in{padding-top:20px}
  .wave{padding:16px;gap:14px;margin-top:0}
  .wv,.wv svg{height:64px}
  .wv-top{flex-direction:column;gap:2px}.wv-top .t2{text-align:left}
}

/* ── Checkout ─────────────────────────────────────────────────── */
.modal.ck{z-index:92}
.modal-c.ck-c{max-width:440px;text-align:left;padding:18px 22px 16px;max-height:calc(100vh - 40px);overflow:auto}
.ck-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ck-head{display:flex;align-items:center;gap:14px;padding:12px;border-radius:16px;background:var(--card2);border:1px solid var(--line);margin-bottom:18px}
.ck-head .ck-cov,.ck-head .ph{width:56px;height:56px;border-radius:10px;object-fit:cover;flex-shrink:0;margin:0}
.ck-head>div{flex:1;min-width:0}
.ck-price{font-size:18px;font-weight:900;white-space:nowrap}
.ck-form{display:flex;flex-direction:column;gap:12px}
.ck-form h3,.ck-msg h3{font-size:20px;font-weight:900;margin:0}
.fld{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--tx2)}
.fld input{height:48px;padding:0 14px;border-radius:12px;background:var(--bg);border:1px solid var(--line2);color:#fff;font-size:15px;outline:none}
.fld input:focus{border-color:var(--blue-hi);box-shadow:0 0 0 3px rgba(31,111,224,.25)}
.ck-err{padding:10px 12px;border-radius:10px;background:rgba(255,107,107,.12);border:1px solid rgba(255,107,107,.35);color:#FFB4B4;font-size:13px;line-height:1.5}
.ck-or{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:12px;margin:2px 0}
.ck-or::before,.ck-or::after{content:"";flex:1;height:1px;background:var(--line)}
.ck-sso{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ck-sso .btn{height:46px;font-size:13px;padding:0 10px}
.modal-c.ck-c .lnk{display:inline;width:auto;margin:0;padding:0;font-size:13px;color:var(--blue-tx);text-align:left}
.modal-c.ck-c .ck-form>.lnk{align-self:center;color:var(--blue-tx)}
.modal-c.ck-c .ck-msg{text-align:center}
.ck-busy{display:flex;flex-direction:column;align-items:center;gap:14px;padding:34px 0;color:var(--tx2);font-size:14px;text-align:center}
.ck-spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--line2);border-top-color:var(--blue-hi);animation:ckspin .8s linear infinite}
@keyframes ckspin{to{transform:rotate(360deg)}}
.ck-msg{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:10px 0 4px}
.ck-msg p{font-size:14px;color:var(--tx2);line-height:1.6;margin:0}
.ck-ic{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,107,107,.14);color:#FF8A8A}
.ck-ic svg{width:26px;height:26px}
.ck-msg.ok .ck-ic{background:rgba(52,194,138,.16);color:#34C28A}
.ck-msg.lock .ck-ic{background:var(--acc-dim);color:var(--acc)}
.ck-acts{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:8px}
.ck-acts .btn{width:100%}
.ck-who{font-size:13px;color:var(--mut)}.ck-who b{color:#fff;font-weight:700}
.ck-opts{display:flex;flex-direction:column;gap:8px}
.ck-opt{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--card2);border:1px solid var(--line);cursor:pointer;transition:border-color .15s,background .15s}
.ck-opt input{position:absolute;opacity:0;pointer-events:none}
.ck-opt:hover{border-color:var(--line2)}
.ck-opt.on{border-color:var(--blue-hi);background:rgba(31,111,224,.1)}
.ck-opt.dis{opacity:.5;cursor:not-allowed}
.ck-opt:focus-within{outline:2px solid var(--blue-hi);outline-offset:2px}
.ck-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line2);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ck-opt.on .ck-radio{border-color:var(--blue-hi)}
.ck-opt.on .ck-radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--blue-hi)}
.ck-ot{display:flex;flex-direction:column;gap:2px;min-width:0}
.ck-ot b{font-size:14px}.ck-ot small{font-size:12px;color:var(--mut)}
.ck-go{width:100%;height:50px;margin-top:16px;font-size:15px}
.ck-fine{white-space:normal;text-align:center;margin-top:10px;font-size:12px;line-height:1.5}
.ck-secure{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--mut)}
.ck-secure svg{width:12px;height:12px}

/* ── Footer ───────────────────────────────────────────────────── */
.dfoot{border-top:1px solid var(--line);margin-top:72px}
.dfoot-in{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:28px;padding-bottom:28px;font-size:13px;color:var(--mut)}
.dfoot nav{display:flex;gap:20px;flex-wrap:wrap}
.dx .dfoot a{color:var(--mut)}.dx .dfoot a:hover{color:#fff}

/* ── Player ───────────────────────────────────────────────────── */
.player{position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(27,34,38,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .3s ease}
.player.show{transform:none}
body.has-player .dfoot{padding-bottom:var(--player)}
.player-in{display:flex;align-items:center;gap:18px;height:var(--player)}
.player img{width:48px;height:48px;border-radius:10px;object-fit:cover;background:var(--card2);flex-shrink:0}
.player .meta{min-width:0;width:220px}
.dx .player .meta a{color:var(--mut)}
.pbar{flex:1;display:flex;align-items:center;gap:12px;font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}
.pbar .tr2{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden;cursor:pointer}
.pbar .fill{width:0;height:100%;background:linear-gradient(90deg,var(--blue),var(--blue-hi))}
.player .pp{background:#fff;border-color:#fff;color:var(--bg)}
.player .close{background:transparent;border-color:transparent;color:var(--mut)}

/* unlock modal */
.modal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.modal.open{opacity:1;visibility:visible}
.modal-c{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line2);border-radius:22px;padding:28px 24px;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.modal-c img{width:96px;height:96px;border-radius:14px;object-fit:cover;margin:0 auto 16px;display:block;background:var(--card2)}
.modal-c h3{font-size:19px;font-weight:900;margin-bottom:4px}
.modal-c p{font-size:13.5px;color:var(--mut);line-height:1.6;margin:10px 0 20px}
.modal-c .btn{width:100%}
.modal-acts{display:flex;flex-direction:column;gap:10px}
.modal-acts .btn[hidden]{display:none}
.modal-c .lnk{display:block;width:100%;margin:10px auto 0;padding:10px;background:none;border:0;color:var(--mut);font-size:14px;font-weight:600;text-align:center;cursor:pointer}
.modal-c .lnk:hover{color:#fff}

/* play / pause state (any [data-sid] ancestor gets .playing) */
.i-pause{display:none}
.playing .i-play{display:none}.playing .i-pause{display:inline}
.player .pp .i-play{display:none}.player .pp .i-pause{display:inline}
.player .pp.is-paused .i-play{display:inline}.player .pp.is-paused .i-pause{display:none}
.rk .eq{display:none}.playing .rk .eq{display:inline-flex}.playing .rk .n{display:none}
.playing .ib.play{background:#fff;border-color:#fff;color:var(--bg)}
.ph{display:block;background:var(--card2)}
.cov .ph,.ac-img .ph,.mc-img .ph{width:100%;height:100%}
.dx a.gt.full{grid-column:1/-1;aspect-ratio:auto;min-height:200px}
@media (max-width:1100px){.dx a.gt.full{grid-column:span 1;aspect-ratio:4/3;min-height:0}}
.dtoast{position:fixed;left:50%;bottom:calc(var(--player) + 24px);transform:translate(-50%,20px);z-index:95;background:#fff;color:var(--bg);font-size:14px;font-weight:700;padding:12px 18px;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 32px)}
.dtoast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:900px){.dtoast{bottom:170px}}

.view{animation:vin .25s ease}
@keyframes vin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width:1280px){
  .grid9{grid-template-columns:repeat(7,minmax(0,1fr))}
  .grid9>:nth-child(n+8){display:none}
}
@media (max-width:1100px){
  .grid6{grid-template-columns:repeat(4,minmax(0,1fr))}
  .grid6>:nth-child(n+9){display:none}
  .ag{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gg{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dx a.gt.wide{grid-column:span 1;aspect-ratio:4/3}
  .tr{grid-template-columns:40px minmax(0,2fr) minmax(0,1fr) 90px 132px}
  .tr .c-price{display:none}
  .hdr-search{max-width:300px}
}
@media (max-width:900px){
  :root{--hdr:68px}
  .hdr{display:none}
  .mhdr{display:flex;position:sticky;top:0;z-index:40;height:68px;padding:0 16px;align-items:center;gap:10px;background:rgba(20,24,27,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  .mhdr .brand,.msheet-h .brand{height:44px;flex-shrink:0;margin-right:2px}
  .mhdr .brand img,.msheet-h .brand img{height:40px;width:80px;transform:translateY(-5px)}
  .mhdr .ib,.msheet-h .ib,.msrch-h .ib{width:44px;height:44px;border-radius:12px}
  .mhdr .ib svg,.msheet-h .ib svg,.msrch-h .ib svg{width:20px;height:20px}
  .msrch{position:fixed;inset:0;z-index:85;background:var(--bg);display:none;flex-direction:column}
  .msrch.open{display:flex}
  .msrch-h{height:68px;padding:0 16px;display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);flex-shrink:0}
  .msrch-h .sbox{flex:1;height:48px;border-radius:14px}
  .msrch .sres{position:static;display:block;border:0;box-shadow:none;background:transparent;padding:8px 8px 24px;max-height:none;flex:1;overflow:auto;border-radius:0}
  .msrch .sres-i{padding:10px}
  .msrch .sres-i img,.msrch .sres-i .ph{width:48px;height:48px}
  /* 16px inputs stop iOS Safari zooming the page on focus */
  .dx input{font-size:16px!important}
  .tabbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:46;padding:8px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(20,24,27,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .dx .tabbar a{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--mut);font-size:11px;font-weight:600}
  .tabbar a span{width:52px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center}
  .tabbar a svg{width:20px;height:20px}
  .dx .tabbar a.on{color:#fff;font-weight:700}
  .tabbar a.on span{background:#2A353C}
  body.dx{padding-bottom:76px}
  .player{left:10px;right:10px;bottom:calc(82px + env(safe-area-inset-bottom));border-radius:16px;border:1px solid var(--line2);box-shadow:0 14px 34px rgba(0,0,0,.5)}
  .player .wrap{padding:0 8px}
  .player-in{height:62px;gap:12px}
  .player img{width:44px;height:44px}
  .player .meta{flex:1;width:auto}
  .pbar{position:absolute;left:12px;right:12px;bottom:0;gap:0}
  .pbar span,.player .get{display:none}
  .pbar .tr2{height:3px}
  body.has-player .dfoot{padding-bottom:72px}
  .hero-grid,.cols-2-1,.cols-side,.spot{grid-template-columns:minmax(0,1fr)}
  .feat{min-height:0;padding:20px;border-radius:24px}
  .feat-in{flex-direction:column;align-items:stretch;gap:18px}
  .feat-cov{width:100%}
  .grid9{grid-template-columns:repeat(4,minmax(0,1fr))}
  .grid9>:nth-child(n+5){display:none}
  .ag{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .gg{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .dx a.gt.big{grid-column:span 2;min-height:220px}
  .gt.big .tx b{font-size:30px}
  .gt .tx b{font-size:19px}
  .gstack{display:none}
  .ghero-in{min-height:260px}
  .tr{grid-template-columns:30px minmax(0,1fr) 84px;padding:10px 8px;gap:12px}
  .tr .c-gen,.tr .c-plays,.tr .c-price{display:none}
  .tr .act .share{display:none}
  .ptr{grid-template-columns:24px minmax(0,1fr) auto;gap:12px;padding:8px}
  .ptr .c-plays{display:none}
  .pid{flex-direction:column;align-items:flex-start;gap:16px}
  .pav{width:128px;height:128px}
  .phero-in{padding-top:84px}
  .aspot{flex-direction:column;align-items:flex-start}
  .aspot .av{width:110px;height:110px}
  .ev-img{display:none}
  .sec{margin-top:40px}
  .rows2{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .grid6{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .grid6>:nth-child(n+7){display:none}
  .grid9{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid9>:nth-child(n+4){display:none}
  .no1{padding:20px;gap:16px}
  .no1 .big{display:none}
  .no1 .c{width:96px}
  .runner{padding:14px;gap:12px}
  .runner .n{font-size:30px;width:26px}
  .runner .t1{font-size:16px}
  .seg button{padding:0 12px}
  .page-h{margin-bottom:24px}
  .ev{flex-wrap:wrap}.ev-side{flex-direction:row;align-items:center;width:100%;justify-content:space-between}
  .mg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ptr .act .buy{display:none}
  .feat-btns .btn{flex:1 1 auto}
  .chips.scroll{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(-1 * var(--gut));padding-right:var(--gut);scrollbar-width:none}
  .chips.scroll::-webkit-scrollbar{display:none}
  .dfoot{margin-top:48px}
}

/* ── Owned ("Unlocked") state ─────────────────────────────────── */
.unl{display:inline-flex;align-items:center;gap:5px;color:#34C28A;font-size:13px;font-weight:800;white-space:nowrap;vertical-align:middle}
.unl svg{width:13px;height:13px;flex-shrink:0}
.btn-unl{background:rgba(52,194,138,.12);border-color:rgba(52,194,138,.35);cursor:default}
.btn-unl .unl{font-size:14px}
.ptr .act .buy .unl,.tr .unl,.row .end .unl{font-size:12.5px}

/* ── Album page (/album-view) ─────────────────────────────────── */
.trk-card{padding:18px 14px 10px}
.trk-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 8px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.trk-h h2{font-size:20px;font-weight:900;letter-spacing:-.3px;margin-top:4px}
.trk-list .ptr{border-radius:14px}
.algrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}
.dx a.alc{display:flex;flex-direction:column;gap:4px;color:#fff;min-width:0}
.alc-img{aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--card2);margin-bottom:8px;transition:transform .2s}
.alc-img img,.alc-img .ph{width:100%;height:100%;object-fit:cover;display:block}
.dx a.alc:hover .alc-img{transform:translateY(-3px)}
.alc .t1{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alc .t2{font-size:13px;color:var(--mut)}
@media (max-width:900px){.trk-card{padding:14px 6px 6px}.algrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}

/* ── Comments (js/comments.js) — song + album pages ─────────── */
.cm{padding:22px 22px 10px}
.cm-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.card.cm .cm-h h2{margin:0;display:flex;align-items:baseline;gap:8px}
.cm-h h2 span{font-size:14px;font-weight:600;color:var(--mut)}
.cm-sort{display:flex;gap:6px}
.dx .cm-chip{height:30px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:var(--card2);color:var(--mut);font:600 12px var(--font);cursor:pointer}
.dx .cm-chip:hover{color:#fff;border-color:var(--line2)}
.dx .cm-chip.on{background:var(--blue);border-color:var(--blue);color:#fff}
.cm-av{position:relative;flex-shrink:0;width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:13px;overflow:hidden;user-select:none}
.cm-av.sm{width:30px;height:30px;font-size:11px}
.cm-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cm-signin{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px 14px;color:var(--tx2);font-size:14px;margin-bottom:6px}
.cm-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(31,111,224,.12);border:1px solid rgba(91,155,255,.28);border-radius:12px;padding:7px 8px 7px 12px;margin-bottom:8px;font-size:12.5px;color:#A9C9FF}
.cm-banner button{width:26px;height:26px;border-radius:50%;border:0;background:transparent;color:#A9C9FF;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.cm-banner button:hover{background:rgba(255,255,255,.08)}
.cm-banner svg{width:14px;height:14px}
.cm-comp{display:flex;align-items:flex-end;gap:10px}
.cm-field{flex:1;min-width:0;display:flex;align-items:flex-end;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:22px;padding:4px 4px 4px 16px;transition:border-color .15s}
.cm-field:focus-within{border-color:var(--blue-hi)}
.cm-field textarea{flex:1;min-width:0;resize:none;border:0;outline:0;background:transparent;color:#fff;font:400 14px/1.45 var(--font);padding:7px 0;max-height:140px}
.cm-field textarea::placeholder{color:var(--mut)}
.cm-field textarea:focus,.cm-field textarea:focus-visible{outline:none;box-shadow:none}
.dx .cm-send{width:34px;height:34px;flex-shrink:0;border-radius:50%;border:0;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,opacity .15s}
.dx .cm-send:hover{background:var(--blue-hi)}
.dx .cm-send:disabled{background:rgba(138,151,163,.3);cursor:default}
.dx .cm-send svg{width:17px;height:17px}
.cm-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0 4px 48px;min-height:12px}
.cm-emo{display:flex;gap:2px;flex-wrap:wrap}
.cm-emo button{border:0;background:transparent;font-size:19px;line-height:1;padding:5px;border-radius:8px;cursor:pointer}
.cm-emo button:hover{background:rgba(255,255,255,.06)}
.cm-count{font-size:11px;color:var(--mut);margin-left:auto}
.cm-list{margin-top:6px}
.cm-thread{border-top:1px solid var(--line);padding:14px 0 12px}
.cm-it{display:flex;gap:12px;align-items:flex-start}
.cm-it.rp{padding-top:12px}
.cm-b{flex:1;min-width:0}
.cm-pin{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--blue-tx);margin-bottom:3px}
.cm-pin svg{width:11px;height:11px}
.cm-n{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cm-n b{font-size:13.5px;font-weight:700;color:#fff}
.cm-n time{font-size:11.5px;color:var(--mut)}
.cm-badge{font-size:9px;font-weight:800;letter-spacing:.4px;background:var(--blue);color:#fff;padding:2px 5px;border-radius:4px}
.cm-t{margin:4px 0 0;font-size:14px;line-height:1.45;color:var(--tx);white-space:pre-wrap;overflow-wrap:anywhere}
.card .cm-t{color:var(--tx)}
.cm-at{color:var(--blue-tx);font-weight:600}
.cm-a{display:flex;align-items:center;gap:4px;margin-top:6px}
.dx .cm-lnk{border:0;background:transparent;color:var(--mut);font:600 12px var(--font);padding:4px 0;cursor:pointer;margin-right:auto}
.dx .cm-lnk:hover{color:#fff}
.dx .cm-like,.dx .cm-dots{border:0;background:transparent;color:var(--mut);display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 6px;border-radius:8px;cursor:pointer;font:600 12px var(--font)}
.dx .cm-like:hover,.dx .cm-dots:hover{color:#fff;background:rgba(255,255,255,.05)}
.dx .cm-like svg{width:16px;height:16px}
.dx .cm-dots svg{width:16px;height:16px}
.dx .cm-like.on{color:#FF4D6D}
.cm-al{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:3px 9px;border-radius:999px;background:rgba(255,77,109,.13);color:#FF4D6D;font-size:11px;font-weight:600}
.cm-al svg{width:11px;height:11px}
.dx .cm-more-r{display:block;border:0;background:transparent;color:var(--blue-tx);font:600 12px var(--font);padding:8px 0 0 50px;cursor:pointer}
.dx .cm-more-r:hover{color:#A9C9FF}
.cm-replies{padding-left:50px}
.cm-empty{padding:28px 0 22px;text-align:center;color:var(--mut);font-size:14px;border-top:1px solid var(--line)}
.cm-spin{display:inline-block;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:#fff;animation:cmspin .8s linear infinite}
.cm-spin.sm{width:14px;height:14px;margin:10px 0 0}
.dx .cm-send .cm-spin.sm{margin:0}
@keyframes cmspin{to{transform:rotate(360deg)}}
.cm-menu{position:fixed;z-index:96;min-width:190px;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:6px;box-shadow:0 18px 50px rgba(0,0,0,.5);display:flex;flex-direction:column}
.cm-menu button{border:0;background:transparent;color:#fff;text-align:left;font:500 14px var(--font);padding:10px 12px;border-radius:9px;cursor:pointer}
.cm-menu button:hover,.cm-menu button:focus-visible{background:rgba(255,255,255,.07);outline:0}
.cm-menu button.bad{color:#FF4D6D}
.cm-dlg{position:fixed;inset:0;z-index:97;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.66);backdrop-filter:blur(4px)}
.cm-dlg-c{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line2);border-radius:22px;padding:22px}
.cm-dlg-c h3{font-size:17px;font-weight:800;margin:0 0 6px}
.cm-dlg-c p{font-size:14px;color:var(--tx2);margin:0}
.cm-dlg-l{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cm-dlg-l button{border:1px solid var(--line);background:var(--card2);color:#fff;text-align:left;font:500 14px var(--font);padding:12px 14px;border-radius:12px;cursor:pointer}
.cm-dlg-l button:hover{border-color:var(--line2)}
.cm-dlg-a{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.dx .cm-bad{background:#E5484D;color:#fff}.dx .cm-bad:hover{background:#F2555A}
@media (max-width:600px){
  .cm{padding:18px 16px 8px;border-radius:20px}
  .cm-replies{padding-left:28px}
  .dx .cm-more-r{padding-left:50px}
  .cm-sub{padding-left:0}
}

/* ── Promoted releases (explore, trending, genre) ───────────── */
.tagp{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;background:rgba(127,176,255,.14);color:var(--blue-tx);font-size:10.5px;font-weight:800;letter-spacing:.5px;white-space:nowrap;vertical-align:2px;flex-shrink:0}
.tagp.on-cov{position:absolute;top:10px;left:10px;background:rgba(10,18,36,.72);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18)}
.pro-eb{display:flex;align-items:center;gap:6px}
.dx a.pro-why{font-size:13px;font-weight:700;color:var(--blue-tx);white-space:nowrap}
.dx .btn-xs{height:32px;padding:0 12px;font-size:12.5px;border-radius:9px;gap:6px}
.btn-xs svg{width:12px;height:12px}
.scard.pro{background:linear-gradient(180deg,rgba(0,74,173,.16),var(--card) 60%);border:1px solid #23406B;border-radius:18px;padding:10px 10px 12px}
.pro-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.pro-cta .num{font-size:13px;font-weight:700;color:#fff}
.palb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}
.palb{position:relative;overflow:hidden;border-radius:24px;background:#0B1F45;border:1px solid #23406B}
.palb-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(30px) saturate(1.3);transform:scale(1.3);opacity:.55}
.palb-sh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,36,.92),rgba(10,18,36,.55))}
.palb-in{position:relative;display:flex;gap:18px;align-items:center;padding:18px}
.palb-cov{width:132px;aspect-ratio:1;border-radius:14px;object-fit:cover;box-shadow:0 18px 36px rgba(0,0,0,.5);flex-shrink:0;background:var(--card2)}
.palb-x{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.palb-x h3{font-size:22px;font-weight:900;letter-spacing:-.5px;margin-top:4px;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.palb-x p{font-size:13px;color:var(--tx2);margin-top:4px}
.palb-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.side .palb-in{flex-direction:column;align-items:flex-start}
.side .palb-cov{width:140px}
.pro-band{background:linear-gradient(90deg,rgba(0,74,173,.18),rgba(0,74,173,.04));border:1px solid #23406B;border-radius:16px;margin:10px 0 8px;padding:4px 0}
.tr.pro .pro-rk{display:flex;justify-content:center;color:var(--blue-tx)}
.tr.pro .pro-rk svg{width:18px;height:18px}
.pro-sub{display:flex;align-items:center;gap:8px;min-width:0;margin-top:2px}
.pro-sub .t2{min-width:0}
@media (max-width:1100px) and (min-width:601px){.pro-sec .grid6>:nth-child(n+5){display:none}}
@media (max-width:600px){
  .pro-sec .grid6{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 calc(-1*var(--gut));padding:0 var(--gut);scrollbar-width:none}
  .pro-sec .grid6>*{flex:0 0 44%;display:flex!important;scroll-snap-align:start}
  .palb-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 calc(-1*var(--gut));padding:0 var(--gut);scrollbar-width:none}
  .palb-grid>*{flex:0 0 86%;scroll-snap-align:start}
  .palb-grid>:only-child{flex-basis:100%}
  .palb-cov{width:96px}.palb-x h3{font-size:18px}
  .dx a.pro-why{display:none}
}

/* ── Likes (songs.liked_songs / albums.is_liked_by) ─────────── */
.lk{cursor:pointer}
.lk .i-heart{width:16px;height:16px;transition:transform .15s}
.ib.sm.lk .i-heart{width:14px;height:14px}
.dx .lk.on{color:#FF5C7A}
.lk.on .i-heart{fill:currentColor}
.ib.lk.on{background:rgba(255,92,122,.14);border-color:rgba(255,92,122,.45)}
.lk.pop .i-heart{animation:lkpop .32s ease-out}
@keyframes lkpop{40%{transform:scale(1.35)}100%{transform:scale(1)}}
/* bare heart beside a title (song cards, compact rows) */
.lk-b{width:36px;height:36px;margin:-4px -8px 0 0;border:0;background:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--mut);flex-shrink:0;padding:0}
.lk-b:hover{color:#fff;background:var(--card2)}
.lk-b .i-heart{width:18px;height:18px}
.row .lk-b{margin:0 -4px 0 0}
.sc-m{display:flex;align-items:flex-start;gap:4px;min-width:0}
.sc-m>div{flex:1;min-width:0}
/* pill with the like count (song + album pages) */
.dx .btn.lkp{padding:0 16px;gap:8px;font-variant-numeric:tabular-nums}
.dx .btn.lkp.on{border-color:rgba(255,92,122,.5);background:rgba(255,92,122,.1);color:#fff}
.btn.lkp.on .i-heart{color:#FF5C7A}
.btn.lkp .i-heart{width:18px;height:18px}
.ib.glass.lk.on{background:rgba(255,92,122,.22)}

/* header heart → /wishlist */
.dx a.hdr-wl{position:relative;color:#fff}
.dx a.hdr-wl.on{background:#2A353C;border-color:var(--line2)}
.hdr-wl .i-heart{width:18px;height:18px}
.wl-n{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#FF5C7A;color:#fff;font-size:10.5px;font-weight:800;line-height:18px;text-align:center;font-style:normal}
.wl-n[hidden]{display:none}
.tabbar a span{position:relative}
.tabbar .wl-n{top:-2px;right:4px;min-width:16px;height:16px;line-height:16px;font-size:9.5px}

/* sign-in sheet opened by a like */
.ck.auth .ck-secure{display:none}
.ck-like{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,92,122,.14);color:#FF5C7A;flex-shrink:0}
.ck-like svg{width:18px;height:18px;fill:currentColor}
.ck-like.big{width:56px;height:56px;border-radius:12px}

/* ── Wishlist page ───────────────────────────────────────────── */
.wl .page-h{margin-bottom:24px}
.wl-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin-bottom:28px}
.dx .seg button{height:36px;padding:0 16px;border-radius:9px;font-size:13px;font-weight:700;color:var(--mut);background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.dx .seg button.on{background:#2A353C;color:#fff}
.seg button .mut{font-weight:600}
.wl-sum{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.wl-sum .mut{font-weight:600;font-size:13px}
.wl-sec+.wl-sec{margin-top:44px}
.wl-list{display:flex;flex-direction:column;gap:2px}
.wlr{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;align-items:center;gap:16px;padding:10px 14px;border-radius:var(--r);cursor:pointer}
.wlr:hover{background:var(--card)}
.wlr.playing{background:rgba(0,74,173,.14)}.wlr.playing .t1{color:var(--blue-tx)}
.wlr .who{display:flex;align-items:center;gap:14px;min-width:0}
.wlr .who img,.wlr .who .ph{width:52px;height:52px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--card2)}
.wlr .t1{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlr .t2{display:block;font-size:13px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx .wlr a.t2{color:var(--mut)}
.wlr .act{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.wlr .act .buy .unl{font-size:12.5px}
.wla{display:flex;flex-direction:column;gap:3px;min-width:0}
.wla-img{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--card2);margin-bottom:8px}
.wla-img a,.wla-img img,.wla-img .ph{display:block;width:100%;height:100%;object-fit:cover}
.wla-lk{position:absolute;top:10px;right:10px}
.dx .ib.glass.wla-lk{background:rgba(10,18,36,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.wla-pl{position:absolute;right:10px;bottom:10px;box-shadow:0 8px 20px rgba(0,0,0,.45)}
.ib.play.playing{background:#fff;border-color:#fff;color:var(--bg)}
.wla .t1{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wla .t2{font-size:13px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wla-f{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}
.wl-empty{text-align:center;padding:56px 20px;border:1px dashed var(--line2);border-radius:var(--r-lg);max-width:640px;margin:0 auto}
.wl-ic{width:64px;height:64px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;background:rgba(255,92,122,.12);color:#FF5C7A}
.wl-ic svg{width:28px;height:28px;fill:currentColor}
.wl-empty h2{font-size:22px;font-weight:900;letter-spacing:-.4px}
.wl-empty p{color:var(--mut);margin:8px auto 22px;max-width:420px;line-height:1.6}
.wl-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.wl-note{margin-top:28px;font-size:13px;color:var(--mut)}
@media (max-width:900px){
  .wlr{grid-template-columns:minmax(0,1fr) auto;padding:8px;gap:12px}
  .wlr .c-gen{display:none}
}
@media (max-width:600px){
  .wl{padding-top:20px!important}
  .wl .page-h p{font-size:14px}
  .wl-bar{flex-direction:column;align-items:stretch;margin-bottom:20px}
  .wl-bar .seg{display:flex}
  .dx .wl-bar .seg button{flex:1;justify-content:center;padding:0 8px}
  .wlr .who img,.wlr .who .ph{width:46px;height:46px}
  .wlr .who{gap:12px}
  .wlr .act{gap:6px}
  .wlr .act .buy{height:32px;padding:0 10px;font-size:12px}
  .wla-lk,.wla-pl{transform:scale(.9)}
  .wla-f .btn-xs{padding:0 10px}
  .wl-empty{padding:40px 18px}
  .wl-btns .btn{flex:1 1 auto}
  .feat-btns .btn.lkp{flex:0 0 auto}
  .sc-m .lk-b{width:32px;height:32px;margin-right:-6px}
}
.wla .tagx{align-self:flex-start;margin:2px 0 2px}
/* wishlist lives in the phone menu sheet (not the bottom tab bar): count pill beside the label */
.mi .wl-n.mi-n{position:static;min-width:22px;height:22px;line-height:22px;font-size:11.5px;padding:0 7px}
