/* stats.innerpulse.net — dark, team-accented analytics UI. No external assets. */
:root{
  --bg:#080b12;--bg2:#0d121c;--card:#111827;--card2:#161f31;--card3:#1b263b;--line:#212d44;--line2:#2b3a57;--text:#e8edf6;--text-strong:#fff;--muted:#8b98b2;--dim:#5f6b84;
  --pos:#34d399;--neg:#fb7185;--warn:#fbbf24;--live:#ef4444;--accent:#3b82f6;--accent2:#f59e0b;--field:#123524;--field-line:#2c6b43;
  --link:#60a5fa;--on-accent:#fff;--live-text:#fecaca;--pos-text:#a7f3d0;--neg-text:#fecdd3;--tv-text:#c7d2fe;--tv-line:#3b4a7a;--tv-bg:#1b2340;
  --tooltip-bg:#0b1020;--tooltip-text:#fff;--hero-text:#fff;--hero-mix:40%;--glow:.6;--scroll-thumb:#2b3a57;--scroll-hover:#3d5078;
  --radius:16px;--shadow:0 1px 0 rgba(255,255,255,.03) inset,0 12px 32px -12px rgba(0,0,0,.55);
  --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Inter,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.2,1.35,.35,1);
  color-scheme:dark;
}
/* themes: set on <html data-theme="…"> by the switcher (auto follows the OS) */
:root[data-theme="midnight"]{--bg:#03060f;--bg2:#070c1a;--card:#0a1226;--card2:#0e1830;--card3:#132040;--line:#18264a;--line2:#223463;--muted:#8796bd;--dim:#56648a;--accent:#22d3ee;--link:#67e8f9;--tv-bg:#0f1b3a;--scroll-thumb:#223463;--field:#07261f;--field-line:#15523f}
:root[data-theme="graphite"]{--bg:#121316;--bg2:#17181c;--card:#1c1d22;--card2:#222429;--card3:#2a2c33;--line:#2e3038;--line2:#3a3d47;--text:#ececef;--muted:#9a9ca6;--dim:#6b6e78;--accent:#a78bfa;--link:#c4b5fd;--tv-bg:#26233a;--tv-line:#453d6b;--tv-text:#ddd6fe;--tooltip-bg:#18191d;--scroll-thumb:#3a3d47;--scroll-hover:#50535f;--field:#1b2a22;--field-line:#35503f}
:root[data-theme="light"],:root[data-theme="paper"]{
  --bg:#f3f5f9;--bg2:#e9edf4;--card:#ffffff;--card2:#f6f8fb;--card3:#edf1f7;--line:#dde3ec;--line2:#c9d2df;--text:#0f172a;--text-strong:#020617;--muted:#566176;--dim:#8a93a6;
  --pos:#059669;--neg:#e11d48;--warn:#d97706;--live:#dc2626;--accent:#2563eb;--accent2:#d97706;--field:#2f7d4a;--field-line:#5aa672;
  --link:#1d4ed8;--live-text:#b91c1c;--pos-text:#047857;--neg-text:#be123c;--tv-text:#3730a3;--tv-line:#c7d2fe;--tv-bg:#eef2ff;
  --tooltip-bg:#0f172a;--tooltip-text:#fff;--hero-text:#0f172a;--hero-mix:22%;--glow:.25;--scroll-thumb:#c3ccd9;--scroll-hover:#9aa7ba;
  --shadow:0 1px 2px rgba(15,23,42,.06),0 10px 24px -14px rgba(15,23,42,.25);color-scheme:light}
:root[data-theme="paper"]{--bg:#f4efe6;--bg2:#ebe4d7;--card:#fffdf8;--card2:#f8f3ea;--card3:#efe8db;--line:#e2d9c8;--line2:#d2c6b1;--text:#2b2419;--text-strong:#140f08;--muted:#6f6352;--dim:#9a8e7b;--accent:#b45309;--accent2:#0f766e;--link:#9a3412;--tv-text:#7c2d12;--tv-line:#fed7aa;--tv-bg:#fff7ed;--tooltip-bg:#2b2419;--hero-text:#2b2419}
@media (prefers-color-scheme:light){:root[data-theme="auto"]{
  --bg:#f3f5f9;--bg2:#e9edf4;--card:#ffffff;--card2:#f6f8fb;--card3:#edf1f7;--line:#dde3ec;--line2:#c9d2df;--text:#0f172a;--text-strong:#020617;--muted:#566176;--dim:#8a93a6;
  --pos:#059669;--neg:#e11d48;--warn:#d97706;--live:#dc2626;--accent:#2563eb;--accent2:#d97706;--field:#2f7d4a;--field-line:#5aa672;
  --link:#1d4ed8;--live-text:#b91c1c;--pos-text:#047857;--neg-text:#be123c;--tv-text:#3730a3;--tv-line:#c7d2fe;--tv-bg:#eef2ff;
  --tooltip-bg:#0f172a;--tooltip-text:#fff;--hero-text:#0f172a;--hero-mix:22%;--glow:.25;--scroll-thumb:#c3ccd9;--scroll-hover:#9aa7ba;
  --shadow:0 1px 2px rgba(15,23,42,.06),0 10px 24px -14px rgba(15,23,42,.25);color-scheme:light}}
/* scrollbars that belong to the theme */
*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:10px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover);background-clip:padding-box;border:2px solid transparent}
::-webkit-scrollbar-corner{background:transparent}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14.5px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a:hover{color:var(--text-strong)}
b,strong{font-weight:650}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(26px,4vw,42px);line-height:1.08;letter-spacing:-.025em}
h2{font-size:16.5px}
h3{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:650}
h4{font-size:12px;color:var(--muted);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.06em}
small,.small{font-size:12px}
.muted{color:var(--muted)}.dim{color:var(--dim)}
.pos{color:var(--pos)}.neg{color:var(--neg)}
code{font-family:var(--mono);font-size:12.5px;background:var(--bg2);padding:1px 5px;border-radius:5px}
.bg-glow{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:
  radial-gradient(60vw 42vh at 6% -12%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 62%),
  radial-gradient(48vw 34vh at 102% -4%,color-mix(in srgb,var(--accent2) 13%,transparent),transparent 62%)}
