:root{color-scheme:light;--ink:#142139;--blue:#103e79;--navy:#091a36;--red:#e6484e;--soft:#586677;--border:#dce1e5;--paper:#f5f5f2;--muted:#cdd7df;--report:#5c9dc6;--won:#193f77;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);font-family:var(--sans);color:var(--ink);line-height:1.5}
button,select{font:inherit;color:inherit}
button,select,a{touch-action:manipulation}
button{cursor:pointer}
a{color:var(--blue)}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #e68118;outline-offset:3px}
.wrap{width:min(1224px,calc(100% - 80px));margin-inline:auto}
.skip{position:absolute;top:-80px;left:12px;background:white;padding:12px;z-index:5}
.skip:focus{top:8px}
.mast{background:#071429;color:#fff;border-bottom:1px solid #405372}
.mast-inner,.hero-foot,.heading-row,.controls,.legend,.mast-inner a,.small-states,footer .wrap{display:flex;align-items:center}
.mast-inner{height:60px;gap:22px}
.brand img{display:block;width:172px;max-width:100%;height:auto}
.mast-section{font-size:.8rem;color:#c8d7e9;border-left:1px solid #536174;padding-left:22px}
.home{margin-left:auto;color:#eaf1fc;font-size:.8rem;text-decoration:none;gap:8px}
.home span{font-size:1rem}
.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(112deg,#0b1e3c 20%,#143769 100%);color:white;border-bottom:4px solid var(--red)}
.hero-inner{position:relative;padding-block:34px 25px}
.hero-mark{inset:0 1% 0 auto;position:absolute;width:min(42vw,550px);opacity:.64;pointer-events:none;z-index:-1;overflow:hidden}
.hero-mark span{position:absolute;inset:-144px -20px auto auto;color:transparent;-webkit-text-stroke:1px #58709c;font:560px/.95 Georgia;transform:rotate(12deg)}
.hero-mark b,.hero-mark i{position:absolute;transform:skew(-36deg);bottom:-110px;right:65px;width:38px;height:420px;background:#9d3f54;opacity:.45}
.hero-mark i{right:125px;width:11px;background:#b6c4d8}
.eyebrow,.section-label,.kicker{font-size:.68rem;letter-spacing:.16em;font-weight:750;text-transform:uppercase}
.eyebrow,.section-label{display:flex;align-items:center;gap:10px}
.eyebrow i,.section-line{width:24px;height:3px;background:var(--red)}
.eyebrow span{color:#88a1be}.pale{color:#d1e1f5}
h1,h2,h3,p{margin:0}
h1,h2,.panel-head h3,.guide h3,.empty-title{font-family:var(--serif);font-weight:normal;letter-spacing:-.045em;line-height:1.08}
h1{font-size:clamp(2.65rem,5.4vw,5.05rem);margin:12px 0 12px}
h1 span{color:#c9dbef}
.hero p{font-size:clamp(.95rem,1.3vw,1.08rem);color:#e0e9f6;max-width:720px}
.hero-foot{gap:14px;margin-top:22px;color:#dfebfa;font-size:.76rem}
.hero-foot span{color:#bfcfe4;border-left:1px solid #76869a;padding-left:14px}
.main-body{padding-block:34px 44px}
.section-label,.kicker{color:var(--blue)}.section-line{width:17px;height:2px}
.heading-row{justify-content:space-between;gap:14px;margin-top:5px}
h2{font-size:clamp(2.15rem,3.8vw,3.2rem)}
.signal{font-size:.72rem;color:#3e4e61;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid #ccd5de;border-radius:30px;padding:5px 11px;background:#fafbf9}
.signal::before{content:"";width:7px;height:7px;background:#8291a1;border-radius:50%}
.signal.has-data::before{background:#197453}.signal.problem::before{background:#ac4a13}
.subtitle,.legend-note,.map-credit,.update-line,.list-count,.guide p{color:var(--soft)}
.subtitle{font-size:.93rem;margin-top:6px}
.controls{justify-content:space-between;gap:15px;flex-wrap:wrap;margin:19px 0 16px}
.office-tabs{display:flex;flex-wrap:wrap;gap:2px}
.office-tabs button,.small-states button,.more{background:#fff;border:1px solid #cbd3da}
.office-tabs button{padding:9px 16px;font-size:.85rem;font-weight:650;border-radius:3px}
.office-tabs button:hover,.small-states button:hover,.more:hover{background:#edf3f7}
.office-tabs button[aria-pressed=true],.small-states button[aria-pressed=true]{color:#fff;background:var(--navy);border-color:var(--navy)}
.state-field,.district-field{display:flex;align-items:center;gap:9px;font-size:.82rem}
label{font-weight:650}
select{max-width:100%;padding:8px 29px 8px 10px;background:white;border:1px solid #b9c5ce;border-radius:3px}
.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:17px;align-items:start}
.national{display:flex;align-items:center;gap:15px 22px;flex-wrap:wrap;justify-content:space-between;margin:0 0 16px;padding:12px 17px;background:white;border:1px solid var(--border);border-radius:3px}
.national h3{font-size:1rem;margin:2px 0;color:var(--ink);line-height:1.3}
.national p{font-size:.73rem;color:var(--soft)}.national dl{display:flex;gap:9px 18px;flex-wrap:wrap;margin:0}
.total{display:flex;flex-direction:column-reverse;padding-left:9px;border-left:4px solid var(--party);line-height:1.18}
.total dt{color:#3f5165;font-size:.72rem}.total dd{font-size:1.35rem;font-weight:750;font-variant-numeric:tabular-nums;margin:0 0 2px}
.dem{--party:#215194}.rep{--party:#a6283c}.other{--party:#266451}
.chambers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:15px 0 28px}
.chamber{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--border);border-top:3px solid var(--navy);border-radius:3px;padding:18px 21px 14px}
.chamber-head,.chamber-progress{display:flex;align-items:center;justify-content:space-between;gap:10px}
.chamber-head{align-items:flex-start}.chamber h3{font:normal clamp(1.45rem,2.35vw,2.1rem)/1.05 var(--serif);letter-spacing:-.04em;margin:0}
.seat-pill{color:#34455c;background:#eff2f5;white-space:nowrap;border-radius:3px;padding:3px 7px;font-size:.71rem;font-weight:650}
.chamber .totals{display:grid;grid-template-columns:1fr 1fr .68fr;margin:18px 0 9px;gap:9px}
.score dt{font-size:.76rem;font-weight:650;color:var(--party)}.score dd{font-size:clamp(1.8rem,3vw,2.7rem);font-weight:700;letter-spacing:-.06em;line-height:1.08;color:var(--party);font-variant-numeric:tabular-nums;margin:0}
.seat-bar{display:flex;height:12px;overflow:hidden;border-radius:2px;background:#d3dbe3}
.seat-bar span{background:var(--party)}.seat-bar .remaining{background:#d3dbe3}
.chamber-progress{margin:6px 0 14px;color:var(--soft);font-size:.72rem}.chamber-progress strong{color:#283d54;font-weight:650}
.other-detail{color:var(--soft);font-size:.74rem;margin:-6px 0 12px}
.chamber-lower{display:grid;gap:2px;margin-top:auto;padding-top:10px;border-top:1px solid var(--border);font-size:.76rem;color:#33475c}
.chamber-lower strong{font-weight:700;color:var(--ink)}.chamber-lower small{font-size:.69rem;color:var(--soft)}.chamber-lower a{color:inherit}
.key-filter{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:12px 20px 3px;font-size:.78rem;cursor:pointer}.key-filter input{margin:0;width:16px;height:16px;accent-color:var(--blue)}
.key-filter small{font-size:.69rem;color:var(--soft);font-weight:400}.key-badge{margin-left:8px;letter-spacing:.04em;color:#125f64;font-size:.6rem}
@media(max-width:740px){.chambers{gap:10px}.chamber{padding:14px 12px 11px}.chamber-head{flex-wrap:wrap}.chamber-lower{font-size:.71rem}}
@media(max-width:560px){.chambers{grid-template-columns:1fr;margin-bottom:22px}.chamber-head{align-items:center}.chamber .totals{margin:9px 0 5px}.chamber-lower{gap:1px;padding-top:7px}.chamber-progress{margin-bottom:7px}.chamber .seat-bar{height:9px}}
.panel{background:#fff;border:1px solid var(--border);border-top:3px solid var(--blue);border-radius:3px;min-width:0}
.panel-head{padding:21px 23px 0}
.kicker{font-size:.63rem;letter-spacing:.17em}
.panel-head h3{font-size:2rem;margin-top:5px}
.map-frame{background:radial-gradient(#dce3ea 0.65px,transparent .75px) 2px 0/9px 9px;margin:11px 12px 0}
#us-map{display:block;width:100%;aspect-ratio:990/615}
.region{cursor:pointer}
.region path{stroke:#fff;stroke-width:1.55;stroke-linejoin:round;fill:var(--muted)}
.region.reporting path{fill:#919daa}.region.dem path,.region.rep path,.region.other path{fill:var(--party)}
.region.mixed path{fill:url(#mixed-parties)}
.region text{font:650 13px var(--sans);fill:#35475b;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.region.dem text,.region.rep text,.region.other text{fill:#fff}.region.reporting text{fill:#102238}
.by-district .region.dem text,.by-district .region.rep text,.by-district .region.other text,.region.mixed text{fill:#102238;paint-order:stroke;stroke:#fff;stroke-width:2px;stroke-linejoin:round}
.region:hover path,.region:focus-visible path,.region[aria-pressed=true] path{stroke:#152f52;stroke-width:2.65;filter:brightness(.96)}
.region[aria-pressed=true] text{text-decoration:underline}
.region:focus{outline:none}
.small-states{justify-content:center;flex-wrap:wrap;gap:4px;margin:2px 16px 13px}
.small-states button{font-size:.65rem;padding:3px 7px;font-weight:700;border-radius:2px;min-height:25px}
.legend{border-top:1px solid var(--border);padding:15px 22px 5px;flex-wrap:wrap;gap:8px 19px}
.legend span{display:flex;align-items:center;gap:6px;font-size:.75rem}
.swatch{width:12px;height:12px;flex:none;border-radius:2px}.neutral.swatch{background:var(--muted)}.reporting.swatch{background:#919daa}
.swatch.dem,.swatch.rep,.swatch.other{background:var(--party)}.swatch.mixed{background:repeating-linear-gradient(125deg,#e5dff2 0 3px,#654781 3px 6px)}
.by-district .swatch.mixed{background:repeating-linear-gradient(35deg,#215194 0 3px,#a6283c 3px 6px,#266451 6px 8px)}
.legend-note,.map-credit{font-size:.69rem;padding:1px 22px 0}
.map-credit{padding-bottom:15px;margin-top:9px}.map-credit a{color:inherit}
.detail-head{padding-bottom:17px;border-bottom:1px solid var(--border)}
#reset-state{background:none;border:0;color:var(--blue);padding:6px 0 0;font-size:.78rem;text-decoration:underline;text-underline-offset:3px}
.district-field,.list-count{padding:12px 21px 0}.list-count{font-size:.75rem}
.empty{padding:30px 23px 31px;background:linear-gradient(140deg,#fafcfd,#fff)}
.empty-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:13px;border:1px solid #c6d5e3;color:#355c82;border-radius:50%;font-size:1.25rem}
.empty-title{font-size:1.5rem;letter-spacing:-.032em}
.empty-msg{font-size:.87rem;color:var(--soft);margin-top:8px;line-height:1.55}
.update-line{padding:13px 21px;border-top:1px solid var(--border);font-size:.71rem;background:#fafbfb}
.contest{padding:15px 21px 17px;overflow-wrap:anywhere}
.contest+.contest{border-top:1px solid var(--border)}
.race-state{font-size:.64rem;letter-spacing:.12em;color:#586b7a;text-transform:uppercase;font-weight:700}
.contest h4{font-size:1.02rem;margin:3px 0 6px;line-height:1.3}
.badge,.winner-label{font-size:.67rem;border-radius:3px;font-weight:650;display:inline-block}
.badge{background:#edf1f4;color:#384651;padding:3px 7px}
.badge.projected,.badge.certified{background:#e6edf6;color:#173d75}.badge.reporting{background:#e1f2fa;color:#194964}
.candidate-list{list-style:none;padding:0;margin:11px 0 0}
.candidate-list li{display:flex;justify-content:space-between;align-items:start;gap:10px;padding:6px 0;border-bottom:1px solid #edf0f2;font-size:.86rem}
.person{font-weight:600;line-height:1.35}.party{display:block;color:var(--soft);font-weight:400;font-size:.74rem}.votes{text-align:right;white-space:nowrap;font-size:.81rem;font-variant-numeric:tabular-nums}
.vote-share{display:block;color:var(--soft);font-size:.72rem}
.winner-label{margin:3px 0;color:#1e536a}.race-meta{margin:9px 0 0;color:var(--soft);font-size:.69rem}.race-meta a{color:#204e79}
.more{display:block;margin:0 21px 16px;padding:7px 13px;color:var(--blue);font-weight:650;font-size:.8rem;border-radius:3px}
.retracted{margin:7px 0 2px;color:#962e30;font-size:.83rem;font-weight:650}
.empty-title{margin:0}
@media(max-width:480px){.region text{font-size:19px}}
.guide{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;gap:24px;border-top:2px solid #172c49;padding-top:17px;margin-top:26px}
.guide h3{font-size:1.45rem;margin-top:4px}
.guide p{font-size:.8rem;line-height:1.55}.guide strong{color:var(--ink)}
footer{background:var(--navy);color:#c7d7e9;padding:20px 0;font-size:.74rem}footer .wrap{justify-content:space-between;gap:12px}
.no-js{padding:12px;border:1px solid var(--red)}
@media(max-width:850px){.wrap{width:calc(100% - 40px)}.grid{grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr)}.office-tabs button{padding-inline:11px}.hero-mark{opacity:.36}.panel-head{padding:16px 15px 0}.detail-head{padding-bottom:14px}.legend{padding-inline:15px}.legend-note,.map-credit{padding-inline:15px}}
@media(max-width:680px){.wrap{width:calc(100% - 32px)}.mast-inner{height:48px;gap:12px}.brand img{width:138px}.mast-section{font-size:.68rem;padding-left:12px}.home{font-size:.7rem}.hero-inner{padding-block:25px 19px}.hero h1{max-width:520px}.hero p{font-size:.92rem}.hero-foot{margin-top:15px;font-size:.68rem}.eyebrow{font-size:.59rem}.main-body{padding-block:23px 30px}.grid{display:flex;flex-direction:column;gap:14px}.panel{width:100%}.guide{grid-template-columns:1fr;gap:8px}.signal{font-size:.63rem;padding-inline:7px}.controls{align-items:flex-start;gap:10px;margin:14px 0}.wide{display:none}.state-field{font-size:.76rem}.office-tabs button{padding:8px 11px;font-size:.8rem}.legend{gap:6px 12px}.panel-head h3{font-size:1.65rem}.map-frame{margin:8px 5px 0}.hero-mark{right:-20px;width:54vw}.hero-mark span{font-size:320px;top:-28px}.small-states button{min-width:30px;font-size:.7rem}.small-states{gap:4px 5px}.signal{white-space:normal}.heading-row{align-items:end}.guide h3{font-size:1.32rem}}
@media(max-width:360px){.mast-section{display:none}.wide{display:none}.office-tabs button{padding-inline:9px}.signal{max-width:98px}.hero-ft{flex-wrap:wrap}.small-states{margin-inline:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
