:root{--paper: #f3eee3;--paper-2: #ebe4d5;--card: #fbf8f1;--ink: #17140f;--ink-2: #4a443a;--muted: #8a8173;--rule: #d6ccb8;--rule-strong: #17140f;--accent: #d2341f;--accent-soft: #f6d9d2;--called: #1d6b45;--called-soft: #d6eadb;--warn: #9a6400;--warn-soft: #f4e4c1;--focus: #2457d6;--map-empty: #ebe4d5;--map-edge: #c4b89f;--display: "Fraunces", Georgia, serif;--body: "Libre Franklin", "Helvetica Neue", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--paper: #13120f;--paper-2: #1c1a16;--card: #1a1814;--ink: #efe9dc;--ink-2: #c3bba9;--muted: #8c8576;--rule: #34302a;--rule-strong: #efe9dc;--accent: #ff5a3c;--accent-soft: #3a1a13;--called: #5fc48f;--called-soft: #15301f;--warn: #e7b04a;--warn-soft: #33270f;--focus: #7aa2ff;--map-empty: #2a2721;--map-edge: #575045;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}body{background-image:radial-gradient(color-mix(in srgb,var(--ink) 5%,transparent) .6px,transparent .6px);background-size:4px 4px}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:3px}.figure{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.muted{color:var(--muted)}.kicker,.eyebrow{font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.meta{margin:0;color:var(--ink-2);font-size:13px}.count{font-family:var(--mono);font-size:.85em;color:var(--muted);font-weight:400}.masthead{border-bottom:3px double var(--rule-strong);padding:20px 24px 16px}.masthead-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:1px solid var(--rule-strong);padding-bottom:12px;margin-bottom:14px}.masthead h1{font-family:var(--display);font-variation-settings:"opsz" 144;font-weight:800;font-size:clamp(40px,7vw,76px);line-height:.9;letter-spacing:-.035em;margin:4px 0 0}.eyebrow{display:flex;align-items:center;gap:8px;margin:0}.dateline{font-family:var(--display);font-style:italic;color:var(--ink-2);margin:0;text-align:right}.filters{display:flex;flex-direction:column;gap:12px}.filter-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}.field{display:flex;flex-direction:column;gap:4px;flex:1 1 140px;min-width:0}.field>span{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.field.narrow{flex:0 1 110px}.field.wide{flex:2 1 220px}.f-election{flex:0 1 300px}.f-election select{font-family:var(--display);font-weight:700;font-size:16px;padding:6px 9px}.f-state{flex:0 1 200px}.f-level{flex:0 0 auto}.f-level .segmented button{padding:8px 12px}.filter-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.searching{font-size:12.5px;color:var(--muted);animation:shimmer 1.4s ease-in-out infinite}.more-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 12px}.more-toggle .caret{font-size:10px;transition:transform .15s}.more-toggle.open .caret{transform:rotate(180deg)}.pill{font-family:var(--mono);font-size:10.5px;background:var(--accent);color:var(--paper);border-radius:8px;padding:0 6px;line-height:16px}.filter-more{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:12px;background:var(--paper-2);border:1px solid var(--rule);border-radius:2px}.filter-more-actions{display:flex;gap:8px}.filter-more-actions .ghost{padding:8px 12px}.pick-state{border:1px solid var(--rule);background:var(--card);padding:20px;max-width:420px}.pick-state h2{font-family:var(--display);font-size:24px;margin:0 0 6px}.pick-state p{color:var(--ink-2);font-size:13.5px;margin:0 0 14px}input,select{background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:7px 9px;min-width:0;width:100%}input:hover,select:hover{border-color:var(--muted)}button{cursor:pointer}button:disabled{cursor:progress;opacity:.6}.primary{background:var(--ink);color:var(--paper);border:0;border-radius:2px;padding:9px 22px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:12.5px}.primary:hover:not(:disabled){background:var(--accent)}.ghost{background:transparent;border:1px solid var(--rule);border-radius:2px;padding:4px 10px;font-size:12.5px;font-weight:600}.ghost:hover:not(:disabled){border-color:var(--ink)}.layout{display:grid;grid-template-columns:minmax(340px,440px) 1fr;align-items:start}.list-pane{border-right:1px solid var(--rule);padding:16px 20px 40px 24px;min-width:0}.detail-pane{position:sticky;top:0;max-height:100vh;overflow-y:auto;padding:20px 28px 40px;min-width:0}.back{display:none}@media(max-width:900px){.layout{grid-template-columns:1fr}.list-pane{border-right:0;padding:14px 16px 32px}.detail-pane{position:static;max-height:none;padding:14px 16px 32px}.app:not(.has-selection) .detail-pane,.app.has-selection .list-pane{display:none}.back{display:inline-block;background:none;border:0;padding:0 0 12px;font-weight:600;color:var(--accent)}.masthead{padding:16px 16px 14px}.dateline{display:none}}.list-toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.tally{font-size:13px;color:var(--ink-2)}.tally b{color:var(--ink);font-weight:600}.tally .dot{margin:0 6px;color:var(--muted)}.list-controls{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:8px}.list-controls input{grid-column:1 / -1}.list-controls select{width:100%;min-width:0}.office-select.on{border-color:var(--ink);font-weight:600}.race-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.race-list li{animation:rise .35s ease-out both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.race-card{width:100%;text-align:left;background:var(--card);border:1px solid var(--rule);border-left:3px solid transparent;border-radius:2px;padding:11px 13px 10px;display:flex;flex-direction:column;gap:5px;transition:border-color .15s,transform .15s}.race-card:hover{border-color:var(--muted);border-left-color:var(--muted)}.race-card.selected{border-color:var(--ink);border-left-color:var(--accent);box-shadow:3px 3px 0 var(--ink)}.race-card-top{display:flex;justify-content:space-between;align-items:center}.race-card h3{font-family:var(--display);font-variation-settings:"opsz" 36;font-weight:600;font-size:17px;line-height:1.2;margin:0;letter-spacing:-.01em}.race-card-lead{display:flex;align-items:baseline;gap:8px;font-size:13.5px;flex-wrap:wrap}.race-card-lead .figure{font-weight:600}.runner-up{margin-left:auto;color:var(--muted);font-size:12.5px}.lead-name{display:inline-flex;align-items:center;gap:6px;font-weight:600}.swatch{display:inline-block;width:9px;height:9px;border-radius:1px;flex:none}.check{color:var(--called);font-weight:800}.reporting{font-size:11.5px;color:var(--muted)}.stacked-bar{display:flex;width:100%;background:var(--paper-2);border-radius:1px;overflow:hidden}.stacked-bar span{height:100%;transition:width .6s ease}.stacked-bar span+span{box-shadow:inset 1px 0 0 var(--card)}.badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:2px;background:var(--paper-2);color:var(--ink-2);white-space:nowrap}.badge.small{margin-left:6px;font-size:9.5px}.badge.called{background:var(--called-soft);color:var(--called)}.badge.live{background:var(--accent-soft);color:var(--accent)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted)}.pulse.on{background:var(--accent);animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent)}to{box-shadow:0 0 0 8px transparent}}.detail{max-width:880px;animation:rise .3s ease-out both}.detail-head{border-bottom:1px solid var(--rule-strong);padding-bottom:12px}.kicker-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.detail-head h2{font-family:var(--display);font-variation-settings:"opsz" 96;font-weight:800;font-size:clamp(28px,4vw,46px);line-height:1.02;letter-spacing:-.025em;margin:6px 0 8px}.status-strip{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:13px}.reporting-meter{display:flex;align-items:center;gap:10px;flex:1 1 220px}.meter-track{flex:1;max-width:220px;height:6px;background:var(--paper-2);border-radius:1px;overflow:hidden}.meter-fill{height:100%;background:var(--ink);transition:width .6s ease}.status-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}table{width:100%;border-collapse:collapse}th{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);text-align:left;padding:10px 8px 6px 0;border-bottom:1px solid var(--rule-strong)}td{padding:10px 8px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}.num{text-align:right;white-space:nowrap}th.num,td.num{padding-right:0;padding-left:12px}.candidates{margin-top:6px}.candidates td{padding-top:14px;padding-bottom:14px}.cand-name{display:flex;align-items:center;gap:8px;font-family:var(--display);font-variation-settings:"opsz" 36;font-weight:600;font-size:19px;line-height:1.2}.cand-name .swatch{width:11px;height:11px}.cand-meta{font-size:12.5px;color:var(--ink-2);margin:2px 0 8px 19px}.share-track{margin-left:19px;height:5px;background:var(--paper-2);max-width:420px}.share-fill{height:100%;transition:width .6s ease}.candidates .big{font-size:20px;font-weight:600}.candidates tr.winner .cand-name{font-weight:800}.candidates tfoot td{border-bottom:0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.footnote{font-size:12.5px;color:var(--ink-2);font-style:italic;border-left:2px solid var(--rule);padding-left:10px;margin:12px 0}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px 28px;align-items:start}@container detail (min-width: 720px){.detail-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}}.detail{container:detail / inline-size;max-width:1280px}.results-map{margin:14px 0 0}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.segmented{display:inline-flex;border:1px solid var(--rule-strong);border-radius:2px;overflow:hidden}.segmented button{background:transparent;border:0;padding:4px 12px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.segmented button+button{border-left:1px solid var(--rule-strong)}.segmented button.on{background:var(--ink);color:var(--paper)}.map-legend{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;margin:0;padding:0;font-size:12.5px;font-weight:600}.map-legend li{display:inline-flex;align-items:center;gap:6px}.map-frame{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:2px}.map-frame svg{display:block;width:100%;height:auto}.shape.house-district{stroke:var(--card);stroke-width:.8}.district-outside{fill:var(--card);fill-opacity:.55}.district-line{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}.map-zoom{position:absolute;right:10px;bottom:10px;padding:5px 10px;border:1px solid var(--rule);border-radius:2px;background:var(--card);color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.map-zoom:hover{border-color:var(--ink)}.map-loading{aspect-ratio:640 / 440;display:grid;place-content:center;color:var(--muted);font-size:13px;animation:shimmer 1.4s ease-in-out infinite}.shape{stroke:var(--card);stroke-width:.6;stroke-linejoin:round;cursor:pointer;transition:fill .4s ease}.shape.empty{fill:var(--map-empty);stroke:var(--map-edge);cursor:default}.shape:hover{stroke:var(--ink);stroke-width:1.2}.shape-active{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.shape-selected{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.map-tip.pinned{border-color:var(--accent);box-shadow:3px 3px 0 var(--accent)}.map-tip{position:absolute;z-index:5;pointer-events:none;min-width:220px;background:var(--card);border:1px solid var(--ink);box-shadow:3px 3px 0 var(--ink);padding:8px 10px;font-size:12.5px}.map-tip-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px;font-size:13.5px}.map-tip td{padding:3px 0;border-bottom:0;white-space:nowrap}.map-tip td.num{padding-left:10px}.map-tip-foot{margin-top:4px;font-size:11.5px}.results-map figcaption{margin-top:6px;font-size:11.5px;color:var(--muted)}.regions tr.active td{background:var(--paper-2)}.regions tr.selected td{box-shadow:inset 0 -2px 0 var(--accent)}.regions{margin-top:28px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:10px;border-bottom:3px double var(--rule-strong);padding-bottom:8px}.section-head h3{font-family:var(--display);font-weight:800;font-size:22px;margin:0;letter-spacing:-.015em}.region-controls{display:flex;gap:8px}.region-controls input{width:180px}.region-controls select{width:auto}.table-scroll{overflow-x:auto}.regions td{font-size:13.5px}.region-name{font-weight:600;margin-bottom:5px}.link{background:none;border:0;padding:0;font-weight:600;text-align:left;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.link:hover{color:var(--accent)}.regions td:first-child{min-width:140px}.detail-empty{height:60vh;display:grid;place-content:center;text-align:center;color:var(--muted);max-width:360px;margin:0 auto}.big-number{font-family:var(--display);font-size:72px;font-weight:800;color:var(--rule);margin:0;line-height:1}.empty{color:var(--ink-2);font-style:italic}.error-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-soft);border-left:3px solid var(--accent);padding:10px 12px;margin:10px 0;font-size:13.5px}.error-notice.compact{font-size:12.5px;padding:7px 10px}.skeleton{display:flex;flex-direction:column;gap:10px;padding-top:8px}.skeleton span{display:block;height:14px;background:var(--paper-2);border-radius:2px;animation:shimmer 1.4s ease-in-out infinite}.skeleton span.tall{height:40px}.skeleton span.block{height:96px}@keyframes shimmer{50%{opacity:.45}}.colophon{border-top:1px solid var(--rule);padding:14px 24px 24px;font-size:12px;color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:900px){.app.has-selection .filters{display:none}.app.has-selection .masthead-inner{margin-bottom:0;border-bottom:0;padding-bottom:0}}@container detail (max-width: 520px){.cand-name{font-size:16px}.candidates .big{font-size:15px}.cand-meta,.share-track{margin-left:0}.cand-name .swatch{display:none}th.num,td.num{padding-left:8px}.status-right .muted{flex-basis:100%}}.lead-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px;margin:14px 0 2px;font-family:var(--display);font-variation-settings:"opsz" 36;font-size:20px;line-height:1.3}.lead-line .swatch{width:11px;height:11px;align-self:center}.lead-line .muted{font-family:var(--body);font-size:14px}.lead-figure{font-size:.95em;font-weight:600;background:var(--accent-soft);color:var(--ink);padding:0 6px;border-radius:2px}.reporting{display:flex;justify-content:space-between;gap:8px}.lead-by{color:var(--ink-2)}.lead-by b{color:var(--ink);font-weight:600}td .sub{font-size:11px;color:var(--muted);margin-top:2px}.map-tip-lead{margin-top:4px;padding-top:4px;border-top:1px solid var(--rule)}.history{margin-top:22px}.history-head h3{font-size:19px}.history-legend{margin:8px 0 6px;font-size:12px}.history-frame{position:relative}.history-frame svg{display:block;width:100%;height:auto;overflow:visible}.history-loading{aspect-ratio:640 / 240;display:grid;place-content:center;color:var(--muted);font-size:13px;animation:shimmer 1.4s ease-in-out infinite}.history .grid{stroke:var(--rule);stroke-width:1}.history .axis-zero{stroke:var(--muted);stroke-width:1}.history .tick{font-family:var(--mono);font-size:10.5px;fill:var(--muted)}.history .end-label{font-family:var(--body);font-size:11.5px;font-weight:600;fill:var(--ink)}.series-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.history .crosshair{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:3 3}.history .dot{stroke:var(--card);stroke-width:2}.history-tip{top:8px;min-width:200px}.updates{margin-top:26px}.updates .section-head h3{font-size:19px}.update-list{list-style:none;margin:0;padding:0}.update{display:grid;gap:3px;padding:10px 0 10px 12px;border-bottom:1px solid var(--rule);border-left:2px solid transparent}.update.flipped{border-left-color:var(--warn)}.update.fresh{animation:fresh 2.4s ease-out}@keyframes fresh{0%{background:var(--accent-soft)}}.update-when{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-family:var(--mono);font-size:11.5px;color:var(--muted)}.update-when .badge.small{margin-left:4px}.update-main,.update-lead{margin:0;font-size:13.5px}.update-lead{color:var(--ink-2)}.update-gains{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 14px;font-size:12.5px}.update-gains li{display:inline-flex;align-items:center;gap:5px}.show-more{margin-top:10px}@media(prefers-reduced-motion:reduce){.update.fresh{animation:none}}.bell{display:inline-block;vertical-align:-2px}.alert-toggle{display:inline-flex;align-items:center;gap:5px}.alert-toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.alert-note{margin:10px 0 0;padding:8px 10px;font-size:12.5px;color:var(--ink-2);background:var(--paper-2);border-left:2px solid var(--accent)}.card-bell{color:var(--accent);margin-left:auto;margin-right:6px;line-height:1}.list-toolbar[hidden]{display:none}@media(max-width:600px){.f-election{flex:1 1 100%}.f-state{flex:1 1 0}.f-level{flex:1 1 100%;order:3}.f-level .segmented{display:flex}.f-level .segmented button{flex:1 1 auto;min-width:0;padding:8px 4px;letter-spacing:.02em}.filter-actions{margin-left:0}}.back.always{display:inline-block;background:none;border:0;padding:0 0 12px;font-weight:600;color:var(--accent);text-align:left}.cand-link{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .15s}.cand-link:hover,.cand-link:focus-visible{text-decoration-color:var(--accent)}.swatch.big{width:.45em;height:.45em;margin-right:.3em;vertical-align:.12em}.candidate-loading{margin:18px 0;padding:16px;border:1px solid var(--rule);background:var(--card);color:var(--ink-2);font-size:13.5px;display:grid;gap:10px}.run-summary{display:flex;flex-wrap:wrap;gap:8px 32px;margin:16px 0 6px;padding:4px 0 12px;border-bottom:1px solid var(--rule)}.run-summary dt{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.run-summary dd{margin:2px 0 0;font-size:24px;font-weight:700}.run-year h3{font-family:var(--display);font-weight:800;font-size:22px;margin:22px 0 4px;border-bottom:3px double var(--rule-strong);padding-bottom:4px}.run-table td{font-size:13.5px}.run-table th:last-child,.run-table td:last-child{padding-left:20px;padding-right:0;white-space:nowrap}.run-table td:first-child{min-width:150px}.run-table tr.winner td:first-child .link{font-weight:700}.other-offices{margin-top:30px}.other-offices>p{margin:12px 0}@container detail (max-width: 520px){.run-table th:nth-child(4),.run-table td:nth-child(4){display:none}.run-table td:first-child{min-width:0}.run-table td,.run-table th{padding-left:8px}.run-table td:first-child,.run-table th:first-child{padding-left:0}.run-summary{gap:8px 22px}.run-summary dd{font-size:19px}}
