:root{--accent-text-primary:var(--vh-color-accent-text,#351c71);--accent-text-secondary:var(--vh-color-accent-text-secondary,#7c3aed);--accent-text-soft:#9b74f5;--accent-surface-subtle:#f6f0ff;--accent-surface-soft:#efe7ff;--accent-border-soft:#d9c7ff;--forecast-hover-outline:var(--accent-border-soft);--text-primary:var(--vh-color-text,#1a1a1a);--text-secondary:var(--vh-color-text-secondary,#4a4a4a);--text-muted:var(--vh-color-text-muted,#737373);--stroke-soft:var(--vh-color-border-subtle,#e5e5e5);--bg-base:var(--vh-color-bg,#f8f9fc);--bg-surface:var(--vh-color-surface,#eef0f7);--bg-elevated:var(--vh-color-surface-raised,#fff);--primary-bg:var(--vh-color-action-bg,#7c3aed);--primary-bg-hover:var(--vh-color-action-hover,#6a2fdb);--primary-bg-active:var(--vh-color-action-active,#5a26c7);--primary-text:var(--vh-color-on-action,#fff);--primary-focus:var(--vh-color-focus,#c9b6ff);--secondary-bg:var(--vh-color-secondary-bg,#fff);--secondary-text:var(--vh-color-secondary-text,#351c71);--secondary-border:var(--accent-border-soft);--secondary-hover:var(--accent-surface-subtle);--secondary-active:var(--accent-surface-soft);--field-bg:var(--vh-color-field-bg,#f6f0ff);--field-border:var(--vh-color-border-control,#d2d2d7);--field-text:var(--vh-color-field-text,#1a1a1a);--field-placeholder:var(--vh-color-field-placeholder,#737373);--field-focus:var(--vh-color-field-focus,#c9b6ff);--destructive-bg:var(--vh-color-destructive-bg,#dc2626);--destructive-text:var(--vh-color-destructive-text,#fff);--destructive-hover:var(--vh-color-destructive-hover,#b91c1c);--destructive-active:var(--vh-color-destructive-active,#9f1818);--destructive-focus:var(--vh-color-destructive-focus,#fca5a5);--constructive-bg:var(--vh-color-constructive-bg,#2ab56f);--constructive-text:var(--vh-color-constructive-text,#fff);--constructive-hover:var(--vh-color-constructive-hover,#23985d);--constructive-active:var(--vh-color-constructive-active,#1d7f4d);--constructive-focus:var(--vh-color-constructive-focus,#a7f3d0);--disabled-text:var(--vh-color-disabled-text,#c7c7c7);--disabled-bg:var(--vh-color-disabled-bg,#f0f0f0);--disabled-border:var(--vh-color-disabled-border,#e0e0e0);--menu-bg:var(--vh-color-menu-bg,#fff);--menu-border:var(--vh-color-menu-border,#dcdce7);--menu-divider:var(--vh-color-menu-divider,#ecebf7);--menu-item-hover:var(--accent-surface-subtle);--menu-item-active:var(--accent-surface-soft);--menu-shadow:var(--vh-color-menu-shadow,0 22px 48px #351c7129);--overlay-scrim:var(--vh-color-overlay-scrim,#10121b52);--series-1:var(--vh-data-series-1,#7c3aed);--series-2:var(--vh-data-series-2,#351c71);--series-3:var(--party-gop-solid);--series-4:var(--vh-data-series-4,#e67e22);--series-5:var(--vh-data-series-5,#f1c40f);--series-6:var(--vh-data-series-6,#16a085);--series-7:var(--vh-data-series-7,#27ae60);--series-8:var(--party-dem-solid);--series-9:var(--vh-data-series-9,#8e44ad);--series-10:var(--vh-data-series-10,#2c3e50);--series-11:var(--vh-data-series-11,#7f8c8d);--series-12:var(--vh-data-series-12,#d35400);--forecast-dem-01:#011f46;--forecast-dem-02:#012951;--forecast-dem-03:#01335c;--forecast-dem-04:#013d67;--forecast-dem-05:#014772;--forecast-dem-06:#08527e;--forecast-dem-07:#105d8a;--forecast-dem-08:#186896;--forecast-dem-09:#2073a2;--forecast-dem-10:#287eae;--forecast-dem-11:#308aba;--forecast-dem-12:#3d95c2;--forecast-dem-13:#4ba0ca;--forecast-dem-14:#58abd2;--forecast-dem-15:#66b6da;--forecast-dem-16:#74c0e1;--forecast-dem-17:#8acbe7;--forecast-dem-18:#a0d6ed;--forecast-dem-19:#b7e1f3;--forecast-dem-20:#ceeafb;--forecast-gop-01:#6b0000;--forecast-gop-02:#770606;--forecast-gop-03:#830b0b;--forecast-gop-04:#8f1111;--forecast-gop-05:#9b1717;--forecast-gop-06:#a71c1c;--forecast-gop-07:#b32222;--forecast-gop-08:#be2828;--forecast-gop-09:#ca2d2d;--forecast-gop-10:#d63333;--forecast-gop-11:#d94343;--forecast-gop-12:#dc5353;--forecast-gop-13:#df6363;--forecast-gop-14:#e27373;--forecast-gop-15:#e68383;--forecast-gop-16:#e99494;--forecast-gop-17:#eca4a4;--forecast-gop-18:#efb4b4;--forecast-gop-19:#f2c4c4;--forecast-gop-20:#f5d4d4;--forecast-ind-01:#2e0066;--forecast-ind-02:#350071;--forecast-ind-03:#3b007c;--forecast-ind-04:#420087;--forecast-ind-05:#490092;--forecast-ind-06:#51009e;--forecast-ind-07:#5900a9;--forecast-ind-08:#6100b4;--forecast-ind-09:#6900bf;--forecast-ind-10:#7308c7;--forecast-ind-11:#7d16cc;--forecast-ind-12:#8724d1;--forecast-ind-13:#9337d7;--forecast-ind-14:#9f4bdd;--forecast-ind-15:#ab5fe3;--forecast-ind-16:#b774e8;--forecast-ind-17:#c48ff0;--forecast-ind-18:#d1abf5;--forecast-ind-19:#dec6fa;--forecast-ind-20:#eadcfd;--party-dem-solid:#287eae;--party-gop-solid:#d63333;--party-ind-solid:#7308c7;--party-dem-text:var(--party-dem-solid);--party-gop-text:var(--party-gop-solid);--party-ind-text:var(--party-ind-solid);--party-dem-fixed:#001635;--party-gop-fixed:#520000;--party-ind-fixed:#2e0066;--party-dem-solid-rgb:40, 126, 174;--party-gop-solid-rgb:214, 51, 51;--party-ind-solid-rgb:115, 8, 199;--forecast-dem-tossup:var(--forecast-dem-20);--forecast-dem-lean:var(--forecast-dem-16);--forecast-dem-likely:var(--forecast-dem-12);--forecast-dem-safe:var(--forecast-dem-01);--forecast-gop-tossup:var(--forecast-gop-20);--forecast-gop-lean:var(--forecast-gop-16);--forecast-gop-likely:var(--forecast-gop-12);--forecast-gop-safe:var(--forecast-gop-01);--vh-text-xxs:.5rem;--vh-text-xs:.75rem;--vh-text-sm:.875rem;--vh-text-md:1rem;--vh-text-lg:1.25rem;--vh-text-xl:1.5rem;--vh-text-2xl:2rem;--vh-text-3xl:2.5rem;--vh-leading-tight:1.1;--vh-leading-standard:1.4;--vh-leading-relaxed:1.6;--vh-button-height-xs:2rem;--vh-button-height-sm:2.5rem;--vh-button-height-md:3rem;--vh-button-height-lg:3.5rem;--vh-button-padding-xs:0 .75rem;--vh-button-padding-sm:0 1rem;--vh-button-padding-md:0 1.25rem;--vh-button-padding-lg:0 1.5rem;--vh-button-radius-xs:4px;--vh-button-radius-sm:6px;--vh-button-radius-md:8px;--vh-button-radius-lg:10px}[data-theme=dark]{--accent-text-primary:var(--vh-color-accent-text,#7c3aed);--accent-text-secondary:var(--vh-color-accent-text-secondary,#a78bfa);--accent-text-soft:#c4b5fd;--accent-surface-subtle:#a78bfa1f;--accent-surface-soft:#a78bfa33;--accent-border-soft:#a78bfa57;--forecast-hover-outline:var(--accent-border-soft);--text-primary:var(--vh-color-text,#f9f9f9);--text-secondary:var(--vh-color-text-secondary,#c9c9c9);--text-muted:var(--vh-color-text-muted,#8b8b8b);--stroke-soft:var(--vh-color-border-subtle,#3a3a3a);--party-dem-text:color-mix(in srgb, var(--party-dem-solid) 68%, #fff);--party-gop-text:color-mix(in srgb, var(--party-gop-solid) 68%, #fff);--party-ind-text:color-mix(in srgb, var(--party-ind-solid) 55%, #fff);--bg-base:var(--vh-color-bg,#0b0b0d);--bg-surface:var(--vh-color-surface,#1d1d22);--bg-elevated:var(--vh-color-surface-raised,#2a2a30);--primary-bg:var(--vh-color-action-bg,#7c3aed);--primary-bg-hover:var(--vh-color-action-hover,#8e54ff);--primary-bg-active:var(--vh-color-action-active,#6d29d3);--primary-text:var(--vh-color-on-action,ivory);--primary-focus:var(--vh-color-focus,#a78bfa);--secondary-bg:var(--vh-color-secondary-bg,#1d1d22);--secondary-text:var(--vh-color-secondary-text,#a78bfa);--secondary-border:var(--vh-color-secondary-border,var(--accent-border-soft));--secondary-hover:var(--vh-color-secondary-hover,var(--accent-surface-subtle));--secondary-active:var(--vh-color-secondary-active,var(--accent-surface-soft));--field-bg:var(--vh-color-field-bg,#1d1d22);--field-border:var(--vh-color-border-control,#3a3a3a);--field-text:var(--vh-color-field-text,#f9f9f9);--field-placeholder:var(--vh-color-field-placeholder,#8b8b8b);--field-focus:var(--vh-color-field-focus,#a78bfa);--constructive-bg:var(--vh-color-constructive-bg,#2ab56f);--constructive-text:var(--vh-color-constructive-text,#fff);--constructive-hover:var(--vh-color-constructive-hover,#33c881);--constructive-active:var(--vh-color-constructive-active,#1d7f4d);--constructive-focus:var(--vh-color-constructive-focus,#6ee7b7);--disabled-text:var(--vh-color-disabled-text,#5f5f5f);--disabled-bg:var(--vh-color-disabled-bg,#1a1a1e);--disabled-border:var(--vh-color-disabled-border,#26262c);--menu-bg:var(--vh-color-menu-bg,#1f1f25);--menu-border:var(--vh-color-menu-border,#2f2f37);--menu-divider:var(--vh-color-menu-divider,#31313b);--menu-item-hover:var(--vh-color-menu-item-hover,#a78bfa29);--menu-item-active:var(--vh-color-menu-item-active,#a78bfa42);--menu-shadow:var(--vh-color-menu-shadow,0 24px 52px #00000073);--overlay-scrim:var(--vh-color-overlay-scrim,#06070b99);--series-1:var(--vh-data-series-1,#a78bfa);--series-2:var(--vh-data-series-2,#7c3aed);--series-3:var(--party-gop-solid);--series-4:var(--vh-data-series-4,#ffb74d);--series-5:var(--vh-data-series-5,#f7dc6f);--series-6:var(--vh-data-series-6,#48c9b0);--series-7:var(--vh-data-series-7,#58d68d);--series-8:var(--party-dem-solid);--series-9:var(--vh-data-series-9,#bb8fce);--series-10:var(--vh-data-series-10,#bfc9ca);--series-11:var(--vh-data-series-11,#ff8f48);--series-12:var(--vh-data-series-12,#7f8c8d);--series-neon-1:#00fbff;--series-neon-2:#f0f;--series-neon-3:#f90;--series-neon-4:#ff0;--series-neon-5:#0f0}.app-shell--legacy{--accent-text-primary:#7c2d00;--accent-text-secondary:#ea580c;--accent-text-soft:#fb923c;--accent-surface-subtle:#fff7ed;--accent-surface-soft:#ffedd5;--accent-border-soft:#fed7aa;--forecast-hover-outline:var(--accent-border-soft);--primary-bg:#ea580c;--primary-bg-hover:#c2410c;--primary-bg-active:#9a3412;--primary-focus:#fdba74;--secondary-text:#7c2d00;--secondary-border:#fed7aa;--secondary-hover:#fff7ed;--secondary-active:#ffedd5;--field-bg:#fff7ed;--field-focus:#fdba74;--menu-item-hover:#fff7ed;--menu-item-active:#ffedd5;--menu-shadow:0 22px 48px #7c2d0029}[data-theme=dark] .app-shell--legacy{--accent-text-primary:#ea580c;--accent-text-secondary:#fb923c;--accent-text-soft:#fdba74;--accent-surface-subtle:#fb923c1f;--accent-surface-soft:#fb923c33;--accent-border-soft:#fb923c57;--forecast-hover-outline:var(--accent-border-soft);--primary-bg:#ea580c;--primary-bg-hover:#fb923c;--primary-bg-active:#c2410c;--primary-focus:#fdba74;--secondary-text:#fb923c;--secondary-border:#fb923c57;--secondary-hover:#fb923c1f;--secondary-active:#fb923c33;--field-focus:#fdba74;--menu-item-hover:#fb923c29;--menu-item-active:#fb923c42;--menu-shadow:0 24px 52px #00000073}*,:before,:after{box-sizing:border-box}html{font-size:16px}body{font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--vh-text-md);line-height:var(--vh-leading-standard);color:var(--text-primary);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background-color:#0000;margin:0}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;color:var(--text-primary);font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:500;line-height:var(--vh-leading-tight);margin:0 0 .8rem}p{color:var(--text-secondary);margin:0 0 1rem}a{color:var(--accent-text-secondary);text-decoration:none;transition:color .16s}a:hover,a:focus-visible{color:var(--accent-text-primary)}ul,ol{margin:0;padding-left:1.25rem}button{font-family:inherit;font-size:inherit;background:0 0;border:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-focus) 40%, transparent);outline:none}::selection{background:color-mix(in srgb, var(--accent-text-secondary) 25%, transparent)}.vh-text-xxs{font-size:var(--vh-text-xxs);line-height:var(--vh-leading-standard)}.vh-text-xs{font-size:var(--vh-text-xs);line-height:var(--vh-leading-standard)}.vh-text-sm{font-size:var(--vh-text-sm);line-height:var(--vh-leading-standard)}.vh-text-md{font-size:var(--vh-text-md);line-height:var(--vh-leading-standard)}.vh-text-lg{font-size:var(--vh-text-lg);line-height:var(--vh-leading-tight)}.vh-text-xl{font-size:var(--vh-text-xl);line-height:var(--vh-leading-tight)}.vh-text-2xl{font-size:var(--vh-text-2xl);line-height:var(--vh-leading-tight)}.vh-text-3xl{font-size:var(--vh-text-3xl);line-height:var(--vh-leading-tight)}.vh-text-muted{color:var(--text-muted)}.vh-text-uppercase{text-transform:uppercase;letter-spacing:.08em}.vh-weight-medium{font-weight:500}.vh-weight-semibold{font-weight:600}.vh-button{border-radius:var(--vh-button-radius-md);padding:var(--vh-button-padding-md);min-height:var(--vh-button-height-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;font-weight:600;line-height:1;transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.vh-button:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb, var(--primary-focus) 35%, transparent)}.vh-button[disabled],.vh-button.is-disabled{cursor:not-allowed;background-color:var(--disabled-bg);color:var(--disabled-text);border-color:var(--disabled-border);box-shadow:none}.vh-button--primary{background-color:var(--primary-bg);color:var(--primary-text)}.vh-button--primary:hover:not([disabled]):not(.is-disabled){background-color:var(--primary-bg-hover)}.vh-button--primary:active:not([disabled]):not(.is-disabled){background-color:var(--primary-bg-active)}.vh-button--secondary{background-color:var(--secondary-bg);color:var(--secondary-text);border-color:var(--secondary-border)}.vh-button--secondary:hover:not([disabled]):not(.is-disabled){background-color:var(--secondary-hover)}.vh-button--secondary:active:not([disabled]):not(.is-disabled){background-color:var(--secondary-active)}.vh-button--constructive{background-color:var(--constructive-bg);color:var(--constructive-text)}.vh-button--constructive:hover:not([disabled]):not(.is-disabled){background-color:var(--constructive-hover)}.vh-button--constructive:active:not([disabled]):not(.is-disabled){background-color:var(--constructive-active)}.vh-button--destructive{background-color:var(--destructive-bg);color:var(--destructive-text)}.vh-button--destructive:hover:not([disabled]):not(.is-disabled){background-color:var(--destructive-hover)}.vh-button--destructive:active:not([disabled]):not(.is-disabled){background-color:var(--destructive-active)}.vh-button--ghost{color:var(--accent-text-primary);background-color:#0000;border-color:#0000}.vh-button--ghost:hover:not([disabled]):not(.is-disabled){background-color:var(--secondary-hover)}.vh-button--ghost:active:not([disabled]):not(.is-disabled){background-color:var(--secondary-active)}.vh-button-xs{font-size:var(--vh-text-xs);min-height:var(--vh-button-height-xs);padding:var(--vh-button-padding-xs);border-radius:var(--vh-button-radius-xs)}.vh-button-sm{font-size:var(--vh-text-sm);min-height:var(--vh-button-height-sm);padding:var(--vh-button-padding-sm);border-radius:var(--vh-button-radius-sm)}.vh-button-md{font-size:var(--vh-text-md);min-height:var(--vh-button-height-md);padding:var(--vh-button-padding-md);border-radius:var(--vh-button-radius-md)}.vh-button-lg{font-size:var(--vh-text-lg);min-height:var(--vh-button-height-lg);padding:var(--vh-button-padding-lg);border-radius:var(--vh-button-radius-lg)}.vh-button--icon{border-width:2px;border-radius:12px;justify-content:center;align-items:center;min-width:0;padding:0;transition:border-color .2s,background-color .2s,color .2s;display:inline-flex}.vh-button--icon svg{width:60%;height:60%}.vh-button--icon.vh-button-xs{width:var(--vh-button-height-xs);height:var(--vh-button-height-xs)}.vh-button--icon.vh-button-sm{width:var(--vh-button-height-sm);height:var(--vh-button-height-sm)}.vh-button--icon.vh-button-md{width:var(--vh-button-height-md);height:var(--vh-button-height-md)}.vh-button--icon.vh-button-lg{width:var(--vh-button-height-lg);height:var(--vh-button-height-lg)}.vh-button--icon.vh-button--secondary{background:var(--secondary-bg);border-color:var(--secondary-border);color:var(--secondary-text)}.vh-button--icon.vh-button--secondary:hover:not([disabled]):not(.is-disabled){background:var(--secondary-hover)}.vh-button--icon.vh-button--secondary:active:not([disabled]):not(.is-disabled){background:var(--secondary-active)}.vh-button--icon.vh-button--primary{background-color:var(--primary-bg);border-color:var(--primary-focus);color:var(--primary-text)}.vh-button--icon.vh-button--primary:hover:not([disabled]):not(.is-disabled){background-color:var(--primary-bg-hover);border-color:var(--primary-focus)}.vh-button--icon.vh-button--primary:active:not([disabled]):not(.is-disabled){background-color:var(--primary-bg-active);border-color:var(--primary-focus)}.vh-button--icon.vh-button--constructive{background-color:var(--constructive-bg);border-color:var(--constructive-focus);color:var(--constructive-text)}.vh-button--icon.vh-button--constructive:hover:not([disabled]):not(.is-disabled){background-color:var(--constructive-hover);border-color:var(--constructive-focus)}.vh-button--icon.vh-button--constructive:active:not([disabled]):not(.is-disabled){background-color:var(--constructive-active);border-color:var(--constructive-focus)}.vh-button--icon.vh-button--destructive{background-color:var(--destructive-bg);border-color:var(--destructive-focus);color:var(--destructive-text)}.vh-button--icon.vh-button--destructive:hover:not([disabled]):not(.is-disabled){background-color:var(--destructive-hover);border-color:var(--destructive-focus)}.vh-button--icon.vh-button--destructive:active:not([disabled]):not(.is-disabled){background-color:var(--destructive-active);border-color:var(--destructive-focus)}.vh-field{flex-direction:column;gap:.45rem;display:flex}.vh-field__label{font-size:var(--vh-text-sm);color:var(--text-secondary);font-weight:600}.vh-field__hint{font-size:var(--vh-text-xs);color:var(--text-muted)}.vh-input,.vh-textarea{appearance:none;font-family:inherit;font-size:var(--vh-text-md);border:1px solid var(--menu-border);background-color:var(--menu-bg);color:var(--field-text);border-radius:10px;width:100%;padding:.65rem .85rem;transition:border-color .14s,box-shadow .14s,background-color .14s}.vh-input::placeholder,.vh-textarea::placeholder{color:var(--field-placeholder)}.vh-input:hover,.vh-textarea:hover{border-color:var(--field-border)}.vh-input:focus,.vh-textarea:focus{border-color:var(--field-focus);background-color:var(--bg-elevated);box-shadow:0 0 0 3px color-mix(in srgb, var(--field-focus) 20%, transparent);outline:none}.vh-textarea{resize:vertical;min-height:120px;line-height:var(--vh-leading-relaxed)}.vh-input:disabled,.vh-textarea:disabled{cursor:not-allowed;background-color:var(--disabled-bg);color:var(--disabled-text);border-color:var(--disabled-border)}select.vh-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%234a4a4a' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;background-size:16px;padding-right:2rem}[data-theme=dark] select.vh-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23c9c9c9' d='M4 6l4 4 4-4'/%3E%3C/svg%3E")}.vh-search{align-items:center;display:flex;position:relative}.vh-search__input{appearance:none;font-family:inherit;font-size:var(--vh-text-md);border:1px solid var(--menu-border);background-color:var(--menu-bg);color:var(--field-text);border-radius:10px;width:100%;padding:.65rem .85rem .65rem 2.5rem;transition:border-color .14s,box-shadow .14s,background-color .14s}.vh-search__input::placeholder{color:var(--field-placeholder)}.vh-search__input:hover{border-color:var(--field-border)}.vh-search__input:focus{border-color:var(--field-focus);background-color:var(--bg-elevated);box-shadow:0 0 0 3px color-mix(in srgb, var(--field-focus) 20%, transparent);outline:none}.vh-search__icon{pointer-events:none;width:18px;height:18px;color:var(--text-muted);position:absolute;left:.75rem}details.vh-dropdown{min-width:220px;display:inline-block;position:relative}summary.vh-dropdown__trigger{cursor:pointer;list-style:none}summary.vh-dropdown__trigger::-webkit-details-marker{display:none}.vh-dropdown__trigger{width:100%;padding:var(--vh-button-padding-sm);min-height:var(--vh-button-height-sm);border-radius:var(--vh-button-radius-sm);background-color:var(--menu-bg);color:var(--secondary-text);border:1px solid var(--secondary-border);justify-content:space-between;align-items:center;gap:.65rem;transition:background-color .16s,border-color .16s,color .16s;display:inline-flex}.vh-dropdown__trigger:hover,details.vh-dropdown[open]>summary.vh-dropdown__trigger{background-color:var(--secondary-hover)}.vh-dropdown__menu{background-color:var(--menu-bg);border:1px solid var(--menu-border);width:100%;box-shadow:var(--menu-shadow);opacity:0;pointer-events:none;z-index:20;border-radius:12px;flex-direction:column;gap:.25rem;padding:.5rem;transition:opacity .16s;display:flex;position:absolute;top:calc(100% + .5rem);left:0}details.vh-dropdown[open] .vh-dropdown__menu{opacity:1;pointer-events:auto}.vh-dropdown__item{font-size:var(--vh-text-sm);color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .75rem;transition:background-color .14s,color .14s;display:flex}.vh-dropdown__item:hover{background-color:var(--menu-item-hover);color:var(--accent-text-secondary)}.vh-dropdown__item:active{background-color:var(--menu-item-active)}.vh-dropdown__item.is-destructive{color:var(--destructive-bg)}.vh-dropdown__item+.vh-dropdown__item-divider{margin:.25rem 0}.vh-dropdown__item-divider{background:var(--menu-divider);height:1px}.vh-dropdown__meta{font-size:var(--vh-text-xs);color:var(--text-muted)}.vh-surface{background-color:var(--bg-surface);border:1px solid var(--stroke-soft);border-radius:16px;padding:1.5rem}.vh-elevated{background-color:var(--bg-elevated);box-shadow:0 18px 44px #17192614}.vh-stack-sm{flex-direction:column;gap:1.75rem;display:flex}.vh-stack-md{flex-direction:column;gap:1.25rem;display:flex}.vh-inline{align-items:center;gap:.5rem;display:inline-flex}.vh-tag{font-size:var(--vh-text-xs);color:var(--secondary-text);background-color:var(--secondary-hover);border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-weight:600;display:inline-flex}.vh-badge{background-color:var(--destructive-bg);min-width:1.75rem;height:1.75rem;color:var(--destructive-text);font-size:var(--vh-text-xs);border-radius:999px;justify-content:center;align-items:center;padding:0 .45rem;font-weight:600;display:inline-flex}@media (width<=768px){:root{--vh-text-3xl:2.25rem;--vh-text-2xl:1.875rem;--vh-text-xl:1.375rem;--vh-text-lg:1.125rem}.forecast-stage-layout__content{margin-top:none}.vh-button{width:100%}.vh-dropdown__menu{min-width:240px}}body{background:var(--bg-base);min-height:100vh}.visually-hidden{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.app-shell{flex-direction:column;gap:3rem;max-width:1100px;margin:0 auto;padding:2.75rem 1.5rem 3.5rem;display:flex}.app-shell--forecast{--forecast-dock-content-center-offset:0px;max-width:calc(68rem + 416px + 2*clamp(1.5rem,4vw,4.75rem));padding:1.5rem 1.25rem calc(6.4rem + env(safe-area-inset-bottom,0px));gap:1.75rem}.forecast-stage{gap:1.5rem}.forecast-stage--house,.forecast-stage--race,.forecast-stage--statewide{gap:1.75rem}.forecast-stage-layout{--forecast-stage-content-width:68rem;--forecast-stage-sidebar-width:208px;--forecast-stage-sidebar-gap:clamp(1.5rem, 4vw, 4.75rem);grid-template-columns:minmax(0, var(--forecast-stage-sidebar-width)) minmax(0, var(--forecast-stage-content-width)) minmax(0, var(--forecast-stage-sidebar-width));column-gap:var(--forecast-stage-sidebar-gap);justify-content:center;align-items:start;min-width:0;display:grid}.forecast-stage-layout__content{flex-direction:column;grid-area:1/2;gap:2rem;width:100%;min-width:0;margin-top:2rem;display:flex}.forecast-anchor-section{scroll-margin-top:calc(1rem + env(safe-area-inset-top,0px))}.forecast-section-sidebar{top:calc(1rem + env(safe-area-inset-top,0px));width:var(--forecast-stage-sidebar-width);z-index:4;grid-area:1/1;place-self:start stretch;position:sticky}.forecast-section-sidebar__inner{isolation:isolate;flex-direction:column;align-items:flex-start;gap:.95rem;width:208px;padding:2.75rem 0 0;display:flex}.forecast-section-sidebar__back-link{color:var(--text-muted);letter-spacing:.11em;text-transform:uppercase;border:0;align-items:center;gap:.55rem;padding:.22rem 0 .22rem 1rem;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.76rem;font-weight:600;line-height:1.15;transition:color .14s;display:inline-flex;position:relative}.forecast-section-sidebar__back-link:before{content:"";background:0 0;border-radius:999px;width:.24rem;transition:background-color .14s;position:absolute;top:0;bottom:0;left:0}.forecast-section-sidebar__back-link:hover,.forecast-section-sidebar__back-link:focus-visible{color:var(--accent-text-primary)}.forecast-section-sidebar__back-link:hover:before,.forecast-section-sidebar__back-link:focus-visible:before{background:color-mix(in srgb, var(--accent-border-soft) 72%, transparent)}.forecast-section-sidebar__back-icon{flex:none;width:.95rem;height:.95rem}.forecast-section-sidebar__back-label{min-width:0}.forecast-section-sidebar__nav{flex-direction:column;align-items:flex-start;gap:.95rem;width:100%;display:flex}.forecast-section-sidebar__mode-card{background:0 0;border:1px solid #737373;border-radius:.5rem;flex-direction:column;gap:.3rem;width:100%;padding:1.05rem .95rem;display:flex}.forecast-section-sidebar__mode-option{width:100%;color:var(--vh-dark-text,#1a1a1a);text-align:left;background:0 0;border:0;align-items:flex-start;gap:.7rem;padding:.28rem 0;display:flex}.forecast-section-sidebar__mode-indicator{background:0 0;border:1px solid #737373;border-radius:999px;flex:none;width:12px;height:12px;margin-top:.18rem;transition:border-color .14s,background-color .14s,box-shadow .14s;position:relative}.forecast-section-sidebar__mode-indicator:after{content:"";background:0 0;border-radius:999px;transition:background-color .14s;position:absolute;inset:3px}.forecast-section-sidebar__mode-option--active .forecast-section-sidebar__mode-indicator{border-color:var(--vh-dark-text,#1a1a1a);box-shadow:none}.forecast-section-sidebar__mode-option--active .forecast-section-sidebar__mode-indicator:after{background:var(--vh-dark-text,#1a1a1a)}.forecast-section-sidebar__mode-copy{flex-direction:column;gap:.28rem;min-width:0;display:flex}.forecast-section-sidebar__mode-heading{align-items:center;gap:.28rem;min-width:0;margin-top:.16rem;display:inline-flex}.forecast-section-sidebar__mode-icon{color:currentColor;flex:none;width:.95rem;height:.95rem}.forecast-section-sidebar__mode-label{letter-spacing:.11em;text-transform:uppercase;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.76rem;font-weight:600;line-height:1}.forecast-section-sidebar__mode-option--legacy .forecast-section-sidebar__mode-heading,.forecast-section-sidebar__mode-option--legacy .forecast-section-sidebar__mode-label{color:#e36d0d}.forecast-section-sidebar__mode-option--complete .forecast-section-sidebar__mode-heading,.forecast-section-sidebar__mode-option--complete .forecast-section-sidebar__mode-label{color:#a36ffc}.forecast-section-sidebar__mode-description{max-width:9.75rem;color:var(--vh-dark-text,#1a1a1a);font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.82rem;line-height:1.42}.forecast-section-sidebar__mode-option:hover .forecast-section-sidebar__mode-indicator,.forecast-section-sidebar__mode-option:focus-visible .forecast-section-sidebar__mode-indicator{border-color:var(--vh-dark-text,#1a1a1a)}.forecast-section-sidebar__mode-option:hover .forecast-section-sidebar__mode-label,.forecast-section-sidebar__mode-option:focus-visible .forecast-section-sidebar__mode-label{filter:brightness(.88)}.forecast-section-sidebar__mode-option:disabled{cursor:not-allowed;opacity:.38}.forecast-section-sidebar__mode-option:disabled .forecast-section-sidebar__mode-heading,.forecast-section-sidebar__mode-option:disabled .forecast-section-sidebar__mode-label,.forecast-section-sidebar__mode-option:disabled .forecast-section-sidebar__mode-description{color:var(--text-muted)}.forecast-section-sidebar__link{width:100%;color:var(--text-muted);letter-spacing:.11em;text-transform:uppercase;text-align:left;border:0;align-items:center;padding:.22rem 0 .22rem 1rem;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.76rem;font-weight:600;line-height:1.15;transition:color .16s;display:inline-flex;position:relative;text-decoration:none!important}.forecast-section-sidebar__link:before{content:"";background:0 0;border-radius:999px;width:.24rem;transition:background-color .16s,opacity .16s;position:absolute;top:0;bottom:0;left:0}.forecast-section-sidebar__link:hover,.forecast-section-sidebar__link:focus-visible{color:var(--accent-text-primary);background:0 0}.forecast-section-sidebar__link:hover:before,.forecast-section-sidebar__link:focus-visible:before{background:color-mix(in srgb, var(--accent-border-soft) 72%, transparent)}.forecast-section-sidebar__link--active,.forecast-section-sidebar__link[aria-current=location]{color:var(--accent-text-primary);background:0 0}.forecast-section-sidebar__link--active:before,.forecast-section-sidebar__link[aria-current=location]:before{background:var(--accent-text-secondary)}.forecast-section-sidebar__label{text-wrap:balance;min-width:0}.forecast-copy{width:100%}.forecast-copy--centered{align-items:center}.forecast-main-shell{min-width:0}.forecast-main{gap:1.75rem;min-width:0;display:grid}.forecast-route-view{min-width:0;animation:.3s cubic-bezier(.22,1,.36,1) both forecast-route-view-enter}.forecast-route-view>*{min-width:0}.motion-reveal{--motion-distance:.95rem;opacity:0;transform:translate3d(0, var(--motion-distance), 0);transition:opacity .56s cubic-bezier(.22, 1, .36, 1) var(--motion-delay,0s), transform .72s cubic-bezier(.22, 1, .36, 1) var(--motion-delay,0s);will-change:opacity, transform}.motion-reveal--sm{--motion-distance:.7rem}.motion-reveal--lg{--motion-distance:1.25rem}.motion-reveal--revealed{opacity:1;transform:none}.loading-swap{align-items:start;min-width:0;display:grid}.loading-swap__layer{grid-area:1/1;min-width:0;transition:opacity .24s,transform .32s cubic-bezier(.22,1,.36,1)}.loading-swap__layer--content{opacity:0;transform:translateY(.35rem)}.loading-swap--content-visible .loading-swap__layer--content{opacity:1;transform:none}.loading-swap--content-visible .loading-swap__layer--skeleton{opacity:0;pointer-events:none;transform:translateY(-.15rem)}.loading-swap--hero,.loading-swap--section-header,.loading-swap--seat-summary,.loading-swap--timeseries,.loading-swap--histogram,.loading-swap--map,.loading-swap--map-toggle,.loading-swap--map-placeholder,.loading-swap--table,.loading-swap--table-shell{width:100%}.loading-swap--hero .loading-swap__layer{gap:1rem;display:grid}.loading-swap--hero-detail .loading-swap__layer{gap:0}.loading-swap--skeleton-visible.loading-swap--section-header{min-height:clamp(4.9rem,8vw,6.8rem)}.loading-swap--skeleton-visible.loading-swap--section-header--compact{min-height:clamp(2.35rem,4.8vw,3.7rem)}.loading-swap--skeleton-visible.loading-swap--timeseries,.loading-swap--skeleton-visible.loading-swap--histogram{min-height:28rem}.loading-swap--map{min-height:clamp(18rem,54vw,31.25rem)}.loading-swap--map-toggle{min-height:39px}.loading-swap--map-placeholder,.loading-swap--map-placeholder .loading-swap__layer{height:100%}.loading-swap--home-meta{justify-items:center;min-height:.9rem}.forecast-back-link-shell{top:calc(.8rem + env(safe-area-inset-top,0px));z-index:45;opacity:0;width:0;height:0;transition:opacity .42s cubic-bezier(.22,1,.36,1) .1s,transform .52s cubic-bezier(.22,1,.36,1) .1s;position:sticky;overflow:visible;transform:translateY(.75rem)}.forecast-back-link-shell--ready{opacity:1;transform:none}.forecast-back-link{border:1px solid color-mix(in srgb, var(--stroke-soft) 84%, transparent);width:2.9rem;height:2.9rem;color:var(--text-primary);background:color-mix(in srgb, var(--bg-base) 92%, var(--bg-elevated));border-radius:999px;justify-content:center;align-items:center;text-decoration:none;transition:border-color .14s,background-color .14s,color .14s,transform .14s;display:inline-flex}.forecast-back-link:hover{border-color:var(--accent-border-soft);background:var(--accent-surface-subtle);color:var(--accent-text-primary);transform:translateY(-1px)}.forecast-back-link:focus-visible{border-color:var(--accent-border-soft);background:var(--accent-surface-subtle);color:var(--accent-text-primary)}.app-shell--scrolled .forecast-back-link{border-color:var(--accent-border-soft);background:color-mix(in srgb, var(--accent-surface-subtle) 72%, var(--bg-elevated))}.forecast-back-link__icon{flex:none;width:1rem;height:1rem}.app-shell--with-back-link .forecast-stage:first-child{padding-top:3.6rem}.forecast-countdown-shell{left:calc(50% + var(--forecast-dock-content-center-offset,0px));bottom:calc(5rem + env(safe-area-inset-bottom,0px));z-index:39;opacity:0;pointer-events:none;width:300px;transition:opacity .32s cubic-bezier(.22,1,.36,1) .12s,transform .42s cubic-bezier(.22,1,.36,1) .12s;position:fixed;transform:translate(-50%,.55rem)scale(.985)}.forecast-countdown-shell--ready{opacity:1;transform:translate(-50%)scale(1)}.forecast-countdown-shell--hidden{opacity:0;transform:translate(-50%,.45rem)scale(.985)}.forecast-countdown{border:1px solid color-mix(in srgb, var(--accent-border-soft) 86%, transparent);background:var(--bg-base);border-radius:999px;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:.4rem;width:100%;padding:.8rem 1.25rem;display:grid}.forecast-countdown__segment{justify-items:center;gap:.3rem;min-width:0;padding:0 .08rem;display:grid;position:relative}.forecast-countdown__value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--accent-text-primary);font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(.98rem,1.5vw,1.22rem);font-weight:600;line-height:1}.forecast-countdown__label{letter-spacing:.11em;color:var(--accent-text-primary);font-size:.55rem;font-weight:600;line-height:1}.forecast-floating-dock{left:calc(50% + var(--forecast-dock-content-center-offset,0px));bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:40;width:max-content;max-width:calc(100% - 1.5rem);transition:transform .56s cubic-bezier(.22,1,.36,1) .15s;position:fixed;transform:translate(-50%,.9rem)scale(.985)}.forecast-floating-dock--ready{transform:translate(-50%)scale(1)}.app-shell--scrolled .forecast-floating-dock--ready{transform:translate(-50%)scale(.985)}.forecast-floating-dock__cluster{justify-content:center;align-items:center;gap:.45rem;width:max-content;max-width:100%;display:flex}.forecast-floating-dock__inner{border:1px solid color-mix(in srgb, var(--accent-border-soft) 86%, transparent);background:var(--bg-base);opacity:0;border-radius:999px;justify-content:flex-start;align-items:center;gap:.35rem;padding:.4rem;transition:border-color .18s,background-color .18s,opacity .42s cubic-bezier(.22,1,.36,1) .15s;display:flex;transform:translateZ(0)}.forecast-floating-dock--ready .forecast-floating-dock__inner{opacity:1}.app-shell--scrolled .forecast-floating-dock__inner,.forecast-floating-dock:hover .forecast-floating-dock__inner,.forecast-floating-dock__inner:focus-within,.app-shell--scrolled .forecast-methodology-link,.forecast-methodology-link:hover,.forecast-methodology-link:focus-visible{border-color:var(--accent-border-soft);background:var(--bg-base)}.forecast-floating-dock:hover .forecast-floating-dock__inner,.forecast-floating-dock__inner:focus-within{opacity:1}.forecast-floating-search{flex:13.5rem;min-width:0}.forecast-floating-search .vh-search__input{background:0 0;border-color:#0000;border-radius:999px;padding-top:.55rem;padding-bottom:.55rem;padding-left:2.2rem;font-size:.84rem}.forecast-floating-search .vh-search__input:hover,.forecast-floating-search .vh-search__input:focus{background:color-mix(in srgb, var(--accent-surface-subtle) 72%, var(--bg-elevated))}.forecast-floating-nav{flex:0 auto;justify-content:flex-start;align-items:center;gap:.35rem;width:auto;display:inline-flex}.forecast-floating-nav__button{appearance:none;border:1px solid color-mix(in srgb, var(--stroke-soft) 78%, transparent);width:auto;min-width:0;min-height:0;color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem .7rem;font-family:inherit;font-size:.78rem;font-weight:600;line-height:1;text-decoration:none;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex;position:relative}.forecast-floating-nav__tooltip{border:1px solid color-mix(in srgb, var(--stroke-soft) 86%, transparent);background:color-mix(in srgb, var(--bg-base) 96%, var(--bg-elevated));color:var(--text-secondary);white-space:nowrap;opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:.3rem;padding:.28rem .42rem;font-size:.64rem;font-weight:600;line-height:1;transition:opacity .14s,transform .14s;display:inline-flex;position:absolute;bottom:calc(100% + .45rem);left:50%;transform:translate(-50%,.25rem)}.forecast-floating-nav__tooltip-value--dem{color:var(--party-dem-text)}.forecast-floating-nav__tooltip-value--gop{color:var(--party-gop-text)}.forecast-floating-nav__tooltip-separator{color:var(--text-muted)}.forecast-floating-nav__icon{flex:none;width:.95rem;height:.95rem}.forecast-floating-nav__label{text-overflow:ellipsis;display:inline-block;overflow:hidden}.forecast-floating-nav__short-label{display:none}.forecast-floating-nav__button--active,.forecast-floating-nav__button[aria-current=page],.forecast-floating-nav__button:hover{border-color:var(--accent-border-soft);background:color-mix(in srgb, var(--accent-surface-subtle) 78%, var(--bg-elevated));color:var(--accent-text-primary)}.forecast-floating-nav__button--standalone{border-color:color-mix(in srgb, var(--accent-border-soft) 86%, transparent);background:var(--bg-base);min-height:2.45rem;padding:.58rem .74rem}.forecast-floating-nav__button:hover .forecast-floating-nav__tooltip,.forecast-floating-nav__button:focus-visible .forecast-floating-nav__tooltip{opacity:1;transform:translate(-50%,-.05rem)}.forecast-floating-mode{display:none}.forecast-floating-mode__button{appearance:none;min-width:0;min-height:0;color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.25rem;padding:.45rem .52rem;font-family:inherit;font-size:.68rem;font-weight:700;line-height:1;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex}.forecast-floating-mode__icon{flex:none;width:.78rem;height:.78rem}.forecast-floating-mode__button--legacy{color:#e36d0d}.forecast-floating-mode__button--complete{color:#a36ffc}.forecast-floating-mode__button--active,.forecast-floating-mode__button:hover,.forecast-floating-mode__button:focus-visible{border-color:var(--accent-border-soft);background:var(--bg-elevated)}.forecast-floating-mode__button:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.38;background:0 0;border-color:#0000}.forecast-methodology-link{border:1px solid color-mix(in srgb, var(--accent-border-soft) 86%, transparent);background:var(--bg-base);min-height:2.45rem;color:var(--text-secondary);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:.38rem;padding:.58rem .74rem;font-size:.78rem;font-weight:600;line-height:1;text-decoration:none;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex;transform:translateZ(0);text-decoration:none!important}.forecast-methodology-link:hover,.forecast-methodology-link:focus-visible{color:var(--accent-text-primary)}.forecast-methodology-link__icon{flex:none;width:1rem;height:1rem}.forecast-methodology-link__label{display:inline-block}.forecast-overview{grid-template-columns:1fr;align-items:start;gap:1.1rem;display:grid}.forecast-panel{--forecast-panel-section-top-padding:0;--forecast-panel-section-title-size:clamp(3.5rem, 9vw, 7.35rem);--forecast-panel-section-title-gap:.35rem;min-width:0;padding-top:var(--forecast-panel-section-top-padding);border-top:0}.forecast-panel--distribution,.forecast-panel--timeseries,.forecast-panel--markets,.forecast-panel--fec,.race-section.forecast-panel{--forecast-panel-section-top-padding:.15rem;background:0 0;position:relative}.forecast-panel--distribution,.forecast-panel--timeseries,.forecast-panel--markets,.forecast-panel--fec,.race-section.forecast-panel,.forecast-panel--correlated-races{--forecast-panel-section-title-size:clamp(2.05rem, 4.15vw, 3.35rem)}.forecast-panel__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.forecast-panel__copy{justify-items:start;gap:var(--forecast-panel-section-title-gap);width:100%;min-width:0;display:grid}.forecast-panel__action{flex:none}.forecast-panel--markets .forecast-panel__action{align-self:flex-end;margin-top:-.1rem}.forecast-panel__heading-live{gap:var(--forecast-panel-section-title-gap);width:100%;display:grid}.forecast-panel__section-title{font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--forecast-panel-section-title-size);letter-spacing:-.02em;text-transform:uppercase;color:var(--accent-text-soft);text-wrap:balance;margin-bottom:0;margin-left:-.08em;font-weight:600;line-height:.82}.forecast-panel__section-title--single-line{white-space:nowrap;text-wrap:nowrap}.forecast-panel--distribution .forecast-panel__section-title--single-line,.forecast-panel--timeseries .forecast-panel__section-title--single-line,.forecast-panel--markets .forecast-panel__section-title--single-line,.race-section.forecast-panel .forecast-panel__section-title--single-line,.forecast-panel--correlated-races .forecast-panel__section-title--single-line{font-size:clamp(1.9rem,3.8vw,2.95rem)}.forecast-panel__heading-skeleton{justify-items:start;gap:var(--forecast-panel-section-title-gap);width:100%;display:grid}.forecast-panel__heading-skeleton-title{border-radius:.7rem;width:clamp(10rem,28vw,16rem);height:clamp(1.85rem,4.4vw,3rem)}.forecast-panel__heading-skeleton-title--single-line{width:clamp(11.5rem,32vw,18rem)}.forecast-panel__heading-skeleton-subtitle-line{width:min(31rem,88%);height:.78rem}.forecast-panel__heading-skeleton-subtitle-line--short{width:min(22rem,60%)}.forecast-panel__title{margin:0;font-size:1.05rem;line-height:1.1}.forecast-panel__subtitle{font-size:var(--vh-text-sm);color:var(--text-muted);margin:0}.forecast-panel__subtitle--distribution{max-width:33.5rem;color:var(--text-secondary);text-wrap:pretty;margin-top:0;font-size:.92rem;line-height:1.42}.forecast-panel__subtitle--timeseries{color:var(--text-secondary);text-wrap:pretty;margin-top:0;font-size:.92rem;line-height:1.42}.forecast-panel__confidence-badge{flex-shrink:0;align-self:flex-end}.forecast-panel__confidence-badge-image{width:auto;height:28px;display:block}.forecast-panel__confidence-badge-image--legacy,.app-shell--legacy .forecast-panel__confidence-badge-image--complete{display:none}.app-shell--legacy .forecast-panel__confidence-badge-image--legacy{display:block}.app-shell--forecast .forecast-stage--house,.app-shell--forecast .forecast-stage--statewide{gap:1.35rem}.app-shell--forecast .forecast-copy{max-width:48rem}.app-shell--forecast .house-hero{align-items:center;max-width:none;padding-left:0}.house-hero__headline{align-content:center;width:min(100%,58rem);min-height:clamp(5rem,8vw,7rem);margin-inline:auto;display:grid}.house-hero__copy-stack{justify-items:center;gap:.8rem;width:100%;display:grid}.house-hero__dek{justify-items:center;gap:.42rem;width:min(100%,52rem);margin-inline:auto;display:grid}.statewide-office-hero--compact{gap:1rem}.statewide-office-hero--compact .house-hero__headline{min-height:0}.forecast-stage--race .house-hero__headline{width:min(100%,54rem);min-height:clamp(2.8rem,5vw,4.1rem);margin-inline:0}.forecast-map-hero,.forecast-map-stage{position:relative}.statewide-map-toolbar{z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex;position:relative}.forecast-copy--map-overlay{z-index:2;pointer-events:none;justify-content:flex-end;max-width:min(30rem,58%);min-height:clamp(6.25rem,10vw,8.1rem);position:absolute;top:.35rem;left:.25rem}.app-shell--forecast .house-headline{text-align:left;margin-inline:0;font-size:clamp(1.9rem,1.2rem + 2.2vw,3rem);line-height:.96}.house-headline{letter-spacing:-.04em;text-wrap:balance;text-align:center;color:var(--text-primary);margin:0;margin-inline:auto;font-size:clamp(2.3rem,5vw,4rem);line-height:1}.house-headline--skeleton{align-content:center;justify-items:center;gap:.22em;width:100%;display:grid}.house-headline__skeleton-line{height:.2em}.house-headline__skeleton-line--lead{width:min(8.1em,100%)}.house-headline__skeleton-line--value{width:min(4.3em,72%)}.house-headline__skeleton-line--tail{width:min(5.8em,84%)}.app-shell--forecast .house-hero .house-headline{text-align:center;text-wrap:unset;max-width:58rem;margin-inline:auto;font-size:55px;line-height:.92}.app-shell--forecast .house-hero .house-headline.house-headline--gubernatorial{max-width:none;font-size:45px;line-height:.96}.app-shell--forecast .house-hero .house-headline.house-headline--detail{text-align:left;text-wrap:pretty;font-size:2.5rem;line-height:1.15}.app-shell--forecast .house-hero .house-headline.house-headline--statewide-hero{letter-spacing:-.055em;text-transform:uppercase;max-width:14ch;color:var(--accent-text-soft);text-wrap:balance;font-size:clamp(2.75rem,6.4vw,4.6rem);font-weight:800;line-height:.94}.house-hero__headline--statewide-hero{width:min(100%,72rem);min-height:clamp(6.5rem,12vw,9.5rem)}.forecast-stage--race .house-headline--skeleton{justify-items:start}.house-headline__line{display:block}.house-headline__line+.house-headline__line{margin-top:.08em}.house-headline--gubernatorial .house-headline__line+.house-headline__line{margin-top:.16em}.house-headline--gubernatorial .house-headline__line--break{max-width:none}.house-headline__line--break{text-wrap:pretty;max-width:min(100%,20ch);margin-inline:auto}.forecast-stage--race .house-headline__line--break{max-width:min(100%,22ch);margin-inline:0}.race-headline{text-wrap:pretty;font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.08}.race-headline .house-headline__line{white-space:normal}.race-headline .house-headline__line--break{max-width:none}.race-disclaimer{max-width:36rem;color:var(--text-muted);margin:0;font-size:.86rem;font-weight:600;line-height:1.35}.house-subtitle{text-align:left;max-width:39rem;margin:0;font-size:.9rem}.app-shell--forecast .house-subtitle{margin:0;font-size:.95rem}.forecast-stage--home{gap:1.5rem}.home-stage-layout{--forecast-stage-content-width:80rem}.home-landing{flex-direction:column;gap:2.75rem;display:flex}.home-landing__header{text-align:center;flex-direction:column;align-items:center;gap:.35rem;display:flex}.home-landing__title{letter-spacing:-.055em;text-transform:uppercase;color:var(--accent-text-soft);margin:0;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:3.5rem;font-weight:600;line-height:.95}.home-landing__meta,.house-last-updated,.home-landing__partner{letter-spacing:.11em;text-transform:uppercase;color:var(--text-muted);margin:0;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.72rem;font-weight:600;line-height:1.2}.house-last-updated{text-align:center}.home-landing__partner{text-transform:none;letter-spacing:.02em;align-self:center;align-items:baseline;gap:.35rem;width:auto;display:inline-flex}.home-landing__partner-brand{color:var(--text-secondary);font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;font-weight:700}.forecast-partner-credit{letter-spacing:0;text-align:center;color:#01201a;justify-content:center;align-items:baseline;gap:.35rem;width:100%;margin:1.25rem auto 0;padding-bottom:4px;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.2rem;font-weight:600;line-height:1;display:flex}.forecast-partner-credit__brand{fill:currentColor;flex:none;align-self:baseline;width:auto;height:1.2rem;display:block;overflow:visible;transform:translateY(.04em)}.forecast-partner-credit__label{color:currentColor}.forecast-map-partner{width:auto;color:var(--text-secondary);margin:.75rem auto 0;padding-bottom:0;font-size:.88rem}.forecast-map-partner .forecast-partner-credit__brand{height:.9rem}.home-landing__status{color:var(--text-secondary);margin:.4rem 0 0;font-size:.92rem;line-height:1.45}.home-landing__meta-skeleton{width:12.5rem;height:.74rem}.home-forecast-hub{flex-direction:column;gap:1rem;width:min(100%,80rem);margin:0 auto;display:flex}.home-forecast-hub__header{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.home-forecast-hub__eyebrow,.home-scenarios__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text-primary);margin:0;font-size:.78rem;font-weight:700;line-height:1}.home-forecast-hub .forecast-partner-credit{width:auto;color:var(--text-secondary);margin:0;padding:0;font-size:.88rem}.home-forecast-hub .forecast-partner-credit__brand{height:.9rem}.home-scenarios{flex-direction:column;gap:.4rem;display:flex}.home-scenarios__eyebrow{color:var(--text-muted);align-self:center}.home-scenario-graphic{isolation:isolate;width:min(100%,92rem);margin:0 auto;position:relative}.home-scenario-graphic:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(circle at top left, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 94%, transparent) 7%, transparent 20%), radial-gradient(circle at top right, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 94%, transparent) 7%, transparent 20%), radial-gradient(circle at bottom left, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 94%, transparent) 7%, transparent 20%), radial-gradient(circle at bottom right, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 94%, transparent) 7%, transparent 20%), linear-gradient(to right, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 88%, transparent) 5%, transparent 12%, transparent 88%, color-mix(in srgb, var(--bg-base) 88%, transparent) 95%, var(--bg-base) 100%), linear-gradient(to bottom, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 88%, transparent) 6%, transparent 13%, transparent 87%, color-mix(in srgb, var(--bg-base) 88%, transparent) 94%, var(--bg-base) 100%);position:absolute;inset:-.1rem}.home-scenario-graphic:before{content:none}.home-scenario-graphic__canvas{z-index:0;width:100%;height:auto;display:block;position:relative}.home-scenario-graphic__mobile-strip,.home-scenario-graphic__mobile-dots{display:none}.home-scenario-graphic__ghost{transition:opacity .36s,transform .52s cubic-bezier(.22,1,.36,1)}.home-scenario-graphic--loading .home-scenario-graphic__ghost{animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s)}.home-scenario-graphic__card{transform-origin:50%}.home-scenario-graphic__skeleton-outline,.home-scenario-graphic__skeleton-fill,.home-scenario-graphic__skeleton-copy rect{animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s);will-change:opacity}.home-scenario-graphic__skeleton-outline{stroke:color-mix(in srgb, var(--stroke-soft) 82%, var(--bg-base))}.home-scenario-graphic__skeleton-fill,.home-scenario-graphic__skeleton-copy rect{fill:color-mix(in srgb, var(--stroke-soft) 58%, var(--bg-base))}.home-scenario-graphic__accent{animation:.7s cubic-bezier(.22,1,.36,1) both home-scenario-accent-in}.home-forecast-previews{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%;margin:0;display:grid}.home-forecast-preview{border:1px solid color-mix(in srgb, var(--accent-text-primary) 24%, var(--stroke-soft));background:color-mix(in srgb, var(--bg-elevated) 82%, var(--bg-base));min-width:0;color:inherit;border-radius:12px;flex-direction:column;transition:border-color .16s,background-color .16s;display:flex;overflow:hidden;text-decoration:none!important}.home-forecast-preview:hover,.home-forecast-preview:focus-visible{border-color:color-mix(in srgb, var(--accent-text-primary) 58%, var(--stroke-soft));background:color-mix(in srgb, var(--bg-elevated) 92%, var(--bg-base))}.home-forecast-preview:focus-visible{outline:2px solid color-mix(in srgb, var(--accent-text-primary) 70%, transparent);outline-offset:3px}.home-forecast-preview__map{background:color-mix(in srgb, var(--bg-base) 74%, var(--bg-elevated));height:12rem;padding:.8rem .9rem .25rem}.home-forecast-preview__map .loading-swap,.home-forecast-preview__map .loading-swap__layer,.home-forecast-preview__map .district-map-shell,.home-forecast-preview__map .district-map{height:100%;min-height:0}.home-forecast-preview__map .district-map{background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;min-height:0;padding:0;display:flex}.home-forecast-preview__map .district-map__svg{width:100%;max-width:100%;height:100%;display:block}.home-forecast-preview__map .district-map-shell,.home-forecast-preview__map .district-map-shell--revealed{opacity:1;transform:none}.home-forecast-preview__map .district-map__status{min-height:0;padding:0;font-size:.78rem}.home-forecast-preview__body{justify-items:center;gap:.55rem;padding:1rem 1.1rem 1.2rem;display:grid}.home-forecast-preview__label{letter-spacing:.11em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.78rem;font-weight:700;line-height:1}.home-forecast-preview__headline{letter-spacing:0;text-align:center;text-wrap:balance;color:var(--text-primary);margin:0;font-size:clamp(1.08rem,1.5vw,1.4rem);font-weight:500;line-height:1.06}.home-forecast-preview__headline .house-headline__line{display:block}.home-forecast-preview__headline .house-headline__line--break{text-wrap:balance;max-width:none;margin-inline:auto}.home-forecast-preview__headline-skeleton{justify-items:center;gap:.34rem;width:min(100%,10rem);display:grid}.home-forecast-preview__skeleton-line{height:.82rem}.home-forecast-preview__skeleton-line--lead{width:8.2rem}.home-forecast-preview__skeleton-line--tail{width:6.4rem}.home-copy-section{flex-direction:column;align-items:flex-start;gap:1rem;width:min(100%,71.25rem);margin:0 auto;display:flex}.home-copy-section__title{letter-spacing:-.04em;text-transform:uppercase;color:var(--accent-text-primary);margin:0;font-size:clamp(1.85rem,4vw,2.15rem);font-weight:600;line-height:1}.home-copy-section__body{flex-direction:column;gap:.9rem;max-width:71rem;display:flex}.home-copy-section__body p{color:var(--text-secondary);margin:0;font-size:.95rem;line-height:1.65}.home-copy-section__button{border-radius:999px;min-height:2.7rem;padding-inline:1.35rem;font-size:.86rem}.home-team-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1.6rem 2rem;width:100%;display:grid}.home-team-grid__item{min-width:0}.home-team-grid__name,.home-team-grid__role{margin:0;font-size:.95rem;line-height:1.35}.home-team-grid__name{color:var(--text-primary);font-weight:500}.home-team-grid__role{color:var(--accent-text-primary);font-weight:700}@media (width<=1024px){.home-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.home-stage-layout{--forecast-stage-content-width:50rem}#house-distribution .histogram-dot{width:2px!important;height:2px!important}}@media (width<=640px){.forecast-stage--home{gap:1rem}.home-stage-layout .forecast-stage-layout__content{gap:2.35rem}.home-landing{gap:2rem}.home-landing__header{gap:1rem}.home-landing__title{letter-spacing:0;font-size:2.9rem;font-weight:600;line-height:.98}.forecast-partner-credit__brand{height:.8rem;margin-left:0}.home-landing__meta,.home-landing__partner{letter-spacing:.08em;font-size:.85rem}.forecast-stage--home .forecast-partner-credit{font-size:.78rem}.home-forecast-hub{gap:.75rem;display:grid}.home-forecast-hub__header{display:contents}.home-forecast-hub__eyebrow{order:1}.home-forecast-hub .home-forecast-previews{order:2}.home-forecast-hub .forecast-partner-credit{order:3;justify-self:center;margin:0}.home-scenarios{gap:.25rem}.home-scenario-graphic{--home-mobile-slide-width:min(calc(100vw - 1.7rem), 23.75rem);--home-mobile-side-padding:max(.85rem, calc((100vw - var(--home-mobile-slide-width)) / 2));width:calc(100% + 1.7rem);height:424px;margin-inline:-.85rem;overflow:hidden}.home-scenario-graphic__canvas{display:none}.home-scenario-graphic:before,.home-scenario-graphic:after{content:"";z-index:3;pointer-events:none;width:3.1rem;position:absolute;top:0;bottom:1.4rem}.home-scenario-graphic:before{background:linear-gradient(to right, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 82%, transparent) 38%, transparent 100%);left:0}.home-scenario-graphic:after{right:0;background:linear-gradient(to left, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 82%, transparent) 38%, transparent 100%);inset:0 0 1.4rem auto}.home-scenario-graphic__mobile-strip{height:400px;padding-inline:var(--home-mobile-side-padding);scroll-padding-inline:var(--home-mobile-side-padding);scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:0 0;align-items:stretch;gap:.75rem;display:flex;overflow:auto visible}.home-scenario-graphic__mobile-strip::-webkit-scrollbar{display:none}.home-scenario-graphic__mobile-slide{flex:0 0 var(--home-mobile-slide-width);scroll-snap-align:center;scroll-snap-stop:always;height:400px;overflow:visible}.home-scenario-graphic__mobile-canvas{width:100%;height:400px;display:block;overflow:visible}.home-scenario-graphic__mobile-dots{z-index:4;pointer-events:auto;justify-content:center;align-items:center;gap:.42rem;height:1.15rem;display:flex;position:absolute;bottom:0;left:.85rem;right:.85rem}.home-scenario-graphic__mobile-dot{background:color-mix(in srgb, var(--text-muted) 32%, transparent);appearance:none;border:0;border-radius:999px;width:.42rem;height:.42rem;padding:0;transition:background-color .14s,transform .14s}.home-scenario-graphic__mobile-dot--active{background:var(--accent-text-primary);transform:scale(1.28)}.home-forecast-previews{grid-template-columns:minmax(0,1fr);gap:.7rem;width:100%;margin-top:.45rem}.home-forecast-preview{grid-template-columns:minmax(6.8rem,38%) minmax(0,1fr);align-items:stretch;display:grid}.home-forecast-preview__map{height:7.2rem;padding:.5rem .35rem}.home-forecast-preview__body{align-content:center;justify-items:center;padding:.8rem .9rem;display:grid}.home-forecast-preview__headline{font-size:.98rem;line-height:1.08}.home-copy-section__button{width:100%}.home-team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1rem}}@media (width<=480px){.home-team-grid{grid-template-columns:minmax(0,1fr)}}@keyframes forecast-route-view-enter{0%{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:translateY(0)}}.house-subtitle--house-page{max-width:52rem;min-height:0;color:var(--text-primary);text-align:center;margin-inline:auto;line-height:1.45}.house-subtitle--skeleton{justify-items:center;gap:.45rem;width:min(100%,52rem);margin-inline:auto;display:grid}.house-subtitle__skeleton-line{height:.85rem}.house-subtitle__skeleton-line--lead{width:min(24rem,100%)}.house-subtitle__skeleton-line--tail{width:min(16rem,72%)}.house-subtitle--detail{font-size:.84rem}.house-subtitle--map{max-width:28rem}.app-shell--forecast .house-subtitle.house-subtitle--map-detail{font-size:.82rem;line-height:1.35}.house-seat-summary{gap:.7rem;width:100%;min-height:3.35rem;margin-inline:auto;display:grid;position:relative}.house-seat-summary__tooltip{z-index:3;max-width:min(18rem,100% - 1rem);color:var(--text-primary);letter-spacing:.08em;opacity:0;white-space:nowrap;pointer-events:none;font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.72rem;font-variant-caps:all-small-caps;font-weight:600;line-height:1;animation:.14s forwards chamber-seat-summary-caption-in;position:absolute;top:-1.15rem;transform:translate(-50%)}.house-seat-summary__tooltip--dem{color:var(--party-dem-text)}.house-seat-summary__tooltip--gop{color:var(--party-gop-text)}.house-seat-summary__tooltip--ind{color:var(--party-ind-text)}.house-seat-summary__tooltip--even{color:var(--text-secondary)}.house-seat-summary__track{background:color-mix(in srgb, var(--stroke-soft) 88%, var(--bg-base));height:.8rem;display:flex;position:relative;overflow:hidden}.house-seat-summary__fill{flex:none;min-width:0;height:100%;transition:flex-grow .76s cubic-bezier(.22,1,.36,1)}.house-seat-summary__outline{z-index:1;border:1.5px solid var(--forecast-hover-outline);box-sizing:border-box;opacity:0;pointer-events:none;animation:.14s forwards chamber-seat-summary-outline-in;position:absolute;top:0;bottom:0}@keyframes chamber-seat-summary-caption-in{0%{opacity:0;transform:translate(-50%)translateY(.2rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes chamber-seat-summary-outline-in{0%{opacity:0}to{opacity:1}}.house-seat-summary__fill--skeleton{background:color-mix(in srgb, var(--stroke-soft) 72%, var(--bg-base));animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s)}.house-seat-summary__fill--skeleton-dem{width:44%}.house-seat-summary__fill--skeleton-mid{width:12%}.house-seat-summary__fill--skeleton-gop{width:44%}.house-seat-summary__fill--senate-fixed-dem{background:var(--party-dem-fixed)}.house-seat-summary__fill--senate-dem-safe{background:var(--forecast-dem-safe)}.house-seat-summary__fill--senate-dem-likely{background:var(--forecast-dem-likely)}.house-seat-summary__fill--senate-dem-lean{background:var(--forecast-dem-lean)}.house-seat-summary__fill--senate-dem-tossup{background:var(--forecast-dem-tossup)}.house-seat-summary__fill--senate-even{background:color-mix(in srgb, var(--text-secondary) 24%, var(--bg-elevated))}.house-seat-summary__fill--senate-gop-tossup{background:var(--forecast-gop-tossup)}.house-seat-summary__fill--senate-gop-lean{background:var(--forecast-gop-lean)}.house-seat-summary__fill--senate-gop-likely{background:var(--forecast-gop-likely)}.house-seat-summary__fill--senate-gop-safe{background:var(--forecast-gop-safe)}.house-seat-summary__fill--senate-fixed-gop{background:var(--party-gop-fixed)}.house-seat-summary__majority{background:color-mix(in srgb, var(--text-primary) 36%, transparent);width:1px;transition:left .76s cubic-bezier(.22,1,.36,1);position:absolute;top:-.3rem;bottom:-.3rem;transform:translate(-50%)}.house-seat-summary__majority-label{font-size:var(--vh-text-xs);color:var(--text-muted);font-weight:600;line-height:1;position:absolute;top:-1.1rem;left:50%;transform:translate(-50%)}.house-seat-summary__labels{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.house-seat-summary__labels-main{flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.house-seat-summary__labels{font-size:var(--vh-text-md);margin-top:.15rem;font-weight:600;line-height:1.1}.house-seat-summary__labels-main>:last-child{text-align:right}.house-seat-summary__label--dem{color:var(--party-dem-text)}.house-seat-summary__label--gop{color:var(--party-gop-text)}.house-seat-summary__label-skeleton{height:1rem}.house-seat-summary__label-skeleton--dem{width:8.2rem}.house-seat-summary__label-skeleton--gop{justify-self:end;width:9rem}.house-map-toolbar{z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;min-height:39px;margin-bottom:.85rem;display:flex;position:relative}.house-map-toolbar>.loading-swap--map-toggle{flex:none;justify-self:end;justify-items:end;width:auto;margin-left:auto}.house-map-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:inline-flex}.house-map-controls--dropdowns{align-items:flex-start;gap:1rem}.house-map-stage{position:relative}.house-map-stage .district-map-shell{z-index:1;position:relative}.house-map-panel__backdrop{z-index:0;padding:.15rem;top:0;left:0}.house-map-legend{opacity:1;flex-direction:column;align-items:flex-start;gap:1.35rem;max-width:22.75rem;transition:opacity .18s,max-width .18s,transform .18s;display:inline-flex;overflow:hidden;transform:translateY(0)}.house-map-legend__image{height:auto;display:block}.house-map-legend__image--district{width:6rem}.house-map-legend__image--map{width:18.85rem}.house-map-legend--map-only{gap:0}.house-map-legend--hidden{opacity:0;pointer-events:none;max-width:0;transform:translateY(-.1rem)}.house-map-toggle{--house-map-toggle-map-width:3.65rem;--house-map-toggle-cartogram-width:5.65rem;--house-map-toggle-probability-width:4.35rem;--house-map-toggle-margin-width:4.75rem;--house-map-toggle-first-width:var(--house-map-toggle-map-width);--house-map-toggle-second-width:var(--house-map-toggle-cartogram-width);border:1px solid var(--primary-bg);background:var(--bg-elevated);border-radius:999px;align-items:center;gap:0;min-height:39px;padding:0;display:inline-flex;position:relative;overflow:hidden}.house-map-toggle--color{--house-map-toggle-first-width:var(--house-map-toggle-probability-width);--house-map-toggle-second-width:var(--house-map-toggle-margin-width)}.house-map-toggle--skeleton{border-color:color-mix(in srgb, var(--stroke-soft) 88%, transparent);background:color-mix(in srgb, var(--bg-base) 74%, var(--bg-elevated));gap:.3rem;padding:1px}.house-map-toggle__button-skeleton{border-radius:999px;height:37px}.house-map-toggle__button-skeleton:first-child{width:var(--house-map-toggle-first-width)}.house-map-toggle__button-skeleton:nth-child(2){width:var(--house-map-toggle-second-width)}.house-map-toggle__thumb{width:var(--house-map-toggle-first-width);background:var(--primary-bg);border-radius:999px;transition:transform .18s,width .18s,background-color .14s;position:absolute;top:0;bottom:0;left:0}.house-map-toggle--map .house-map-toggle__thumb,.house-map-toggle--probability .house-map-toggle__thumb{width:var(--house-map-toggle-first-width);transform:translate(0)}.house-map-toggle--cartogram .house-map-toggle__thumb,.house-map-toggle--margin .house-map-toggle__thumb{width:var(--house-map-toggle-second-width);transform:translateX(var(--house-map-toggle-first-width))}.house-map-toggle__button{z-index:1;min-height:37px;color:var(--primary-bg);letter-spacing:0;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 .9rem;font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:400;line-height:15px;transition:color .14s;display:inline-flex;position:relative}.house-map-toggle__button:first-of-type{min-width:var(--house-map-toggle-first-width)}.house-map-toggle__button:nth-of-type(2){min-width:var(--house-map-toggle-second-width)}.house-map-toggle__button:hover{color:var(--primary-bg)}.house-map-toggle__button:focus-visible{outline:none}.house-map-toggle__button--active,.house-map-toggle__button--active:hover{color:var(--primary-text)}.house-map-select{box-sizing:border-box;width:152px;color:var(--vh-dark-text,#1a1a1a);font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:18px;position:relative}.house-map-select--compact{width:136px}.house-map-select__trigger{box-sizing:border-box;width:100%;height:34px;color:inherit;font:inherit;letter-spacing:0;text-align:left;cursor:pointer;background:0 0;border:1px solid #737373;border-radius:4px;justify-content:space-between;align-items:center;gap:.85rem;padding:7px 16px;font-stretch:100%;line-height:18px;display:flex}.house-map-select--open .house-map-select__trigger{border-bottom-right-radius:0;border-bottom-left-radius:0}.house-map-select__trigger:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-bg) 58%, transparent);outline-offset:2px}.house-map-select__trigger-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.house-map-select__chevron{width:8px;height:5px;color:var(--vh-dark-text,#1a1a1a);flex:none}.house-map-select__menu{z-index:12;background:var(--bg-elevated);border-radius:0 0 4px 4px;flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex;position:absolute;top:calc(100% - 1px);left:0;box-shadow:0 10px 18px #1a1a1a14}.house-map-select__option{box-sizing:border-box;width:100%;height:34px;color:var(--vh-dark-text,#1a1a1a);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;border:1px solid #737373;align-items:center;padding:7px 16px;font-weight:400;display:flex}.house-map-select__option+.house-map-select__option{margin-top:-1px}.house-map-select__option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.house-map-select__option:hover,.house-map-select__option:focus-visible{z-index:1;background:var(--accent-surface-subtle);outline:none}.house-map-select__option--selected{z-index:2;border-color:var(--primary-bg);background:var(--accent-surface-subtle);font-weight:500}.house-map-select-skeleton{border-radius:4px;width:152px;height:34px}.dashboard-card{position:relative;overflow:hidden}.dashboard-card:before{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--accent-text-secondary) 22%, transparent), color-mix(in srgb, var(--party-dem-solid) 18%, transparent), transparent 72%);pointer-events:none;width:100%;height:1px;position:absolute;inset:0 auto auto 0}.card-grid{gap:1.5rem;display:grid}.card-grid>*{min-width:0}.card-grid--forecast{align-items:start}.card-grid--forecast>.dashboard-card,.card-grid--race>.dashboard-card{height:100%}.card-grid--race{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card-title{margin:0}.card-subtitle{font-size:var(--vh-text-sm);color:var(--text-muted);margin:.35rem 0 0}.forecast-stage--race .forecast-copy.house-hero{align-items:flex-start;max-width:none}.forecast-stage--race .house-hero__headline{min-height:auto;margin-inline:0}.forecast-stage--race .race-headline{text-align:left;margin-inline:0}.race-headline__emphasis{font-style:italic}.app-shell--race{position:relative}.app-shell--forecast .forecast-stage--race{gap:1.35rem}.race-map-placeholder{border:1px solid color-mix(in srgb, var(--stroke-soft) 84%, transparent);background:color-mix(in srgb, var(--bg-base) 34%, var(--bg-elevated));isolation:isolate;border-radius:22px;width:100%;min-height:clamp(18rem,54vw,31.25rem);position:relative;overflow:hidden}.race-map-stage{min-height:clamp(18rem,54vw,31.25rem)}.race-map-placeholder--loading{background:color-mix(in srgb, var(--bg-base) 40%, var(--bg-elevated))}.race-map-placeholder:before{content:"";border:1px solid color-mix(in srgb, var(--stroke-soft) 72%, transparent);pointer-events:none;border-radius:18px;position:absolute;inset:1rem}.race-map-placeholder__empty{text-align:center;align-content:center;justify-items:center;gap:.35rem;padding:2rem;display:grid;position:absolute;inset:1rem}.race-map-placeholder__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.66rem;font-weight:700}.race-map-placeholder__message{color:var(--text-secondary);margin:0;font-size:.95rem;font-style:italic;line-height:1.45}.race-map-placeholder--compact{width:100%;max-width:none;min-height:0;overflow:visible}.race-map-placeholder--compact:before{display:none}.race-map-placeholder--compact .race-map-placeholder__empty{text-align:left;justify-items:start;padding:1rem 1.15rem;position:static}.race-map-placeholder__empty--inline{align-items:center;gap:.8rem;display:flex}.race-map-placeholder__icon{color:var(--text-secondary);flex:none}.race-map-placeholder__icon-stroke{stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.race-map-stage:has(.race-detail-map-shell--unavailable){min-height:0}.race-map-placeholder__skeleton{z-index:1;pointer-events:none;position:absolute;inset:1.35rem}.race-map-placeholder__skeleton-chip{height:.9rem;position:absolute}.race-map-placeholder__skeleton-chip--northwest{width:min(30%,9rem);top:12%;left:8%}.race-map-placeholder__skeleton-chip--center{width:min(24%,7rem);top:44%;left:38%}.race-map-placeholder__skeleton-chip--southeast{width:min(28%,8rem);bottom:12%;right:10%}.how-we-got-here{width:100%;padding-top:.35rem}.how-we-got-here__viewport{-webkit-overflow-scrolling:touch;width:100%;padding-bottom:.35rem;overflow:hidden visible}.how-we-got-here__svg{width:100%;min-width:0;height:auto;display:block;overflow:visible}.how-we-got-here__svg--compact .how-we-got-here__node-label,.how-we-got-here__svg--compact .how-we-got-here__link-label{font-size:15px}.how-we-got-here__flow{transition:opacity .22s}.how-we-got-here__flow--inactive{opacity:.18;filter:grayscale()}.how-we-got-here__bar{shape-rendering:geometricprecision}.how-we-got-here__bar--inactive{opacity:.34;filter:grayscale()}.how-we-got-here__node-label,.how-we-got-here__link-label{letter-spacing:0;font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.how-we-got-here__node-label{paint-order:stroke;stroke:var(--bg-elevated);stroke-linejoin:round;stroke-width:5px;font-size:17px;font-weight:700}.how-we-got-here__node-label--inactive{opacity:.42;filter:grayscale()}.how-we-got-here__link-label{font-size:17px;font-weight:600}.race-panel{padding:1.1rem 0 0;position:relative}.race-panel:before{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--accent-text-secondary) 18%, transparent), color-mix(in srgb, var(--party-dem-solid) 14%, transparent), transparent 78%);pointer-events:none;height:1px;position:absolute;inset:0 0 auto}.race-panel--hero{padding-top:1.35rem}.timeseries-stack{background:0 0;gap:1.4rem;display:grid}.timeseries-stack>*+*{border-top:0;padding-top:0}.forecast-panel--timeseries+.race-section.forecast-panel{margin-top:.55rem}.timeseries-chart{opacity:0;gap:.7rem;transition:opacity .36s,transform .36s;display:grid;transform:translateY(.85rem);background:0 0!important}.timeseries-chart--revealed,.timeseries-chart[aria-busy=true]{opacity:1;transform:none}.timeseries-chart__header{grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;transition:opacity .32s,transform .32s;display:grid}.timeseries-chart__header-main{gap:.35rem;min-width:0;display:grid}.timeseries-chart__title{margin:0;font-size:.95rem;font-weight:600;line-height:1.2}.timeseries-chart__legend{color:var(--text-secondary);gap:.7rem;font-size:12px;font-weight:500;display:grid}.timeseries-chart__legend-copy{min-width:0;max-width:30rem;color:var(--text-secondary);text-wrap:pretty;flex:18rem;font-size:.92rem;line-height:1.42}.timeseries-chart__legend-copy-skeleton{flex:18rem;min-width:min(24rem,100%);max-width:30rem;height:.78rem}.timeseries-chart__legend-items{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.7rem;margin-left:0;display:inline-flex}.timeseries-chart__legend-key{align-items:center;gap:.42rem;display:inline-flex}.timeseries-chart__legend-swatch{background:var(--text-secondary);border-radius:999px;width:14px;height:4px;display:inline-block}.timeseries-chart__legend-swatch--skeleton{background:color-mix(in srgb, var(--stroke-soft) 76%, var(--bg-base))}.timeseries-chart__legend-label-skeleton{width:2rem;height:.55rem}.timeseries-chart__plot{isolation:isolate;transition:opacity .32s,transform .32s;position:relative;overflow:hidden;background:0 0!important}.timeseries-chart__svg{width:100%;height:auto;display:block;background:0 0!important}.timeseries-chart__background-image{opacity:.5}.timeseries-chart__confidence-badge{flex:none;align-items:center;margin-left:auto;display:inline-flex}.timeseries-chart__confidence-badge-image{width:auto;height:32px;display:block}.timeseries-chart__confidence-badge-image--polling{height:50px}.timeseries-chart__grid-line{stroke:color-mix(in srgb, var(--stroke-soft) 72%, transparent);stroke-width:1px}.timeseries-chart__grid-line--vertical{stroke:color-mix(in srgb, var(--stroke-soft) 48%, transparent)}.timeseries-chart__axis-text{fill:var(--text-secondary);font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:500;transition:opacity .26s .12s}.timeseries-chart__reference-line{stroke:color-mix(in srgb, var(--text-muted) 65%, transparent);stroke-width:1.15px;stroke-linecap:round;transition:opacity .26s .14s}.timeseries-chart__reference-label{fill:var(--text-muted);font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:10px;font-weight:600;transition:opacity .26s .16s}.timeseries-chart__election-day-line{stroke:color-mix(in srgb, var(--text-muted) 82%, transparent);stroke-width:1.25px;stroke-linecap:round;transition:opacity .26s .16s}.timeseries-chart__election-day-label{fill:var(--text-muted);letter-spacing:.08em;font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:9px;font-variant-caps:all-small-caps;font-weight:600;transition:opacity .26s .18s}.timeseries-chart__hover-line{stroke:color-mix(in srgb, var(--text-muted) 94%, transparent);stroke-width:1.75px;opacity:.95;pointer-events:none}.timeseries-chart__date-badge-text{fill:var(--text-muted);pointer-events:none;font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:500}.timeseries-chart__line{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.timeseries-chart__confidence-band{opacity:.14}.timeseries-chart--revealed .timeseries-chart__confidence-band{animation:fade-in-up .42s ease var(--timeseries-band-delay,0s) both}.timeseries-chart--revealed .timeseries-chart__line{animation:timeseries-line-draw .82s cubic-bezier(.22, 1, .36, 1) var(--timeseries-line-delay,0s) forwards}.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__header,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__plot{opacity:0;transform:translateY(.55rem)}.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__axis-line,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__tick-line,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__axis-text,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__reference-line,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__reference-label,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__election-day-line,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__election-day-label,.timeseries-chart:not(.timeseries-chart--revealed):not([aria-busy=true]) .timeseries-chart__confidence-icon{opacity:0}.timeseries-chart__hover-marker{stroke:color-mix(in srgb, var(--bg-elevated) 94%, var(--bg-base));stroke-width:2px;pointer-events:none}.timeseries-chart__hover-text{paint-order:stroke;stroke:var(--bg-elevated);stroke-width:4px;stroke-linejoin:round;pointer-events:none;font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;font-weight:600}.timeseries-chart__interaction-layer{fill:#0000;pointer-events:all;touch-action:none}.timeseries-chart__empty{min-height:400px;color:var(--text-muted);font-size:var(--vh-text-sm);text-align:center;justify-content:center;align-items:center;padding:1rem;display:flex}.timeseries-chart__skeleton-grid,.timeseries-chart__skeleton-axis,.timeseries-chart__skeleton-line{fill:none;stroke:color-mix(in srgb, var(--stroke-soft) 74%, var(--bg-base));stroke-width:1px;animation:1.45s ease-in-out infinite skeleton-breathe}.timeseries-chart__skeleton-line{stroke-width:2.5px}.histogram-shell{border:1px solid color-mix(in srgb, var(--stroke-soft) 85%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--bg-base) 55%, white), color-mix(in srgb, var(--bg-elevated) 88%, var(--bg-base)));opacity:0;border-radius:18px;padding:.35rem 1rem .4rem;transition:opacity .36s,transform .36s;position:relative;transform:translateY(.85rem)}.app-shell--forecast .histogram-shell{background:0 0;border:0;border-radius:0;padding:.2rem 0}.histogram-shell--revealed,.histogram-shell--loading{opacity:1;transform:none}.histogram-legend{z-index:2;background:color-mix(in srgb, var(--bg-elevated) 88%, transparent);color:var(--text-muted);font-size:var(--vh-text-xs);pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:.45rem;padding:.25rem .55rem;line-height:1;transition:opacity .26s 80ms,transform .26s 80ms;display:inline-flex;position:absolute;top:0;right:.35rem}.app-shell--forecast .histogram-legend{background:color-mix(in srgb, var(--bg-base) 94%, transparent);right:0}.histogram-legend--skeleton{gap:.35rem}.histogram-legend__skeleton-dots{align-items:center;gap:.18rem;display:inline-flex}.histogram-legend__skeleton-dot{width:.55rem;height:.55rem}.histogram-legend__skeleton-label{width:8.4rem;height:.55rem}.histogram-legend-dots{flex:0 0 1rem;width:1rem;height:.7rem;position:relative}.histogram-legend-dot{border-radius:999px;width:.6rem;height:.6rem;position:absolute;top:50%;transform:translateY(-50%)}.histogram-legend-dot--dem{background:var(--party-dem-solid);box-shadow:0 0 0 1px color-mix(in srgb, var(--party-dem-solid) 16%, white);left:0}.histogram-legend-dot--gop{background:var(--party-gop-solid);box-shadow:0 0 0 1px color-mix(in srgb, var(--party-gop-solid) 16%, white);right:0}.histogram{align-items:flex-end;gap:2px;padding:0 .35rem .35rem;transition:opacity .32s,transform .32s;display:grid;position:relative;overflow:visible}.app-shell--forecast .histogram{padding-inline:.15rem}.histogram-average-line{background:color-mix(in srgb, var(--accent-text-primary) 30%, transparent);z-index:0;pointer-events:none;opacity:0;width:1px;position:absolute;top:0;bottom:.5rem;transform:translate(-50%)translateY(.5rem)}.histogram-average-line--dem{background:color-mix(in srgb, var(--party-dem-solid) 48%, transparent)}.histogram-average-line--gop{background:color-mix(in srgb, var(--party-gop-solid) 48%, transparent)}.histogram-average-line--skeleton{background:color-mix(in srgb, var(--text-muted) 44%, transparent);opacity:1;transform:translate(-50%)}.histogram-outcome-tooltip{z-index:3;pointer-events:none;width:min(15.5rem,100vw - 2rem);position:absolute}.histogram-outcome-tooltip__panel{border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 44%, var(--bg-elevated));border-radius:12px;padding:.55rem}.histogram-outcome-tooltip__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:9px;font-weight:700}.histogram-outcome-tooltip__summary{font-size:var(--vh-text-sm);color:var(--text-primary);margin:.16rem 0 0;font-weight:600;line-height:1.2}.histogram-outcome-tooltip__separator{color:var(--text-muted);margin:0 .3rem}.histogram-outcome-tooltip__map-shell{border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 52%, var(--bg-elevated));border-radius:10px;margin-top:.48rem;overflow:hidden}.histogram-outcome-tooltip__map{width:100%;height:auto;display:block}.histogram-outcome-tooltip__map-placeholder{aspect-ratio:1040/660;background:color-mix(in srgb, var(--stroke-soft) 60%, var(--bg-base));width:100%}.histogram-outcome-tooltip__status{font-size:var(--vh-text-xs);color:var(--text-muted);margin:.42rem 0 0;line-height:1.3}.histogram-outcome-map__district{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:2.4px}.histogram-outcome-map__district--dem{fill:var(--party-dem-solid)}.histogram-outcome-map__district--gop{fill:var(--party-gop-solid)}.histogram-outcome-map__district--even{fill:color-mix(in srgb, var(--text-secondary) 24%, var(--bg-elevated))}.histogram-outcome-map__district--na{fill:color-mix(in srgb, var(--stroke-soft) 72%, var(--bg-base))}.histogram-outcome-map__state{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:.9px}.histogram-outcome-map__state--dem{fill:var(--party-dem-solid)}.histogram-outcome-map__state--gop{fill:var(--party-gop-solid)}.histogram-outcome-map__state--even{fill:color-mix(in srgb, var(--text-secondary) 24%, var(--bg-elevated))}.histogram-outcome-map__state--inactive{fill:color-mix(in srgb, var(--text-muted) 34%, var(--bg-elevated));opacity:.68}.histogram-bin{z-index:1;justify-content:center;align-items:flex-end;min-width:0;height:100%;display:flex;position:relative}.histogram-dots{align-items:center;gap:var(--dot-gap,2px);flex-direction:column-reverse;display:flex}.histogram-dot{width:var(--dot-size,6px);height:var(--dot-size,6px);opacity:0;border-radius:999px;display:inline-block;transform:none}.histogram-dot--interactive{cursor:pointer;transform-origin:50%;will-change:transform, opacity;transition:transform .12s,opacity .12s;position:relative}.histogram-dot--skeleton{background:color-mix(in srgb, var(--stroke-soft) 64%, var(--bg-base));animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s);opacity:1;transform:none}.histogram-dot--dem-majority{background:var(--party-dem-solid);box-shadow:0 0 0 1px color-mix(in srgb, var(--party-dem-solid) 16%, white)}.histogram-dot--gop-majority{background:var(--party-gop-solid);box-shadow:0 0 0 1px color-mix(in srgb, var(--party-gop-solid) 16%, white)}.histogram-x-axis{border-top:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);height:2.8rem;transition:opacity .26s .12s,transform .26s .12s;position:relative}.x-axis-tick{text-align:center;color:var(--text-muted);font-size:var(--vh-text-xs);white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.histogram:not(.histogram--revealed):not(.histogram--skeleton),.histogram-shell:not(.histogram-shell--revealed):not(.histogram-shell--loading) .histogram-legend,.histogram-shell:not(.histogram-shell--revealed):not(.histogram-shell--loading) .histogram-x-axis{opacity:0;transform:translateY(.55rem)}.histogram--revealed .histogram-average-line{animation:.36s .12s forwards histogram-average-line-enter}.histogram--revealed .histogram-dot{opacity:1;animation:histogram-dot-blink-in 72ms steps(1, end) var(--histogram-dot-delay,0s) backwards}.x-axis-label{align-items:center;gap:.28rem;font-weight:600;display:inline-flex}.histogram-x-axis__skeleton-label{height:.72rem}.axis-separator{color:var(--text-muted);font-weight:500}.x-axis-tick:before{content:"";background:var(--stroke-soft);width:1px;height:8px;margin:0 auto .25rem;display:block}.x-axis-tick--start{transform:none}.x-axis-tick--end{transform:translate(-100%)}.x-axis-tick--single{transform:translate(-50%)}.x-axis-tick--average .x-axis-label{font-weight:700}.x-axis-tick--majority .x-axis-label{color:var(--text-secondary)}.x-axis-tick--minor .x-axis-label{font-weight:500}.x-axis-tick--minor:before{height:6px}.x-axis-tick--party-d{color:var(--party-dem-text)}.x-axis-tick--party-r{color:var(--party-gop-text)}.x-axis-tick--party-d .x-axis-label{color:var(--party-dem-text)}.x-axis-tick--party-r .x-axis-label{color:var(--party-gop-text)}.x-axis-tick--party-d:before{background:color-mix(in srgb, var(--party-dem-solid) 42%, white)}.x-axis-tick--party-r:before{background:color-mix(in srgb, var(--party-gop-solid) 42%, white)}.vote-share-table{border-collapse:collapse;width:100%}.vst-candidate-name__text--pending{color:#9ca3af!important;font-style:italic!important}.vote-share-table th{font-size:var(--vh-text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--stroke-soft);text-align:left;white-space:nowrap;padding:.55rem .75rem;font-weight:600}.vote-share-table td{font-size:var(--vh-text-sm);border-bottom:1px solid color-mix(in srgb, var(--stroke-soft) 60%, transparent);vertical-align:middle;padding:.85rem .75rem}.vote-share-table--compact th{letter-spacing:.04em;padding:.28rem .4rem;font-size:8px}.vote-share-table--compact td{padding:.32rem .4rem;font-size:11px}.vote-share-table tbody tr:last-child td{border-bottom:none}.vst-col-candidate{width:22%}.vst-col-bar{width:56%}.vst-col-chance{text-align:right;width:22%}.vote-share-table--compact .vst-col-candidate{width:48%}.vote-share-table--compact .vst-col-bar{width:24%}.vote-share-table--compact .vst-col-chance{width:28%}.vote-share-table--compact.vote-share-table--no-chance .vst-col-candidate{width:72%}.vote-share-table--compact.vote-share-table--no-chance .vst-col-bar{width:28%}.vote-share-table--compact .vst-candidate-name{gap:.28rem}.vote-share-table th.vst-col-chance{text-align:center;font-weight:700}.vote-share-table--margin tbody td{vertical-align:middle}.vst-candidate-name{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:.45rem;min-width:0;max-width:100%;font-weight:600;line-height:1.3;display:inline-flex}.vst-candidate-name__text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vst-candidate-skeleton{align-items:center;gap:.45rem;display:inline-flex}.vst-candidate-skeleton__name{height:.82rem}.vst-candidate-skeleton__badge{border-radius:4px;width:1.1rem;min-width:1.1rem;height:1.1rem}.vote-share-table--compact .vst-value{white-space:nowrap;font-size:11px;font-weight:700}.vst-value-skeleton{height:.82rem}.vst-race-margin{text-align:right}.vst-race-margin__value{letter-spacing:-.04em;white-space:nowrap;font-size:3rem;font-weight:800;line-height:.95;display:inline-block}.vst-race-margin__skeleton{border-radius:.8rem;width:4.1rem;height:2.2rem;display:inline-block}.vst-candidate-sub{font-weight:400;font-size:var(--vh-text-xs);color:var(--text-muted);display:block}.vote-bar-cell{padding-top:.5rem;padding-bottom:.5rem;position:relative}.vote-bar-track{background:0 0;width:100%;height:28px;position:relative;overflow:visible}.vote-bar-track:not(.vote-bar-track--skeleton):before{content:"";background:color-mix(in srgb, var(--stroke-soft) 78%, transparent);height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.vote-bar-track:not(.vote-bar-track--skeleton):after{content:"";background:color-mix(in srgb, var(--text-muted) 38%, transparent);width:1px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vote-bar-track--compact{height:20px}.vote-bar-track--skeleton{align-items:center;display:flex}.vote-bar-track__skeleton-rail{border-radius:999px;width:100%;height:.35rem}.vote-bar-track__skeleton-marker{border-radius:2px;width:3px;position:absolute;top:-2px;bottom:-2px;transform:translate(-50%)}.vote-bar-track__skeleton-label{width:2.4rem;height:.78rem;position:absolute;top:50%;transform:translate(8px,-50%)}.vote-bar-conf-band{border-left:1px solid var(--accent-text-secondary);border-right:1px solid var(--accent-text-secondary);pointer-events:none;background:color-mix(in srgb, var(--accent-text-secondary) 35%, transparent);height:10px;position:absolute;top:50%;transform:translateY(-50%)}.vote-bar-conf-band--dem,.vote-bar-conf-band--gop,.vote-bar-conf-band--ind{background:color-mix(in srgb, var(--accent-text-secondary) 20%, transparent)}.vote-bar-marker{z-index:1;border:1px solid #fff;border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:50%;transform:translate(-50%,-50%)}.vote-bar-marker--dem{background:var(--party-dem-solid)}.vote-bar-marker--gop{background:var(--party-gop-solid)}.vote-bar-marker--ind{background:var(--party-ind-solid)}.vote-bar-label{white-space:nowrap;z-index:1;font-size:.75rem;font-weight:600;line-height:1;position:absolute;bottom:calc(50% + 12px);left:100%;transform:translate(-50%)}.vote-bar-label--dem{color:var(--party-dem-text)}.vote-bar-label--gop{color:var(--party-gop-text)}.vote-bar-label--ind{color:var(--party-ind-text)}.vst-chance{text-align:center;font-weight:700;font-size:var(--vh-text-md);white-space:nowrap}.vote-share-table--compact .vst-chance{font-size:11px}.race-outlook-table-wrap .vst-chance{font-size:3rem}.race-outlook-table-wrap .vst-chance-skeleton{height:1.2rem}.vst-chance-skeleton{height:.82rem;display:inline-block}.vst-chance-sub{font-weight:400;font-size:var(--vh-text-xs);color:var(--text-muted);display:block}.vote-share-table tfoot td{border:none;padding:0}.vote-share-axis-cell{padding:0 .75rem}.vote-share-axis{border-top:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);height:1.9rem;padding:.35rem 0 0;position:relative}.vote-share-axis-tick{font-size:var(--vh-text-xs);color:var(--text-muted);text-align:center;white-space:nowrap;padding-top:.1rem;font-weight:500;line-height:1;position:absolute;top:.35rem;transform:translate(-50%)}.vote-share-axis-tick:before{content:"";background:var(--stroke-soft);width:1px;height:6px;position:absolute;top:-.35rem;left:50%;transform:translate(-50%)}.vote-share-axis-tick--start{text-align:center;transform:translate(-50%)}.vote-share-axis-tick--start:before{left:50%;transform:translate(-50%)}.vote-share-axis-tick--end{text-align:center;transform:translate(-50%)}.vote-share-axis-tick--end:before{left:50%;transform:translate(-50%)}.vote-share-mobile-cards{display:none}.vote-share-card{border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 38%, var(--bg-elevated));border-radius:12px;gap:.75rem;padding:.9rem;display:grid}.vote-share-card__header{justify-content:space-between;align-items:center;gap:.7rem;min-width:0;display:flex}.vote-share-card .vst-candidate-name,.vote-share-card .vst-candidate-name__text{white-space:normal}.vote-share-card .vst-chance,.vote-share-card .vst-value{text-align:left;justify-self:start}.vote-share-card__metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.vote-share-card__metric{align-content:start;gap:1rem;min-width:0;display:grid}.vote-share-card__metric--wide{grid-column:1/-1}.vote-share-card__label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:700;line-height:1}.vote-share-card__bar{min-width:0;padding:.1rem 1.9rem .1rem 0}.vote-share-card--summary{grid-template-columns:minmax(0,1fr) auto;align-items:center}.vote-share-card--empty{color:var(--text-muted);font-size:var(--vh-text-sm)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.party-r{color:var(--party-gop-text);font-weight:600}.party-d{color:var(--party-dem-text);font-weight:600}.party-i{color:var(--party-ind-text);font-weight:600}.party-even{color:var(--text-secondary);font-weight:600}.chance-tilt{color:var(--accent-text-secondary);font-weight:600}@keyframes skeleton-breathe{0%,to{opacity:.62}50%{opacity:1}}@keyframes home-scenario-accent-in{0%{stroke-dashoffset:100px}}@keyframes reveal-rise{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@keyframes histogram-dot-blink-in{0%{opacity:0}to{opacity:1}}@keyframes histogram-average-line-enter{0%{opacity:0;transform:translate(-50%)translateY(.5rem)}to{opacity:1;transform:translate(-50%)}}@keyframes timeseries-line-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes sparkline-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.skeleton-block{background:color-mix(in srgb, var(--stroke-soft) 74%, var(--bg-base));animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s);will-change:opacity;border-radius:999px;display:block}.value-na{color:var(--text-muted)}.district-outlook-list__empty{color:var(--text-muted);margin:0;padding:1rem 0}.district-outlook-table-shell{align-items:start;gap:.6rem;display:grid}.district-outlook-controls{justify-content:flex-start;align-items:center;width:100%;padding:0;display:flex}.district-outlook-search{width:100%}.district-outlook-search--loading{pointer-events:none}.district-outlook-search__input-skeleton{border:1px solid color-mix(in srgb, var(--menu-border) 90%, transparent);border-radius:10px;width:100%;min-height:2.5rem}.district-outlook-search .vh-search__input{font-size:var(--vh-text-sm);padding-top:.6rem;padding-bottom:.6rem}.district-outlook-table-wrap{overscroll-behavior:contain;border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 40%, var(--bg-elevated));border-radius:12px;min-height:24rem;max-height:clamp(28rem,64vh,46rem);position:relative;overflow:auto}.district-outlook-table{border-collapse:separate;border-spacing:0;background:0 0;width:100%}.district-outlook-table th,.district-outlook-table td{border-bottom:1px solid color-mix(in srgb, var(--stroke-soft) 72%, transparent);text-align:left;white-space:nowrap;vertical-align:middle;padding:.72rem .8rem;font-size:14px}.district-outlook-table th{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.district-outlook-table thead th{z-index:5;background:var(--bg-elevated);box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--stroke-soft) 72%, transparent);background-clip:padding-box;position:sticky;top:0}.district-outlook-table__sort{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;display:inline-flex}.district-outlook-table__sort-indicator{color:var(--text-muted);align-items:center;display:inline-flex}.sort-icon{flex-shrink:0;display:block}.sort-icon__up,.sort-icon__down{fill:currentColor;opacity:.3;transition:opacity .12s}.sort-icon[data-dir=asc] .sort-icon__up,.sort-icon[data-dir=desc] .sort-icon__down{opacity:1}.sort-icon[data-dir=both] .sort-icon__up,.sort-icon[data-dir=both] .sort-icon__down{opacity:.3}.district-outlook-table__sort:hover .district-outlook-table__sort-indicator,.district-outlook-table__sort:focus-visible .district-outlook-table__sort-indicator{color:var(--accent-text-secondary)}.district-outlook-table th[aria-sort=ascending] .district-outlook-table__sort-indicator,.district-outlook-table th[aria-sort=descending] .district-outlook-table__sort-indicator{color:var(--accent-text-primary)}.district-outlook-table th[aria-sort=ascending] .district-outlook-table__sort-indicator--dem,.district-outlook-table th[aria-sort=descending] .district-outlook-table__sort-indicator--dem{color:var(--party-dem-text)}.district-outlook-table th[aria-sort=ascending] .district-outlook-table__sort-indicator--rep,.district-outlook-table th[aria-sort=descending] .district-outlook-table__sort-indicator--rep{color:var(--party-gop-text)}.district-outlook-table th[aria-sort=ascending] .district-outlook-table__sort--dem,.district-outlook-table th[aria-sort=descending] .district-outlook-table__sort--dem{color:var(--party-dem-text)}.district-outlook-table th[aria-sort=ascending] .district-outlook-table__sort--rep,.district-outlook-table th[aria-sort=descending] .district-outlook-table__sort--rep{color:var(--party-gop-text)}.district-outlook-table tbody tr:last-child td{border-bottom:none}.district-outlook-table--skeleton tbody tr:hover td{background:0 0}.district-outlook-table__row{cursor:pointer}.district-outlook-table__row:hover td,.district-outlook-table__row:focus-visible td{background:color-mix(in srgb, var(--accent-surface-subtle) 70%, var(--bg-elevated))}.district-outlook-table__row:focus-visible{outline:none}.district-outlook-table__race{white-space:nowrap;text-overflow:ellipsis;min-width:16rem;color:var(--text-primary);font-weight:600;overflow:hidden}.district-outlook-table__race-skeleton{height:.9rem}.district-outlook-table__candidates{min-width:16rem}.district-outlook-table__candidate-list{gap:.3rem;display:grid}.district-outlook-table__candidate{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.district-outlook-table__party-skeleton{border-radius:4px;flex:0 0 1.1rem;width:1.1rem;height:1.1rem}.district-outlook-table__candidate-skeleton{height:.82rem}.district-outlook-table__candidate-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);overflow:hidden}.district-outlook-table__margin-cell{width:clamp(6.2rem,10vw,8rem);min-width:0}.district-outlook-table__probability-cell{min-width:4.8rem;text-align:center!important}.district-outlook-table__probability-value{font-variant-numeric:tabular-nums;text-align:center;min-width:3.7rem;display:inline-block}.district-outlook-table__extra-cell{min-width:4.4rem}.district-outlook-table__extra-cell--correlation{text-align:center}.district-outlook-table__extra-value{font-variant-numeric:tabular-nums;min-width:2.4rem;color:var(--text-primary);font-weight:600;display:inline-block}.district-outlook-table__extra-value--correlation{text-align:center;letter-spacing:-.03em;width:100%;min-width:0;color:var(--accent-text-soft);font-family:TT Norms Pro,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.4rem;font-weight:600;line-height:.86;display:block}.district-outlook-table__extra-skeleton{height:.92rem;display:block}.district-outlook-table__trend-cell{position:relative}.district-outlook-probability-trend{width:auto;height:auto;color:var(--text-secondary);pointer-events:none;opacity:0;flex:none;justify-content:center;align-items:center;transition:opacity .22s,transform .22s;display:flex;position:absolute;inset:1rem;transform:translate(.45rem)}.district-outlook-probability-trend--revealed{opacity:1;transform:none}.district-outlook-probability-trend__svg{width:100%;height:100%;display:block;overflow:visible}.district-outlook-probability-trend__midline{stroke:color-mix(in srgb, var(--text-muted) 22%, transparent);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke}.district-outlook-probability-trend__line{fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;vector-effect:non-scaling-stroke}.district-outlook-probability-trend--revealed .district-outlook-probability-trend__line{animation:.62s cubic-bezier(.22,1,.36,1) forwards sparkline-draw}.district-outlook-probability-trend__skeleton{flex:none;width:4.5rem;height:1.2rem;margin:0 auto;position:absolute;top:50%;left:.8rem;right:.8rem;transform:translateY(-50%)}.district-outlook-margin{grid-template-columns:minmax(8rem,9rem) auto;align-items:center;gap:.65rem;display:grid}.district-outlook-margin--label-above{min-width:0;padding-top:1.05rem;display:block}.district-outlook-margin__track{background:linear-gradient(90deg, var(--forecast-dem-01) 0%, var(--forecast-dem-02) 2.5%, var(--forecast-dem-03) 5%, var(--forecast-dem-04) 7.5%, var(--forecast-dem-05) 10%, var(--forecast-dem-06) 12.5%, var(--forecast-dem-07) 15%, var(--forecast-dem-08) 17.5%, var(--forecast-dem-09) 20%, var(--forecast-dem-10) 22.5%, var(--forecast-dem-11) 25%, var(--forecast-dem-12) 27.5%, var(--forecast-dem-13) 30%, var(--forecast-dem-14) 32.5%, var(--forecast-dem-15) 35%, var(--forecast-dem-16) 37.5%, var(--forecast-dem-17) 40%, var(--forecast-dem-18) 42.5%, var(--forecast-dem-19) 45%, var(--forecast-dem-20) 47.5%, color-mix(in srgb, var(--forecast-dem-20) 50%, var(--forecast-gop-20) 50%) 50%, var(--forecast-gop-20) 52.5%, var(--forecast-gop-19) 55%, var(--forecast-gop-18) 57.5%, var(--forecast-gop-17) 60%, var(--forecast-gop-16) 62.5%, var(--forecast-gop-15) 65%, var(--forecast-gop-14) 67.5%, var(--forecast-gop-13) 70%, var(--forecast-gop-12) 72.5%, var(--forecast-gop-11) 75%, var(--forecast-gop-10) 77.5%, var(--forecast-gop-09) 80%, var(--forecast-gop-08) 82.5%, var(--forecast-gop-07) 85%, var(--forecast-gop-06) 87.5%, var(--forecast-gop-05) 90%, var(--forecast-gop-04) 92.5%, var(--forecast-gop-03) 95%, var(--forecast-gop-02) 97.5%, var(--forecast-gop-01) 100%);border-radius:6px;height:.55rem;position:relative}.district-outlook-margin__track--ind-left{background:linear-gradient(90deg, var(--forecast-ind-01) 0%, var(--forecast-ind-02) 2.5%, var(--forecast-ind-03) 5%, var(--forecast-ind-04) 7.5%, var(--forecast-ind-05) 10%, var(--forecast-ind-06) 12.5%, var(--forecast-ind-07) 15%, var(--forecast-ind-08) 17.5%, var(--forecast-ind-09) 20%, var(--forecast-ind-10) 22.5%, var(--forecast-ind-11) 25%, var(--forecast-ind-12) 27.5%, var(--forecast-ind-13) 30%, var(--forecast-ind-14) 32.5%, var(--forecast-ind-15) 35%, var(--forecast-ind-16) 37.5%, var(--forecast-ind-17) 40%, var(--forecast-ind-18) 42.5%, var(--forecast-ind-19) 45%, var(--forecast-ind-20) 47.5%, color-mix(in srgb, var(--forecast-ind-20) 50%, var(--forecast-gop-20) 50%) 50%, var(--forecast-gop-20) 52.5%, var(--forecast-gop-19) 55%, var(--forecast-gop-18) 57.5%, var(--forecast-gop-17) 60%, var(--forecast-gop-16) 62.5%, var(--forecast-gop-15) 65%, var(--forecast-gop-14) 67.5%, var(--forecast-gop-13) 70%, var(--forecast-gop-12) 72.5%, var(--forecast-gop-11) 75%, var(--forecast-gop-10) 77.5%, var(--forecast-gop-09) 80%, var(--forecast-gop-08) 82.5%, var(--forecast-gop-07) 85%, var(--forecast-gop-06) 87.5%, var(--forecast-gop-05) 90%, var(--forecast-gop-04) 92.5%, var(--forecast-gop-03) 95%, var(--forecast-gop-02) 97.5%, var(--forecast-gop-01) 100%)}.district-outlook-margin__track--ind-right{background:linear-gradient(90deg, var(--forecast-dem-01) 0%, var(--forecast-dem-02) 2.5%, var(--forecast-dem-03) 5%, var(--forecast-dem-04) 7.5%, var(--forecast-dem-05) 10%, var(--forecast-dem-06) 12.5%, var(--forecast-dem-07) 15%, var(--forecast-dem-08) 17.5%, var(--forecast-dem-09) 20%, var(--forecast-dem-10) 22.5%, var(--forecast-dem-11) 25%, var(--forecast-dem-12) 27.5%, var(--forecast-dem-13) 30%, var(--forecast-dem-14) 32.5%, var(--forecast-dem-15) 35%, var(--forecast-dem-16) 37.5%, var(--forecast-dem-17) 40%, var(--forecast-dem-18) 42.5%, var(--forecast-dem-19) 45%, var(--forecast-dem-20) 47.5%, color-mix(in srgb, var(--forecast-dem-20) 50%, var(--forecast-ind-20) 50%) 50%, var(--forecast-ind-20) 52.5%, var(--forecast-ind-19) 55%, var(--forecast-ind-18) 57.5%, var(--forecast-ind-17) 60%, var(--forecast-ind-16) 62.5%, var(--forecast-ind-15) 65%, var(--forecast-ind-14) 67.5%, var(--forecast-ind-13) 70%, var(--forecast-ind-12) 72.5%, var(--forecast-ind-11) 75%, var(--forecast-ind-10) 77.5%, var(--forecast-ind-09) 80%, var(--forecast-ind-08) 82.5%, var(--forecast-ind-07) 85%, var(--forecast-ind-06) 87.5%, var(--forecast-ind-05) 90%, var(--forecast-ind-04) 92.5%, var(--forecast-ind-03) 95%, var(--forecast-ind-02) 97.5%, var(--forecast-ind-01) 100%)}.district-outlook-margin__midpoint{background:color-mix(in srgb, var(--text-muted) 50%, transparent);width:1px;position:absolute;top:-.15rem;bottom:-.15rem;left:50%;transform:translate(-50%)}.district-outlook-margin__conf-band{pointer-events:none;border-left:1px solid var(--accent-text-secondary);border-right:1px solid var(--accent-text-secondary);background:color-mix(in srgb, var(--accent-text-secondary) 35%, transparent);position:absolute;top:0;bottom:0}.district-outlook-margin__marker{border:1px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:50%;transform:translate(-50%,-50%)}.district-outlook-margin__marker--dem{background:var(--party-dem-solid)}.district-outlook-margin__marker--gop{background:var(--party-gop-solid)}.district-outlook-margin__marker--even{background:var(--text-secondary)}.district-outlook-margin__label{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.district-outlook-margin--label-above .district-outlook-margin__label{bottom:calc(50% + 9px);left:var(--district-outlook-margin-label-left,50%);font-size:.78rem;line-height:1;position:absolute;transform:translate(-50%)}.district-outlook-margin__skeleton-marker{background:color-mix(in srgb, var(--stroke-soft) 56%, var(--bg-elevated));width:2px;animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s);border-radius:999px;position:absolute;top:-.18rem;bottom:-.18rem;transform:translate(-50%)}.district-outlook-margin__skeleton-label{width:3.4rem;height:.88rem}.district-outlook-margin--label-above .district-outlook-margin__skeleton-label{bottom:calc(50% + 9px);left:var(--district-outlook-margin-label-left,50%);position:absolute;transform:translate(-50%)}.district-outlook-table__probability-skeleton{height:.92rem;margin-left:auto;display:block}.district-outlook-card-sort,.district-outlook-card-list{display:none}.district-outlook-card-sort{scrollbar-width:none;gap:.45rem;padding:0 0 .1rem;overflow-x:auto}.district-outlook-card-sort::-webkit-scrollbar{display:none}.district-outlook-card-sort__button{appearance:none;border:1px solid color-mix(in srgb, var(--stroke-soft) 86%, transparent);background:color-mix(in srgb, var(--bg-elevated) 82%, var(--bg-base));color:var(--text-secondary);font:inherit;border-radius:999px;flex:none;align-items:center;gap:.35rem;padding:.5rem .65rem;font-size:.76rem;font-weight:700;line-height:1;display:inline-flex}.district-outlook-card-sort__button--active{border-color:var(--accent-border-soft);background:color-mix(in srgb, var(--accent-surface-subtle) 76%, var(--bg-elevated));color:var(--accent-text-primary)}.district-outlook-card-sort__indicator{color:var(--text-muted);align-items:center;display:inline-flex}.district-outlook-card-sort__button--active.district-outlook-card-sort__button--dem{border-color:color-mix(in srgb, var(--party-dem-solid) 30%, transparent);background:color-mix(in srgb, var(--party-dem-solid) 10%, var(--bg-elevated));color:var(--party-dem-text)}.district-outlook-card-sort__button--active.district-outlook-card-sort__button--rep{border-color:color-mix(in srgb, var(--party-gop-solid) 30%, transparent);background:color-mix(in srgb, var(--party-gop-solid) 10%, var(--bg-elevated));color:var(--party-gop-text)}.district-outlook-card-sort__indicator--dem{color:var(--party-dem-text)}.district-outlook-card-sort__indicator--rep{color:var(--party-gop-text)}.district-outlook-card{border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 38%, var(--bg-elevated));width:100%;color:var(--text-primary);text-align:left;border-radius:12px;gap:.8rem;padding:.9rem;text-decoration:none;display:grid;text-decoration:none!important}.district-outlook-card:focus-visible{outline:2px solid var(--field-focus);outline-offset:2px}.district-outlook-card__header{justify-content:space-between;align-items:flex-start;gap:.7rem;min-width:0;display:flex}.district-outlook-card__title{flex-wrap:wrap;align-items:baseline;gap:.55rem;min-width:0;max-width:100%;display:inline-flex}.district-outlook-card__race{min-width:0;color:var(--text-primary);font-size:1rem;font-weight:700;line-height:1.2}.district-outlook-card__extra{flex:none}.district-outlook-card__extra .district-outlook-table__extra-value--correlation{text-align:left;width:auto;min-width:0;font-size:1rem;line-height:1;display:inline-block}.district-outlook-card__candidates,.district-outlook-card .district-outlook-table__candidate-list{gap:.35rem;min-width:0;display:grid}.district-outlook-card .district-outlook-table__candidate{justify-content:flex-start;gap:.65rem}.district-outlook-card .district-outlook-table__candidate-name{white-space:normal}.district-outlook-card .district-outlook-table__probability-value{text-align:left;justify-self:start;min-width:0}.district-outlook-card__metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;min-width:0;display:grid}.district-outlook-card__metric{align-content:start;gap:.35rem;min-width:0;display:grid}.district-outlook-card__metric--wide{grid-column:1/-1}.district-outlook-card__metric-label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;font-weight:700;line-height:1}.district-outlook-card .district-outlook-margin{grid-template-columns:minmax(0,1fr) auto}.district-outlook-card .district-outlook-table__probability-skeleton,.district-outlook-card .district-outlook-table__extra-skeleton{margin-left:0}.table-wrap{border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 40%, var(--bg-elevated));border-radius:18px;overflow-x:auto}.vote-share-shell{width:100%}.race-outlook-flow{margin-top:2.75rem;display:grid}.race-fec{--race-fec-candidate-top:1.5rem;--race-fec-left-x:3.5rem;--race-fec-right-x:3.5rem;--race-fec-scene-bottom:0rem;--race-fec-left-stack-x:20%;--race-fec-right-stack-x:90%;--race-fec-left-stack-x-tier-1:12%;--race-fec-left-stack-x-tier-2:16%;--race-fec-left-stack-x-tier-3:var(--race-fec-left-stack-x);--race-fec-left-stack-x-tier-4:var(--race-fec-left-stack-x);--race-fec-left-stack-x-tier-5:var(--race-fec-left-stack-x);--race-fec-left-stack-x-tier-6:var(--race-fec-left-stack-x);--race-fec-right-stack-x-tier-1:90%;--race-fec-right-stack-x-tier-2:90%;--race-fec-right-stack-x-tier-3:var(--race-fec-right-stack-x);--race-fec-right-stack-x-tier-4:var(--race-fec-right-stack-x);--race-fec-right-stack-x-tier-5:var(--race-fec-right-stack-x);--race-fec-right-stack-x-tier-6:var(--race-fec-right-stack-x);--race-fec-stack-bottom:50%;isolation:isolate;height:25rem;position:relative}.race-fec__candidates{z-index:2;pointer-events:none;position:absolute;inset:0}.race-fec__candidate{top:var(--race-fec-candidate-top);flex-direction:column;gap:.55rem;width:min(31rem,38%);display:flex;position:absolute;container-type:inline-size}.race-fec__candidate--left{left:var(--race-fec-left-x);align-items:flex-start}.race-fec__candidate--right{right:var(--race-fec-right-x);text-align:right;align-items:flex-end}.race-fec__candidate-heading{align-items:center;gap:.5rem;max-width:100%;font-family:Inter,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.03rem;font-weight:700;line-height:1.1;display:inline-flex}.race-fec__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.race-fec__amount{color:#ede9fa;letter-spacing:-.075em;white-space:nowrap;margin:0;font-family:Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(4rem,min(8.95vw,20cqw),6.1rem);font-weight:800;line-height:.94}.race-fec__name-skeleton{width:6.2rem;height:1rem}.race-fec__badge-skeleton{border-radius:4px;width:1.1rem;height:1.1rem}.race-fec__amount-skeleton{background:color-mix(in srgb, #ede9fa 84%, var(--bg-base));border-radius:1rem;width:min(100%,17rem);height:clamp(4rem,8.95vw,6.1rem)}.race-fec__scene{--race-fec-left-offset:0px;--race-fec-right-offset:0px;--race-fec-left-offset-tier-1:.7rem;--race-fec-left-offset-tier-2:.5rem;--race-fec-left-offset-tier-3:.6rem;--race-fec-left-offset-tier-4:var(--race-fec-left-offset);--race-fec-left-offset-tier-5:.7rem;--race-fec-left-offset-tier-6:var(--race-fec-left-offset);--race-fec-right-offset-tier-1:.7rem;--race-fec-right-offset-tier-2:.5rem;--race-fec-right-offset-tier-3:.6rem;--race-fec-right-offset-tier-4:var(--race-fec-right-offset);--race-fec-right-offset-tier-5:.7rem;--race-fec-right-offset-tier-6:var(--race-fec-right-offset);--race-fec-stack-bob:-3px;--race-fec-stack-offset:0px;--race-fec-stack-width:9.82%;--race-fec-tilt:0deg;--race-fec-tilt-nudge:.45deg;right:auto;bottom:var(--race-fec-scene-bottom);z-index:1;aspect-ratio:998/162;width:min(100%,62.375rem);position:absolute;left:50%;transform:translate(-50%)}.race-fec__fulcrum-back{z-index:1;width:3.31%;height:64.2%;position:absolute;top:0;left:48.25%}.race-fec__beam-wrap{z-index:2;width:100%;transform:rotate(var(--race-fec-tilt));transform-origin:50%;transition:transform .72s cubic-bezier(.22,1,.36,1);animation:5.8s ease-in-out infinite race-fec-seesaw-rock;position:absolute;top:5%;left:0;overflow:visible}.race-fec__beam{z-index:1;width:100%;height:auto;display:block;position:relative}.race-fec__fulcrum-front{z-index:4;width:12.63%;height:auto;position:absolute;top:22.2%;left:43.64%}.race-fec__stack{z-index:2;bottom:var(--race-fec-stack-bottom);width:var(--race-fec-stack-width);transform:translate(-50%, var(--race-fec-stack-offset));will-change:transform;transition:transform .72s cubic-bezier(.22,1,.36,1),width .72s cubic-bezier(.22,1,.36,1);position:absolute}.race-fec__stack--left{left:var(--race-fec-left-stack-x-active,var(--race-fec-left-stack-x))}.race-fec__stack--right{left:var(--race-fec-right-stack-x-active,var(--race-fec-right-stack-x))}.race-fec__stack--left.race-fec__stack--tier-1{--race-fec-left-stack-x-active:var(--race-fec-left-stack-x-tier-1)}.race-fec__stack--left.race-fec__stack--tier-2{--race-fec-left-stack-x-active:var(--race-fec-left-stack-x-tier-2)}.race-fec__stack--left.race-fec__stack--tier-3{--race-fec-left-stack-x-active:var(--race-fec-left-stack-x-tier-3)}.race-fec__stack--left.race-fec__stack--tier-4{--race-fec-left-stack-x-active:var(--race-fec-left-stack-x-tier-4)}.race-fec__stack--left.race-fec__stack--tier-5{--race-fec-left-stack-x-active:var(--race-fec-left-stack-x-tier-5)}.race-fec__stack--left.race-fec__stack--tier-6{--race-fec-left-stack-x-active:var(--race-fec-left-stack-x-tier-6)}.race-fec__stack--right.race-fec__stack--tier-1{--race-fec-right-stack-x-active:var(--race-fec-right-stack-x-tier-1)}.race-fec__stack--right.race-fec__stack--tier-2{--race-fec-right-stack-x-active:var(--race-fec-right-stack-x-tier-2)}.race-fec__stack--right.race-fec__stack--tier-3{--race-fec-right-stack-x-active:var(--race-fec-right-stack-x-tier-3)}.race-fec__stack--right.race-fec__stack--tier-4{--race-fec-right-stack-x-active:var(--race-fec-right-stack-x-tier-4)}.race-fec__stack--right.race-fec__stack--tier-5{--race-fec-right-stack-x-active:var(--race-fec-right-stack-x-tier-5)}.race-fec__stack--right.race-fec__stack--tier-6{--race-fec-right-stack-x-active:var(--race-fec-right-stack-x-tier-6)}.race-fec__stack-image{filter:drop-shadow(0 .55rem .45rem #351c7114);width:60%;height:auto;display:block}@keyframes race-fec-seesaw-rock{0%,to{transform:rotate(var(--race-fec-tilt))}50%{transform:rotate(calc(var(--race-fec-tilt) + var(--race-fec-tilt-nudge)))}}@media (prefers-reduced-motion:reduce){.race-fec__beam-wrap{transition:none;animation:none}}.kalshi-markets{width:100%}.kalshi-markets__card{border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 40%, var(--bg-elevated));border-radius:12px;overflow:hidden}.kalshi-markets__table-wrap{width:100%;overflow-x:auto}.kalshi-markets__table{border-collapse:collapse;width:100%;font-family:Inter,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.kalshi-markets__table th,.kalshi-markets__table td{border-bottom:1px solid var(--stroke-soft);vertical-align:middle;padding:1rem}.kalshi-markets__table thead th{background:var(--bg-elevated);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;padding:.72rem .8rem;font-size:.625rem;font-weight:600}.kalshi-markets__table th:first-child{text-align:left;width:65%}.kalshi-markets__table th:not(:first-child),.kalshi-markets__table td{text-align:right;min-width:5.5rem}.kalshi-markets__table tbody th{font-size:1rem;font-weight:700}.kalshi-markets__candidate{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.kalshi-markets__chance{color:var(--text-primary);letter-spacing:-.035em;font-size:clamp(1.15rem,2.5vw,1.6rem);font-weight:800}.kalshi-markets__name{min-width:0}.kalshi-markets__change{color:var(--text-muted);letter-spacing:-.025em;font-size:clamp(1rem,2.1vw,1.3rem);font-weight:750}.kalshi-markets__change--positive{color:#00a86b}.kalshi-markets__change--negative{color:#e00024}.kalshi-markets__change-arrow{margin-right:.28em;font-size:.48em;display:inline-block;transform:translateY(-.2em)}.kalshi-markets__table tbody tr:last-child th,.kalshi-markets__table tbody tr:last-child td{border-bottom:0}.kalshi-markets__event-link{border:1px solid color-mix(in srgb, var(--accent-border-soft) 80%, transparent);background:var(--accent-surface-subtle);min-height:2.1rem;color:var(--accent-text-primary);border-radius:9px;justify-content:center;align-items:center;gap:.45rem;padding:.45rem .7rem;font-family:Inter,Avenir Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.82rem;font-weight:750;line-height:1;text-decoration:none;transition:border-color .14s,background-color .14s;display:inline-flex}.kalshi-markets__event-link:hover,.kalshi-markets__event-link:focus-visible{border-color:var(--accent-border-soft);background:color-mix(in srgb, var(--accent-surface-subtle) 82%, var(--bg-elevated))}.kalshi-markets__event-link:focus-visible{outline:2px solid var(--accent-border-soft);outline-offset:2px}.kalshi-markets__candidate-skeleton,.kalshi-markets__price-skeleton{height:1.25rem;display:inline-block}.kalshi-markets__candidate-skeleton{width:min(70%,10rem)}.kalshi-markets__price-skeleton{width:3.5rem}@media (width<=640px){.kalshi-markets__table{table-layout:fixed}.kalshi-markets__table th,.kalshi-markets__table td{min-width:0;padding:.7rem .65rem}.kalshi-markets__table th:first-child{width:55%;padding-left:.6rem}.kalshi-markets__table th:nth-child(2){width:25%}.kalshi-markets__table th:nth-child(3){width:20%}.kalshi-markets__table thead th{letter-spacing:.045em;padding-top:.55rem;padding-bottom:.55rem;font-size:.58rem}.kalshi-markets__table tbody th{font-size:.78rem;line-height:1.15}.kalshi-markets__candidate{gap:.3rem;width:100%}.kalshi-markets__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kalshi-markets__chance{font-size:.95rem}.kalshi-markets__change{font-size:.82rem}.kalshi-markets__candidate-skeleton{width:76%;height:.8rem}.kalshi-markets__price-skeleton{width:70%;height:.9rem}.kalshi-markets__event-link{padding-inline:.6rem;font-size:.76rem}}.summary-table{border-collapse:collapse;background:0 0;width:100%}.summary-table th,.summary-table td{border-bottom:1px solid color-mix(in srgb, var(--stroke-soft) 72%, transparent);white-space:nowrap;text-align:left;font-size:var(--vh-text-sm);padding:.9rem .75rem}.summary-table th{color:var(--text-muted);font-weight:600;font-size:var(--vh-text-xs);letter-spacing:.08em;text-transform:uppercase}.summary-table tbody tr:hover{background:color-mix(in srgb, var(--accent-surface-subtle) 70%, var(--bg-elevated))}.summary-table tbody tr:last-child td{border-bottom:none}.summary-table .race-name,.summary-table .candidate-name,.summary-table .metric-label,.summary-table .metric-value{white-space:normal}.summary-table .race-name,.summary-table .candidate-name,.summary-table .metric-value{font-weight:600}.summary-table--details .metric-label{width:38%;color:var(--text-muted)}.summary-table--details .metric-value{color:var(--text-primary)}.race-section{gap:1rem}.race-panel__empty{color:var(--text-muted);margin:0}.detail-grid{grid-template-columns:1fr;gap:.5rem;display:grid}.detail-row{border:1px solid var(--stroke-soft);background:var(--bg-elevated);border-radius:10px;justify-content:space-between;gap:1rem;padding:.7rem .8rem;display:flex}.detail-row span{color:var(--text-secondary)}.candidate-card-list{gap:.85rem;display:grid}.candidate-card{border:1px solid color-mix(in srgb, var(--stroke-soft) 78%, transparent);background:color-mix(in srgb, var(--bg-elevated) 90%, var(--bg-base));border-radius:14px;gap:.7rem;padding:.95rem 1rem;display:grid}.candidate-card__name{font-size:var(--vh-text-md);margin:0}@media (prefers-reduced-motion:reduce){.loading-swap__layer,.motion-reveal,.forecast-back-link-shell,.forecast-countdown-shell,.forecast-floating-dock,.forecast-floating-dock__inner,.forecast-methodology-link,.forecast-back-link,.home-page-link,.timeseries-chart,.histogram-shell,.district-map-shell,.district-outlook-probability-trend{transition-duration:1ms!important;transition-delay:0s!important}.skeleton-block,.home-scenario-graphic--loading .home-scenario-graphic__ghost,.home-scenario-graphic__accent,.home-scenario-graphic__skeleton-outline,.home-scenario-graphic__skeleton-fill,.home-scenario-graphic__skeleton-copy rect,.house-seat-summary__fill--skeleton,.histogram-dot--skeleton,.district-outlook-margin__skeleton-marker,.markets-comparison-map__skeleton-tile,.timeseries-chart__skeleton-grid,.timeseries-chart__skeleton-axis,.timeseries-chart__skeleton-line{animation:none}}@media (width<=1180px){.app-shell--forecast{--forecast-dock-content-center-offset:0px;gap:1.25rem}.forecast-overview{gap:1.1rem}.forecast-stage-layout{width:100%;display:block}.forecast-section-sidebar{display:none}.forecast-floating-mode{border:1px solid color-mix(in srgb, var(--stroke-soft) 78%, transparent);background:var(--bg-elevated);border-radius:999px;flex:none;align-items:center;gap:.15rem;padding:.12rem;display:inline-flex}}@media (width<=1400px) and (width>=769px){.race-fec{--race-fec-left-x:2.5rem;--race-fec-right-x:2.5rem}.race-fec__candidate{width:min(28.5rem,40%)}.race-fec__amount{font-size:clamp(3.65rem,min(7.5vw,18cqw),5rem)}}@media (width<=768px){.app-shell{gap:2.25rem;padding:1.25rem .85rem 2.5rem}.app-shell--forecast{padding:1rem .85rem calc(8.75rem + env(safe-area-inset-bottom,0px));gap:1rem}.forecast-stage-layout{width:100%}.forecast-stage-layout__content{gap:3.2rem;width:100%}#house-overview+.house-map-panel,#senate-overview+.statewide-map-panel,#governor-overview+.statewide-map-panel,#gubernatorial-overview+.statewide-map-panel,#markets-overview+.statewide-map-panel{margin-top:-3rem}.forecast-section-sidebar__eyebrow{letter-spacing:.16em;font-size:.62rem}.forecast-section-sidebar__nav{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:.15rem;overflow-x:auto}.forecast-section-sidebar__mode-card{padding:.9rem .9rem .82rem}.forecast-section-sidebar__nav::-webkit-scrollbar{display:none}.forecast-section-sidebar__link{flex:none;padding:.58rem .82rem}.forecast-panel{--forecast-panel-section-top-padding:0;--forecast-panel-section-title-size:clamp(2.05rem, 9.5vw, 3.65rem);--forecast-panel-section-title-gap:.25rem}.forecast-panel--distribution,.forecast-panel--timeseries,.forecast-panel--markets,.forecast-panel--fec,.race-section.forecast-panel,.forecast-panel--correlated-races{--forecast-panel-section-top-padding:.05rem;--forecast-panel-section-title-size:clamp(1.55rem, 6.8vw, 2.25rem)}.forecast-panel__header{margin-bottom:.65rem}.forecast-panel__section-title{letter-spacing:-.06em}.forecast-panel--distribution .forecast-panel__section-title--single-line,.forecast-panel--timeseries .forecast-panel__section-title--single-line,.forecast-panel--markets .forecast-panel__section-title--single-line,.forecast-panel--fec .forecast-panel__section-title--single-line,.race-section.forecast-panel .forecast-panel__section-title--single-line,.forecast-panel--correlated-races .forecast-panel__section-title--single-line{white-space:normal;text-wrap:balance;font-size:1.8rem}.forecast-panel--markets .forecast-panel__section-title--single-line,.forecast-panel--correlated-races .forecast-panel__section-title--single-line{white-space:nowrap;text-wrap:nowrap;font-size:clamp(1.35rem,6vw,2rem)}.loading-swap--skeleton-visible.loading-swap--section-header{min-height:4.2rem}.loading-swap--skeleton-visible.loading-swap--section-header--compact{min-height:2.1rem}.loading-swap--skeleton-visible.loading-swap--timeseries,.loading-swap--skeleton-visible.loading-swap--histogram{min-height:13.5rem}.forecast-panel__subtitle--distribution{max-width:29rem;font-size:.85rem;line-height:1.38}.forecast-panel__subtitle--timeseries{font-size:.85rem;line-height:1.38}.house-map-panel__backdrop{top:.65rem}.race-panel{padding-top:.95rem}.race-map-placeholder{border-radius:18px;width:100%}.race-map-stage{min-height:clamp(15rem,68vw,26rem)}.race-map-placeholder:before{border-radius:14px;inset:.7rem}.race-map-placeholder__empty{padding:1.5rem;inset:.7rem}.race-map-placeholder__message{font-size:.88rem}.race-map-placeholder--compact .race-map-placeholder__empty{padding:.9rem 1rem}.race-map-placeholder__empty--inline{align-items:flex-start}.race-map-placeholder__skeleton{inset:1rem}.dashboard-card{padding:1.15rem}.card-grid--forecast,.card-grid--race{grid-template-columns:1fr}.histogram-shell{padding-inline:.7rem}.histogram-legend{padding:.2rem .45rem;right:.2rem}.histogram-x-axis{height:2.55rem}.histogram-outcome-tooltip{width:min(14rem,100vw - 1.7rem)}.histogram-outcome-map__district{stroke-width:1.9px}.vst-race-margin__value{font-size:1.65rem}.timeseries-stack{gap:1.2rem}.timeseries-stack>*+*{padding-top:0}.forecast-panel--timeseries+.race-section.forecast-panel{margin-top:.4rem}.timeseries-chart__title{font-size:.9rem}.timeseries-chart__legend{gap:.55rem;font-size:11px}.vst-col-candidate{width:30%}.vst-col-bar{width:44%}.vst-col-chance{width:26%}.vote-bar-track{height:22px}.house-headline{font-size:clamp(1.65rem,7.5vw,2.35rem)}.house-hero__headline{min-height:clamp(3.1rem,9vw,4.6rem)}.app-shell--forecast .house-hero .house-headline{font-size:clamp(1.35rem,5.6vw,2.35rem);line-height:1.04}.app-shell--forecast .house-hero .house-headline.house-headline--gubernatorial{font-size:clamp(1.85rem,6.2vw,2.8125rem);line-height:1}.app-shell--forecast .house-hero .house-headline.house-headline--detail{font-size:clamp(1.7rem,6.4vw,2.65rem)}.app-shell--forecast .house-hero .house-headline.house-headline--statewide-hero{max-width:14ch;font-size:clamp(1.75rem,6.8vw,2.85rem);line-height:1}.house-hero__headline--statewide-hero{width:100%;min-height:clamp(6rem,16vw,8.25rem)}.house-headline__line--break{max-width:min(100%,16ch)}.forecast-stage--house .house-headline__line--break,.forecast-stage--statewide .house-headline:not(.house-headline--gubernatorial):not(.house-headline--statewide-hero) .house-headline__line--break{white-space:nowrap;max-width:min(100%,24ch)}.forecast-stage--race .house-headline__line--break{max-width:100%}.house-subtitle{font-size:var(--vh-text-sm)}.house-subtitle--house-page{min-height:2.2rem;font-size:.82rem}.forecast-back-link-shell{top:calc(.55rem + env(safe-area-inset-top,0px))}.forecast-back-link{width:2.55rem;height:2.55rem}.app-shell--with-back-link .forecast-stage:first-child{padding-top:3.1rem}.app-shell--forecast .house-subtitle.house-subtitle--map-detail{font-size:.76rem}.forecast-floating-dock{width:calc(100% - 1rem);bottom:calc(.65rem + env(safe-area-inset-bottom,0px))}.forecast-floating-dock__cluster{grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:.4rem;width:100%;display:grid}.forecast-countdown-shell{width:calc(100% - 1rem);bottom:calc(7.85rem + env(safe-area-inset-bottom,0px))}.forecast-countdown{padding:.44rem .55rem}.forecast-countdown__value{font-size:.94rem}.forecast-floating-dock__inner{box-shadow:0 10px 26px color-mix(in srgb, var(--text-primary) 12%, transparent);border-radius:12px;grid-template-columns:1fr;gap:.45rem;padding:.45rem;display:grid}.forecast-methodology-link{border-radius:12px;width:2.85rem;min-height:100%;padding:.45rem}.forecast-methodology-link__icon{width:1.12rem;height:1.12rem}.forecast-methodology-link__label{display:none}.forecast-floating-nav__button--standalone{border-radius:12px;flex-direction:row;width:2.85rem;min-height:100%;padding:.45rem}.forecast-floating-nav__button--standalone .forecast-floating-nav__label{display:none}.forecast-floating-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;width:100%;display:grid}.forecast-floating-nav__button{border-color:#0000;border-radius:8px;flex-direction:column;gap:.2rem;width:100%;min-width:0;min-height:3.05rem;padding:.45rem .22rem;font-size:.64rem}.forecast-floating-nav__label{text-overflow:clip;max-width:100%;font-size:.64rem;line-height:1;display:inline-block}.forecast-floating-nav__button--short-label .forecast-floating-nav__label{display:none}.forecast-floating-nav__short-label{color:currentColor;text-overflow:clip;max-width:100%;font-size:.64rem;line-height:1;display:inline-block;overflow:hidden}.forecast-floating-nav__tooltip{display:none}.forecast-floating-mode{border:1px solid color-mix(in srgb, var(--stroke-soft) 78%, transparent);background:var(--bg-elevated);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:.25rem;width:100%;padding:.18rem;display:grid}.forecast-floating-mode__button{border-radius:6px;width:100%;padding:.54rem .45rem;font-size:.72rem}.home-page-link{grid-template-columns:1fr;gap:.35rem}.home-page-link__cta{padding-top:0}.forecast-copy--map-overlay{max-width:min(24rem,70%);min-height:5rem;top:.2rem;left:.1rem}.house-subtitle--map{max-width:22rem}.house-seat-summary__labels{font-size:var(--vh-text-sm)}.house-seat-summary{min-height:3rem}.house-map-panel,.statewide-map-panel{z-index:10;flex-direction:column;display:flex;position:relative;overflow:visible}.house-map-toolbar{order:2;align-items:stretch;gap:.75rem;width:100%;margin-top:.85rem;margin-bottom:0}.statewide-map-toolbar{order:2;align-items:stretch;gap:.75rem;width:100%;margin-bottom:0}.house-map-legend{max-width:100%;font-size:var(--vh-text-xs);flex-direction:row;align-items:center;gap:.65rem}.house-map-legend__image--district{width:4.35rem}.house-map-legend__image--map{width:min(13.75rem,100vw - 2.4rem)}.house-map-legend:not(.house-map-legend--map-only) .house-map-legend__image--map{width:min(12rem,100vw - 7.6rem)}.house-map-toolbar>.loading-swap--map-toggle{flex:100%;justify-self:stretch;justify-items:stretch;width:100%;margin-left:0}.house-map-controls--dropdowns{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;width:100%;display:grid}.house-map-select,.house-map-select--compact,.house-map-select-skeleton{width:100%}.house-map-select__trigger,.house-map-select__option{padding-inline:.65rem}.house-map-select__menu{z-index:100}.house-map-stage,.forecast-map-stage{order:1}.forecast-map-partner{order:3;margin-top:.65rem;font-size:.78rem}.house-map-toggle__button-skeleton--map{width:3.8rem}.house-map-toggle__button-skeleton--cartogram{width:5.5rem}.district-outlook-table th,.district-outlook-table td{padding:.62rem .65rem}.district-outlook-table-wrap{min-height:20rem}.table-wrap{min-height:11rem}.race-outlook-table-wrap{min-height:13rem}.race-outlook-flow{margin-top:1.25rem}.district-outlook-table__race{min-width:12rem}.district-outlook-table__candidates{min-width:13rem}.district-outlook-table__margin-cell{width:6.4rem;min-width:0}.district-outlook-table__probability-cell{min-width:4.5rem}.district-outlook-table__extra-cell{min-width:4rem}.district-outlook-table__trend-cell{min-width:4.7rem}.district-outlook-probability-trend{left:.65rem;right:.65rem}.district-outlook-probability-trend__skeleton{width:4rem}.district-outlook-margin{grid-template-columns:minmax(6.8rem,7.8rem) auto;gap:.5rem}.district-outlook-search{width:100%}.district-outlook-table-wrap{max-height:clamp(22rem,56vh,34rem);overflow:auto}.summary-table th,.summary-table td{padding:.8rem .55rem}.district-map-tooltip:not(.district-map-tooltip--mobile),.histogram-outcome-tooltip,.house-seat-summary__tooltip,.forecast-floating-nav__tooltip{display:none!important}.district-outlook-card-sort{display:flex}.district-outlook-table-wrap{display:none}.district-outlook-card-list{overscroll-behavior:contain;border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 40%, var(--bg-elevated));border-radius:12px;gap:.75rem;max-height:clamp(28rem,64vh,46rem);padding:.75rem;display:grid;overflow-y:auto}.district-outlook-card-list .district-outlook-list__empty{padding:.85rem 0}.race-headline .house-headline__line{white-space:normal}.app-shell--forecast .house-hero .race-headline.house-headline--detail{font-size:clamp(1.6rem,6vw,2.35rem);line-height:1.03}}@media (width<=730px){.race-fec{height:auto}.race-fec__candidates{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:clamp(1rem,3vw,2.5rem);padding:1rem;display:grid;position:static}.race-fec__candidate{width:100%;min-width:0;position:static;top:auto;left:auto;right:auto}.race-fec__candidate--left,.race-fec__candidate--right{text-align:left;align-items:flex-start}.race-fec__candidate-heading{gap:.4rem;font-size:.9rem}.race-fec__amount{max-width:100%;color:var(--accent-text-secondary);letter-spacing:-.06em;font-size:clamp(2.1rem,10.75vw,4rem)}.race-fec__scene{display:none}}@media (width<=640px){.vote-share-table:not(.vote-share-table--compact){display:none}.vote-share-mobile-cards{gap:.75rem;padding:.75rem;display:grid}.race-outlook-table-wrap{min-height:0}.race-markets-table-wrap{max-width:none}.vote-share-card__metrics{grid-template-columns:minmax(0,1fr)}.vote-share-card--summary{grid-template-columns:minmax(0,1fr);justify-items:start}.vote-share-card--summary .vst-race-margin__value{font-size:2rem}}@media (width<=560px){.forecast-countdown-shell{width:calc(100% - .75rem);bottom:calc(7.75rem + env(safe-area-inset-bottom,0px))}.forecast-countdown{gap:.26rem;padding:.42rem .4rem}.forecast-countdown__value{font-size:.86rem}.forecast-countdown__label{letter-spacing:.08em;font-size:.48rem}.forecast-floating-dock{width:calc(100% - .75rem)}.forecast-floating-dock__cluster{gap:.32rem}.forecast-floating-dock__inner{gap:.4rem;padding:.4rem}.forecast-methodology-link,.forecast-floating-nav__button--standalone{width:2.65rem;padding:.4rem}.forecast-floating-nav__button{min-height:2.9rem;padding:.42rem .16rem}.forecast-floating-mode__button{padding:.5rem .32rem;font-size:.68rem}.forecast-floating-mode__icon{width:.7rem;height:.7rem}.histogram-shell{overflow:hidden}.histogram-legend{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;justify-content:flex-end;margin-bottom:.45rem;padding:0;display:flex;position:static}.app-shell--forecast .histogram-legend{right:auto}.histogram{gap:1px;min-height:300px;padding-inline:0}.x-axis-tick{font-size:10px}.x-axis-tick:before{margin-bottom:.18rem}.timeseries-chart__axis-text,.timeseries-chart__date-badge-text,.timeseries-chart__hover-text{font-size:12px}.timeseries-chart__header{grid-template-columns:minmax(0,1fr) auto;align-items:center}.timeseries-chart__header-main,.timeseries-chart__legend{display:contents}.timeseries-chart__title,.timeseries-chart__legend-copy{grid-column:1/-1}.timeseries-chart__legend{row-gap:.3rem;font-size:11px}.timeseries-chart__legend-items{grid-column:1}.timeseries-chart__legend-copy{font-size:.82rem;line-height:1.32}.timeseries-chart__plot{border-radius:14px}.timeseries-chart__confidence-badge-image{height:28px}.timeseries-chart__confidence-badge{grid-column:2;margin-left:0}.timeseries-chart__confidence-badge-image--polling{height:40px}}@media (hover:none),(pointer:coarse){.district-map-tooltip:not(.district-map-tooltip--mobile),.histogram-outcome-tooltip,.house-seat-summary__tooltip,.forecast-floating-nav__tooltip{display:none!important}.forecast-floating-dock__inner{opacity:1}.forecast-floating-dock:hover .forecast-floating-dock__inner{border-color:color-mix(in srgb, var(--accent-border-soft) 86%, transparent);background:var(--bg-base)}.forecast-methodology-link:hover{border-color:color-mix(in srgb, var(--accent-border-soft) 86%, transparent);background:var(--bg-base);color:var(--text-secondary)}.forecast-floating-nav__button:hover,.forecast-back-link:hover,.house-map-toggle__button:hover{transform:none}.district-outlook-table__row:hover td,.summary-table tbody tr:hover{background:0 0}.histogram-dot--interactive{cursor:default}}@media (prefers-reduced-motion:reduce){.timeseries-chart,.histogram-shell,.district-map-shell,.district-outlook-probability-trend{opacity:1;transition:none;transform:none}.timeseries-chart__header,.timeseries-chart__plot,.timeseries-chart__axis-line,.timeseries-chart__tick-line,.timeseries-chart__axis-text,.timeseries-chart__reference-line,.timeseries-chart__reference-label,.timeseries-chart__election-day-line,.timeseries-chart__election-day-label,.timeseries-chart__confidence-icon,.timeseries-chart__line,.histogram,.histogram-legend,.histogram-average-line,.histogram-dot,.histogram-x-axis,.district-outlook-probability-trend__line{opacity:1;transition:none;animation:none;transform:none}.timeseries-chart__line,.district-outlook-probability-trend__line{stroke-dashoffset:0}.histogram-average-line{transform:translate(-50%)}}.forecast-stage--markets .house-hero__headline{width:min(100%,60rem)}.app-shell--forecast .house-hero .house-headline.markets-headline{letter-spacing:-.025em;max-width:60rem;font-size:clamp(2rem,2.7vw,2.5rem);line-height:1.04}.markets-headline .house-headline__line{white-space:nowrap;text-wrap:nowrap}.app-shell--forecast .house-hero .house-headline.markets-headline--gubernatorial{font-size:clamp(1.75rem,2.3vw,2.25rem)}.markets-headline .house-headline__line--break{max-width:none}.markets-headline__metric{font-weight:700}.markets-headline__metric--close{color:#2ab56f}.markets-headline__metric--apart{color:#f269a9}.forecast-stage--markets .house-hero__copy-stack{gap:0}.loading-swap--markets-hero,.loading-swap--markets-hero .loading-swap__layer{min-height:9.45rem}.markets-headline--skeleton{gap:.3em}.markets-headline__skeleton-line{height:.22em}.markets-headline__skeleton-line--lead{width:min(18em,92%)}.markets-headline__skeleton-line--tail{width:min(15em,78%)}.markets-hero__dek--skeleton{width:100%}.markets-hero__updated-skeleton{width:min(13rem,42%);height:.58rem}.forecast-stage--markets .markets-hero__dek{gap:.62rem}.markets-map-toolbar{justify-content:space-between;align-items:center}.markets-map-legend{width:21.5rem;max-width:100%;display:block}.markets-map-legend .house-map-legend__image--map{width:100%;min-width:0;max-width:100%}.markets-map-controls{gap:.2rem;display:inline-flex}.markets-comparison-map{aspect-ratio:1040/660;width:100%;position:relative}.markets-comparison-map__skeleton-tile{fill:color-mix(in srgb, var(--stroke-soft) 74%, var(--bg-base));animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s)}.markets-comparison-map__race{cursor:pointer;transition:filter .13s,opacity .13s}.markets-comparison-map__race:hover{filter:brightness(.9)}.district-map-tooltip.markets-map-tooltip{z-index:5;max-width:min(17rem,100% - .75rem)}.markets-map-tooltip .vote-share-table th.vst-col-chance{text-align:left;font-weight:600}.forecast-panel--markets-comparison{gap:1.15rem}.markets-comparison-table-shell{border:1px solid var(--stroke-soft);background:var(--bg-elevated);border-radius:.75rem;overflow:hidden}.markets-comparison-controls{border-bottom:1px solid var(--stroke-soft);grid-template-columns:minmax(14rem,1fr) minmax(14rem,18rem);gap:.7rem;padding:.75rem;display:grid}.markets-comparison-sort{color:var(--text-muted);grid-template-columns:auto 1fr;align-items:center;gap:.55rem;font-size:.72rem;display:grid}.markets-comparison-sort select{border:1px solid var(--field-border);background:var(--field-bg);width:100%;height:2.55rem;color:var(--field-text);font:inherit;border-radius:.5rem;padding:0 .65rem;font-size:.78rem}.markets-comparison-table-wrap{overflow-x:auto}.markets-comparison-table{border-collapse:collapse;table-layout:fixed;width:100%}.markets-comparison-table th,.markets-comparison-table td{border-bottom:1px solid var(--stroke-soft);text-align:left;vertical-align:middle;padding:.78rem .9rem}.markets-comparison-table thead th{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.64rem;font-weight:700}.markets-comparison-table th:first-child{width:49%}.markets-comparison-table th:not(:first-child){width:17%}.markets-comparison-table tbody tr:last-child>*{border-bottom:0}.markets-comparison-table tbody tr:hover{background:var(--accent-surface-subtle)}.markets-comparison-table a{color:var(--text-primary);gap:.18rem;font-size:.82rem;font-weight:650;text-decoration:none;display:grid}.markets-comparison-table a:hover{color:var(--accent-text-secondary)}.markets-comparison-table small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:400;overflow:hidden}.markets-comparison-table td strong{color:var(--text-primary);font-size:.86rem}.markets-comparison-table td strong.party-r{color:var(--party-gop-text)}.markets-comparison-table td strong.party-d{color:var(--party-dem-text)}.markets-comparison-empty,.markets-comparison-error{color:var(--text-muted);text-align:center;margin:0;padding:2rem 1rem}@media (width<=767px){.forecast-stage--markets .house-hero__headline,.forecast-stage--markets .house-hero__dek{width:100%;min-width:0;max-width:100%}.app-shell--forecast .house-hero .house-headline.markets-headline{gap:.28em;width:100%;min-width:0;max-width:100%;font-size:clamp(1rem,5vw,2.35rem);display:grid}.app-shell--forecast .house-hero .house-headline.markets-headline--gubernatorial{font-size:clamp(1rem,5vw,2.35rem)}.markets-headline__lead{display:block}.forecast-stage--markets .house-hero__copy-stack{gap:.65rem}.markets-headline .house-headline__line,.markets-headline .house-headline__line--break{white-space:nowrap;text-wrap:nowrap;width:100%;max-width:100%;margin:0;display:block}.app-shell--forecast .forecast-stage--markets .house-hero .markets-headline .house-headline__line--break{max-width:100%}.forecast-stage--markets .markets-headline .house-headline__line>span{white-space:nowrap;text-wrap:nowrap}.markets-map-legend{width:min(20rem,100%);margin-inline:auto}.markets-map-controls{justify-content:center;width:100%}.markets-map-controls>.house-map-select{flex:1 1 0;min-width:0}.markets-comparison-controls{grid-template-columns:1fr}.district-outlook-card__metric.markets-kalshi-probability{justify-items:end}.district-outlook-card__metric.markets-kalshi-probability>*{text-align:right;justify-self:end}.markets-comparison-table,.markets-comparison-table tbody{gap:.55rem;display:grid}.markets-comparison-table thead{display:none}.markets-comparison-table tbody{padding:.55rem}.markets-comparison-table tr{border:1px solid var(--stroke-soft);border-radius:.55rem;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.markets-comparison-table th,.markets-comparison-table td{border-bottom:0;padding:.68rem;width:auto!important}.markets-comparison-table tbody th{border-bottom:1px solid var(--stroke-soft);grid-column:1/-1}.markets-comparison-table td{gap:.18rem;display:grid}.markets-comparison-table td:before{content:attr(data-label);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.52rem;font-weight:700}.markets-map-tooltip{display:none}}:root:not([data-theme=dark]) .vh-theme-asset--dark,[data-theme=dark] .vh-theme-asset--light{display:none!important}[data-theme=dark] .timeseries-chart__background-image{opacity:.01}[data-theme=dark] .home-scenario-graphic stop{stop-color:#262631}[data-theme=dark] .home-scenario-graphic__ghost{stroke:var(--bg-base)}[data-theme=dark] .home-scenario-graphic path[stroke=\#e7e7eb]{stroke:#33333f}[data-theme=dark] .home-scenario-graphic path[fill=\#f8f9fc]{fill:var(--bg-surface)}[data-theme=dark] .home-scenario-graphic [fill=\#1a1a1a]{fill:var(--text-primary)}.how-we-got-here__bar[data-sankey-node=kalshi],.how-we-got-here__node-label[data-sankey-node=kalshi]{fill:var(--vh-color-kalshi-brand,#00b67a)}.how-we-got-here__flow[data-sankey-source=kalshi]{fill:color-mix(in srgb, var(--vh-color-kalshi-brand,#00b67a) 28%, transparent)}.vote-share-table--compact .vh-party-badge{border-radius:5px;min-width:15px;height:16px;padding:0 4px;font-size:8px}[data-theme=dark] .forecast-floating-nav__button--active,[data-theme=dark] .forecast-floating-nav__button[aria-current=page],[data-theme=dark] .forecast-floating-nav__button:hover,[data-theme=dark] .forecast-methodology-link:hover{background:color-mix(in srgb, var(--accent-text-secondary) 14%, var(--bg-elevated))}[data-theme=dark] .district-outlook-margin__marker,[data-theme=dark] .vote-bar-marker{border-color:var(--bg-elevated)}@view-transition{navigation:auto}#root{min-height:100vh;transition:opacity .18s,transform .24s cubic-bezier(.22,1,.36,1)}html.page-transition-is-leaving #root{opacity:0;transform:translateY(.55rem)}::view-transition-group(root){animation-duration:.42s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(root){animation:.32s cubic-bezier(.4,0,1,1) both page-transition-out}::view-transition-new(root){animation:.44s cubic-bezier(.22,1,.36,1) both page-transition-in}@keyframes page-transition-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.35rem)}}@keyframes page-transition-in{0%{opacity:0;transform:translateY(.85rem)}to{opacity:1;transform:translateY(0)}}.district-map-shell{opacity:0;width:100%;transition:opacity .36s,transform .36s;transform:translateY(.85rem)}.district-map-shell--revealed,.district-map-shell[aria-busy=true]{opacity:1;transform:none}.district-map{border:1px solid color-mix(in srgb, var(--stroke-soft) 85%, transparent);border-radius:18px;padding:3rem;position:relative;overflow:visible}.district-map-tooltip{z-index:2;box-sizing:border-box;pointer-events:none;width:max-content;max-width:calc(100% - .75rem);position:absolute}.district-map-tooltip--mobile{z-index:auto;pointer-events:auto;width:100%;max-width:none;position:static}.district-map-tooltip__panel{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--stroke-soft) 82%, transparent);background:color-mix(in srgb, var(--bg-base) 40%, var(--bg-elevated));border-radius:12px;overflow:hidden}.district-map-tooltip__header{padding:.36rem .5rem .06rem}.district-map-tooltip__title{color:var(--text-primary);margin:0;font-size:11px;font-weight:700;line-height:1.15}.district-map-tooltip__rating{align-items:center;gap:.24rem;margin:.25rem 0 .3rem;display:flex}.district-map-tooltip__rating-badge{letter-spacing:.03em;background-color:var(--secondary-hover);color:var(--secondary-text);border:1px solid var(--secondary-border);border-radius:4px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.4;display:inline-block}.district-map-tooltip__rating-badge.party-r{background-color:color-mix(in srgb, var(--party-gop-solid) 88%, transparent);color:#fff;border-color:color-mix(in srgb, var(--party-gop-solid) 78%, black)}.district-map-tooltip__rating-badge.party-d{background-color:color-mix(in srgb, var(--party-dem-solid) 88%, transparent);color:#fff;border-color:color-mix(in srgb, var(--party-dem-solid) 78%, black)}.district-map-tooltip__rating-badge.party-i{background-color:color-mix(in srgb, var(--party-ind-solid) 88%, transparent);color:#fff;border-color:color-mix(in srgb, var(--party-ind-solid) 78%, black)}.district-map-tooltip__rating-badge.party-even{color:#1a1a1a;background-color:#f6d66f;border-color:#c0a757}.district-map-tooltip__rating-badge--flip{background-color:color-mix(in srgb, var(--text-muted) 16%, var(--bg-elevated));color:var(--text-secondary);border-color:color-mix(in srgb, var(--text-muted) 34%, transparent)}.district-map-tooltip__summary{margin:.18rem 0 0;font-size:10px;font-weight:600;line-height:1.15}.district-map-tooltip__table-wrap{border-radius:12px;overflow:hidden}.district-map-tooltip__status{color:var(--text-muted);margin:0;padding:.05rem .5rem .42rem;font-size:10px;line-height:1.25}.district-map-tooltip__margin{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;margin:0;padding:.25rem .5rem .5rem;font-size:10px;line-height:1.2;display:flex}.district-map-tooltip__margin-label{font-weight:400}.district-map-tooltip__margin-value{font-weight:700}.district-map-tooltip__disclaimer{border-top:1px solid color-mix(in srgb, var(--stroke-soft) 70%, transparent);max-width:16rem;color:var(--text-muted);margin:0;padding:.2rem .5rem .5rem;font-size:10px;line-height:1.25}.district-map-tooltip--mobile .district-map-tooltip__panel{background:color-mix(in srgb, var(--bg-base) 78%, var(--bg-elevated))}.district-map-tooltip--mobile .district-map-tooltip__disclaimer{max-width:none}.district-map-mobile-panel{margin-top:.5rem}.district-map-mobile-panel__actions{gap:.5rem;padding:0 .5rem .5rem;display:flex}.district-map-mobile-panel__action{flex:1 1 0}.app-shell--forecast .district-map{border:0;border-radius:0;padding:0}.district-map__canvas{position:relative}.district-map__headline-slot{top:var(--district-map-headline-top);left:var(--district-map-headline-left);z-index:1;width:clamp(15rem, var(--district-map-headline-width), 26rem);pointer-events:none;max-width:calc(100% - 1rem);position:absolute}.district-map__svg{width:100%;height:auto;display:block}.district-map__status{color:var(--text-muted);font-size:var(--vh-text-sm);text-align:center;padding:1.25rem 0}.district-map__district{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:3px;cursor:pointer;transition:stroke .14s,stroke-width .14s}.district-map--loading{overflow:hidden}.district-map--loading .district-map__svg{pointer-events:none}.district-map__district--loading{fill:color-mix(in srgb, var(--stroke-soft) 72%, var(--bg-base));stroke:color-mix(in srgb, var(--bg-elevated) 96%, var(--bg-base));stroke-linejoin:round;stroke-width:3px;animation:1.45s ease-in-out infinite skeleton-breathe;animation-delay:var(--skeleton-delay,0s)}.app-shell--forecast .district-map--cartogram .district-map__district{stroke-width:.5px}.app-shell--forecast .district-map__district{stroke-width:2.25px}.app-shell--forecast .district-map__district--loading{stroke-width:1.6px}.app-shell--forecast .district-map--map .district-map__district,.app-shell--forecast .district-map--map .district-map__district--loading{stroke-width:.35px}.district-map__district--active,.district-map__district:focus-visible{outline:none}.app-shell--forecast .district-map--cartogram .district-map__district--active,.app-shell--forecast .district-map--cartogram .district-map__district:focus-visible{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:.85px}.app-shell--forecast .district-map--map .district-map__district--active,.app-shell--forecast .district-map--map .district-map__district:focus-visible{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:.75px}.app-shell--forecast .district-map--cartogram .district-map__district--highlighted{stroke:var(--forecast-hover-outline);stroke-width:1px}.app-shell--forecast .district-map--map .district-map__district--highlighted{stroke:var(--forecast-hover-outline);stroke-width:1.1px}.district-map__district--even{fill:color-mix(in srgb, var(--text-secondary) 24%, var(--bg-elevated))}.district-map__district--dem-tossup{fill:var(--forecast-dem-tossup)}.district-map__district--dem-lean{fill:var(--forecast-dem-lean)}.district-map__district--dem-likely{fill:var(--forecast-dem-likely)}.district-map__district--dem-safe{fill:var(--forecast-dem-safe)}.district-map__district--gop-tossup{fill:var(--forecast-gop-tossup)}.district-map__district--gop-lean{fill:var(--forecast-gop-lean)}.district-map__district--gop-likely{fill:var(--forecast-gop-likely)}.district-map__district--gop-safe{fill:var(--forecast-gop-safe)}.district-map__district--na{fill:color-mix(in srgb, var(--text-muted) 28%, white)}.district-map__district--inactive{fill:color-mix(in srgb, var(--text-muted) 34%, var(--bg-elevated));opacity:.48;cursor:default}.district-map__district--excluded{fill:color-mix(in srgb, var(--text-muted) 100%, var(--bg-elevated));opacity:.65;cursor:default}.district-map__district--excluded-active{opacity:.3}.district-map__district--crosshatch{cursor:default;pointer-events:all}.district-map__district--flip-crosshatch{pointer-events:none}.district-map__district--flip-outline{fill:none;pointer-events:none;stroke:#000;stroke-linejoin:round;stroke-width:4.4px;transition:stroke .14s,stroke-width .14s}.district-map__district--flip-outline-highlighted{stroke:var(--forecast-hover-outline);stroke-width:5.2px}.district-map__district--flip-outline-active{stroke-width:5.8px}.app-shell--forecast .district-map--cartogram .district-map__district--flip-outline{stroke-width:.9px}.app-shell--forecast .district-map--cartogram .district-map__district--flip-outline-highlighted{stroke-width:1.4px}.app-shell--forecast .district-map--cartogram .district-map__district--flip-outline-active{stroke-width:1.7px}.app-shell--forecast .district-map--map .district-map__district--flip-outline{stroke-width:.75px}.app-shell--forecast .district-map--map .district-map__district--flip-outline-highlighted{stroke-width:1.9px}.app-shell--forecast .district-map--map .district-map__district--flip-outline-active{stroke-width:2.2px}.app-shell--forecast .district-map--statewide .district-map__district--flip-outline{stroke-width:1.5px}.app-shell--forecast .district-map--statewide .district-map__district--flip-outline-highlighted{stroke-width:2.5px}.app-shell--forecast .district-map--statewide .district-map__district--flip-outline-active{stroke-width:2.8px}.district-map__crosshatch-line{stroke:color-mix(in srgb, var(--text-muted) 50%, transparent)}.district-map__flip-crosshatch-line{stroke:#fff;stroke-opacity:.7}.district-map-tooltip__panel--excluded{max-width:280px;padding:.5rem .6rem}.district-map-tooltip__excluded-text{color:var(--text-secondary);margin:0;font-size:10px;line-height:1.4}.district-map__svg,.district-map__districts,.district-map__district,.district-map__district--crosshatch,.district-map__district--flip-crosshatch,.district-map__district--flip-outline,.district-map__flip-outlines,.district-map__labels,.district-map__state-label{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.district-map__labels,.district-map__state-label{pointer-events:none}.district-map__state-label{letter-spacing:.08em;fill:#fffffffa;paint-order:stroke;stroke:#0a0d113d;stroke-width:4px;font-size:17px;font-weight:700}.app-shell--forecast .district-map__state-label{stroke-width:3.5px;font-size:15px}.app-shell--forecast .district-map--cartogram .district-map__state-label{fill:#000;stroke:#ffffffb3;stroke-width:2.5px;font-size:10px;font-weight:600}.app-shell--forecast .district-map--map .district-map__state-label{stroke-width:2px;font-size:11px}.app-shell--forecast .district-map--statewide .district-map__district{stroke-width:.9px}.app-shell--forecast .district-map--statewide .district-map__district--active,.app-shell--forecast .district-map--statewide .district-map__district:focus-visible{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:1.55px}.app-shell--forecast .district-map--statewide .district-map__district--highlighted{stroke:var(--forecast-hover-outline);stroke-width:2.1px}.app-shell--forecast .district-map--race-detail{min-height:clamp(18rem,54vw,31.25rem);position:relative}.app-shell--forecast .district-map--race-detail .district-map__svg{max-height:min(70vh,34rem)}.app-shell--forecast .district-map--race-detail .district-map__district{stroke-width:1.1px}.app-shell--forecast .district-map--race-detail .district-map__district--active,.app-shell--forecast .district-map--race-detail .district-map__district:focus-visible{stroke:color-mix(in srgb, var(--bg-elevated) 94%, black);stroke-width:2px}.race-detail-map-tooltip .district-map-tooltip__panel{min-width:18rem}.race-detail-map-tooltip__table .vst-col-candidate{width:48%}.race-detail-map-tooltip__numeric{white-space:nowrap;width:26%;text-align:right!important}.race-detail-map-tooltip .district-map-tooltip__margin{gap:1rem}.race-detail-map__map-actions{flex-wrap:wrap;gap:.6rem;margin-top:.85rem;display:flex}.race-detail-map__map-btn{cursor:pointer;border:1px solid #0000;border-radius:.6rem;flex:15rem;align-items:center;gap:.7rem;padding:.7rem .9rem;font-family:inherit;line-height:1.3;text-decoration:none;transition:background .14s,border-color .14s,color .14s;display:flex}.race-detail-map__map-btn:focus-visible{outline:2px solid var(--primary-focus);outline-offset:2px}.race-detail-map-shell .race-detail-map__map-actions .race-detail-map__map-btn,.race-detail-map-shell .race-detail-map__map-actions .race-detail-map__map-btn:hover,.race-detail-map-shell .race-detail-map__map-actions .race-detail-map__map-btn:focus,.race-detail-map-shell .race-detail-map__map-actions .race-detail-map__map-btn:active{text-decoration:none}.race-detail-map__map-btn-label{text-align:left;flex-direction:column;gap:.1rem;min-width:0;display:flex}.race-detail-map__map-btn-title{font-size:var(--vh-text-sm,.875rem);font-weight:650}.race-detail-map__map-btn-sub{font-size:var(--vh-text-xs,.75rem);opacity:.8;font-weight:500}.race-detail-map__map-btn-lead,.race-detail-map__map-btn-icon{flex-shrink:0}.race-detail-map__map-btn-icon{margin-left:auto}.race-detail-map__map-btn--primary{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-text)}.race-detail-map__map-btn--primary:hover,.race-detail-map__map-btn--primary:focus-visible{background:var(--primary-bg-hover);border-color:var(--primary-bg-hover);color:var(--primary-text)}.race-detail-map__map-btn--primary:active{background:var(--primary-bg-active);border-color:var(--primary-bg-active);color:var(--primary-text)}.race-detail-map__map-btn--primary .race-detail-map__map-btn-lead{color:color-mix(in srgb, var(--primary-text) 88%, var(--primary-bg))}.race-detail-map__map-btn--secondary{background:var(--bg-elevated);border-color:var(--accent-border-soft);color:var(--accent-text-secondary)}.race-detail-map__map-btn--secondary:hover{background:var(--secondary-hover);border-color:var(--accent-text-soft);color:var(--accent-text-primary)}@media (width<=480px){.race-detail-map__map-actions{flex-direction:column}.race-detail-map__map-btn{flex-basis:auto}}.empty-chart{color:var(--text-muted);font-size:var(--vh-text-sm);grid-column:1/-1;place-self:center}code{font-family:SFMono-Regular,Menlo,Monaco,monospace;font-size:.92em}@media (prefers-reduced-motion:reduce){.district-map__district--loading{animation:none}}@media (width<=768px){.district-map{padding:.85rem}.district-map-tooltip:not(.district-map-tooltip--mobile){width:auto;bottom:.55rem;right:.55rem;top:auto!important;left:.55rem!important;transform:none!important}.app-shell--forecast .district-map--cartogram,.app-shell--forecast .district-map--map,.app-shell--forecast .district-map--race-detail{padding:0}.district-map__headline-slot{width:clamp(12.5rem,56%,19rem)}.district-map__district{stroke-width:2.5px}.district-map__district--active,.district-map__district:focus-visible{outline:none}.app-shell--forecast .district-map--cartogram .district-map__district--active,.app-shell--forecast .district-map--cartogram .district-map__district:focus-visible{stroke-width:2.8px}.app-shell--forecast .district-map--map .district-map__district{stroke-width:.25px}.app-shell--forecast .district-map--map .district-map__district--active,.app-shell--forecast .district-map--map .district-map__district:focus-visible{stroke-width:.5px}.app-shell--forecast .district-map--statewide .district-map__district{stroke-width:.75px}.app-shell--forecast .district-map--statewide .district-map__district--active,.app-shell--forecast .district-map--statewide .district-map__district:focus-visible{stroke-width:1.2px}.app-shell--forecast .district-map--race-detail{padding:0}.app-shell--forecast .district-map--cartogram .district-map__svg,.app-shell--forecast .district-map--map .district-map__svg,.app-shell--forecast .district-map--race-detail .district-map__svg{width:calc(100% + .5rem);max-width:none;margin-inline:-.25rem}.district-map-mobile-panel{margin-top:.45rem}.district-map-tooltip--mobile .district-map-tooltip__panel{border-radius:10px}.district-map-tooltip--mobile .district-map-tooltip__header{padding-top:.5rem}.district-map-tooltip--mobile .district-map-tooltip__margin,.district-map-tooltip--mobile .district-map-tooltip__status,.district-map-tooltip--mobile .district-map-tooltip__disclaimer,.district-map-tooltip--mobile .district-map-mobile-panel__actions{padding-inline:.65rem}.app-shell--forecast .district-map--race-detail .district-map__district{stroke-width:.85px}.app-shell--forecast .district-map--race-detail .district-map__district--active,.app-shell--forecast .district-map--race-detail .district-map__district:focus-visible{stroke-width:1.45px}.district-map__district--flip-outline{stroke-width:3.7px}.district-map__district--flip-outline-highlighted{stroke-width:4.3px}.district-map__district--flip-outline-active{stroke-width:4.8px}.app-shell--forecast .district-map--map .district-map__district--flip-outline{stroke-width:1.05px}.app-shell--forecast .district-map--map .district-map__district--flip-outline-highlighted{stroke-width:1.35px}.app-shell--forecast .district-map--map .district-map__district--flip-outline-active{stroke-width:1.55px}.app-shell--forecast .district-map--statewide .district-map__district--flip-outline{stroke-width:2.2px}.app-shell--forecast .district-map--statewide .district-map__district--flip-outline-highlighted{stroke-width:2.6px}.app-shell--forecast .district-map--statewide .district-map__district--flip-outline-active{stroke-width:2.9px}.district-map__state-label{stroke-width:3px!important;font-size:14px!important}.app-shell--forecast .district-map--map .district-map__state-label{stroke-width:1.5px;font-size:9px}}@media (prefers-reduced-motion:reduce){#root,html.page-transition-is-leaving #root{transition:none!important;animation:none!important;transform:none!important}::view-transition-group(root){transition:none!important;animation:none!important;transform:none!important}::view-transition-old(root){transition:none!important;animation:none!important;transform:none!important}::view-transition-new(root){transition:none!important;animation:none!important;transform:none!important}}
