:root{--ink:#17282d;--muted:#617278;--paper:#f5f2ea;--white:#fff;--amber:#d98a24;--teal:#254c52;--line:#d8d7d0;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}.topbar{height:72px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(245,242,234,.96);position:sticky;top:0;z-index:20}.brand{font-weight:700;color:var(--ink);text-decoration:none;display:flex;gap:10px;align-items:center}.mark{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:var(--paper);font-size:12px;letter-spacing:1px}.topbar nav{display:flex;gap:28px}.topbar nav a{color:var(--ink);font-size:14px;text-decoration:none}.hero,.section{max-width:1160px;margin:auto;padding:88px 28px}.hero{padding-top:104px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:12px;font-weight:700;color:var(--amber)}h1,h2{font-family:var(--serif);font-weight:500;line-height:1.05;margin:.15em 0}h1{font-size:clamp(50px,8vw,92px);max-width:900px}h2{font-size:clamp(38px,5vw,60px)}.lede{font-size:21px;max-width:760px;color:#41565c}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:34px 0}.button{display:inline-block;border:1px solid var(--ink);padding:14px 20px;text-decoration:none;font-weight:700;color:var(--ink);background:transparent;cursor:pointer;font-size:15px}.button.primary{background:var(--amber);border-color:var(--amber);color:#17282d}.button.secondary{background:transparent}.deadline{border-left:4px solid var(--amber);padding:12px 18px;background:#fff9ec;max-width:850px}.how{background:var(--ink);color:white;display:grid;grid-template-columns:repeat(3,1fr);padding:30px max(5vw,28px);gap:30px}.how div{display:flex;gap:16px;align-items:center}.how strong{font-family:var(--serif);font-size:32px;color:var(--amber)}.how span{font-size:14px}.intro{max-width:760px;color:var(--muted);font-size:18px}.controls{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end;margin:34px 0}.controls label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.controls select{width:100%;display:block;margin-top:8px;padding:13px;border:1px solid #aeb8b8;background:white;font-size:15px}.toggle{padding:13px 0}.race-list{display:grid;gap:18px}.race{background:white;border:1px solid var(--line);padding:22px}.race-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.race h3{font-family:var(--serif);font-size:28px;margin:0}.race-note,.evidence{color:var(--muted);font-size:13px}.candidates{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:16px}.candidate{border-top:1px solid var(--line);padding-top:12px}.candidate strong{display:block}.party{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--amber)}.deep-link{color:var(--teal);font-size:13px}.dark{max-width:none;background:var(--ink);color:white;padding-left:max(calc((100vw - 1104px)/2),28px);padding-right:max(calc((100vw - 1104px)/2),28px)}.dark .intro{color:#c8d1d1}.issue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:30px 0}.issue{display:flex;gap:12px;padding:16px;border:1px solid #557075;background:#20373c;cursor:pointer}.issue input{accent-color:var(--amber)}.results{margin-top:28px;display:grid;gap:12px}.result{background:white;color:var(--ink);padding:20px;border-left:5px solid var(--amber)}.result-head{display:flex;justify-content:space-between;gap:16px}.score{font-family:var(--serif);font-size:30px}.meter{height:6px;background:#e3e6e3;margin:12px 0}.meter i{display:block;height:100%;background:var(--amber)}.method{display:grid;grid-template-columns:1fr 1fr;gap:70px}.method a{color:var(--teal);font-weight:700}footer{display:flex;justify-content:space-between;gap:20px;padding:28px max(5vw,28px);border-top:1px solid var(--line);font-size:12px;color:var(--muted)}@media(max-width:760px){.topbar nav{display:none}.hero,.section{padding:64px 20px}.how{grid-template-columns:1fr}.controls,.issue-grid,.method{grid-template-columns:1fr}.dark{padding-left:20px;padding-right:20px}.race-head,.result-head,footer{display:block}.score{margin-top:8px}.lede{font-size:18px}}
