.election-strip{background:#101522;color:#fff;border-bottom:3px solid #de394e;padding:12px 22px;display:flex;align-items:center;justify-content:center;gap:30px}.clock-intro{display:grid;gap:4px;font-size:12px}.clock-intro strong{font-size:14px}.clock-intro a{color:#c5d4ee;font-size:10px}.election-clock{display:flex;align-items:center;gap:9px;font-family:Consolas,'Courier New',monospace}.clock-unit{display:grid;justify-items:center;gap:3px}.clock-unit b{font-size:30px;line-height:1.15;color:#ff6575;text-shadow:0 0 12px #ec3a5866;background:#090d16;padding:4px 8px;border:1px solid #303440;border-radius:4px;font-variant-numeric:tabular-nums}.clock-unit small{font-size:8px;letter-spacing:1.4px;color:#c1c8d5}.clock-colon{font-size:24px;color:#ff6575;padding-bottom:15px}.clock-note{max-width:220px;font-size:10px;line-height:1.5;color:#aeb8cb}.visit-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;max-width:1220px;padding:15px 24px;margin:0 auto}.visit-tools button,.visit-tools>a{background:white;border:1px solid #dbe3ed;border-radius:22px;padding:8px 13px;color:#254a79;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;text-decoration:none}.visit-tools span{font-size:12px}.political-panel,.official-panel{background:#fff;border:1px solid #dce3ec;border-radius:20px;padding:28px;margin:25px 0}.political-panel>p,.official-panel>p{color:#5c697b;font-size:13px;line-height:1.65}.political-panel h2,.official-panel h2{font-size:27px}.spectrum-track{position:relative;height:13px;margin:30px 0 9px;border-radius:8px;background:linear-gradient(to right,#a51f39 0%,#dc4760 22%,#be658d 35%,#bc8218 50%,#56a1b9 65%,#285eaf 80%,#29254a 100%)}.spectrum-pointer{position:absolute;top:-7px;width:8px;height:27px;background:#fff;border:2px solid #172440;box-shadow:0 1px 5px #0005;transform:translateX(-50%);border-radius:3px}.spectrum-ends{display:flex;justify-content:space-between;font-size:10px;color:#647083}.spectrum-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.spectrum-groups section{border-top:4px solid var(--political);background:#f6f8fb;border-radius:5px;padding:13px}.spectrum-groups h3{font-family:inherit;font-size:13px;font-weight:700;margin:0 0 10px}.spectrum-groups a{display:block;font-size:12px;padding:4px 0;color:#293c58}.political-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid #dce3ed;background:#f6f8fb;padding:5px 9px;border-radius:16px;font-size:11px;color:#26364c;margin:7px 0}.political-badge i{width:9px;height:9px;border-radius:50%;background:var(--political)}.official-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.official-links a{display:grid;gap:8px;border:1px solid #dde4ef;border-radius:12px;padding:16px;text-decoration:none;color:#173975}.official-links a:hover{background:#f0f5fd;border-color:#7e9fc8}.official-links span{font-size:10px;text-transform:uppercase;letter-spacing:1px}.official-links b{font-size:14px}.official-links small{font-size:10px;color:#69778b}.portrait{border:3px solid var(--person,#718096)}@media(max-width:700px){.election-strip{gap:15px;padding:10px 12px;flex-wrap:wrap}.clock-note{display:none}.clock-unit b{font-size:23px;padding:4px 6px}.election-clock{gap:5px}.clock-intro strong{font-size:12px}.spectrum-groups{grid-template-columns:repeat(2,1fr)}.official-links{grid-template-columns:repeat(2,1fr)}.political-panel,.official-panel{padding:20px}.political-panel h2,.official-panel h2{font-size:23px}}@media(max-width:400px){.election-strip{gap:8px}.clock-intro{width:100%;text-align:center}.official-links{grid-template-columns:1fr}}

/* Readability: explicit foregrounds on dark surfaces and compact notices. */
.feature-card.alt{color:#fff}.feature-card.alt h3,.feature-card.alt .feature-more{color:#fff}.feature-card.alt p,.feature-card.alt .feature-n,.feature-card.alt .eyebrow{color:#dce8fa}
.vision-lead h2,.budget-candidate h2,.quiz-finish-lead h2{color:#fff}
:is(.feature-card.alt,.vision-lead,.budget-candidate,.quiz-finish-lead,.site-footer) .person-link:hover{color:#fff;text-decoration:underline}
.caution-line{align-self:start;min-height:0;padding:10px 13px;margin:14px 0;line-height:1.6}
.poll-visual{min-width:0;align-self:center}.poll-visual>.caution-line{margin:0 0 16px;font-size:12px}.poll-card .small-note{color:#56657a}
.profile-banner .candidate-age{font-size:16px;color:#263c5b;margin:6px 0 12px;font-weight:650}.candidate-age a{font-size:11px;font-weight:400;margin-left:8px;color:#214f8b;text-underline-offset:3px}
