/* Shared retro modern system; each page gets one distinct visual treatment. */
:root{--navy:#172c50;--red:#c63851;--green:#426fbd;--paper:#edf0f4;--ink:#172c50;--muted:#596981;--line:#c7d0df;--pink:#eeb4c8;--purple:#7763a6;--blue:#b8d7f5}
body{font-family:var(--body);color:var(--ink);background:var(--paper)}
h1,h2,h3{font-family:var(--display);color:var(--ink)}
h1,h2{font-weight:600;letter-spacing:-.055em}h3{font-weight:600;letter-spacing:-.025em}
h1{font-size:clamp(50px,6.3vw,88px)}h2{font-size:clamp(28px,3vw,42px)}
.wrap{width:min(1180px,calc(100% - 60px))}.narrow{max-width:990px}.section{padding-block:48px}
.page-intro{padding-top:62px;padding-bottom:36px;position:relative;border-bottom:1px solid var(--line);margin-bottom:30px}
.page-intro h1{margin-bottom:20px;max-width:900px}.page-intro .lead{font-size:17px;line-height:1.65;max-width:690px;margin-bottom:0}
.eyebrow{color:#aa2c45;font-size:10px;font-weight:700;letter-spacing:.14em}.lead,.muted{color:var(--muted)}
.video-feature h2{margin-bottom:17px}.video-feature p:not(.eyebrow){margin-bottom:16px}.split-section h2{margin-bottom:20px}.split-section p:not(.eyebrow){margin-bottom:22px}.support-band h2{margin-bottom:18px}.browse-heading{margin-bottom:12px}
.masthead{position:relative;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}
.masthead .wordmark{color:var(--ink)}.masthead nav{line-height:1.5}.masthead a:not(.donate){text-decoration:none}
.masthead .donate{margin-left:9px}.masthead .donate:hover{filter:none}.menu-button{color:var(--ink)}
.button{border-radius:30px;background:var(--navy);border-color:var(--navy);padding:12px 23px;font-size:13px;font-weight:600;min-height:46px;line-height:1.4}
.button.secondary{background:transparent;color:var(--navy);border-color:#91a5c4}.button:hover{background:#31588d;color:#fff;border-color:#31588d;filter:none}.button.small{min-height:38px;font-size:12px}
.text-link{font-size:13px;border-bottom-color:#b1bfd4}.text-link:hover{color:#a22d4b}
input,select,textarea{font:400 15px var(--body);border-color:#9dabc1;border-radius:12px;background:#f9fbff;min-height:48px;padding:12px 15px}input:focus,select:focus,textarea:focus{outline:2px solid #7895c9;outline-offset:2px}
.cards{gap:22px}.card{border-radius:25px;border:1px solid #bac8dd;background:#f7f9fc;padding:29px}.card p{font-size:14px;line-height:1.75}.card h3{font-size:24px;margin-bottom:15px}.card .text-link{font-size:12px}
.card:hover{border-color:#6b85b1}.small-text{font-size:12px;line-height:1.6}
.app-footer{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;padding:40px max(30px,calc((100% - 1180px)/2));background:#e2e7ef;border-top:1px solid #bbc7d9;color:var(--muted)}
.app-footer .footer-brand{font-size:22px;line-height:1.2;color:var(--navy);display:block}.app-footer p{font-size:12px;margin:9px 0}.app-footer a{color:var(--navy)}.app-footer .footer-links{font-size:12px;gap:18px;justify-content:flex-end}.app-footer small{grid-column:1/-1;color:var(--muted);font-size:10px}
/* Home: broad, sweeping bands around the badger, like a modern campaign poster. */
body[data-page="index.html"] .hero{grid-template-columns:1.08fr 1fr;min-height:580px;gap:35px;padding-block:66px;overflow:hidden}
body[data-page="index.html"] .hero h1{font-size:clamp(55px,5.9vw,83px);line-height:.99;max-width:620px;margin-bottom:27px}
body[data-page="index.html"] .hero .lead{font-size:19px;max-width:480px;margin-bottom:20px}
body[data-page="index.html"] .hero p:not(.eyebrow):not(.lead){font-size:14px;max-width:440px;line-height:1.8}
.hero-art{position:relative;min-height:420px;isolation:isolate}.hero-art:before{display:none}.hero-art img{width:92%;max-height:300px;object-fit:contain;z-index:2;position:relative;transform:translateY(40px)}
.home-bands{position:absolute;inset:0 0 0 0;overflow:hidden;border-radius:48% 48% 8px 8px;isolation:isolate}
.home-bands i{position:absolute;inset:8% 1% -12%;border:20px solid #365b98;border-bottom:0;border-radius:50% 50% 0 0}
.home-bands i:nth-child(2){inset:13% 6% -12%;border-color:#d9e5f6;border-width:17px}.home-bands i:nth-child(3){inset:17% 10% -12%;border-color:#cb435b;border-width:17px}.home-bands i:nth-child(4){inset:21% 14% -12%;border-color:#e6b7c7;border-width:16px}
.home-bands:after{content:'';position:absolute;inset:auto 0 0;height:20%;background:linear-gradient(0deg,var(--paper),#edf0f400)}
.navy-band{background:var(--navy);color:#fff;padding:33px 0;border-top:5px solid #d8b0c5;border-bottom:5px solid #acc6e8}
.big-number{font:400 35px 'Righteous',var(--display);letter-spacing:-.035em}.navy-band p{font-size:12px;color:#d7e3f5;margin-top:9px}.three-col>div+div{border-left-color:#7082a0}
.feature-links{border-top-color:#9cacc4}.feature-links a{padding:23px 8px;font-size:15px;border-bottom-color:#bbc8db}.feature-links b{color:#b33c5d}.support-band{background:#e0e7f1;border-top:1px solid #c0cee1;border-bottom:1px solid #c0cee1;border-radius:120px 120px 0 0;padding:58px 20px}.support-band h2{font-size:42px}.support-band .button{background:#ad2f4b;border-color:#ad2f4b}
/* Join Us: three unfolding ribbons, each in a related shade. */
body[data-page="join-us.html"] .page-intro:after{content:'';position:absolute;right:10px;top:67px;width:126px;height:92px;border-radius:80px 14px 80px 14px;background:#bd3455;box-shadow:-20px 10px 0 #e7b2c5,-40px 20px 0 #b7cdea;transform:rotate(-8deg);opacity:.9}
body[data-page="join-us.html"] .page-intro .lead{max-width:65%}
.join-list{padding-top:12px;padding-bottom:80px}.join-panel{--ribbon:#456dab;--ribbon-paper:#e1eaf7;border:1px solid #b2c3df;border-left:9px solid var(--ribbon);border-radius:27px;margin-bottom:22px;background:#f8faff;box-shadow:0 4px 0 #bdcbe133}
.join-panel:nth-child(2){--ribbon:#a83b62;--ribbon-paper:#f0dfe7;border-color:#d5b7c8}.join-panel:nth-child(3){--ribbon:#75609f;--ribbon-paper:#e7e2f1;border-color:#c5bad9}
.join-panel summary{font-family:var(--display);font-size:25px;font-weight:600;letter-spacing:-.035em;padding:30px;color:var(--navy);background:linear-gradient(105deg,var(--ribbon-paper),#f8faff)}
.join-panel[open] summary{background:var(--ribbon-paper);border-bottom:1px solid #bec7d6}.join-panel .expand{color:var(--ribbon);border:1px solid currentColor;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:23px;flex-shrink:0}.join-panel .form-body{padding:30px}.form-body>p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:25px}.join-panel .button{background:var(--ribbon);border-color:var(--ribbon)}.check input{min-height:0;border-radius:3px;accent-color:var(--navy)}
/* Growth: a clear measurement scale with restrained lilac and blue bands. */
body[data-page="growth.html"] .page-intro:after{content:'';position:absolute;right:0;top:63px;width:160px;height:108px;background:linear-gradient(90deg,#c4c3e0 0 21%,transparent 21% 26%,#8c8dbc 26% 47%,transparent 47% 52%,#526b9b 52% 73%,transparent 73% 78%,#ad3f68 78%);clip-path:polygon(0 80%,21% 80%,21% 61%,47% 61%,47% 39%,73% 39%,73% 0,100% 0,100% 100%,0 100%);border-radius:5px}
.funding-summary{position:relative;background:#f6f8fc;border:1px solid #91a7ca;border-top:1px solid #91a7ca;border-radius:35px;padding:37px;box-shadow:0 0 0 5px var(--paper),0 0 0 7px #ccc3de;overflow:hidden;margin-top:24px}
.funding-summary:before{content:'';position:absolute;top:0;left:8%;right:8%;height:5px;background:linear-gradient(90deg,#bf3557 0 30%,#e8b3cb 30% 45%,#f9fbff 45% 55%,#92b9ea 55% 70%,#405f96 70%);border-radius:0 0 7px 7px}.funding-summary strong{font-family:var(--display);font-size:clamp(28px,3vw,44px);font-weight:600;letter-spacing:-.035em}.funding-goal{border-left-color:#c3cce1}.funding-summary p{font-size:13px}.funding-goal .button{background:#765695;border-color:#765695}
.progress-track{height:27px;border:1px solid #829cc1;border-radius:18px;background:repeating-linear-gradient(90deg,#dce4f1 0,#dce4f1 calc(10% - 1px),#a1b4d0 calc(10% - 1px),#a1b4d0 10%)}.progress-track span{background:linear-gradient(90deg,#c84060,#6878b7,#345b98);border-radius:15px}
.gantt{border-radius:24px;background:#f8faff;border-color:#b7c7df;padding:26px}.gantt-heading{color:#536688}.gantt-row strong{font-family:var(--display);font-size:16px;line-height:1.3;display:block}.planned-bar{background:#e1deef;border-color:#a69cc1;border-radius:20px}.actual-bar{background:linear-gradient(90deg,#c24368,#466db0);border-radius:20px}.swatch.raised{background:#466db0;border-radius:3px}.swatch.planned{background:#e1deef;border-color:#a69cc1;border-radius:3px}.gantt-row small{font-size:11px}
/* Videos: a restrained television frame and large circular play controls. */
body[data-page="videos.html"] .page-intro{border-bottom:5px solid transparent;border-image:linear-gradient(90deg,#c63d59,#e6c0d4,#f7f9ff,#a7c8f1,#2f528b) 1}
body[data-page="videos.html"] .page-intro h1{max-width:840px}.video-feature{grid-template-columns:.75fr 1.25fr;gap:55px;padding-block:32px 58px}.video-feature h2{font-size:42px}.video-feature p{font-size:15px;color:var(--muted)}
.video-frame{border-radius:28px;isolation:isolate;background:#192b50;border:8px solid #415a86;box-shadow:0 0 0 3px #e8eaf1,0 0 0 5px #9dacc5;overflow:hidden}.video-feature .video-frame{border-radius:46px;border-width:14px;box-shadow:0 0 0 4px var(--paper),0 0 0 7px #8c82ac,9px 12px 0 #c5ccdb}
.video-load{background:radial-gradient(ellipse at 60% 40%,#334577,#192b50 78%);color:#edf3ff;font-size:13px}.video-load:hover{background:radial-gradient(ellipse at 60% 40%,#514779,#20345d 78%)}.play-symbol{width:69px;height:69px;border:3px solid #f5e8f0;color:#fff;background:#a83a63;box-shadow:0 0 0 4px #5666a1,0 0 0 7px #bfc4e0;border-radius:50%;font-size:22px;padding-left:4px}.video-frame iframe{border-radius:17px}.channel-grid{gap:14px}.channel{border-radius:20px;padding:23px 18px;background:#f8faff;border-color:#bfcce1;border-top:4px solid #556ea1}.channel:nth-child(even){border-top-color:#a64873}.channel strong{font-family:var(--display);font-size:21px;letter-spacing:-.025em}.channel span{font-size:11px}.channel b{color:#a14168}
/* Events: a bound planner with a red month tab and blue date markers. */
.calendar-section{position:relative;border:1px solid #a9b9d2;border-radius:30px;background:#f8faff;padding:38px 27px 25px;margin-top:48px;margin-bottom:65px;box-shadow:0 7px 0 #d3dbea}
.calendar-section:before,.calendar-section:after{content:'';position:absolute;top:-19px;width:13px;height:37px;border:4px solid #314c7b;border-radius:13px;background:#d5e1f1;box-shadow:4px 2px 0 #8b9dbc33}.calendar-section:before{left:52px}.calendar-section:after{right:52px}
.calendar-toolbar{margin-bottom:25px}.calendar-toolbar h2{background:#b63352;color:#fff;border-radius:14px;padding:12px 21px;font:400 26px 'Righteous',var(--display);min-width:270px}.calendar{border-color:#c6d1e2;border-radius:16px;overflow:hidden}.weekday{background:#253e6a;color:#eaf0fb;font-size:10px;letter-spacing:.12em;padding:13px 5px}.calendar-cell{border-color:#d5ddea;background:#fff;min-height:106px;transition:background .18s}.calendar-cell.outside{background:#e9edf5;color:#8d9cb5}.calendar-cell:hover{background:#e5edfa}.calendar-cell.chosen{box-shadow:inset 0 0 0 2px #b44168;background:#f8edf3}.calendar-cell.today .day-number{background:#4568a0;color:#fff;border:2px solid #cfddf3}.day-number{font-family:var(--display);font-size:15px}.event-list{border:0;border-top:1px solid #b9c7de;background:transparent;padding:26px 0 0}.event-list h3{font-size:24px}.event-list p{font-size:14px;color:var(--muted)}.event-chip{background:#eed6e2;color:#7e2f55;border-radius:8px}
/* Representatives: a locator motif and clearly highlighted candidate paths. */
body[data-page="representatives.html"] .page-intro{overflow:hidden}
body[data-page="representatives.html"] .page-intro:after{content:'';position:absolute;right:25px;top:42px;width:150px;height:150px;border:1px solid #a0b4d3;border-radius:50%;background:radial-gradient(circle,#c54165 0 6px,#f6f8fc 7px 12px,#91afd700 13px),repeating-radial-gradient(circle,transparent 0 27px,#adc0dc 28px 29px,transparent 30px 48px);opacity:.75}
.address-search{border:0;border-radius:30px;background:#253e69;color:#eaf1fb;padding:31px 35px;position:relative;overflow:hidden;margin-top:15px;margin-bottom:40px;box-shadow:inset 6px 0 #7198cb}
.address-search:after{content:'';position:absolute;width:160px;height:160px;border:18px solid #e0bcdf15;border-radius:50%;right:-48px;top:-65px;pointer-events:none}
.address-search h2{color:#f3f7fe;font-size:29px;margin-bottom:23px}.address-search form{position:relative;z-index:1}.address-search label{color:#dce7f9;font-size:12px}.address-search .muted{color:#bfcee7}.address-search .button{background:#bd3c60;border-color:#bd3c60;min-width:200px}.address-search input{background:#f5f8ff;border-color:#b1c6e6;border-radius:30px}.address-search .address-controls{gap:15px;margin-top:11px}.address-match h3{color:#f3f7fe}.address-race{border-radius:19px;background:#f4f7fe}.address-race .text-link{font-size:12px}.address-search #lookup-status{font-size:13px;margin:0}
.browse-heading{font-size:30px}.breadcrumbs button{border-radius:20px;padding:5px 12px;background:#e2e9f4;text-decoration:none;font-size:12px}.cascade{border:1px solid #adbfda;border-radius:24px;background:#e0e7f2;height:65vh;margin-bottom:22px;min-height:490px}.race-column{border-color:#c9d4e5;background:#f7f9fd}.race-column h2{background:#e2e9f6;color:#385781;font-family:var(--display);font-size:13px;letter-spacing:.07em;padding:20px}.race-option{background:#f7f9fd;border-bottom-color:#e0e6f0;padding:15px 18px;font-size:13px}.race-option:hover{background:#e7eefb}.race-option.selected{background:#294c84}.race-option.has-candidate{background:#d3e6fd;color:#234d87;box-shadow:inset 5px 0 #527ebe}.race-option.has-candidate:hover{background:#bdd8f9}.race-option.has-candidate.selected{background:#315e9c;color:#fff;box-shadow:inset 5px 0 #b4d7ff}.candidate-mark{background:#3667a7;color:#fff}.has-candidate.selected .candidate-mark{background:#c2dfff;color:#234d87}.race-search input{border-radius:25px}.race-card h3{font-family:var(--display);font-size:37px}.race-card h3 em{color:#b73759}.race-card p{line-height:1.75}.candidate-legend{font-size:12px}.race-placeholder{font-size:15px}.race-note{font-size:12px}.representatives-section{padding-bottom:36px}
/* A quiet matching confirmation page. */
body[data-page="thank-you.html"] .page-intro{border-bottom:4px solid transparent;border-image:linear-gradient(90deg,#b23456,#e3b0c9,#fff,#82addd,#354f87) 1;min-height:300px}body[data-page="thank-you.html"] .page-intro h1{color:#536498}
/* The accepted legislation layout keeps its original proportions. */
body[data-page="legislation.html"] .intro{padding-bottom:44px}body[data-page="legislation.html"] .display h2{color:#fff}body[data-page="legislation.html"] .display p{margin-bottom:0}body[data-page="legislation.html"] .intro-copy h2{font-size:25px;letter-spacing:-.045em}body[data-page="legislation.html"] .intro-copy p{margin-bottom:0}body[data-page="legislation.html"] .eyebrow{margin-bottom:22px}body[data-page="legislation.html"] .display-top{line-height:1.5}body[data-page="legislation.html"] .display{line-height:1.5}
@media(max-width:1150px){.hero-art{min-height:360px}.masthead .donate{margin-left:0}.page-intro h1{max-width:75%}.video-feature{gap:32px}.video-feature h2{font-size:34px}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.section{padding-block:32px}.page-intro{padding-top:38px;padding-bottom:29px;margin-bottom:24px}.page-intro h1{font-size:52px;max-width:100%}.page-intro .lead{font-size:15px;max-width:100%}.app-footer{grid-template-columns:1fr;padding:30px 20px}.app-footer .footer-links{justify-content:flex-start}.hero-art{min-height:330px;width:100%;max-width:420px}.hero-art img{max-height:260px;width:90%}.home-bands i{border-width:16px}.home-bands i:nth-child(n){border-width:15px}body[data-page="index.html"] .hero{grid-template-columns:1fr;padding:38px 0 45px;gap:25px}body[data-page="index.html"] .hero h1{font-size:58px}.big-number{font-size:23px}.navy-band p{font-size:10px;line-height:1.5}.navy-band .three-col{gap:10px}.three-col>div+div{padding-left:14px}.support-band{border-radius:55px 55px 0 0}.support-band h2{font-size:33px}.card{border-radius:22px;padding:24px}.page-intro:after{display:none}.join-panel summary{font-size:22px;padding:23px 20px}.join-panel .form-body{padding:22px}.join-list{padding-top:0}.funding-summary{grid-template-columns:1fr;padding:29px 24px;border-radius:27px}.funding-goal{padding:23px 0 0}.funding-summary strong{font-size:32px}.gantt{padding:20px}.video-feature{grid-template-columns:1fr;gap:28px}.video-feature .video-frame{border-width:10px;border-radius:34px;margin-bottom:9px}.channel-grid{grid-template-columns:repeat(2,1fr)}.channel{padding:21px 17px}.calendar-section{margin-top:40px;padding:29px 12px 22px}.calendar-toolbar{gap:16px}.calendar-toolbar h2{font-size:19px;min-width:170px;padding:10px 12px}.calendar-toolbar .actions{gap:7px;flex-wrap:nowrap}.calendar-toolbar .button{padding:7px 12px}.calendar-cell{min-height:77px;padding:5px}.calendar-toolbar #today{min-height:34px;font-size:11px}.address-search{padding:27px 22px}.address-search h2{font-size:27px}.address-controls{flex-direction:column}.address-search .button{min-width:0}.cascade{height:570px}.race-column,.race-column.end{flex-basis:100%}.race-placeholder{display:none}.address-races{grid-template-columns:1fr}.funding-total strong{font-size:29px}}

/* Original snarling badger over the Home rainbow; compact badge stays in the banner. */
.hero-art img.hero-original-badger{width:110%;height:auto;max-width:110%;max-height:none;transform:translate(-3%,24px);filter:drop-shadow(0 12px 14px #172c5024)}
@media(max-width:760px){.hero-art img.hero-original-badger{width:110%;max-height:none;transform:translate(-3%,14px)}}

