/* Precinct · Election Day layer. Flat, 1px rules, no gradients/glow/shadows. Energy from type, color and motion. */
.lc{width:1em;height:1em;flex:none;vertical-align:-.125em}
.pD{color:var(--Dt)}.pR{color:var(--Rt)}.pI{color:var(--It)}.mut{color:var(--mute)}
@keyframes edpulse{0%{transform:scale(1);opacity:1}50%{transform:scale(.6);opacity:.35}100%{transform:scale(1);opacity:1}}
@keyframes edring{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.6);opacity:0}}
.ed-dot{position:relative;display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff3b30;flex:none}
.ed-dot::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid #ff3b30;animation:edring 1.6s var(--ease) infinite}
/* ticker */
.edtk{display:flex;align-items:stretch;height:34px;border-bottom:1px solid var(--line2);background:#0b0b0b;overflow:hidden;font-size:13px;letter-spacing:.005em}
.tk-live{display:flex;align-items:center;gap:7px;padding:0 12px 0 14px;background:#ff3b30;color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:11px;flex:none}
.tk-live .ed-dot{background:#fff}.tk-live .ed-dot::after{border-color:#fff}
.tk-vp{flex:1;overflow:hidden;position:relative;display:flex;align-items:center}
.tk-track{display:flex;width:max-content;animation:edmarq 60s linear infinite;will-change:transform}
.edtk:hover .tk-track,.edtk:focus-within .tk-track{animation-play-state:paused}
@keyframes edmarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tk-run{display:flex;align-items:center;flex:none}
.tk-i{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:var(--ink2);padding:0 4px}
.tk-i .lc{color:var(--acc);width:14px;height:14px}
.tk-i b{color:var(--ink);font-weight:700}
.tk-i .mut{font-size:12px}
.tk-sep{display:inline-block;width:4px;height:4px;background:var(--line2);margin:0 16px;flex:none}
@media (prefers-reduced-motion:reduce){.tk-track{animation:none}.tk-vp{overflow-x:auto;scrollbar-width:none}.tk-run[aria-hidden]{display:none}.ed-dot::after{animation:none}}
/* layout */
.ed{margin:0 0 8px}
.ed-sec{margin:44px 0 0}
.ed-sec.rv{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.ed-sec.rv.in{opacity:1;transform:none}
.ed-sh{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line2);padding-bottom:10px;margin-bottom:16px}
.ed-sh h2{display:flex;align-items:center;gap:10px;margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.ed-sh h2 .lc{color:var(--acc);width:22px;height:22px}
.ed-sh-r{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--mute)}
.ed-stamp{font-family:var(--mono);font-size:11px;color:var(--mute);border:1px solid var(--line2);border-radius:4px;padding:2px 6px}
.ed-note{font-size:12px;color:var(--mute);margin:12px 0 0;max-width:780px;line-height:1.5}
.ed-more{margin:52px 0 0;border-top:1px solid var(--line2);padding-top:14px}
.ed-more-h{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);margin:0}
/* hero */
.ed-hero{padding:26px 0 0}
.ed-kick{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink2)}
.ed-live{display:inline-flex;align-items:center;gap:7px;color:#ff3b30;border:1px solid #ff3b30;border-radius:999px;padding:3px 10px 3px 9px}
.ed-h1{font-size:clamp(40px,10.5vw,96px);line-height:.92;letter-spacing:-.045em;font-weight:900;margin:16px 0 0;color:var(--ink)}
.ed-h1 em{font-style:normal;color:var(--acc)}
.ed-cd{margin:28px 0 0;border:1px solid var(--line2);border-radius:var(--r);padding:18px 18px 16px;background:var(--panel)}
.ed-cd-l{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--acc)}
.ed-cd-big{display:flex;align-items:flex-start;gap:4px;margin:10px 0 6px;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);line-height:1}
.ed-cd-big .u{display:flex;flex-direction:column;align-items:center}
.ed-cd-big b{font-size:clamp(54px,17vw,128px);font-weight:700;letter-spacing:-.04em;display:inline-block}
/* odometer digits: fixed one-cell window, strip slides with transform only */
.od{display:inline-flex;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.od-d{display:inline-block;height:1em;line-height:1;overflow:hidden;vertical-align:top}
.od-s{display:block;will-change:transform}
.od-s>span{display:block;height:1em;line-height:1;text-align:center}
.ed-cd-big .od-d{height:1.04em}.ed-cd-big .od-s>span{height:1.04em;line-height:1.04}
.ed-cd-big small{font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--mute);margin-top:6px}
.ed-cd-big .c{font-size:clamp(40px,12vw,96px);color:var(--line2);font-weight:300;margin-top:.04em}
.ed-cd-big.done{font-size:clamp(48px,14vw,104px);font-weight:800;color:var(--acc)}
.ed-cd-s{font-size:15px;color:var(--ink2);line-height:1.45}.ed-cd-s b{color:var(--ink)}
.ed-cd-x{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--ink2)}
.ed-cd-x .lc{color:#ff3b30}.ed-cd-x b{color:var(--ink);font-size:18px}
.ed-prog{margin:14px 0 0}
.ed-prog-h{display:flex;justify-content:space-between;font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.ed-chips{display:grid;grid-template-columns:repeat(17,minmax(0,1fr));gap:3px}
.ed-chips i{font-style:normal;font-family:var(--mono);font-size:9px;text-align:center;padding:4px 0;border:1px solid var(--line2);border-radius:3px;color:var(--mute);transition:background .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease)}
.ed-chips i.on{background:var(--acc);border-color:var(--acc);color:#111;font-weight:700}
.ed-tl{display:flex;gap:0;margin:16px 0 0;overflow-x:auto;scrollbar-width:none;border:1px solid var(--line2);border-radius:var(--r)}
.ed-tl::-webkit-scrollbar{display:none}
.ed-tl-i{flex:1 0 auto;min-width:86px;padding:10px 10px 12px;border-right:1px solid var(--line2)}
.ed-tl-i:last-child{border-right:0}
.ed-tl-t{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--ink);display:flex;flex-direction:column;gap:2px}
.ed-tl-t small{font-family:var(--sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
.ed-tl-s{display:flex;flex-wrap:wrap;gap:3px;margin-top:8px;max-width:150px}
.ed-tl-s a{font-family:var(--mono);font-size:10px;padding:2px 4px;border:1px solid var(--line2);border-radius:3px;color:var(--ink2);text-decoration:none}
.ed-tl-i.next{background:var(--acc)}
.ed-tl-i.next .ed-tl-t,.ed-tl-i.next .ed-tl-t small{color:#111}
.ed-tl-i.next .ed-tl-s a{border-color:#111;color:#111}
.ed-tl-i.done .ed-tl-t{color:var(--mute);text-decoration:line-through;text-decoration-thickness:1px}
.ed-tl-i.done .ed-tl-s a{color:var(--mute)}
.ed-src{font-size:11px;color:var(--mute);margin:8px 0 0;line-height:1.5}
/* control */
.ed-ctls{display:grid;grid-template-columns:1fr;gap:12px}
.ed-ctl{display:block;border:1px solid var(--line2);border-radius:var(--r);padding:16px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.ed-ctl:hover{border-color:var(--ink2);transform:translateY(-2px)}
.ed-ctl-h{display:flex;justify-content:space-between;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.ed-ctl-h .mut{font-weight:600;letter-spacing:.04em;text-transform:none}
.ed-ctl-n{display:flex;align-items:baseline;justify-content:space-between;margin:10px 0 10px;font-variant-numeric:tabular-nums}
.ed-ctl-n .pD,.ed-ctl-n .pR{font-size:52px;font-weight:900;letter-spacing:-.04em;line-height:1}
.ed-ctl-m{font-size:13px;color:var(--ink2);font-weight:600}
.ed-bar{position:relative;display:flex;height:14px;border-radius:3px;overflow:hidden;background:var(--panel3)}
.ed-bar i{display:block;height:100%;transition:width 1s var(--ease)}
.ed-bar .bD{background:var(--D)}.ed-bar .bR{background:var(--R);margin-left:auto}.ed-bar .bT{background:var(--tu)}
.ed-bar .bT+.bR{margin-left:0}
.ed-bar .mj{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink)}
.ed-ctl-f{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:var(--mute)}
.ed-ctl-f span:last-child{display:inline-flex;align-items:center;gap:4px;color:var(--ink2)}
/* race cards */
.ed-rcs{display:grid;grid-template-columns:1fr;gap:12px}
.ed-rc{display:flex;flex-direction:column;border:1px solid var(--line2);border-radius:var(--r);padding:14px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.ed-rc:hover{border-color:var(--ink2);transform:translateY(-2px)}
.ed-rc.ed-lv{border-color:#ff3b30}
.ed-rc-h{display:flex;align-items:center;gap:10px}
.ed-rc-st{font-family:var(--mono);font-size:12px;font-weight:700;border:1px solid var(--ink2);border-radius:4px;padding:2px 5px;color:var(--ink)}
.ed-rc-t{flex:1;font-weight:800;font-size:16px;letter-spacing:-.01em}
.ed-rt{font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap;border:1px solid}
.ed-rt.ed-d{color:var(--Dt);border-color:var(--Dt)}.ed-rt.ed-r{color:var(--Rt);border-color:var(--Rt)}.ed-rt.ed-t{color:#111;background:var(--tu);border-color:var(--tu)}
.ed-call{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px;color:#fff;background:var(--O)}
.ed-call.pD{background:var(--D);color:#fff}.ed-call.pR{background:var(--R);color:#fff}
.ed-cnt{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#ff3b30;text-transform:uppercase;letter-spacing:.06em}
.ed-rows{display:flex;flex-direction:column;gap:9px;margin:14px 0 0}
.ed-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:baseline}
.ed-row .nm{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-row .pt{font-style:normal;font-size:10px;font-weight:800;padding:1px 4px;border-radius:3px;color:#fff;background:var(--O);vertical-align:1px}
.ed-row .pt.pD{background:var(--D);color:#fff}.ed-row .pt.pR{background:var(--R);color:#fff}.ed-row .pt.pI{background:var(--I);color:#111}
.ed-row .v{font-family:var(--mono);font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}
.ed-row .bar{grid-column:1/-1;height:6px;background:var(--panel3);border-radius:2px;overflow:hidden}
.ed-row .bar i{display:block;height:100%}
.ed-row .bar .bD{background:var(--D)}.ed-row .bar .bR{background:var(--R)}.ed-row .bar .bO,.ed-row .bar .bI{background:var(--I)}
.ed-mg{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:12px 0 0;font-size:12px}
.ed-mg>span:first-child{font-size:20px;font-weight:900;letter-spacing:-.02em}
.ed-rc-f{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.ed-mg+.ed-rc-f,.ed-rows+.ed-rc-f{margin-top:12px}
.ed-rc-f span{display:inline-flex;align-items:center;gap:5px}.ed-rc-f .lc{color:var(--mute)}
/* watch */
.ed-ws{display:flex;flex-direction:column;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden}
.ed-w{display:grid;grid-template-columns:74px 1fr;border-top:1px solid var(--line2)}
.ed-w:first-child{border-top:0}
.ed-w-t{padding:14px 10px;border-right:1px solid var(--line2);font-family:var(--mono);display:flex;flex-direction:column;gap:2px}
.ed-w-t b{font-size:16px;color:var(--ink)}
.ed-w-t small{font-family:var(--sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
.ed-w.next .ed-w-t{background:var(--acc)}.ed-w.next .ed-w-t b,.ed-w.next .ed-w-t small{color:#111}
.ed-w.done{opacity:.6}
.ed-w-b{padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.ed-w-st{font-size:12px;color:var(--ink2);line-height:1.4}
.ed-w-r{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--ink);text-decoration:none;padding:4px 0;border-bottom:1px solid var(--line)}
.ed-w-r:hover b{text-decoration:underline}
.ed-w-r span{font-family:var(--mono);font-weight:700;font-size:13px;white-space:nowrap}
.ed-w-hs{font-size:12px;line-height:1.7}
.ed-w-hs a{font-family:var(--mono);font-size:11px;padding:1px 4px;border:1px solid var(--line2);border-radius:3px;color:var(--ink2);text-decoration:none;margin-right:2px;white-space:nowrap}
/* early */
.ed-ev-big{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.ed-ev-big .n{font-size:clamp(44px,12vw,80px);font-weight:900;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums;color:var(--acc)}
.ed-ev-big .l{font-size:14px;color:var(--ink2);line-height:1.4}
.ed-ev{display:flex;flex-direction:column;gap:2px}
.ed-ev-r{display:grid;grid-template-columns:110px 1fr 54px 44px;gap:10px;align-items:center;padding:5px 0;color:var(--ink);text-decoration:none;font-size:13px;border-bottom:1px solid var(--line)}
.ed-ev-r .bar{height:8px;background:var(--panel3);border-radius:2px;overflow:hidden}
.ed-ev-r .bar i{display:block;height:100%;background:#8fbcb1}
.ed-ev-r .n{font-family:var(--mono);font-weight:700;text-align:right}
.ed-ev-r .p{font-family:var(--mono);font-size:12px;color:var(--mute);text-align:right}
@media (min-width:720px){
  .ed-ctls{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ed-rcs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed-chips{grid-template-columns:repeat(26,minmax(0,1fr))}
  .ed-cd{padding:24px 28px 22px}
  .ed-w{grid-template-columns:110px 1fr}.ed-w-t{padding:16px}
  .ed-w-b{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.ed-w-st,.ed-w-hs{grid-column:1/-1}
  .ed-ev{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}
}
@media (min-width:1100px){.ed-rcs{grid-template-columns:repeat(3,minmax(0,1fr))}.ed-chips{grid-template-columns:repeat(51,minmax(0,1fr))}.ed-chips i{font-size:8px}}
@media (prefers-reduced-motion:reduce){.od-s{transition:none!important}.ed-sec.rv{opacity:1;transform:none}.ed-ctl,.ed-rc{transition:none}}
@keyframes edgrow{from{transform:scaleX(0)}}
.ed-row .bar i,.ed-bar i,.ed-ev-r .bar i{transform-origin:left center;animation:edgrow 1.1s var(--ease) both}
.ed-bar .bR{transform-origin:right center}
@media (prefers-reduced-motion:reduce){.ed-row .bar i,.ed-bar i,.ed-ev-r .bar i{animation:none}}
.ed-rc.ed-hide{display:none}
.ed-btn{display:block;width:100%;margin:12px 0 0;padding:13px;border:1px solid var(--line2);border-radius:var(--r);background:transparent;color:var(--ink);font:700 14px var(--sans);cursor:pointer}
.ed-btn:hover{border-color:var(--ink2)}

/* ---------- pass 2 (Nov 3, 12:30 PM): closest races strip, seat squares, rating counts, stat chips, accent colons ---------- */
.ed-cd-big .c{color:var(--acc)}
.ed-chipsx{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.ed-chipsx span{border:1px solid var(--line2);border-radius:999px;padding:5px 11px;font-size:12.5px;color:var(--ink2);white-space:nowrap}
.ed-chipsx b{color:var(--ink);font-variant-numeric:tabular-nums;margin-right:2px}
.ed-cl-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none}
.ed-cl-row::-webkit-scrollbar{display:none}
.ed-cl{flex:0 0 72%;max-width:260px;scroll-snap-align:start;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line2);border-radius:var(--r);padding:14px 14px 12px;color:var(--ink);text-decoration:none;background:var(--panel);transition:border-color .2s var(--ease),transform .2s var(--ease)}
.ed-cl:hover{transform:translateY(-2px)}
.ed-cl.tD{background:#15202f;border-color:#2b4a78}.ed-cl.tD:hover{border-color:var(--Dt)}
.ed-cl.tR{background:#2a1918;border-color:#6e2e29}.ed-cl.tR:hover{border-color:var(--Rt)}
.ed-cl-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ed-cl-st{font-weight:800;font-size:16px;letter-spacing:-.01em}
.ed-cl-m{font-size:44px;font-weight:900;letter-spacing:-.04em;line-height:1;margin-top:8px;font-variant-numeric:tabular-nums}
.ed-cl-m.pO{color:var(--It)}
.ed-cl-k{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);font-weight:700}
.ed-cl-v{font-size:14px;color:var(--ink2);margin-top:6px}.ed-cl-v b{font-size:18px;font-variant-numeric:tabular-nums}
.ed-cl-n{font-size:12.5px;color:var(--mute);border-top:1px solid var(--line2);padding-top:8px;margin-top:4px}
.ed-cl-c{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--acc)}
.ed-cl-c .lc{width:14px;height:14px}
.ed-dots{display:grid;grid-template-columns:repeat(25,1fr);gap:2px;margin:12px 0 2px}
.ed-dots.big{grid-template-columns:repeat(25,1fr)}
.ed-dots i{display:block;aspect-ratio:1;border-radius:2px}
.ed-dots i.mj{outline:1px solid var(--ink);outline-offset:1px}
.ed-rs{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:10px;font-size:11.5px;color:var(--ink2)}
.ed-rs span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.ed-rs i{width:9px;height:9px;border-radius:2px;display:inline-block}
.ed-rs b{color:var(--ink);font-variant-numeric:tabular-nums}
@media (min-width:760px){.ed-cl{flex-basis:calc(33.3% - 7px)}}
@media (min-width:1100px){.ed-cl-row{margin:0;padding:2px 0 6px;display:grid;grid-template-columns:repeat(4,1fr);overflow:visible}.ed-cl{max-width:none}.ed-cl:nth-child(n+5){display:none}}
@media (prefers-reduced-motion:reduce){.ed-cl{transition:none}}

/* Endorsements on candidate pages (data/endorsements.json) */
.endo{margin-top:28px;border-top:1px solid var(--line);padding-top:18px}
.endo-hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.endo-hd h2{display:flex;align-items:center;gap:8px;margin:0}
.endo-hd h2 .lc{color:var(--acc)}
.endo-st{font-size:12px;color:var(--mute);letter-spacing:.02em}
.endo-sum{display:flex;align-items:center;gap:14px;margin:14px 0 6px;flex-wrap:wrap}
.endo-n{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em}
.endo-tl{display:flex;flex-wrap:wrap;gap:6px}
.endo-ty{font-size:12px;border:1px solid var(--line2);border-radius:999px;padding:3px 9px;color:var(--ink2);white-space:nowrap}
.endo-ty b{color:var(--ink);font-weight:700}
ul.endl{list-style:none;padding:0;margin:10px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr}
ul.endl li{padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.45;min-width:0}
ul.endl li.endo-x{display:none}
.endo.endo-all ul.endl li.endo-x{display:block}
.endo-r{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.endo-who{font-weight:700}
.endo-t{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);border:1px solid var(--line);border-radius:4px;padding:1px 6px}
.endo-d{color:var(--ink2);font-size:13px;margin-top:2px;overflow-wrap:anywhere}
ul.endl .src{font-size:12px;color:var(--mute);display:inline-block;margin-top:3px}
.endo-more{margin-top:12px;background:none;border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:9px 14px;font:inherit;font-size:14px;cursor:pointer}
.endo-more:hover{border-color:var(--ink2)}
.endo-note{margin-top:12px}
@media (min-width:900px){ul.endl{grid-template-columns:1fr 1fr;column-gap:32px}}
.endo-nb{display:flex;flex-direction:column;gap:2px;margin-right:4px}.endo-nl{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}

/* ---- main live results map (Nov 3, 1:45 PM ET). Flat fills, 1px rules, no gradients/glow. ---- */
.em{padding:22px 0 0}
.em-top{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;flex-wrap:wrap}
.em-kick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2)}
.em-as{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--ink2);border:1px solid var(--line2);border-radius:4px;padding:3px 7px}
.em-as .lc{width:12px;height:12px;color:var(--mute)}
.em-as.stale{color:var(--acc);border-color:var(--acc)}.em-as.stale .lc{color:var(--acc)}
.em-h{display:flex;align-items:center;gap:10px;margin:12px 0 12px;font-size:clamp(30px,8vw,54px);font-weight:800;letter-spacing:-.03em;line-height:1}
.em-h .lc{color:var(--acc);width:.7em;height:.7em}
.em-seg{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden;margin:0 0 12px}
.em-seg button{appearance:none;background:transparent;color:var(--ink2);border:0;border-left:1px solid var(--line2);font:inherit;font-size:14px;font-weight:700;padding:9px 16px;cursor:pointer;min-height:40px}
.em-seg button:first-child{border-left:0}
.em-seg button.on{background:var(--ink);color:#111}
.em-seg button:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.em-sum{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink2);margin:0 0 10px}
.em-sum span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.em-sum b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px}
.em-sum i,.em-leg i{display:inline-block;width:11px;height:11px;border:1px solid rgba(255,255,255,.18);flex:none}
.em-body{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.em-map{min-height:200px;border:1px solid var(--line2);border-radius:var(--r);background:#161616;overflow:hidden}
.em-map .mapbox{margin:0}
.em-map svg path.st,.em-map svg path.cd{stroke:#121212;stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill .5s var(--ease)}
.em-pn{border:1px solid var(--line2);border-radius:var(--r);background:var(--panel);padding:14px;min-height:64px}
.em-pn-e{display:flex;gap:10px;align-items:flex-start;color:var(--mute);font-size:13px;line-height:1.45}
.em-pn-e .lc{color:var(--acc);margin-top:2px}
.em-pn-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 6px;font-size:18px;font-weight:800;letter-spacing:-.01em}
.em-x{appearance:none;background:transparent;border:1px solid var(--line2);color:var(--ink2);border-radius:6px;width:32px;height:32px;font-size:18px;line-height:1;cursor:pointer}
.em-race{border-top:1px solid var(--line);padding:10px 0 2px}
.em-race:first-of-type{border-top:0;padding-top:4px}
.em-rh{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:14px}
.em-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);border:1px solid var(--line2);border-radius:999px;padding:3px 9px}
.em-tag .lc{width:12px;height:12px}
.em-tag.c.pD{color:#fff;background:var(--sd);border-color:var(--sd)}.em-tag.c.pR{color:#fff;background:var(--sr);border-color:var(--sr)}
.em-tag.lv{color:var(--ink)}
.em-c{display:grid;grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"p n v" ". b b";align-items:center;column-gap:8px;row-gap:4px;padding:5px 0}
.em-cp{grid-area:p;font-size:11px;font-weight:800;text-align:center;border:1px solid currentColor;border-radius:3px;line-height:16px}
.em-cn{grid-area:n;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:5px}
.em-cn a{color:inherit}
.em-c.win .em-cn{font-weight:800}
.em-w{color:var(--acc);width:14px;height:14px}
.em-cv{grid-area:v;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;display:flex;align-items:baseline;gap:7px;justify-content:flex-end}
.em-cv b{font-size:16px;color:var(--ink)}
.em-cv small{color:var(--mute);font-size:11px}
.em-cb{grid-area:b;height:5px;background:var(--panel3);display:block}
.em-cb i{display:block;height:100%;transition:width .6s var(--ease)}
.em-rf{font-size:12px;color:var(--mute);margin:6px 0 0}.em-rf b{color:var(--ink)}
.em-go{display:inline-flex;align-items:center;gap:4px;margin:8px 0 2px;font-size:13px;font-weight:700;color:var(--acc)}
.em-go .lc{width:14px;height:14px}
.em-leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--mute);margin:10px 0 0}
.em-leg span{display:inline-flex;align-items:center;gap:6px}
/* compact preview before the first polls close */
.em-soon{display:flex;gap:14px;align-items:center;margin:14px 0 16px;border:1px solid var(--line2);border-radius:var(--r);padding:12px 14px;background:var(--panel)}
.em-thumb{width:112px;flex:none;height:auto}
.em-thumb path{stroke:#121212;stroke-width:.6}
.em-soon-k{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--acc)}
.em-soon-t{margin:4px 0 2px;font-size:15px;line-height:1.35;color:var(--ink)}
.em-soon-s{margin:0;font-size:12px;color:var(--mute);line-height:1.4}
@media (min-width:900px){.em-body{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.em-pn{position:sticky;top:120px}.em-thumb{width:150px}}
@media (prefers-reduced-motion:reduce){.em-map svg path{transition:none!important}.em-cb i{transition:none}}
/* countdown digits: Barlow Condensed Bold (SIL OFL 1.1, google/fonts), self-hosted, subset to 0-9 : and space, tnum kept.
   ascent/descent overrides make the glyph box symmetric so digits sit centred in the odometer cell. */
@font-face{font-family:"Precinct Clock";src:url(fonts/BarlowCondensed-Bold-digits.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0020,U+0030-0039,U+003A;ascent-override:85%;descent-override:15%;line-gap-override:0%}
.ed-cd-big b,.ed-cd-big .c,.ed-cd-x b{font-family:"Precinct Clock",var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.ed-cd-big b{font-size:clamp(68px,21vw,156px);letter-spacing:0}
.ed-cd-big .c{font-size:clamp(54px,16vw,120px);font-weight:700;margin-top:.02em}
.ed-cd-big .od-d{height:.9em}.ed-cd-big .od-s>span{height:.9em;line-height:.9}
.ed-cd-x b{font-size:24px;font-weight:700}

/* ---------- turnout widget (Nov 3 2026, README "Turnout widget") ---------- */
:root{--tw26:#f2c14e;--tw24:#8fbcb1;--tw22:#a99bd6;--tw20:#d9906a}
.tw{container-type:inline-size;margin:16px 0 6px;max-width:600px}
.tw-card{--g:8px;--p:12px;--w:clamp(66px,calc((100cqw - 2*var(--p) - 2px - 3*var(--g))/4),124px);
  display:block;box-sizing:border-box;width:calc(var(--w) + 2*var(--p) + 2px);overflow:hidden;
  margin:0;padding:10px var(--p) 12px;border:1px solid var(--line2);border-radius:0;background:var(--panel2);color:var(--ink);
  font:inherit;text-align:left;cursor:pointer;transition:width .34s var(--ease),border-color .2s}
.tw-card:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.tw-h{display:flex;align-items:center;gap:4px;font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin-bottom:10px;white-space:nowrap}
.tw-chev{width:13px;height:13px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .34s var(--ease)}
.tw-row{display:flex;gap:var(--g);width:calc(4*var(--w) + 3*var(--g))}
.tw-i{flex:0 0 var(--w);width:var(--w);display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.tw-i+.tw-i{opacity:0;transition:opacity .22s ease}
.tw-s{display:block;width:100%;height:calc(var(--w)*.62);margin-bottom:8px}
.tw-s path{stroke:var(--c);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.tw-s .tw-bg{fill:color-mix(in srgb,var(--c) 13%,transparent)}
.tw-s .tw-fg{fill:var(--c)}
.tw-i.na .tw-s .tw-bg{fill:none;stroke:var(--mute)}
/* liquid level: rect rises from below the shape; tile 1 rises on load, tiles 2-4 when the card opens */
.tw-lv{transform:translateY(var(--fh));transition:transform .4s cubic-bezier(.22,1,.36,1)}
.tw-i:first-child .tw-lv{transform:none;animation:tw-rise .4s cubic-bezier(.22,1,.36,1)}
.tw-card[aria-expanded="true"] .tw-lv{transform:none}
@keyframes tw-rise{from{transform:translateY(var(--fh))}to{transform:none}}
.tw-n{display:block;font:700 clamp(19px,calc(var(--w)*.27),30px)/1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}
.tw-i.na .tw-n{color:var(--mute)}
.tw-l{display:block;margin-top:5px;min-height:2.5em;font:500 11px/1.25 var(--sans);color:var(--ink2)}
.tw-card[aria-expanded="true"]{width:calc(4*var(--w) + 3*var(--g) + 2*var(--p) + 2px);border-color:var(--mute)}
.tw-card[aria-expanded="true"] .tw-i{opacity:1}
.tw-card[aria-expanded="true"] .tw-chev{transform:rotate(180deg)}
@media (hover:hover){
  .tw-card:hover{width:calc(4*var(--w) + 3*var(--g) + 2*var(--p) + 2px);border-color:var(--mute)}
  .tw-card:hover .tw-i{opacity:1}
  .tw-card:hover .tw-chev{transform:rotate(180deg)}
  .tw-card:hover .tw-lv{transform:none}
}
.tw-up{margin:8px 0 2px;font:500 10.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--mute)}
.tw-src{margin:0;font-size:11.5px;line-height:1.45;color:var(--mute);max-width:560px}
.tw-src a{color:var(--ink2)}
@media (prefers-reduced-motion:reduce){.tw-card,.tw-chev,.tw-i+.tw-i,.tw-lv{transition:none!important;animation:none!important}.tw-lv{transform:none!important}}
