/* ── Type: self-hosted, OFL (see fonts/). Newsreader = headlines, Public Sans = interface + figures ── */
@font-face{font-family:'Newsreader';src:url(fonts/newsreader-roman.woff2) format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url(fonts/newsreader-italic.woff2) format('woff2');font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:'Public Sans';src:url(fonts/public-sans.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Public Sans';src:url(fonts/public-sans-italic.woff2) format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
:root{color-scheme:dark;--bg:#101510;--panel:#151b15;--ink:#ebece0;--muted:#aab3a1;--line:#333f31;--acid:#d1f897;--tint:#d1f897;--dem:#78adf0;--rep:#ed8e8b;--other:#e2bf79;--none:#6a7867;--shadow:#000;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--serif:'Newsreader',Georgia,'Times New Roman',serif;--sans:'Public Sans',system-ui,sans-serif;--fs-label:11px;--fs-meta:12px;--fs-body:15px;--radius:4px;--radius-lg:6px;--control-h:34px;--map-dem:#527eaa;--map-dem-low:#27415b;--map-rep:#a75f60;--map-rep-low:#563537;--map-other:#a89058;--map-other-low:#504534;--map-none:#495b45;--map-none-low:#263726;--map-grid:#97b486;--map-edge:#8fa58b;--map-edge-active:#e2ffaa;--map-label:#f1f2e5;--map-label-active:#e2ffaa;--map-label-halo:#101710;--burst:#edf5ff,#a5ccff,#6c9efa,#8ce4f7,#d6f59d,#f6cf79;--burst-ring:#d4f1a1,#80b8fd}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 34% 1%,color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 15%,var(--bg)) 0,transparent 36rem),var(--bg);font:15px/1.55 var(--sans)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--acid);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acid);outline-offset:4px}.skip{position:fixed;top:8px;left:8px;transform:translateY(-200%);background:var(--bg);padding:12px;z-index:9}.skip:focus{transform:none}
.mast,main,footer{width:min(1500px,calc(100% - 88px));margin:auto}.mast{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);font:800 18px/1.2 var(--mono);letter-spacing:.1em}.brand small{display:block;color:var(--muted);font-size:10.5px;margin-top:4px}.mast-actions{display:flex;align-items:center;gap:19px}.mast-actions button,.tools button,#refresh{background:color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 7%,var(--bg));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 26%,var(--bg));border-radius:3px;padding:7px 12px;font-size:12px}.mast-actions button:hover,.tools button:hover,#refresh:hover{border-color:var(--acid)}#signal{font:11px var(--mono);letter-spacing:.07em;color:var(--muted)}#signal i,.eyebrow span{width:7px;height:7px;border-radius:100%;display:inline-block;background:color-mix(in srgb,color-mix(in srgb,var(--acid) 10%,var(--ink)) 73%,var(--bg));margin-right:6px}#signal[data-live=true]{color:var(--acid)}#signal[data-live=true] i,.eyebrow span{background:var(--acid);box-shadow:0 0 12px color-mix(in srgb,color-mix(in srgb,color-mix(in srgb,var(--acid) 70%,var(--other)) 86%,var(--bg)) 56%,transparent)}
.intro{padding:36px 0 25px}.eyebrow,.micro{color:var(--acid);font:11px/1.5 var(--mono);letter-spacing:.12em}.eyebrow b{color:color-mix(in srgb,color-mix(in srgb,var(--tint) 35%,var(--ink)) 49%,var(--bg));margin:0 5px}.intro h1,h2,.mode strong{font-family:var(--serif);font-weight:400}.intro h1{font-size:clamp(3.25rem,7.3vw,7.8rem);line-height:.94;letter-spacing:-.03em;margin:12px 0 12px}.intro h1 em{color:var(--acid);font-weight:400}.intro p{margin:0;color:var(--muted);font-size:14px}
.chamber{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:12px}.mapbox,.console,.raceboard,.detail{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:5px;min-width:0}.mapbox{overflow:hidden;background:radial-gradient(ellipse at 48% 49%,color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 15%,var(--bg)) 0,color-mix(in srgb,color-mix(in srgb,var(--tint) 55%,var(--dem)) 5%,var(--bg)) 58%,var(--bg) 100%);isolation:isolate;min-height:400px;display:flex;flex-direction:column}.mapbox:before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,color-mix(in srgb,var(--acid) 45%,var(--ink)) 3%,transparent) 4px 5px);pointer-events:none}.maphead,.mapfoot{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:17px 20px;z-index:1}.maphead{position:absolute;inset:0 0 auto}.maphead h2{font-size:31px;line-height:1.05;margin:4px 0 0}.tools{display:flex;gap:5px}.tools button{min-width:38px;min-height:37px}.tools button[aria-pressed=true]{border-color:var(--acid);color:var(--acid)}#atlas{display:block;width:100%;flex:1;min-height:320px;touch-action:pan-y;cursor:grab;user-select:none}#atlas.dragging{cursor:grabbing}#grid{pointer-events:none}#map-error{position:absolute;top:50%;width:100%;padding:14px;text-align:center;background:var(--bg)}.mapfoot{border-top:1px solid var(--line);padding-block:11px;margin-top:auto}.legend{display:flex;flex-wrap:wrap;gap:4px 13px;font-size:11px;color:var(--muted)}.legend span:before{content:"";display:inline-block;margin-right:5px;width:7px;height:7px;background:var(--tone);border-radius:1px}.dem{--tone:var(--dem)}.rep{--tone:var(--rep)}.other{--tone:var(--other)}.none{--tone:var(--none)}.maptip{font:10.5px var(--mono);color:var(--muted);white-space:nowrap}
.console{padding:16px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(145deg,color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 8%,var(--bg)),color-mix(in srgb,var(--ink) 2%,var(--bg)) 75%)}.console-head{padding:1px 1px 0}.modes{display:grid;gap:9px;perspective:550px}.mode{display:grid;grid-template-columns:45px 1fr auto;gap:10px;align-items:center;text-align:left;min-height:70px;background:linear-gradient(135deg,color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 13%,var(--bg)),color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 7%,var(--bg)));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 26%,var(--bg));border-bottom:3px solid var(--bg);border-radius:4px;padding:8px 9px;transition:transform .2s,border-color .2s,background .2s}.mode:hover{transform:translateZ(13px) rotateX(-3deg);border-color:color-mix(in srgb,color-mix(in srgb,var(--acid) 60%,var(--ink)) 59%,var(--bg))}.mode[aria-pressed=true]{background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 20%,var(--bg)),color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 13%,var(--bg)));border-color:color-mix(in srgb,color-mix(in srgb,var(--acid) 95%,var(--dem)) 59%,var(--bg));border-bottom-color:color-mix(in srgb,var(--tint) 34%,var(--bg))}.mode .glyph{display:grid;place-items:center;width:42px;height:42px;border-radius:4px;color:var(--acid);border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 38%,var(--bg));background:radial-gradient(at 32% 22%,color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 36%,var(--bg)),color-mix(in srgb,color-mix(in srgb,var(--tint) 60%,var(--dem)) 14%,var(--bg)) 78%);font:28px var(--serif);box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--shadow) 27%,transparent),0 4px 7px color-mix(in srgb,var(--shadow) 27%,transparent)}.mode small,.brief small{display:block;color:var(--muted);font:10.5px/1.2 var(--mono);letter-spacing:.06em}.mode strong{font-size:24px;line-height:1.1;display:block;margin-top:2px}.mode .arrow{color:var(--acid);font-size:15px}.brief{padding-top:12px;border-top:1px solid var(--line);margin-top:auto}.statrow{display:flex;justify-content:space-between;gap:12px}.statrow b{font:29px/1.15 var(--serif)}.brief p{margin:10px 0 0;color:var(--muted);font-size:11px}
.explore{margin:39px 0 30px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:13px}.section-head h2{font-size:clamp(33px,4vw,56px);letter-spacing:-.025em;line-height:1;margin:3px 0 0}.filters{display:flex;gap:10px}.filters label{color:var(--muted);font-size:11px}.filters input,.filters select{display:block;max-width:100%;min-height:37px;padding:5px 10px;margin-top:3px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 6%,var(--bg));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 30%,var(--bg));border-radius:3px}.explorer{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:12px}.racebar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);font:11px var(--mono);color:var(--acid)}#race-list{max-height:395px;overflow:auto}.race{display:flex;justify-content:space-between;align-items:center;gap:10px;background:none;width:100%;border:0;border-bottom:1px solid var(--line);padding:11px 14px;text-align:left}.race:hover,.race[aria-pressed=true]{background:color-mix(in srgb,color-mix(in srgb,var(--tint) 90%,var(--dem)) 15%,var(--bg))}.race strong{font-size:14px}.race small,.empty,.hint{color:var(--muted);font-size:12px}.race small{display:block}.race .count{font:11px var(--mono);white-space:nowrap;color:var(--tone,var(--muted))}.empty{margin:14px}.detail{padding:18px}.detail h3{font:34px/1.06 var(--serif);margin:6px 0 8px}.detail-meta{display:flex;gap:8px 15px;flex-wrap:wrap;font:11px var(--mono);color:var(--muted);margin-bottom:15px}.candidate{padding:8px 0}.candtext{display:flex;justify-content:space-between;gap:10px;font-size:13px}.candtext small{color:var(--muted)}.candtext strong{color:var(--tone);white-space:nowrap}.track{height:5px;margin-top:6px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 21%,var(--bg));border-radius:3px;overflow:hidden}.track span{display:block;height:100%;background:var(--tone)}footer{border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr auto;gap:20px;padding:17px 0 25px;color:var(--muted);font-size:11px}#toast:empty{display:none}#toast{position:fixed;right:20px;bottom:20px;background:color-mix(in srgb,var(--tint) 14%,var(--bg));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--acid) 75%,var(--ink)) 65%,var(--bg));padding:12px 16px;border-radius:4px;z-index:5}
@media(max-width:980px){.mast,main,footer{width:calc(100% - 40px)}.chamber{grid-template-columns:minmax(0,1fr) 233px}.console{padding:12px}.mode{gap:7px}.maptip{display:none}}
@media(max-width:740px){.mast,main,footer{width:calc(100% - 28px)}.mast{height:66px}.mast .brand .brand-mark{width:54px;height:54px}.mast-actions{gap:8px}.mast-actions button{padding:5px 8px}.intro{padding:26px 0 18px}.intro h1{font-size:clamp(3rem,11vw,5rem);margin:9px 0}.intro p{font-size:12px;max-width:370px}.chamber{grid-template-columns:1fr;gap:8px}.console{grid-row:1;gap:7px;padding:8px}.console-head{font-size:10px}.modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.mode{min-height:49px;grid-template-columns:24px 1fr;gap:4px;padding:4px}.mode .glyph{width:23px;height:27px;font-size:17px}.mode strong{font-size:clamp(13px,3.8vw,21px)}.mode small{font-size:9px;letter-spacing:0}.mode .arrow,.brief{display:none}.mapbox{min-height:273px}.maphead,.mapfoot{padding:9px 10px}.maphead h2{font-size:22px}.maphead .micro{font-size:10px}.tools button{min-height:32px;min-width:34px;padding:4px 7px}#atlas{min-height:230px}.mapfoot .legend{gap:4px 9px}.section-head{display:block}.filters{margin-top:10px}.filters label{min-width:0;flex:1}.filters input,.filters select{width:100%}.explore{margin-top:26px}.explorer{grid-template-columns:1fr}#race-list{max-height:260px}footer{grid-template-columns:1fr;gap:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.keynote{padding:0 20px 9px;font:11px/1.4 var(--mono);color:var(--muted)}.mapfoot{border-top:0;padding-bottom:6px}.mapbox{border-bottom-color:color-mix(in srgb,color-mix(in srgb,var(--tint) 95%,var(--dem)) 47%,var(--bg))}.maphead:before{content:"";position:absolute;left:0;top:0;width:90px;height:2px;background:linear-gradient(90deg,color-mix(in srgb,color-mix(in srgb,var(--acid) 90%,var(--other)) 96%,var(--bg)),transparent);pointer-events:none}
@media(max-width:740px){.keynote{padding:0 10px 7px;font-size:10.5px}}
.matrix-wrap{border-top:1px solid var(--line);padding-top:12px}.matrix-wrap p{font-size:11px;margin:4px 0 9px;color:var(--muted)}#matrix{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}#matrix button{font:11px var(--mono);padding:7px 0;color:var(--ink);background:color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 10%,var(--bg));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 32%,var(--bg));border-left:2px solid var(--tone);border-radius:2px}#matrix button:hover,#matrix button[aria-pressed=true]{border-color:var(--acid);background:color-mix(in srgb,color-mix(in srgb,var(--tint) 90%,var(--dem)) 21%,var(--bg))}#matrix .hint{grid-column:1/-1}.tools button:disabled{opacity:.45;cursor:default}
@media(max-width:740px){.matrix-wrap{display:none}.maphead h2{max-width:150px}.tools{gap:3px}.tools button{min-width:32px}.mapbox{min-height:0}#atlas{min-height:0;margin:26px 0 0;aspect-ratio:1.58}}

.more-races{font-size:12px;color:var(--muted);margin:0 0 13px}.more-races a{white-space:normal}
#coverage-link{font:11px var(--mono);text-decoration:none;color:var(--acid)}#next-check{min-height:1.4em;margin-top:4px}.coverage{margin:42px 0 30px;scroll-margin-top:18px}.coverage .section-head>p{max-width:360px;margin:0;color:var(--muted);font-size:13px}.coverage-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px}.player-slot,.stations{min-width:0}.player-slot{position:relative;min-height:240px;border:1px solid var(--line);border-radius:5px;background:linear-gradient(145deg,color-mix(in srgb,var(--tint) 10%,var(--bg)),var(--panel) 75%)}.video-player{background:color-mix(in srgb,var(--tint) 2%,var(--bg));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 31%,var(--bg));border-radius:4px;overflow:hidden}.video-player.is-pinned{position:fixed;z-index:15;bottom:max(14px,env(safe-area-inset-bottom));right:14px;width:min(440px,calc(100vw - 28px));box-shadow:0 12px 42px color-mix(in srgb,var(--shadow) 73%,transparent);border-color:color-mix(in srgb,color-mix(in srgb,var(--acid) 90%,var(--ink)) 65%,var(--bg))}.player-bar{height:42px;padding:4px 9px 4px 13px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:color-mix(in srgb,var(--tint) 9%,var(--bg))}.player-bar strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px}.player-bar>div{display:flex;gap:4px;align-items:center}.player-bar button,.player-bar a{border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 33%,var(--bg));background:color-mix(in srgb,color-mix(in srgb,var(--tint) 85%,var(--dem)) 13%,var(--bg));border-radius:3px;color:var(--ink);padding:4px 7px;font-size:11px;white-space:nowrap;text-decoration:none}.player-bar button:hover,.player-bar a:hover{border-color:var(--acid)}#video-mount{aspect-ratio:16/9;position:relative;display:grid;place-items:center;background:color-mix(in srgb,var(--tint) 1%,var(--bg));overflow:hidden}#video-mount iframe{width:100%;height:100%;border:0;display:block}.broadcast-poster{display:grid;place-items:center;position:relative;text-align:center;padding:20px}.broadcast-poster p{font:18px var(--serif);margin:6px 0 0;color:var(--ink)}.signal-rings{display:grid;place-items:center;width:96px;height:80px;margin-bottom:8px;position:relative;color:var(--acid)}.signal-rings i{position:absolute;width:48px;height:48px;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--acid) 90%,var(--dem)) 57%,var(--bg));border-radius:10px;transform:rotate(45deg) scale(var(--ring,1));opacity:.38}.signal-rings i:nth-child(2){--ring:1.25}.signal-rings i:nth-child(3){--ring:1.5}.signal-rings i:nth-child(4){--ring:1.75}.signal-rings b{font-size:26px;font-weight:400}.player-bar [hidden],.video-player:not(.is-pinned)+.dock-guide{display:none}.dock-guide{padding:30px 22px;color:var(--muted);text-align:center;min-height:210px;display:grid;align-content:center;justify-content:center}.dock-guide p{margin:8px 0}.dock-guide a{font-size:12px}#play-featured{position:absolute;bottom:9%;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--acid) 85%,var(--ink)) 67%,var(--bg));background:color-mix(in srgb,color-mix(in srgb,var(--tint) 90%,var(--dem)) 13%,var(--bg));color:var(--acid);border-radius:3px;padding:8px 13px;font-size:12px}.broadcast-poster:has(+ #play-featured){transform:translateY(-10px)}.stations{display:grid;gap:6px;align-content:start}.station{display:grid;grid-template-columns:minmax(0,1fr) 40px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 6%,var(--bg));border:1px solid var(--line);border-radius:4px;overflow:hidden}.station button{display:grid;grid-template-columns:27px 1fr 22px;align-items:center;gap:8px;text-align:left;background:none;border:0;padding:9px;color:var(--ink);min-height:49px}.station button:hover,.station button[aria-pressed=true]{background:color-mix(in srgb,color-mix(in srgb,var(--tint) 90%,var(--dem)) 17%,var(--bg))}.station a{display:grid;place-items:center;border-left:1px solid var(--line);text-decoration:none}.station button:focus-visible,.station a:focus-visible{outline-offset:-3px}.station strong,.coverage-links strong{display:block;font-size:13px}.station small,.coverage-links small{display:block;font-size:11px;color:var(--muted);line-height:1.3}.station-num,.station-play{font:11px var(--mono);color:var(--acid)}.external-coverage{margin-top:18px}.coverage-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}.coverage-links a{display:block;padding:9px 10px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 6%,var(--bg));border:1px solid var(--line);border-radius:3px;color:var(--ink);text-decoration:none}.coverage-links a:hover{border-color:var(--acid)}.coverage-links strong span{color:var(--acid)}
.intro{animation:arrival .65s ease-out both}#atlas{animation:atlas-in .8s cubic-bezier(.2,.75,.25,1) both}.mode .glyph{transition:transform .25s,box-shadow .25s}.mode:hover .glyph,.mode[aria-pressed=true] .glyph{transform:translateY(-2px);box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--shadow) 27%,transparent),0 3px 15px color-mix(in srgb,color-mix(in srgb,color-mix(in srgb,var(--acid) 80%,var(--other)) 90%,var(--bg)) 19%,transparent)}.mapbox{position:relative}.mapbox::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,color-mix(in srgb,var(--acid) 6%,transparent) 45%,transparent 60%);transform:translateX(-115%);animation:sweep 1.2s .18s ease-out both}.mapbox.mode-shift #land{animation:map-shift .4s ease-out both}.detail.detail-reveal> *{animation:arrival .28s ease-out both}.detail.detail-reveal .track span{transform-origin:left;animation:bar-grow .52s cubic-bezier(.2,.78,.3,1) both}.brief.data-arrival .statrow{animation:data-lift .68s ease-out both}.signal-rings i{animation:signal-breathe 3.6s ease-in-out infinite alternate}.signal-rings i:nth-child(2){animation-delay:.24s}.signal-rings i:nth-child(3){animation-delay:.48s}.signal-rings i:nth-child(4){animation-delay:.72s}#signal[data-live=true] i{animation:signal-breathe 2.6s ease-in-out infinite alternate}
@keyframes arrival{from{opacity:.15;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes atlas-in{from{opacity:.2;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sweep{to{transform:translateX(115%)}}@keyframes map-shift{from{opacity:.36}to{opacity:1}}@keyframes bar-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes data-lift{35%{color:var(--acid);transform:translateY(-2px)}}@keyframes signal-breathe{from{opacity:.4}to{opacity:1}}
@media(max-width:740px){.coverage{margin-top:28px}.coverage .section-head>p{margin-top:8px}.coverage-layout{grid-template-columns:1fr;gap:7px}.coverage-links{grid-template-columns:repeat(2,minmax(0,1fr))}.player-slot{min-height:0}.video-player.is-pinned{width:min(290px,calc(100vw - 24px));right:9px;bottom:max(9px,env(safe-area-inset-bottom))}.broadcast-poster{padding:3px}.broadcast-poster p{font-size:14px}.signal-rings{height:55px;margin-bottom:4px;scale:.72}#play-featured{bottom:6%;font-size:11px;padding:5px 8px}.mast-actions{gap:7px}}
@media(max-width:390px){.brand{letter-spacing:.04em}.brand img,.mast .brand .brand-mark{width:46px;height:46px}.brand{font-size:13px}.mast-actions{gap:6px}#signal{font-size:10px}.brand small{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important}}

.screen-reader-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#tv-live{display:none}
@media(max-width:759px){.layout-select,.view-picker{display:none!important}}
@media(min-width:760px){
  .tv-mode{--tv-head:52px;--tv-gutter:clamp(12px,1.2vw,36px);--tv-gap:clamp(10px,.85vw,24px)}
  .tv-mode .mast,.tv-mode main{width:calc(100% - 2 * var(--tv-gutter));max-width:none}
  .tv-mode .mast{height:var(--tv-head)}
  .tv-mode main{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:minmax(0,59fr) minmax(0,41fr);
    gap:var(--tv-gap);
    padding:var(--tv-gap) 0;
    height:calc(100vh - var(--tv-head));
    height:calc(100dvh - var(--tv-head));
  }
  .tv-mode .hero,.tv-mode .explore,.tv-mode .coverage{min-width:0;min-height:0;margin:0}
  .tv-mode .hero{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:5px}
  .tv-mode .intro{padding:0;flex:none}
  .tv-mode .intro h1{font-size:clamp(24px,2.25vw,54px);letter-spacing:-.025em;margin:1px 0 4px}
  .tv-mode .intro .eyebrow,.tv-mode .intro p,.tv-mode .console-head{display:none}
  .tv-mode .chamber{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}
  .tv-mode .console{order:-1;display:block;padding:6px;flex:none}
  .tv-mode .modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .tv-mode .mode{grid-template-columns:1fr;min-height:40px;padding:4px 8px}
  .tv-mode .mode strong{font-size:clamp(17px,1.32vw,29px)}
  .tv-mode .mode .glyph,.tv-mode .mode .arrow,.tv-mode .matrix-wrap,.tv-mode .brief .statrow,.tv-mode .brief>.micro{display:none}
  .tv-mode .brief{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin-top:5px;padding-top:4px}
  .tv-mode .brief p{margin:0}.tv-mode #next-check{min-height:0}
  .tv-mode .mapbox{min-height:0;flex:1}
  .tv-mode .maphead,.tv-mode .mapfoot{padding:5px 10px}
  .tv-mode .maphead h2{font-size:clamp(21px,1.55vw,36px)}
  .tv-mode .maphead .micro{display:none}
  .tv-mode .tools button{min-width:31px;min-height:31px;padding:3px 7px}
  .tv-mode #atlas{min-height:0;width:100%;height:0;flex:1;margin:25px 0 0;aspect-ratio:auto}
  .tv-mode .keynote{padding:0 10px 5px}
  .tv-mode .mapfoot{margin-top:0}
  .tv-mode .explore{grid-column:1;grid-row:2;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .tv-mode .explore .section-head{margin-bottom:5px;gap:6px;align-items:end}
  .tv-mode .explore .section-head h2{font-size:clamp(23px,1.65vw,40px)}
  .tv-mode .explore .section-head .micro{display:none}
  .tv-mode .filters input,.tv-mode .filters select{min-height:30px;margin-top:1px;padding:3px 7px;font-size:12px}
  .tv-mode .more-races{margin-bottom:5px;font-size:11px}
  .tv-mode .explorer{gap:6px}
  .tv-mode #race-list{max-height:min(25vh,450px)}
  .tv-mode .racebar,.tv-mode .race{padding:6px 9px}
  .tv-mode .detail{padding:10px}
  .tv-mode .detail h3{font-size:clamp(23px,1.7vw,37px)}
  .tv-mode .coverage{grid-column:2;grid-row:1/3;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:7px}
  .tv-mode .coverage .section-head{margin:0;align-items:center;gap:8px;flex:none}
  .tv-mode .coverage .section-head h2{font-size:clamp(23px,1.55vw,36px);margin:0}
  .tv-mode .coverage .section-head .micro{display:none}
  .tv-mode .coverage .section-head>p{font-size:11px;text-align:right;max-width:44ch}
  .tv-mode .coverage-layout{display:contents}
  .tv-mode .player-slot{order:1;position:sticky;top:0;z-index:3;flex:none;min-height:0;border:0}
  .tv-mode .video-player.is-pinned{position:relative;bottom:auto;right:auto;width:100%;box-shadow:none}
  .tv-mode .dock-guide,.tv-mode #pin-player{display:none}
  .tv-mode #tv-live{display:grid;order:2;gap:5px;flex:none}
  .tv-mode .stations{order:3;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;flex:none}
  .tv-mode .station button{min-height:38px;padding:4px 7px;grid-template-columns:18px minmax(0,1fr) 10px;gap:3px}
  .tv-mode .station{grid-template-columns:minmax(0,1fr) 28px}
  .tv-mode .station small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .tv-mode .external-coverage{order:4;margin:0;flex:none}
  .tv-mode .coverage-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tv-mode footer{display:none}
  .tv-live-heading{display:flex;justify-content:space-between;align-items:center}
  .tv-live-heading a{color:var(--muted);font-size:11px}
  #tv-race-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .tv-race-stat{border:1px solid var(--line);border-radius:4px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 6%,var(--bg));padding:4px 8px}
  .tv-race-stat strong,.tv-race-stat b{display:block}
  .tv-race-stat strong{color:var(--muted);font-size:11px;font-weight:500}
  .tv-race-stat b{font:clamp(16px,1.12vw,29px)/1.2 var(--serif)}
  .tv-party-count{display:flex;gap:9px;font:11px var(--mono);margin-top:3px}
  .tv-party-count span,.tv-call strong{color:var(--tone,var(--ink))}
  #tv-recent-calls{display:grid;gap:3px}
  .tv-call{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:6px;align-items:center;text-align:left;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 65%,var(--dem)) 6%,var(--bg));border:1px solid var(--line);border-radius:3px;padding:4px 7px;min-height:28px}
  .tv-call:hover{border-color:var(--acid)}.tv-call strong,.tv-call span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tv-call span,.tv-call small{color:var(--muted);font-size:11px}.tv-call small{white-space:nowrap}
}
@media(min-width:760px) and (max-height:820px){
  .tv-mode .coverage .section-head>p{display:none}
  .tv-mode .explore .more-races{display:none}
  .tv-mode .player-bar{height:32px}
  .tv-mode .tv-call{min-height:24px;padding-block:2px}
}
@media(min-width:760px) and (max-width:1200px){
  .tv-mode .filters label{font-size:0}
  .tv-mode .filters input,.tv-mode .filters select{width:100%}
  .tv-mode .filters label{min-width:0;flex:1}
}
.layout-select{display:flex;gap:2px;padding:2px;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 34%,var(--bg));border-radius:4px;background:color-mix(in srgb,var(--tint) 2%,var(--bg))}
.mast-actions .layout-select button{border:1px solid transparent;background:none;color:var(--muted);min-height:30px;padding:3px 10px}
.mast-actions .layout-select button:hover{border-color:color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 38%,var(--bg));color:var(--ink)}
.mast-actions .layout-select button[aria-pressed=true]{border-color:color-mix(in srgb,color-mix(in srgb,var(--acid) 90%,var(--dem)) 59%,var(--bg));color:var(--acid);background:color-mix(in srgb,var(--tint) 21%,var(--bg))}
#update-meter{display:none;height:3px;border-radius:3px;overflow:hidden;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 20%,var(--bg))}
#update-meter::before{content:"";display:block;width:100%;height:100%;background:color-mix(in srgb,color-mix(in srgb,var(--acid) 95%,var(--other)) 88%,var(--bg));transform:scaleX(var(--update-progress,0));transform-origin:left;transition:transform .8s linear}
#stream-audio{color:var(--acid);border-color:color-mix(in srgb,color-mix(in srgb,var(--acid) 95%,var(--dem)) 52%,var(--bg));font-weight:700}
#stream-audio[aria-pressed=true]{color:var(--ink);background:color-mix(in srgb,var(--tint) 22%,var(--bg))}
#land .new-returns>.top{animation:state-signal 1.65s ease-out}
.mapbox.live-sweep::after{animation:feed-sweep 1.1s ease-out both}
#tv-live.live-totals .tv-race-stat{animation:live-panel 1.25s ease-out}
@keyframes state-signal{0%,28%{stroke:color-mix(in srgb,var(--acid) 65%,var(--ink));stroke-width:3;filter:brightness(1.6)}100%{filter:brightness(1)}}
@keyframes feed-sweep{from{transform:translateX(-115%)}to{transform:translateX(115%)}}
@keyframes live-panel{24%{border-color:color-mix(in srgb,color-mix(in srgb,var(--acid) 85%,var(--ink)) 94%,var(--bg));background:color-mix(in srgb,var(--tint) 21%,var(--bg))}}
@media(min-width:760px){
  .tv-mode{--tv-text:clamp(17px,2.15vh,32px);--tv-small:clamp(14px,1.55vh,24px);--tv-title:clamp(26px,3vh,48px);--tv-head:clamp(52px,5.7vh,86px)}
  .tv-mode .mast .brand{font-size:var(--tv-small);line-height:1.1}
  .tv-mode .mast .brand small,.tv-mode .mast #signal,.tv-mode #coverage-link,.tv-mode .mast-actions button{font-size:var(--tv-small)}
  .tv-mode .mast-actions button{min-height:38px}
  .tv-mode .intro h1,.tv-mode .maphead h2,.tv-mode .coverage .section-head h2,.tv-mode .explore .section-head h2,.tv-mode .detail h3{font-size:var(--tv-title)}
  .tv-mode .mode strong{font-size:clamp(19px,2.15vh,34px)}
  .tv-mode .mode small,.tv-mode .brief p,.tv-mode .legend,.tv-mode .keynote,.tv-mode .micro,.tv-mode .maptip{font-size:var(--tv-small)}
  .tv-mode .mode{min-height:clamp(42px,5.8vh,84px)}
  .tv-mode .brief{gap:4px 10px}
  .tv-mode #update-meter{display:block;flex:1;min-width:40px;margin:0 3px}
  .tv-mode #atlas{margin-top:clamp(27px,3.4vh,52px)}

  .tv-mode .mapfoot,.tv-mode .keynote{line-height:1.25}
  .tv-mode .mapfoot .legend{gap:3px 11px}
  .tv-mode .legend span::before{width:.65em;height:.65em}
  .tv-mode .filters label,.tv-mode .filters input,.tv-mode .filters select,.tv-mode .more-races,.tv-mode .racebar,.tv-mode .hint,.tv-mode .detail-meta,.tv-mode .empty{font-size:var(--tv-small)}
  .tv-mode .filters input,.tv-mode .filters select{min-height:36px}
  .tv-mode .race strong,.tv-mode .race .count,.tv-mode .candtext,.tv-mode .player-bar strong,.tv-mode .station strong,.tv-mode .tv-call strong{font-size:var(--tv-text)}
  .tv-mode .race small,.tv-mode .candtext small,.tv-mode .player-bar button,.tv-mode .player-bar a,.tv-mode .station small,.tv-mode .coverage .section-head>p,.tv-mode .tv-live-heading a{font-size:var(--tv-small)}
  .tv-mode .player-bar{height:clamp(42px,5vh,72px)}
  .tv-mode .tv-race-stat{padding:5px 8px}
  .tv-mode .tv-race-stat strong,.tv-mode .tv-party-count,.tv-mode .tv-call span,.tv-mode .tv-call small{font-size:var(--tv-small)}
  .tv-mode .tv-race-stat b{font-size:clamp(21px,2.6vh,40px)}
  .tv-mode .tv-call{min-height:clamp(29px,3.1vh,48px)}
  .tv-mode .tv-call small{font-size:clamp(11px,1.15vh,17px)}
  .tv-mode .track{height:7px}
  .tv-mode .detail-meta{margin-bottom:5px}
  .tv-mode .candidate{padding:4px 0}
  .tv-mode .coverage .section-head>p{max-width:34ch}
  .tv-mode #video-mount{max-height:70vh}
}
@media(min-width:760px) and (max-width:1150px){
  .tv-mode{--tv-text:16px;--tv-small:12px;--tv-title:26px}
  .tv-mode .mast .brand small,.tv-mode .maptip,.tv-mode .tv-call small{display:none}
  .tv-mode .mast-actions{gap:7px}
  .tv-mode .tv-call{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
  .tv-mode .explore .section-head{align-items:start;flex-direction:column}
  .tv-mode .filters{width:100%}
  .tv-mode .filters label{font-size:0}
  .tv-mode .station small{display:none}
}
@media(min-width:760px) and (max-height:780px){
  .tv-mode .keynote{display:none}
  .tv-mode .coverage .section-head h2{font-size:24px}
  .tv-mode .coverage .section-head>p{display:none}
  .tv-mode .tv-race-stat b{font-size:22px}
}
#call-celebration{--party:var(--dem);position:fixed;z-index:50;inset:0;display:grid;place-items:center;pointer-events:none;isolation:isolate}
#call-celebration[hidden]{display:none}
#call-celebration[data-party=R]{--party:var(--rep)}#call-celebration[data-party=O]{--party:var(--other)}
.call-atmosphere,#call-confetti{position:absolute;inset:0;width:100%;height:100%}
.call-atmosphere{background:radial-gradient(ellipse at 50% 48%,color-mix(in srgb,color-mix(in srgb,var(--party) 60%,var(--ink)) 26%,transparent),transparent 50%),conic-gradient(from -60deg at 50% 48%,transparent 10%,color-mix(in srgb,color-mix(in srgb,var(--party) 90%,var(--ink)) 15%,transparent) 16%,transparent 24%,color-mix(in srgb,color-mix(in srgb,var(--party) 55%,var(--ink)) 14%,transparent) 39%,transparent 50%,color-mix(in srgb,color-mix(in srgb,color-mix(in srgb,var(--acid) 95%,var(--party)) 91%,var(--bg)) 15%,transparent) 60%,transparent 76%,color-mix(in srgb,color-mix(in srgb,var(--party) 95%,var(--ink)) 16%,transparent) 90%,transparent);opacity:0}
.call-stage{position:relative;perspective:880px;width:min(660px,calc(100vw - 40px))}
.call-banner{
  position:relative;isolation:isolate;transform-style:preserve-3d;text-align:center;padding:clamp(22px,3vw,54px) 20px clamp(21px,2.8vw,45px);
  border:1px solid color-mix(in srgb,var(--party) 60%,var(--ink));border-radius:14px;color:color-mix(in srgb,var(--party) 15%,var(--ink));
  background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--party) 52%,var(--bg)) 0,transparent 68%),linear-gradient(140deg,color-mix(in srgb,var(--party) 23%,var(--bg)),color-mix(in srgb,var(--party) 8%,var(--bg)) 67%,color-mix(in srgb,var(--party) 22%,var(--bg)));
  box-shadow:0 0 0 5px color-mix(in srgb,color-mix(in srgb,color-mix(in srgb,var(--acid) 10%,var(--party)) 87%,var(--bg)) 19%,transparent),0 0 56px color-mix(in srgb,color-mix(in srgb,var(--party) 95%,var(--ink)) 40%,transparent),0 18px 75px color-mix(in srgb,var(--shadow) 88%,transparent),inset 0 0 30px color-mix(in srgb,color-mix(in srgb,var(--party) 70%,var(--ink)) 18%,transparent);
}
.call-banner::before,.call-banner::after{content:"";position:absolute;pointer-events:none;inset:6px;border-radius:10px;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--party) 60%,var(--ink)) 39%,transparent);transform:translateZ(-10px)}
.call-banner::after{inset:-13px 24px;transform:translateZ(-34px);border-color:color-mix(in srgb,color-mix(in srgb,var(--party) 75%,var(--ink)) 25%,transparent)}
.call-banner span,.call-banner small{display:block;font:clamp(11px,1.4vw,18px)/1.45 var(--mono);color:color-mix(in srgb,var(--party) 40%,var(--ink))}
.call-banner span{letter-spacing:.23em;color:color-mix(in srgb,var(--acid) 70%,var(--ink));font-weight:700}
.call-banner strong{display:block;margin:8px 0 10px;line-height:1;font:clamp(2.2rem,6vw,5.4rem)/1.02 var(--serif);letter-spacing:-.04em;overflow-wrap:anywhere;text-shadow:0 4px 17px color-mix(in srgb,var(--party) 7%,var(--bg))}
.call-medallion{margin:-2px auto 10px;display:grid;place-items:center;width:clamp(38px,6vw,80px);height:clamp(38px,6vw,80px);transform:translateZ(45px);filter:drop-shadow(0 0 16px color-mix(in srgb,color-mix(in srgb,var(--party) 60%,var(--ink)) 69%,transparent))}
.call-medallion svg{width:100%;height:100%;fill:color-mix(in srgb,var(--party) 37%,var(--bg));stroke:color-mix(in srgb,var(--party) 40%,var(--ink));stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.call-medallion svg path+path{fill:none;stroke:color-mix(in srgb,var(--acid) 50%,var(--ink));stroke-width:2}
.call-lights{position:absolute;inset:auto 18% -2px;height:3px;border-radius:50%;background:color-mix(in srgb,var(--party) 65%,var(--ink));box-shadow:0 0 22px 4px color-mix(in srgb,var(--party) 67%,transparent);transform:translateZ(13px)}
.call-arrives .call-atmosphere{animation:call-atmosphere var(--call-duration,5.5s) ease-out both}
.call-arrives .call-banner{animation:couch-call var(--call-duration,5.5s) cubic-bezier(.17,.74,.25,1) both}
.call-arrives .call-medallion{animation:call-emblem var(--call-duration,5.5s) cubic-bezier(.2,.73,.27,1) both}
@keyframes call-atmosphere{0%,100%{opacity:0}10%{opacity:.8}70%{opacity:.4}}
@keyframes couch-call{
  0%{opacity:0;transform:translateY(75px) translateZ(-320px) rotateX(52deg) rotateY(-28deg) scale(.74)}
  12%{opacity:1;transform:translateY(-6px) translateZ(12px) rotateX(-3deg) rotateY(5deg)}
  27%,82%{opacity:1;transform:translate3d(0,0,0) rotateX(0) rotateY(0)}
  100%{opacity:0;transform:translateY(-28px) translateZ(-52px) rotateX(-12deg) scale(.93)}
}
@keyframes call-emblem{0%{transform:translateZ(-30px) rotateY(-180deg) scale(.62)}18%{transform:translateZ(60px) rotateY(12deg) scale(1.06)}37%,100%{transform:translateZ(45px) rotateY(0) scale(1)}}
@media(min-width:760px){.tv-mode .call-stage{width:min(52vw,920px)}}
@media(prefers-reduced-motion:reduce){.call-atmosphere,#call-confetti{display:none}.call-medallion{transform:none}}
.player-heading{min-width:0;display:flex;align-items:baseline;gap:8px;overflow:hidden}
.player-heading #stream-status{white-space:nowrap;color:var(--muted);font-size:11px}
.player-heading #stream-status[data-playback=playing]{color:var(--acid)}
@media(min-width:760px){.tv-mode .player-heading #stream-status{font-size:var(--tv-small)}}
@media(max-width:450px){.player-heading{display:grid;gap:0}.player-heading #stream-status{font-size:10.5px;overflow:hidden;text-overflow:ellipsis}}

/* National recap stays within reach while browsing returns. */
.recap{position:sticky;top:0;z-index:9;width:min(1500px,calc(100% - 88px));margin:0 auto;min-height:68px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 37%,var(--bg));border-top:0;border-radius:0 0 5px 5px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 6%,var(--bg));box-shadow:0 8px 22px color-mix(in srgb,var(--shadow) 50%,transparent)}
.recap-brief,#recap-control,#recap-watch{display:flex;align-items:center;gap:8px;min-width:0}
.recap-title,.recap-control-card,#recap-flip-count{display:grid;gap:3px;white-space:nowrap}
.recap-title,#recap-flip-count,.recap-control-card{padding-right:8px;border-right:1px solid var(--line)}
.recap .micro,.recap-control-card strong,#recap-flip-count strong{font:700 11px/1.1 var(--mono);letter-spacing:.045em;color:var(--acid)}
.recap-title strong,.recap-control-card b,#recap-flip-count b{font-size:14px}
.recap-control-card small{font:700 11px/1.1 var(--mono);color:var(--tone,var(--muted))}
.recap b span{color:var(--tone,var(--ink))}
.recap-watch{display:grid;gap:5px;min-width:0}
.recap-race,.recap-details summary,#close-recap{border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 34%,var(--bg));border-radius:4px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 10%,var(--bg));color:var(--ink);padding:5px 8px;text-align:left}
.recap-race:hover,.recap-details summary:hover,#close-recap:hover{border-color:var(--acid)}
.recap-race{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;min-height:32px;width:100%;font-size:12px}
.recap-race b{color:var(--tone,var(--acid));white-space:nowrap}
.recap-race span{grid-column:1 / -1;color:var(--muted)}
#recap-watch .recap-race{white-space:nowrap}
.recap-details summary{cursor:pointer;white-space:nowrap;list-style:none;font-size:12px}
.recap-details summary::-webkit-details-marker{display:none}
.recap-drawer{position:absolute;top:100%;right:0;width:min(860px,100%);max-height:min(70vh,660px);overflow:auto;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 75%,var(--dem)) 5%,var(--bg));border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 48%,var(--bg));border-radius:4px;padding:14px;box-shadow:0 12px 32px color-mix(in srgb,var(--shadow) 73%,transparent);overscroll-behavior:contain}
.recap-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.recap-drawer h2{margin:0;font:700 clamp(24px,3vw,38px)/1.05 var(--serif)}
.recap-drawer h3{margin:4px 0 6px;font-size:14px;color:var(--acid)}
.recap-drawer-stats{font-weight:700}
.recap-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.recap-race-list{display:grid;align-content:start;gap:4px;max-height:36vh;overflow:auto;padding-right:3px}
.recap-drawer .hint{margin:9px 0 0}
@media(min-width:760px){
  .tv-mode{--recap-height:clamp(67px,8.6vh,112px)}
  .tv-mode .recap{width:calc(100% - 2 * var(--tv-gutter));height:var(--recap-height);min-height:0}
  .tv-mode main{height:calc(100dvh - var(--tv-head) - var(--recap-height))}
  .tv-mode .recap .micro,.tv-mode .recap-control-card strong,.tv-mode #recap-flip-count strong,.tv-mode .recap-control-card small,.tv-mode .recap-details summary{font-size:var(--tv-small)}
  .tv-mode .recap-title strong,.tv-mode .recap-control-card b,.tv-mode #recap-flip-count b,.tv-mode .recap-race,.tv-mode .recap-drawer-stats{font-size:var(--tv-text)}
  .tv-mode .recap-drawer .hint,.tv-mode .recap-drawer h3{font-size:var(--tv-small)}
}
@media(max-width:1250px){
  .recap{grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;gap:7px;padding-inline:7px}
  .recap-brief,#recap-control,#recap-watch{gap:5px}
  .recap-title,.recap-control-card,#recap-flip-count{padding-right:5px}
  #recap-watch .recap-race:nth-child(3){display:none}
}
@media(max-width:980px){.recap{width:calc(100% - 40px)}}
@media(max-width:759px){
  .recap{width:calc(100% - 28px);grid-template-columns:minmax(0,1fr) auto;row-gap:7px}
  .recap-brief{grid-column:1 / -1;justify-content:space-between}
  .recap-watch{grid-column:1;grid-row:2;gap:3px}
  .recap-details{grid-column:2;grid-row:2;align-self:end}
  .recap .micro,.recap-control-card strong,#recap-flip-count strong{font-size:10.5px}
  .recap-title strong,.recap-control-card b,#recap-flip-count b{font-size:12px}
  .recap-drawer{padding:10px}
  .recap-columns{grid-template-columns:1fr}
  .recap-race-list{max-height:20vh}
}
@media(max-width:380px){#recap-watch .recap-race:nth-child(2){display:none}}

.station-lineup{display:grid;gap:13px;min-width:0}
.station-section{min-width:0}
.station-section h3{margin:0 0 7px}
.station-section[hidden]{display:none}
.station-note{margin:7px 0 0;color:var(--muted);font-size:11px}
.station-badge{display:inline-block;width:max-content;padding:3px 4px;border-radius:3px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 16%,var(--bg));color:var(--muted);font:700 10.5px/1 var(--mono);letter-spacing:.025em}
[data-kind=LIVE] .station-badge{color:var(--acid);background:color-mix(in srgb,color-mix(in srgb,var(--tint) 95%,var(--dem)) 22%,var(--bg))}
.player-heading .station-badge{margin-inline:5px}
.player-heading .station-badge[hidden]{display:none}
.station-lineup .station button{grid-template-columns:42px minmax(0,1fr) 10px}
@media(min-width:760px){.tv-mode .station-lineup{order:3;flex:none}}
.elections-nav{display:inline-block;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 90%,var(--dem)) 46%,var(--bg));border-radius:4px;background:color-mix(in srgb,color-mix(in srgb,var(--tint) 70%,var(--dem)) 14%,var(--bg));color:var(--acid);padding:5px 8px;font:700 11px var(--mono);text-decoration:none;white-space:nowrap}
.elections-nav:hover{border-color:var(--acid)}
@media(max-width:420px){.mast-actions:has(.elections-nav) #coverage-link{display:none}}
@media(max-width:345px){.mast-actions:has(.elections-nav) #signal{display:none}}
@media(max-width:420px){.mast-actions .elections-nav{padding-inline:5px;font-size:11px}}
.brand{align-items:center;line-height:1;color:var(--acid)}
.brand img{display:block;flex:none}
.brand span{display:block}
/* 3D county map */
.county-open{margin:12px 0 4px;padding:9px 12px;border:1px solid var(--acid);border-radius:4px;background:var(--panel);color:var(--acid);font:11px var(--mono);letter-spacing:.06em;cursor:pointer}
.county-open:hover,.county-open:focus-visible{background:var(--acid);color:var(--bg)}
.county-view{width:min(1400px,94vw);height:min(900px,92vh);max-width:none;max-height:none;padding:0;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--bg);overflow:hidden}
.county-view[open]{display:grid;grid-template-rows:auto auto 1fr auto}
.county-view::backdrop{background:#000000c4;backdrop-filter:blur(3px)}
.cv-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 8px;border-bottom:1px solid var(--line)}
.cv-head h2{margin:2px 0 0;font:clamp(24px,3vw,38px)/1.05 var(--serif,Georgia,serif);letter-spacing:-.03em}
.cv-tools{display:flex;gap:6px;align-items:center}
.cv-tools>button,.cv-seg button{min-width:34px;height:32px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--muted);font:11px var(--mono);cursor:pointer}
.cv-seg{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:5px}
.cv-seg button{border-color:transparent;padding:0 9px;height:26px}
.cv-seg button[aria-pressed=true]{color:var(--acid);background:var(--bg);border-color:var(--acid)}
.cv-tools>button:hover,.cv-seg button:hover{color:var(--ink)}
.cv-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 18px;font-size:12px;color:var(--muted)}
.cv-chip{padding:2px 7px;border-radius:3px;font:11px var(--mono);letter-spacing:.12em;border:1px solid var(--muted);color:var(--ink)}
.cv-chip.live{border-color:var(--acid);color:var(--acid);animation:cv-pulse 2s ease-in-out infinite}
.cv-chip.certified{border-color:var(--acid);color:var(--acid)}
@keyframes cv-pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--acid) 25%,transparent)}}
.cv-body{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:0}
.cv-stage{position:relative;min-height:0;overflow:hidden}
.cv-stage canvas{position:absolute;inset:0;touch-action:none;cursor:grab;outline:none}
.cv-stage canvas:focus-visible{box-shadow:inset 0 0 0 2px var(--acid)}
.cv-tip{position:absolute;left:14px;bottom:10px;font:10.5px var(--mono);letter-spacing:.12em;color:var(--muted);pointer-events:none}
.cv-side{border-left:1px solid var(--line);padding:14px 16px;overflow:auto;background:var(--panel)}
.cv-pick-label{display:grid;gap:4px;font:11px var(--mono);letter-spacing:.12em;color:var(--muted);margin-bottom:12px}
.cv-pick-label select{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:6px}
.cv-card h3{margin:4px 0 2px;font:30px/1.06 var(--serif,Georgia,serif)}
.cv-gap{border-left:2px dashed var(--muted);padding-left:9px;color:var(--muted);font-size:12px}
.cv-credit{margin-top:14px;font-size:11px;color:var(--muted)}.cv-credit a{color:var(--acid)}
.cv-back{margin-top:10px;background:none;border:1px solid var(--line);border-radius:4px;color:var(--muted);padding:5px 9px;font:11px var(--mono);cursor:pointer}
.cv-foot{display:flex;gap:14px;align-items:center;padding:9px 18px 12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.cv-legend{display:flex;gap:6px;align-items:center;font:11px var(--mono);white-space:nowrap}
.cv-legend i{display:block;width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--map-dem,var(--dem)),var(--map-none,var(--none)),var(--map-rep,var(--rep)))}
@media(max-width:759px){
  .county-view{width:100vw;height:100dvh;border:0;border-radius:0}
  .cv-head{padding:10px 12px 6px;flex-wrap:wrap;gap:8px}.cv-head h2{font-size:24px}.cv-tools{width:100%;justify-content:space-between}.cv-status{padding:6px 12px;font-size:11px}
  .cv-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
  .cv-side{border-left:0;border-top:1px solid var(--line);max-height:30dvh;padding:8px 12px}.cv-pick-label{margin-bottom:6px}
  .cv-card h3{font-size:24px}
  .cv-foot{padding:6px 12px 10px}.cv-foot>span{display:none}
  .cv-tip{display:none}
}
@media(min-width:760px){
  .tv-mode .county-view{width:100vw;height:100vh;border:0;border-radius:0}
  .tv-mode .cv-body{grid-template-columns:minmax(0,1fr) 420px}
  .tv-mode .cv-card h3{font-size:44px}
  .tv-mode .cv-card .candtext{font-size:18px}
}

