:root{--bg:#0e0e14;--panel:#171722;--panel2:#1f1f2e;--line:#2b2b3d;--text:#ecebf5;--muted:#9b9ab0;--accent:#8b5cf6;--accent2:#a78bfa;--good:#34d399;--bad:#f87171;--team:#8b5cf6;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--accent2);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:clamp(1.6rem,4vw,2.4rem);margin:.5rem 0}h2{margin:0}h3{margin:0 0 .25rem}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}main.wrap{padding-bottom:48px;padding-top:12px}
.muted{color:var(--muted)}.sub{color:var(--muted);margin:0}
.site-header{background:#0a0a10;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.bar{display:flex;align-items:center;gap:20px;height:56px}
.logo{font-weight:800;font-size:1.3rem;color:var(--text)}.logo span{color:var(--accent)}.logo small{font-weight:500;color:var(--muted);font-size:.7rem;margin-left:6px}
.series-switch{display:flex;gap:4px;background:var(--panel);padding:3px;border-radius:8px}
.series-switch a,.series-switch .soon{padding:4px 12px;border-radius:6px;font-weight:700;font-size:.85rem;color:var(--muted)}
.series-switch a.on{background:var(--accent);color:#fff}.series-switch .soon{opacity:.45;cursor:not-allowed}
.main-nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.main-nav a{padding:10px 12px;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent;font-weight:600;font-size:.92rem}
.main-nav a.on,.main-nav a:hover{color:var(--text);border-color:var(--accent);text-decoration:none}
.live-link{margin-left:auto}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ef4444;margin-right:6px;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.3}}
.site-footer{width:100%;color:var(--muted);font-size:.8rem;border-top:1px solid var(--line);background:#0a0a10;padding:28px 16px;margin-top:24px}
.footer-inner{max-width:880px;margin:0 auto;text-align:center}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;padding:9px 18px;border-radius:8px;font-weight:700;cursor:pointer;font:inherit;font-weight:700}
.btn:hover{background:#7c3aed;text-decoration:none}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.btn.live{background:#dc2626}
.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;color:var(--accent2);font-weight:700}
.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:28px 0 12px}
.flag{height:1.1em;border-radius:2px;vertical-align:-.1em}
.teambar{display:inline-block;width:4px;height:1.2em;border-radius:2px;margin-right:8px;vertical-align:middle}
.next-race{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin-top:16px;padding:24px;border-radius:16px;background:linear-gradient(135deg,#2a1f55,#171722 70%);border:1px solid var(--line)}
.sessions{list-style:none;margin:0;padding:0;display:grid;gap:6px}.sessions li{display:flex;justify-content:space-between;gap:12px;background:#0003;padding:8px 12px;border-radius:8px;font-size:.9rem}
.countdown{margin:12px 0;font-size:1.05rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mini-table{list-style:none;margin:0;padding:0;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.mini-table li{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}.mini-table li:last-child{border:0}
.mini-table .pos{width:28px;color:var(--muted);font-weight:700}.mini-table .name{flex:1}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.news-card{display:flex;flex-direction:column;overflow:hidden;color:inherit}.news-card:hover{border-color:var(--accent);text-decoration:none}
.news-card img,.news-card .ph{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--panel2)}
.news-card .body{padding:14px;display:flex;flex-direction:column;gap:6px}.news-card h3{font-size:1.02rem;line-height:1.3}
.news-card p{margin:0;color:var(--muted);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-card.big{grid-column:1/-1;flex-direction:row}.news-card.big img,.news-card.big .ph{width:45%;aspect-ratio:auto;min-height:220px}.news-card.big h3{font-size:1.5rem}
.meta{display:flex;gap:10px;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}.tag{background:var(--accent);color:#fff;padding:1px 8px;border-radius:99px;font-weight:700}
.ext{font-size:.75rem;color:var(--accent2)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.tabs a{padding:6px 14px;border-radius:99px;background:var(--panel);color:var(--muted);font-weight:600;font-size:.9rem;border:1px solid var(--line)}
.tabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}.tabs a:hover{text-decoration:none}
.season-picker{display:flex;gap:10px;margin:6px 0 10px}.season-picker a{color:var(--muted)}.season-picker a.on{color:var(--text);font-weight:800;border-bottom:2px solid var(--accent)}
.table-wrap{overflow-x:auto;margin:12px 0}
table.results{width:100%;border-collapse:collapse;background:var(--panel);border-radius:12px;overflow:hidden}
.results th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 12px;background:var(--panel2)}
.results td{padding:10px 12px;border-top:1px solid var(--line);white-space:nowrap}.results td.pos{font-weight:800;width:48px}
.up{color:var(--good);font-size:.75rem}.down{color:var(--bad);font-size:.75rem}
.explainer{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:10px 0}.explainer summary{cursor:pointer;font-weight:600;color:var(--accent2)}.explainer p{color:var(--muted);margin:.5rem 0 0}
.calendar{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}
.calendar li>*{display:grid;grid-template-columns:44px 28px 1fr auto 80px;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:inherit}
.calendar a:hover{border-color:var(--accent);text-decoration:none}.calendar small{display:block;color:var(--muted)}.round{color:var(--muted);font-weight:800}
.status{text-align:right;font-size:.75rem;font-weight:700;text-transform:uppercase}.status.next{color:var(--accent2)}.status.done{color:var(--good)}.status.cancelled{color:var(--bad)}
.race-head{display:flex;gap:16px;align-items:center;margin:16px 0}.race-head .flag{height:2rem}.race-head .circuit{margin-left:auto;height:80px;filter:invert(.9)}
.people,.teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:14px}
.person{display:flex;align-items:flex-end;gap:10px;padding:0 14px 0 0;overflow:hidden;color:inherit;border-left:4px solid var(--team);min-height:110px}.person:hover{text-decoration:none;border-color:var(--accent)}
.person img{width:96px;height:110px;object-fit:cover;object-position:top}.person>div{padding:12px 0}.person p{margin:0;color:var(--muted);font-size:.85rem}.person small{color:var(--accent2)}
.num{font-weight:900;color:var(--team);font-size:1.1rem}.num.big{font-size:3rem;display:block;line-height:1}
.team{border-top:4px solid var(--team);padding:16px}.team header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.team header img{height:32px;max-width:80px;object-fit:contain}
.team ul{list-style:none;margin:0;padding:0}.team li{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line)}
.driver-hero{display:flex;align-items:flex-end;gap:24px;border-left:6px solid var(--team);padding-left:16px;margin:16px 0}.driver-hero img{height:220px;object-fit:contain}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:16px 0}.stats div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}.stats b{display:block;font-size:1.6rem}.stats span{color:var(--muted);font-size:.8rem}
.article{max-width:720px;margin:20px auto}.article .hero{width:100%;border-radius:12px;margin:12px 0}.lede{font-size:1.2rem;color:var(--muted)}.prose{font-size:1.05rem;line-height:1.75}
.live-head{display:flex;align-items:center;gap:12px}.pill{background:var(--panel);border:1px solid var(--line);padding:3px 12px;border-radius:99px;font-size:.8rem;color:var(--muted)}.pill.on{color:var(--good);border-color:var(--good)}
.idle{padding:24px}.msgs{list-style:none;padding:0;display:grid;gap:6px}.msgs li{background:var(--panel);padding:8px 12px;border-radius:8px;font-size:.9rem}
.tyre{display:inline-block;width:22px;height:22px;border-radius:50%;text-align:center;font-weight:800;font-size:.75rem;line-height:22px;color:#000;background:#fff}
.tyre.SOFT{background:#ef4444;color:#fff}.tyre.MEDIUM{background:#facc15}.tyre.HARD{background:#f4f4f5}.tyre.INTERMEDIATE{background:#22c55e}.tyre.WET{background:#3b82f6;color:#fff}
.hero-soon{text-align:center;padding:80px 0}
[hidden]{display:none!important}
@media(max-width:720px){.next-race,.grid-2{grid-template-columns:1fr}.news-card.big{flex-direction:column}.news-card.big img,.news-card.big .ph{width:100%;min-height:0;aspect-ratio:16/9}
.hide-sm{display:none}.calendar li>*{grid-template-columns:36px 24px 1fr auto}.calendar .when{display:none}.race-head .circuit{display:none}.driver-hero img{height:140px}}
.empty{display:grid;justify-items:center;text-align:center;gap:6px;padding:40px 24px;margin:16px 0;color:var(--accent2)}
.empty h3{color:var(--text);font-size:1.2rem;margin-top:8px}.empty .why{max-width:560px;color:var(--muted)}.empty .why p{margin:0}
.notice{background:#2a1f55;border:1px solid var(--accent);border-radius:10px;padding:10px 14px}
.guide .lede{font-size:1.1rem;max-width:760px}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 8px}
.toc a{background:var(--panel);border:1px solid var(--line);padding:4px 12px;border-radius:99px;font-size:.85rem;color:var(--muted)}.toc a:hover{border-color:var(--accent);text-decoration:none}
.guide-sec{margin:32px 0;scroll-margin-top:120px}.guide-sec h2{margin-bottom:8px;border-left:4px solid var(--accent);padding-left:12px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}.steps .card{padding:14px}.steps p{margin:.4rem 0 0;color:var(--muted);font-size:.95rem}
.plain{padding-left:20px;display:grid;gap:8px}.plain.tyres,.plain.flags{list-style:none;padding:0}
.plain .tyre{margin-right:8px;font-style:normal}.swatch{display:inline-block;width:22px;height:14px;border-radius:3px;margin-right:10px;vertical-align:-2px;border:1px solid #fff3}
.points-table td,.points-table th{text-align:center}.points-table td:first-child,.points-table th:first-child{text-align:left}
.gloss dt{font-weight:700;margin-top:10px}.gloss dd{margin:2px 0 0;color:var(--muted)}
.team-news{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.team-news ul li{display:block;border:0;padding:3px 0;font-size:.88rem;line-height:1.35}
.team-logo{height:64px!important;width:auto;max-width:160px;object-fit:contain!important}
.team h3 a,.mini-table .name a{color:inherit}.team h3 a:hover,.mini-table .name a:hover{color:var(--accent2)}

/* ---- mobile ---- */
.menu-btn{display:none;margin-left:auto;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;width:44px;height:40px;cursor:pointer;align-items:center;justify-content:center}
.tabs a,.season-picker a{min-height:36px;display:inline-flex;align-items:center}
@media(max-width:720px){
  .bar{gap:12px}
  .menu-btn{display:inline-flex}
  html.js .main-nav{display:none;flex-direction:column;overflow:visible;padding-bottom:12px}
  html.js .site-header.open{max-height:100vh;overflow-y:auto}
  html.js .site-header.open .main-nav{display:flex}
  html.js .main-nav a{padding:14px 12px;border-bottom:1px solid var(--line);border-left:3px solid transparent;font-size:1rem}
  html.js .main-nav a.on,html.js .main-nav a:hover{border-bottom-color:var(--line);border-left-color:var(--accent);background:var(--panel)}
  html.js .live-link{margin-left:0}
  main.wrap{padding-top:8px}
  h1{font-size:1.6rem}
  /* news: compact list cards, first story stays a big feature */
  .news-grid{grid-template-columns:1fr;gap:10px}
  .news-card:not(.big){flex-direction:row;align-items:stretch}
  .news-card:not(.big) img,.news-card:not(.big) .ph{flex:0 0 112px;width:112px;height:auto;min-height:112px;aspect-ratio:1;border-radius:0}
  .news-card:not(.big) .body{padding:10px 12px;gap:4px;min-width:0}
  .news-card:not(.big) h3{font-size:.98rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .news-card:not(.big) p,.news-card:not(.big) .ext{display:none}
  .news-card .meta{font-size:.72rem;gap:6px}
  .news-card.big h3{font-size:1.25rem}
  .article{margin:8px auto}.article h1{font-size:1.6rem}.prose{font-size:1.02rem;line-height:1.7}
  .results th,.results td{padding:9px 8px}.results td{font-size:.95rem}
  .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}.tabs a{white-space:nowrap}
  .section-head{margin:22px 0 10px}.section-head h2{font-size:1.25rem}
  .people,.teams{grid-template-columns:1fr 1fr;gap:10px}
  .person{flex-direction:column;align-items:flex-start;padding:0;min-height:0;border-left:0;border-top:4px solid var(--team)}.person img{width:100%;height:120px}.person>div{padding:8px 12px 12px}
  .next-race{padding:16px}.next-race h1{font-size:1.45rem}
  .stats{grid-template-columns:1fr 1fr 1fr}.stats .age{grid-column:1/-1;order:-1}.stats div{padding:10px}.stats b{font-size:1.25rem}
  .toc{flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding-bottom:4px}.toc a{white-space:nowrap}
  .pager{font-size:.9rem}
}
@media(max-width:400px){.people,.teams{grid-template-columns:1fr}.person{flex-direction:row;border-top:0;border-left:4px solid var(--team)}.person img{width:96px;height:100px}}
.load-more{display:flex;justify-content:center;margin:24px 0}.load-more .btn{min-width:220px;text-align:center}
.site-footer p{line-height:1.6;margin:0 0 .8rem}.site-footer p:last-child{margin-bottom:0}

/* holding image for stories with no usable picture */
.holding{position:relative;display:grid;place-items:center;overflow:hidden;width:100%;aspect-ratio:16/9;
  background:repeating-linear-gradient(115deg,#ffffff14 0 14px,transparent 14px 44px),linear-gradient(135deg,hsl(var(--h,265) 58% 32%),hsl(calc(var(--h,265) + 25) 62% 13%))}
.holding::before{content:"";position:absolute;right:0;bottom:0;width:44%;aspect-ratio:1;opacity:.16;
  background:conic-gradient(#fff 25%,transparent 0 50%,#fff 0 75%,transparent 0) 0 0/22px 22px;
  -webkit-mask-image:linear-gradient(135deg,transparent 45%,#000);mask-image:linear-gradient(135deg,transparent 45%,#000)}
.holding .mark{position:relative;font-weight:800;letter-spacing:.02em;color:#fff;opacity:.88;font-size:1.15rem}.holding .mark b{color:var(--accent2)}
@media(max-width:720px){.news-card:not(.big) .holding .mark{font-size:.7rem}.news-card:not(.big) .holding::before{width:55%}}

/* driver headshots: cut-out photos sit on a team-colour tile so the straight crop at the shoulders reads as intentional */
.person img,.driver-hero img:not(.team-logo):not(.team-car){background:linear-gradient(165deg,color-mix(in srgb,var(--team) 65%,#0000),color-mix(in srgb,var(--team) 14%,#0000));object-fit:cover;object-position:top center}
.person img{width:96px;height:110px;margin:10px 0 0 10px;border-radius:12px 12px 0 0}
.driver-hero{align-items:flex-end}
.driver-hero img:not(.team-logo):not(.team-car){width:190px;height:210px;border-radius:12px 12px 0 0}
@media(max-width:720px){
  .person img{width:calc(100% - 20px);height:130px;margin:10px 10px 0}
  .driver-hero{gap:16px}
  .driver-hero img:not(.team-logo):not(.team-car){width:140px;height:160px}
  .driver-hero .num.big{font-size:2.4rem}.driver-hero h1{font-size:1.5rem}
}
@media(max-width:400px){.person img{width:96px;height:100px;margin:10px 0 0 10px}}
.plain-link{color:inherit}.plain-link:hover{color:var(--accent2);text-decoration:none}
.sessions li.has-results{padding:0;background:#0003;border:1px solid var(--accent)}.sessions li.has-results a{display:flex;justify-content:space-between;gap:12px;width:100%;padding:8px 12px;color:inherit}
.sessions li.has-results a:hover{background:#8b5cf622;text-decoration:none}.sessions li.has-results span{color:var(--accent2);font-weight:700}
.more-link{display:inline-block;margin-top:6px;font-size:.88rem;font-weight:600}
.notice a{margin-left:4px}

/* driver season grid */
.races-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:12px 0 8px}
.race-card{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:inherit;min-height:122px}
a.race-card:hover{border-color:var(--accent);text-decoration:none}
.race-card .rc-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.75rem;font-weight:700}
.race-card .rc-name{font-weight:700;line-height:1.25}
.race-card .rc-res{font-size:1.7rem;font-weight:800;line-height:1.1;margin-top:auto}
.race-card .rc-pts{color:var(--muted);font-size:.85rem}
.race-card .rc-sprint{font-size:.75rem;color:var(--muted);border-top:1px solid var(--line);padding-top:4px;margin-top:4px}
.race-card.upcoming{opacity:.55;background:transparent;border-style:dashed}.race-card.upcoming .rc-res{font-size:1rem;font-weight:600}
.race-card.podium{border-color:var(--team);background:linear-gradient(160deg,color-mix(in srgb,var(--team) 42%,var(--panel)),var(--panel) 85%)}
.race-card.podium .rc-res{color:#fff}.race-card.podium .rc-pts,.race-card.podium .rc-head,.race-card.podium .rc-sprint{color:#ffffffcc}
.race-card.p1{box-shadow:0 0 0 2px var(--team);background:linear-gradient(160deg,color-mix(in srgb,var(--team) 70%,var(--panel)),color-mix(in srgb,var(--team) 20%,var(--panel)))}

/* headshots keep the photo's own square shape so faces are never cropped */
.person img{width:96px;height:auto;aspect-ratio:1/1}
.driver-hero img:not(.team-logo):not(.team-car){width:190px;height:auto;aspect-ratio:1/1}
@media(max-width:720px){
  .person img{width:calc(100% - 20px);height:auto;aspect-ratio:1/1}
  .driver-hero img:not(.team-logo):not(.team-car){width:140px;height:auto;aspect-ratio:1/1}
  .races-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:400px){.person img{width:96px;height:auto;aspect-ratio:1/1}}
/* did not finish / disqualified: red; did not start: amber */
.race-card.out{border-color:#ef4444aa;background:linear-gradient(160deg,#ef444428,var(--panel) 80%)}
.race-card.out .rc-res,.rc-sprint.out{color:#f87171}
.race-card.dns{border-color:#fbbf24aa;background:linear-gradient(160deg,#fbbf2420,var(--panel) 80%)}.race-card.dns .rc-res{color:#fbbf24}

/* constructor header: season car on the right; sized so the header row keeps its height */
.team-car{margin-left:auto;align-self:center;height:84px;width:auto;max-width:52%;object-fit:contain;filter:drop-shadow(0 6px 10px #0007)}
@media(max-width:600px){.team-car{display:none}}
.driver-hero img.team-car{height:84px!important;width:auto!important;max-width:52%;aspect-ratio:auto;background:none;border-radius:0}

/* ---- live: nav pill, home tile, live page ---- */
.live-link.live-on{background:#dc2626;color:#fff!important;border-radius:99px;padding:6px 14px;margin:6px 0 6px auto;font-weight:800;letter-spacing:.04em;border-bottom:0!important;animation:livepulse 1.8s infinite}
.live-link.live-on .dot{background:#fff;margin-right:6px}
@keyframes livepulse{0%{box-shadow:0 0 0 0 #ef444499}70%{box-shadow:0 0 0 10px #ef444400}100%{box-shadow:0 0 0 0 #ef444400}}
.next-race.live{border-color:#ef4444;background:linear-gradient(135deg,#4a1220,#171722 70%);box-shadow:0 0 0 1px #ef444466,0 0 28px #ef444433}
.next-race.live .eyebrow{color:#fca5a5;display:flex;align-items:center;gap:6px;font-weight:800}
.eyebrow .dot{margin:0}
.live-session{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.chip{background:var(--panel);border:1px solid var(--line);padding:4px 12px;border-radius:99px;font-size:.85rem;color:var(--muted)}
.chip.strong{color:var(--text);font-weight:700}
.chip.status{font-weight:800;color:#4ade80;border-color:#22c55e}
.chip.status.SAFETYCAR,.chip.status.VSC{color:#facc15;border-color:#facc15;background:#facc1514}
.chip.status.REDFLAG{color:#fff;background:#dc2626;border-color:#dc2626}
.chip.status.FINISHED{color:var(--text);border-color:var(--text)}
.chip.rain{color:#60a5fa;border-color:#3b82f6}
.sec{margin:22px 0 8px}
.live-table td.pos{width:44px}.stops{color:var(--muted);margin-left:2px}
.live-table tr.drop td{background:#ef44441a}.live-table tr.drop td:first-child{box-shadow:inset 3px 0 #ef4444}
.top3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0}
.top3 .card{display:grid;gap:2px;padding:12px;border-top:4px solid var(--team)}
.top3 .rank{color:var(--muted);font-weight:800;font-size:.8rem}.top3 .time{font-size:1.15rem;font-weight:800}
@media(max-width:720px){
  html.js .main-nav a.live-link.live-on{margin:8px 0 0;border-radius:10px;padding:14px 12px;border-left:0}
  .top3{grid-template-columns:1fr}
}

/* phone: Live link sits in the top bar next to the menu button so it is always visible */
.header-live{display:none}
@media(max-width:720px){
  .header-live{display:inline-flex;align-items:center;margin-left:auto;padding:0 12px;min-height:40px;border-radius:99px;border:1px solid var(--line);color:var(--muted);font-weight:700;font-size:.85rem;white-space:nowrap}
  .header-live.on{color:var(--text);border-color:var(--accent)}
  .header-live.live-on{background:#dc2626;border-color:#dc2626;color:#fff;font-weight:800;letter-spacing:.04em;animation:livepulse 1.8s infinite}
  .header-live .dot{background:#fff;margin-right:6px}
  .header-live + .menu-btn{margin-left:0}
  .main-nav .live-link{display:none!important}
  .bar{gap:8px}
  .logo{font-size:1.12rem}
  .series-switch a,.series-switch .soon{padding:4px 9px}
}
@media(max-width:350px){
  .series-switch .soon{display:none}
  .logo{font-size:1rem}
  .header-live{padding:0 10px}
  .menu-btn{width:40px}
}
.mv{font-size:.68rem;margin-left:5px;font-weight:800;white-space:nowrap}.mv.up{color:#4ade80}.mv.down{color:#f87171}
.live-table td.pos{width:64px;white-space:nowrap}
@media(max-width:720px){
  .top3{grid-template-columns:repeat(3,1fr);gap:6px}
  .top3 .card{padding:8px 9px;gap:1px}
  .top3 .fn{display:none}
  .top3 b{font-size:.88rem}.top3 .time{font-size:.9rem}.top3 .rank{font-size:.68rem}
  .top3 .mv{margin-left:3px}
}

/* podium cards: headshot sits inside the card on the right, so the card keeps its size */
.top3 .card{position:relative;overflow:hidden}
.top3 .card > *:not(.shot){position:relative;z-index:1}
.top3 .shot{position:absolute;right:0;bottom:0;height:100%;width:auto;aspect-ratio:1/1;object-fit:cover;object-position:top;z-index:0;
  background:linear-gradient(165deg,color-mix(in srgb,var(--team) 65%,#0000),color-mix(in srgb,var(--team) 14%,#0000));
  -webkit-mask-image:linear-gradient(to left,#000 60%,transparent);mask-image:linear-gradient(to left,#000 60%,transparent)}
@media(max-width:720px){.top3 .shot{opacity:.38;height:100%}}
.chip.status.YELLOWFLAG{color:#facc15;border-color:#facc15;background:#facc1514}

/* qualifying board: Q1/Q2/Q3 times, knocked-out drivers dimmed in a fixed place */
.live-table tr.out td{opacity:.45}
.live-table td.dim{color:var(--muted)}.live-table td.fast{color:#c084fc;font-weight:700}
.outtag{margin-left:8px;color:#f87171;font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
@media(max-width:720px){
  .live-table.quali th,.live-table.quali td{padding:9px 5px}
  .live-table.quali .fn{display:none}
  .live-table.quali td{font-size:.9rem}
}
@media(max-width:720px){
  .live-table.quali td.pos{width:auto;min-width:40px}
  .live-table.quali th,.live-table.quali td{padding:9px 4px}
  .live-table.quali td{font-size:.84rem}
  .live-table.quali td:first-child{padding-left:8px}
  .live-table.quali .outtag{display:none} /* dimming and the empty later rounds already show who is out */
}

/* live page: nothing running */
.idle-hero{text-align:center;max-width:760px;margin:12px auto 0;padding:28px 18px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(120% 90% at 50% 0%,#2a1f55 0%,var(--panel) 62%)}
.idle-hero h2{font-size:1.5rem;margin:14px 0 4px}
.lights{display:inline-flex;gap:12px;padding:12px 18px;background:#0a0a10;border:1px solid var(--line);border-radius:14px}
.lights i{width:34px;height:34px;border-radius:50%;background:#262634;box-shadow:inset 0 2px 4px #0008;animation:lamp1 7s infinite}
.lights i:nth-child(2){animation-name:lamp2}.lights i:nth-child(3){animation-name:lamp3}.lights i:nth-child(4){animation-name:lamp4}.lights i:nth-child(5){animation-name:lamp5}
@keyframes lamp1{0%,6%{background:#262634;box-shadow:inset 0 2px 4px #0008}8%,66%{background:#ef4444;box-shadow:0 0 20px #ef4444aa}68%,100%{background:#262634;box-shadow:inset 0 2px 4px #0008}}
@keyframes lamp2{0%,16%{background:#262634;box-shadow:inset 0 2px 4px #0008}18%,66%{background:#ef4444;box-shadow:0 0 20px #ef4444aa}68%,100%{background:#262634;box-shadow:inset 0 2px 4px #0008}}
@keyframes lamp3{0%,26%{background:#262634;box-shadow:inset 0 2px 4px #0008}28%,66%{background:#ef4444;box-shadow:0 0 20px #ef4444aa}68%,100%{background:#262634;box-shadow:inset 0 2px 4px #0008}}
@keyframes lamp4{0%,36%{background:#262634;box-shadow:inset 0 2px 4px #0008}38%,66%{background:#ef4444;box-shadow:0 0 20px #ef4444aa}68%,100%{background:#262634;box-shadow:inset 0 2px 4px #0008}}
@keyframes lamp5{0%,46%{background:#262634;box-shadow:inset 0 2px 4px #0008}48%,66%{background:#ef4444;box-shadow:0 0 20px #ef4444aa}68%,100%{background:#262634;box-shadow:inset 0 2px 4px #0008}}
@media(prefers-reduced-motion:reduce){.lights i{animation:none}}
.idle-next{display:flex;gap:18px;align-items:center;justify-content:space-between;text-align:left;margin:22px 0 6px;padding:16px;border-radius:14px;background:#0003;border:1px solid var(--line)}
.idle-info{flex:1;min-width:0}.idle-info h3{margin:2px 0 6px;font-size:1.15rem}
.idle-track{width:38%;max-width:240px;filter:invert(.9);opacity:.9}
.idle-sessions{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:5px}
.idle-sessions li{display:flex;justify-content:space-between;gap:10px;font-size:.88rem;padding:6px 10px;border-radius:8px;background:#ffffff08}
.idle-sessions li.done{opacity:.45;text-decoration:line-through}.idle-sessions li.next{border:1px solid var(--accent);background:#8b5cf622}
.idle-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
@media(max-width:720px){
  .idle-hero{padding:22px 14px}.lights{gap:9px;padding:10px 14px}.lights i{width:28px;height:28px}
  .idle-next{flex-direction:column-reverse;align-items:stretch}.idle-track{width:60%;max-width:200px;align-self:center}
}
@media(max-width:350px){
  .live-table.quali td{font-size:.76rem}.live-table.quali th{font-size:.58rem}.live-table.quali th,.live-table.quali td{padding:9px 3px}
}

/* calendar cards */
.cal-grid{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.cal-grid>li{display:flex}
.cal-card{display:flex;flex-direction:column;gap:6px;width:100%;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:inherit}
a.cal-card:hover{border-color:var(--accent);text-decoration:none}
.cal-top{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.78rem;font-weight:700}.cal-top .when{margin-left:auto;font-weight:600}
.cal-card h3{margin:2px 0 0;font-size:1.05rem;line-height:1.25}.cal-card small{color:var(--muted)}
.podium-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.podium-list li{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;border-left:3px solid var(--team);font-weight:600;background:color-mix(in srgb,var(--team) 20%,transparent)}
.podium-list li:first-child{background:color-mix(in srgb,var(--team) 42%,transparent)}
.podium-list b{width:14px;opacity:.85}
.cal-card.now{border-color:var(--accent);background:linear-gradient(160deg,#2a1f55,var(--panel))}
.cal-card.upcoming{opacity:.62;border-style:dashed;background:transparent}
.cal-card.cancelled{opacity:.4}
.cal-chip{align-self:flex-start;margin-top:8px;padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:700;background:var(--panel2);color:var(--muted)}
.cal-chip.now{background:var(--accent);color:#fff}.cal-chip.cancelled{color:var(--bad)}

/* guides: hub cards, sub pages, richer article text (lists, tables, call-outs) */
.guide-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:18px 0}
.guide-card{display:flex;flex-direction:column;gap:6px;padding:18px;color:inherit;height:100%}.guide-card:hover{border-color:var(--accent);text-decoration:none}
.guide-card .gi{font-size:1.7rem;line-height:1}.guide-card h3{margin:4px 0 0;font-size:1.1rem}.guide-card p{margin:0;color:var(--muted);font-size:.92rem}
.guide-page{max-width:760px;margin:0 auto}.guide-page .crumbs{margin:6px 0 0}.guide-page h1 .gi{font-size:.85em}
.prose ul,.prose ol{padding-left:22px}.prose li{margin:.35em 0}
.prose h2{margin:1.6em 0 .4em;border-left:4px solid var(--accent);padding-left:12px;font-size:1.3rem}.prose h3{margin:1.2em 0 .3em}
.prose hr{border:0;border-top:1px solid var(--line);margin:1.6em 0}
.prose .md-table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:12px;overflow:hidden;font-size:.95rem}
.prose .md-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 12px;background:var(--panel2)}
.prose .md-table td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
.prose .callout{margin:1.2em 0;padding:12px 16px;border-left:4px solid var(--accent);background:#8b5cf61a;border-radius:0 10px 10px 0}
.guide-nav{display:flex;justify-content:space-between;gap:12px;margin:34px 0 8px}
.guide-nav a{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:inherit;max-width:48%}
.guide-nav a:hover{border-color:var(--accent);text-decoration:none}.guide-nav .next{text-align:right;margin-left:auto}.guide-nav small{color:var(--muted)}
.prose img{max-width:100%;height:auto;border-radius:12px;margin:1em 0;display:block}

.watch-listen{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding-top:16px;margin-top:4px;border-top:1px solid var(--line)}
.watch-listen.solo{margin:16px 0;border-top:0;padding:14px 18px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.wl-title{font-size:.9rem;width:100%}.wl-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.wl-label{color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;min-width:48px}
.wl-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-weight:700;font-size:.9rem}
.wl-badge:hover{border-color:var(--accent);text-decoration:none}.wl-badge i{font-style:normal;color:var(--muted);font-size:.8em}