.bg-glow svg{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.bg-glow .yard{stroke:color-mix(in srgb,var(--text) 5%,transparent);stroke-width:1}
.js .bg-glow .yards{animation:drift 60s linear infinite}
@keyframes drift{to{transform:translateX(-120px)}}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 22px;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:18px;letter-spacing:-.02em;white-space:nowrap}
.brand b{color:var(--link);font-weight:800}
.brand small{color:var(--muted);font-weight:500;margin-left:4px}
.brand svg{transition:transform .5s var(--spring)}.brand:hover svg{transform:rotate(-20deg) scale(1.08)}
.nav{display:flex;gap:2px;position:relative;align-items:center}
.nav-top{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:9px;color:var(--muted);font-weight:650;position:relative;transition:color .2s,background .2s;white-space:nowrap}
.nav-top:hover,.nav-group:focus-within>.nav-top,.nav-group.open>.nav-top{color:var(--text);background:var(--card)}
.nav-top.active{color:var(--text)}
.nav-top.active::after{content:"";position:absolute;left:11px;right:11px;bottom:1px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) calc(var(--glow)*100%),transparent)}
.nav-top .caret{opacity:.6;transition:transform .25s var(--ease)}
.nav-group{position:relative}
.nav-group:hover .caret,.nav-group.open .caret{transform:rotate(180deg)}
.mega{position:absolute;top:calc(100% + 8px);left:-8px;min-width:250px;background:color-mix(in srgb,var(--card) 96%,transparent);backdrop-filter:blur(18px);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow),0 24px 48px -24px rgba(0,0,0,.5);padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top left;transition:opacity .18s,transform .22s var(--ease),visibility 0s .22s;z-index:40}
.mega::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.nav-group:hover>.mega,.nav-group:focus-within>.mega,.nav-group.open>.mega{opacity:1;visibility:visible;transform:none;transition:opacity .18s,transform .22s var(--ease)}
.mega-list{display:grid;gap:2px}
.mega-list a{display:flex;flex-direction:column;padding:8px 10px;border-radius:9px;transition:background .15s}
.mega-list a:hover{background:var(--card3)}
.mega-list b{font-weight:650;font-size:13.5px}.mega-list small{color:var(--muted);font-size:12px}
.mega-wide{width:min(760px,92vw)}
.mega-teams{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 10px}
.mega-teams h5{margin:6px 6px 2px;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.mega-teams a{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:8px;font-size:13px;font-weight:600}
.mega-teams a:hover{background:var(--card3)}
.mega-foot{display:flex;gap:16px;justify-content:flex-end;border-top:1px solid var(--line);margin-top:8px;padding:8px 6px 2px;font-size:12.5px}.mega-foot a{color:var(--link)}
.theme-pick{position:relative}
.theme-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--muted);cursor:pointer;transition:color .2s,border-color .2s,transform .3s var(--spring)}
.theme-btn:hover{color:var(--text);border-color:var(--line2);transform:rotate(-15deg)}
.theme-menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--line2);border-radius:12px;box-shadow:var(--shadow),0 20px 40px -20px rgba(0,0,0,.5);padding:6px;min-width:190px;z-index:45;animation:dropin .18s var(--ease)}
.theme-menu button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--text);font:inherit;font-size:13.5px;padding:7px 9px;border-radius:8px;cursor:pointer;text-align:left}
.theme-menu button:hover{background:var(--card3)}
.theme-menu button[aria-checked="true"]{background:color-mix(in srgb,var(--accent) 16%,transparent);font-weight:650}
.swatch{width:18px;height:18px;border-radius:50%;border:1px solid var(--line2);flex:none}
.sw-auto{background:linear-gradient(135deg,#0d121c 50%,#f3f5f9 50%)}.sw-dark{background:linear-gradient(135deg,#111827,#3b82f6)}.sw-midnight{background:linear-gradient(135deg,#03060f,#22d3ee)}.sw-graphite{background:linear-gradient(135deg,#1c1d22,#a78bfa)}.sw-light{background:linear-gradient(135deg,#fff,#2563eb)}.sw-paper{background:linear-gradient(135deg,#fffdf8,#b45309)}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--on-accent);padding:6px 10px;border-radius:8px;z-index:100}.skip:focus{left:8px}
.subnav{position:sticky;top:57px;z-index:15;margin:0 0 16px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.subnav-inner{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:6px 0}
.subnav-inner::-webkit-scrollbar{display:none}
.subnav a{flex:none;padding:7px 13px;border-radius:999px;color:var(--muted);font-weight:650;font-size:13.5px;border:1px solid transparent;transition:color .2s,background .2s,border-color .2s}
.subnav a:hover{color:var(--text);background:var(--card)}
.subnav a.active{color:var(--on-accent);background:var(--accent);box-shadow:0 6px 18px -8px var(--accent)}
.foot-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:10px}
.foot-cols div{display:flex;flex-direction:column;gap:3px}.foot-cols b{color:var(--text);font-size:12.5px;margin-bottom:2px}
.chart-tools{position:absolute;top:10px;right:10px;display:flex;gap:6px;opacity:0;transition:opacity .2s;z-index:2}
.card:hover .chart-tools,.chart-tools:focus-within{opacity:1}
.chart-tools button{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--line2);background:var(--card2);color:var(--muted);cursor:pointer}
.chart-tools button:hover{color:var(--text);border-color:var(--accent)}
.chart-zoomable svg.chart{cursor:zoom-in}
.lightbox[hidden],.theme-menu[hidden]{display:none!important}
.lightbox{position:fixed;inset:0;z-index:80;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);display:flex;flex-direction:column;animation:lbin .25s var(--ease)}
@keyframes lbin{from{opacity:0}}
.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}
.lb-actions{display:flex;gap:8px;flex-wrap:wrap}.lb-actions .btn{padding:7px 12px;font-size:13px}
.lb-body{flex:1;min-height:0;display:grid;place-items:center;padding:18px;overflow:auto}
.lb-body>.lb-stage{width:min(96vw,calc((100vh - 110px) * var(--ar,1.6)));max-width:100%;animation:lbzoom .35s var(--spring)}
@keyframes lbzoom{from{transform:scale(.92);opacity:0}}
.lb-body svg.chart{width:100%!important;height:auto!important;max-width:none!important;min-width:0!important}
.lb-body .chart-box{overflow:visible}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--live);margin-left:6px;vertical-align:middle;box-shadow:0 0 0 0 rgba(239,68,68,.6);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}70%{box-shadow:0 0 0 7px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
.search{margin-left:auto;position:relative;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 10px;min-width:250px;color:var(--muted);transition:border-color .2s,box-shadow .2s}
.search:focus-within{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.search input{background:none;border:0;color:var(--text);outline:0;width:100%;font:inherit;min-width:0}
.search kbd{font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--line2);border-radius:5px;padding:0 5px}
.typeahead{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card2);border:1px solid var(--line2);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:30;animation:dropin .18s var(--ease)}
@keyframes dropin{from{opacity:0;transform:translateY(-4px)}}
.typeahead a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line)}
.typeahead a:last-child{border-bottom:0}
.typeahead a.active,.typeahead a:hover{background:var(--card3)}
.typeahead img,.typeahead .headshot{width:28px;height:28px;border-radius:50%;object-fit:cover}
.typeahead small{display:block;color:var(--muted)}
.nav-toggle{display:none;background:var(--card);border:1px solid var(--line);border-radius:10px;width:38px;height:36px;padding:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer}
.nav-toggle span{display:block;width:16px;height:2px;border-radius:2px;background:var(--text);transition:transform .3s var(--ease),opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* layout */
.page{max-width:1300px;margin:0 auto;padding:22px 22px 60px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.stack{display:flex;flex-direction:column;gap:0;min-width:0}
.card{background:linear-gradient(180deg,color-mix(in srgb,var(--card) 96%,var(--accent) 4%),var(--bg2));border:1px solid var(--line);border-radius:var(--radius);margin:0 0 18px;box-shadow:var(--shadow);overflow:hidden;min-width:0;position:relative}
.card::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 45%,transparent),transparent);opacity:.6}
.js .card{opacity:0;transform:translateY(10px)}
.card.in{opacity:1;transform:none;transition:opacity .55s var(--ease),transform .55s var(--ease)}
.card-head{padding:14px 18px 4px;display:flex;flex-direction:column;gap:2px}
.card-sub{margin:2px 0 0;color:var(--muted);font-size:12.5px;max-width:80ch}
.card-sub a{color:var(--link)}
.card-body{padding:8px 18px 16px}
.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:22px 0 20px;flex-wrap:wrap}
.hero.compact{padding:10px 0 16px}
.eyebrow{margin:0 0 6px;color:var(--link);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:11.5px}
.lead{color:var(--muted);max-width:720px;margin:8px 0 0;font-size:15px}
.lead a{color:var(--link)}
.hero-kpis{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--on-accent);padding:9px 16px;border-radius:10px;font-weight:700;border:0;cursor:pointer;font:inherit;transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn.ghost{background:var(--card2);border:1px solid var(--line2);color:var(--text)}
.empty{color:var(--muted);padding:14px 0;font-style:italic}
.center{text-align:center}
.foot{max-width:1300px;margin:0 auto;padding:20px 22px 40px;color:var(--muted);font-size:12px;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line)}
.foot a{color:var(--link)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0}
.tiles.mini{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:6px 0 0}
.tile{background:linear-gradient(160deg,var(--card3),var(--card2));border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:140px;position:relative;overflow:hidden}
.tile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 30%,transparent))}
.tile-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:650;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tile-label .pill{position:absolute;top:8px;right:8px}
.tile:has(.tile-label .pill) .tile-label{padding-right:44px}
.tile-value{font-size:22px;font-weight:760;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-sub{color:var(--muted);font-size:12px;margin-top:2px}
.tiles.mini .tile{padding:6px 8px;min-width:0}.tiles.mini .tile-value{font-size:16px}
.pill{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--pc,var(--card));color:#fff;line-height:1.5;vertical-align:middle;font-variant-numeric:tabular-nums;white-space:nowrap}
.pill-na{background:var(--line);color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 3px;border-radius:999px;background:var(--card2);border:1px solid var(--line);font-weight:650;white-space:nowrap;transition:border-color .2s,background .2s;max-width:100%}
.chip span{overflow:hidden;text-overflow:ellipsis}
.chip:hover{border-color:var(--team,var(--accent));background:color-mix(in srgb,var(--team,var(--accent)) 14%,var(--card2))}
.logo{object-fit:contain;vertical-align:middle;flex:none}
.logo-fallback{display:inline-grid;place-items:center;width:var(--w);height:var(--w);border-radius:50%;background:var(--c,#555);font-size:calc(var(--w)*.34);font-weight:800;color:#fff;flex:none}
.headshot{width:var(--w,48px);height:var(--w,48px);border-radius:50%;object-fit:cover;background:var(--card3);vertical-align:middle;flex:none}
.headshot-fallback{display:inline-grid;place-items:center;font-weight:700;color:var(--muted);font-size:calc(var(--w,48px)*.36);border:1px solid var(--line)}
.inj{display:inline-block;font-size:10px;font-weight:800;padding:1px 5px;border-radius:5px;margin-right:6px;letter-spacing:.03em}
.inj-out{background:var(--neg);color:#fff}.inj-d{background:#f97316;color:#fff}.inj-q{background:var(--accent2);color:#111}.inj-lp{background:var(--line);color:var(--text)}
.dots{display:inline-flex;gap:3px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--line)}.dot-w{background:var(--pos)}.dot-l{background:var(--neg)}.dot-t{background:var(--muted)}
.res-w{color:var(--pos)}.res-l{color:var(--neg)}.res-t{color:var(--muted)}
.edge-tag{display:inline-block;font-size:11px;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);margin:2px 4px 0 0;white-space:nowrap}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--card3);color:var(--muted);border:1px solid var(--line2);white-space:nowrap}
.badge.live{background:color-mix(in srgb,var(--live) 18%,transparent);color:var(--live-text);border-color:color-mix(in srgb,var(--live) 50%,transparent)}
.badge.live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--live);animation:pulse 1.6s infinite}
.badge.final{color:var(--text)}
.badge.tv{color:var(--tv-text);border-color:var(--tv-line);background:var(--tv-bg)}
.clinch{display:inline-block;min-width:16px;text-align:center;font-size:10px;font-weight:800;border-radius:4px;padding:0 3px;background:var(--card3);color:var(--muted);margin-left:4px;vertical-align:1px}
.clinch-z,.clinch-star{background:color-mix(in srgb,var(--pos) 25%,transparent);color:var(--pos-text)}
.clinch-x,.clinch-y{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--link)}
.clinch-e{background:color-mix(in srgb,var(--neg) 20%,transparent);color:var(--neg-text)}

