*{box-sizing:border-box}html{scroll-padding-top:16px}body{margin:0;background:var(--paper);color:var(--ink);font:450 var(--fs-body) /1.55 var(--font);font-stretch:100%;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--o-gov);outline-offset:3px}.page-shell{width:min(100% - 40px,980px);min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.site-header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:var(--border) solid var(--line)}.wordmark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:26px;font-weight:900;font-stretch:125%;letter-spacing:-.02em}.brand-mark{width:40px;height:40px;flex:none}.ring{fill:none;stroke-width:6;stroke-linecap:round;path-length:100;stroke-dasharray:78 22;animation:ring-in .52s var(--ease-out) both}.ring-gov{stroke:var(--o-gov);stroke-dasharray:82 18;animation-delay:70ms}.ring-pres{stroke:var(--o-pres)}.ring-sen{stroke:var(--o-sen);stroke-dasharray:74 26;animation-delay:.14s}.ring-rep{stroke:var(--o-rep);stroke-dasharray:80 20;animation-delay:.21s}.ring-asm{stroke:var(--o-asm);stroke-dasharray:70 30;animation-delay:.28s}@keyframes ring-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.breadcrumbs a,.site-header nav a,.text-link{min-height:44px;display:inline-flex;align-items:center;font-weight:700;text-underline-offset:4px}main{flex:1 1;padding:48px 0 80px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.05}.eyebrow{margin-bottom:12px;color:var(--ink-2);font-size:var(--fs-min);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero{padding:24px 0 42px}.hero h1{max-width:10ch;margin-bottom:18px;font-size:var(--fs-display);font-weight:900;font-stretch:125%;letter-spacing:-.03em}.hero-copy{max-width:38ch;margin-bottom:28px;font-size:20px}.finder-box{max-width:720px;padding:24px;border:var(--border) solid var(--ink);border-radius:var(--r-l);background:var(--surface)}.finder{display:grid;gap:10px}.finder label{font-size:19px;font-weight:700;font-stretch:112%}.finder input{width:100%;min-height:56px;padding:12px 16px;border:var(--border) solid var(--ink);border-radius:var(--r-m);background:var(--surface);color:var(--ink);font:inherit}.finder-results{max-height:55vh;overflow:auto;margin:0;padding:0;border:var(--border) solid var(--line);border-radius:var(--r-m);list-style:none}.finder-results li+li{border-top:var(--border) solid var(--line)}.finder-results a{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;text-decoration:none}.finder-results small{color:var(--ink-2);font-size:14px;text-align:right}.empty-result{padding:14px 16px;color:var(--ink-2)}.section-heading{margin-bottom:24px}.section-heading h1,.section-heading h2{margin-bottom:10px;font-size:var(--fs-h2);font-weight:800;font-stretch:118%}.section-heading p{max-width:68ch;margin-bottom:0;color:var(--ink-2)}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 24px;color:var(--ink-2);font-size:15px}.breadcrumbs a{color:var(--ink)}.candidate-list,.constituency-list,.office-list{margin:0;padding:0;border:var(--border) solid var(--ink);border-radius:var(--r-l);background:var(--surface);list-style:none;overflow:hidden}.candidate-item+.candidate-item,.constituency-list li+li,.office-list li+li{border-top:var(--border) solid var(--line)}.constituency-link,.office-link{min-height:84px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 20px;text-decoration:none}.office-band{width:10px;height:48px;border-radius:var(--r-s);background:var(--office-color)}.constituency-copy,.office-copy{display:grid;gap:3px}.constituency-copy strong,.office-copy strong{font-size:19px;font-weight:700;font-stretch:104%}.constituency-copy small,.office-copy small,.office-count{color:var(--ink-2);font-size:14px}.office-count{text-align:right}.unavailable{opacity:.66}.unavailable .office-band{background:var(--line)}.ballot-office{overflow:hidden;border:var(--border) solid var(--ink);border-radius:var(--r-l);background:var(--surface)}.ballot-office>header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:18px 20px;background:var(--office-color);color:var(--office-text)}.ballot-office>header h2{margin:0;font-size:26px;font-weight:800;font-stretch:118%}.ballot-office>header p{margin:0;font-size:15px;font-weight:600}.ballot-order-note{margin:16px 0;color:var(--ink-2);font-size:14px}.candidate-summary{min-height:84px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 20px;cursor:pointer;list-style:none}.candidate-summary::-webkit-details-marker{display:none}.avatar{width:52px;height:52px;display:grid;place-items:center;border:var(--border) solid var(--ink);border-radius:50%;background:var(--paper);font-size:17px;font-weight:800}.candidate-identity{min-width:0}.candidate-name{display:block;font-size:var(--fs-name);font-weight:700;font-stretch:104%;line-height:1.2}.candidate-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px;color:var(--ink-2);font-size:15px}.party-badge{padding:0 6px;border:var(--border) solid var(--ink);border-radius:var(--r-s);color:var(--ink);font-size:var(--fs-min);font-weight:800;line-height:20px}.status-chip{padding:4px 10px;border:var(--border) solid;border-radius:99px;font-size:var(--fs-min);font-weight:700;white-space:nowrap}.status-on-list{color:var(--ok)}.status-review{color:var(--wait)}.candidate-details[open] .candidate-summary{padding-bottom:8px}.candidate-profile{display:grid;grid-template-columns:minmax(120px,160px) minmax(0,1fr);gap:8px 16px;margin:0;padding:4px 20px 20px 86px;font-size:16px}.candidate-profile dt{color:var(--ink-2)}.candidate-profile dd{min-width:0;margin:0;overflow-wrap:anywhere}.profile-action{grid-column:1/-1;margin-top:8px!important}.profile-action a{min-height:44px;display:inline-flex;align-items:center;font-weight:700;text-underline-offset:4px}.content-copy{max-width:72ch}.content-copy h2{margin-top:36px;margin-bottom:10px;font-size:24px}.content-copy li,.content-copy p{font-size:16px}.notice{padding:18px 20px;border-left:6px solid var(--o-gov);background:var(--surface)}.site-footer{display:grid;gap:6px;padding:20px 0 28px;border-top:var(--border) solid var(--line);color:var(--ink-2);font-size:14px}.site-footer p{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@media (hover:hover) and (pointer:fine){.candidate-summary:hover,.constituency-link:hover,.finder-results a:hover,.office-link:hover{background:var(--paper)}}.candidate-summary,.constituency-link,.finder-results a,.office-link{transition:background-color var(--dur-hover) var(--ease-out),transform var(--dur-press) var(--ease-out)}.candidate-summary:active,.constituency-link:active,.finder-results a:active,.office-link:active{transform:scale(var(--press-scale))}@media (max-width:560px){.page-shell{width:min(100% - 32px,980px)}main{padding-top:32px}.hero{padding-top:12px}.finder-box{padding:18px}.constituency-link,.office-link{grid-template-columns:10px minmax(0,1fr);gap:12px;padding:14px}.office-count{grid-column:2;text-align:left}.candidate-summary{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:14px}.avatar{width:44px;height:44px}.status-chip{grid-column:2;justify-self:start}.candidate-profile{grid-template-columns:1fr;gap:2px;padding:4px 16px 18px}.candidate-profile dt{margin-top:10px}.profile-action{margin-top:12px!important}}@media (prefers-reduced-motion:reduce){.ring{animation:none}.candidate-summary,.constituency-link,.finder-results a,.office-link{transition:none}.candidate-summary:active,.constituency-link:active,.finder-results a:active,.office-link:active{transform:none}}:root{color-scheme:light;--paper:#F2F4F7;--surface:#FFFFFF;--ink:#19174A;--ink-2:#55547A;--line:#D5D8E3;--o-pres:#0B7A45;--on-pres:#FFFFFF;--o-gov:#2450D8;--on-gov:#FFFFFF;--o-sen:#A61E6D;--on-sen:#FFFFFF;--o-rep:#F5B800;--on-rep:#19174A;--o-asm:#C8362B;--on-asm:#FFFFFF;--ok:#0B7A45;--wait:#8A5B00;--out:#A12A22;--font:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--fs-display:clamp(44px,10vw,84px);--fs-h2:clamp(28px,5vw,40px);--fs-name:20px;--fs-body:17px;--fs-detail:15px;--fs-min:13px;--r-s:6px;--r-m:14px;--r-l:28px;--border:2px;--ease-out:cubic-bezier(.23,1,.32,1);--dur-hover:120ms;--dur-press:140ms;--dur-enter:240ms;--dur-expand:220ms;--stagger:40ms;--press-scale:.97}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0E0D26;--surface:#17163A;--ink:#ECEBFA;--ink-2:#A9A8CF;--line:#2E2D5C;--o-pres:#3CC48A;--o-gov:#7C9BFF;--o-sen:#E36BB5;--o-rep:#FFC933;--o-asm:#FF7A6B;--on-pres:#0E0D26;--on-gov:#0E0D26;--on-sen:#0E0D26;--on-rep:#0E0D26;--on-asm:#0E0D26;--ok:#3CC48A;--wait:#E6B04A;--out:#FF8F85}}:root[data-theme=dark]{color-scheme:dark;--paper:#0E0D26;--surface:#17163A;--ink:#ECEBFA;--ink-2:#A9A8CF;--line:#2E2D5C;--o-pres:#3CC48A;--o-gov:#7C9BFF;--o-sen:#E36BB5;--o-rep:#FFC933;--o-asm:#FF7A6B;--on-pres:#0E0D26;--on-gov:#0E0D26;--on-sen:#0E0D26;--on-rep:#0E0D26;--on-asm:#0E0D26;--ok:#3CC48A;--wait:#E6B04A;--out:#FF8F85}@media (prefers-reduced-motion:reduce){:root{--dur-enter:1ms;--dur-expand:1ms;--dur-press:1ms;--stagger:0ms;--press-scale:1}}