:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--bg:#090b13;--bg-soft:#0e111c;--surface:#131725cc;--surface-solid:#151927;--surface-raised:#1b2031;--text:#f5f4fa;--muted:#a5a9ba;--faint:#74798d;--line:#ffffff17;--line-strong:#ffffff29;--mint:#72e6ca;--violet:#9b8cff;--amber:#efc677;--rose:#f198b0;--blue:#7bb9f5;--danger:#ff9c9c;--shadow:0 28px 80px #00000052;--shadow-soft:0 14px 45px #0000002e;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f3ed;--bg-soft:#eeece5;--surface:#ffffffc2;--surface-solid:#fff;--surface-raised:#f8f7f3;--text:#171821;--muted:#5d6270;--faint:#7c808b;--line:#1718211a;--line-strong:#1718212e;--mint:#167d6b;--violet:#6352d4;--amber:#9b6819;--rose:#a94161;--blue:#246fa9;--danger:#b73838;--shadow:0 26px 70px #3c372d1f;--shadow-soft:0 13px 35px #3c372d14}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{background:radial-gradient(circle at 78% 5%, color-mix(in srgb, var(--violet), transparent 89%), transparent 30rem), radial-gradient(circle at 12% 34%, color-mix(in srgb, var(--mint), transparent 94%), transparent 34rem), var(--bg);min-width:320px;color:var(--text);margin:0;overflow-x:hidden}button,select,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid color-mix(in srgb, var(--mint), transparent 34%);outline-offset:3px}a{color:inherit}svg{stroke-width:1.8px;width:1em;height:1em}.app-shell{min-height:100vh;position:relative}.skip-link{z-index:1000;background:var(--text);color:var(--bg);border-radius:10px;padding:12px 16px;transition:transform .2s;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.ambient-field{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-field:before{content:"";background-image:radial-gradient(circle, color-mix(in srgb, var(--text), transparent 78%) .7px, transparent .8px);opacity:.14;background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.ambient-field span{background:var(--mint);width:4px;height:4px;box-shadow:0 0 18px var(--mint);opacity:.5;border-radius:50%;position:absolute}.ambient-field span:first-child{top:17%;left:7%}.ambient-field span:nth-child(2){background:var(--violet);box-shadow:0 0 18px var(--violet);top:27%;right:9%}.ambient-field span:nth-child(3){background:var(--amber);box-shadow:0 0 18px var(--amber);top:62%;left:17%}.site-header{z-index:100;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg), transparent 15%);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);grid-template-columns:1fr auto 1fr;align-items:center;max-width:1240px;height:74px;margin:0 auto;padding:0 26px;display:grid;position:sticky;top:0}.brand{align-items:center;gap:11px;width:fit-content;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid color-mix(in srgb, var(--mint), transparent 58%);background:linear-gradient(145deg, color-mix(in srgb, var(--mint), transparent 83%), color-mix(in srgb, var(--violet), transparent 91%));width:40px;height:40px;color:var(--mint);border-radius:13px;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff29}.brand-mark svg{width:20px;height:20px}.brand>span:last-child{flex-direction:column;display:flex}.brand strong{letter-spacing:-.04em;font-size:1rem}.brand small{color:var(--faint);letter-spacing:.06em;margin-top:2px;font-size:.61rem}.site-header nav{align-items:center;gap:6px;display:flex}.site-header nav a{min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:5px;padding:0 13px;font-size:.74rem;font-weight:600;text-decoration:none;display:inline-flex}.site-header nav a:hover{background:var(--surface);color:var(--text)}.site-header nav svg{width:13px;height:13px}.theme-button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--muted);cursor:pointer;border-radius:12px;justify-self:end;place-items:center;display:grid}.theme-button:hover{border-color:var(--line-strong);color:var(--text)}main,footer{max-width:1240px;margin:0 auto;padding-left:26px;padding-right:26px}.hero{grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);align-items:center;gap:72px;min-height:690px;padding-top:82px;padding-bottom:90px;display:grid}.eyebrow,.section-kicker{color:var(--mint);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 20px;font-size:.67rem;font-weight:700;display:flex}.eyebrow span{background:var(--mint);width:7px;height:7px;box-shadow:0 0 16px var(--mint);border-radius:50%}.hero h1{letter-spacing:-.075em;max-width:750px;margin:0;font-size:clamp(3.4rem,7vw,6.8rem);line-height:.9}.hero h1 em{color:var(--violet);font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-weight:500}.hero-lede{max-width:650px;color:var(--muted);margin:34px 0 0;font-size:clamp(1rem,1.8vw,1.18rem);line-height:1.7}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:34px;display:flex}.primary-button,.quiet-button{border:1px solid var(--line);cursor:pointer;border-radius:13px;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:0 18px;font-size:.78rem;font-weight:700;text-decoration:none;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.primary-button{border-color:color-mix(in srgb, var(--mint), transparent 50%);background:var(--text);color:var(--bg)}.primary-button:hover,.quiet-button:hover{transform:translateY(-2px)}.quiet-button{background:var(--surface);color:var(--text)}.primary-button svg,.quiet-button svg{width:16px;height:16px}.privacy-line{color:var(--faint);align-items:center;gap:8px;margin:21px 0 0;font-size:.7rem;display:flex}.privacy-line svg{color:var(--mint)}.election-orbit{border:1px solid var(--line);background:radial-gradient(circle at center, color-mix(in srgb, var(--violet), transparent 86%), transparent 45%), linear-gradient(150deg, color-mix(in srgb, var(--surface-raised), transparent 2%), var(--surface));min-height:460px;box-shadow:var(--shadow), inset 0 1px #ffffff17;text-align:center;border-radius:50% 50% 38% 38%;flex-direction:column;justify-content:center;align-items:center;padding:46px 36px;display:flex;position:relative;overflow:hidden}.orbit-lines,.orbit-lines i{border:1px solid color-mix(in srgb, var(--violet), transparent 82%);border-radius:50%;position:absolute;inset:22px;transform:rotate(-8deg)}.orbit-lines i:first-child{inset:36px -12px;transform:rotate(46deg)}.orbit-lines i:nth-child(2){inset:74px -36px;transform:rotate(-42deg)}.orbit-lines i:nth-child(3){inset:6px 68px;transform:rotate(86deg)}.orbit-icon{border:1px solid color-mix(in srgb, var(--mint), transparent 58%);background:var(--surface-solid);width:58px;height:58px;color:var(--mint);box-shadow:0 0 42px color-mix(in srgb, var(--mint), transparent 82%);border-radius:18px;place-items:center;display:grid;position:relative}.orbit-icon svg{width:26px;height:26px}.election-orbit>p{color:var(--faint);letter-spacing:.1em;text-transform:uppercase;margin:24px 0 8px;font-size:.65rem;font-weight:700;position:relative}.election-orbit h2{letter-spacing:-.04em;max-width:270px;margin:0;font-size:1.55rem;line-height:1.16;position:relative}.election-orbit>strong{color:var(--violet);margin-top:9px;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:1.12rem;font-style:italic;font-weight:500;position:relative}.election-orbit dl{grid-template-columns:repeat(3,1fr);width:100%;margin:34px 0 24px;display:grid;position:relative}.election-orbit dl div{border-right:1px solid var(--line);padding:0 8px}.election-orbit dl div:last-child{border:0}.election-orbit dt{font-size:1.1rem;font-weight:700}.election-orbit dd{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;margin:4px 0 0;font-size:.57rem;line-height:1.35}.election-orbit>a{color:var(--muted);text-underline-offset:4px;align-items:center;gap:6px;font-size:.68rem;display:inline-flex;position:relative}.election-strip{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:18px;grid-template-columns:repeat(3,minmax(150px,.65fr)) minmax(280px,1.5fr);margin-bottom:120px;display:grid;overflow:hidden}.election-strip>div{border-right:1px solid var(--line);align-items:center;gap:12px;min-height:84px;padding:18px;display:flex}.election-strip svg{color:var(--violet);flex:none}.election-strip span{flex-direction:column;gap:4px;display:flex}.election-strip small{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-size:.6rem}.election-strip strong{font-size:.75rem}.election-strip .strip-notice{background:color-mix(in srgb, var(--mint), transparent 94%);border:0}.strip-notice p{color:var(--muted);margin:0;font-size:.7rem;line-height:1.55}.strip-notice svg{color:var(--mint)}.explorer-section,.compare-section,.method-section{padding-bottom:130px;scroll-margin-top:100px}.section-heading{grid-template-columns:1fr minmax(300px,.62fr);align-items:end;gap:60px;margin-bottom:34px;display:grid}.section-heading h2,.notes-section h2{letter-spacing:-.065em;margin:0;font-size:clamp(2.1rem,4vw,4rem);line-height:1}.section-heading>p,.notes-section>div>p:last-child{color:var(--muted);margin:0;font-size:.82rem;line-height:1.7}.section-kicker{color:var(--violet);margin-bottom:13px}.explorer-grid{grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);gap:18px;display:grid}.map-panel,.ballot-panel,.evidence-matrix{border:1px solid var(--line);background:linear-gradient(145deg, color-mix(in srgb, var(--surface-raised), transparent 9%), var(--surface));box-shadow:var(--shadow-soft), inset 0 1px #ffffff0f;border-radius:24px;overflow:hidden}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:14px 18px;display:flex}.panel-heading>div:first-child{align-items:center;gap:12px;display:flex}.panel-heading>div:first-child>svg{width:20px;height:20px;color:var(--mint)}.panel-heading span{flex-direction:column;gap:3px;display:flex}.panel-heading small{color:var(--faint);text-transform:uppercase;letter-spacing:.09em;font-size:.59rem}.panel-heading strong{font-size:.79rem}.coverage-badge{border:1px solid color-mix(in srgb, var(--mint), transparent 69%);background:color-mix(in srgb, var(--mint), transparent 92%);min-height:30px;color:var(--mint);text-transform:uppercase;letter-spacing:.07em;border-radius:999px;justify-content:center;padding:0 10px;font-size:.59rem;font-weight:700;line-height:30px;display:inline-flex!important}.map-stage{background:linear-gradient(color-mix(in srgb, var(--line), transparent 20%) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line), transparent 20%) 1px, transparent 1px);background-size:34px 34px;justify-content:center;align-items:center;min-height:420px;padding:8px;display:flex;position:relative}.massachusetts-map{width:100%;height:auto;max-height:410px;display:block;overflow:visible}.county-shape{fill:color-mix(in srgb, var(--surface-raised), var(--violet) 8%);stroke:color-mix(in srgb, var(--text), transparent 60%);stroke-width:1.1px;cursor:pointer;transition:fill .18s,filter .18s}.county-shape:hover,.county-shape:focus{fill:color-mix(in srgb, var(--surface-raised), var(--mint) 23%)}.county-shape.is-selected{fill:color-mix(in srgb, var(--mint), transparent 30%);stroke:var(--mint);stroke-width:1.8px}.county-label circle{fill:var(--text);stroke:var(--mint);stroke-width:1.2px}.map-legend{color:var(--faint);gap:14px;font-size:.58rem;display:flex;position:absolute;bottom:13px;right:18px}.map-legend span{align-items:center;gap:6px;display:flex}.map-legend i{border:1px solid var(--line-strong);background:var(--surface-raised);border-radius:3px;width:9px;height:9px;display:inline-block}.map-legend .legend-selected{border-color:var(--mint);background:color-mix(in srgb, var(--mint), transparent 35%)}.county-select{padding:0 18px 16px;display:none}.county-select span{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;font-size:.62rem;font-weight:700;display:block}.county-select select{border:1px solid var(--line);background:var(--surface-solid);width:100%;min-height:46px;color:var(--text);border-radius:11px;padding:0 12px}.map-source{border-top:1px solid var(--line);color:var(--faint);align-items:center;gap:7px;margin:0;padding:13px 18px 16px;font-size:.61rem;display:flex}.map-source svg{color:var(--mint);flex:none}.panel-heading.stacked{flex-direction:column;align-items:stretch;min-height:132px}.ballot-switch{border:1px solid var(--line);background:color-mix(in srgb, var(--bg), transparent 34%);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;display:grid}.ballot-switch button{min-height:39px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 7px;font-size:.62rem;font-weight:700}.ballot-switch button[aria-pressed=true]{background:var(--surface-raised);color:var(--text);box-shadow:0 2px 10px #00000026}.race-list{padding:7px 12px}.race-list button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:60px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border-radius:10px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 10px 8px 13px;display:grid}.race-list button:last-child{border-bottom-color:#0000}.race-list button:hover{background:var(--surface)}.race-list button.is-active{background:color-mix(in srgb, var(--violet), transparent 91%)}.race-list button>span:first-child{flex-direction:column;gap:3px;display:flex}.race-list button small{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-size:.54rem}.race-list button strong{font-size:.74rem}.race-list button svg{color:var(--faint)}.race-count{border:1px solid var(--line);min-width:28px;height:28px;color:var(--muted);border-radius:9px;place-items:center;font-size:.64rem;display:grid}.race-list button.is-active .race-count{border-color:color-mix(in srgb, var(--violet), transparent 55%);background:color-mix(in srgb, var(--violet), transparent 87%);color:var(--text)}.ballot-footnote{border:1px solid color-mix(in srgb, var(--mint), transparent 75%);background:color-mix(in srgb, var(--mint), transparent 94%);border-radius:13px;gap:10px;margin:8px 12px 12px;padding:14px;display:flex}.ballot-footnote svg{color:var(--mint);flex:none}.ballot-footnote p{color:var(--muted);margin:0;font-size:.65rem;line-height:1.55}.ballot-footnote strong{color:var(--text)}.comparison-heading{align-items:center}.comparison-meta{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.comparison-meta span{border:1px solid var(--line);background:var(--surface);min-height:32px;color:var(--muted);border-radius:999px;align-items:center;padding:0 10px;font-size:.62rem;display:inline-flex}.candidate-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.candidate-card{border:1px solid var(--line);background:linear-gradient(145deg, color-mix(in srgb, var(--surface-raised), transparent 8%), var(--surface));min-width:0;min-height:440px;box-shadow:var(--shadow-soft), inset 0 1px #ffffff0d;border-radius:22px;flex-direction:column;padding:20px;display:flex;position:relative;overflow:hidden}.candidate-card:before{content:"";background:linear-gradient(90deg, transparent, var(--party-color), transparent);height:1px;position:absolute;top:0;left:18%;right:18%}.party-democratic{--party-color:var(--blue)}.party-republican{--party-color:var(--rose)}.candidate-card-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.party-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:7px;font-size:.59rem;font-weight:700;flex-direction:row!important;display:inline-flex!important}.party-label i{background:var(--party-color);width:7px;height:7px;box-shadow:0 0 10px color-mix(in srgb, var(--party-color), transparent 30%);border-radius:50%}.save-button,.dialog-close{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--faint);cursor:pointer;border-radius:11px;place-items:center;display:grid}.save-button svg,.dialog-close svg{width:17px;height:17px}.save-button:hover{color:var(--text)}.save-button.is-saved{border-color:color-mix(in srgb, var(--mint), transparent 55%);background:color-mix(in srgb, var(--mint), transparent 90%);color:var(--mint)}.save-button.is-saved svg{fill:currentColor}.candidate-identity{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:15px;margin-top:24px;display:grid}.candidate-avatar,.saved-avatar{border:1px solid color-mix(in srgb, var(--party-color,var(--violet)), transparent 57%);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--party-color,var(--violet)), transparent 70%), transparent 58%), var(--surface-raised);width:64px;height:64px;color:var(--text);border-radius:20px;place-items:center;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:1.25rem;font-style:italic;display:grid;box-shadow:inset 0 1px #ffffff1f}.candidate-avatar.large{border-radius:23px;width:76px;height:76px;font-size:1.5rem}.candidate-identity p{color:var(--party-color);text-transform:uppercase;letter-spacing:.08em;margin:0 0 5px;font-size:.59rem;font-weight:700}.candidate-identity h3{letter-spacing:-.035em;margin:0;font-size:1.15rem;line-height:1.15}.candidate-identity span{color:var(--faint);margin-top:6px;font-size:.62rem;line-height:1.45;display:block}.candidate-summary{color:var(--muted);flex:1;margin:23px 0 19px;font-size:.72rem;line-height:1.65}.evidence-meter>span{color:var(--faint);justify-content:space-between;font-size:.59rem;display:flex}.evidence-meter strong{color:var(--text)}.evidence-meter>i{background:var(--line);border-radius:999px;height:4px;margin-top:9px;display:block;overflow:hidden}.evidence-meter>i b{border-radius:inherit;background:linear-gradient(90deg, var(--mint), var(--violet));height:100%;display:block}.candidate-action{border:1px solid var(--line);background:var(--surface-solid);min-height:47px;color:var(--text);cursor:pointer;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;padding:0 13px;font-size:.67rem;font-weight:700;display:flex}.candidate-action:hover{border-color:color-mix(in srgb, var(--party-color), transparent 45%)}.empty-race{border:1px dashed var(--line-strong);background:var(--surface);text-align:center;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;min-height:320px;padding:40px;display:flex}.empty-race>svg{width:30px;height:30px;color:var(--violet)}.empty-race h3{margin:18px 0 6px;font-size:1.15rem}.empty-race p{max-width:470px;color:var(--muted);margin:0 0 20px;font-size:.72rem;line-height:1.6}.evidence-matrix{margin-top:18px}.matrix-heading{border-bottom:1px solid var(--line);grid-template-columns:1fr minmax(260px,.6fr);align-items:end;gap:36px;padding:24px;display:grid}.matrix-heading h3{letter-spacing:-.035em;margin:0;font-size:1.45rem}.matrix-heading>p{color:var(--muted);margin:0;font-size:.7rem;line-height:1.6}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:660px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:16px 20px}thead th{color:var(--faint);text-transform:uppercase;letter-spacing:.07em;font-size:.6rem}tbody th{color:var(--muted);font-size:.68rem;font-weight:600}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}.status{border:1px solid var(--line);min-height:27px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:0 8px;font-size:.57rem;font-weight:700;display:inline-flex}.status-verified,.status-available{border-color:color-mix(in srgb, var(--mint), transparent 65%);background:color-mix(in srgb, var(--mint), transparent 92%);color:var(--mint)}.status-queued{border-color:color-mix(in srgb, var(--violet), transparent 65%);background:color-mix(in srgb, var(--violet), transparent 92%);color:var(--violet)}.status-researching{border-color:color-mix(in srgb, var(--amber), transparent 65%);background:color-mix(in srgb, var(--amber), transparent 93%);color:var(--amber)}.status-not-applicable{color:var(--faint)}.notes-section{border:1px solid color-mix(in srgb, var(--violet), transparent 72%);background:radial-gradient(circle at 10% 20%, color-mix(in srgb, var(--violet), transparent 88%), transparent 48%), linear-gradient(145deg, var(--surface), color-mix(in srgb, var(--surface-raised), transparent 7%));box-shadow:var(--shadow);border-radius:28px;grid-template-columns:minmax(0,.8fr) minmax(440px,1.2fr);align-items:center;gap:80px;margin-bottom:130px;padding:46px;display:grid}.notes-section>div>p:last-child{margin-top:20px}.saved-list{gap:8px;display:grid}.saved-list>button{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid), transparent 16%);width:100%;min-height:68px;color:var(--text);text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.saved-list>button:hover{border-color:var(--violet)}.saved-avatar{border-radius:13px;width:45px;height:45px;font-size:.86rem}.saved-list>button>span:nth-child(2){flex-direction:column;gap:4px;display:flex}.saved-list strong{font-size:.72rem}.saved-list small{color:var(--faint);font-size:.58rem}.saved-list>button>svg{color:var(--faint)}.notes-empty{border:1px dashed var(--line-strong);text-align:center;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;min-height:150px;padding:26px;display:flex}.notes-empty svg{width:26px;height:26px;color:var(--violet)}.notes-empty p{max-width:340px;color:var(--muted);margin:13px 0 0;font-size:.7rem;line-height:1.6}.method-flow{grid-template-columns:repeat(7,auto);align-items:center;gap:13px;display:grid}.method-flow>div{border:1px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;align-items:flex-start;min-height:230px;padding:22px;display:flex;position:relative}.method-flow>div>span{color:var(--faint);font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:.8rem;font-style:italic;position:absolute;top:17px;right:17px}.method-flow>div>svg{width:25px;height:25px;color:var(--mint);margin:8px 0 32px}.method-flow strong{font-size:.8rem}.method-flow p{color:var(--muted);margin:10px 0 0;font-size:.65rem;line-height:1.55}.method-flow>i{color:var(--faint);place-items:center;display:grid}.method-flow>i svg{width:16px;height:16px}.disclaimer{border:1px solid color-mix(in srgb, var(--amber), transparent 74%);background:color-mix(in srgb, var(--amber), transparent 95%);border-radius:15px;gap:13px;margin-top:18px;padding:18px 20px;display:flex}.disclaimer svg{color:var(--amber);flex:none}.disclaimer p{color:var(--muted);margin:0;font-size:.7rem;line-height:1.6}.disclaimer strong{color:var(--text)}footer{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:28px;min-height:220px;padding-top:44px;padding-bottom:70px;display:grid}.footer-brand{align-items:center;gap:13px;display:flex}.footer-brand>div{flex-direction:column;gap:5px;display:flex}.footer-brand strong{font-size:.9rem}.footer-brand p,footer>p{color:var(--faint);margin:0;font-size:.62rem}footer nav{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}footer nav a{min-height:40px;color:var(--muted);border-radius:9px;align-items:center;gap:6px;padding:0 10px;font-size:.65rem;text-decoration:none;display:inline-flex}footer nav a:hover{background:var(--surface);color:var(--text)}footer>p{text-align:center;grid-column:1/-1}.mobile-dock{display:none}.dialog-backdrop{z-index:500;background:color-mix(in srgb, var(--bg), transparent 18%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.candidate-dialog{border:1px solid var(--line-strong);background:var(--bg-soft);border-radius:26px;width:min(760px,100%);max-height:min(880px,100vh - 40px);overflow-y:auto;box-shadow:0 35px 100px #00000080}.dialog-header{z-index:2;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg-soft), transparent 4%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:76px 1fr 44px;align-items:center;gap:17px;padding:22px;display:grid;position:sticky;top:0}.dialog-header h2{letter-spacing:-.045em;margin:6px 0 3px;font-size:1.55rem}.dialog-header p{color:var(--muted);margin:0;font-size:.67rem}.dialog-close{align-self:start}.dialog-body{gap:30px;padding:30px;display:grid}.dialog-body section>h3{letter-spacing:-.03em;margin:0;font-size:1.15rem}.dialog-body section>p:not(.section-kicker){color:var(--muted);margin:12px 0 0;font-size:.75rem;line-height:1.7}.prototype-note{border:1px solid color-mix(in srgb, var(--violet), transparent 72%);background:color-mix(in srgb, var(--violet), transparent 94%);border-radius:13px;gap:11px;margin-top:18px;padding:15px;display:flex}.prototype-note svg{color:var(--violet);flex:none}.prototype-note p{color:var(--muted);margin:0;font-size:.68rem;line-height:1.55}.prototype-note strong{color:var(--text)}.evidence-list{margin:15px 0 0}.evidence-list div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:52px;display:flex}.evidence-list div:last-child{border:0}.evidence-list dt{color:var(--muted);font-size:.7rem}.evidence-list dd{margin:0}.source-box{border:1px solid color-mix(in srgb, var(--mint), transparent 72%);background:color-mix(in srgb, var(--mint), transparent 95%);border-radius:15px;gap:14px;padding:18px;display:flex}.source-box>svg{width:22px;height:22px;color:var(--mint);flex:none}.source-box strong{font-size:.74rem}.source-box p{color:var(--muted);margin:7px 0 12px;font-size:.67rem;line-height:1.55}.source-box a{color:var(--mint);text-underline-offset:4px;align-items:center;gap:5px;font-size:.65rem;display:inline-flex}.dialog-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:17px 22px;display:flex}.dialog-footer p{max-width:330px;color:var(--faint);margin:0;font-size:.6rem;line-height:1.5}.dialog-footer .primary-button{border:0}.dialog-footer .primary-button.is-saved{background:var(--mint);color:var(--bg)}@media (width<=1060px){.hero{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:38px}.explorer-grid{grid-template-columns:1fr}.map-stage{min-height:490px}.ballot-panel{grid-template-columns:330px 1fr;display:grid}.panel-heading.stacked{border-right:1px solid var(--line);border-bottom:0}.ballot-footnote{grid-column:1/-1}.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notes-section{gap:42px}.method-flow{grid-template-columns:repeat(4,minmax(0,1fr))}.method-flow>i{display:none}}@media (width<=820px){.site-header{grid-template-columns:1fr auto}.site-header>nav{display:none}.hero{grid-template-columns:1fr;min-height:0;padding-top:74px}.hero-copy{text-align:center}.eyebrow,.hero-actions,.privacy-line{justify-content:center}.hero-lede{margin-left:auto;margin-right:auto}.election-orbit{justify-self:center;width:min(500px,100%);min-height:430px}.election-strip{grid-template-columns:repeat(3,1fr)}.election-strip .strip-notice{border-top:1px solid var(--line);grid-column:1/-1}.section-heading{grid-template-columns:1fr;gap:20px}.comparison-meta{justify-content:flex-start}.notes-section{grid-template-columns:1fr}.method-flow{grid-template-columns:repeat(2,minmax(0,1fr))}footer{text-align:center;grid-template-columns:1fr}.footer-brand,footer nav{justify-content:center}footer>p{grid-column:auto}}@media (width<=620px){main,footer{padding-left:16px;padding-right:16px}.site-header{height:66px;padding:0 16px}.brand-mark{border-radius:12px;width:37px;height:37px}.hero{gap:48px;padding-top:58px;padding-bottom:64px}.hero h1{font-size:clamp(3rem,15vw,4.8rem)}.hero-lede{font-size:.92rem}.hero-actions{flex-direction:column}.hero-actions .primary-button,.hero-actions .quiet-button{width:100%}.privacy-line{text-align:left;align-items:flex-start}.election-orbit{border-radius:38% 38% 30% 30%;min-height:390px;padding:36px 23px}.election-orbit h2{font-size:1.35rem}.election-orbit dl{margin-top:28px}.election-strip{grid-template-columns:1fr;margin-bottom:88px}.election-strip>div{border-right:0;border-bottom:1px solid var(--line);min-height:67px}.election-strip .strip-notice{border-top:0;border-bottom:0;grid-column:auto}.explorer-section,.compare-section,.method-section{padding-bottom:94px}.section-heading h2,.notes-section h2{font-size:2.45rem}.map-panel,.ballot-panel,.evidence-matrix{border-radius:19px}.map-stage{min-height:340px}.map-legend{display:none}.county-select,.ballot-panel{display:block}.panel-heading.stacked{border-right:0;border-bottom:1px solid var(--line)}.ballot-switch button{font-size:.58rem}.candidate-grid{grid-template-columns:1fr}.candidate-card{min-height:410px}.matrix-heading{grid-template-columns:1fr;gap:12px}.notes-section{border-radius:22px;gap:30px;margin-bottom:94px;margin-left:-4px;margin-right:-4px;padding:28px 20px}.method-flow{grid-template-columns:1fr}.method-flow>div{min-height:190px}footer{padding-bottom:116px}.mobile-dock{z-index:120;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--bg-soft), transparent 8%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:18px;grid-template-columns:repeat(4,1fr);align-items:center;min-height:66px;padding:5px;display:grid;position:fixed;bottom:10px;left:10px;right:10px;box-shadow:0 16px 45px #00000059}.mobile-dock a{min-height:54px;color:var(--muted);border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:4px;text-decoration:none;display:flex}.mobile-dock a:hover{background:var(--surface);color:var(--text)}.mobile-dock svg{width:18px;height:18px}.mobile-dock small{font-size:.55rem}.dialog-backdrop{align-items:flex-end;padding:0}.candidate-dialog{border-bottom:0;border-left:0;border-right:0;border-radius:25px 25px 0 0;max-height:92vh}.dialog-header{grid-template-columns:58px 1fr 42px;gap:12px;padding:17px}.candidate-avatar.large{border-radius:17px;width:58px;height:58px;font-size:1.1rem}.dialog-header h2{font-size:1.2rem}.dialog-body{padding:24px 18px}.dialog-footer{background:var(--bg-soft);flex-direction:column;align-items:stretch;gap:10px;position:sticky;bottom:0}.dialog-footer p{text-align:center;max-width:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