/* Atlas zoom and pan */
#atlas{touch-action:pan-y;cursor:grab}
#atlas.zoomed{touch-action:none}
#atlas.dragging{cursor:grabbing}
.mapbox .county-chip{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);z-index:2;padding:8px 14px;border:1px solid var(--acid);border-radius:999px;background:var(--panel);color:var(--acid);font:11px var(--mono);letter-spacing:.06em;cursor:pointer;box-shadow:0 6px 24px #0007}
.mapbox .county-chip:hover,.mapbox .county-chip:focus-visible{background:var(--acid);color:var(--bg)}
@media(max-width:740px){.mapbox .county-chip{bottom:46px;font-size:11px;white-space:nowrap}}

/* Atlas polish: hover lift, selected glow, calmer motion */
#land g .top{transition:filter .18s ease}
#land g:hover .top{filter:brightness(1.14) saturate(1.08)}
#land g.active .top{filter:brightness(1.08)}
#atlas.dragging #land g:hover .top{filter:none}
#land .glow{animation:glow-breathe 2.8s ease-in-out infinite alternate}
@keyframes glow-breathe{from{opacity:.22}to{opacity:.5}}
@media(prefers-reduced-motion:reduce){#land .glow{animation:none}}
.mapfoot{flex-wrap:wrap}.maptip{white-space:normal;text-align:right;min-width:0;flex:1 1 220px;line-height:1.5}
/* Map controls guide */
.map-guide{position:absolute;z-index:3;right:20px;top:68px;width:min(430px,calc(100% - 40px));padding:10px 12px;border:1px solid color-mix(in srgb,var(--acid) 45%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--panel) 92%,transparent);color:var(--ink);box-shadow:0 10px 30px color-mix(in srgb,#000 30%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:guide-in .35s ease-out both;transition:opacity .6s ease;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 10px}
.map-guide[hidden]{display:none}
.map-guide.leaving{opacity:0}
.map-guide .micro{color:var(--acid)}
.map-guide ul{grid-column:1/-1;grid-row:2;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.map-guide li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--muted);white-space:nowrap}
.map-guide kbd{font:600 11px var(--mono);color:var(--ink);padding:2px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;background:color-mix(in srgb,var(--bg) 70%,var(--panel));white-space:nowrap}
.map-guide-close{grid-column:2;grid-row:1;min-height:0;padding:3px 9px;font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;background:transparent;border:1px solid color-mix(in srgb,var(--acid) 55%,var(--line));color:var(--acid);border-radius:4px;cursor:pointer}
.map-guide-close:hover{background:color-mix(in srgb,var(--acid) 14%,transparent)}
#map-help[aria-pressed=true]{border-color:var(--acid);color:var(--acid)}
@keyframes guide-in{from{opacity:0;transform:translateY(-6px)}}
@media(max-width:740px){.map-guide{top:auto;bottom:64px;right:10px;left:10px;width:auto}.map-guide ul{grid-template-columns:1fr}.map-guide li{font-size:12px}.map-guide kbd{font-size:11px}}
@media(prefers-reduced-motion:reduce){.map-guide{animation:none;transition:none}}
/* Closer to home: local races on the atlas page */
.local-home{margin:39px 0 0}.local-home .section-head h2{font-size:clamp(33px,4vw,56px);letter-spacing:-.025em;line-height:1;margin:3px 0 0}
.local-home-tabs{display:flex;flex-wrap:wrap;gap:6px}.local-home-tabs button{background:color-mix(in srgb,var(--tint) 7%,var(--bg));border:1px solid color-mix(in srgb,var(--tint) 26%,var(--bg));border-radius:3px;padding:7px 12px;font-size:12px}
.local-home-tabs button:hover{border-color:var(--acid)}.local-home-tabs button[aria-pressed=true]{border-color:var(--acid);color:var(--acid);background:color-mix(in srgb,var(--tint) 16%,var(--bg))}
.local-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}
.local-card{display:flex;flex-direction:column;gap:7px;min-width:0;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--ink);text-decoration:none}
.local-card:hover{border-color:var(--acid)}.local-card>strong{font:20px/1.15 var(--serif);overflow-wrap:anywhere}
.local-cand{display:grid;gap:4px;font-size:13px;color:var(--muted)}.local-cand.lead{color:var(--ink)}
.local-cand-text{display:flex;justify-content:space-between;gap:10px;min-width:0}.local-cand-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.local-cand-text b{font:12px var(--mono);white-space:nowrap}
.local-track{display:block;height:5px;border-radius:3px;overflow:hidden;background:color-mix(in srgb,var(--tint) 18%,var(--bg))}.local-track i{display:block;height:100%;background:color-mix(in srgb,var(--muted) 70%,var(--bg))}.local-cand.lead .local-track i{background:var(--acid)}
.local-card small{margin-top:auto;font:11px/1.4 var(--mono);color:var(--muted);letter-spacing:.04em}
.local-home-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-top:10px;font:11px/1.5 var(--mono);color:var(--muted)}.local-home-all{font:12px var(--sans)}
@media(max-width:740px){.local-home{margin-top:26px}.local-home-tabs{margin-top:10px}.local-home-tabs button{flex:1 1 auto;padding:6px 8px}.local-card{padding:12px}.local-card>strong{font-size:18px}}
@media(min-width:760px){
  .tv-mode .coverage{grid-row:1}
  .tv-mode .local-home{grid-column:2;grid-row:2;min-width:0;min-height:0;margin:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .tv-mode .local-home .section-head{margin-bottom:5px;gap:6px;align-items:center}
  .tv-mode .local-home .section-head h2{font-size:clamp(23px,1.65vw,40px)}
  .tv-mode .local-home .section-head .micro{display:none}
  .tv-mode .local-home-tabs button{padding:4px 9px;font-size:11px}
  .tv-mode .local-home-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:6px}
  .tv-mode .local-card{padding:8px 10px;gap:4px}.tv-mode .local-card>strong{font-size:clamp(15px,1vw,22px)}
  .tv-mode .local-cand{font-size:12px}.tv-mode .local-home-foot{margin-top:5px}}
