html{-webkit-text-size-adjust:100%}body{overflow-wrap:break-word}img{max-width:100%;height:auto}.btn{max-width:100%;white-space:normal;text-align:center;min-height:44px;touch-action:manipulation}.shell>*,.candidate-office,.seat-party,.step,.info-card{min-width:0}select,input,textarea{font-size:16px!important}.hero{min-height:0;padding-top:40px;padding-bottom:24px}.hero h1{margin:32px 0}.hero-bottom{gap:24px}.scroll-hint{margin-top:32px;gap:16px}.candidate-office a{display:block;margin-top:12px}.tracker-layout>*{min-width:0}.map-scroll{max-width:100%;overflow-x:auto;padding:5px;margin:-5px;overscroll-behavior-x:contain}.state-map{min-width:588px;grid-template-rows:repeat(8,44px);gap:5px}.state-tile{font-size:12px;touch-action:manipulation}.map-state-choice{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;font-weight:700}.map-state-choice select{min-height:44px;max-width:100%;background:var(--cream);color:var(--ink);border:1px solid hsl(var(--light-border));padding:8px}.seat-slider{height:44px;touch-action:pan-y}.seat-number{font-size:40px}.topright a{display:flex;align-items:center;min-height:44px}.section h2,.quote h2,.info-card .num,.year,.step h3{letter-spacing:0}.section h2{font-size:56px}.quote h2{font-size:76px}.lead{font-size:20px}.info-card .num{font-size:52px}.section{padding:64px 0}
@media(min-width:651px) and (max-width:1100px){.candidate-offices{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-office:last-child{grid-column:1/-1}.steps{grid-template-columns:1fr}.hero-top{flex-wrap:wrap}.hero h1{font-size:68px}.tracker-layout{grid-template-columns:1fr}.brief-claims{grid-template-columns:repeat(2,minmax(0,1fr))}.results-panel{flex-wrap:wrap}.results-panel .btn{flex-shrink:0}}
@media(max-width:650px){.shell{padding-left:20px;padding-right:20px}.hero{padding-top:28px}.hero h1{font-size:42px;margin:24px 0}.hero::before{font-size:320px}.lead{font-size:17px;margin:0 0 16px}.scroll-hint{margin-top:24px;font-size:10px;flex-wrap:wrap}.hero-bottom{gap:12px}.hero .actions{gap:10px}.btn{padding:12px 16px;gap:10px;font-size:12px}.section h2{font-size:38px}.quote h2{font-size:38px;line-height:1.1}.quote{padding:56px 0}.timeline{grid-template-columns:1fr}.moment,.moment:not(:first-child){padding:24px 0;min-height:0;border-right:0;border-bottom:1px solid var(--line)}.moment:last-child{border-bottom:0}.section{padding:48px 0}.candidate-offices,.brief-claims{grid-template-columns:1fr}.candidate-office:last-child{grid-column:auto}.seat-stats{grid-template-columns:1fr}.seat-number{font-size:36px}.state-choice select{width:100%}.share-shell{padding:24px 20px}.share-shell h1{font-size:36px}.share-shell .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.share-shell .actions .btn{width:100%;min-width:0}.share-shell .actions .btn:first-child{grid-column:1/-1}.election-tracker{padding:40px 0}}
@media(max-width:359px){.hero h1{font-size:38px}.hero .btn{font-size:11px}.quote h2{font-size:32px}.brand{font-size:13px;gap:8px}.time-pill{font-size:9px}.info-card .num{font-size:40px}.state-guide h2,.election-news h2,.election-tracker h2{font-size:30px}}
.state-selector-bar{padding:14px 0;border-bottom:1px solid hsl(var(--light-border))}.state-selector-bar label{display:flex;align-items:center;gap:16px;font-weight:700;font-size:14px}.state-selector-bar select{min-height:48px;min-width:0;max-width:100%;width:300px;background:var(--cream);color:var(--ink);border:1px solid hsl(var(--light-border));padding:10px;font:inherit;border-radius:4px}
@media(max-width:650px){.state-selector-bar{position:sticky;top:0;z-index:50;padding:10px 0;border-bottom:3px solid var(--blue)}.state-selector-bar select{flex:1;width:auto}.state-selector-bar~section{scroll-margin-top:80px}}
.topbar .nav{min-height:68px}.state-selector-bar{padding:8px 0}.state-guide{padding-top:18px;padding-bottom:24px}.state-guide .state-choice{gap:12px}.state-guide h2{margin:6px 0 8px}.state-guide #state-intro{margin:10px 0}.state-guide .candidate-offices{margin-top:16px}.state-guide .candidate-office{padding-top:10px}.state-guide .candidate-office h3{margin-bottom:10px}.state-guide .candidate-office ul{margin-top:10px}
@media(max-width:650px){.topbar .nav{min-height:60px}.state-selector-bar{padding:6px 0}.state-selector-bar~section{scroll-margin-top:68px}.state-guide{padding-top:14px;padding-bottom:20px}.state-guide .state-choice{gap:8px}.state-guide .candidate-offices{margin-top:12px;gap:18px}.state-guide .state-choice .btn{min-height:44px;padding-top:8px;padding-bottom:8px}}
.candidate-office>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;min-height:48px}.candidate-office>summary::-webkit-details-marker{display:none}.candidate-office>summary h3{margin:0!important}.candidate-office>summary::after{content:'+';font-size:28px;line-height:1;color:var(--blue);flex-shrink:0}.candidate-office[open]>summary::after{content:'−'}.candidate-office>summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.candidate-office>summary~*{margin-top:12px}
@media(max-width:650px){.state-guide .candidate-office{padding-top:0}.state-guide .candidate-offices{gap:6px}.candidate-office>summary{min-height:48px}.state-guide .candidate-office ul{line-height:1.5;margin-top:6px;margin-bottom:8px}.candidate-office>summary~*{margin-top:8px}.state-guide .candidate-office p{margin-bottom:8px}}
@media(hover:none){.btn:hover{transform:none}}
:root{--background:0 0% 6%;--secondary:218 76% 30%;--secondary-foreground:0 0% 100%;--border:0 0% 35%;--ink:hsl(var(--background));--blue:hsl(var(--secondary));--light-muted:0 0% 28%}.topbar,.hero{background:var(--ink)}.hero h1 em{color:hsl(var(--foreground));text-decoration-color:var(--lime)}.hero h1 span:nth-child(3){color:hsl(var(--secondary))}.hero .secondary{border-color:var(--blue);background:var(--blue)}.quote{background:var(--blue)}.seat-party:not(.republicans){border-color:var(--blue)}.seat-bar .dem-seats{background:var(--blue)}.state-tile[aria-pressed=true]{outline-color:var(--blue)}.poll-clock{background:var(--blue);color:var(--cream);padding:40px 0;border-top:6px solid var(--lime)}.poll-clock-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;margin:12px 0 24px}.poll-clock h2{font:700 40px/1.1 'Space Grotesk',sans-serif;margin:0}.poll-clock label{font-weight:700;max-width:100%}.poll-clock select{display:block;min-height:48px;max-width:100%;margin-top:8px;padding:10px;background:var(--cream);color:var(--ink);border:1px solid var(--line);border-radius:4px}.poll-countdown-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.poll-countdown{border-top:1px solid hsl(var(--foreground) / .4);padding-top:16px;min-width:0}.poll-countdown h3{font-size:18px;margin:0 0 12px}.poll-digits{display:flex;align-items:start;gap:12px}.poll-digit{min-width:64px;text-align:center}.poll-digit strong{font:700 44px/1.2 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;display:block}.poll-digit span{font-size:11px;text-transform:uppercase}.poll-countdown p,.poll-clock-caution,#poll-clock-note{font-size:14px;line-height:1.6}.poll-clock-caution{max-width:760px}.poll-clock a{font-size:14px;text-underline-offset:3px}.poll-ended{font-size:24px;font-weight:700}@media(max-width:650px){.poll-clock-heading{align-items:stretch;flex-direction:column;gap:16px}.poll-clock h2{font-size:32px}.poll-clock select{width:100%}.poll-countdown-list{grid-template-columns:1fr}.poll-digit{min-width:56px}.poll-digit strong{font-size:40px}}
.figure-source{font-size:14px;line-height:1.6;margin:10px 0;overflow-wrap:anywhere}.figure-source a{text-decoration:underline;text-underline-offset:3px}.state-citations{margin:24px 0}.state-citations h3{font-size:20px}.state-citation-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2fr);gap:12px;align-items:center;border-bottom:1px solid hsl(var(--light-border));padding:8px 0}.state-citation-row .btn{justify-content:flex-start;color:var(--ink);border-color:hsl(var(--light-border));min-height:44px;font-size:14px;letter-spacing:0;padding:8px 12px;text-align:left}.state-citation-row .btn[aria-pressed=true]{background:var(--ink);color:var(--cream)}@media(max-width:650px){.state-citation-row{grid-template-columns:1fr;gap:0}.state-citation-row .figure-source{margin:6px 0}.seat-party .figure-source{font-size:14px}}
:root{--headline-blue:214 90% 70%}.hero h1 span:nth-child(3){color:hsl(var(--headline-blue))}[hidden]{display:none!important}
.election-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--ink);border-bottom:1px solid var(--line)}.control-status{border-top:6px solid var(--line);padding:20px;min-width:0}.control-status.democratic{border-top-color:var(--blue)}.control-status.republican{border-top-color:var(--lime)}.control-status strong{font:700 22px/1.3 'Space Grotesk',sans-serif;display:block}.control-status p{font-size:14px;line-height:1.5;margin:8px 0}.control-status small,.control-status a{font-size:12px;line-height:1.5}.control-time{color:var(--muted)}@media(max-width:650px){.election-control{grid-template-columns:1fr}.control-status strong{font-size:20px}}
.seat-stepper{display:grid;grid-template-columns:52px minmax(0,140px) 52px;gap:12px;align-items:center;margin-top:16px}.seat-stepper input{width:100%;height:56px;background:var(--cream);color:var(--ink);border:2px solid var(--line);text-align:center;font:700 32px 'Space Grotesk',sans-serif!important;border-radius:4px}.seat-stepper .seat-step{height:52px;padding:0;font-size:28px;background:var(--cream);color:var(--ink);border-color:hsl(var(--light-border));border-radius:4px}.seat-step:disabled{opacity:.4;cursor:not-allowed}.seat-slider::-webkit-slider-thumb{min-width:28px;min-height:28px}.seat-slider::-moz-range-thumb{width:28px;height:28px}.seat-number{font-variant-numeric:tabular-nums}.tracker-tabs .btn{flex:1;min-height:48px;font-size:16px}.tracker-tabs{max-width:400px}.state-tile{font-variant-numeric:tabular-nums}.state-tile[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:1px;box-shadow:inset 0 0 0 2px var(--cream)}
@media(max-width:359px){.control-math .seat-stats{grid-template-columns:1fr}.control-math .seat-number{font-size:36px}.seat-party{padding:14px 0}}
@media(max-width:650px){.map-scroll{overflow:visible;margin:0;padding:4px}.state-map{min-width:0;width:100%;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:52px;gap:8px}.state-tile{grid-column:auto!important;grid-row:auto!important;min-width:44px;min-height:52px;font-size:16px;border-radius:4px}.seat-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.seat-number{font-size:32px;line-height:1.2;margin-top:12px;white-space:nowrap}.seat-party .mini{font-size:11px;letter-spacing:0}.seat-party p{font-size:15px;line-height:1.6}.seat-stepper{grid-template-columns:52px minmax(0,1fr) 52px;max-width:320px}.math-output{font-size:18px;line-height:1.6}.math-note,.tracker-legend,.tracker-sources{font-size:14px;line-height:1.7}.state-detail{margin-top:8px}.map-state-choice select{flex:1;min-width:0}}