/* tables */
.table-wrap{overflow-x:auto;margin:6px -4px;scrollbar-width:thin}
table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:13.5px}
table.data th{position:sticky;top:0;text-align:right;color:var(--muted);font-weight:650;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:8px 8px;border-bottom:1px solid var(--line2);background:var(--card);cursor:pointer;white-space:nowrap;user-select:none;transition:color .2s}
table.data th:hover{color:var(--text)}
table.data th.txt,table.data td.txt{text-align:left}
table.data th.sorted-desc::after{content:" ▾";color:var(--accent)}table.data th.sorted-asc::after{content:" ▴";color:var(--accent)}
table.data td{padding:7px 8px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);text-align:right;white-space:nowrap}
table.data.compact td{padding:5px 7px}
table.data tbody tr{transition:background .15s}
table.data tbody tr:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}
table.data tr[data-href]{cursor:pointer}
table.data .v{margin-right:2px}
table.data .chip{padding:1px 6px 1px 2px}
table.data tr.cut td{border-bottom:2px dashed color-mix(in srgb,var(--accent) 55%,transparent)}
.standings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.standings{min-width:0}
.standings h3{margin:8px 0 4px}
.boards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.board ol{list-style:none;margin:6px 0 0;padding:0}
.board li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.board li a{display:flex;align-items:center;gap:8px;min-width:0}
.board li a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board li a small{color:var(--muted)}
.board li b{font-variant-numeric:tabular-nums}

