:root,[data-theme=light]{color-scheme:light;--ink: #1b2a4a;--paper: #f4efe4;--gold: #c4a35a;--star: #fffef8;--bg: #f4efe4;--surface: #fffdf8;--surface-2: #ebe4d4;--text: #1b2a4a;--text-secondary: #3d4a66;--text-body: #2c3854;--muted: #4a5568;--border: #d9d0be;--border-strong: #c4bba8;--primary: #1b2a4a;--primary-hover: #2a3d68;--primary-soft: #eee6d4;--primary-soft-border: #c4a35a;--primary-tint: #e8dfc8;--primary-tint-2: #f7f1e4;--primary-tint-3: #d4c49a;--primary-mid: #c4a35a;--primary-text: #1b2a4a;--primary-text-strong: #152238;--on-primary: #fffef8;--danger-bg: #fef2f2;--danger-text: #991b1b;--danger-text-strong: #b91c1c;--danger-border: #fecaca;--danger-border-strong: #fca5a5;--warn-bg: #fff8e8;--warn-bg-2: #f3e4b8;--warn-text: #6b4e12;--warn-border: #e4d09a;--warn-border-strong: #c4a35a;--warn-accent: #c4a35a;--code-bg: #e6dfcf;--shadow-focus: #c4a35a}html[data-theme=dark]{color-scheme:dark;--ink: #1b2a4a;--paper: #12192b;--gold: #c4a35a;--star: #fffef8;--bg: #12192b;--surface: #1b2a4a;--surface-2: #243556;--text: #fffef8;--text-secondary: #d4cbb8;--text-body: #e8e2d4;--muted: #b8ae9a;--border: #3a4a68;--border-strong: #5a6a88;--primary: #c4a35a;--primary-hover: #d4b56a;--primary-soft: #243556;--primary-soft-border: #c4a35a;--primary-tint: #2c3d5c;--primary-tint-2: #1f2d48;--primary-tint-3: #8a7340;--primary-mid: #c4a35a;--primary-text: #f3e6c4;--primary-text-strong: #fffef8;--on-primary: #1b2a4a;--danger-bg: #450a0a;--danger-text: #fecaca;--danger-text-strong: #fca5a5;--danger-border: #7f1d1d;--danger-border-strong: #991b1b;--warn-bg: #3a2e14;--warn-bg-2: #5a4620;--warn-text: #f3e6c4;--warn-border: #8a7340;--warn-border-strong: #c4a35a;--warn-accent: #c4a35a;--code-bg: #243556;--shadow-focus: #c4a35a}@media(prefers-color-scheme:dark){html[data-theme=system],html:not([data-theme]){color-scheme:dark;--ink: #1b2a4a;--paper: #12192b;--gold: #c4a35a;--star: #fffef8;--bg: #12192b;--surface: #1b2a4a;--surface-2: #243556;--text: #fffef8;--text-secondary: #d4cbb8;--text-body: #e8e2d4;--muted: #b8ae9a;--border: #3a4a68;--border-strong: #5a6a88;--primary: #c4a35a;--primary-hover: #d4b56a;--primary-soft: #243556;--primary-soft-border: #c4a35a;--primary-tint: #2c3d5c;--primary-tint-2: #1f2d48;--primary-tint-3: #8a7340;--primary-mid: #c4a35a;--primary-text: #f3e6c4;--primary-text-strong: #fffef8;--on-primary: #1b2a4a;--danger-bg: #450a0a;--danger-text: #fecaca;--danger-text-strong: #fca5a5;--danger-border: #7f1d1d;--danger-border-strong: #991b1b;--warn-bg: #3a2e14;--warn-bg-2: #5a4620;--warn-text: #f3e6c4;--warn-border: #8a7340;--warn-border-strong: #c4a35a;--warn-accent: #c4a35a;--code-bg: #243556;--shadow-focus: #c4a35a}}html{font-family:Segoe UI,"Source Sans 3",system-ui,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}.app-shell{min-height:100vh;background:radial-gradient(120% 70% at 50% -12%,color-mix(in srgb,var(--gold) 18%,var(--bg)) 0%,var(--bg) 58%)}.app-shell--guest .app{max-width:26rem}.topbar{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.topbar-inner{max-width:58rem;margin:0 auto;padding:.55rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;justify-content:flex-start}.topbar-end{display:flex;align-items:center;gap:.35rem .5rem;margin-left:auto}.topbar-brand{font-weight:700;font-size:1.05rem;color:var(--text);text-decoration:none}.topbar-brand:hover{color:var(--text)}.wordmark{font-family:Georgia,Palatino Linotype,Palatino,Iowan Old Style,Times New Roman,serif;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1;display:inline-flex;flex-direction:column;align-items:flex-start}.wordmark:after{content:"";display:block;width:100%;height:.16em;margin-top:.16em;background:var(--gold);border-radius:1px}.topbar-brand .wordmark{font-size:1.4rem}.wordmark-hero{font-size:clamp(2.4rem,9vw,3.2rem);align-items:center;text-align:center}.topbar-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}.topbar-link{font:inherit;font-size:.875rem;color:var(--text-secondary);text-decoration:none;background:none;border:none;padding:.35rem .55rem;border-radius:6px;cursor:pointer}.topbar-link:hover{color:var(--text);background:var(--surface-2)}.topbar-link.active{color:var(--primary);font-weight:600;background:var(--primary-soft)}.topbar-btn{color:var(--text-secondary)}.session-line{margin:0}.app{max-width:42rem;margin:0 auto;padding:1.25rem 1.25rem 3rem;display:grid;gap:1rem}.app:has(.lb-card),.app-profile{max-width:58rem}.hero h1{margin:.25rem 0 .5rem;font-size:1.65rem;line-height:1.2}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;color:var(--muted);font-weight:600}.lede{margin:0;color:var(--text-secondary)}.muted{color:var(--muted);font-size:.9rem}.userbar{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.1rem 1.2rem;display:grid;gap:.75rem;box-shadow:0 6px 20px color-mix(in srgb,var(--ink) 7%,transparent)}.card.nested{background:var(--surface-2)}.card h2,.card h3{margin:0}.stack{display:grid;gap:1rem}label{display:grid;gap:.25rem;font-size:.9rem;font-weight:600}input,textarea,select{font:inherit;padding:.5rem .65rem;border:1px solid var(--border-strong);border-radius:8px;width:100%;background:var(--surface);color:var(--text)}input:focus,textarea:focus,select:focus{outline:2px solid var(--primary-soft-border);outline-offset:1px}.brand-link{color:inherit;text-decoration:none}.brand-link:hover{text-decoration:underline}a.btn{display:inline-block;text-decoration:none;color:inherit;box-sizing:border-box}a.btn.primary{color:var(--on-primary)}a.btn.ghost{color:var(--primary)}.btn{font:inherit;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:.45rem .85rem;cursor:pointer}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}.btn.primary:hover{background:var(--primary-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--primary)}.btn.small{font-size:.8rem;padding:.3rem .55rem}.hints{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.list-item{width:100%;text-align:left;display:grid;gap:.15rem;padding:.95rem 1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);cursor:pointer;font:inherit;color:inherit;text-decoration:none;box-sizing:border-box;box-shadow:0 3px 10px color-mix(in srgb,var(--ink) 5%,transparent)}.list-item:hover{border-color:var(--primary-soft-border);background:var(--primary-soft)}.election-open-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.5rem .65rem;cursor:default}.election-list-main{display:grid;gap:.15rem;color:inherit;text-decoration:none;min-width:0}.election-pin-btn{align-self:start;min-width:4.25rem}.election-pin-btn[aria-pressed=true]{color:var(--ok-text, #0d6b4c);border-color:var(--ok-border, color-mix(in srgb, #0d6b4c 28%, transparent));background:var(--ok-soft, color-mix(in srgb, #0d6b4c 12%, transparent))}.election-pin-btn:disabled{opacity:1;cursor:default}.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.checklist label{font-weight:500;display:flex;gap:.5rem;align-items:center}.checklist input{width:auto}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.banner{padding:.6rem .75rem;border-radius:8px;font-size:.9rem}.banner.error{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border);display:flex;align-items:center;justify-content:space-between;gap:.75rem}.banner.warn{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.banner.ok{background:var(--primary-tint-2);color:var(--primary-text-strong);border:1px solid var(--primary-tint-3)}.ok-text{color:var(--primary-text);margin:0;font-size:.9rem}code{background:var(--code-bg);padding:.1rem .35rem;border-radius:4px;font-size:.85em}.linkish{background:none;border:none;color:var(--primary);font:inherit;text-decoration:underline;cursor:pointer;padding:0}.profile-photo-block{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.avatar{border-radius:50%;overflow:hidden;background:var(--primary-tint);color:var(--primary);display:grid;place-items:center;font-weight:700;flex-shrink:0}.avatar-md{width:4rem;height:4rem;font-size:1.1rem}.avatar-lg{width:9.5rem;height:9.5rem;font-size:2rem;box-shadow:0 8px 20px color-mix(in srgb,var(--ink) 16%,transparent)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-fallback{-webkit-user-select:none;user-select:none}.mini-profile{display:flex;gap:.75rem;align-items:flex-start;padding-top:.5rem;border-top:1px solid var(--border)}.vote-deck-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.vote-deck-header h3{margin:0}.nominee-card{display:grid;justify-items:center;text-align:center;gap:.75rem;padding:1.35rem 1rem 1rem;background:linear-gradient(180deg,var(--primary-soft) 0%,var(--surface) 48%);border:1px solid var(--gold);border-radius:22px;box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 12%,transparent);width:100%}.nominee-name{margin:0;font-size:1.35rem}.campaign-blurb{margin:0;font-style:italic;color:var(--text-body);max-width:28rem}.region-badge{margin:0;font-size:.9rem;font-weight:600;color:var(--primary)}.nominee-bio{margin:0;color:var(--text-secondary);max-width:28rem;white-space:pre-wrap;line-height:1.45}.empty-deck{padding:1.75rem .75rem 1.25rem;text-align:center;display:grid;justify-items:center;gap:.85rem}.empty-deck-title{margin:0;font-size:1.45rem;line-height:1.25}.empty-deck .lede{margin:0;max-width:24rem}.empty-deck-home{min-height:3.25rem;font-size:1.12rem;font-weight:700;width:100%;max-width:22rem;display:inline-flex;align-items:center;justify-content:center}.admin-panel{border-color:var(--warn-border-strong);background:var(--warn-bg)}.row.wrap{flex-wrap:wrap}.ranking-list{margin:.5rem 0 0;padding-left:1.25rem;display:grid;gap:.35rem}.top-issues h4{margin:.5rem 0 .25rem;font-size:.95rem}.top-issues ol{margin:0;padding-left:1.25rem}.endorse-panel{width:100%;max-width:28rem;margin-top:.75rem;padding:.85rem .9rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);display:grid;gap:.65rem;text-align:left}.endorse-panel-title{margin:0;font-size:1rem}.endorse-disclaimer{margin:0;font-size:.8rem}.endorse-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.endorse-stat{padding:.4rem .45rem;border-radius:8px;background:var(--surface);border:1px solid var(--border);display:grid;gap:.15rem}.endorse-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.endorse-stat-value{font-weight:700;font-size:1rem}.endorse-stat-hint{line-height:1.25}.endorse-candidate-block{padding:.5rem .55rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);display:grid;gap:.35rem}.endorse-candidate-heading{margin:0;font-size:.9rem}.endorse-candidate-stats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.65rem 1rem;font-size:.9rem}.endorse-panel-badges{justify-content:flex-start}.endorse-buy-row{align-items:center;gap:.5rem}.endorse-row{justify-content:flex-start;align-items:center;gap:.5rem}.endorse-btn{background:var(--warn-bg);border-color:var(--warn-accent);color:var(--warn-text);font-weight:600}.endorse-btn:hover{background:var(--warn-bg-2)}@media(max-width:480px){.endorse-stats{grid-template-columns:1fr}}.card-issues{width:100%;max-width:28rem;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:.75rem .9rem}.card-issues h4{margin:0 0 .4rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.card-issues ul{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}.card-issues li strong{display:block;font-size:.9rem}.card-issues li p{margin:.15rem 0 0;color:var(--text-secondary);font-size:.9rem;white-space:pre-wrap}.results-final{border-color:var(--primary-mid);background:var(--primary-tint-2)}.winner-line{margin:0;font-size:1.05rem}.create-contest select{font:inherit;padding:.5rem .65rem;border:1px solid var(--border-strong);border-radius:8px;width:100%}.table-wrap{overflow-x:auto}.lb-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;align-items:flex-start}.lb-count{margin:0;white-space:nowrap}.lb-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,17rem);gap:1rem;align-items:start}.lb-main{min-width:0;display:grid;gap:.75rem}.lb-table{width:100%;border-collapse:collapse;font-size:.85rem}.lb-table th,.lb-table td{text-align:left;padding:.4rem .45rem;border-bottom:1px solid var(--border)}.lb-table th{position:sticky;top:0;background:var(--surface);z-index:1;font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.lb-sort{font:inherit;font-weight:600;font-size:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;text-align:left}.lb-sort:hover{color:var(--primary)}.lb-preview-issues h4{margin:0 0 .35rem;font-size:.85rem}.issue-list.compact{gap:.45rem;max-height:12rem;overflow-y:auto}.issue-list.compact .issue-item{padding:.45rem .55rem;font-size:.85rem}.lb-table tbody tr{cursor:pointer}.lb-table tbody tr:hover,.lb-table tbody tr.selected{background:var(--primary-soft)}.lb-table tbody tr.selected{box-shadow:inset 3px 0 0 var(--shadow-focus)}.lb-pager{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.lb-jump{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--muted)}.lb-jump input{width:3.25rem;padding:.25rem .35rem;border:1px solid var(--border-strong);border-radius:6px}.lb-preview{position:sticky;top:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);padding:.85rem;display:grid;gap:.65rem;max-height:calc(100vh - 2rem);overflow-y:auto}.lb-preview-top{display:flex;gap:.65rem;align-items:center}.lb-preview-bio{margin:0;font-size:.9rem;max-height:4.5rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.lb-preview-stats{margin:0;display:grid;gap:.35rem}.lb-preview-stats>div{display:flex;justify-content:space-between;gap:.5rem;font-size:.85rem}.lb-preview-stats dt{margin:0;color:var(--muted)}.lb-preview-stats dd{margin:0;font-weight:600}.lb-preview-empty{margin:0;font-size:.9rem}.lb-open-full{justify-self:stretch;text-align:center;text-decoration:none}.profile-detail{gap:1.1rem}.profile-detail-header{display:flex;gap:1rem;align-items:flex-start}.profile-detail-header h2{margin:0 0 .25rem}.mono-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;word-break:break-all}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.5rem}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.55rem .65rem;display:grid;gap:.15rem}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.stat-value{font-size:1.05rem;font-weight:700}.stat-value-sm{font-size:.8rem;font-weight:600}.profile-section h3{margin:0 0 .35rem;font-size:1rem}.profile-section p{margin:0}.issue-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.issue-item{border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem;background:var(--surface)}.issue-item p{margin:.35rem 0 0}.tiny{font-size:.75rem}.admin-poll-options{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);display:grid;gap:.5rem}.admin-poll-options h4{margin:0;font-size:.95rem}.admin-option-row{align-items:center;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--bg)}.location-fields{border:1px solid var(--border);border-radius:8px;padding:.75rem .85rem;margin:0;display:grid;gap:.5rem}.location-fields legend{padding:0 .25rem;font-weight:600;font-size:.9rem}.invite-share{margin-top:.5rem;padding-top:.65rem;border-top:1px solid var(--border);display:grid;gap:.4rem}.endorse-units{display:inline-flex;align-items:center;gap:.2rem;font-size:.9rem}.endorse-units input{width:4.5rem}.admin-contest-stats{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);display:grid;gap:.5rem}.admin-contest-stats h4{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.65rem}.stat-tile{display:grid;gap:.15rem;padding:.65rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.stat-value{font-size:1.35rem;font-weight:700;color:var(--primary);line-height:1.1}.stat-label{font-size:.8rem;font-weight:600;color:var(--text-body)}.stage-stats-table-wrap{overflow-x:auto}.stage-stats-table{width:100%;border-collapse:collapse;font-size:.88rem}.admin-ballot-panel{margin-top:.75rem}.admin-ballot-questions{list-style:none;padding:0;margin:.5rem 0 0;display:grid;gap:.85rem}.admin-question-stats{padding:.55rem .65rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.admin-stat-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.4rem}.admin-stat-table th,.admin-stat-table td{text-align:left;padding:.25rem .4rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-stat-table th{font-weight:600;color:var(--muted, #666);font-size:.75rem}.stage-stats-table th,.stage-stats-table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}.stage-stats-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.hist-bars{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.hist-row{display:grid;grid-template-columns:4rem 1fr 2.5rem;gap:.5rem;align-items:center;font-size:.85rem}.hist-track{height:.65rem;background:var(--border);border-radius:4px;overflow:hidden}.hist-fill{display:block;height:100%;background:var(--primary-hover);border-radius:4px;min-width:2px}.hist-count{text-align:right;color:var(--muted)}.entry-fee-admin input{width:5rem;margin-left:.35rem}.compact-list{font-size:.9rem}.env-banner{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;padding:.65rem .75rem;background:var(--primary-soft);border:1px solid var(--primary-soft-border);border-radius:8px;font-size:.9rem}.guide-table{width:100%;border-collapse:collapse;font-size:.9rem}.guide-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}.guide-table td:first-child{font-weight:600;width:45%}.photo-gallery h3{margin:0 0 .35rem}.photo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.65rem}.photo-tile{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2)}.photo-tile img{display:block;width:100%;height:6rem;object-fit:cover}.photo-tile p{margin:0;padding:.35rem .4rem}.photo-actions{padding:.25rem .35rem .4rem;justify-content:center;gap:.25rem}.photo-actions .btn{font-size:.7rem;padding:.2rem .4rem}.vote-card-gallery,.vote-gallery{width:100%;max-width:none;display:grid;gap:.45rem;justify-items:stretch;text-align:center}.vote-gallery-stage{position:relative;width:100%;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);touch-action:pan-y}.vote-gallery-track{display:flex;width:100%;transition:transform .35s ease}.vote-gallery-track.is-jump{transition:none}.vote-gallery-slide{margin:0;flex:0 0 100%;width:100%;min-width:100%}.vote-gallery-slide img{display:block;width:100%;height:16rem;object-fit:cover}.vote-gallery-nav{position:absolute;top:50%;z-index:1;width:2.35rem;height:2.35rem;margin:0;padding:0;border:1px solid var(--border-strong);border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text);font:inherit;font-size:1.55rem;line-height:1;cursor:pointer;transform:translateY(-50%)}.vote-gallery-nav:hover{background:var(--surface)}.vote-gallery-prev{left:.45rem}.vote-gallery-next{right:.45rem}.vote-gallery-caption{margin:0;min-height:1.3rem;padding:0 .25rem;color:var(--text-secondary);font-size:.92rem;line-height:1.35}.vote-gallery-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem}.vote-gallery-dot{width:.6rem;height:.6rem;padding:0;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);cursor:pointer}.vote-gallery-dot[aria-current=true]{background:var(--primary);border-color:var(--primary)}@media(min-width:40rem){.vote-gallery-slide img{height:18rem}}@media(prefers-reduced-motion:reduce){.vote-gallery-track{transition:none}}.email-pref-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:0;border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.email-pref-row{margin:0;border-bottom:1px solid var(--border)}.email-pref-row:last-child{border-bottom:none}.email-pref-label{display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;align-items:start;cursor:pointer;padding:.75rem .85rem;margin:0}.email-pref-label:hover{background:var(--surface-2)}.email-pref-check{display:flex;justify-content:center;padding-top:.15rem}.email-pref-check input{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--primary)}.email-pref-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.email-pref-title{font-size:.95rem;line-height:1.3}.email-pref-desc{display:block;line-height:1.35}.photo-caption-edit{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;margin-top:.35rem}.photo-caption-edit input{width:100%;font-size:.85rem}.candidate-history{margin:.75rem 0}.candidate-history-body{margin-top:.5rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface-2)}.history-block{margin-bottom:.75rem}.history-block:last-child{margin-bottom:0}.history-block h5{margin:0 0 .35rem;font-size:.9rem}.history-contest-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.history-statements{margin:.25rem 0 .5rem;padding-left:1rem;font-size:.9rem}.history-statements p{margin:.15rem 0 .4rem}.opt-out-row{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.support-dl{display:grid;gap:.5rem;margin:0}.support-dl div{display:grid;grid-template-columns:10rem 1fr;gap:.5rem}.support-dl dt{margin:0;font-weight:600;color:var(--text-secondary)}.support-dl dd{margin:0}.support-log{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;font-size:.9rem}.report-list .report-row{display:grid;gap:.5rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.report-actions{gap:.35rem}.safety-actions{justify-content:center;gap:.5rem;margin-top:.35rem}.meta-json{margin:.15rem 0 0;white-space:pre-wrap;word-break:break-word;color:var(--muted)}.grow{flex:1;min-width:12rem}.formal-candidacy-board h3{margin:0 0 .35rem}.candidacy-phases{margin:.75rem 0 0;padding:0;list-style:none;display:grid;gap:.75rem}.candidacy-phases .phase{border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem;background:var(--surface-2)}.candidacy-phases .phase.current{border-color:var(--primary-soft-border);background:linear-gradient(180deg,var(--primary-soft) 0%,var(--surface) 70%)}.candidacy-phases .phase.done{opacity:.92;border-color:var(--border-strong)}.candidacy-phases .phase.formal{border-color:var(--primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 45%,transparent)}.howto-list{margin:.4rem 0 0;padding-left:1.15rem;color:var(--text-body);font-size:.9rem}.howto-list li{margin:.2rem 0}.formal-howto{margin-top:.35rem}.endorse-count-line{margin:0;font-size:.9rem;font-weight:600;color:var(--primary)}.badge-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.endorse-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:.2rem .5rem;border-radius:999px;background:var(--primary-tint-2);color:var(--primary-text-strong);border:1px solid var(--primary-mid)}.civic-info-admin{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);display:grid;gap:.5rem}.jurisdiction-picker{margin:0;padding:0;border:none;display:grid;gap:.5rem}.jurisdiction-picker legend{padding:0;margin-bottom:.15rem}.jurisdiction-row label{flex:1;min-width:8rem}.poll-summary-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.poll-results-panel{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.contest-hero{margin:-.25rem -.25rem .75rem;border-radius:10px;overflow:hidden;aspect-ratio:16 / 5;max-height:12rem;width:100%;background:var(--surface-2)}.stage-complete-banner{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-start;justify-content:space-between}.contest-hero img{display:block;width:100%;height:100%;object-fit:cover}.election-roadmap-summary{margin:.75rem 0;padding:.65rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.roadmap-list{margin:.5rem 0 0;padding-left:1.25rem}.roadmap-phase{margin-bottom:.5rem}.roadmap-phase.current strong{color:var(--primary)}.roadmap-phase.past{opacity:.7}.roadmap-details summary{cursor:pointer;font-weight:600}.image-crop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--text) 45%,transparent)}.image-crop-dialog{width:min(100%,24rem);max-height:min(92vh,40rem);overflow:auto;box-shadow:0 12px 40px color-mix(in srgb,var(--text) 25%,transparent)}.image-crop-viewport{position:relative;margin:0 auto;overflow:hidden;touch-action:none;cursor:grab;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;max-width:100%;-webkit-user-select:none;user-select:none}.image-crop-viewport:active{cursor:grabbing}.image-crop-circle{border-radius:50%}.image-crop-zoom{display:grid;gap:.35rem;font-size:.85rem}.image-crop-zoom input[type=range]{width:100%}@media(max-width:720px){.lb-layout{grid-template-columns:1fr}.lb-preview{position:sticky;top:0;z-index:2;order:-1;max-height:none}}.invite-link-label{display:grid;gap:.25rem;font-size:.85rem;font-weight:600}.invite-link-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:400;cursor:text;width:100%;margin-top:.35rem}.contest-actions-row{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.contest-actions-row>.btn{margin:0;flex:0 0 auto}.contest-actions-row>.invite-share-clipboard{flex:1 0 100%;margin:0;order:10}.contest-actions-row .invite-link-input{width:100%;max-width:100%;margin:0;box-sizing:border-box}.past-elections{margin-top:.25rem}.election-actions h3{margin:0 0 .5rem;font-size:1rem}.action-list li{padding:0;border-radius:8px;background:var(--primary-soft);border:1px solid var(--primary-soft-border);overflow:hidden}.action-list li:has(>strong){padding:.5rem .65rem}.action-list-btn{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:transparent;border:none;padding:.55rem .7rem;cursor:pointer}.action-list-btn:hover{background:var(--surface-2)}.action-list-btn strong{display:block;color:var(--primary);margin-bottom:.2rem}.action-list-btn .muted,.action-list li>.muted{display:block;margin-top:.15rem}.block{display:block}.election-action-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}.election-action-tag{display:inline-block;font-size:.75rem;font-weight:600;color:var(--primary);background:var(--primary-soft);border:1px solid var(--primary-soft-border);border-radius:999px;padding:.15rem .5rem}.election-candidacy-tag{font-weight:600}.election-candidacy-standing,.election-candidacy-finalist,.election-history-ongoing{color:var(--ok-text, #0d6b4c);background:var(--ok-soft, color-mix(in srgb, #0d6b4c 12%, transparent));border-color:var(--ok-border, color-mix(in srgb, #0d6b4c 28%, transparent))}.election-history-closed{color:var(--text-secondary);background:var(--surface-2);border-color:var(--border)}.election-up-to-date{color:var(--text-secondary);background:var(--surface-2);border-color:var(--border);font-weight:500}.election-new-tag{color:var(--warn-text);background:var(--warn-bg);border-color:var(--warn-border-strong)}.election-candidacy-winner{color:var(--primary);background:var(--primary-soft);border-color:var(--primary-soft-border)}.election-candidacy-eliminated,.election-candidacy-withdrew,.election-candidacy-disqualified{color:var(--text-secondary);background:var(--surface-2);border-color:var(--border)}.candidate-standing-summary{display:grid;gap:.65rem;margin-top:.5rem}.candidate-standing-rank{display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem .65rem}.candidate-standing-rank-num{font-size:1.75rem;font-weight:700;color:var(--primary);line-height:1.1}.candidate-standing-meta{list-style:none;margin:0;padding:0;display:grid;gap:.25rem;font-size:.95rem}.suggestion-panel{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border);display:grid;gap:.65rem}.suggestion-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;max-height:16rem;overflow:auto}.suggestion-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .55rem;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.suggestion-row strong{display:block}.suggest-new-row{align-items:center}.admin-suggestion-row{display:grid;gap:.4rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.admin-suggestion-row input{flex:1 1 12rem;min-width:8rem}.poll-question-block{padding-top:.35rem;border-top:1px solid var(--border)}.poll-question-block:first-of-type{border-top:none;padding-top:0}.ranking-edit-list{margin:.35rem 0 0;padding-left:0;list-style:none;display:grid;gap:.35rem}.ranking-edit-row{align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.issues-history-stage{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.issues-history-stage h4{margin:0 0 .35rem;font-size:.95rem}.issues-history-list{margin:.25rem 0 0;padding-left:1.2rem;font-size:.9rem}.topbar .theme-toggle-label{display:none}.topbar .theme-toggle{margin-left:0}.theme-toggle{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto}.theme-toggle-label{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.theme-toggle-group{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.theme-toggle-group button{font:inherit;font-size:.8rem;border:none;background:transparent;color:var(--text-secondary);padding:.3rem .55rem;cursor:pointer}.theme-toggle-group button+button{border-left:1px solid var(--border)}.theme-toggle-group button:hover{background:var(--surface-2);color:var(--text)}.theme-toggle-group button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary);font-weight:600}.userbar .theme-toggle{margin-left:auto}.hero-top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;justify-content:space-between}.hero-top .eyebrow{margin:0}html{font-size:100%;-webkit-text-size-adjust:100%}body{font-size:1.0625rem;line-height:1.55}.page-title,.contest-title{margin:.15rem 0 .35rem;font-size:clamp(1.35rem,4vw,1.75rem);line-height:1.2;font-weight:700}.h-section{margin:0;font-size:1.15rem;line-height:1.3;font-weight:650}.lede{font-size:1.05rem;line-height:1.5;color:var(--text-body)}.back-link{display:inline-flex;align-items:center;min-height:2.75rem;font-weight:600;color:var(--primary);text-decoration:none;padding:.25rem 0}.back-link:hover{text-decoration:underline}.btn{min-height:2.85rem;padding:.7rem 1.2rem;font-size:1.05rem;border-radius:12px}.btn.small{min-height:2.25rem;font-size:.95rem;padding:.45rem .85rem}.btn.primary{font-weight:700;min-height:3.15rem;font-size:1.1rem;letter-spacing:.01em}.topbar-link{min-height:2.5rem;display:inline-flex;align-items:center;font-size:.95rem;padding:.45rem .7rem}.topbar-cta{color:var(--on-primary)!important;background:var(--primary)!important;border-radius:10px;min-height:2.5rem;font-size:.95rem}.topbar-cta:hover{background:var(--primary-hover)!important;color:var(--on-primary)!important}.disclosure{border:1px solid var(--border);border-radius:10px;padding:.35rem .75rem;background:var(--surface-2)}.disclosure>summary{cursor:pointer;font-weight:600;min-height:2.5rem;display:flex;align-items:center;list-style:none}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"▸ ";color:var(--muted)}.disclosure[open]>summary:before{content:"▾ "}.plain-list{margin:.5rem 0;padding-left:1.2rem}.plain-list li{margin:.35rem 0}.contest-tabs{position:sticky;top:3.25rem;z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin:0 -.25rem;padding:.25rem 0}.contest-tabs-inner{display:flex;gap:.35rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:.25rem .15rem .45rem}.contest-tab{flex:1 0 auto;min-width:4.5rem;min-height:2.85rem;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:.45rem .9rem;font:inherit;font-size:.95rem;font-weight:600;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap}.contest-tab:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface-2)}.contest-tab.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.contest-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--warn-accent);color:#1c1917}.contest-tab.active .contest-tab-badge{background:var(--on-primary);color:var(--primary-text-strong)}.contest-header-card .contest-meta{margin:0}.contest-shell{gap:.85rem}.action-list-btn{width:100%;text-align:left;min-height:3.25rem;padding:.75rem .9rem;border-radius:10px;border:1px solid var(--border);background:var(--primary-soft);cursor:pointer;font:inherit}.action-list-btn:hover{border-color:var(--primary-soft-border)}.action-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.empty-state,.empty-hint{color:var(--text-body)}.bottom-nav,.topbar-nav-mobile-tools{display:none}@media(max-width:720px){.app{padding:1rem 1rem 5.5rem;max-width:100%}.topbar-nav-desktop{display:none}.topbar-nav-mobile-tools{display:flex;align-items:center;gap:.25rem}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--surface);border-top:1px solid var(--border);padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom,0px));justify-content:space-around;gap:.25rem}.bottom-nav-link{flex:1;min-height:3rem;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--text-secondary);font-weight:650;font-size:.95rem;border-radius:10px;padding:.35rem .5rem}.bottom-nav-link.active{color:var(--primary);background:var(--primary-soft)}.contest-tabs{top:3rem}.contest-tab{flex:1 1 22%;min-width:4.25rem}}@media(min-width:721px){.bottom-nav,.topbar-nav-mobile-tools{display:none!important}}.auth-splash{margin-top:.5rem;padding:1.75rem 1.4rem 1.5rem;border-radius:20px;gap:1rem}.auth-splash-brand{display:grid;justify-items:center;text-align:center;gap:.85rem;padding-bottom:.35rem}.auth-splash-brand .lede{margin:0;max-width:22rem;font-size:1.12rem;line-height:1.4;color:var(--text-body)}.auth-splash>h2{text-align:center;font-size:1.35rem}.auth-splash .btn.primary{width:100%;min-height:3.25rem}.auth-splash input,.auth-splash select,.auth-splash textarea{min-height:2.85rem;font-size:1.05rem;padding:.6rem .75rem}.auth-splash-links{text-align:center}.auth-splash-disclaimer{text-align:center;margin:0}.vote-deck{border-radius:20px;padding:1.25rem 1.15rem 1.4rem}.vote-canvas-shell{display:flex;flex-direction:row;align-items:stretch;gap:.4rem;width:100%;min-width:0;scroll-margin-top:7.25rem}.vote-bar-slot{display:flex;flex-direction:column;flex:0 0 4.35rem;width:4.35rem;min-width:44px;align-self:stretch}.btn.vote-bar{flex:1 1 auto;display:flex;align-items:center;justify-content:center;align-self:stretch;width:100%;height:100%;min-width:44px;min-height:44px;padding:.75rem .15rem;border-radius:16px;font-weight:800;font-size:1.05rem;letter-spacing:.04em;touch-action:manipulation;-webkit-user-select:none;user-select:none}.vote-bar-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;position:sticky;top:7.5rem}.vote-bar-word{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.18em;text-transform:uppercase;line-height:1}.vote-bar-chevron{font-size:1.55rem;font-weight:400;line-height:1}.btn.vote-bar.vote-no{background:var(--surface);border-color:var(--border-strong);color:var(--muted)}.btn.vote-bar.vote-no:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink);color:var(--text)}.btn.vote-bar.vote-yes{background:var(--primary);border-color:var(--gold);color:var(--on-primary)}.btn.vote-bar.vote-yes:hover:not(:disabled){background:var(--primary-hover)}.btn.vote-bar:focus-visible{outline:2px solid var(--gold);outline-offset:2px;z-index:1}.vote-canvas-shell>.nominee-card{flex:1 1 0;min-width:0;width:auto;touch-action:pan-y;transition:transform .16s ease,box-shadow .16s ease}.nominee-card.is-swipe-yes{transform:translate(10px);box-shadow:0 12px 32px color-mix(in srgb,var(--gold) 35%,transparent)}.nominee-card.is-swipe-no{transform:translate(-10px);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 18%,transparent)}.vote-deck-after{display:grid;justify-items:center;gap:.5rem;width:100%}@media(max-width:480px){.vote-deck{padding-left:.45rem;padding-right:.45rem}.vote-bar-slot{flex-basis:2.75rem;width:2.75rem}.btn.vote-bar{padding:.55rem .1rem;border-radius:12px;font-size:.95rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.vote-canvas-shell>.nominee-card{transition:none}.nominee-card.is-swipe-yes,.nominee-card.is-swipe-no{transform:none}}.feedback-widget{position:fixed;right:1rem;bottom:1rem;z-index:70}.feedback-fab{min-height:2.85rem;padding:.65rem 1.15rem;border-radius:999px;border:1px solid var(--primary);background:var(--primary);color:var(--on-primary);font:inherit;font-weight:650;font-size:1rem;cursor:pointer;box-shadow:0 4px 14px color-mix(in srgb,var(--text) 18%,transparent)}.feedback-fab:hover{background:var(--primary-hover)}.feedback-panel{width:min(22rem,calc(100vw - 1.5rem));max-height:min(70vh,28rem);overflow:auto;box-shadow:0 8px 28px color-mix(in srgb,var(--text) 22%,transparent)}.feedback-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}@media(max-width:720px){.feedback-widget{right:.75rem;bottom:calc(4.25rem + env(safe-area-inset-bottom,0px))}}
