:root{color-scheme:dark;--bg:#111318;--panel:#1c2029;--line:#343a48;--muted:#a6afc0;--blue:#74bce9;--red:#fa7777;--accent:#a7b9ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:#f4f5f8;font:15px/1.55 Arial,Helvetica,sans-serif}a{color:var(--accent);text-underline-offset:4px}button,select,input{font:inherit}button,select,input{border:1px solid var(--line);background:#252b38;color:#fff;border-radius:7px;padding:10px 12px}button,a,select{touch-action:manipulation}button{cursor:pointer}button:hover{background:#333e55}button[aria-pressed=true]{border-color:var(--accent);background:#303a58}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d9e77a;outline-offset:4px}header,main,footer{max-width:1536px;margin:auto;padding:24px 4%}header{display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.brand{font-size:25px;font-weight:950;letter-spacing:-1px;color:#fff;text-decoration:none;line-height:1}.brand span{color:#a7b9ff}.brand small{display:block;font-size:8px;letter-spacing:1.8px;margin-top:10px;color:var(--muted)}nav{display:flex;gap:27px;font-size:13px}nav a{color:#c7ceda;text-decoration:none}nav [aria-current]{color:#fff;border-bottom:2px solid var(--accent)}.kicker{font-size:11px;letter-spacing:1.8px;color:var(--accent);font-weight:800}.kicker>span{float:right;color:var(--muted);letter-spacing:1px}.intro{display:flex;justify-content:space-between;gap:50px;align-items:end;padding:25px 0 36px}h1{font-size:clamp(42px,5.2vw,73px);line-height:1.04;letter-spacing:-3px;margin:14px 0 20px}h2{font-size:27px;letter-spacing:-.7px;line-height:1.15;margin:9px 0 12px}h3{font-size:18px}.intro>div>p{max-width:620px;color:#bdc5d2;margin-bottom:0}.status{max-width:310px;font-size:11px;letter-spacing:1px;border-left:2px solid #a8c590;padding:12px 18px}.status p{font-size:13px;letter-spacing:0;color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;background:#b5d89a;border-radius:50%;margin-right:7px}.race-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.race-tab{text-align:left;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;background:var(--panel)}.race-tab b{font-size:30px;display:block}.race-tab small{color:var(--muted)}.race-tab span:last-child{font-size:26px;color:var(--accent)}.atlas{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.map-header{display:flex;justify-content:space-between;align-items:center;padding:23px 25px;border-bottom:1px solid var(--line);gap:16px}.map-header p{color:var(--muted);font-size:12px;margin:0}.workspace{display:grid;grid-template-columns:180px minmax(0,1fr) 250px}.tools{padding:22px 17px;border-right:1px solid var(--line)}label{display:block;font-size:11px;color:#bec6d5;margin:0 0 7px}select,input{width:100%;font-size:12px;margin-bottom:20px}.shortcuts{display:grid;gap:7px;margin:22px 0}.shortcuts span{font-size:10px;letter-spacing:1px;color:var(--muted);margin-bottom:4px}.shortcuts button{text-align:left;font-size:12px;background:transparent}.muted{color:var(--muted);font-size:12px}.map-panel{min-width:0;padding:18px 14px;align-self:center}#map{width:100%;height:auto;display:block;min-height:280px}#map path.county{stroke:#151925;stroke-width:.25;cursor:pointer}#map path.county:hover{stroke:#fff;stroke-width:2}#map .state-line{fill:none;stroke:#e3e9f0;stroke-width:.7;pointer-events:none}#map .selected{stroke:#ffed9d!important;stroke-width:3!important}.legend{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;font-size:10px;color:#cad0da;margin-top:8px}.legend span{display:flex;align-items:center;gap:4px}.swatch{width:18px;height:10px;display:inline-block}.swatch.d{background:#438bc4}.swatch.r{background:#dc535c}.swatch.n{background:#757c8c}.map-note{font-size:10px;color:#a6afc0;text-align:center;max-width:540px;margin:14px auto}.detail{padding:22px 19px;border-left:1px solid var(--line)}.detail h3{font-size:23px;margin-top:9px}.detail .big{font-size:32px;font-weight:800;letter-spacing:-1px}.d{color:var(--blue)}.r{color:var(--red)}.metric{padding:14px 0;border-bottom:1px solid var(--line)}.metric small{display:block;color:var(--muted)}.vote-row{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;gap:10px}.detail a{display:block;font-size:12px;margin-top:18px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:43px 0 20px}.section-heading p{color:var(--muted);font-size:12px}.poll-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.poll-card{padding:19px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.poll-card h3{font-size:16px;margin:7px 0 15px}.poll-card .candidate{display:flex;gap:10px;justify-content:space-between;margin:10px 0;font-size:13px}.candidate b{font-size:22px;white-space:nowrap}.poll-card small{color:var(--muted);font-size:10px;display:block}.poll-card a{font-size:11px}.poll-card .sample{margin:12px 0;line-height:1.45}.race-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.race-item{border:1px solid var(--line);padding:14px;border-radius:8px;font-size:12px;background:#181c24}.race-item strong{display:block;font-size:15px}.race-item a{display:block;margin-top:8px}.race-item p{margin:6px 0;color:var(--muted)}.county-table{margin-top:35px;border:1px solid var(--line);padding:20px;border-radius:9px}.county-table summary{cursor:pointer;font-weight:bold}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}td,th{text-align:left;padding:11px;border-bottom:1px solid var(--line)}td button{font-size:12px;padding:4px 7px}.methodology{padding:45px 0 25px;border-bottom:1px solid var(--line);margin-top:20px}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px}.method-grid p{color:#b5becd;font-size:13px;line-height:1.8}footer{display:flex;gap:30px;justify-content:space-between;font-size:11px;color:var(--muted);padding-bottom:38px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:15px;background:#fff;color:#111;padding:10px;z-index:9}#search-results button{font-size:11px;width:100%;margin-bottom:5px;text-align:left}#load-status:empty{display:none}@media(max-width:1200px){.workspace{grid-template-columns:165px minmax(0,1fr)}.detail{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:flex;gap:25px;align-items:center;flex-wrap:wrap}.detail h3{margin:0}.metric{border:0}.poll-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.race-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){header{display:block}nav{gap:18px;flex-wrap:wrap;margin-top:22px;font-size:11px}.kicker>span{float:none;display:block;margin-top:7px}.intro{display:block}.status{margin-top:25px;max-width:100%}h1{letter-spacing:-1.8px}.race-tabs{gap:7px}.race-tab{padding:12px 9px}.race-tab b{font-size:22px}.race-tab small{font-size:9px}.race-tab span:last-child{display:none}.workspace{display:flex;flex-direction:column}.tools{border:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding-bottom:0}.tools label{margin:0}.tools label[for=state]{grid-column:1;grid-row:1}.tools label[for=layer]{grid-column:2;grid-row:1}.tools select{grid-row:2;margin-bottom:6px}.tools label[for=county-search],#county-search,#search-results,.shortcuts,.tools>.muted{grid-column:1/-1}.tools #county-search{margin-bottom:0}.shortcuts{display:flex;flex-wrap:wrap;margin:7px 0}.shortcuts>span{display:none}.tools>.muted{margin:0}.map-header{padding:20px 15px}.map-header h2{font-size:23px}.map-header button{font-size:10px;padding:9px}.map-panel{width:100%;padding:0 7px 15px}#map{min-height:235px}.detail{padding:20px;width:100%}.poll-grid{grid-template-columns:1fr 1fr;gap:9px}.poll-card{padding:13px}.candidate b{font-size:18px}.poll-card .candidate{font-size:11px}.section-heading{display:block}.race-grid{grid-template-columns:1fr 1fr}.method-grid{grid-template-columns:1fr;gap:15px}footer{flex-wrap:wrap}.legend{font-size:9px;gap:6px}.county-table{padding:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.brand img{display:block;width:240px;height:80px;object-fit:contain;background:#f5f2e9;border-radius:3px}

h1{font-size:clamp(40px,4vw,58px)}.intro{padding-top:16px;padding-bottom:28px}.mini-map{width:125px;height:78px;flex-shrink:0}.race-tab span:last-child{font-size:inherit}@media(max-width:700px){.mini-map{width:60px;height:40px}.race-tab{display:block}.intro{padding-top:10px}h1{font-size:42px}.mini-map{margin-top:10px}}