/* game cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.gamecard{display:block;background:linear-gradient(165deg,var(--card3),var(--card2) 60%);border:1px solid var(--line);border-radius:14px;padding:12px 14px;position:relative;overflow:hidden;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s;min-width:0}
.gamecard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--away),var(--home))}
.gamecard::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.05) 50%,transparent 70%);transform:translateX(-100%);transition:transform .8s var(--ease);pointer-events:none}
.gamecard:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--home) 55%,var(--line));box-shadow:0 18px 30px -18px color-mix(in srgb,var(--home) 60%,transparent)}
.gamecard:hover::after{transform:translateX(100%)}
.gamecard.is-live{border-color:color-mix(in srgb,var(--live) 45%,var(--line))}
.gc-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:600;margin-bottom:8px;min-height:20px}
.gc-head>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}
.gc-team{display:flex;align-items:center;gap:8px;min-width:0}
.gc-team>div{min-width:0}
.gc-team.home{flex-direction:row-reverse;text-align:right}
.gc-team b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gc-team small{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-team .poss[hidden]{display:none}
.gc-team .poss{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warn);margin:0 4px;vertical-align:middle;box-shadow:0 0 8px var(--warn)}
.gc-at{color:var(--muted);font-weight:700;text-align:center}
.score{display:flex;gap:10px;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;justify-content:center}
.score span{opacity:.5;min-width:1.2em;text-align:center;display:inline-block}.score .win{opacity:1}
.score .bump{animation:bump .7s var(--spring)}
@keyframes bump{0%{transform:scale(1.6);color:var(--warn)}100%{transform:none}}
.gc-live{font-size:11.5px;color:var(--live-text);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:16px}
.gc-live:empty{display:none}
.gc-proj{margin-top:10px}
.wpsplit{width:100%;height:14px;display:block}
.wpsplit .mkt-tick{fill:var(--text-strong);opacity:.9}
.gc-proj-text{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-top:4px}
.gc-proj-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-edges{margin-top:6px;min-height:22px;display:flex;flex-wrap:wrap;overflow:hidden;max-height:48px}

/* team cards */
.teamcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-bottom:20px}
.teamcard{display:flex;gap:12px;align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--team) 16%,var(--card2)),var(--card2) 55%);border:1px solid var(--line);border-radius:14px;padding:12px;position:relative;overflow:hidden;transition:transform .25s var(--ease),border-color .25s}
.teamcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--team)}
.teamcard:hover{transform:translateY(-3px);border-color:var(--team)}
.teamcard .logo{transition:transform .5s var(--spring)}.teamcard:hover .logo{transform:scale(1.12) rotate(-4deg)}
.tc-body{min-width:0;flex:1}.tc-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-name small{color:var(--muted);font-weight:500;margin-left:4px}
.tc-line{display:flex;gap:10px;font-size:12px;color:var(--muted);margin:2px 0 4px;align-items:center;flex-wrap:wrap}
.tc-rank{position:absolute;right:10px;top:6px;font-size:28px;font-weight:900;color:color-mix(in srgb,var(--team) 30%,transparent);letter-spacing:-.04em;pointer-events:none}

/* heroes */
.team-hero{display:flex;align-items:center;gap:24px;padding:24px 26px;border-radius:20px;margin:6px 0 18px;border:1px solid var(--line);flex-wrap:wrap;position:relative;overflow:hidden;
  background:linear-gradient(120deg,color-mix(in srgb,var(--team) var(--hero-mix),var(--card)),color-mix(in srgb,var(--team2) 12%,var(--bg2)) 70%)}
.team-hero::after{content:"";position:absolute;inset:-50% -20%;background:linear-gradient(100deg,transparent 40%,rgba(255,255,255,.07) 50%,transparent 60%);pointer-events:none}
.js .team-hero::after{animation:sheen 7s ease-in-out 1s infinite}
@keyframes sheen{0%{transform:translateX(-60%)}40%,100%{transform:translateX(60%)}}
.team-hero>*{position:relative;z-index:1}
.team-hero .eyebrow{color:var(--hero-text);opacity:.85}
.team-hero .lead{color:var(--hero-text);opacity:.88}
.team-hero .hero-kpis{margin-left:auto}
.hero-logo{filter:drop-shadow(0 8px 20px rgba(0,0,0,.5))}
.js .hero-logo{animation:logoin .9s var(--spring)}
@keyframes logoin{from{transform:scale(.6) rotate(-12deg);opacity:0}}
.hero-headshot{border:3px solid #fff2;background:#fff1}
.game-hero .eyebrow{color:var(--hero-text);opacity:.8}
.game-hero{padding:22px 26px;border-radius:20px;margin:6px 0 18px;border:1px solid var(--line);background:linear-gradient(90deg,color-mix(in srgb,var(--away) var(--hero-mix),var(--card)),var(--bg2) 50%,color-mix(in srgb,var(--home) var(--hero-mix),var(--card)));position:relative;overflow:hidden}
.gh-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px}
.gh-team{display:flex;align-items:center;gap:14px;min-width:0}
.gh-team>div{min-width:0}
.gh-team.home{flex-direction:row-reverse;text-align:right}
.gh-team b{font-size:22px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gh-team small{color:var(--muted)}
.gh-mid{text-align:center}.gh-mid small{display:block;color:var(--muted);margin-top:4px}
.bigscore{display:flex;gap:16px;font-size:46px;font-weight:850;font-variant-numeric:tabular-nums;justify-content:center;letter-spacing:-.03em}
.bigscore span{opacity:.5}.bigscore .win{opacity:1}
.bigat{font-size:30px;color:var(--muted);font-weight:800}
.countdown{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}
.donuts{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.radars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:center}
.strips{display:grid;gap:4px;margin-top:6px}
.strip-row{display:grid;grid-template-columns:minmax(0,230px) 220px 76px 44px;align-items:center;gap:10px;font-size:13px}
.strip-row .label{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.tp,.perf,.result{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:8px 10px;min-width:0;transition:border-color .2s,transform .2s}
.tp:hover,.perf:hover,.result:hover{border-color:var(--line2);transform:translateX(2px)}
.tp div,.perf div,.result div{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp small,.perf small,.result small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-ppr{font-weight:800;font-size:16px;text-align:right;font-variant-numeric:tabular-nums;flex:none}.tp-ppr small{display:block;font-weight:500;color:var(--muted);font-size:10px}
.performers,.results{display:grid;gap:6px}
.qb-card{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}
.qb-card>div{flex:1;min-width:0}
.injuries{display:grid;gap:4px}
.inj-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;font-size:13px;padding:3px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.inj-row>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.depth-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.depth-pos{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:12.5px}
.depth-pos b{display:block;color:var(--link);font-size:11px;margin-bottom:2px}
.depth-pos a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.depth-pos a.d1{font-weight:700}.depth-pos a.d2{color:var(--text)}.depth-pos a.d3,.depth-pos a.d4{color:var(--muted)}
.plays{margin:0;padding-left:0;list-style:none}.plays li{padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);font-size:13px}
.plays .epa{display:inline-block;min-width:62px;font-weight:700;font-variant-numeric:tabular-nums;margin-right:6px}
.defs dt{font-weight:700;margin-top:8px}.defs dd{margin:0;color:var(--muted)}
.weeknav{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 16px}
.weeknav a{padding:5px 10px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:13px;min-width:36px;text-align:center;transition:border-color .2s,background .2s}
.weeknav a:hover{border-color:var(--line2)}
.weeknav a.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 6px 16px -6px var(--accent)}
.weeknav a.past{color:var(--muted)}
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 14px;border-bottom:1px solid var(--line);padding-bottom:8px;position:relative}
.tabs button,.tabs a{background:none;border:1px solid transparent;color:var(--muted);padding:7px 12px;border-radius:9px;font:inherit;font-weight:650;cursor:pointer;transition:color .2s,background .2s,border-color .2s}
.tabs button.active,.tabs a.active,.tabs button:hover,.tabs a:hover{background:var(--card);color:var(--text);border-color:var(--line)}
.tabs .ink{position:absolute;bottom:-1px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px var(--accent);transition:left .35s var(--ease),width .35s var(--ease)}
.tabpanel:not([hidden]){animation:panelin .45s var(--ease)}
@keyframes panelin{from{opacity:0;transform:translateY(6px)}}
.compare-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:18px}
.compare-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);position:relative;flex:1;min-width:220px}
.compare-form input{background:var(--card);border:1px solid var(--line);color:var(--text);padding:9px 12px;border-radius:10px;font:inherit}
.compare-form .vs{font-weight:800;color:var(--muted);padding-bottom:10px}
.compare-form .typeahead{top:calc(100% + 4px)}
.cmp-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;margin:8px 0 18px}
.cmp-head a{display:flex;align-items:center;gap:12px;background:var(--card2);border:1px solid var(--line);border-left:4px solid var(--team);border-radius:14px;padding:12px;min-width:0}
.cmp-head a:last-child{flex-direction:row-reverse;text-align:right;border-left:1px solid var(--line);border-right:4px solid var(--team)}
.cmp-head b{display:block;font-size:18px}.cmp-head small{color:var(--muted)}
.cmp-head .vs{font-weight:800;color:var(--muted)}
.quick{display:flex;flex-wrap:wrap;gap:8px}
details.more{margin-top:8px}details.more summary{cursor:pointer;color:var(--muted);font-size:12.5px;font-weight:650}details.more summary:hover{color:var(--text)}

