
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');
:root{--ink:#182d40;--ink2:#253f50;--slate:#61717a;--paper:#faf9f5;--cream:#f3efe5;--line:#dce0df;--gold:#c4a66f;--red:#a94b48;--blue:#3e6c92;--white:#fff;--serif:Georgia,'Libre Baskerville',serif;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:3px}img{max-width:100%;display:block}
.site-header{height:75px;background:var(--paper);border-bottom:1px solid #e7e4db;position:sticky;top:0;z-index:40;box-shadow:0 1px 10px #132c4010}.header-inner{max-width:1260px;padding:0 48px;margin:auto;height:100%;display:flex;align-items:center;gap:30px}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none}.logo-mark{color:var(--ink);display:inline-flex;width:33px;height:33px}.logo-mark svg{width:100%;height:100%}.brand-name{font-weight:700;letter-spacing:.105em;font-size:20px}.brand-dot,.footer-brand span{color:#bf9b61}.edition{font-size:10px;color:#889198;letter-spacing:.16em;font-weight:700;margin-left:8px}.header-link{margin-left:auto;text-decoration:none;font-size:12px;font-weight:700;color:#46677b}
.hero{background:#162c41;color:#f9f6ee;overflow:hidden;position:relative;isolation:isolate}.hero-inner{max-width:1260px;padding:78px 48px 74px;margin:auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:40px;min-height:420px}.hero:after{content:'';position:absolute;inset:auto 0 0 0;height:135px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.08))}.hero-kicker{font-weight:700;font-size:11px;letter-spacing:.22em;color:#e1c899;display:flex;align-items:center;gap:15px;margin:0 0 25px}.gold-rule{width:29px;height:1px;background:#c4a66f}.hero h1{font:400 clamp(54px,6vw,84px)/1.07 var(--serif);letter-spacing:-.05em;margin:0 0 22px}.hero h1 em{font-weight:400;color:#c8aa73}.hero-lead{font-size:17px;line-height:1.75;color:#d4dce0;max-width:620px;margin:0 0 28px}.hero-cta{display:flex;flex-wrap:wrap;gap:12px}.button{min-height:47px;padding:11px 18px;display:inline-flex;align-items:center;gap:20px;font-size:12px;font-weight:700;text-decoration:none;border-radius:2px;letter-spacing:.02em}.button-cream{background:#f4ede0;color:#183046}.button-outline{border:1px solid #6a7b82;color:#f7f5ef}.hero-art{position:relative;height:280px}.hero-landmark{position:absolute;inset:auto 0 6px 0;height:120px;background-repeat:no-repeat;background-position:center bottom;background-size:contain;opacity:.42}.hero-capitol{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20700%20180%27%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%2523d6c19a%27%20stroke-width%3D%274%27%20stroke-linejoin%3D%27round%27%20stroke-linecap%3D%27round%27%20opacity%3D%270.95%27%3E%0A%3Cpath%20d%3D%27M35%20150H665%27/%3E%0A%3Cpath%20d%3D%27M120%20150V110h460v40%27/%3E%0A%3Cpath%20d%3D%27M135%20110h430%27/%3E%0A%3Cpath%20d%3D%27M180%20110V92h340v18%27/%3E%0A%3Cpath%20d%3D%27M220%2092V74h260v18%27/%3E%0A%3Cpath%20d%3D%27M272%2074V60h156v14%27/%3E%0A%3Cpath%20d%3D%27M316%2060V46h68v14%27/%3E%0A%3Cpath%20d%3D%27M350%2046c0-20%2012-34%2028-34%2016%200%2028%2014%2028%2034%27/%3E%0A%3Cpath%20d%3D%27M220%20150V118%27/%3E%3Cpath%20d%3D%27M268%20150V118%27/%3E%3Cpath%20d%3D%27M316%20150V118%27/%3E%3Cpath%20d%3D%27M364%20150V118%27/%3E%3Cpath%20d%3D%27M412%20150V118%27/%3E%3Cpath%20d%3D%27M460%20150V118%27/%3E%0A%3Cpath%20d%3D%27M90%20150V122h30v28%27/%3E%3Cpath%20d%3D%27M580%20150V122h30v28%27/%3E%0A%3Cpath%20d%3D%27M150%20110V96%27/%3E%3Cpath%20d%3D%27M550%20110V96%27/%3E%0A%3C/g%3E%3C/svg%3E")}.topo-circle{border:1px solid #7f8d90;border-radius:50%;position:absolute;opacity:.24}.circle-one{width:330px;height:330px;right:4%;top:-18px}.circle-two{width:220px;height:220px;right:16%;top:40px}.hero-art-note{position:absolute;bottom:0;right:10px;font-size:10px;line-height:1.7;letter-spacing:.17em;color:#c4ad86;text-align:right}
.wrap{max-width:1260px;padding:0 48px;margin:auto}.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;padding:44px 0 12px}.intro-card,.how-card,.coming-card{background:#fff;border:1px solid #e0e4e3;padding:28px}.intro-card h2,.section-title{font:400 36px/1.2 var(--serif);letter-spacing:-.04em;margin:0 0 12px}.intro-card p,.how-card p,.coming-card p{color:#556770}.guide-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.stat{border-top:1px solid #d8dede;padding-top:12px}.stat b{display:block;font:400 24px var(--serif);margin-bottom:3px}.stat span{font-size:12px;color:#718086}.section-block{padding:34px 0}.section-title{margin-bottom:20px}
.race-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.race-card{background:#fff;border:1px solid #dee3e2;display:flex;flex-direction:column;overflow:hidden}.race-banner{background:#162c41;color:#f4efe6;padding:18px 22px 86px;position:relative;overflow:hidden}.race-banner h3{font:400 34px/1.08 var(--serif);letter-spacing:-.04em;margin:0 0 8px}.race-banner p{font-size:12px;color:#d3dde0;max-width:410px;margin:0}.race-banner .landmark{position:absolute;left:18px;right:18px;bottom:16px;height:62px;background-repeat:no-repeat;background-size:contain;background-position:left bottom;opacity:.44}.landmark.mansion{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20640%20180%27%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%2523d6c19a%27%20stroke-width%3D%274%27%20stroke-linejoin%3D%27round%27%20stroke-linecap%3D%27round%27%20opacity%3D%270.95%27%3E%0A%3Cpath%20d%3D%27M30%20150H610%27/%3E%0A%3Cpath%20d%3D%27M145%20150V88h350v62%27/%3E%0A%3Cpath%20d%3D%27M135%2088h370%27/%3E%0A%3Cpath%20d%3D%27M180%2088V65h280v23%27/%3E%0A%3Cpath%20d%3D%27M205%2065V50h230v15%27/%3E%0A%3Cpath%20d%3D%27M250%2050V34h140v16%27/%3E%0A%3Cpath%20d%3D%27M288%2034c0-18%2012-28%2032-28s32%2010%2032%2028%27/%3E%0A%3Cpath%20d%3D%27M170%20150V102%27/%3E%3Cpath%20d%3D%27M220%20150V102%27/%3E%3Cpath%20d%3D%27M270%20150V102%27/%3E%3Cpath%20d%3D%27M320%20150V102%27/%3E%3Cpath%20d%3D%27M370%20150V102%27/%3E%3Cpath%20d%3D%27M420%20150V102%27/%3E%3Cpath%20d%3D%27M470%20150V102%27/%3E%0A%3Cpath%20d%3D%27M75%20150V110h50v40%27/%3E%3Cpath%20d%3D%27M515%20150V110h50v40%27/%3E%0A%3Cpath%20d%3D%27M292%20150v-32h56v32%27/%3E%0A%3Cpath%20d%3D%27M210%20102h220%27/%3E%0A%3C/g%3E%3C/svg%3E")}.landmark.capitol{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20700%20180%27%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27%2523d6c19a%27%20stroke-width%3D%274%27%20stroke-linejoin%3D%27round%27%20stroke-linecap%3D%27round%27%20opacity%3D%270.95%27%3E%0A%3Cpath%20d%3D%27M35%20150H665%27/%3E%0A%3Cpath%20d%3D%27M120%20150V110h460v40%27/%3E%0A%3Cpath%20d%3D%27M135%20110h430%27/%3E%0A%3Cpath%20d%3D%27M180%20110V92h340v18%27/%3E%0A%3Cpath%20d%3D%27M220%2092V74h260v18%27/%3E%0A%3Cpath%20d%3D%27M272%2074V60h156v14%27/%3E%0A%3Cpath%20d%3D%27M316%2060V46h68v14%27/%3E%0A%3Cpath%20d%3D%27M350%2046c0-20%2012-34%2028-34%2016%200%2028%2014%2028%2034%27/%3E%0A%3Cpath%20d%3D%27M220%20150V118%27/%3E%3Cpath%20d%3D%27M268%20150V118%27/%3E%3Cpath%20d%3D%27M316%20150V118%27/%3E%3Cpath%20d%3D%27M364%20150V118%27/%3E%3Cpath%20d%3D%27M412%20150V118%27/%3E%3Cpath%20d%3D%27M460%20150V118%27/%3E%0A%3Cpath%20d%3D%27M90%20150V122h30v28%27/%3E%3Cpath%20d%3D%27M580%20150V122h30v28%27/%3E%0A%3Cpath%20d%3D%27M150%20110V96%27/%3E%3Cpath%20d%3D%27M550%20110V96%27/%3E%0A%3C/g%3E%3C/svg%3E")}
.race-body{padding:22px}.candidate-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.candidate-chip{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center;background:#f7f7f3;border:1px solid #e2e5e4;padding:8px}.candidate-photo{width:58px;height:70px;overflow:hidden;position:relative;background:#dde3e5}.candidate-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.candidate-photo span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font:italic 24px var(--serif);color:#85969c}.candidate-chip b{display:block;font-size:13px}.candidate-chip small{color:#6d7d84;font-size:11px}
.race-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 20px}.meta-box{background:#f1eee7;padding:12px 14px}.meta-box .eyebrow{font-size:10px;letter-spacing:.16em;color:#8f9a9b;font-weight:700;margin-bottom:6px}.meta-box p{margin:0;color:#4e626d;font-size:12px;line-height:1.6}.race-actions{display:flex;flex-wrap:wrap;gap:10px}.link-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border:1px solid #c8d0cf;text-decoration:none;font-size:12px;font-weight:700;color:#2d566e}.link-button.primary{background:#173044;border-color:#173044;color:#fff}.how-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.how-card h3,.coming-card h3{font:400 28px var(--serif);margin:0 0 8px}.checklist{margin:16px 0 0;padding-left:18px;color:#5a6c73}.checklist li{margin-bottom:8px}.coming-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.coming-card{min-height:180px}.coming-card .tag{font-size:10px;letter-spacing:.16em;font-weight:700;color:#8e997d}.footer{background:#162b3f;color:#d8e1e2;margin-top:50px}.footer-inner{max-width:1260px;margin:auto;padding:46px 48px;display:flex;align-items:center;gap:25px}.footer-brand{font-size:17px;letter-spacing:.14em;font-weight:700}.footer p{font:italic 16px var(--serif);color:#c4b28e;margin:0 auto 0 0}.footer-inner>div{font-size:10px;color:#9eafb5}.footer-inner>div a{text-decoration:none;color:#e4d1af}
@media(max-width:980px){.header-inner,.hero-inner,.wrap,.footer-inner{padding-left:28px;padding-right:28px}.intro-grid,.how-grid,.coming-grid,.race-grid{grid-template-columns:1fr}.guide-stats{grid-template-columns:1fr 1fr 1fr}.hero-art{display:none}}
@media(max-width:760px){.site-header{height:65px}.header-inner{padding:0 18px;gap:12px}.brand-name{font-size:17px}.edition{display:none}.hero-inner{padding:50px 20px 46px;display:block;min-height:auto}.hero h1{font-size:54px}.hero-lead{font-size:15px}.hero-cta{align-items:stretch}.button{width:100%;justify-content:center}.wrap{padding:0 20px}.intro-grid{padding-top:26px}.guide-stats,.candidate-row,.race-meta,.coming-grid{grid-template-columns:1fr}.race-banner{padding:16px 18px 78px}.race-banner h3{font-size:30px}.race-body{padding:18px}.footer-inner{padding:34px 20px;display:block}.footer p{margin:12px 0}}

/* Wordmark treatment — intentionally NOT an official Northline logo. */
.brand-lines{width:28px;min-width:28px;height:28px;display:inline-flex;flex-direction:column;justify-content:center;gap:5px}
.brand-lines i{display:block;width:25px;height:2px;background:#244055;border-radius:1px}
.brand-lines i:nth-child(2){width:25px}
.brand-lines i:nth-child(3){width:25px;background:#c4a66f}
@media(max-width:760px){.brand-lines{width:23px;min-width:23px;height:24px;gap:4px}.brand-lines i{width:22px;height:2px}.brand-lines i:nth-child(2),.brand-lines i:nth-child(3){width:22px}}

.hero-capitol{background-image:url("assets/us-capitol.svg")!important;opacity:.65!important;bottom:12px!important;height:235px!important;background-position:center bottom!important}
.landmark.mansion{background-image:url("assets/governors-residence.svg")!important}
.landmark.capitol{background-image:url("assets/us-capitol.svg")!important}
.race-banner .landmark{height:95px!important;bottom:-5px!important;opacity:.45!important}
.race-banner{padding-bottom:112px!important}
@media(max-width:650px){.hero-capitol{height:170px!important}}

/* Editorial reduction: simple typesetting, fewer decorative panels. */
.hero-inner{min-height:365px;padding-top:62px;padding-bottom:62px}
.hero h1{font-size:clamp(48px,5vw,75px);letter-spacing:-.035em;max-width:760px}
.hero-lead{max-width:670px}
.hero-kicker{letter-spacing:.12em}
.hero-art .topo-circle,.hero-art-note{display:none}
.intro-grid{grid-template-columns:1.35fr .65fr;gap:22px;padding-top:34px}
.intro-card,.how-card{background:transparent;border:0;border-bottom:1px solid var(--line);padding:14px 0 23px}
.intro-card h2{font-size:28px}.how-card h3{font-size:24px}
.section-title{font-size:31px}
.race-banner{padding-bottom:95px!important}
.race-banner .landmark{height:90px!important;opacity:.34!important}
.race-meta{display:block;margin-top:2px}
.race-meta .meta-box{background:transparent;padding:0;border:0}
.race-meta .meta-box .eyebrow{display:inline-block;margin:0 8px 0 0;font-size:9px}
.race-meta .meta-box p{display:inline;font-size:11px;color:#77868a}
.race-card{box-shadow:none}
.coming-card{min-height:130px;padding:22px}
.coming-card h3{font-size:23px}
.link-button.primary{border-radius:2px}
@media(max-width:980px){.intro-grid{grid-template-columns:1fr}}
@media(max-width:760px){.hero-inner{padding-top:48px;padding-bottom:42px}.hero h1{font-size:clamp(43px,10vw,58px)}.intro-card,.how-card{padding-bottom:17px}.section-title{font-size:29px}}

.intro-grid{display:block;padding-top:36px}.intro-card{max-width:820px}

/* October 17 revision: ensure hero links receive clicks above decorative layers */
.hero:after,.hero-art,.hero-landmark{pointer-events:none!important}
.hero-copy,.hero-inner>div:first-child{position:relative;z-index:3}
.hero-cta{position:relative;z-index:5}
.hero-cta a{position:relative;z-index:6;pointer-events:auto}
.home-countdown{font-size:12px;line-height:1.5;color:#d9c399;letter-spacing:.06em;margin:-8px 0 24px;font-weight:700}
.hero h1{line-height:1.08}
.hero h1 br{display:block}
/* The removed About section leaves no empty spacer */
#races{padding-top:46px}
@media(max-width:760px){#races{padding-top:32px}.hero h1{font-size:clamp(48px,10vw,63px)}}

/* Voting logistics note — placed just under the homepage action links. */
.early-voting-note{margin:17px 0 0;font-size:12px;line-height:1.65;color:#c5d1d7;position:relative;z-index:6}
.early-voting-label{font-weight:700;color:#f0e2c7}
.early-voting-note a{color:#f0e2c7;text-decoration:underline;text-decoration-color:rgba(240,226,199,.55);text-underline-offset:3px}
.early-voting-note a:hover{text-decoration-color:#fff;color:#fff}
@media(max-width:760px){.early-voting-note{font-size:12px;margin-top:15px}}
@media print{.early-voting-note a{color:#172938}}

/* Clickable candidate profiles: the entire chip leads to the corresponding biography. */
a.candidate-chip { color: inherit; text-decoration:none; cursor:pointer; transition:border-color .15s, background .15s, box-shadow .15s; }
a.candidate-chip:hover, a.candidate-chip:focus-visible { border-color:#b99b66; background:#f1efe6; box-shadow:0 2px 10px rgba(22,44,65,.08); }
a.candidate-chip:focus-visible { outline:3px solid #b99b66; outline-offset:3px; }
