@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.__className_7d5eea{font-family:Fraunces;font-style:normal}.__variable_7d5eea{--font-fraunces:"Fraunces"}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.__className_006767{font-family:IBM Plex Sans;font-style:normal}.__variable_006767{--font-ibm-plex-sans:"IBM Plex Sans"}:root{--ink:#14213d;--bg:#f3f5f4;--slate:#5b6b79;--hairline:#e8e6de;--accent:#0f7b6c;--accent-dark:#0a5a4f;--white:#fff}*{box-sizing:border-box;margin:0;padding:0}body,html{overflow-x:hidden;max-width:100vw}body{font-family:var(--font-ibm-plex-sans),-apple-system,sans-serif;background:var(--bg);color:var(--ink)}.page-wrapper{display:flex;flex-direction:column;min-height:100vh}main{flex:1 1}h1,h2,h3,h4,h5,h6{font-family:var(--font-fraunces),serif}.tabular-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid var(--hairline)}.header-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:baseline;gap:2px;text-decoration:none;color:var(--ink);flex-shrink:0}.logo-mark{font-family:var(--font-fraunces),serif;font-weight:700;font-size:24px;letter-spacing:-.02em;color:var(--ink)}.logo-mark .accent-dot{color:var(--accent)}.logo-tag{font-size:11px;font-weight:500;color:var(--slate);letter-spacing:.02em;margin-left:8px;padding-left:8px;border-left:1px solid var(--hairline);white-space:nowrap}.desktop-nav{display:flex;align-items:center;gap:4px}.nav-link{font-size:14.5px;font-weight:500;color:var(--ink);text-decoration:none;padding:10px 16px;border-radius:6px;position:relative;transition:color .15s ease}.nav-link:hover{color:var(--accent)}.nav-link.active{color:var(--accent-dark)}.nav-link.active:after{content:"";position:absolute;left:16px;right:16px;bottom:4px;height:2px;background:var(--accent);border-radius:2px}.nav-divider{width:1px;height:24px;background:var(--hairline);margin:0 8px}.header-actions{gap:12px}.header-actions,.search-btn{display:flex;align-items:center}.search-btn{gap:8px;background:var(--bg);border:1px solid var(--hairline);border-radius:8px;padding:9px 14px;font-family:inherit;font-size:13.5px;color:var(--slate);cursor:pointer;transition:border-color .15s ease,background .15s ease;white-space:nowrap}.search-btn:hover{border-color:var(--accent);background:var(--white)}.search-btn svg{width:15px;height:15px;flex-shrink:0;stroke:var(--slate)}.search-kbd{font-size:11px;color:var(--slate);background:var(--white);border:1px solid var(--hairline);border-radius:4px;padding:1px 5px;font-family:inherit}.live-badge{display:flex;align-items:center;gap:6px;background:#e1f5ee;color:var(--accent-dark);border-radius:20px;padding:6px 12px 6px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}.live-badge .live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hamburger-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0}.hamburger-btn span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}.hamburger-btn.open span:first-child{transform:translateY(7px) rotate(45deg)}.hamburger-btn.open span:nth-child(2){opacity:0}.hamburger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;max-height:0;overflow:hidden;background:var(--white);border-bottom:1px solid var(--hairline);transition:max-height .3s ease}.mobile-menu.open{max-height:480px}.mobile-menu-inner{padding:8px 24px 20px}.mobile-search{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--hairline);border-radius:8px;padding:12px 14px;margin-bottom:16px}.mobile-search svg{width:16px;height:16px;stroke:var(--slate);flex-shrink:0}.mobile-search input{border:none;background:none;outline:none;font-family:inherit;font-size:15px;color:var(--ink);width:100%}.mobile-search input::placeholder{color:var(--slate)}.mobile-nav-link{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;font-size:16px;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hairline)}.mobile-nav-link:last-of-type{border-bottom:none}.mobile-nav-link.active{color:var(--accent-dark)}.mobile-nav-link svg{width:16px;height:16px;stroke:var(--slate)}.mobile-live-badge{display:flex;align-items:center;gap:8px;background:#e1f5ee;color:var(--accent-dark);border-radius:8px;padding:12px 14px;font-size:13.5px;font-weight:600;margin-top:16px}.mobile-live-badge .live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:pulse 2s ease-in-out infinite}@media (max-width:900px){.desktop-nav,.live-badge,.search-btn{display:none}.hamburger-btn{display:flex}.mobile-menu{display:block}.header-inner{height:64px;padding:0 16px}.logo-tag{display:none}}.site-footer{background:var(--ink);color:var(--white);margin-top:40px}.footer-inner{max-width:1200px;margin:0 auto;padding:56px 24px 0}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:32px;gap:32px;padding-bottom:40px}.footer-brand-col{padding-right:16px}.footer-logo{display:flex;align-items:baseline;gap:2px;text-decoration:none;margin-bottom:14px}.footer-logo-mark{font-family:var(--font-fraunces),serif;font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--white)}.footer-logo-mark .accent-dot{color:#5dcaa5}.footer-brand-desc{font-size:13.5px;line-height:1.65;color:hsla(0,0%,100%,.6);max-width:280px;margin-bottom:20px}.footer-social{display:flex;gap:10px}.footer-social a{width:34px;height:34px;border-radius:50%;border:1px solid hsla(0,0%,100%,.18);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:border-color .15s ease,background .15s ease}.footer-social a:hover{border-color:#5dcaa5;background:rgba(93,202,165,.1)}.footer-social svg{width:15px;height:15px;stroke:hsla(0,0%,100%,.75)}.footer-col-title{font-size:12.5px;font-weight:600;letter-spacing:.02em;color:hsla(0,0%,100%,.5);margin-bottom:16px}.footer-col ul{list-style:none}.footer-col li{margin-bottom:11px}.footer-col a{font-size:14px;color:hsla(0,0%,100%,.82);text-decoration:none;transition:color .15s ease}.footer-col a:hover{color:#5dcaa5}.footer-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:hsla(0,0%,100%,.55);background:hsla(0,0%,100%,.06);border-radius:4px;padding:2px 7px;margin-left:6px;vertical-align:middle}.footer-datastrip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:20px 0;border-top:1px solid hsla(0,0%,100%,.1)}.datastrip-text{display:flex;align-items:center;gap:10px;font-size:13px;color:hsla(0,0%,100%,.55)}.datastrip-text svg{width:16px;height:16px;stroke:#5dcaa5;flex-shrink:0}.datastrip-text strong{color:hsla(0,0%,100%,.85);font-weight:500}.footer-newsletter{display:flex;gap:8px}.footer-newsletter input{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.18);border-radius:6px;padding:9px 12px;font-family:inherit;font-size:13px;color:var(--white);outline:none;width:220px}.footer-newsletter input::placeholder{color:hsla(0,0%,100%,.4)}.footer-newsletter button{background:#0f7b6c;border:none;border-radius:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;color:var(--white);cursor:pointer;white-space:nowrap;transition:background .15s ease}.footer-newsletter button:hover{background:#0a5a4f}.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 0;border-top:1px solid hsla(0,0%,100%,.1);font-size:12.5px;color:hsla(0,0%,100%,.45)}.footer-legal-links{display:flex;gap:20px}.footer-legal-links a{color:hsla(0,0%,100%,.45);text-decoration:none}.footer-legal-links a:hover{color:hsla(0,0%,100%,.8)}@media (max-width:900px){.footer-top{grid-template-columns:repeat(2,1fr);row-gap:32px}.footer-brand-col{grid-column:1/-1;padding-right:0}.footer-datastrip{flex-direction:column;align-items:flex-start}.footer-newsletter{width:100%}.footer-newsletter input{flex:1 1;width:auto}}@media (max-width:520px){.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column;align-items:flex-start}}.ward-page-container{max-width:1200px;margin:0 auto;padding:48px 24px 80px}.breadcrumb{font-size:13px;color:var(--slate);margin-bottom:24px}.breadcrumb a{color:var(--accent);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .separator{margin:0 8px;opacity:.5}.ward-title{font-size:36px;font-weight:700;letter-spacing:-.02em;margin-bottom:16px}.ward-meta{display:flex;gap:16px;font-size:14px;color:var(--slate);margin-bottom:40px;flex-wrap:wrap}.meta-item{background:var(--white);border:1px solid var(--hairline);padding:6px 12px;border-radius:6px}.meta-item strong{color:var(--ink);font-weight:600}.section-title{font-size:20px;font-weight:600;border-bottom:2px solid var(--hairline);padding-bottom:12px;margin-bottom:24px}.top-candidates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:24px;gap:24px;margin-bottom:56px}.candidate-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;position:relative;overflow:hidden;display:flex;flex-direction:column}.winner-card{border-color:var(--accent);box-shadow:0 4px 12px rgba(15,123,108,.08)}.card-badge{background:var(--accent);color:var(--white);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:6px 16px;align-self:flex-start;border-bottom-right-radius:8px}.runner-badge{background:var(--slate)}.card-content{padding:20px 24px;flex:1 1;display:flex;flex-direction:column}.candidate-name{font-size:22px;font-weight:600;margin-bottom:12px;line-height:1.2}.party-tag{font-size:14px;color:var(--slate);border-left:3px solid var(--slate);padding-left:10px;margin-bottom:24px}.votes-box{margin-top:auto;border-top:1px solid var(--hairline);padding-top:16px}.vote-count{font-family:var(--font-fraunces),serif;font-size:32px;font-weight:600;color:var(--ink);line-height:1}.vote-label{font-size:13px;color:var(--slate);margin-top:4px}.margin-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:24px}.margin-title{font-size:14px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.margin-value{font-family:var(--font-fraunces),serif;font-size:36px;font-weight:700;color:var(--ink);margin-bottom:32px;line-height:1}.margin-value span{font-family:var(--font-ibm-plex-sans),sans-serif;font-size:16px;font-weight:500;color:var(--slate)}.vote-share-chart{display:flex;flex-direction:column;gap:16px}.chart-bar-row{display:flex;align-items:center;gap:12px}.chart-label{width:40px;font-size:12px;font-weight:600;color:var(--slate);text-align:right}.chart-track{flex:1 1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.chart-fill{height:100%;border-radius:4px}.chart-pct{width:48px;font-size:13px;font-weight:600;color:var(--ink)}.demographics-section{margin-bottom:56px}.demo-grid{display:flex;gap:24px;flex-wrap:wrap}.demo-box{background:var(--white);border:1px solid var(--hairline);border-radius:8px;padding:20px 24px;min-width:200px;flex:1 1}.demo-val{font-family:var(--font-fraunces),serif;font-size:28px;font-weight:600;color:var(--ink);margin-bottom:4px}.demo-lbl{font-size:13px;color:var(--slate)}.candidates-section{margin-bottom:56px}.table-responsive{background:var(--white);border:1px solid var(--hairline);border-radius:12px}.candidates-table{border-collapse:collapse;text-align:left}.candidates-table td,.candidates-table th{padding:16px 20px;border-bottom:1px solid var(--hairline)}.candidates-table th{font-size:13px;color:var(--slate);font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--bg)}.candidates-table tr:last-child td{border-bottom:none}.candidate-td-name{font-size:16px;font-weight:600;color:var(--ink);margin-bottom:6px}.candidate-address-details summary{font-size:13px;color:var(--accent);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.candidate-address-details p{font-size:13px;color:var(--slate);margin-top:8px;line-height:1.5}.table-party-badge{display:inline-block;padding-left:10px;border-left:3px solid;font-size:14px;color:var(--ink)}.text-right{text-align:right}.text-alert{color:#b23a2e}.font-bold{font-weight:600}@media (max-width:768px){.ward-title{font-size:28px}.top-candidates-grid{grid-template-columns:1fr}}.directory-page-container{max-width:1200px;margin:0 auto;padding:48px 24px 80px}.dir-header{margin-bottom:32px}.dir-title{font-size:40px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.1;margin-bottom:8px}.dir-subtitle{font-size:20px;color:var(--slate);font-weight:500}.key-facts-strip{display:flex;flex-wrap:wrap;gap:16px;background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:24px;margin-bottom:48px}.fact-item{flex:1 1;min-width:160px;border-right:1px solid var(--hairline);padding-right:16px}.fact-item:last-child{border-right:none;padding-right:0}.fact-lbl{font-size:13px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.fact-val{font-family:var(--font-fraunces),serif;font-size:24px;font-weight:600;color:var(--ink)}.flex-fact{display:flex;align-items:center;gap:8px}.party-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.dir-main-grid{display:grid;grid-template-columns:1fr 320px;grid-gap:40px;gap:40px}.alliance-section{margin-bottom:56px}.alliance-blocks{display:flex;flex-direction:column;gap:24px}.alliance-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:24px}.alliance-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.alliance-card-header h3{font-family:var(--font-ibm-plex-sans),sans-serif;font-size:20px;font-weight:600;display:flex;align-items:center;gap:12px}.bloc-tag{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--bg);padding:4px 8px;border-radius:4px;color:var(--slate)}.alliance-total{font-family:var(--font-fraunces),serif;font-size:32px;font-weight:700}.alliance-total span{font-family:var(--font-ibm-plex-sans),sans-serif;font-size:14px;font-weight:500;color:var(--slate)}.alliance-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;margin-bottom:24px;background:var(--bg)}.alliance-bar-segment{height:100%}.alliance-breakdown{display:flex;flex-wrap:wrap;gap:16px 24px}.breakdown-item{display:flex;align-items:center;gap:8px;font-size:14px}.party-seats{font-weight:600;margin-left:4px}.sidebar-widget{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:24px;margin-bottom:24px}.widget-title{font-size:16px;font-weight:600;margin-bottom:16px;border-bottom:1px solid var(--hairline);padding-bottom:12px}.widget-list{list-style:none;font-size:14px;color:var(--ink)}.widget-list li{margin-bottom:8px}.widget-list strong{color:var(--slate)}.widget-pop{margin-top:20px;background:var(--bg);border-radius:8px;padding:16px}.widget-pop h4{font-family:var(--font-ibm-plex-sans),sans-serif;font-size:12px;text-transform:uppercase;color:var(--slate);margin-bottom:12px}.pop-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.pop-row:last-child{margin-bottom:0}.timeline-list{list-style:none;font-size:14px}.timeline-list li{position:relative;padding-left:20px;margin-bottom:16px}.timeline-list li:before{left:0;top:6px;width:8px;height:8px;border-radius:50%}.timeline-list li:after,.timeline-list li:before{content:"";position:absolute;background:var(--hairline)}.timeline-list li:after{left:3px;top:14px;bottom:-16px;width:2px}.timeline-list li:last-child:after{display:none}.tl-date{font-weight:600;color:var(--ink);margin-bottom:2px}.tl-event{color:var(--slate)}.tl-highlight:before{background:var(--slate)}.tl-highlight-accent:before{background:var(--accent)}.ward-list-container{background:var(--white);border:1px solid var(--hairline);border-radius:12px;overflow:hidden}.ward-list-header{padding:24px;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.ward-list-header .section-title{border-bottom:none;padding-bottom:0;margin-bottom:0}.ward-search input{padding:10px 16px;border:1px solid var(--hairline);border-radius:8px;font-family:inherit;font-size:14px;width:300px;max-width:100%}.ward-search input:focus{outline:none;border-color:var(--accent)}.view-link{color:var(--accent);text-decoration:none;font-size:13px;font-weight:600}.view-link:hover{text-decoration:underline}@media (max-width:900px){.dir-main-grid{grid-template-columns:1fr}.fact-item{min-width:40%;border-right:none}}.homepage-container{max-width:1200px;margin:0 auto;padding:64px 24px 80px}.home-hero{max-width:680px;margin-bottom:64px}.home-title{font-size:48px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.1;margin-bottom:20px}.home-subtitle{font-size:18px;color:var(--slate);line-height:1.6}.featured-section{margin-bottom:64px}.featured-card{background:var(--white);border:1px solid var(--accent);border-radius:16px;display:flex;overflow:hidden;box-shadow:0 12px 32px rgba(15,123,108,.08)}.featured-content{padding:40px;flex:1 1}.featured-header{margin-bottom:32px}.featured-tag{display:inline-block;background:#e1f5ee;color:var(--accent-dark);font-size:11px;font-weight:700;letter-spacing:.05em;padding:6px 12px;border-radius:4px;margin-bottom:12px}.featured-header h3{font-size:28px;font-weight:600}.featured-stats{display:flex;gap:32px;margin-bottom:40px;flex-wrap:wrap}.feat-stat{display:flex;flex-direction:column}.feat-val{font-family:var(--font-fraunces),serif;font-size:32px;font-weight:700;color:var(--ink)}.feat-lbl{font-size:13px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em}.highlight-stat .feat-val{color:var(--accent)}.primary-cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--white);padding:12px 24px;border-radius:8px;font-weight:600;text-decoration:none;transition:background .15s ease}.primary-cta:hover{background:var(--accent-dark)}.primary-cta svg{width:18px;height:18px;stroke:currentColor}.featured-graphic{width:320px;background:var(--bg);display:flex;align-items:center;justify-content:center;border-left:1px solid var(--hairline)}.graphic-placeholder{font-family:var(--font-fraunces),serif;font-size:80px;font-weight:700;color:rgba(91,107,121,.1)}.states-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:24px;gap:24px}.state-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:24px}.state-card h3{font-size:18px;font-weight:600;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--hairline)}.state-links{list-style:none}.state-links li{margin-bottom:12px}.state-links li:last-child{margin-bottom:0}.state-links a{color:var(--ink);text-decoration:none;font-weight:500;display:flex;align-items:center;transition:color .15s}.state-links a:hover{color:var(--accent)}.state-links a:before{content:"→";margin-right:8px;color:var(--accent);opacity:0;transition:opacity .15s}.state-links a:hover:before{opacity:1}.coming-soon{color:var(--slate);font-size:14px;font-style:italic}.disabled-card{opacity:.6;background:var(--bg)}@media (max-width:768px){.featured-card{flex-direction:column}.featured-graphic{width:100%;height:160px;border-left:none;border-top:1px solid var(--hairline)}.home-title{font-size:36px}}.text-page-container{max-width:800px;margin:0 auto;padding:64px 24px 100px}.text-page-container h1{font-size:40px;font-weight:700;margin-bottom:8px;color:var(--ink);letter-spacing:-.02em}.text-page-container .last-updated{font-size:14px;color:var(--slate);margin-bottom:40px;font-weight:500}.text-page-container h2{font-family:var(--font-ibm-plex-sans),sans-serif;font-size:22px;font-weight:600;margin:40px 0 16px;color:var(--ink);border-bottom:1px solid var(--hairline);padding-bottom:8px}.text-page-container p{font-size:16px}.text-page-container p,.text-page-container ul{line-height:1.7;color:var(--ink);margin-bottom:16px}.text-page-container ul{padding-left:24px}.text-page-container li{margin-bottom:8px}.text-page-container a{color:var(--accent);text-decoration:none;font-weight:500}.text-page-container a:hover{text-decoration:underline}@media (max-width:768px){.text-page-container h1{font-size:32px}}.search-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(20,33,61,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;justify-content:center;align-items:flex-start;padding-top:10vh}.search-modal{width:calc(100% - 32px);max-width:600px;background:var(--white);border-radius:12px;box-shadow:0 20px 40px rgba(20,33,61,.15);overflow:hidden;margin:0 auto;animation:modalIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.search-modal-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--hairline);gap:16px}.search-icon{width:20px;height:20px;stroke:var(--slate);flex-shrink:0}.search-modal-header input{flex:1 1;border:none;background:none;outline:none;font-family:inherit;font-size:18px;color:var(--ink)}.search-modal-header input::placeholder{color:var(--slate);opacity:.7}.search-close-btn{background:var(--bg);border:1px solid var(--hairline);border-radius:4px;padding:4px 8px;font-size:11px;color:var(--slate);font-weight:600;cursor:pointer}.search-results ul{list-style:none;max-height:360px;overflow-y:auto;padding:8px 0}.search-results button{width:100%;display:flex;align-items:center;gap:16px;padding:12px 20px;background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.search-results button:hover{background:var(--bg)}.search-ward-no{font-weight:600;color:var(--ink);min-width:70px}.search-empty,.search-ward-name{color:var(--slate);font-size:15px}.search-empty{padding:32px 20px;text-align:center}.alliance-card,.dir-main-content,.dir-sidebar,.ward-page-container>*{min-width:0;max-width:100%}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.candidate-name,.dir-title,.ward-title,.widget-title,h1,h2,h3{word-wrap:break-word;overflow-wrap:break-word}.candidates-table{width:100%;min-width:600px}@media (max-width:480px){.dir-header{flex-direction:column;align-items:flex-start!important}.dir-title{font-size:32px}}.dir-main-grid>*,.ward-main-grid>*{min-width:0}@media (max-width:768px){.directory-page-container,.homepage-container,.text-page-container,.ward-page-container{padding:24px 16px 64px}}img{max-width:100%;height:auto}.header-logo-img{height:72px!important;width:auto!important}.footer-logo-img{height:92px!important;width:auto!important}