/* Fit audit (Nov 4): long names never run into the margin chip; tiny phones drop the wordmark (the h1 says it) */
.recap-race>strong,.recap-race>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:400px){.mast .brand>span:last-child{display:none}.mast-actions{gap:6px}}
/* TV fit: the legend floats over the bottom of the atlas so the map gets the whole panel */
@media(min-width:760px){
  .tv-mode #atlas{margin-top:clamp(30px,4.5vh,52px)}
  .tv-mode .mapfoot{position:absolute;left:0;right:0;bottom:0;border-top:0;padding:4px 10px;pointer-events:none;background:linear-gradient(transparent,color-mix(in srgb,var(--panel) 80%,transparent) 60%)}
  .tv-mode .mapfoot .legend{pointer-events:auto}
  .tv-mode .maptip,.tv-mode .keynote{display:none}
  .tv-mode .map-guide{top:auto;bottom:30px;right:10px}
}
@media(min-width:760px) and (max-height:900px){
  .tv-mode .mode small{display:none}
  .tv-mode .mode{min-height:32px;padding:3px 8px}
  .tv-mode .brief{margin-top:3px;padding-top:2px}
}
/* Battleground beacons */
#beacons{pointer-events:none}
#beacons .beacon{animation:beacon-flicker 2.4s ease-in-out infinite}
#beacons .beacon-ring{transform-box:fill-box;transform-origin:center;animation:beacon-ring 2.4s ease-out infinite}
@keyframes beacon-flicker{0%,100%{opacity:.75}50%{opacity:1}}
@keyframes beacon-ring{from{transform:scale(.4);opacity:.95}to{transform:scale(2.3);opacity:0}}
@media(prefers-reduced-motion:reduce){#beacons .beacon,#beacons .beacon-ring{animation:none}}
/* Time machine */
#tm-watermark{font:700 128px var(--serif,serif);opacity:.17;pointer-events:none;letter-spacing:-.02em}
#time-machine[aria-pressed=true]{border-color:var(--acid);color:var(--acid)}
.timebar{flex:1 1 100%;order:-1;display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:6px 12px;pointer-events:auto}
.timebar[hidden]{display:none}
#tm-play{width:36px;min-height:32px;padding:0;font-size:13px}
#tm-year{width:100%;accent-color:var(--acid)}
.tm-label{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font:11px var(--mono);color:var(--muted)}
.tm-label b{font:700 20px var(--serif,serif);color:var(--ink)}
.tm-label span{display:inline-flex;gap:6px;align-items:baseline}
.tm-label span:before{content:"";width:8px;height:8px;border-radius:1px;background:var(--tone);align-self:center}
.tm-label i{font-style:normal;color:var(--ink);font-weight:600}
.mapbox.time-travel .maptip,.mapbox.time-travel .keynote{display:none}
@media(min-width:760px){.tv-mode .timebar{background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--line);border-radius:5px;padding:5px 8px;margin-bottom:3px}.tv-mode .mapbox.time-travel .legend{display:none}}
@media(max-width:740px){.tm-text{display:none}.mapbox.time-travel .maphead .micro{display:none}}
@media(min-width:760px){.tv-mode .timebar{grid-template-columns:auto minmax(80px,1fr) auto;gap:4px 10px}.tv-mode .tm-label{grid-column:auto;flex-wrap:nowrap;overflow:hidden;gap:4px 10px}.tv-mode .tm-label b{font-size:var(--tv-text,16px)}.tv-mode #tm-play{min-height:26px;width:30px}}
.legend .beacon-key[hidden]{display:none}
.legend .beacon-key:before{width:3px!important;height:11px!important;background:linear-gradient(transparent,var(--acid))!important;vertical-align:-1px}

/* Local races: multi-area chips with a home pin */
.local-chip{display:inline-flex}.local-home-tabs .local-chip button{border-radius:3px 0 0 3px}
.local-home-tabs .local-chip .local-pin{border-radius:0 3px 3px 0;border-left:0;padding:7px 8px;color:var(--muted);font-size:13px;line-height:1}
.local-home-tabs .local-chip .local-pin[aria-pressed=true]{color:var(--bg);background:var(--acid);border-color:var(--acid)}
.local-home-tabs .local-chip .local-pin:hover{color:var(--acid)}.local-home-tabs .local-chip .local-pin[aria-pressed=true]:hover{color:var(--bg)}
.local-card-area{display:block;margin-bottom:-3px}
@media(max-width:740px){.local-chip{flex:1 1 auto}.local-chip>button:first-child{flex:1}.local-home-tabs .local-chip .local-pin{flex:none}}
@media(max-width:759px){.local-card:nth-child(n+7){display:none}}
.tv-mode .local-home-tabs .local-chip .local-pin{padding:4px 6px;font-size:11px}
.tv-mode .local-home .local-card-area{font-size:clamp(9px,.55vw,13px);letter-spacing:.1em}
.legend .county-key[hidden]{display:none}.legend .county-key{all:unset;cursor:pointer;color:var(--ink);text-decoration:underline dotted;text-underline-offset:3px;pointer-events:auto;display:inline-flex;align-items:center}.legend .county-key:before{content:"";display:inline-block;margin-right:5px;width:7px;height:7px;border-radius:1px;background:linear-gradient(90deg,var(--dem) 50%,var(--rep) 50%)}.legend .county-key[aria-pressed=false]:before{background:transparent;border:1px dashed var(--muted)}.legend .county-key:focus-visible{outline:2px solid var(--acid)}
#beacons .beacon-tag{pointer-events:none}
/* Local places: chips for saved areas plus a city / county / ZIP finder */
.local-home-tabs{align-items:center}
.local-home-tabs .local-chip-name{display:inline-flex;align-items:center;background:color-mix(in srgb,var(--tint) 16%,var(--bg));border:1px solid var(--acid);color:var(--acid);border-radius:3px 0 0 3px;padding:7px 12px;font-size:12px;text-decoration:none;white-space:nowrap}
.local-home-tabs .local-chip:not(.is-home) .local-chip-name{border-color:color-mix(in srgb,var(--tint) 26%,var(--bg));color:var(--ink);background:color-mix(in srgb,var(--tint) 7%,var(--bg))}
.local-home-tabs .local-chip-name:hover{border-color:var(--acid)}
.local-home-tabs .local-chip .local-drop{border-radius:0 3px 3px 0;border-left:0;padding:7px 8px;color:var(--muted);font-size:13px;line-height:1}
.local-home-tabs .local-chip:not(.is-home) .local-pin{border-radius:0}
.local-home-tabs .local-chip .local-drop:hover{color:var(--acid)}
.local-finder{position:relative;flex:0 1 230px;min-width:170px}
.local-finder input,.place-finder input{width:100%;box-sizing:border-box;background:var(--bg);color:var(--ink);border:1px dashed color-mix(in srgb,var(--tint) 40%,var(--bg));border-radius:3px;padding:7px 10px;font:12px var(--sans)}
.local-finder input:focus,.place-finder input:focus{outline:none;border-style:solid;border-color:var(--acid)}
.local-options{position:absolute;z-index:40;top:calc(100% + 4px);right:0;left:auto;width:max(100%,300px);max-width:calc(100vw - 32px);margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--acid);border-radius:4px;box-shadow:0 12px 30px rgb(0 0 0/.35)}
.local-options li{display:flex;flex-direction:column;gap:1px;padding:7px 9px;border-radius:3px;cursor:pointer}
.local-options li strong{font-size:13px;color:var(--ink)}.local-options li small{font:11px/1.4 var(--mono);color:var(--muted);letter-spacing:.03em}
.local-options li[aria-selected=true],.local-options li[role=option]:hover{background:color-mix(in srgb,var(--tint) 16%,var(--bg))}
.local-options li.place-hint{cursor:default;font-size:12px;color:var(--muted)}
@media(max-width:740px){.local-finder{flex:1 1 100%}.local-options{left:0;right:auto;width:100%}.local-home-tabs .local-chip-name{flex:1;justify-content:center;padding:6px 8px}}
.tv-mode .local-home-tabs .local-chip-name,.tv-mode .local-finder input{padding:4px 9px;font-size:11px}
.channel-pick{display:flex;align-items:center;gap:6px;margin-right:4px}
.channel-pick span{font:700 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--acid)}
.channel-pick select{max-width:min(260px,34vw);border:1px solid color-mix(in srgb,var(--acid) 55%,var(--bg));background:color-mix(in srgb,var(--tint) 12%,var(--bg));color:var(--ink);border-radius:3px;padding:4px 6px;font-size:12px}
.channel-pick select:hover,.channel-pick select:focus-visible{border-color:var(--acid)}
.broadcast-poster p b{color:var(--acid);font-weight:600}
@media(max-width:740px){.channel-pick span{display:none}.channel-pick select{max-width:44vw;font-size:11px}}
#video-mount:has(#play-featured){align-content:center;gap:14px}
#video-mount #play-featured{position:static}
#video-mount .broadcast-poster:has(+ #play-featured){transform:none}
/* TV layout: the Coverage Desk shares its column with Local races, so the player
   fills the space it has instead of a fixed 16:9 box that ran off the bottom. */
