:root {
  color-scheme: light;
  --bg: #eff3f5;
  --panel-solid: #f8fafb;
  --text: #13212b;
  --muted: #58656e;
  --line: #d5dde3;
  --accent: #0076b6;
  --accent-deep: #004c75;
  --accent-soft: #e1eef6;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; min-height:100vh; font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text); background:radial-gradient(ellipse at top left,#d5e7f2,transparent 45%),var(--bg); line-height:1.45; }
a { color:inherit; text-underline-offset:3px; }
button,input { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.6; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.wrap { width:min(1080px,calc(100% - 48px)); margin:auto; padding:26px 0 40px; }
.season-banner { background:var(--accent); color:white; padding:10px 16px; font-family:"Bebas Neue",Impact,sans-serif; font-size:1.25rem; letter-spacing:.1em; text-align:center; }
.season-banner span { margin-left:14px; color:#e0edf4; }
.site-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:0 0 24px; border-bottom:1px solid var(--line); }
.brand { font-family:"Bebas Neue",Impact,sans-serif; font-size:32px; letter-spacing:.03em; text-decoration:none; line-height:1; }
.brand span { display:block; font-family:system-ui,sans-serif; font-size:10px; font-weight:800; letter-spacing:.22em; color:var(--accent); margin-top:5px; }
.site-header > a:last-child { font-size:13px; font-weight:650; }
.grid { display:grid; gap:36px; }
.panel { min-width:0; }
.hero { padding-top:16px; }
.hero-status { display:flex; justify-content:flex-end; align-items:center; gap:10px; color:var(--muted); font-size:11px; min-height:30px; }
.hero-refresh { width:30px; height:30px; background:transparent; border:0; color:var(--text); font-size:24px; }
.hero-visual { display:grid; grid-template-columns:54% 46%; align-items:center; gap:0; }
.td-hero { min-width:0; }
.eyebrow { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
h1,h2 { font-family:"Bebas Neue",Impact,sans-serif; font-weight:400; }
h1 { font-size:clamp(45px,7vw,84px); line-height:1; margin:8px 0 16px; letter-spacing:.01em; }
h2 { font-size:30px; line-height:1.1; margin:0; }
.td-kicker { color:var(--muted); font-size:12px; font-weight:750; letter-spacing:.17em; }
.kinetic-number { position:relative; width:100%; height:290px; }
#speed-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.number-wrap { display:none; }
.hero-breakdown { margin:0 0 15px; text-align:center; font-size:13px; color:var(--muted); }
.hero-breakdown > span:not(.divider) { color:var(--text); font-weight:800; }
.divider { color:#7c8993; margin:0 6px; }
.hero-art-spot { position:relative; isolation:isolate; overflow:hidden; aspect-ratio:1.15; max-height:430px; align-self:end; margin-bottom:16px; }
.hero-art-spot::before { content:""; position:absolute; inset:18px 0 0; z-index:-2; clip-path:polygon(14% 0,100% 0,100% 100%,0 100%,0 24%); background:repeating-linear-gradient(115deg,transparent 0 52px,#ffffff0d 52px 54px),radial-gradient(ellipse at 50% 35%,#36b7ed,transparent 65%),linear-gradient(135deg,#0076b6,#004c75); }
.hero-art-spot::after { content:""; position:absolute; top:65px; right:-28px; width:82%; aspect-ratio:1; border:1px solid #ffffff30; border-radius:50%; box-shadow:0 0 0 24px #ffffff08,0 0 0 48px #ffffff05; z-index:-1; }
.player-art-label { position:absolute; top:32px; right:18px; color:#e1f3ff; font-size:10px; font-weight:750; letter-spacing:.2em; z-index:2; }
.hero-player-art { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:130%; max-width:none; height:auto; z-index:1; filter:drop-shadow(0 8px 14px #002d4b55); }
.player-caption { position:absolute; bottom:0; left:0; right:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:linear-gradient(110deg,#002f4d,#004c75ed); border-top:3px solid #b0b7bc; color:white; }
.player-caption strong { font-family:"Bebas Neue",Impact,sans-serif; font-size:30px; font-weight:400; line-height:1; letter-spacing:.04em; }
.player-caption > span { font-size:9px; font-weight:750; letter-spacing:.12em; text-align:right; }
.record-context { padding:20px 0 8px; border-top:1px solid var(--line); }
.record-context > div { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:10px; }
.record-context strong { color:var(--accent); font-size:20px; }
.record-context span { font-size:12px; color:var(--muted); }
progress { appearance:none; display:block; width:100%; height:8px; border:0; border-radius:20px; overflow:hidden; background:#d8dfe4; }
progress::-webkit-progress-bar { background:#d8dfe4; }
progress::-webkit-progress-value { background:var(--accent); }
progress::-moz-progress-bar { background:var(--accent); }
.kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:20px; gap:12px; }
.kpi { min-width:0; padding:18px; background:#ffffffb3; border:1px solid var(--line); border-radius:10px; }
.kpi-accent { background:linear-gradient(145deg,var(--accent),var(--accent-deep)); color:white; border-color:transparent; }
.kpi-label { font-size:11px; text-transform:uppercase; letter-spacing:.09em; font-weight:650; }
.kpi-value { font-family:"Bebas Neue",Impact,sans-serif; font-size:clamp(28px,4vw,48px); white-space:nowrap; line-height:1.25; margin:7px 0; }
.kpi-sub { font-size:11px; opacity:.8; }
.kpi-slash { color:#B0B7BC; font-size:.6em; }
.section { padding:24px; background:#ffffff99; border:1px solid var(--line); border-radius:12px; }
.section-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.stack { display:grid; grid-template-columns:1.15fr 1fr; gap:24px; align-items:start; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:14px; text-align:left; }
th { padding:10px 8px; color:var(--muted); font-size:11px; font-weight:650; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; border-bottom:2px solid var(--line); }
td { padding:13px 8px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; }
th:nth-child(n+3),td:nth-child(n+3) { text-align:right; }
td:last-child strong { color:var(--accent-deep); font-size:18px; }
td small { display:block; font-size:10px; font-weight:400; color:var(--muted); margin-top:2px; }
.chart-legend { display:flex; flex-wrap:wrap; gap:16px; font-size:11px; color:var(--muted); margin:10px 0; }
.chart-legend span:first-child { color:var(--accent); }
#pace-chart svg { width:100%; height:auto; display:block; }
#pace-chart text { fill:var(--muted); font:11px system-ui,sans-serif; }
.chart-axis { stroke:#b0b7bc; stroke-width:1; }
.chart-target { stroke:#b0b7bc; stroke-dasharray:2 4; }
.chart-record { stroke:#778791; stroke-width:2; stroke-dasharray:6 5; }
.chart-gibbs { fill:none; stroke:var(--accent); stroke-width:3; stroke-linejoin:round; }
.chart-dot { fill:var(--accent); }
.leaderboard-list { list-style:none; padding:0; margin:12px 0 0; }
.leader-row { display:grid; grid-template-columns:26px 1fr auto; gap:8px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--line); font-size:13px; }
.leader-rank { color:var(--muted); font-variant-numeric:tabular-nums; }
.is-gibbs { background:var(--accent-soft); border-radius:4px; color:var(--accent-deep); font-weight:750; }
.leaderboard-disclaimer { color:var(--muted); font-size:11px; line-height:1.7; }
.empty { color:var(--muted); font-size:13px; padding:14px 0; }
.error { margin-top:18px; padding:14px; border:1px solid #9cb2bf; background:#e1eef6; border-radius:8px; color:var(--accent-deep); font-size:13px; }
.error[hidden] { display:none; }
.site-footer { min-width:0; }
.td-alerts { display:grid; grid-template-columns:1fr 1fr; gap:36px; background:#dfe9ef; }
.alerts-copy p { font-size:13px; line-height:1.8; }
.alerts-copy p:first-of-type { color:var(--accent-deep); font-size:22px; font-weight:750; }
.sms-form { min-width:0; }
.sms-form > label { display:block; font-size:13px; font-weight:650; margin-bottom:8px; }
.sms-form > label span { font-weight:400; }
.sms-form-row { display:flex; gap:8px; }
.sms-form-row input { width:100%; min-width:0; border:1px solid #96aab7; border-radius:6px; padding:11px; background:white; }
.sms-button { border:0; border-radius:6px; background:var(--accent-deep); color:white; padding:11px 16px; font-size:12px; min-width:130px; }
.sms-form-status,.sms-disclosure,.sms-skip { font-size:11px; line-height:1.8; color:var(--muted); }
.sms-form-status[data-state="error"] { color:#8b2c20; }
.sms-consent { display:flex!important; align-items:start; gap:8px; font-size:11px!important; line-height:1.8; }
.sms-consent input { margin-top:4px; flex-shrink:0; }
.tip-row { text-align:center; padding:24px 0 8px; }
.tip-link { font-size:13px; font-weight:650; }
.fan-disclaimer { color:var(--muted); font-size:11px; line-height:1.8; text-align:center; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.policy-wrap { max-width:780px; margin:auto; padding:40px 24px; }
.policy-wrap h1 { font-size:46px; }
.policy-wrap p,.policy-wrap li { font-size:14px; line-height:1.8; }
@media(max-width:760px) {
 .wrap { width:calc(100% - 28px); padding-top:20px; }.stack,.td-alerts { grid-template-columns:1fr; }
 .kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.kpi-value { font-size:42px; }
 .record-context > div { flex-direction:column; gap:2px; }.section { padding:18px; }
 .hero-art-spot { aspect-ratio:1.15; }
 .player-caption { padding:12px; }.player-caption strong { font-size:25px; }.player-caption > span { max-width:80px; }
}
@media(max-width:540px) {
 .season-banner { font-size:1.1rem; }.season-banner span { display:block; margin:3px 0 0; font-size:.85rem; }
 .site-header > a:last-child { max-width:140px; text-align:right; font-size:11px; }.hero-visual { grid-template-columns:1fr; }
 .hero-art-spot { aspect-ratio:1.2; width:min(100%,400px); justify-self:center; margin:0 0 20px; }.hero-player-art { width:130%; }
 .hero-breakdown { margin-bottom:20px; }.kinetic-number { height:220px; }.hero-status { font-size:10px; }
 h1 { font-size:64px; }.section-head h2 { font-size:27px; }.section-head .eyebrow { font-size:10px; }
 table { font-size:12px; }th { font-size:9px; letter-spacing:0; padding:8px 4px; }td { padding:11px 4px; }
 .sms-form-row { flex-direction:column; }.sms-button { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; scroll-behavior:auto!important; } }
