:root{--pine:#173f2a;--pine-dark:#0d2d1c;--field:#2f6b3f;--gold:#d9a21b;--gold-dark:#8a6300;--sun:#f2d37b;--cream:#f7f5ed;--paper:#fffdf8;--ink:#162018;--muted:#4f5b52;--line:#cfd5c9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip-link{z-index:100;color:var(--pine);background:#fff;border-radius:6px;padding:10px 14px;font-weight:800;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f5;justify-content:space-between;align-items:center;gap:24px;padding:14px clamp(20px,5vw,72px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--pine);width:46px;height:46px;color:var(--sun);border-radius:8px;place-items:center;font-weight:800;display:grid}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:.78rem}nav{color:var(--pine);flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:.94rem;font-weight:700;display:flex}nav a{align-items:center;min-height:40px;text-decoration:none;display:inline-flex}.nav-action{border:1px solid var(--pine);color:var(--pine);border-radius:6px;padding:0 14px}.donate-nav{background:var(--gold);color:var(--pine-dark);border-radius:6px;padding:0 18px}.donate-nav:hover{background:var(--pine);color:#fff}.hero{color:#fff;background:linear-gradient(90deg,#0d2d1cfa,#173f2ad1),repeating-linear-gradient(115deg,#264f34 0 18px,#315d3e 18px 36px);grid-template-columns:minmax(0,1.15fr) minmax(300px,.6fr);align-items:center;gap:clamp(30px,6vw,86px);min-height:76vh;padding:clamp(64px,8vw,112px) clamp(20px,5vw,72px);display:grid}.eyebrow{color:var(--gold-dark);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}.hero .eyebrow,.election-band .eyebrow{color:var(--sun)}.hero h1,.section h2,.election-band h2{letter-spacing:0;max-width:880px;margin:0;font-family:Georgia,Times New Roman,serif;line-height:1.02}.hero h1{font-size:clamp(2.65rem,5vw,5.2rem)}.section h2,.election-band h2{color:var(--pine);font-size:clamp(2rem,3.4vw,3.4rem)}.hero-text{color:#f5f0df;max-width:730px;margin:24px 0 0;font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.hero-tertiary{color:var(--sun);margin-top:18px;font-weight:800;display:inline-block}.button{border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:48px;padding:0 20px;font-weight:800;text-decoration:none;display:inline-flex}.primary{background:var(--gold);color:var(--pine-dark)}.secondary{color:#fff;border-color:#ffffffbf}.slogan{color:var(--sun);margin:30px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.1rem,2vw,1.45rem);font-weight:700}.candidate-panel{text-align:center;background:#ffffff14;border:1px solid #f2d37b94;border-radius:8px;justify-items:center;gap:16px;padding:30px;display:grid}.candidate-photo-frame{aspect-ratio:1;border:3px solid var(--sun);background:var(--pine-dark);border-radius:6px;width:min(300px,72vw);position:relative;overflow:hidden;box-shadow:0 18px 38px #06190f4d}.state-outline{z-index:0;opacity:.58;width:118%;height:auto;position:absolute;top:13%;left:-9%}.candidate-photo{z-index:1;width:138%;max-width:none;height:auto;margin-top:-2%;margin-left:-19%;display:block;position:relative}.candidate-name{color:#fff;margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:800}.candidate-office{color:#e8eddc;margin:5px 0 0}.candidate-roles{color:#f5f0df;border-top:1px solid #ffffff3d;width:100%;margin:4px 0 0;padding:16px 0 0;line-height:1.8;list-style:none}.party-affiliation{color:#fff;text-align:left;background:#06190f47;border:1px solid #f2d37b7a;border-radius:6px;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;width:100%;padding:14px;display:grid}.party-affiliation img{border-radius:50%;width:72px;height:72px;display:block}.party-affiliation span,.party-affiliation small,.party-affiliation strong{display:block}.party-affiliation small{color:#e8eddc;text-transform:uppercase;margin-bottom:3px;font-size:.75rem;font-weight:700}.party-affiliation strong{font-family:Georgia,Times New Roman,serif;font-size:1rem;line-height:1.25}.party-affiliation:hover{border-color:var(--sun);background:#06190f75}.service-band{background:var(--gold);color:var(--pine-dark);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.service-band div{border-right:1px solid #0d2d1c33;padding:22px clamp(20px,5vw,72px)}.service-band div:last-child{border-right:0}.service-band strong,.service-band span{display:block}.service-band strong{font-family:Georgia,Times New Roman,serif;font-size:1.45rem}.service-band span{margin-top:4px;font-size:.9rem;font-weight:700}.section{padding:clamp(64px,8vw,104px) clamp(20px,5vw,72px);scroll-margin-top:84px}.muted{background:var(--cream)}.split,.why-running,.event-section{grid-template-columns:minmax(250px,.72fr) minmax(0,1fr);gap:clamp(30px,5vw,78px);display:grid}.section-heading{max-width:790px;margin-bottom:36px}.section-heading p,.body-copy p,.priority-card p,.plan-step p,.why-copy p,.event-notice p,.action-card p{color:var(--muted);font-size:1rem;line-height:1.65}.priority-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.priority-card,.plan-step,.action-card,.event-notice{border:1px solid var(--line);background:var(--paper);border-radius:8px}.priority-card{min-height:280px;padding:24px}.priority-number{color:var(--gold-dark);margin-bottom:30px;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:800;display:inline-block}h3{color:var(--pine);margin:0 0 10px;font-size:1.15rem}.lead-copy{margin-top:0;font-weight:700;color:var(--pine)!important;font-size:1.2rem!important}.service-list{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.service-list span{border:1px solid var(--line);color:var(--pine);border-radius:6px;padding:9px 11px;font-size:.88rem;font-weight:800}.why-running{background:var(--pine);color:#fff}.donation-section{color:#fff;background:linear-gradient(90deg,#0d2d1cfa,#173f2ae0),repeating-linear-gradient(115deg,#264f34 0 18px,#315d3e 18px 36px);grid-template-columns:minmax(0,.8fr) minmax(300px,.65fr);align-items:center;gap:clamp(30px,6vw,88px);padding:clamp(64px,8vw,104px) clamp(20px,5vw,72px);scroll-margin-top:84px;display:grid}.donation-copy .eyebrow{color:var(--sun)}.donation-copy h2{color:#fff;letter-spacing:0;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,4vw,4rem);line-height:1.04}.donation-copy>p:last-child{color:#e8eddc;max-width:680px;font-size:1.08rem;line-height:1.65}.donation-status{background:#ffffff14;border:1px solid #f2d37b8c;border-radius:8px;padding:28px}.donation-status>span{color:var(--sun);text-transform:uppercase;font-size:.76rem;font-weight:800}.donation-status h3{color:#fff;margin-top:14px;font-family:Georgia,Times New Roman,serif;font-size:1.65rem}.donation-status p{color:#e8eddc;line-height:1.6}.donation-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:22px;display:flex}.donation-alt{color:#fff;font-weight:800}.donation-rules-link{color:var(--sun);margin-top:18px;font-weight:700;display:inline-block}.rules-page{background:var(--cream);min-height:100vh}.rules-header{border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:20px;padding:14px clamp(20px,5vw,72px);display:flex}.rules-back{color:var(--pine);font-weight:800;text-decoration:none}.rules-main{width:min(820px,100% - 40px);margin:0 auto;padding:72px 0 88px}.rules-main h1{max-width:720px;color:var(--pine-dark);margin:8px 0 20px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,7vw,4.8rem);line-height:.98}.rules-intro{max-width:720px;color:var(--muted);margin-bottom:42px;font-size:1.12rem;line-height:1.7}.rules-section{border-top:1px solid var(--line);padding:30px 0}.rules-section h2{color:var(--pine);margin:0 0 16px;font-family:Georgia,Times New Roman,serif;font-size:1.65rem}.rules-section p,.rules-section li{line-height:1.7}.rules-section ul{margin:0;padding-left:22px}.rules-notice{border-left:4px solid var(--gold);color:var(--muted);background:#fff;padding:18px 20px}.rules-footer{background:var(--pine-dark);color:#fff;text-align:center;padding:28px clamp(20px,5vw,72px)}.why-running h2{color:#fff}.why-running .eyebrow{color:var(--sun)}.why-copy p{color:#e8eddc;margin-top:0}blockquote{border-left:4px solid var(--gold);color:var(--sun);margin:28px 0 0;padding:22px 0 4px 24px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,2.3vw,2rem);font-weight:700;line-height:1.35}.plan-section{background:var(--paper)}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.plan-step{border-top:5px solid var(--gold);padding:26px}.plan-step>span{background:var(--pine);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;margin-bottom:24px;font-weight:800;display:grid}.plan-support{color:var(--muted);margin:24px 0 0;font-weight:700}.plan-support a{color:var(--field)}.voter-center{background:var(--cream)}.voter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.voter-card{border:1px solid var(--line);background:var(--paper);border-radius:8px;flex-direction:column;min-height:285px;padding:24px;text-decoration:none;display:flex}.voter-card>span{color:var(--gold-dark);text-transform:uppercase;margin-bottom:30px;font-size:.76rem;font-weight:800}.voter-card p{color:var(--muted);flex:1;line-height:1.6}.voter-card strong{color:var(--field);font-size:.92rem}.voter-card:hover{border-color:var(--field)}.election-band{background:var(--pine-dark);color:#fff;justify-content:space-between;align-items:center;gap:28px;padding:44px clamp(20px,5vw,72px);display:flex}.election-band h2{color:#fff;font-size:clamp(1.8rem,3vw,3rem)}.election-band p:last-child{color:#e8eddc;margin-bottom:0}.event-notice{border-left:5px solid var(--gold);padding:28px}.event-notice>span{color:var(--pine);font-family:Georgia,Times New Roman,serif;font-size:1.45rem;font-weight:800}.event-notice a{color:var(--field);font-weight:800}.involved-section{background:var(--cream)}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.action-card{flex-direction:column;align-items:flex-start;min-height:310px;padding:26px;display:flex}.action-label{color:var(--gold-dark);text-transform:uppercase;margin-bottom:30px;font-size:.78rem;font-weight:800}.action-card p{flex:1}.privacy-note{max-width:850px;color:var(--muted);margin:24px 0 0;font-size:.9rem;line-height:1.55}.site-footer{background:var(--pine);color:#fff;grid-template-columns:minmax(0,1fr) auto;gap:18px 40px;padding:34px clamp(20px,5vw,72px);display:grid}.site-footer p{color:#e6eddc;margin:6px 0 0}address{flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;font-style:normal;display:flex}.military-disclaimer,.disclaimer{border-top:1px solid #fff3;grid-column:1/-1;padding-top:18px;font-size:.9rem}.military-disclaimer{max-width:920px}.disclaimer{margin-top:0!important}@media (max-width:980px){.site-header,.hero,.donation-section,.split,.why-running,.event-section,.site-footer{grid-template-columns:1fr}.site-header{display:grid}.hero{min-height:auto}.candidate-panel{max-width:520px}.priority-grid,.voter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-grid,.action-grid{grid-template-columns:1fr}.action-card{min-height:0}address{justify-content:flex-start}}@media (max-width:660px){html{scroll-behavior:auto}.site-header{gap:12px;position:static}nav{gap:4px 12px}nav a{min-height:44px}.nav-action{padding:0 10px}.donate-nav{justify-content:center;width:100%}.hero h1,.section h2{line-height:1.08}.service-band,.priority-grid,.voter-grid{grid-template-columns:1fr}.service-band div{border-bottom:1px solid #0d2d1c33;border-right:0}.service-band div:last-child{border-bottom:0}.priority-card,.voter-card{min-height:0}.election-band{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