@media(min-width:760px){
  .tv-mode .coverage .section-head{height:44px;overflow:hidden}
  .tv-mode .coverage .section-head h2{font-size:min(var(--tv-title,34px),34px);line-height:1}
  .tv-mode .player-slot{flex:none;height:calc(100% - 51px);display:flex;flex-direction:column;background:var(--bg)}
  .tv-mode .player-slot>.video-player{flex:1;min-height:0;display:flex;flex-direction:column}
  .tv-mode .player-slot>.video-player.is-pinned{flex:1}
  .tv-mode #video-mount{flex:1;min-height:0;aspect-ratio:auto;max-height:none;width:100%}
  .tv-mode #video-mount>iframe{width:100%;height:100%}
  /* Local races header: keep the area chips and the ZIP box on one line, pinned while the cards scroll */
  .tv-mode .local-home .section-head{position:sticky;top:0;z-index:3;background:var(--bg);padding-bottom:5px;margin-bottom:0;align-items:center}
  .tv-mode .local-home-tabs{flex-wrap:nowrap;justify-content:flex-end;min-width:0}
  .tv-mode .local-finder{flex:0 1 210px;min-width:120px}}
/* Header fit (Nov 5): big phones (401–540px) and the narrowest TV widths ran the header off the right edge */
@media(max-width:759px){.mast .brand>span:last-child{display:none}}
@media(min-width:760px) and (max-width:819px){body:not(.tv-mode) .mast .brand>span:last-child{display:none}}
@media(max-width:540px){.mast-actions{gap:6px}#coverage-link{display:none}}
@media(max-width:360px){.mast .elections-nav{padding:4px 6px;font-size:11px;letter-spacing:0}.mast .brand .brand-mark{width:40px;height:40px}}
@media(min-width:760px) and (max-width:900px){.mast .theme-toggle b{display:none}.mast-actions{gap:8px}}
.mast{gap:8px}.mast-actions{min-width:0}
@media(max-width:360px){.mast-actions{gap:5px}.mast-actions .elections-nav{padding:4px 5px}}
.cheer-prefs{flex-basis:100%;margin-top:8px;border-top:1px solid var(--line);padding-top:8px;font-size:12px}
.cheer-prefs summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;min-height:28px}
.cheer-prefs summary::-webkit-details-marker{display:none}
.cheer-prefs summary::after{content:"▾";margin-left:auto;color:var(--muted)}
.cheer-prefs[open] summary::after{content:"▴"}
.cheer-sum{color:var(--ink)}
.cheer-body{display:grid;gap:8px;padding-top:6px;color:var(--muted)}
.cheer-body p{margin:0}
.cheer-body fieldset{border:1px solid var(--line);border-radius:4px;padding:6px 8px;margin:0;display:flex;flex-wrap:wrap;gap:4px 12px}
.cheer-body legend{font:11px var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:0 4px}
.cheer-body label{display:inline-flex;gap:6px;align-items:center;min-height:28px;color:var(--ink);cursor:pointer}
.cheer-body input{accent-color:var(--acid);width:16px;height:16px}
.cheer-reset{justify-self:start;background:transparent;color:var(--acid);border:1px solid var(--line);border-radius:4px;padding:5px 10px;font:inherit;cursor:pointer}
.tv-mode .cheer-prefs{flex-basis:auto;margin:0 0 0 auto;padding:0;border:0;position:relative;font-size:11px}
.tv-mode .cheer-prefs summary{min-height:22px}
.tv-mode .cheer-body{position:absolute;right:0;top:100%;z-index:30;width:min(320px,80vw);padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 32px color-mix(in srgb,var(--shadow) 60%,transparent)}
/* Coverage poster (Nov 5): the rotated rings are ~120px across but sat in an 80px box, so the outer ring ran into the title. */
.signal-rings{width:124px;height:124px;margin-bottom:10px}
.broadcast-poster>.micro{padding-left:.15em}
@media(max-width:740px){.signal-rings{width:124px;height:124px;margin:-14px 0 -10px}}
.tv-mode #video-mount .signal-rings{width:108px;height:108px;scale:.85;margin:-6px 0 0}
#video-mount{container-type:inline-size}
@container (max-width:560px){#video-mount .signal-rings{scale:.6;margin:-26px 0 -18px}#video-mount .broadcast-poster p{font-size:14px;line-height:1.3}}
@container (max-width:380px){#video-mount .signal-rings{display:none}#video-mount .broadcast-poster p{font-size:13px}}

/* No race this cycle: hatched, recessed states, plus a matching legend swatch */
#atlas .no-race-line{stroke:var(--muted);stroke-width:1.6;opacity:.6}
.legend .norace:before{background:repeating-linear-gradient(135deg,var(--muted) 0 1.2px,transparent 1.2px 3.2px)!important;outline:1px solid color-mix(in srgb,var(--muted) 45%,transparent);outline-offset:-1px}
.mapbox .county-chip.no-race-chip{border-color:var(--line);color:var(--ink);cursor:default}
.mapbox .county-chip.no-race-chip.switch{cursor:pointer;border-color:var(--acid);color:var(--acid)}
.mapbox .county-chip.no-race-chip:not(.switch):hover{background:var(--panel);color:var(--ink)}
.mapbox .county-chip.no-race-chip{white-space:nowrap}
@media(max-width:740px){.mapbox .county-chip.no-race-chip{max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis}}
/* The atlas spans the whole TV panel; the home camera keeps the country clear of the title and tools itself. */
.tv-mode #atlas{margin-top:0}
.legend .norace[hidden]{display:none}

/* Time machine layer toggles */
.tm-views{display:flex;gap:4px;grid-column:1/-1;align-items:center}
.tm-views button{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;min-height:28px;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:4px;cursor:pointer}
.tm-views button[aria-pressed=true]{border-color:var(--acid);color:var(--acid)}
.tm-views button:focus-visible{outline:2px solid var(--acid)}
.swing-key{align-self:center;font:11px var(--mono);color:var(--muted);white-space:nowrap;margin-left:4px}.swing-key[hidden]{display:none}.swing-key b{font-weight:700}.swing-key .d{color:var(--dem)}.swing-key .r{color:var(--rep)}
@media(max-width:740px){.tm-views{flex-wrap:wrap}.swing-key{flex-basis:100%;margin:2px 0 0}}

/* Map detail card */
.map-card{position:absolute;z-index:3;min-width:180px;max-width:260px;padding:9px 11px;background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px #0008;pointer-events:none;font:11px var(--mono);color:var(--ink);backdrop-filter:blur(6px)}
.map-card[hidden]{display:none}
.map-card strong{display:block;font:600 13px var(--serif,Georgia,serif);margin-bottom:6px;letter-spacing:.01em}
.map-card .row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:2px 0}
.map-card .row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-card .row b{font-weight:600;white-space:nowrap}
.map-card .row.dem span:before,.map-card .row.rep span:before,.map-card .row.other span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:1px;margin-right:6px;background:var(--tone)}
.map-card .row.dem{--tone:var(--dem)}.map-card .row.rep{--tone:var(--rep)}.map-card .row.other{--tone:var(--other)}
.map-card .row.p,.map-card .row.s{color:var(--muted)}
.map-card .row.s{margin-top:5px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
/* TV layout, Nov 5: the Coverage Desk column is sized so the player is a true 16:9 frame
   (no pillarbox bars). coverage.js measures the player's height and sets --video-w; the
   space it frees goes to the map, which gets the chamber picker as a sidebar when wide. */
@media(min-width:760px){
  .tv-mode main{--tv-half:calc(50% - 1.5 * var(--tv-gap));--tv-video:min(var(--video-w,100vw),var(--tv-half));
    grid-template-columns:minmax(0,1fr) max(0px,calc(var(--tv-half) - var(--tv-video))) var(--tv-video)}
  .tv-mode .hero{grid-column:1/3}
  .tv-mode .coverage{grid-column:3}
  .tv-mode .explore{grid-column:1}
  .tv-mode .local-home{grid-column:2/4}
  .tv-mode .player-slot>.video-player{background:#000}
  .tv-mode .coverage .section-head>p{max-width:none}
  /* Wide hero: chamber picker + feed status become a sidebar beside a bigger map */
  .tv-mode.tv-split .hero{display:grid;grid-template-columns:clamp(190px,14.5vw,330px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:var(--tv-gap) var(--tv-gap)}
  .tv-mode.tv-split .intro{grid-column:1;grid-row:1;align-self:end}
  .tv-mode.tv-split .intro h1{margin:0}
  .tv-mode.tv-split .chamber{display:contents}
  .tv-mode.tv-split .console{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;scrollbar-width:thin}
  .tv-mode.tv-split .mapbox{grid-column:2;grid-row:1/3}
  .tv-mode.tv-split .modes{grid-template-columns:1fr;gap:5px}
  .tv-mode.tv-split .mode{min-height:0;padding:clamp(5px,.9vh,12px) 10px}
  .tv-mode.tv-split .brief{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:6px;margin-top:auto}
  .tv-mode.tv-split #update-meter{flex:none;width:100%;margin:0}
  .tv-mode.tv-split .cheer-prefs{margin:0}
}
@media(min-width:760px){
  .tv-mode .coverage .section-head{flex-wrap:nowrap}
  .tv-mode .coverage .section-head h2{white-space:nowrap}
  .tv-mode .coverage .section-head>p{min-width:0;flex:1 1 auto;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
}
/* Player bar follows the player's own width, which now tracks the 16:9 frame */
.video-player{container:tvplayer/inline-size}
/* Corner mini player: never wider than the bar can hold; channel menu doubles as the title */
@container tvplayer (max-width:560px){
  .player-bar .player-heading{display:none}
  .player-bar>div{flex:1;min-width:0;justify-content:flex-end}
  .player-bar .channel-pick{flex:1 1 auto;min-width:0;margin-right:0}
  .player-bar .channel-pick select{width:100%;max-width:none;min-width:0}
}
@container tvplayer (max-width:820px){.channel-pick>span{display:none}.channel-pick select{max-width:clamp(110px,28cqw,220px)}}
@container tvplayer (max-width:620px){#stream-status:is([data-playback=playing],[data-playback=loading]),#stream-kind{display:none}}
/* First-visit layout picker (coverage.js) */
.layout-picker{max-width:min(760px,calc(100vw - 32px));width:100%;padding:28px;border:1px solid color-mix(in srgb,var(--acid) 55%,var(--bg));border-radius:8px;background:color-mix(in srgb,var(--tint) 6%,var(--bg));color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.55)}
.layout-picker::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(3px)}
.layout-picker-kicker{margin:0;font:11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--acid)}
.layout-picker h2{margin:4px 0 18px;font:clamp(30px,4vw,44px)/1.05 var(--serif);letter-spacing:-.03em}
.layout-picker-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.layout-picker-choices button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:18px;min-height:0;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--tint) 3%,var(--bg));color:var(--ink);cursor:pointer;font:inherit}
.layout-picker-choices button:hover,.layout-picker-choices button:focus-visible{border-color:var(--acid);background:color-mix(in srgb,var(--acid) 10%,var(--bg));outline:none}
.layout-picker-choices b{font-size:22px;letter-spacing:-.02em}
.layout-picker-choices span:not(.layout-picker-icon){color:var(--muted);font-size:14px;line-height:1.4}
.layout-picker-icon{font-size:30px;line-height:1}
.layout-picker-note{margin:16px 0 0;color:var(--muted);font-size:12px}
@media(max-width:640px){.layout-picker-choices{grid-template-columns:1fr}}
/* Big video (Nov 5): Big screen with the Coverage Desk player at ~2/3 of the width.
   coverage.js sets --video-w / --video-h / --video-rows on main. Player top-left, My races
   (moved into main by coverage.js) or the live totals under it, map + finder + Local races in a rail. */
