@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:ital,wght@0,400;0,700&display=swap');
:root{--ink:#182e41;--navy:#172e43;--slate:#516a76;--paper:#faf9f5;--gold:#c9ab76;--line:#dbe0dd;--serif:Georgia,'Libre Baskerville',serif;--sans:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 var(--sans)}a{color:inherit;text-underline-offset:3px}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #c19f61;outline-offset:3px}.shell{max-width:1210px;margin:0 auto;padding-left:40px;padding-right:40px}.skip{position:absolute;top:-200px;left:15px;padding:10px;background:white;z-index:99}.skip:focus{top:9px}
.topbar{height:69px;border-bottom:1px solid #e3e6e2;background:var(--paper)}.topbar-inner{max-width:1210px;height:100%;margin:auto;padding:0 40px;display:flex;align-items:center;gap:30px}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:.09em}.brand-period,.foot-brand span{color:var(--gold)}.brand-lines{width:25px;display:flex;flex-direction:column;gap:5px}.brand-lines i{display:block;height:2px;background:#203b4d}.brand-lines i:last-child{background:var(--gold)}.edition{font-size:10px;letter-spacing:.14em;color:#839197;font-weight:700}.headnav{margin-left:auto;display:flex;gap:22px}.headnav a{font-size:12px;text-decoration:none;font-weight:700;color:#496272}.headnav a:hover{text-decoration:underline}
.hero{background:#172d42;color:#fcfaf5}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:35px;padding-top:54px;padding-bottom:62px;min-height:344px}.eyebrow{font-size:11px;letter-spacing:.15em;color:#a7844d;font-weight:700;margin:0 0 14px;text-transform:uppercase}.eyebrow.light{color:#dec194}.hero h1{font:400 clamp(43px,5.5vw,69px)/1.14 var(--serif);letter-spacing:-.055em;margin:0 0 18px}.hero-deck{color:#cfdae0;max-width:660px;line-height:1.72;margin:0;font-size:16px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 0}.action{min-height:44px;text-decoration:none;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:13px;padding:11px 18px;border:1px solid #6a8290}.action.cream{background:#f1eadf;color:var(--navy);border-color:#f1eadf}.action.outline{color:#f5f4ee}.hero-side{display:flex;align-items:center;justify-content:flex-end}.hero-side img{width:100%;max-height:225px;object-fit:contain;opacity:.8}
.intro{display:grid;grid-template-columns:1.45fr 1fr;gap:60px;align-items:center;padding-top:45px;padding-bottom:42px;border-bottom:1px solid var(--line)}.intro h2,.section-head h2,.explainer h2{font:400 clamp(29px,3vw,40px)/1.2 var(--serif);letter-spacing:-.04em;margin:0 0 12px}.intro p,.section-head p{color:#536d78;margin:0;max-width:710px}.intro-note{font-size:13px;margin-top:15px!important;line-height:1.8}.intro-note a,.sources a,.finder-bottom a{color:#315d73;font-weight:700}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-row div{border-top:2px solid #d5bd90;padding-top:13px}.stat-row b{display:block;font:400 clamp(30px,3vw,44px)/1.05 var(--serif)}.stat-row span{display:block;color:#617580;font-size:11px;margin-top:6px}
.district-section{padding-top:56px;padding-bottom:32px}.section-head{margin-bottom:24px}.section-head p{font-size:14px}.finder{border:1px solid #d7dddc;background:#fff}.finder-controls{padding:24px 27px;display:flex;align-items:flex-end;gap:20px;justify-content:space-between;background:#f2f0e9;border-bottom:1px solid #d9dedb}.select-group{width:min(100%,385px)}.select-group label,.searchbox label{display:block;font-size:12px;font-weight:700;color:#2c4958;margin-bottom:7px}.select-group select,.searchbox input{background:white;color:#172d41;border:1px solid #b9c7c9;border-radius:2px;padding:10px 13px;min-height:46px;width:100%}.select-group small{display:block;color:#637782;margin-top:7px;font-size:11px}.quiet-link{color:#315e76;font-size:12px;font-weight:700;padding-bottom:9px}.selected-row{padding:24px 27px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.selected-row .eyebrow{margin:0}.status-caption{font-size:11px;color:#73858b}.race-stack{padding:14px 27px 27px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.race-entry{border:1px solid #dce3e1;padding:19px 19px 16px;min-width:0;background:#fff}.race-entry.senate{grid-column:1/-1;background:#f8f7f2;border-color:#d7d9d3}.race-label{color:#a5824c;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700}.race-entry h3{font:400 25px/1.25 var(--serif);margin:7px 0 12px;letter-spacing:-.03em}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0 0}.candidate{border:1px solid #e1e7e4;background:#fafaf8;padding:11px 12px;min-width:0}.candidate strong{display:block;line-height:1.35;font-size:13px}.candidate small{display:block;color:#657781;margin-top:3px;font-size:11px}.candidate a{display:inline-block;font-size:11px;margin-top:9px;color:#315f78;text-decoration:underline;font-weight:700}.candidate a:hover{text-decoration-thickness:2px}.candidate-note{font-size:11px;color:#76858b;margin:13px 0 8px}.pending{font-size:13px;color:#5b707a;line-height:1.7;margin:12px 0;padding:14px 0;border-top:1px solid #e4e8e4}.resource-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:15px}.resource-links a{font-size:11px;color:#325d74;font-weight:700}.resource-links a:hover{text-decoration-thickness:2px}.finder-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px 27px;border-top:1px solid #e4e7e3;font-size:11px;color:#7d8b8f}.source-note{font-size:12px;color:#647883;line-height:1.8;padding:14px 2px 0;max-width:950px}.source-note strong{color:#223c4d}
.browse{padding-top:48px;padding-bottom:58px}.section-head.split{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.searchbox{min-width:245px}.district-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.district-button{border:1px solid #d7dddb;text-align:left;padding:13px 14px;background:#fff;color:var(--ink);min-height:92px}.district-button .number{font:400 25px/1.1 var(--serif);display:block}.district-button .branches{font-size:10px;display:block;color:#77878d;margin-top:8px}.district-button:hover,.district-button:focus-visible{background:#f0eee7;border-color:#bea273}.district-button[aria-current="true"]{background:var(--navy);border-color:var(--navy);color:white}.district-button[aria-current="true"] .branches{color:#c6d2d5}.empty{padding:20px;background:white;color:#536d78;border:1px solid #d9dfdc}
.explainer{border-top:1px solid var(--line);padding-top:45px;padding-bottom:45px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:28px}.steps article{border-top:2px solid #dac49e;padding-top:17px}.steps article b{color:#a38151;font:700 11px var(--sans)}.steps h3{font:400 23px var(--serif);letter-spacing:-.025em;margin:12px 0 8px}.steps p{font-size:13px;color:#657881;margin:0}.sources{border-top:1px solid var(--line);padding-top:23px;padding-bottom:34px}.sources h2{font:400 22px var(--serif);margin:0 0 9px}.sources p{font-size:12px;color:#637780;line-height:1.85;max-width:1000px}footer{background:var(--navy);color:#e3e8e8}.foot{display:flex;justify-content:space-between;gap:22px;align-items:center;padding-top:30px;padding-bottom:30px}.foot a{text-decoration:none;color:#e1cb9f;font-size:12px}.foot-brand{letter-spacing:.1em;font-weight:700;font-size:16px!important}.foot p{font-size:12px;color:#cad4d9;margin:0}
@media(max-width:970px){.shell,.topbar-inner{padding-left:25px;padding-right:25px}.hero-grid{grid-template-columns:1.45fr .55fr}.intro{gap:26px}.district-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:640px){.shell,.topbar-inner{padding-left:19px;padding-right:19px}.topbar{height:61px}.brand{font-size:16px}.edition{display:none}.headnav{gap:14px}.headnav a{font-size:11px}.hero-grid{display:block;padding-top:46px;padding-bottom:48px;min-height:auto}.hero-side{display:none}.hero h1{font-size:clamp(39px,9vw,55px)}.hero-deck{font-size:14px}.hero-actions{align-items:stretch}.hero-actions .action{flex:1 1 100%;justify-content:center}.intro{display:block;padding-top:32px;padding-bottom:30px}.intro h2,.section-head h2,.explainer h2{font-size:30px}.stat-row{margin-top:26px}.stat-row b{font-size:32px}.district-section{padding-top:36px}.finder-controls{display:block;padding:18px}.quiet-link{display:block;padding:13px 0 0}.selected-row{padding:20px 18px 0;display:block}.selected-row .status-caption{display:block;margin-top:5px}.race-stack{padding:16px 18px 18px;grid-template-columns:1fr}.race-entry.senate{grid-column:auto}.race-entry{padding:16px}.race-entry h3{font-size:23px}.candidate-grid{grid-template-columns:1fr}.finder-bottom{padding:15px 18px}.browse{padding-top:34px;padding-bottom:35px}.section-head.split{display:block}.searchbox{margin-top:19px}.district-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.district-button{padding:12px;min-height:75px}.district-button .number{font-size:23px}.steps{grid-template-columns:1fr;gap:24px}.foot{display:block}.foot p{margin:10px 0}.foot a{display:inline-block;margin-top:6px}}
@media(max-width:350px){.district-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:15px}.headnav{gap:9px}}

/* Candidate panels use one shared source note below the district finder. */
.race-entry{padding-bottom:26px}

/* Unified district-panel color treatment. */
.finder{background:#fff}
.race-entry,.race-entry.senate{background:#f2eee6;border:1px solid #d8ddd9}
.candidate{background:#fff;border:1px solid #d9dfdc}
.finder-bottom{background:#fff}
