:root{--ink:#16202b;--soft:#4a5867;--line:#d9e0e7;--bg:#f6f8fa;--card:#fff;--brand:#123a5e;--mark:#fff1b8;--mark-ink:#5b4300;--made:#eef4fb;--made-line:#b9cfe6;--ok:#1d6b3a;--warn:#8a4b00;--focus:#1d5fd1}
@media (prefers-color-scheme:dark){:root{--ink:#e8edf2;--soft:#a9b6c3;--line:#2c3947;--bg:#0f161d;--card:#17212b;--brand:#9cc7f0;--mark:#4a3d0a;--mark-ink:#ffe28a;--made:#142231;--made-line:#2d4a66;--ok:#7fd39b;--warn:#f0b26b;--focus:#8fb8ff}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
.sr{position:absolute;left:-9999px}
.top{background:var(--card);border-bottom:1px solid var(--line);padding:20px 0 16px}
h1{font-size:1.9rem;line-height:1.15;margin:6px 0 8px}
h2{font-size:1.05rem;margin:26px 0 10px;letter-spacing:.01em}
h3{font-size:1.05rem;margin:0 0 6px}
.lead{margin:0 0 8px;max-width:62ch}
.fine{font-size:.86rem;color:var(--soft);margin:6px 0}
.badge{display:inline-block;margin:0;padding:3px 10px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;color:var(--soft)}
.races{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.race{font:inherit;padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.race.is-on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);font-weight:600}
.ballot{font-size:.9rem;color:var(--soft);margin:8px 0 0}
.presets{display:flex;flex-wrap:wrap;gap:8px}
.preset{font:inherit;font-size:.93rem;text-align:left;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.preset:hover{border-color:var(--brand)}
form#ask{display:flex;gap:8px}
#q{flex:1;min-width:0;font:inherit;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
#go,.btn{font:inherit;font-weight:600;padding:12px 18px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer}
@media (prefers-color-scheme:dark){#go,.btn{color:#0f161d}}
.btn.ghost{background:transparent;color:var(--brand);padding:7px 12px;font-weight:500;font-size:.9rem}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.answer{margin:22px 0 40px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0}
.reading dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:6px 0 0}
.reading dt{color:var(--soft);font-size:.9rem}
.reading dd{margin:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:inherit;font-size:.88rem;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.chip.is-on{background:var(--brand);border-color:var(--brand);color:#fff}
@media (prefers-color-scheme:dark){.chip.is-on{color:#0f161d}}
.words{font:inherit;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);width:100%}
.found{list-style:none;padding:0;margin:6px 0 0}
.found li{padding:3px 0}
.none{color:var(--warn);font-weight:600}
.made{background:var(--made);border-color:var(--made-line)}
.made-label{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin:0 0 10px;font-size:.84rem;color:var(--soft)}
.made-label strong{color:var(--ink);font-size:.95rem}
.cand{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--made-line)}
.cand:first-of-type{border-top:0;padding-top:0;margin-top:0}
.cand h3 small{font-weight:400;color:var(--soft)}
.cand ul{margin:4px 0 0;padding-left:20px}
.cand li{margin:6px 0}
a.inline-evidence{background:var(--mark);color:var(--mark-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;border-radius:4px;padding:0 3px;cursor:pointer}
a.inline-evidence.is-video::before{content:"▶ ";font-size:.8em}
a.inline-evidence.is-active{outline:2px solid var(--focus)}
.ref{font-size:.78rem;color:var(--soft);white-space:nowrap}
.side table{width:100%;border-collapse:collapse;margin-top:6px}
.side td{vertical-align:top;padding:8px 10px;border:1px solid var(--line);width:50%}
.side .who{display:block;font-size:.84rem;color:var(--soft);margin-bottom:3px}
.sources ol{list-style:none;padding:0;margin:0}
.sources li{padding:12px 0;border-top:1px solid var(--line)}
.sources li:first-child{border-top:0}
.sources .n{display:inline-block;min-width:2.2em;font-weight:700}
.sources blockquote{margin:6px 0;padding:6px 12px;border-left:3px solid var(--brand);white-space:pre-line}
.meta{font-size:.84rem;color:var(--soft)}
.meta a{color:var(--brand)}
.tag{display:inline-block;font-size:.74rem;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--soft);margin-left:4px}
.notice{border-left:4px solid var(--brand);padding:10px 14px;background:var(--card);border-radius:8px}
.wait{color:var(--soft)}
details summary{cursor:pointer;color:var(--soft);font-size:.9rem}
.foot{border-top:1px solid var(--line);margin-top:30px;padding-top:14px;padding-bottom:40px;font-size:.92rem;color:var(--soft)}
/* overlay — ported from the hover-youtube-overlay proof of work */
.overlay-stage{position:fixed;inset:0;pointer-events:none;z-index:50}
.video-overlay{position:fixed;width:min(440px,calc(100vw - 24px));pointer-events:auto;opacity:0;transform:translateY(6px);transition:opacity .14s ease,transform .14s ease}
.video-overlay.is-visible{opacity:1;transform:none}
.overlay-card{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.28);padding:12px}
.overlay-topline{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.overlay-kicker{margin:0;font-size:.78rem;color:var(--soft)}
.overlay-close{font:inherit;font-size:.82rem;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:3px 9px;cursor:pointer}
.overlay-title{font-size:.95rem;margin:0 0 6px}
.player-frame{position:relative;aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden;margin-bottom:8px}
.player-frame iframe,.player-frame .youtube-player{position:absolute;inset:0;width:100%;height:100%;border:0}
.overlay-quote{margin:0 0 6px;padding:6px 10px;border-left:3px solid var(--brand);font-size:.93rem;white-space:pre-line;max-height:11.5em;overflow:auto}
.overlay-meta{margin:0;font-size:.8rem;color:var(--soft)}
.overlay-meta a{color:var(--brand)}
@media (max-width:640px){body{font-size:16px}h1{font-size:1.55rem}form#ask{flex-direction:column}.side td{display:block;width:auto}.video-overlay{left:12px!important;right:12px;top:auto!important;bottom:12px;width:auto}}
@media (prefers-reduced-motion:reduce){.video-overlay{transition:none}}
.exact{font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:.15rem}
