.midterms{--bg:#0b0e12;--surface:#0e141b;--surface-2:#0a0f15;--border:#1d2630;--text:#ffffff;--text-2:#c9d2dc;--text-3:#8a96a3;--text-4:#8a96a3;--accent:#5fe0c8;--accent-fill:#3f8f80;--warn:#e0b45f;--party-r:#c0564f;--party-r-fill:#bf564f;--party-r-ink:#c45f59;--party-d:#4a6fb5;--party-d-fill:#4a6fb5;--party-d-ink:#5c7dbc;--party-toss:#8a7a45;--party-toss-fill:#857542;--party-toss-ink:#8c7d48;--party-none:#151b22;--party-none-label:#8a96a3;--party-pending:#1f2730;--party-pending-border:#2a333d;--party-mid:#5d6875;--forecast-bg:#0b0e12;--forecast-text:#c9d2dc;--forecast-muted:#8a96a3;--forecast-border:#1d2630;--race-rule:#1a2129;--lean-r:var(--party-r-ink);--lean-d:var(--party-d-ink);--lean-toss:var(--party-toss-ink);--lean-r-fill:var(--party-r-fill);--lean-d-fill:var(--party-d-fill);--lean-toss-fill:var(--party-toss-fill);--lean-pending-fill:var(--party-pending);--lean-none-fill:var(--party-none);--lean-r-wash:#3a2426;--lean-d-wash:#1c2838;--lean-toss-wash:#2c281c;--model-deepseek:#ffe14a;--model-fable:#ff7a1a;--model-opus:#f6233a;--model-sol:#ff5a8a;--model-kimi:#ff4ad0;--model-grok:#e040a0;--model-qwen:#8a5cff;--model-astra:#2f78ff;--model-luna:#2ed0ff;--model-argon:#1ec8a5;--model-mistral:#3dde6a;--model-llama:#c6e03a;--model-sonar:#ffb020;--model-flash:#7a4dff;--model-fallback:#ff4d4d;--background:var(--bg);color-scheme:dark;background:var(--background);color:var(--text-2);min-height:100vh;padding-top:56px;overflow-x:clip;font-family:var(--font-inter),Inter,system-ui,sans-serif}@media (min-width:640px){.midterms{padding-top:64px}}.forecast-hero,.midterms__hero{position:relative;isolation:isolate;overflow:hidden}.forecast-wrap,.midterms__main{position:relative;z-index:1;width:min(1320px,100%);margin:0 auto;padding:8px 16px 0;box-sizing:border-box}.midterms__main{padding-bottom:64px}@media (min-width:768px){.forecast-wrap,.midterms__main{padding-inline:32px}}.midterms h1,.midterms h2,.midterms h3,.midterms h4{color:var(--text);font-weight:700;line-height:1.2;margin:0}.forecast-hero h1,.midterms h1{font-size:32px;max-width:none;letter-spacing:-.02em}@media (min-width:768px){.forecast-hero h1{font-size:44px}}.midterms h2{font-size:32px;margin-bottom:12px}.state-heading{display:flex;align-items:center;gap:12px}.state-flag{width:auto;max-width:44px;object-fit:contain;flex:none;border-radius:2px}.chamber-icon{width:1.15em;height:1.15em;flex:none;color:var(--accent)}.midterms h3{font-size:20px}.midterms h4{font-size:18px}.midterms label,.midterms li,.midterms p,.midterms summary{font-size:16px;line-height:1.6}.forecast-subtext{max-width:70ch;color:var(--forecast-text);margin:12px 0 0}.midterms__maps{display:grid;gap:16px;margin-top:0}.midterms__maps>section{min-width:0}@media (min-width:768px){.midterms__maps{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.midterms__jump{display:flex;flex-direction:column;gap:8px;margin:24px 0;max-width:360px}.midterms__jump select{min-height:44px;font-size:16px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:0 12px}.map-scale{width:100%;max-width:100%;min-width:0;padding-bottom:8px;container-type:inline-size}.tiles{display:grid;grid-template-columns:repeat(12,var(--map-tile,44px));grid-auto-rows:var(--map-tile,44px);gap:var(--map-gap,4px);width:var(--map-w,572px);zoom:min(1,calc(100cqw / var(--map-w, 572px)))}.tile,.tile-gap{width:var(--map-tile,44px);height:var(--map-tile,44px);box-sizing:border-box;min-width:0}.tile{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--forecast-border);border-radius:8px;background:var(--party-pending);color:#ffffff;font-weight:700;line-height:1;cursor:pointer;touch-action:manipulation}.tile.allow-small-text{font-size:14px}.tile[data-party=R][data-rating=safe]{background:var(--party-r-fill);border-color:var(--party-r-fill)}.tile[data-party=R][data-rating=likely]{background:color-mix(in srgb,var(--party-r-fill) 75%,transparent);border-color:color-mix(in srgb,var(--party-r-fill) 75%,#0e141b)}.tile[data-party=R][data-rating=lean]{background:color-mix(in srgb,var(--party-r-fill) 50%,transparent);border-color:var(--party-r-fill)}.tile[data-party=D][data-rating=safe]{background:var(--party-d-fill);border-color:var(--party-d-fill)}.tile[data-party=D][data-rating=likely]{background:color-mix(in srgb,var(--party-d-fill) 75%,transparent);border-color:color-mix(in srgb,var(--party-d-fill) 75%,#0e141b)}.tile[data-party=D][data-rating=lean]{background:color-mix(in srgb,var(--party-d-fill) 50%,transparent);border-color:var(--party-d-fill)}.tile[data-party=toss]{background:var(--party-toss-fill);border-color:var(--party-toss-fill)}.tile[data-party=none]{background:var(--party-none);border-color:var(--forecast-border);color:var(--party-none-label)}.tile[data-party=pending]{background:var(--party-pending);border:1px dashed var(--party-pending-border);color:var(--forecast-muted)}.tile:focus-visible,.tile:hover{outline:2px solid var(--accent);outline-offset:2px;z-index:1}.map-tip{--surface:#0e141b;--border:#1d2630;--text:#ffffff;--text-2:#c9d2dc;position:fixed;z-index:40;box-sizing:border-box;max-width:calc(100vw - 16px);max-height:calc(100vh - 72px);overflow:auto;pointer-events:none;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-2);color-scheme:dark;font-size:16px;font-weight:400;line-height:1.45;text-align:left}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding:0;list-style:none}.legend li{display:inline-flex;align-items:center;gap:8px}.swatch{width:16px;height:16px;border-radius:4px;border:1px solid var(--border)}.swatch[data-lean=R],.swatch[data-party=R]{background:var(--party-r-fill)}.swatch[data-lean=D],.swatch[data-party=D]{background:var(--party-d-fill)}.swatch[data-lean=tossup],.swatch[data-party=toss]{background:var(--party-toss-fill)}.swatch[data-lean=pending],.swatch[data-party=pending]{background:var(--party-pending);border-style:dashed;border-color:var(--party-pending-border)}.swatch[data-lean=none],.swatch[data-party=none]{background:var(--party-none)}.chamber-section,.race-card,.state-block{scroll-margin-top:88px}.state-block{margin-top:48px}@media (max-width:767px){.chamber-section,.race-card,.state-block{scroll-margin-top:168px}}.state-block:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.race-card{background:#0e141b;border:1px solid #1d2630;border-radius:16px;padding:0;margin-top:16px;overflow:hidden}.race-card__header{justify-content:space-between;padding:20px 24px 0}.race-card__header,.race-card__identity{display:flex;align-items:flex-start;gap:12px}.race-card__identity{min-width:0}.race-card__identity h3{font-size:20px;font-weight:700}.candidate-avatar,.state-flag,.state-flag-fallback{flex:none;box-sizing:border-box}.state-flag{width:40px;height:28px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:var(--surface)}.state-flag-fallback.allow-small-text{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface-2);color:var(--text);font-size:12px;font-weight:700;line-height:1}.race-meta.allow-small-text{margin:4px 0 0;font-size:13px;line-height:1.4;color:#8a96a3}.rating-pill{flex:none;margin:0;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--party-pending) 18%,transparent);color:var(--forecast-text);font-size:16px;font-weight:600;line-height:1.3}.rating-pill[data-lean=R]{background:color-mix(in srgb,var(--party-r) 18%,transparent);border-color:var(--party-r);color:var(--party-r-ink)}.rating-pill[data-lean=D]{background:color-mix(in srgb,var(--party-d) 18%,transparent);border-color:var(--party-d);color:var(--party-d-ink)}.rating-pill[data-lean=tossup]{background:color-mix(in srgb,var(--party-toss) 18%,transparent);border-color:var(--party-toss);color:var(--party-toss-ink)}.race-card__body{padding:20px 24px 22px}.candidate-row{grid-template-columns:1fr 1fr;gap:16px}.candidate-row,.candidate-side{display:grid;align-items:center}.candidate-side{grid-template-columns:52px minmax(0,1fr) auto;gap:10px;min-width:0}.candidate-side[data-party=R]{grid-template-columns:auto minmax(0,1fr) 52px}.candidate-side[data-party=R] .candidate-avatar{grid-column:3;grid-row:1}.candidate-side[data-party=R] .candidate-copy{grid-column:2;grid-row:1;text-align:right}.candidate-side[data-party=R] .candidate-chance{grid-column:1;grid-row:1}.candidate-avatar{width:52px;height:52px;object-fit:cover;object-position:center 20%;border-radius:14px;border:2px solid var(--party-d);background:color-mix(in srgb,var(--party-d) 18%,#0e141b);color:var(--party-d-ink)}.candidate-avatar[data-party=R]{border-color:var(--party-r);background:color-mix(in srgb,var(--party-r) 18%,#0e141b);color:var(--party-r-ink)}.candidate-avatar[data-party=I]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,#0e141b);color:var(--accent)}.candidate-avatar--initials{display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;line-height:1;letter-spacing:.02em}.candidate-name,.candidate-party{overflow-wrap:anywhere;max-width:100%}.candidate-name{margin:0;font-size:16px;font-weight:700;line-height:1.3;color:var(--text)}.candidate-name[data-multiple=true]{font-size:14px;line-height:1.35}.candidate-party.allow-small-text{margin:2px 0 0;font-size:12.5px;line-height:1.3;font-weight:600}.candidate-party[data-party=D]{color:var(--party-d-ink)}.candidate-party[data-party=R]{color:var(--party-r-ink)}.candidate-party[data-party=I]{color:var(--accent)}.candidate-chance{margin:0;font-size:30px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--text)}.candidate-chance[data-party=D]{color:var(--party-d-ink)}.candidate-chance[data-party=R]{color:var(--party-r-ink);text-align:right}.candidate-chance[data-party=I]{color:var(--accent)}.ballot-others{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 0;padding:0;list-style:none}.ballot-others li{display:flex;align-items:baseline;gap:8px;min-width:0}.ballot-others__name{color:var(--text);font-size:16px;font-weight:700;line-height:1.3}.ballot-others__party.allow-small-text{margin:0;font-size:12.5px;font-weight:600;line-height:1.3}.ballot-others__party[data-party=I]{color:var(--accent)}.ballot-others__party[data-party=D]{color:var(--party-d-ink)}.ballot-others__party[data-party=R]{color:var(--party-r-ink)}@media (max-width:640px){.race-card__header{flex-wrap:wrap}.race-card__identity{flex:1 1 100%}.candidate-row{align-items:stretch;gap:12px}.candidate-side,.candidate-side[data-party=R]{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.candidate-side[data-party=R] .candidate-chance,.candidate-side[data-party=R] .candidate-copy{grid-column:auto;text-align:left}.candidate-avatar{width:44px;height:44px}.candidate-chance{font-size:22px}}.win-block{margin-top:18px}.win-track{position:relative;height:32px}.win-bar{position:absolute;left:0;right:0;top:50%;height:14px;transform:translateY(-50%);border-radius:7px;background:var(--surface-2);overflow:hidden}.win-bar__d,.win-bar__gap,.win-bar__r{position:absolute;top:0;bottom:0}.win-bar__d{left:0;background:#4a6fb5}.win-bar__r{right:0;background:#c0564f}.win-bar__gap{left:50%;width:2px;transform:translateX(-50%);background:#0e141b}.win-tick{position:absolute;z-index:1;width:9px;height:9px;top:50%;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #0e141b}.win-caption.allow-small-text{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:6px 0 0;font-size:14px;line-height:1.35;color:#8a96a3}.win-caption.allow-small-text>span:first-child{flex:1 1 12rem;min-width:0}.win-caption__mid{flex:none}@media (min-width:640px){.win-caption.allow-small-text>span:first-child{max-width:46%}.win-caption__mid{position:absolute;left:50%;transform:translateX(-50%)}}.forecast-chips{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:16px}.forecast-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px}.forecast-chip__dot{width:9px;height:9px;flex:none;border-radius:50%;box-shadow:0 0 0 2px var(--surface)}.forecast-chip__name.allow-small-text,.forecast-chip__value.allow-small-text{font-size:14px;line-height:1.3;color:#c9d2dc}.forecast-chip__value.allow-small-text{font-weight:700}.forecast-agree.allow-small-text{margin:4px 0 0;font-size:12.5px;line-height:1.4;color:#8a96a3}.forecast-answered.allow-small-text{margin:4px 0 0;padding:0;border:0;background:none;box-shadow:none;font-size:12.5px;line-height:1.4;color:var(--forecast-text)}.race-card__footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--race-rule);padding:10px 14px}.race-ghost{min-height:44px;padding:0 8px;border:0;background:transparent;color:#c9d2dc;font:inherit;font-size:16px;font-weight:600;cursor:pointer}a.race-ghost{display:inline-flex;align-items:center;text-decoration:none}.race-ghost:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.race-card__share{margin-left:auto}.race-expand{padding:4px 24px 16px}.race-expand ul{margin:0;padding-left:20px}.race-sources{list-style:none;padding-left:0}.race-sources li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:8px}.race-domain.allow-small-text{font-size:12.5px;color:#8a96a3}.race-sources a{color:var(--accent)}.unverified-tag.allow-small-text{font-size:12.5px;font-weight:600;color:var(--warn)}.race-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.race-card__top h3{display:flex;align-items:center;gap:8px}.race-card__foot{display:flex;align-items:center;gap:16px;margin-top:12px;min-height:44px}.race-card__foot [data-testid=share-on-x]{margin-left:auto}.race-date{margin:4px 0 0;color:var(--text-3)}.race-spread{margin-top:6px}.race-note{margin-top:12px}.verdict{display:inline-flex;align-items:center;flex:none;min-height:28px;margin-top:0;padding:2px 12px;border-radius:999px;font-size:16px;font-weight:600;color:var(--text);background:var(--lean-pending-fill)}.verdict[data-lean=R]{background:var(--lean-r-fill);color:#ffffff}.verdict[data-lean=D]{background:var(--lean-d-fill);color:#ffffff}.verdict[data-lean=tossup]{background:var(--lean-toss-fill);color:#ffffff}.verdict[data-lean=pending]{background:var(--lean-pending-fill);color:#ffffff}.race-card ul{margin:12px 0 0;padding-left:20px}.race-card a{color:var(--accent)}.race-card details{margin-top:16px}.race-card summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--accent)}.opinion{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.flag{color:var(--warn)}.midterms__footer{border-top:1px solid var(--border);padding:32px 16px 48px}.midterms__footer-inner{width:min(1120px,100%);margin:0 auto}.midterms__footer a{color:var(--accent)}.chamber-section{margin-top:8px}.chamber-row{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--text);font:inherit;font-size:16px;text-align:left;cursor:pointer}.chamber-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chamber-row__label{flex:none;font-weight:700}.chamber-row__summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--forecast-text);font-weight:400}.chamber-row__chevron{width:20px;height:20px;flex:none;color:var(--accent);transition:transform .15s ease-out}.chamber-row__chevron.is-open{transform:rotate(90deg)}.house-list{margin-top:16px}.house-disclosure{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--text);font:inherit;font-size:16px;font-weight:600;text-align:left;cursor:pointer}.house-disclosure:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.house-disclosure__label{flex:none}.district-strip{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0}.district-tile.allow-small-text{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;font-size:11px;font-weight:700;line-height:1;color:#ffffff;background:var(--party-pending)}.district-tile[data-party=R]{background:var(--party-r-fill)}.district-tile[data-party=D]{background:var(--party-d-fill)}.district-tile[data-party=toss]{background:var(--party-toss-fill)}.district-tile[data-rating=likely]{opacity:.82}.district-tile[data-rating=lean]{opacity:.62}.district-tile[data-party=pending]{background:var(--party-pending);border:1px dashed var(--party-pending-border);color:var(--forecast-muted);opacity:1}.house-disclosure__chevron{width:20px;height:20px;flex:none;color:var(--accent);transition:transform .15s ease-out}.house-disclosure__chevron.is-open{transform:rotate(90deg)}.rewind-wrap{margin-top:28px}.rewind-kicker[data-allow-small-text]{margin:0;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.rewind-wrap h2{margin:6px 0 20px;font-size:28px}.rewind-banner{margin:0 0 16px;color:var(--forecast-text)}.rewind-banner a,.viewing-banner a{color:var(--accent);text-decoration:underline;text-underline-offset:4px;background:transparent}.viewing-banner{margin-top:16px;padding:16px;border:1px solid var(--accent);border-radius:10px;background:var(--surface)}.rewind-scroll{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain;padding-bottom:4px}.rewind-line{position:relative;display:flex;justify-content:space-between;gap:8px;min-width:max(100%,640px);padding:18px 4px 0}.rewind-line:before{content:"";position:absolute;left:28px;right:28px;top:24px;height:1px;background:var(--forecast-border)}.rewind-dot{position:relative;z-index:1;display:flex;flex:1 0 72px;flex-direction:column;align-items:center;gap:10px;min-width:72px;min-height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-decoration:none;cursor:pointer}.rewind-dot[data-selectable=false]{cursor:default}.rewind-dot__mark{position:relative;display:block;width:10px;height:10px;box-sizing:border-box;border:1.5px solid var(--text-4);border-radius:999px;background:var(--forecast-bg)}.rewind-dot[aria-current=true] .rewind-dot__mark,.rewind-dot__mark[data-filled=true]{border-color:var(--accent);background:var(--accent)}.rewind-dot[aria-current=true] .rewind-dot__mark{width:14px;height:14px;box-shadow:0 0 0 3px var(--forecast-bg),0 0 0 5px var(--accent)}.rewind-dot__flag{position:absolute;left:50%;bottom:calc(100% + 1px);width:12px;height:12px;transform:translateX(-50%);color:var(--accent)}.rewind-dot__label[data-allow-small-text]{font-size:12px;line-height:1.2;color:var(--forecast-muted);white-space:nowrap;background:transparent}a.rewind-dot .rewind-dot__label{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.rewind-dot__label[data-election=true]{color:var(--accent)}.rewind-dot[aria-current=true] .rewind-dot__label,.rewind-dot[aria-current=true] .rewind-dot__label[data-election=true]{color:var(--text);font-weight:600;text-decoration:none}.rewind-dot:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.model-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 6px;margin-top:8px}.model-chip{display:inline-flex;align-items:center;gap:4px;min-height:44px;min-width:44px;border:0;background:transparent;padding:0 2px;color:inherit;cursor:pointer}.model-chip__mark{position:relative;display:inline-flex;flex:none}span.model-chip{cursor:default}.model-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.model-dot{width:12px;height:12px;flex:none;border-radius:999px;border:1px solid var(--surface-2)}.model-pct{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-3)}.model-pct[data-lean=R]{color:var(--lean-r)}.model-pct[data-lean=D]{color:var(--lean-d)}.model-pct[data-lean=tossup]{color:var(--lean-toss)}.model-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.model-strip details{border:1px solid var(--border);border-radius:10px;background:var(--surface-2);min-width:min(100%,220px)}.model-strip summary{gap:8px}.model-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--lean-pending-fill);color:#ffffff}.forecast-hero__stage{position:relative;z-index:1}.forecast-hero__art{position:absolute;top:0;right:0;left:0;z-index:0;height:1040px;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000,#000 66%,rgba(0,0,0,.55) 82%,transparent);mask-image:linear-gradient(180deg,#000,#000 66%,rgba(0,0,0,.55) 82%,transparent)}.forecast-hero__art picture{position:absolute;inset:0;display:block}.forecast-hero__art img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:75% 30%}@media (min-width:768px){.forecast-hero__art{height:700px}.forecast-hero__art img{object-position:50% 30%}}@media (min-width:1280px){.forecast-hero{min-height:640px}.forecast-hero__art{height:640px}}.forecast-hero__grid{display:grid;gap:8px 32px;padding-top:20px}@media (min-width:1280px){.forecast-hero__grid{grid-template-columns:minmax(0,1.35fr) minmax(420px,1fr);align-items:end}.forecast-state-line{grid-column:1/-1;margin-top:0}}.forecast-eyebrow[data-allow-small-text]{margin:0;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.forecast-hero__maps{padding-top:20px;padding-bottom:8px}.forecast-link{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;padding:0;border:0;font:inherit;font-size:16px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.forecast-link,.forecast-link:disabled,.forecast-link:hover{background:transparent;color:var(--accent)}.forecast-link:disabled{opacity:.7;cursor:progress}.forecast-ondemand{margin-top:12px}.forecast-ondemand p{margin:0;font-size:16px;line-height:1.6;color:var(--text-2)}.stat-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{min-width:0;background:var(--surface);border:1px solid var(--forecast-border);border-radius:16px;padding:14px 16px 12px}.forecast-state-line.allow-small-text,.legend.allow-small-text,.legend.allow-small-text li,.map-card__header .allow-small-text,.stat-card__count.allow-small-text,.stat-card__kicker.allow-small-text,.stat-card__line.allow-small-text,.stat-card__note.allow-small-text{font-size:14px;line-height:1.35}.stat-card__kicker{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--forecast-muted)}.stat-card__value{margin:8px 0 6px;font-size:44px;font-weight:700;letter-spacing:-.03em;line-height:.95;font-variant-numeric:tabular-nums;color:var(--text)}.stat-card__value[data-party=R]{color:var(--party-r-ink)}.stat-card__value[data-party=D]{color:var(--party-d-ink)}.stat-card__title{margin:8px 0 6px;font-size:28px;font-weight:700;line-height:1.05;color:var(--text)}.stat-card__count,.stat-card__kicker,.stat-card__line,.stat-card__note{margin:0}.stat-card__line{color:var(--forecast-text)}.stat-card__line strong{font-weight:700}.stat-card__note{margin-top:8px;color:var(--forecast-muted)}.stat-card__count{color:var(--accent);font-weight:600}.coverage-bar{height:4px;margin:10px 0 8px;border-radius:999px;background:var(--party-pending);overflow:hidden}.coverage-bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.forecast-state-line{margin:10px 0 0;color:var(--forecast-muted)}.forecast-state-line [data-party=R]{color:var(--party-r-ink)}.forecast-state-line [data-party=D]{color:var(--party-d-ink)}.forecast-state-line [data-party=toss]{color:var(--party-toss-ink)}@media (min-width:1280px){.forecast-state-line{text-align:right}}.map-card{min-width:0;background:var(--surface);border:1px solid var(--forecast-border);border-radius:16px;padding:12px 12px 8px}@media (max-width:767px){.map-card{padding:12px 8px 8px}}.map-card h2{display:flex;align-items:center;gap:8px;font-size:16px;margin:0}.map-card__header{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px}.map-card__header p{margin:0;color:var(--forecast-muted)}.map-tip__title{margin:0 0 4px;color:var(--text);font-weight:700}.map-tip p{margin:0}.legend__note{color:var(--forecast-muted)}.model-section,.seat-section{margin-top:28px;min-width:0}.midterms .model-section h2,.midterms .seat-section h2{font-size:clamp(26px,4vw,32px);margin-bottom:8px}.model-section__lead,.seat-section__lead{margin:0;max-width:68ch;color:var(--forecast-muted)}.model-board,.seat-board{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px;min-width:0}.model-card,.seat-card{min-width:0;background:var(--surface);border:1px solid var(--forecast-border);border-radius:16px;padding:16px}.model-card--swarm{border-color:color-mix(in srgb,var(--accent) 55%,var(--forecast-border))}.seat-card{container-type:inline-size}.seat-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.seat-card__title{min-width:0}.midterms h3.seat-card__name{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:20px}.seat-card__total{color:var(--forecast-muted);font-weight:400}.seat-card__caption{margin:8px 0 0;color:var(--forecast-text)}.seat-card__majority{margin:2px 0 0;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.model-card .allow-small-text,.seat-card .allow-small-text{font-size:14px;line-height:1.35}.seat-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;margin:16px 0}@container (min-width: 460px){.seat-figures{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (max-width: 520px){.seat-range{padding-left:0}}.seat-figures dt{margin:0;color:var(--forecast-muted)}.seat-figures__value{margin:4px 0 0;font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--text);overflow-wrap:anywhere}.seat-figures__value[data-party=R]{color:var(--party-r-ink)}.seat-figures__value[data-party=D]{color:var(--party-d-ink)}.seat-figures__value[data-party=I]{color:var(--forecast-text)}.seat-figures__value[data-party=none]{color:var(--forecast-muted)}.seat-bars{display:grid;gap:12px}.seat-bar__meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;margin-bottom:6px}.seat-bar__name{color:var(--forecast-muted);letter-spacing:.06em;text-transform:uppercase}.seat-bar__count{margin-left:auto;color:var(--forecast-text);font-variant-numeric:tabular-nums;text-align:right}.seat-track{position:relative;height:26px;border-radius:7px;background:var(--party-pending)}.seat-seg,.seat-track{display:flex;overflow:hidden}.seat-seg{align-items:center;min-width:0;height:100%}.seat-seg .allow-small-text{padding-left:8px;color:var(--text);font-weight:700;white-space:nowrap}.seat-seg--r{background:var(--party-r-fill)}.seat-seg--d{background:var(--party-d-fill)}.seat-seg--mid{background:var(--party-mid)}.seat-seg--empty{background:var(--party-pending)}.seat-seg--pending{background:repeating-linear-gradient(-45deg,var(--party-pending-border) 0 4px,var(--party-pending) 4px 8px)}.seat-majority-line{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--accent);z-index:2;pointer-events:none}.seat-range{position:relative;box-sizing:border-box;min-width:0;margin-top:4px;padding-top:10px;padding-left:var(--range-end)}.seat-range__bracket{position:absolute;top:0;height:8px;box-sizing:border-box;border:1px solid var(--accent);border-top:0;border-radius:0 0 3px 3px}.seat-range__label{display:block;min-width:0;color:var(--accent);font-variant-numeric:tabular-nums}.seat-progress{margin-top:12px}.seat-progress p{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:0 0 6px}.seat-progress__count{color:var(--accent)}.seat-progress__note{color:var(--forecast-muted)}.model-card__head{display:flex;align-items:center;gap:10px;min-width:0}.model-card__dot{width:14px;height:14px;flex:none;border-radius:999px}.midterms h3.model-card__name{margin:0;font-size:16px;line-height:1.3}.model-card__meta{margin:2px 0 0;color:var(--forecast-muted)}.model-card__body{margin-top:4px}.model-card__kicker{display:flex;align-items:center;gap:6px;margin:14px 0 6px;color:var(--forecast-muted);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.model-card__empty{margin:0;color:var(--forecast-muted)}.model-split{display:flex;justify-content:space-between;gap:8px;margin:0 0 8px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.model-split [data-party=R]{color:var(--party-r-ink)}.model-split [data-party=D]{color:var(--party-d-ink)}.model-split [data-party=I]{color:var(--forecast-text);font-weight:600}.majority-pill{display:inline-block;width:fit-content;max-width:100%;margin:8px 0 0;padding:0 0 1px;color:var(--forecast-text);border-bottom:1px solid var(--accent)}.majority-pill [data-party=R]{color:var(--party-r-ink)}.majority-pill [data-party=D]{color:var(--party-d-ink)}.model-bar{position:relative;height:14px;margin:0}.model-bar__track{display:flex;height:8px;margin-top:3px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.model-bar__d,.model-bar__r{height:100%}.model-bar__r{background:var(--party-r-fill)}.model-bar__d{background:var(--party-d-fill)}.model-bar__tick{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--accent);pointer-events:none}.model-card__foot{margin:8px 0 0;color:var(--forecast-muted);font-variant-numeric:tabular-nums}@media (min-width:768px){.model-board,.seat-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.model-board{grid-template-columns:repeat(4,minmax(0,1fr))}}.forecast-jump{display:flex;flex-direction:column;gap:8px;margin:24px 0 0;max-width:420px;color:var(--forecast-text)}.forecast-jump select{appearance:none;min-height:44px;font-size:16px;border-radius:10px;border:1px solid #232c36;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%235fe0c8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;color:var(--text);padding:0 40px 0 12px}.forecast-jump select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:640px){.stat-cards{grid-template-columns:1fr}}@media (max-width:767px){.forecast-jump{position:sticky;top:56px;z-index:30;max-width:none;margin-inline:-16px;padding:8px 16px;background:var(--forecast-bg);border-bottom:1px solid var(--forecast-border)}.stat-card__value{font-size:36px}.stat-card__title{font-size:24px}}.forecast-modal__overlay{position:fixed;inset:0;z-index:80;background:color-mix(in srgb,#05080d 72%,transparent)}.forecast-modal{position:fixed;z-index:81;top:50%;left:50%;transform:translate(-50%,-50%);width:min(640px,calc(100vw - 32px));max-height:min(80vh,720px);overflow:auto;background:#0e141b;border:1px solid #1d2630;border-radius:16px;padding:24px;color:#c9d2dc}.forecast-modal__title{color:#ffffff;font-size:24px;margin:0 0 8px}.forecast-modal__lede{margin:0 0 16px}.forecast-modal__body h3{margin:16px 0 8px;font-size:16px}.forecast-modal__body li,.forecast-modal__body p{margin:0 0 8px}.forecast-modal .forecast-link,.forecast-modal__body a{color:#5fe0c8}.forecast-modal .forecast-link{margin-top:12px}.control-chart{margin-top:24px;background:transparent}.control-review-page{padding-top:16px}.control-chart__review{margin:0 0 12px;color:var(--warn)}.control-chart__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.control-chart__chambers,.control-chart__ranges{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.control-chart__ranges{margin-left:auto}.control-chart__link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;color:var(--accent);font:inherit;font-size:16px;line-height:1.2;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.control-chart__link .chamber-icon{color:inherit}.control-chart__link[aria-pressed=true]{color:var(--text);font-weight:600;text-decoration:none}.control-chart__frame:focus-visible,.control-chart__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.control-chart__readout{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 32px;min-height:48px;margin:4px 0 8px}.control-chart__readout-item{display:flex;align-items:baseline;gap:8px;margin:0;white-space:nowrap}.control-chart__name{font-size:16px;font-weight:600}.control-chart__pct{font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.control-chart__readout-item[data-party=R]{color:var(--party-r-ink)}.control-chart__readout-item[data-party=D]{color:var(--party-d-ink)}.control-chart__frame{position:relative;min-height:250px}.control-chart__svg{display:block;width:100%;height:auto;pointer-events:all;cursor:crosshair;touch-action:pan-y;user-select:none}.control-chart__svg *{pointer-events:none}.control-chart__mid{stroke:var(--forecast-muted);stroke-width:1;stroke-dasharray:4 6}.control-chart__base{stroke:var(--forecast-border);stroke-width:1}.control-chart__cross line{stroke:var(--accent);stroke-width:1.5}.control-chart__tip{position:absolute;z-index:2;display:flex;flex-direction:column;gap:4px;min-width:180px;padding:12px 16px;border:1px solid var(--accent);border-radius:10px;background:var(--bg);pointer-events:none}.control-chart__tip p{margin:0}.control-chart__tip-date{color:var(--forecast-text)}.control-chart__tip [data-party=R]{color:var(--party-r-ink)}.control-chart__tip [data-party=D]{color:var(--party-d-ink)}.control-chart__note{margin:8px 0 0;color:var(--forecast-muted)}.control-chart__note--lead{min-height:48px;margin-top:4px;margin-bottom:8px}@media (min-width:768px){.control-chart__pct{font-size:48px}.control-chart__frame{min-height:300px}}.method{width:min(1320px,100%);margin:0 auto;padding:28px 16px 8px;box-sizing:border-box}.method-nav ol{display:flex;flex-wrap:wrap;gap:0 16px;margin:8px 0 0;padding:0;list-style:none}.method-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:600;text-decoration:none}.method-nav a:hover{text-decoration:underline;text-underline-offset:3px}.method-fold summary:focus-visible,.method-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.method-lede{max-width:68ch;margin:12px 0 0;color:var(--forecast-text)}.method-section{scroll-margin-top:80px;margin-top:32px}.method-section h2{font-size:24px;margin-bottom:8px}.method-card p,.method-section p{max-width:72ch;margin:0 0 12px;color:var(--forecast-text)}.method-limits,.method-models,.method-stats{margin:0 0 8px;padding:0;list-style:none}.method-models{display:grid;gap:8px;margin-top:4px}.method-model{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.method-model__dot{width:10px;height:10px;flex:none;border-radius:50%}.method-model__name{color:var(--text);font-weight:600}.method-fold{margin:8px 0 12px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.method-fold summary{display:flex;align-items:center;min-height:44px;padding:12px 16px;color:var(--text);font-weight:600;cursor:pointer}.method-fold pre{margin:0;padding:0 16px 16px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.5;color:var(--text-2)}.method-pair{display:grid;gap:12px;margin:4px 0 12px}.method-card{min-width:0;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.method-card h3{margin-bottom:8px;font-size:18px}.method-quote{margin:0 0 16px;padding:12px 16px;border-left:3px solid var(--accent);color:var(--forecast-text)}.method-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 16px}.method-stat{min-width:0;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.method-stat b{display:block;color:var(--text);font-size:22px;letter-spacing:-.03em;overflow-wrap:anywhere}.method-stat span{display:block;margin-top:4px;color:var(--forecast-muted);font-size:14px;line-height:1.35}.method-specs{display:grid;gap:10px;margin:4px 0 8px}.method-specs div{min-width:0;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.method-specs dt{margin:0;color:var(--forecast-muted);font-size:14px;font-weight:600}.method-specs dd{margin:4px 0 0;color:var(--text);overflow-wrap:anywhere}.method-limits li{padding:12px 0;border-top:1px solid var(--border);color:var(--forecast-text)}@media (min-width:768px){.method{padding-inline:32px;padding-top:36px}.method h1{font-size:44px}.method-section h2{font-size:28px}.method-pair,.method-specs{grid-template-columns:1fr 1fr}.method-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1024px){.method-layout{display:grid;grid-template-columns:168px minmax(0,1fr);gap:40px;align-items:start}.method-nav{position:sticky;top:80px}.method-nav ol{flex-direction:column;gap:0}}