/* filters (explore / plays) */
.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 12px;align-items:end}
.filters label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:650;min-width:0;position:relative}
.filters input,.filters select{background:var(--bg2);border:1px solid var(--line2);color:var(--text);padding:8px 10px;border-radius:9px;font:inherit;font-size:13.5px;text-transform:none;letter-spacing:0;font-weight:500;min-width:0;width:100%;transition:border-color .2s,box-shadow .2s}
.filters input:focus,.filters select:focus{outline:0;border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.filters select[multiple]{min-height:96px}
.filters .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filters fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0;display:flex;gap:10px;flex-wrap:wrap;grid-column:1/-1}
.filters fieldset legend{font-size:11px;color:var(--muted);padding:0 4px;text-transform:uppercase;letter-spacing:.05em}
.filters .check{flex-direction:row;align-items:center;gap:6px;text-transform:none;font-size:13px;color:var(--text);font-weight:500}
.filters .check input{width:auto}

/* standings & schedule */
.div-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.conf-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.seed{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;font-size:11px;font-weight:800;background:var(--card3);color:var(--muted);flex:none}
.seed.s1,.seed.s2,.seed.s3,.seed.s4{background:color-mix(in srgb,var(--accent) 35%,var(--card3));color:#fff}
.seed.s5,.seed.s6,.seed.s7{background:color-mix(in srgb,var(--accent2) 30%,var(--card3));color:#fff}
.team-cell{display:flex;align-items:center;gap:8px;min-width:0}
.team-cell a{display:flex;align-items:center;gap:8px;min-width:0;font-weight:650}
.team-cell a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pctbar{display:inline-block;vertical-align:middle;width:44px;height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-left:6px}
.pctbar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#60a5fa);border-radius:3px;transform-origin:left;transition:transform .8s var(--ease)}
.js .card:not(.in) .pctbar i{transform:scaleX(0)!important}
.day-group{margin:0 0 18px}
.day-head{display:flex;align-items:baseline;gap:10px;margin:4px 0 8px}
.day-head h3{color:var(--text);font-size:13px}
.slot-list{display:grid;gap:8px}
.sched-row{display:grid;grid-template-columns:84px minmax(0,.75fr) auto minmax(0,.75fr) minmax(0,1.4fr) minmax(86px,auto);align-items:center;gap:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--away) 12%,var(--card2)),var(--card2) 40%,var(--card2) 60%,color-mix(in srgb,var(--home) 12%,var(--card2)));border:1px solid var(--line);border-radius:12px;padding:8px 12px;transition:border-color .2s,transform .2s;min-width:0}
.sched-row:hover{border-color:var(--line2);transform:translateY(-1px)}
.sched-row.is-live{border-color:color-mix(in srgb,var(--live) 50%,var(--line))}
.sched-time{font-weight:700;font-variant-numeric:tabular-nums;font-size:13px}
.sched-time small{display:block;color:var(--muted);font-weight:500}
.sched-team{display:flex;align-items:center;gap:8px;min-width:0}
.sched-team.home{flex-direction:row-reverse;text-align:right}
.sched-team div{min-width:0}
.sched-team b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-team small{color:var(--muted);display:block}
.sched-mid{text-align:center;min-width:64px}
.sched-mid .score{font-size:18px}
.sched-meta{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:3px;min-width:0}
.sched-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-tv{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.byes{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.grid-sched{overflow-x:auto}
table.season-grid{border-collapse:separate;border-spacing:3px;font-size:11px;font-variant-numeric:tabular-nums}
table.season-grid th{color:var(--muted);font-weight:650;padding:2px 4px;position:sticky;top:0;background:var(--card)}
table.season-grid th.team{position:sticky;left:0;z-index:2;text-align:left}
table.season-grid td{width:54px;min-width:54px;height:38px;text-align:center;border-radius:6px;background:var(--card2);position:relative;padding:0}
table.season-grid td a{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:0;line-height:1.05}
table.season-grid td.bye{background:repeating-linear-gradient(45deg,var(--card2),var(--card2) 4px,var(--card3) 4px,var(--card3) 8px);color:var(--dim);font-weight:700}
table.season-grid td.cur{outline:2px solid var(--accent);outline-offset:0}
table.season-grid td .r{font-size:9px;font-weight:800;white-space:nowrap;letter-spacing:-.02em}
table.season-grid td.w{box-shadow:inset 0 -3px 0 var(--pos)}table.season-grid td.l{box-shadow:inset 0 -3px 0 var(--neg)}
table.season-grid tbody th{position:sticky;left:0;background:var(--card);z-index:1;text-align:left;white-space:nowrap}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin:6px 0 0 2px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{display:inline-block;width:14px;height:4px;border-radius:2px}
.scoreboard{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 10px;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent);scroll-snap-type:x mandatory;scrollbar-width:thin;margin:0 0 14px}
.sb-game{flex:0 0 auto;scroll-snap-align:start;display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px;min-width:176px;font-size:13px;transition:border-color .2s,transform .2s}
.sb-game:hover{border-color:var(--line2);transform:translateY(-2px)}
.sb-game.is-live{border-color:color-mix(in srgb,var(--live) 50%,var(--line))}
.sb-game b{font-variant-numeric:tabular-nums;text-align:right}
.sb-game .st{grid-column:1/-1;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:6px;margin-bottom:2px;white-space:nowrap}
.sb-game .lose{opacity:.55}

/* charts */
.chart{width:100%;height:auto;display:block;font-family:var(--font);overflow:visible}
.chart-box{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;margin:0 auto;max-width:100%}
.chart-box>svg{min-width:var(--minw,0);margin:0 auto}
.chart text{paint-order:stroke;stroke:transparent}
.chart .axis{fill:var(--muted);font-size:11px}
.chart .axis.tiny{font-size:10px;fill:var(--dim)}
.chart .axis-strong{fill:var(--text);font-size:12px;font-weight:650}
.chart .axis-title{fill:var(--muted);font-size:11.5px;font-weight:650}
.chart .label{fill:var(--text);font-size:12px}
.chart .value{fill:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.chart .bar-val{fill:var(--muted);font-size:9.5px;font-variant-numeric:tabular-nums}
.chart .end-val{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.chart .end-team{font-size:12px;font-weight:800}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .grid.dashed{stroke-dasharray:2 4;opacity:.7}
.chart .zero{stroke:var(--muted);stroke-width:1;opacity:.55}
.chart .avg{stroke:var(--accent2);stroke-width:1.2;stroke-dasharray:4 3;opacity:.85}
.chart .avg-soft{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 4;opacity:.45}
.chart .mid{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4;opacity:.6}
.chart .half{stroke:var(--muted);stroke-width:1.2;opacity:.5}
.chart .band{fill:var(--text);opacity:.025}
.chart .future{fill:var(--text);opacity:.03}
.chart .plot-bg{fill:var(--bg2);opacity:.35}
.chart .track,.chart .track-line{fill:var(--line);stroke:var(--line)}
.chart .quad-good{fill:var(--pos);opacity:.07}.chart .quad-bad{fill:var(--neg);opacity:.05}
.chart .cap{font-size:10.5px;font-weight:700;letter-spacing:.02em}.chart .cap-good{fill:var(--pos)}.chart .cap-bad{fill:var(--neg);opacity:.8}
.chart .ring{fill:none;stroke:var(--line2)}.chart .ring-mid{stroke:var(--muted);stroke-dasharray:3 3;opacity:.55}
.chart .spoke{stroke:var(--line)}
.chart .radar-pct{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.chart .radar-pct-unit{font-size:8.5px;font-weight:700;opacity:.8}
.chart .field{fill:var(--field);stroke:var(--field-line)}
.chart .field-line{stroke:var(--field-line);stroke-width:1;opacity:.8}
.chart .field-line.los{stroke:#93c5fd;stroke-width:1.5;opacity:.7}
.chart .field-line.midfield{stroke-width:1.6;opacity:1}
.chart .hash{stroke:var(--field-line);stroke-width:1}
.chart .lineman{fill:var(--card3);stroke:var(--line2)}
.chart .ez-text{fill:var(--text-strong);opacity:.55;font-size:12px;font-weight:900;letter-spacing:.3em}
.chart .cell{stroke:var(--field);stroke-width:1;transition:filter .2s}
.chart .cell:hover{filter:brightness(1.25)}
.chart .cell-big{fill:#fff;font-size:14px;font-weight:800;pointer-events:none}.chart .cell-small{fill:#f1f5f2;font-size:9.5px;pointer-events:none}
.chart .pct-num{fill:#fff;font-size:10px;font-weight:800;pointer-events:none}
.chart .donut-num{fill:var(--text);font-size:21px;font-weight:850;font-variant-numeric:tabular-nums}
.chart .dist-dot{fill:var(--muted);opacity:.45}
.chart .ptlabel{fill:var(--muted);font-size:10px;pointer-events:none}
.chart .leader{stroke:var(--muted);stroke-width:.8;opacity:.55}
.chart .true-dot{fill:var(--muted)}
.chart .logo-halo{fill:var(--card);opacity:.85}
.chart .pt{cursor:pointer;transition:opacity .2s}
.chart .pt .dot{stroke:var(--card);stroke-width:1.5;transition:r .2s}
.chart .pt image{transition:filter .25s}
.chart.hovering .pt:not(.hot),.chart.hovering .ptlabel{opacity:.28}
.chart .pt.hot image{filter:drop-shadow(0 0 7px rgba(255,255,255,.7))}
.chart .pt.hot .dot{stroke:var(--text-strong)}
.chart .row[data-href]{cursor:pointer}
.chart .row-bg{fill:transparent;transition:fill .15s}
.chart .row:hover .row-bg,.chart .pct-row:hover .row-bg,.chart .edge-row:hover .row-bg{fill:color-mix(in srgb,var(--text) 5%,transparent)}
.chart .row:hover .bar{filter:brightness(1.2)}
.chart .bar-hit,.chart .row-hit{fill:transparent}
.chart .bar-g:hover .bar{filter:brightness(1.25)}
.chart .drive .row-hit{transition:fill .15s}
.chart .drive:hover .row-hit{fill:rgba(255,255,255,.05)}
.chart .drive.to line{stroke-dasharray:6 4}
.chart .drive-team{font-size:12px;font-weight:800}
.chart .q-label{fill:var(--dim);font-size:10.5px;font-weight:800;letter-spacing:.04em}
.chart .q-sep{stroke:var(--line2);stroke-dasharray:2 3}
.chart .rz-band{fill:var(--neg);opacity:.06}
.chart .drive-row .row-bg{fill:transparent}.chart .drive-row:nth-of-type(even) .row-bg{fill:color-mix(in srgb,var(--text) 2.5%,transparent)}.chart .drive-row:hover .row-bg{fill:color-mix(in srgb,var(--text) 7%,transparent)}
.chart .mk-td{fill:var(--pos);stroke:var(--card);stroke-width:1}.chart .mk-fg{fill:var(--pos-text);stroke:var(--card);stroke-width:1}.chart .mk-to{stroke:var(--neg);stroke-width:2.6;stroke-linecap:round;fill:none}.chart .mk-punt{fill:var(--muted);stroke:var(--card);stroke-width:1.5}.chart .mk-other{fill:var(--dim)}
.chart .drive-res{font-size:11px;font-weight:700;fill:var(--muted)}
.chart .res-td{fill:var(--pos)}.chart .res-fg{fill:var(--pos-text)}.chart .res-to{fill:var(--neg)}.chart .res-punt,.chart .res-other{fill:var(--muted)}
.chart .mark-t{fill:#fff;font-size:8.5px;font-weight:900;pointer-events:none}
.chart .score-mark{cursor:help}
.chart .scrub-area{fill:transparent;cursor:crosshair}
.chart .hover-layer{pointer-events:none}
.chart .xhair{stroke:var(--text);stroke-width:1;stroke-dasharray:3 3;opacity:.55}
.chart .xhair-dot{stroke:var(--card);stroke-width:2}
.chart .xhair-pill rect{fill:var(--card3);stroke:var(--line2)}
.chart .xhair-pill text{fill:var(--text);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.chart .bbox{fill:var(--card2);stroke:var(--line2);transition:stroke .2s,fill .2s}
.chart .bbox.tbd{fill:transparent;stroke-dasharray:4 4}
.chart .bteam{cursor:pointer}
.chart .bteam:hover .bbox{stroke:var(--team);fill:var(--card3)}
.chart .bseed{fill:var(--muted);font-size:12px;font-weight:800}
.chart .babbr{fill:var(--text);font-size:12.5px;font-weight:800}
.chart .brec{fill:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.chart .bclinch{fill:var(--pos);font-size:10px;font-weight:800}
.chart .bline{fill:none;stroke:var(--line2);stroke-width:1.5}
.spark{width:auto;display:inline-block;vertical-align:middle}
.cmp{width:220px;display:inline-block;vertical-align:middle}
.strip{width:220px;display:inline-block;vertical-align:middle}
.meter{width:90px;display:inline-block;vertical-align:middle}
.donut{width:112px;height:112px}
.radar-box{max-width:100%}
.rc-mob{display:none}
@media (max-width:640px){.rc-desk{display:none}.rc-mob{display:block}}
.radar{margin:0 auto}

/* animation hooks: JS adds .js to <html> and .in to charts/cards when visible */
.js .draw{stroke-dasharray:var(--len,2000);stroke-dashoffset:var(--len,2000)}
.in .draw{animation:draw 1.2s cubic-bezier(.3,.7,.2,1) forwards;animation-delay:var(--delay,0ms)}
@keyframes draw{to{stroke-dashoffset:0}}
.js .grow,.js .grow-neg,.js .growy{transform-box:fill-box;transform:scaleY(0)}
.js .grow{transform-origin:50% 100%}.js .grow-neg,.js .growy{transform-origin:50% 0}
.in .grow,.in .grow-neg,.in .growy{animation:grow .75s var(--spring) forwards;animation-delay:var(--delay,0ms)}
@keyframes grow{to{transform:scaleY(1)}}
.js .growx,.js .growx-neg{transform-box:fill-box;transform:scaleX(0)}
.js .growx{transform-origin:0 50%}.js .growx-neg{transform-origin:100% 50%}
.in .growx,.in .growx-neg{animation:growx .8s var(--ease) forwards;animation-delay:var(--delay,0ms)}
@keyframes growx{to{transform:scaleX(1)}}
.js .pop{transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0}
.in .pop{animation:pop .55s var(--spring) forwards;animation-delay:var(--delay,0ms)}
@keyframes pop{to{transform:scale(1);opacity:1}}
.js .fade{opacity:0}
.in .fade,.fade.in{animation:fadein .6s ease forwards;animation-delay:var(--delay,0ms)}
@keyframes fadein{to{opacity:1}}
.js .fly{transform:translate(var(--fx,0),var(--fy,0)) scale(.25);opacity:0}
.in .fly{animation:fly .95s cubic-bezier(.2,.9,.25,1.08) forwards;animation-delay:var(--delay,0ms)}
@keyframes fly{to{transform:none;opacity:1}}
.js .slide{transform:translateX(var(--kx,0));opacity:.2}
.in .slide{animation:slide 1s var(--ease) forwards;animation-delay:var(--delay,0ms)}
@keyframes slide{to{transform:none;opacity:1}}
.js .slide-in{transform:translateX(-14px);opacity:0}
.in .slide-in{animation:slide .6s var(--ease) forwards;animation-delay:var(--delay,0ms)}
.js .radar-area{transform-box:view-box;transform-origin:var(--cx) var(--cy);transform:scale(0);opacity:0}
.in .radar-area{animation:radar 1s var(--spring) forwards;animation-delay:var(--delay,0ms)}
@keyframes radar{to{transform:scale(1);opacity:1}}
.js .radar .ring-in{transform-box:view-box;transform-origin:var(--cx) var(--cy);transform:scale(.4) rotate(-20deg);opacity:0}
.in .ring-in{animation:ringin .8s var(--ease) forwards;animation-delay:var(--delay,0ms)}
@keyframes ringin{to{transform:none;opacity:1}}
.js .cell-in{transform-box:fill-box;transform-origin:center;transform:scale(.4);opacity:0}
.in .cell-in{animation:pop .6s var(--spring) forwards;animation-delay:var(--delay,0ms)}
.js .wp .reveal{transform-box:fill-box;transform-origin:0 50%;transform:scaleX(0)}
.in .reveal{animation:growx 1.8s cubic-bezier(.45,.05,.25,1) forwards}
.js .draw-x,.js .draw-y{transform-box:fill-box;opacity:0}
.js .draw-x{transform-origin:0 50%;transform:scaleX(0)}.js .draw-y{transform-origin:50% 100%;transform:scaleY(0)}
.in .draw-x{animation:growx .9s var(--ease) forwards}.in .draw-y{animation:grow .9s var(--ease) forwards}
.in .draw-x,.in .draw-y{opacity:.85}
.js .arc{stroke-dasharray:var(--arc) var(--len);stroke-dashoffset:var(--arc)}
.in .arc{animation:arc 1.3s var(--ease) forwards .15s}
@keyframes arc{to{stroke-dashoffset:0}}
.js .count-in{opacity:0}
.flash{animation:flash 1.2s ease}
@keyframes flash{0%{background:color-mix(in srgb,var(--warn) 30%,transparent)}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}
  .draw,.grow,.grow-neg,.growy,.growx,.growx-neg,.pop,.fade,.fly,.slide,.slide-in,.radar-area,.ring-in,.cell-in,.reveal,.draw-x,.draw-y,.card{animation:none!important;transform:none!important;opacity:1!important;stroke-dashoffset:0!important}
  .draw-x,.draw-y{opacity:.85!important}
  .arc{stroke-dashoffset:0!important}
}
.tooltip{position:fixed;z-index:50;background:color-mix(in srgb,var(--tooltip-bg) 94%,transparent);backdrop-filter:blur(8px);color:var(--tooltip-text);border:1px solid var(--line2);padding:7px 10px;border-radius:9px;font-size:12px;max-width:340px;pointer-events:none;box-shadow:0 12px 28px -8px rgba(0,0,0,.6);white-space:pre-line;opacity:0;transform:translateY(4px) scale(.98);transition:opacity .14s,transform .14s}
.tooltip.show{opacity:1;transform:none}
.tooltip .tt-h{font-weight:750;margin-bottom:3px}
.tooltip .tt-row{display:flex;align-items:center;gap:6px;white-space:nowrap}
.tooltip .tt-row i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}


/* explore & play finder forms */
.explore-form.card,.plays-form.card{padding:16px 18px 14px}
.explore-form .filters,.plays-form .filters{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.filters .range{display:flex;align-items:center;gap:6px;color:var(--muted)}
.filters .range input{flex:1 1 0;min-width:0}
.filters fieldset{grid-column:span 2}
.filters fieldset.metric-filter{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,110px);gap:8px;align-items:end}
.filters label.wide{grid-column:span 2;grid-row:span 2}
.filters label.wide select[multiple]{min-height:150px;height:100%}
.filters select[multiple] option{padding:2px 6px;border-radius:4px}
.filters select[multiple] option:checked{background:color-mix(in srgb,var(--accent) 45%,var(--card3));color:#fff}
.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted)}
.form-actions a{color:var(--link)}
@media (max-width:640px){.filters fieldset,.filters fieldset.metric-filter,.filters label.wide{grid-column:1/-1}.explore-form .filters,.plays-form .filters{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* metric grid (single-team tables without sideways scroll) */
.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:2px 18px}
.metric-row{display:grid;grid-template-columns:minmax(0,1fr) auto 44px 150px;align-items:center;gap:8px;padding:5px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);font-size:13px}
.mr-label{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-val{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.mr-strip .strip{width:150px}
@media (max-width:760px){.metric-row{grid-template-columns:minmax(0,1fr) auto 44px}.mr-strip{display:none}}
/* wide data tables: sticky first column + edge fade instead of a bare scrollbar */
.table-wrap{position:relative}
.table-wrap table.data th:first-child,.table-wrap table.data td:first-child{position:sticky;left:0;z-index:1;background:var(--card)}
.table-wrap table.data thead th:first-child{z-index:3}
.table-wrap table.data tbody tr:hover td:first-child{background:color-mix(in srgb,var(--accent) 9%,var(--card))}

/* home */
.segmented{display:inline-flex;flex-wrap:wrap;gap:3px;background:var(--bg2);border:1px solid var(--line);border-radius:11px;padding:3px;margin:2px 0 8px}
.segmented button{background:none;border:0;color:var(--muted);font:inherit;font-size:13px;font-weight:650;padding:6px 11px;border-radius:8px;cursor:pointer;transition:color .2s,background .25s}
.segmented button:hover{color:var(--text)}
.segmented button[aria-selected="true"]{background:var(--card3);color:var(--text);box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 4px 12px -6px rgba(0,0,0,.4)}
.layers{position:relative}
.layer:not([hidden]){animation:panelin .45s var(--ease)}
.layer-blurb{margin:0 0 6px}
.more-link{margin:8px 2px 0;font-size:13px}.more-link a{color:var(--link)}
.featured h3{margin:0 0 6px}
.feat-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.launch{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:0 0 18px}
.launch-tile{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px 14px 12px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(160deg,var(--card3),var(--card) 70%);transition:transform .25s var(--ease),border-color .25s,box-shadow .25s;overflow:hidden}
.launch-tile:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 18px 30px -20px var(--accent)}
.launch-tile b{font-size:15px;margin-top:6px}.launch-tile small{color:var(--muted);font-size:12.5px}
.launch-tile .go{position:absolute;right:14px;top:14px;color:var(--muted);transition:transform .25s var(--ease),color .2s}
.launch-tile:hover .go{transform:translateX(4px);color:var(--accent)}
.launch-icon .li-stroke{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.launch-icon .li-dot{fill:var(--accent2);transform-box:fill-box;transform-origin:center;transition:transform .35s var(--spring)}
.launch-tile:hover .li-dot{transform:scale(1.5)}
.launch-icon .li-draw{stroke-dasharray:60;stroke-dashoffset:0;transition:stroke-dashoffset .8s var(--ease)}
.launch-tile:hover .li-draw{animation:lidraw .9s var(--ease)}
@keyframes lidraw{from{stroke-dashoffset:60}to{stroke-dashoffset:0}}
.brackets h3{margin:4px 0 6px}

/* layout helpers per page */
.home-top{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.team-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)}

/* responsive */
@media (max-width:1100px){
  .team-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-overview>:last-child{grid-column:1/-1}
  .sched-row{grid-template-columns:80px minmax(0,1fr) auto minmax(0,1fr) 110px}
  .sched-row .sched-meta{display:none}
}
@media (max-width:980px){
  .home-top,.grid-2,.grid-3,.radars,.standings-grid,.div-cards,.conf-cols,.team-overview{grid-template-columns:minmax(0,1fr)}
  .team-overview>:last-child{grid-column:auto}
  .team-hero .hero-kpis{margin-left:0}
  .strip-row{grid-template-columns:minmax(0,1fr) 150px 64px 40px}
  .strip-row .strip{width:150px}
}
@media (max-width:1240px){
  .topbar{flex-wrap:wrap;gap:10px}
  .nav{display:none;width:100%;order:5;flex-direction:column;align-items:stretch;padding:6px 0 4px;max-height:calc(100vh - 120px);overflow:auto}
  .nav.open{display:flex}
  .nav-toggle{display:flex;order:4}
  .search{order:2}.theme-pick{order:3}
  .nav-group{width:100%}
  .nav-top{width:100%;justify-content:space-between}
  .nav-top.active::after{display:none}
  .mega{position:static;opacity:1;visibility:visible;transform:none;display:none;box-shadow:none;border:0;background:transparent;backdrop-filter:none;padding:0 0 6px 10px;min-width:0;width:auto}
  .nav-group.open>.mega{display:block}
  .nav-group:hover>.mega{display:none}.nav-group.open:hover>.mega{display:block}
  .mega-teams{grid-template-columns:repeat(2,minmax(0,1fr))}
  .subnav{top:0;position:relative}
}
@media (max-width:760px){
  .topbar{padding:10px 14px}
  .nav-toggle{margin-left:0}
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search{order:5;width:100%;min-width:0;margin-left:0}
  .search kbd{display:none}
  .page{padding:14px 14px 40px}
  .card-head{padding:12px 14px 4px}.card-body{padding:6px 14px 14px}
  .gh-teams,.cmp-head{grid-template-columns:minmax(0,1fr);gap:8px}
  .gh-team.home,.cmp-head a:last-child{flex-direction:row;text-align:left}
  .bigscore{font-size:34px}
  .inj-row{grid-template-columns:44px minmax(0,1fr) 44px;font-size:12px}
  .inj-row span:nth-child(4),.inj-row span:nth-child(5){grid-column:2/4}
  .tiles.mini{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero h1{font-size:28px}
  .rk-nick{display:none}
  .gh-team b{font-size:18px}
  .hero-kpis{width:100%}
  .hero-kpis .tile{flex:1 1 140px}
  .strip-row{grid-template-columns:minmax(0,1fr) 110px 58px;font-size:12px}
  .strip-row .strip{width:110px}
  .strip-row .pill{display:none}
  .cards{grid-template-columns:minmax(0,1fr)}
  .sched-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);row-gap:4px}
  .sched-row .sched-time{grid-column:1/-1;display:flex;gap:8px;align-items:baseline}
  .sched-row .sched-time small{display:inline}
  .sched-row .sched-tv{grid-column:1/-1;justify-content:flex-start}
  .donuts .donut{width:96px;height:96px}
}