@media(min-width:760px){
  body.tv-mode.tv-video{--watch-height:0px}
  .tv-video main{grid-template-columns:var(--video-w,66%) minmax(0,1fr);grid-template-rows:var(--video-rows,50fr 25fr 8fr 17fr)}
  .tv-video .coverage{grid-column:1;grid-row:1/5;overflow:auto}
  .tv-video.has-watch .coverage{grid-row:1/4;overflow:hidden}
  .tv-video .coverage>.section-head{display:none}
  .tv-video .player-slot{height:var(--video-h,auto);position:relative}
  .tv-video .hero{grid-column:2;grid-row:1}
  .tv-video .explore{grid-column:2;grid-row:2}
  .tv-video .local-home{grid-column:2;grid-row:3/5}
  .tv-video.tv-video-low .coverage,.tv-video.tv-video-low.has-watch .coverage{grid-row:1/3}
  .tv-video.tv-video-low:not(.has-watch) .coverage{grid-row:1/5}
  .tv-video.tv-video-low .explore{grid-row:2/4}
  .tv-video.tv-video-low .local-home{grid-row:4}
  .tv-video.tv-video-low main>.watch{grid-row:3/5}
  /* My races under the player: a tighter card so the strip costs the video as little height as possible */
  .tv-video main>.watch .watch-card-top{padding-top:2px}
  .tv-video main>.watch .watch-open{gap:2px;padding-bottom:5px}
  .tv-video main>.watch .watch-name{font-size:clamp(16px,2vh,26px)}
  .tv-video main>.watch .watch-duel{font-size:clamp(13px,1.55vh,22px)}
  .tv-video main>.watch .watch-lean{font-size:clamp(10px,1.15vh,15px)}
  .tv-video main>.watch{grid-column:1;grid-row:4;width:auto;height:auto;min-height:0;margin:0;padding-top:0}
  .tv-video .intro{display:none}
  .tv-video .console{padding:4px}
  .tv-video .brief{display:none}
  .tv-video .explore .section-head>div:first-child,.tv-video .explore .more-races{display:none}
  .tv-video .explore .filters{width:100%;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:6px}
  .tv-video .explore .filters label{font-size:0;min-width:0}
  .tv-video .explore .filters input,.tv-video .explore .filters select{width:100%;min-height:32px}
  .tv-video .explorer{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}
  .tv-video .racebar{gap:6px}
  /* Rail race finder: one scroll area per box instead of the whole section scrolling */
  .tv-video .explore{display:flex;flex-direction:column;overflow:hidden}
  .tv-video .explore .section-head{flex:none}
  .tv-video .explorer{flex:1;min-height:0}
  .tv-video .raceboard{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .tv-video .racebar{display:none}
  .tv-video #race-list{flex:1;min-height:0;max-height:none}
  .tv-video .detail{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .tv-video .detail h3{font-size:clamp(20px,2.4vh,32px)}
  .tv-video .race small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tv-video .race>span:first-child{min-width:0}
  .tv-video .racebar>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .tv-video #refresh{display:none}
  .tv-video .local-home .section-head h2{white-space:nowrap}
  .tv-video .explore .section-head{margin-bottom:4px}
  .tv-video .mode{min-height:0;padding:3px 8px}
  .tv-video .mode strong{font-size:clamp(15px,1.7vh,24px)}
  .tv-video .mode small{display:none}
  .tv-video .maphead h2{font-size:clamp(20px,2.4vh,34px)}
  .tv-video .maphead .tools button{min-width:26px;min-height:26px;padding:2px 5px}
  .tv-video #atlas{margin-top:clamp(18px,2.4vh,36px)}
  .tv-video .mapfoot .legend{font-size:clamp(11px,1.25vh,16px)}
}
/* View menu (Nov 5): Explore / Big screen / Big video + Full screen behind one masthead button */
.view-picker{position:relative}
.mast-actions .view-toggle{display:flex;align-items:center;gap:7px;white-space:nowrap;background:color-mix(in srgb,var(--tint) 7%,var(--bg));border:1px solid color-mix(in srgb,var(--tint) 24%,var(--bg));border-radius:3px;padding:6px 10px;color:var(--ink);cursor:pointer}
.mast-actions .view-toggle:hover,.mast-actions .view-toggle[aria-expanded=true]{border-color:var(--acid)}
.view-kicker{font:600 .78em/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.view-toggle b{font-weight:600;color:var(--acid)}
.view-caret{font-size:.8em;color:var(--muted)}
.view-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:310px;padding:6px;background:var(--panel);border:1px solid color-mix(in srgb,var(--tint) 30%,var(--bg));border-radius:6px;box-shadow:0 18px 50px color-mix(in srgb,var(--shadow) 55%,transparent);text-align:left}
.view-menu[hidden]{display:none}
.view-menu p{margin:6px 8px 5px;font:700 10.5px/1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.view-menu .view-window{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.view-window:has(+ #fill-screen[hidden]){display:none}
.mast-actions .view-menu .view-option{display:flex;align-items:center;gap:12px;width:100%;min-height:0;margin:0;padding:8px;border:1px solid transparent;border-radius:4px;background:none;box-shadow:none;transform:none;color:var(--ink);font:inherit;font-size:13px;text-align:left;white-space:normal;cursor:pointer}
.mast-actions .view-menu .view-option[hidden]{display:none}
.mast-actions .view-menu .view-option:hover,.mast-actions .view-menu .view-option:focus-visible{background:color-mix(in srgb,var(--tint) 10%,var(--panel));outline:none;border-color:color-mix(in srgb,var(--tint) 30%,var(--bg))}
.mast-actions .view-menu .view-option[aria-pressed=true]{border-color:var(--acid);background:color-mix(in srgb,var(--acid) 8%,var(--panel))}
.view-option strong{display:block;font-size:14px;font-weight:600}
.view-option[aria-pressed=true] strong{color:var(--acid)}
.view-option small{display:block;margin-top:2px;font-size:11.5px;color:var(--muted);line-height:1.3}
.view-icon{flex:none;width:40px;height:28px;fill:color-mix(in srgb,var(--ink) 38%,transparent)}
.view-icon .vi-frame{fill:none;stroke:color-mix(in srgb,var(--ink) 45%,transparent);stroke-width:1.2}
.view-icon .vi-vid{fill:var(--acid)}
.view-icon .vi-line{fill:none;stroke:var(--acid);stroke-width:2;stroke-linecap:round}
.view-option[aria-pressed=true] .vi-frame{stroke:var(--acid)}
.tv-mode .mast-actions .view-toggle{font-size:var(--tv-small,12px);min-height:38px}
.tv-mode .view-option strong{font-size:var(--tv-small,14px)}
@media(min-width:760px) and (max-width:1100px){.view-kicker{display:none}}
[data-theme] .mast-actions .view-menu .view-option,[data-theme] .mast-actions .view-menu .view-option:hover{transform:none!important;rotate:none}
/* Big video: scroll areas fade at the bottom so a half-visible card reads as "more below", not cut off */
@media(min-width:760px){.tv-video :is(.local-home,#race-list){-webkit-mask-image:linear-gradient(#000 calc(100% - 26px),transparent);mask-image:linear-gradient(#000 calc(100% - 26px),transparent);padding-bottom:20px}}
/* Map shape picker, the note under the map and the "What am I looking at?" panel */
.layout-pick{display:inline-flex;margin-top:9px;border:1px solid color-mix(in srgb,color-mix(in srgb,var(--tint) 80%,var(--dem)) 26%,var(--bg));border-radius:4px;overflow:hidden;background:color-mix(in srgb,var(--bg) 70%,transparent);pointer-events:auto}
.layout-pick button{background:transparent;border:0;border-right:1px solid color-mix(in srgb,var(--line) 80%,transparent);padding:5px 11px;font:600 11.5px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-height:30px}
.layout-pick button:last-child{border-right:0}
.layout-pick button:hover:not(:disabled){color:var(--ink);background:color-mix(in srgb,var(--acid) 8%,transparent)}
.layout-pick button[aria-pressed=true]{color:var(--bg);background:var(--acid)}
.layout-pick button:disabled{opacity:.38;cursor:not-allowed}
.mapfoot{flex-wrap:wrap}
.layout-note{flex:1 1 100%;order:-1;margin:0;font-size:12px;line-height:1.45;color:var(--muted);max-width:110ch}
.layout-note b{color:var(--ink);font-weight:600;margin-right:2px}
.layout-more{background:none;border:0;padding:0 0 0 4px;font:inherit;color:var(--acid);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:0}
.legend .holdkey:before{background:transparent!important;border:1.5px solid var(--muted);border-radius:50%!important}
.legend .holdkey[hidden]{display:none}
.chamber-view #atlas{cursor:default}
.chamber-view .seat-state{cursor:pointer}
.chamber-view .seat-state:hover circle{filter:brightness(1.25)}
.layout-guide{display:block;max-height:calc(100% - 120px);overflow:auto;width:min(520px,calc(100% - 40px));padding:12px 14px 14px;font-size:12.5px;line-height:1.5}
.layout-guide .lg-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.layout-guide .lg-line{margin:8px 0 10px;color:var(--ink);font-size:13px}
.lg-terms{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 10px}
.lg-terms dt{font:600 10.5px/1.9 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--acid)}
.lg-terms dd{margin:0;color:var(--muted)}
.lg-fact{margin:0 0 10px;padding:8px 10px;border-left:2px solid var(--acid);background:color-mix(in srgb,var(--acid) 6%,transparent);color:var(--ink)}
.lg-check{display:grid;gap:8px}
.lg-check>.micro{color:var(--acid)}
.lg-state{border:1px solid var(--line);border-radius:4px;padding:8px 10px;display:grid;gap:4px}
.lg-state.is-active{border-color:color-mix(in srgb,var(--acid) 60%,var(--line))}
.lg-state strong{font-family:var(--serif);font-weight:400;font-size:15px}
.lg-row{display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:8px;font-size:11.5px}
.lg-row span{color:var(--muted);font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.lg-row i{display:block;height:7px;border-radius:2px;width:var(--w);background:var(--muted);min-width:2px}
.lg-row.lg-people i{background:var(--ink)}
.lg-row.lg-here i{background:var(--acid)}
.lg-row.lg-senate i,.lg-row.lg-house i{background:color-mix(in srgb,var(--other) 75%,var(--ink))}
.lg-row em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.lg-weight{margin:2px 0 0;color:var(--muted);font-size:11.5px}
.lg-foot{margin:8px 0 0;color:var(--muted);font-size:11px}
@media (max-width:620px){.layout-pick button{padding:5px 8px;font-size:10.5px}.layout-guide{top:auto;bottom:10px;left:10px;right:10px;width:auto;max-height:70%}}
.tv-mode .layout-pick{margin-top:5px}
.foot-links{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.foot-links .micro{font-size:10.5px;letter-spacing:.1em}@media(max-width:740px){.foot-links{align-items:flex-start;text-align:left}}
/* Big video swap (Nov 6): My races in the recap bar, Closest uncalled under the player (coverage.js placeStrips) */
@media(min-width:760px){
  .tv-video-swap .recap{grid-template-columns:auto minmax(0,1fr) auto}
  .tv-video-swap .recap>.watch{grid-column:2;grid-row:1;align-self:stretch;width:auto;height:auto;min-height:0;margin:0;padding:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:stretch;overflow:hidden}
  .tv-video-swap .recap>.watch .watch-head{width:auto;max-width:9em;justify-content:center;gap:2px}
  .tv-video-swap .recap>.watch .watch-heading{gap:0}
  .tv-video-swap .recap>.watch .watch-heading h2{font-size:clamp(18px,2.1vh,28px)}
  .tv-video-swap .recap>.watch .watch-count{font-size:var(--tv-small,11px)}
  .tv-video-swap .recap>.watch .watch-tools{display:none}
  .tv-video-swap .recap>.watch .watch-list{gap:6px;align-items:stretch;padding-bottom:0}
  .tv-video-swap .recap>.watch .watch-card{flex:0 0 clamp(220px,15.5vw,340px);border-radius:4px}
  .tv-video-swap .recap>.watch .watch-card-top,.tv-video-swap .recap>.watch .watch-lean{display:none}
  .tv-video-swap .recap>.watch .watch-open{padding:5px 10px;gap:2px;justify-content:center;height:100%}
  .tv-video-swap .recap>.watch .watch-name{font-size:clamp(14px,1.75vh,22px)}
  .tv-video-swap .recap>.watch .watch-duel{font-size:clamp(12px,1.45vh,19px)}
  .tv-video-swap .recap>.watch .watch-finder,.tv-video-swap .recap>.watch .watch-import{top:calc(100% + 8px)}
  /* Closest uncalled as the strip under the player */
  .tv-video main>.recap-watch{grid-column:1;grid-row:4;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--tv-gap);align-items:stretch}
  .tv-video.tv-video-low main>.recap-watch{grid-row:3/5}
  .tv-video main>.recap-watch>.micro{align-self:center;width:clamp(80px,8vw,170px);font:700 var(--tv-small,12px)/1.3 var(--mono);letter-spacing:.12em;color:var(--acid)}
  .tv-video main>.recap-watch #recap-watch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tv-gap);align-items:stretch;min-height:0}
  .tv-video main>.recap-watch .recap-race{display:grid;align-content:center;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:10px 16px;min-height:0;height:100%}
  .tv-video main>.recap-watch .recap-race strong{font-size:clamp(15px,min(3vh,1.9vw),44px);overflow:hidden;text-overflow:ellipsis}
  .tv-video main>.recap-watch .recap-race b{font-size:clamp(15px,min(3vh,1.9vw),44px)}
  .tv-video main>.recap-watch #recap-watch:not(.paged) .recap-race:nth-child(-n+3){display:grid}
  .tv-video main>.recap-watch .recap-race{padding-inline:clamp(8px,1vw,16px)}
  .tv-video main>.recap-watch .recap-race .chip-tug{grid-column:1/-1;height:clamp(5px,.7vh,9px)}
}
