:root{
    color-scheme:light;
    --bg:#ffffff; --surf:#f7f8fa; --surf-2:#eef1f5; --surf-3:#e6eaf0;
    --line:#e4e8ee; --line-2:#cfd6e0;
    --tx:#0f1521; --tx-2:#4a5566; --tx-3:#8b95a6;
    --t1:#5b6675; --t2:#15803d; --t3:#b45309; --t4:#c2410c; --t5:#b91c1c;
    --t1s:#eef0f3; --t2s:#e8f6ec; --t3s:#fcf1e0; --t4s:#fdeee5; --t5s:#fdeaea;
    --accent:var(--accent-light);
    --accent-light:#d97706; --accent-dark:#fbbf24;
    --on-accent:#ffffff;
    --ring:color-mix(in srgb, var(--accent) 40%, transparent);
    --shadow:0 1px 2px rgba(15,21,33,.05), 0 1px 3px rgba(15,21,33,.06);
    --shadow-lg:0 4px 12px rgba(15,21,33,.07), 0 1px 3px rgba(15,21,33,.05);
    --disp:'Plus Jakarta Sans','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
    --body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
    --r:12px; --r-sm:8px; --r-pill:999px;
  }
  *{box-sizing:border-box}
  body{
    margin:0;background:var(--bg);color:var(--tx);
    font-family:var(--body);font-size:15px;line-height:1.55;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 1.25rem 6rem}
  ::selection{background:var(--accent);color:var(--on-accent)}
  h1,h2,h3{font-family:var(--disp);letter-spacing:-.02em}
  button,input{font-family:inherit}

  /* ───────── app bar ───────── */
  .bandbar{
    position:sticky;top:0;z-index:40;margin:0 -1.25rem 2rem;padding:.7rem 1.25rem .75rem;
    background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
    border-bottom:1px solid var(--line);
    display:flex;flex-direction:column;gap:.55rem;
  }
  .barrow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
  /* ── permanent brand mark: fixed for every band, never takes the accent ── */
  .brandrow{padding-bottom:.1rem;margin-bottom:.1rem}
  .brand{display:inline-flex;align-items:center;gap:.5rem;min-width:0}
  .logomark{width:23px;height:17px;flex:none;display:block}
  .brandname{
    font-family:var(--disp);font-weight:800;font-size:1.02rem;line-height:1;
    letter-spacing:-.01em;color:var(--tx);white-space:nowrap;
  }
  .brandsub{
    font-size:.68rem;font-weight:500;color:var(--tx-3);white-space:nowrap;
    padding-left:.55rem;border-left:1px solid var(--line);line-height:1.2;
  }
  @media (max-width:560px){ .brandsub{display:none} }
  .bandbar .lbl{
    font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    color:var(--tx-3);white-space:nowrap;min-width:2.9rem;
  }
  /* band pills */
  .bandbtns{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}
  .bandbtn{
    font-size:.83rem;font-weight:600;letter-spacing:-.005em;
    background:transparent;border:1px solid transparent;border-radius:var(--r-pill);
    padding:.35rem .72rem;cursor:pointer;color:var(--tx-2);line-height:1.35;white-space:nowrap;
    transition:background .13s ease,color .13s ease,border-color .13s ease;
  }
  .bandbtn:hover{background:var(--surf-2);color:var(--tx)}
  .bandbtn[aria-pressed="true"]{
    background:var(--accent);color:var(--on-accent);border-color:transparent;
    box-shadow:var(--shadow);
  }
  .bandbtn[disabled]{opacity:.4;cursor:not-allowed}
  .bandbtn[disabled]:hover{background:transparent;color:var(--tx-2)}
  .bandbtn.napart[disabled]{opacity:.32;text-decoration:line-through}
  .bandbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  /* part row reads as a segmented control */
  #instbtns{
    display:inline-flex;gap:.15rem;background:var(--surf-2);
    border-radius:var(--r-pill);padding:.2rem;flex-wrap:wrap;
  }
  #instbtns .bandbtn{padding:.3rem .78rem;font-size:.82rem}
  #instbtns .bandbtn[aria-pressed="true"]{background:var(--bg);color:var(--tx);box-shadow:var(--shadow)}
  #instbtns .bandbtn:hover:not([aria-pressed="true"]):not([disabled]){background:color-mix(in srgb,var(--bg) 55%,transparent)}
  .bandbar .tot,.soon,.svcnote{
    margin-left:auto;font-size:.72rem;font-weight:500;color:var(--tx-3);white-space:nowrap;
  }
  .soon,.svcnote{margin-left:0}
  .svcbtn{
    font-size:.74rem;font-weight:600;background:transparent;border:1px solid transparent;
    border-radius:var(--r-pill);padding:.24rem .6rem;cursor:pointer;color:var(--tx-3);
    transition:background .13s ease,color .13s ease;
  }
  .svcbtn:hover{color:var(--tx);background:var(--surf-2)}
  .svcbtn[aria-pressed="true"]{background:var(--surf-3);color:var(--tx)}
  .svcbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .thm{display:flex;gap:.6rem;margin-left:auto;align-items:center}
  .thm>span:last-child{display:inline-flex;gap:.15rem;align-items:center;background:var(--surf-2);border-radius:var(--r-pill);padding:.18rem}

  /* ───────── masthead ───────── */
  header{margin-bottom:2rem}
  .eyebrow{
    display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.04em;
    text-transform:uppercase;color:var(--accent);margin:0 0 .7rem;
    background:color-mix(in srgb,var(--accent) 11%,transparent);
    padding:.28rem .6rem;border-radius:var(--r-pill);
  }
  h1{
    font-weight:800;font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.08;
    margin:0 0 .8rem;letter-spacing:-.03em;
  }
  .hgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.75rem;margin-bottom:1.6rem}
  @media(max-width:820px){ .hgrid{grid-template-columns:1fr;gap:1.1rem} }
  .lede{max-width:60ch;color:var(--tx-2);margin:0 0 1.1rem;font-size:1.02rem}
  .lede strong{color:var(--tx);font-weight:600}
  .calib{
    margin:0;padding:1rem 1.1rem;background:var(--surf);
    border:1px solid var(--line);border-radius:var(--r);
    border-left:3px solid var(--accent);
    font-size:.93rem;color:var(--tx-2);
  }
  .calib b{color:var(--tx);font-weight:600}
  .stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}
  .stat{
    background:var(--surf);border:1px solid var(--line);border-radius:var(--r);
    padding:.65rem .8rem;display:flex;flex-direction:column;gap:.1rem;min-width:0;
  }
  .stat .k{font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--tx-3)}
  .stat .v{
    font-family:var(--disp);font-weight:700;font-size:1.45rem;line-height:1.1;
    letter-spacing:-.03em;color:var(--tx);font-variant-numeric:tabular-nums;
  }
  .stat .s{
    font-size:.72rem;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .criteria{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.9rem}
  .crit{
    font-size:.74rem;font-weight:500;color:var(--tx-2);
    background:var(--surf);border:1px solid var(--line);
    padding:.3rem .6rem;border-radius:var(--r-pill);
  }
  .crit.key{border-color:transparent;background:var(--accent);color:var(--on-accent);font-weight:600}
  .verified{font-size:.85rem;color:var(--tx-3);margin:0;line-height:1.55}

  /* ───────── search ───────── */
  .controls{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin:0 0 1.5rem}
  #q{
    flex:1;min-width:220px;background:var(--surf);border:1px solid var(--line);
    color:var(--tx);font-size:.94rem;padding:.62rem .85rem;border-radius:var(--r);
    transition:border-color .13s ease, box-shadow .13s ease, background .13s ease;
  }
  #q::placeholder{color:var(--tx-3)}
  #q:focus{outline:none;border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 3px var(--ring)}
  .count{font-size:.8rem;font-weight:500;color:var(--tx-3);white-space:nowrap}

  /* ───────── grade key ───────── */
  .legend{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin:0 0 2.2rem}
  .lg{
    padding:.8rem .85rem .85rem;background:var(--surf);border:1px solid var(--line);
    border-radius:var(--r);display:flex;gap:.6rem;align-items:flex-start;
  }
  .lg i{
    flex:none;width:10px;height:10px;border-radius:50%;margin-top:.42rem;
    background:var(--t1);
  }
  .lg:nth-child(2) i{background:var(--t2)} .lg:nth-child(3) i{background:var(--t3)}
  .lg:nth-child(4) i{background:var(--t4)} .lg:nth-child(5) i{background:var(--t5)}
  .lg b{display:block;font-family:var(--disp);font-weight:700;font-size:.9rem;margin-bottom:.15rem;letter-spacing:-.01em}
  .lg span{font-size:.8rem;color:var(--tx-2);line-height:1.45;display:block}

  /* ───────── album cards ───────── */
  .album{
    margin-bottom:1.5rem;background:var(--bg);border:1px solid var(--line);
    border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);
  }
  .album-head{background:var(--surf);border-bottom:1px solid var(--line)}
  .album-top{
    display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.95rem 1.1rem .55rem;
  }
  .album-no{
    flex:none;display:inline-flex;align-items:center;justify-content:center;
    min-width:1.85rem;height:1.85rem;padding:0 .4rem;border-radius:var(--r-sm);
    background:var(--accent);color:var(--on-accent);
    font-family:var(--disp);font-weight:700;font-size:.9rem;line-height:1;
  }
  .album-head h2{
    font-weight:700;font-size:clamp(1.12rem,2.2vw,1.4rem);margin:0;line-height:1.25;color:var(--tx);
  }
  .album-head .yr{font-size:.85rem;font-weight:500;color:var(--tx-3);font-variant-numeric:tabular-nums}
  .drummer{
    font-size:.7rem;font-weight:500;color:var(--tx-2);background:var(--surf-2);
    border-radius:var(--r-pill);padding:.2rem .55rem;
  }
  .album-stats{
    margin-left:auto;display:flex;align-items:center;gap:.5rem;
    font-size:.76rem;font-weight:500;color:var(--tx-3);white-space:nowrap;flex-wrap:wrap;
  }
  .album-stats>span+span::before,.album-stats .avg+.playalb::before{content:"·";margin-right:.5rem;color:var(--line-2)}
  .avg{color:var(--tx-2);font-weight:600}
  .avgbar{display:none}
  .blurb{
    font-size:.88rem;color:var(--tx-2);margin:0;line-height:1.55;
    padding:0 1.1rem 1rem;max-width:78ch;
  }

  /* ───────── track rows ───────── */
  .rows{display:block}
  .row{
    display:grid;grid-template-columns:2.1rem minmax(0,1fr) auto 2.1rem;
    gap:.15rem 1rem;align-items:center;
    padding:.85rem 1.1rem;border-top:1px solid var(--line);
    transition:background .12s ease;
  }
  .row:first-child{border-top:0}
  .row:hover{background:var(--surf)}
  .rank{
    font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;
    color:var(--tx-3);text-align:right;grid-row:1/span 2;align-self:center;
  }
  .name{font-weight:600;font-size:.97rem;line-height:1.35;letter-spacing:-.01em;color:var(--tx)}
  .note{font-size:.87rem;color:var(--tx-2);margin-top:.14rem;line-height:1.5;grid-column:2;grid-row:2}
  .meter{display:none}
  .side{display:contents}
  .score{
    grid-column:3;grid-row:1/span 2;align-self:center;justify-self:end;
    font-family:var(--disp);font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;
    line-height:1;letter-spacing:-.02em;padding:.4rem .6rem;border-radius:var(--r-sm);
    min-width:3.1rem;text-align:center;
    color:var(--t1);background:var(--t1s);
  }
  .row.t2 .score{color:var(--t2);background:var(--t2s)}
  .row.t3 .score{color:var(--t3);background:var(--t3s)}
  .row.t4 .score{color:var(--t4);background:var(--t4s)}
  .row.t5 .score{color:var(--t5);background:var(--t5s)}
  .tags{
    grid-column:2;grid-row:3;display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem;
  }
  .tag{
    font-size:.68rem;font-weight:500;color:var(--tx-3);background:var(--surf-2);
    padding:.15rem .45rem;border-radius:var(--r-pill);line-height:1.5;
  }
  .tag.hot{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);font-weight:600}
  .play{
    grid-column:4;grid-row:1/span 2;align-self:center;justify-self:end;
    text-decoration:none;color:var(--tx-3);background:var(--surf-2);
    font-size:.8rem;width:2rem;height:2rem;border-radius:50%;
    display:flex;align-items:center;justify-content:center;line-height:1;
    transition:background .13s ease,color .13s ease,transform .13s ease;
  }
  .play:hover{color:var(--on-accent);background:var(--accent);transform:scale(1.08)}
  .play:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .playalb{
    text-decoration:none;color:var(--accent);font-size:.76rem;font-weight:600;
  }
  .playalb:hover{text-decoration:underline}
  .playalb:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
  .empty{padding:3rem 0;text-align:center;color:var(--tx-3);font-weight:500}

  /* ───────── ladder + cross-band scale ───────── */
  .ladder,.scale{margin-top:3rem}
  .ladder h2,.scale h2{
    font-weight:800;font-size:clamp(1.35rem,2.8vw,1.8rem);margin:0 0 .4rem;
    line-height:1.2;letter-spacing:-.025em;
  }
  .ladder p.sub,.scale p.sub{color:var(--tx-2);margin:0 0 1.1rem;max-width:66ch;font-size:.94rem}
  .steps,.brows{
    display:block;background:var(--bg);border:1px solid var(--line);
    border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);
  }
  .step{
    display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.9rem;align-items:start;
    padding:.85rem 1.1rem;border-top:1px solid var(--line);
  }
  .step:first-child{border-top:0}
  .step .s{
    font-family:var(--disp);font-size:.82rem;font-weight:700;color:var(--accent);
    text-align:center;background:color-mix(in srgb,var(--accent) 12%,transparent);
    border-radius:var(--r-sm);padding:.25rem 0;font-variant-numeric:tabular-nums;
  }
  .step b{font-weight:600;font-size:.95rem;letter-spacing:-.01em}
  .step em{display:block;font-style:normal;font-size:.87rem;color:var(--tx-2);margin-top:.14rem;line-height:1.5}
  .brow{
    width:100%;display:grid;grid-template-columns:11rem 3.8rem minmax(0,1fr);gap:1rem;
    align-items:center;text-align:left;padding:.85rem 1.1rem;background:none;border:0;
    border-top:1px solid var(--line);cursor:pointer;color:var(--tx);font-family:var(--body);
    --pkc:var(--al);transition:background .12s ease;
  }
  .brow:first-child{border-top:0}
  .brow:hover{background:var(--surf)}
  .brow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .brow b{font-family:var(--disp);font-size:1rem;font-weight:700;letter-spacing:-.015em}
  .brow .pk{
    font-family:var(--disp);font-size:1.3rem;font-weight:700;text-align:center;
    font-variant-numeric:tabular-nums;color:var(--pkc);line-height:1;letter-spacing:-.02em;
  }
  .brow span.d{font-size:.86rem;color:var(--tx-2);line-height:1.5}
  .brow.cur{background:var(--surf)}
  .brow.cur b::after{
    content:"Viewing";margin-left:.5rem;font-family:var(--body);font-size:.62rem;font-weight:600;
    letter-spacing:.04em;text-transform:uppercase;color:var(--accent);vertical-align:middle;
    background:color-mix(in srgb,var(--accent) 12%,transparent);padding:.15rem .4rem;border-radius:var(--r-pill);
  }
  footer{
    margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line);
    font-size:.87rem;color:var(--tx-3);max-width:70ch;line-height:1.65;
  }

  /* ───────── responsive ───────── */
  @media (max-width:960px){ .legend{grid-template-columns:repeat(3,1fr)} }
  @media (max-width:640px){
    .wrap{padding:0 .9rem 4rem}
    .bandbar{margin:0 -.9rem 1.5rem;padding:.6rem .9rem}
    .bandbar .tot{display:none}
    .legend{grid-template-columns:1fr;gap:.45rem}
    .lg{padding:.6rem .7rem}
    .row{grid-template-columns:1.9rem minmax(0,1fr) auto;padding:.8rem .85rem;gap:.15rem .7rem}
    .rank{grid-row:1}
    .score{grid-row:1;font-size:1rem;min-width:2.9rem}
    .note{grid-column:2/-1}
    .tags{grid-column:2/-1}
    .play{grid-column:2/-1;grid-row:4;justify-self:start;margin-top:.5rem}
    .album-top,.blurb{padding-left:.85rem;padding-right:.85rem}
    .album-stats{margin-left:0;width:100%;padding-top:.15rem}
    .brow{grid-template-columns:1fr 3.4rem;padding:.8rem .85rem}
    .brow span.d{grid-column:1/-1;margin-top:.25rem}
    .step{padding:.8rem .85rem}
  }

  /* ───────── dark ───────── */
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]):not([data-mode="light"]){
      color-scheme:dark;
      --bg:#0b0d12; --surf:#12151c; --surf-2:#1a1e27; --surf-3:#232833;
      --line:#232833; --line-2:#333a47;
      --tx:#f2f5f9; --tx-2:#a4aebd; --tx-3:#6e7889;
      --t1:#94a3b8; --t2:#4ade80; --t3:#fbbf24; --t4:#fb923c; --t5:#f87171;
      --t1s:#1a1e27; --t2s:#12261a; --t3s:#2a2010; --t4s:#2b1c11; --t5s:#2c1618;
      --accent:var(--accent-dark);
      --on-accent:#0b0d12;
      --shadow:0 1px 2px rgba(0,0,0,.4);
      --shadow-lg:0 4px 14px rgba(0,0,0,.5);
    }
    :root:not([data-theme="light"]):not([data-mode="light"]) .brow{--pkc:var(--ad)}
  }
  :root[data-theme="dark"]:not([data-mode="light"]),:root[data-mode="dark"]{
    color-scheme:dark;
    --bg:#0b0d12; --surf:#12151c; --surf-2:#1a1e27; --surf-3:#232833;
    --line:#232833; --line-2:#333a47;
    --tx:#f2f5f9; --tx-2:#a4aebd; --tx-3:#6e7889;
    --t1:#94a3b8; --t2:#4ade80; --t3:#fbbf24; --t4:#fb923c; --t5:#f87171;
    --t1s:#1a1e27; --t2s:#12261a; --t3s:#2a2010; --t4s:#2b1c11; --t5s:#2c1618;
    --accent:var(--accent-dark);
    --on-accent:#0b0d12;
    --shadow:0 1px 2px rgba(0,0,0,.4);
    --shadow-lg:0 4px 14px rgba(0,0,0,.5);
  }
  :root[data-theme="dark"]:not([data-mode="light"]) .brow,:root[data-mode="dark"] .brow{--pkc:var(--ad)}
  :root[data-mode="light"]{
    color-scheme:light;
    --bg:#ffffff; --surf:#f7f8fa; --surf-2:#eef1f5; --surf-3:#e6eaf0;
    --line:#e4e8ee; --line-2:#cfd6e0;
    --tx:#0f1521; --tx-2:#4a5566; --tx-3:#8b95a6;
    --t1:#5b6675; --t2:#15803d; --t3:#b45309; --t4:#c2410c; --t5:#b91c1c;
    --t1s:#eef0f3; --t2s:#e8f6ec; --t3s:#fcf1e0; --t4s:#fdeee5; --t5s:#fdeaea;
    --accent:var(--accent-light);
    --on-accent:#ffffff;
    --shadow:0 1px 2px rgba(15,21,33,.05), 0 1px 3px rgba(15,21,33,.06);
  }
  :root[data-mode="light"] .brow{--pkc:var(--al)}
