@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-Regular.woff2) format("woff2"),url(../fonts/FabricSans-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-RegularItalic.woff2) format("woff2"),url(../fonts/FabricSans-RegularItalic.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-Medium.woff2) format("woff2"),url(../fonts/FabricSans-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-MediumItalic.woff2) format("woff2"),url(../fonts/FabricSans-MediumItalic.woff) format("woff");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-Bold.woff2) format("woff2"),url(../fonts/FabricSans-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-BoldItalic.woff2) format("woff2"),url(../fonts/FabricSans-BoldItalic.woff) format("woff");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-Black.woff2) format("woff2"),url(../fonts/FabricSans-Black.woff) format("woff");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:"Fabric Sans";src:url(../fonts/FabricSans-BlackItalic.woff2) format("woff2"),url(../fonts/FabricSans-BlackItalic.woff) format("woff");font-weight:900;font-style:italic;font-display:swap}:root{--color-primary-darker:hsl(217, 100%, 39%);--color-primary-dark:hsl(217, 100%, 45%);--color-primary:hsl(217, 100%, 51%);--color-primary-light:hsl(217, 100%, 67%);--color-primary-lighter:hsl(217, 88%, 78%);--color-primary-lightest:hsl(217, 100%, 91%);--color-purple-darker:hsl(245, 66%, 55%);--color-purple-dark:hsl(245, 66%, 61%);--color-purple:hsl(245, 66%, 67%);--color-purple-light:hsl(245, 66%, 73%);--color-purple-lighter:hsl(245, 66%, 79%);--color-success:hsl(170, 78%, 36%);--color-warning:hsl(35, 79%, 66%);--color-error:hsl(342, 89%, 48%);--color-bg:hsl(230, 15%, 16%);--color-bg-dark:hsl(210, 15%, 10%);--color-bg-light:hsl(210, 15%, 18%);--color-bg-lighter:hsl(208, 14%, 21%);--color-surface:hsl(230, 14%, 20%);--color-surface-dark:hsl(230, 14%, 16%);--color-surface-light:hsl(230, 14%, 24%);--color-text:hsl(228, 33%, 97%);--color-text-muted:hsl(217, 8%, 70%);--color-text-subtle:hsl(210, 6%, 50%);--color-border:hsla(0, 0%, 100%, 0.1);--color-border-light:hsla(0, 0%, 100%, 0.05);--shadow-color:hsla(217, 100%, 51%, 0.2);--shadow-color-strong:hsla(217, 100%, 51%, 0.3);--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-purple) 100%);--space-4xs:0.125rem;--space-3xs:0.25rem;--space-2xs:0.5rem;--space-xs:0.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.25rem;--space-xl:3.5rem;--space-2xl:5.75rem;--space-3xl:9.25rem;--radius-sm:0.1875rem;--radius-md:0.375rem;--radius-lg:0.75rem;--radius-xl:1rem}[data-theme=light]{--color-bg:hsl(20, 60%, 98%);--color-bg-dark:hsl(24, 13%, 92%);--color-bg-light:hsl(15, 7%, 99%);--color-bg-lighter:hsl(0, 0%, 100%);--color-surface:hsl(0, 0%, 100%);--color-surface-dark:hsl(24, 13%, 95%);--color-surface-light:hsl(0, 0%, 100%);--color-text:hsl(208, 21%, 14%);--color-text-muted:hsl(210, 9%, 40%);--color-text-subtle:hsl(240, 1%, 56%);--color-border:hsla(0, 0%, 0%, 0.1);--color-border-light:hsla(0, 0%, 0%, 0.05);--shadow-color:hsla(217, 100%, 51%, 0.15);--shadow-color-strong:hsla(217, 100%, 51%, 0.25)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:"Fabric Sans",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;transition:background-color .3s ease,color .3s ease}.container{max-width:1200px;margin:0 auto;padding:var(--space-xl) var(--space-md)}@media (max-width:768px){.container{padding:var(--space-md) var(--space-sm)}}.intro{text-align:center;max-width:800px;margin:0 auto var(--space-xl);font-size:1.2rem;color:var(--color-text-muted)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:var(--space-md)}@media (max-width:560px){.cards-grid{grid-template-columns:1fr}}.hero{background:var(--gradient-primary);padding:var(--space-3xl) var(--space-md);text-align:center;position:relative;overflow:hidden}.hero::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 50%,hsla(0,0%,100%,.1) 0,transparent 50%)}.hero-content{position:relative;max-width:900px;margin:0 auto}.hero h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;margin-bottom:var(--space-md);line-height:1.2;color:var(--color-white,#fff)}.hero-subtitle{font-size:clamp(1.1rem,2vw,1.4rem);opacity:.9;color:var(--color-white,#fff)}@media (max-width:768px){.hero{padding:var(--space-xl) var(--space-sm)}}.card{background:var(--color-surface);border-radius:var(--radius-xl);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease;border:1px solid var(--color-border);display:flex;flex-direction:column}.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px var(--shadow-color)}.card-content{padding:var(--space-md);flex:1}.card-content h2{font-size:1.5rem;font-weight:600;margin-bottom:var(--space-sm);color:var(--color-text)}.card-content p{color:var(--color-text-muted);margin-bottom:var(--space-sm)}.card-content p:last-child{margin-bottom:0}.card-content ul{list-style:none;margin-top:var(--space-sm)}.card-content ul li{padding:var(--space-2xs) 0;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-2xs)}.card-content ul li::before{content:"";width:8px;height:8px;background:var(--color-primary);border-radius:50%}.card-content ul li strong{color:var(--color-primary);font-size:1.2rem}.card-content strong{color:var(--color-text)}@media (max-width:768px){.card-content{padding:var(--space-sm)}}.signer-display{background:linear-gradient(180deg,hsla(217,100%,51%,.1) 0,hsla(245,66%,67%,.1) 100%);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border);min-height:80px;display:flex;align-items:center;margin-top:auto}.signer-animation{width:100%;position:relative;overflow:hidden;height:48px}.signer-item{position:absolute;width:100%;opacity:0;transform:translateY(20px);animation:signerFadeIn 4s ease-in-out}.signer-item .signer-text{font-size:.95rem;color:var(--color-text)}.signer-item .signer-text .name{font-weight:600;color:var(--color-primary)}.signer-item .signer-text .town{color:var(--color-purple)}.signer-item .signer-text .legislators{color:var(--color-text-muted);font-size:.9rem;display:block;margin-top:var(--space-3xs)}@keyframes signerFadeIn{0%{opacity:0;transform:translateY(16px)}8%{opacity:1;transform:translateY(0)}92%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-16px)}}.donut-container{display:flex;flex-direction:column;align-items:center;margin-top:var(--space-md)}.donut-container--small{margin-top:0}.donut-stat{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-md)}.donut-stat+.donut-stat{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.donut-stat .donut{flex-shrink:0}.donut-stat-text{font-size:1.1rem;color:var(--color-text);line-height:1.5;margin:0}.donut-stat-text strong{color:var(--color-primary)}@media (max-width:480px){.donut-stat{flex-direction:column;text-align:center}.donut-stat-text{font-size:1rem}}.donut-row{display:flex;justify-content:space-around;align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap}@media (max-width:768px){.donut-row{gap:var(--space-sm);justify-content:center}}.donut{position:relative;width:140px;height:140px}.donut--small{width:100px;height:100px}@media (max-width:768px){.donut--small{width:80px;height:80px}}.donut svg{width:100%;height:100%;transform:rotate(-90deg)}.donut .donut-bg{fill:none;stroke:var(--color-border);stroke-width:3}.donut .donut-progress{fill:none;stroke:url(#donut-gradient);stroke-width:3;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.5s ease-out}.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.donut-value{font-size:2.2rem;font-weight:700;color:var(--color-text)}.donut--small .donut-value{font-size:1.5rem}@media (max-width:768px){.donut--small .donut-value{font-size:1.2rem}}.donut-symbol{font-size:1.2rem;font-weight:600;color:var(--color-primary)}.donut--small .donut-symbol{font-size:.9rem}.donut-label{margin-top:var(--space-xs);font-size:.9rem;color:var(--color-text-muted);text-align:center;max-width:150px}.donut-container--small .donut-label{font-size:.8rem;max-width:100px}.cta{margin-top:var(--space-xl);text-align:center}.counter{display:inline-flex;flex-direction:column;align-items:center;background:var(--gradient-primary);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-xl);box-shadow:0 10px 40px var(--shadow-color-strong)}.counter-number{font-size:3.5rem;font-weight:700;line-height:1;margin-bottom:var(--space-2xs);color:#fff}.counter-label{font-size:1.1rem;opacity:.9;color:#fff}@media (max-width:768px){.counter{padding:var(--space-md) var(--space-lg)}.counter-number{font-size:2.5rem}}.tabs{display:flex;gap:var(--space-2xs);margin-bottom:var(--space-sm);flex-wrap:wrap}.tab-btn{padding:var(--space-xs) var(--space-sm);background:0 0;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-family:inherit;font-size:.95rem;cursor:pointer;transition:all .2s ease}.tab-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.tab-btn.active{background:var(--gradient-primary);border-color:transparent;color:#fff}@media (max-width:500px){.tab-btn{padding:var(--space-2xs) var(--space-sm);font-size:.85rem;flex:1;text-align:center}}.tab-content{display:none}.tab-content.active{display:block}.legislator-section{margin-top:var(--space-2xl)}.legislator-section h2{font-size:1.8rem;font-weight:600;margin-bottom:var(--space-sm);color:var(--color-text)}.legislator-section .legislator-intro{color:var(--color-text-muted);margin-bottom:var(--space-md);line-height:1.7}.legislator-table{width:100%;border-collapse:collapse;font-size:.95rem}.legislator-table td,.legislator-table th{padding:var(--space-xs) var(--space-sm);text-align:left;border-bottom:1px solid var(--color-border)}.legislator-table th{font-weight:600;color:var(--color-text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.legislator-table td{color:var(--color-text)}.legislator-table tbody tr{transition:background-color .2s ease}.legislator-table tbody tr:hover{background-color:hsla(217,100%,51%,.05)}.legislator-table td:last-child{font-weight:600;color:var(--color-primary)}@media (max-width:500px){.legislator-table{font-size:.875rem}.legislator-table td,.legislator-table th{padding:var(--space-xs) var(--space-2xs)}}.theme-toggle{position:fixed;top:var(--space-sm);right:var(--space-sm);z-index:100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;width:48px;height:48px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text);transition:all .3s ease;box-shadow:0 4px 12px var(--shadow-color)}.theme-toggle:hover{transform:scale(1.1)}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon{display:block}[data-theme=light] .theme-toggle .icon-sun{display:block}[data-theme=light] .theme-toggle .icon-moon{display:none}footer{text-align:center;padding:var(--space-lg) var(--space-md);color:var(--color-text-muted);border-top:1px solid var(--color-border);margin-top:var(--space-xl)}