@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2)format("woff2");font-weight:900;font-display:swap}:root{--color-bg:#f7f9fc;--color-surface:#fff;--color-surface-soft:#f3f6fb;--color-text-primary:#111827;--color-text-secondary:#4b5563;--color-text-muted:#6b7280;--color-line:#dde3ec;--color-line-soft:#e8edf5;--color-blue:#2563eb;--color-blue-dark:#1d4ed8;--color-blue-soft:#eaf1ff;--color-green:#10b981;--color-green-soft:#e7f8f1;--color-red:#ef4444;--color-red-soft:#feecec;--color-gray-chip:#f1f5f9;--color-cloud-blue:var(--color-blue-dark);--color-cloud-teal:#0f766e;--color-cloud-violet:#6d28d9;--color-cloud-ochre:#92400e;--color-cloud-slate:var(--color-text-secondary);--icon-default:var(--color-text-secondary);--icon-muted:var(--color-text-muted);--icon-subtle:#94a3b8;--icon-primary:var(--color-blue);--icon-primary-dark:var(--color-blue-dark);--icon-primary-soft-bg:var(--color-blue-soft);--icon-success:var(--color-green);--icon-success-soft-bg:var(--color-green-soft);--icon-danger:var(--color-red);--icon-danger-soft-bg:var(--color-red-soft);--icon-border:var(--color-line);--container-max:1200px;--container-wide:1280px;--page-padding-mobile:20px;--page-padding-tablet:32px;--page-padding-desktop:48px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-panel:16px;--line-height-title:1.18;--line-height-body:1.65;--line-height-compact:1.45;--shadow-card:0 8px 24px #0f172a0f;--shadow-panel:0 16px 40px #0f172a14;--font-sans:Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--background:var(--color-bg);--surface:var(--color-surface);--surface-strong:var(--color-surface-soft);--text:var(--color-text-primary);--muted:var(--color-text-secondary);--line:var(--color-line);--primary:var(--color-blue);--green:#047857;--red:#b91c1c;--yellow:#d89919;--shadow:var(--shadow-panel)}*{box-sizing:border-box}html{background:var(--background)}body{color:var(--text);background:var(--background);font-family:var(--font-sans);letter-spacing:0;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.site-navbar{z-index:50;background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid #dce2eadb;position:sticky;top:0}.site-navbar-inner{justify-content:space-between;align-items:center;gap:20px;width:min(1180px,100% - 40px);min-height:64px;margin:0 auto;display:flex}.site-brand{border-left:4px solid var(--primary);color:#111827;white-space:nowrap;align-content:center;gap:2px;min-height:42px;padding-left:10px;display:inline-grid}.site-brand strong{font-size:17px;font-weight:900;line-height:1.1}.site-nav-links{scrollbar-width:none;flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.site-nav-links::-webkit-scrollbar{display:none}.site-nav-link,.site-nav-cta{min-height:36px;color:var(--muted);white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:14px;font-weight:900;display:inline-flex}.site-nav-cta{border-color:var(--primary);background:var(--primary);color:#fff;padding:0 12px}.site-brand:hover,.site-brand:focus-visible,.site-nav-link:hover,.site-nav-link:focus-visible{color:var(--primary);outline:none}.site-nav-link:hover,.site-nav-link:focus-visible{color:var(--primary);background:#eaf1ffb8}.site-nav-link.active{background:var(--color-blue-soft);color:var(--primary);border-color:#2563eb2e}.site-nav-cta:hover,.site-nav-cta:focus-visible{color:#fff;background:#1747bd;border-color:#1747bd;outline:none}.page-shell{width:min(1180px,100% - 40px);margin:0 auto;padding:36px 0 56px}.workspace-header,.detail-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:var(--primary);margin:0 0 10px;font-size:13px;font-weight:800}h1,h2,h3,p{margin-top:0}h1{max-width:780px;margin-bottom:12px;font-size:clamp(34px,5vw,58px);line-height:1.06}.lead{max-width:720px;color:var(--muted);margin-bottom:0;font-size:18px;line-height:1.6}.sync-panel,.metric-card,.panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.sync-panel{min-width:230px;padding:18px}.sync-label,.sync-note,.metric-card span,.panel-heading span,small,dt{color:var(--muted);font-size:13px}.sync-panel strong{margin:6px 0 4px;font-size:26px;display:block}.sync-note{line-height:1.4;display:block}.sync-action{height:34px;color:var(--primary);background:#f3f6ff;border:1px solid #2357d83d;border-radius:8px;align-items:center;margin-top:14px;padding:0 11px;font-size:13px;font-weight:900;display:inline-flex}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.metric-card{padding:18px}.metric-card strong{margin:8px 0;font-size:34px;line-height:1;display:block}.metric-card p{color:var(--muted);margin-bottom:0;font-size:14px;line-height:1.45}.metric-card.accent{background:#f3f6ff;border-color:#2357d852}.content-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;display:grid}.panel{padding:20px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.panel-heading h2{margin-bottom:0;font-size:20px}.panel-heading p{color:var(--muted);margin:6px 0 0;line-height:1.45}.office-list,.region-bars{gap:10px;display:grid}.office-row,.region-row{align-items:center;gap:12px;display:grid}.office-row{background:var(--surface-strong);border-radius:8px;grid-template-columns:1fr auto;padding:12px}.office-row strong{color:var(--primary)}.region-row{grid-template-columns:92px 1fr 28px}.bar-track{background:#e6ebf2;border-radius:999px;height:10px;overflow:hidden}.bar-fill{border-radius:inherit;background:var(--green);height:100%}.candidate-section{box-shadow:none;background:0 0;border:0;margin-bottom:0;padding:0}.public-header{margin-bottom:18px;display:block}.public-header h1{margin-bottom:10px}.filter-panel{margin-bottom:18px}.search-panel{padding:22px}.search-panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.search-panel-heading h2{margin-bottom:6px;font-size:20px}.search-panel-heading p{color:var(--muted);margin-bottom:0;line-height:1.45}.result-summary{color:#253044;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.result-summary strong{margin-right:4px;font-size:16px}.result-summary span,.result-summary em{color:#253044;background:#f3f6ff;border:1px solid #2357d829;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:13px;font-style:normal;font-weight:800;display:inline-flex}.result-summary em{border-color:var(--line);color:var(--muted);background:#fff}.candidate-heading{margin-bottom:14px}.candidate-list{gap:14px;display:grid}.candidate-card{gap:var(--space-5);border:1px solid var(--line-soft);background:var(--surface);box-shadow:var(--shadow-card);border-radius:8px;grid-template-columns:minmax(270px,.9fr) minmax(300px,1fr) minmax(190px,.42fr);align-items:stretch;padding:18px;display:grid}.candidate-card:hover{border-color:#2357d847}.candidate-card.selected{border-color:#2563eb8a;box-shadow:0 0 0 1px #2563eb2e,0 14px 32px #2563eb1c}.candidate-main{gap:9px;min-width:0;display:grid}.candidate-identity{gap:var(--space-4);border-right:1px solid var(--line-soft);min-width:0;padding-right:var(--space-5);grid-template-columns:116px minmax(0,1fr);align-items:center;display:grid}.candidate-avatar-block{justify-items:center;gap:var(--space-2);display:grid;position:relative}.candidate-office-pill{border:1px solid var(--office-pill-border,#2563eb2e);background:var(--office-pill-bg,var(--primary));min-height:30px;color:var(--office-pill-color,#fff);white-space:nowrap;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.candidate-office-pill.governor{--office-pill-bg:#eef2ff;--office-pill-border:#c7d2fe;--office-pill-color:#3730a3}.candidate-office-pill.municipal{--office-pill-bg:#ecfdf5;--office-pill-border:#a7f3d0;--office-pill-color:#047857}.candidate-office-pill.education{--office-pill-bg:#fff7ed;--office-pill-border:#fed7aa;--office-pill-color:#9a3412}.candidate-avatar{border:1px solid var(--line-soft);color:#cbd5e1;background:linear-gradient(#f8fafc,#e8edf5);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;display:inline-flex}.candidate-profile{justify-items:start;min-width:0;display:grid}.candidate-location{max-width:100%;color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:900;line-height:1.35;display:inline-flex}.candidate-location svg{color:#94a3b8;flex:none}.candidate-party{color:var(--candidate-party-color,var(--primary));font-size:17px;font-weight:900;line-height:1.4}.candidate-party-inline{color:var(--candidate-party-color,#111827);font-weight:900}.party-democratic{--candidate-party-color:#004ea2}.party-people-power{--candidate-party-color:#e61e2b}.party-reform{--candidate-party-color:#c2410c}.party-progressive{--candidate-party-color:#b91c1c}.party-justice{--candidate-party-color:#a16207}.party-innovation{--candidate-party-color:#005bac}.party-labor{--candidate-party-color:#be123c}.party-women{--candidate-party-color:#7e22ce}.party-independent,.party-other{--candidate-party-color:#475569}.candidate-title-row,.candidate-meta,.candidate-submeta,.candidate-actions,.detail-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.candidate-title-row{gap:10px}.candidate-name{color:#111827;font-size:clamp(26px,2.6vw,34px);font-weight:900;line-height:1.12}.candidate-name:hover,.candidate-name:focus-visible,.detail-text-link:hover,.detail-text-link:focus-visible{color:var(--primary);outline:none}.ballot-chip{background:var(--surface-strong);min-height:26px;color:var(--muted);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.election-result-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.election-result-chip.elected{color:#047857;background:#ecfdf5;border-color:#0478573d}.election-result-chip.not-elected{color:#6b7280;background:#f7f8fb;border-color:#6b728033}.election-result-chip.unknown{color:#92400e;background:#fffbeb;border-color:#92400e38}.orientation-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.orientation-progressive{color:#2357d8;background:#eef4ff;border-color:#2357d83d}.orientation-conservative{color:#c8343c;background:#fff1f2;border-color:#c8343c3d}.criminal-record-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.criminal-record-chip.has-record{color:#be123c;background:#fff1f2;border-color:#be123c3d}.criminal-record-chip.none{color:#047857;background:#ecfdf5;border-color:#04785733}.criminal-record-chip.unknown,.criminal-record-chip.unavailable,.criminal-record-chip.not-analyzed{color:#92400e;background:#fffbeb;border-color:#92400e38}.candidate-meta{color:#253044;font-size:15px;font-weight:800}.candidate-meta span:not(:last-child):after,.candidate-submeta span:not(:last-child):after{content:"·";color:#a6afbd;margin-left:8px}.candidate-submeta{color:var(--muted);font-size:14px;line-height:1.45}.candidate-orientation-detail{color:#475062;flex-wrap:wrap;gap:6px 10px;font-size:13px;line-height:1.45;display:flex}.candidate-orientation-detail span{min-width:0}.candidate-actions{align-content:center;gap:var(--space-3);border-left:1px solid var(--line-soft);min-width:0;padding-left:var(--space-5);display:grid}.candidate-actions .action-button{gap:var(--space-2);width:100%;min-height:46px}.candidate-detail-button{font-size:15px}.candidate-fact-grid{align-content:center;gap:10px var(--space-8);grid-template-columns:auto minmax(0,1fr);min-width:0;margin:0;display:grid}.candidate-fact-grid div{display:contents}.candidate-fact-grid dt{color:#344052;font-size:15px;font-weight:900;line-height:1.45}.candidate-fact-grid dd{color:#111827;min-width:0;margin:0;font-size:15px;font-weight:900;line-height:1.45}.candidate-fact-result.elected{color:#047857}.candidate-fact-result.not-elected{color:#6b7280}.candidate-fact-result.unknown{color:#92400e}.candidate-fact-pledge{-webkit-line-clamp:2;color:#253044;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.candidate-material-links{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px 10px;font-size:12px;font-weight:900;display:flex}.candidate-material-links a{color:var(--muted);text-underline-offset:3px;text-decoration:underline}.candidate-material-links a:hover,.candidate-material-links a:focus-visible{color:var(--primary);outline:none}.action-button{border:1px solid var(--line);color:#253044;white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:0 13px;font-size:14px;font-weight:900;display:inline-flex}.action-button.primary{border-color:var(--primary);background:var(--primary);color:#fff}.action-button.secondary{color:var(--primary);background:#f3f6ff;border-color:#2357d838}.action-button.disabled{pointer-events:none;background:var(--surface-strong);color:var(--muted)}.detail-text-link{color:var(--muted);font-size:13px;font-weight:900}.empty-result,.state-panel{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:8px;padding:34px 20px}.empty-result strong{margin-bottom:8px;font-size:18px;display:block}.state-panel{max-width:620px;margin:64px auto 0}.state-panel h1{margin-bottom:10px;font-size:26px;line-height:1.25}.empty-result p,.state-panel p{color:var(--muted);margin-bottom:0;line-height:1.5}.state-panel button{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:42px;margin-top:18px;padding:0 14px;font-weight:900;display:inline-flex}.stats-disclosure{margin-top:18px}.stats-disclosure>summary{min-height:40px;color:var(--primary);cursor:pointer;background:#fff;border:1px solid #2357d833;border-radius:8px;align-items:center;padding:0 13px;font-size:14px;font-weight:900;display:inline-flex}.compact-stats{margin-top:12px;margin-bottom:0}.filter-form{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:12px;display:grid}.education-filter-form{grid-template-columns:minmax(220px,1.4fr) repeat(5,minmax(128px,1fr))}.education-filter-form .filter-actions{grid-column:1/-1}.candidate-search-page{width:min(1120px,100% - 40px);max-width:1120px;padding-top:var(--space-10)}.candidate-search-header{justify-content:space-between;align-items:flex-end;gap:var(--space-8);margin-bottom:var(--space-6);display:flex}.candidate-search-header>div:first-child{max-width:680px}.candidate-search-header h1{max-width:720px;margin-bottom:var(--space-2);font-size:clamp(36px,4vw,52px);line-height:var(--line-height-title)}.candidate-search-header .lead{font-size:17px}.candidate-search-data-summary{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));min-width:252px;margin:0;display:grid}.candidate-search-data-summary div{gap:var(--space-1);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--surface);min-height:72px;padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-card);align-content:center;display:grid}.candidate-search-data-summary dt{color:var(--muted);font-size:12px;font-weight:900}.candidate-search-data-summary dd{color:var(--text);margin:0;font-size:18px;font-weight:900}.candidate-search-panel{padding:var(--space-6);border-color:#dde3eceb;box-shadow:0 18px 42px #0f172a12}.candidate-search-panel .search-panel-heading{margin-bottom:var(--space-5)}.candidate-search-panel .search-panel-heading>div{min-width:0}.candidate-search-panel .search-panel-heading h2{font-size:22px}.candidate-search-panel .search-panel-heading p{word-break:keep-all;overflow-wrap:anywhere}.candidate-search-filter-field{grid-column:1/-1;gap:6px;display:grid}.candidate-search-filter-label{color:var(--muted);font-size:13px;font-weight:800}.candidate-search-office-tabs{gap:var(--space-1);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--surface-soft);width:100%;min-height:44px;padding:var(--space-1);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.candidate-search-office-tab{border-radius:var(--radius-sm);color:#253044;min-height:32px;padding:0 var(--space-3);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;font-size:14px;font-weight:900;display:inline-flex}.candidate-search-office-tab:hover,.candidate-search-office-tab:focus-visible{background:var(--surface);color:var(--primary);border-color:#2563eb3d;outline:none}.candidate-search-office-tab.active{background:var(--color-blue-soft);color:var(--primary);border-color:#2563eb57;box-shadow:inset 0 0 0 1px #2563eb14}.candidate-search-form{gap:var(--space-4) var(--space-3);grid-template-columns:minmax(320px,1fr) auto;align-items:end;min-width:0}.candidate-search-form .filter-actions{align-self:end;min-width:0;padding-top:0}.candidate-search-query{align-self:end;min-width:0}.candidate-search-input-wrap{align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);height:48px;color:var(--primary);background:#fff;grid-template-columns:auto minmax(0,1fr);padding:0 14px;display:grid}.filter-form label .candidate-search-input-wrap{color:var(--primary);font-size:inherit;font-weight:inherit}.filter-form .candidate-search-input-wrap input{height:100%;box-shadow:none;caret-color:var(--text);appearance:none;background:#fff;border:0;padding:0}.filter-form .candidate-search-input-wrap input:focus-visible{outline:none}.filter-form .candidate-search-input-wrap input::selection{color:var(--text);background:#2563eb29}.filter-form .candidate-search-input-wrap input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:inset 0 0 0 1000px #fff}.filter-form .candidate-search-input-wrap input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:inset 0 0 0 1000px #fff}.filter-form .candidate-search-input-wrap input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:inset 0 0 0 1000px #fff}.candidate-search-query:focus-within .candidate-search-input-wrap{border-color:#2563eb8f;box-shadow:0 0 0 3px #2563eb1f}.candidate-search-actions button,.candidate-search-actions a{gap:var(--space-2);height:48px}.candidate-search-detail-filters{gap:var(--space-2);grid-column:1/-1;align-self:stretch;min-width:0;display:grid}.candidate-search-detail-filters>summary{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-md);color:#253044;cursor:pointer;background:#fff;width:fit-content;min-height:42px;padding:0 12px;font-size:14px;font-weight:900;list-style:none;display:inline-flex}.candidate-search-detail-filters>summary::-webkit-details-marker{display:none}.candidate-search-detail-filters>summary span{align-items:center;gap:6px;display:inline-flex}.candidate-filter-chevron{transition:transform .16s}.candidate-search-detail-filters[open]>summary{color:var(--primary);background:#f8fbff;border-color:#2563eb3d}.candidate-search-detail-filters[open] .candidate-filter-chevron{transform:rotate(180deg)}.candidate-search-detail-filters>div{gap:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-md);padding:var(--space-4);background:#fbfcff;grid-template-columns:repeat(3,minmax(160px,1fr));display:grid}.candidate-search-applied-filters{align-items:center;gap:var(--space-2);border-top:1px solid var(--line-soft);padding-top:var(--space-3);flex-wrap:wrap;grid-column:1/-1;display:flex}.candidate-search-applied-filters>span{color:var(--muted);font-size:13px;font-weight:900}.candidate-search-applied-filters strong,.candidate-search-examples a{border-radius:var(--radius-sm);color:#253044;background:#f3f6ff;border:1px solid #2563eb24;align-items:center;min-height:30px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.candidate-search-start{justify-items:center;gap:var(--space-4);margin-top:var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-10) var(--space-6);box-shadow:var(--shadow-card);text-align:center;display:grid}.candidate-search-start-icon{background:var(--color-blue-soft);width:58px;height:58px;color:var(--primary);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.candidate-search-start-copy{justify-items:center;gap:var(--space-2);display:grid}.candidate-search-start strong{color:var(--text);font-size:20px;font-weight:500;line-height:var(--line-height-compact);word-break:keep-all;overflow-wrap:break-word;display:block}.candidate-search-start p{color:var(--muted);line-height:var(--line-height-compact);word-break:keep-all;overflow-wrap:anywhere;margin-bottom:0}.candidate-search-examples{justify-items:center;gap:var(--space-2);display:grid}.candidate-search-examples span{color:var(--muted);font-size:13px;font-weight:900}.candidate-search-examples div{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.candidate-search-examples a{background:var(--surface-strong);color:#253044;border-color:#0000;border-radius:999px;font-weight:500}.candidate-search-examples a:hover,.candidate-search-examples a:focus-visible{background:var(--color-blue-soft);color:var(--primary);border-color:#2563eb57;outline:none}.candidate-pledge-preview{gap:7px;max-width:720px;display:grid}.candidate-pledge-preview strong{color:#253044;font-size:13px;font-weight:900}.candidate-pledge-preview ol,.compare-pledge-list{color:#475062;gap:5px;margin:0;padding-left:18px;line-height:1.45;display:grid}.candidate-pledge-preview li,.compare-pledge-list li{padding-left:2px}.candidate-pledge-preview p{color:var(--muted);margin-bottom:0;font-size:14px;line-height:1.45}.filter-form label{gap:6px;display:grid}.filter-form label span{color:var(--muted);font-size:13px;font-weight:800}.filter-form input,.filter-form select{border:1px solid var(--line);width:100%;height:42px;color:var(--text);background:#fff;border-radius:8px;padding:0 12px}.filter-actions{align-items:center;gap:8px;display:flex}.filter-actions button,.filter-actions a,.pagination a{border:1px solid var(--primary);background:var(--primary);color:#fff;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;height:42px;padding:0 14px;font-weight:800;display:inline-flex}.filter-actions a{border-color:var(--line);color:var(--muted);background:#fff}.mayor-page{max-width:1260px}.landing-layout{--landing-nav-height:64px}.landing-page{width:min(var(--container-wide), calc(100% - 40px));min-height:calc(100svh - var(--landing-nav-height));grid-template-rows:minmax(0,1fr) auto;align-items:stretch;gap:0;padding:clamp(32px,5svh,56px) 0 0;display:grid}.landing-hero{grid-template-columns:minmax(0,.86fr) minmax(540px,1.18fr);align-content:center;align-items:center;gap:clamp(32px,5vw,72px);min-height:0;padding:0 0 clamp(24px,4svh,44px);display:grid;position:relative}.landing-hero:before{content:"";z-index:-1;background:linear-gradient(105deg,#f7f9fcf5 0%,#f4f8fff2 45%,#e8f1ffe6 100%),radial-gradient(circle at 74% 20%,#2563eb1f,#0000 34%);border-bottom:1px solid #dde3ecb8;position:absolute;inset:-56px max(-8vw,-120px) -36px}.landing-hero-copy{min-width:0;max-width:520px}.landing-hero h1{color:#111827;letter-spacing:0;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance;max-width:540px;margin-bottom:22px;font-size:clamp(46px,4.7vw,66px);line-height:1.12}.landing-hero .lead{color:#344052;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance;max-width:500px;font-size:20px;line-height:1.62}.landing-hero .lead span{display:inline}.landing-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.landing-actions .action-button{gap:8px;min-height:52px;padding-inline:22px;font-size:15px}.landing-actions .action-button svg{flex:none}.landing-actions .action-button.secondary{color:var(--primary);background:#fff;border-color:#2563eb33}.landing-source-note{color:var(--muted);align-items:center;gap:8px;margin:22px 0 0;font-size:14px;font-weight:800;line-height:1.45;display:inline-flex}.landing-source-note svg{color:var(--icon-primary);flex:none}.landing-dashboard-preview{min-width:0}.landing-preview-window{background:#ffffffeb;border:1px solid #dde3eceb;border-radius:20px;gap:14px;padding:28px;display:grid;box-shadow:0 0 0 18px #ffffff85,0 28px 70px #2563eb1f}.landing-preview-topbar,.landing-preview-tabs,.landing-preview-metrics,.landing-chart-layout,.landing-preview-cta,.landing-feature-item{align-items:center;display:flex}.landing-preview-topbar{justify-content:space-between;gap:16px}.landing-preview-topbar strong{color:#111827;min-width:0;font-size:17px;line-height:1.35}.landing-source-link{border:1px solid var(--line);min-height:34px;color:var(--muted);white-space:nowrap;background:#fbfdff;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:900;display:inline-flex}.landing-source-link svg{color:var(--icon-muted)}.landing-preview-tabs{border-bottom:1px solid var(--line-soft);gap:6px}.landing-preview-tabs span{min-height:42px;color:var(--muted);border:1px solid #0000;border-bottom-width:2px;border-radius:8px 8px 0 0;align-items:center;gap:7px;padding:0 18px;font-size:14px;font-weight:900;display:inline-flex}.landing-preview-tabs span.active{border-color:var(--color-blue-soft);border-bottom-color:var(--primary);background:var(--color-blue-soft);color:var(--primary)}.landing-preview-summary,.landing-chart-card,.landing-map-card,.landing-preview-cta{border:1px solid var(--line-soft);box-shadow:var(--shadow-card);background:#fff;border-radius:8px}.landing-preview-summary{gap:18px;padding:18px;display:grid}.landing-preview-summary h2,.landing-chart-card h2,.landing-map-card h2,.landing-preview-cta h2,.landing-feature-item h2{color:#111827;margin-bottom:0;font-size:15px;line-height:1.35}.landing-preview-metrics{justify-content:space-between;gap:10px}.landing-preview-metric{grid-template-columns:34px minmax(0,1fr);align-items:center;gap:2px 10px;min-width:0;display:grid}.landing-preview-metric-icon{width:34px;height:34px;color:var(--icon-primary);background:linear-gradient(135deg,#2563eb29,#2563eb0a),#f6f9ff;border-radius:50%;grid-row:1/3;justify-content:center;align-items:center;display:inline-flex}.landing-preview-metric small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.2}.landing-preview-metric strong{color:#111827;font-size:15px;line-height:1.1}.landing-preview-grid{grid-template-columns:minmax(0,1.24fr) minmax(236px,.86fr);gap:14px;display:grid}.landing-chart-card,.landing-map-card{align-content:start;gap:16px;min-width:0;padding:18px;display:grid}.landing-map-card{padding:16px}.landing-card-title{align-items:center;gap:7px;display:inline-flex}.landing-card-title svg{color:var(--icon-primary);flex:none}.landing-chart-layout{gap:20px}.landing-donut{background:conic-gradient(#2563eb 0deg 102deg,#3b82f6 102deg 182deg,#60a5fa 182deg 237deg,#93c5fd 237deg 286deg,#bfdbfe 286deg 318deg,#dbeafe 318deg 360deg);border-radius:50%;flex:0 0 150px;place-items:center;width:150px;height:150px;display:grid;position:relative}.landing-donut:after{content:"";box-shadow:inset 0 0 0 1px var(--line-soft);background:#fff;border-radius:50%;position:absolute;inset:42px}.landing-donut span{z-index:1;color:var(--muted);text-align:center;font-size:11px;font-weight:800;line-height:1.25;display:grid;position:relative}.landing-donut strong{color:#111827;font-size:18px;line-height:1}.landing-chart-legend{flex:auto;gap:9px;min-width:0;margin:0;display:grid}.landing-chart-legend div{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.landing-chart-legend dt,.landing-chart-legend dd{color:#344052;min-width:0;margin:0;font-size:13px;font-weight:800}.landing-chart-legend dd{text-align:right;white-space:nowrap}.landing-chart-legend dt{text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;align-items:center;gap:8px;display:flex;overflow:hidden}.legend-dot{border-radius:3px;width:10px;height:10px}.legend-dot.tone-1{background:#2563eb}.legend-dot.tone-2{background:#3b82f6}.legend-dot.tone-3{background:#60a5fa}.legend-dot.tone-4{background:#93c5fd}.legend-dot.tone-5{background:#bfdbfe}.legend-dot.tone-6{background:#dbeafe}.landing-map-panel{gap:10px;display:grid}.landing-map-viewport{border:1px solid var(--line-soft);background:linear-gradient(#f7f9fcf5,#eaf1ffc7),#f8fbff;border-radius:8px;place-items:center;width:100%;padding:clamp(6px,1.8%,10px);display:grid;position:relative;overflow:hidden}.landing-korea-boundary-map{width:100%;height:100%;display:block;overflow:visible}.korea-province{fill:#bfdbfea8;stroke:#fffffff0;stroke-linejoin:round;stroke-width:1.05px;vector-effect:non-scaling-stroke;transition:fill .16s,stroke .16s,stroke-width .16s}.korea-province-link{cursor:pointer;outline:none}.korea-province-link:nth-child(3n+1) .korea-province{fill:#93c5fdb8}.korea-province-link:nth-child(3n+2) .korea-province{fill:#60a5fa9e}.korea-province-link:hover .korea-province,.korea-province-link:focus-visible .korea-province{fill:#2563ebdb;stroke:#1d4ed8;stroke-width:1.45px}.korea-label-layer{pointer-events:none}.korea-map-label{fill:#7f8b9b;font-family:var(--font-sans);letter-spacing:0;paint-order:stroke fill;stroke:#ffffffe0;stroke-linejoin:round;stroke-width:3px;font-size:9px;font-weight:900}.korea-map-label-link{pointer-events:auto;cursor:pointer;outline:none}.korea-map-label-link:hover .korea-map-label,.korea-map-label-link:focus-visible .korea-map-label{fill:#1d4ed8;stroke:#fffffff5}.landing-preview-cta{gap:14px;padding:16px}.landing-preview-cta-icon,.landing-feature-icon{color:var(--icon-primary);background:linear-gradient(135deg,#2563eb29,#2563eb0a),#f2f6ff;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.landing-preview-cta-icon{width:48px;height:48px}.landing-preview-cta p,.landing-feature-item p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.55}.landing-preview-button{min-height:42px;color:var(--primary);white-space:nowrap;background:#fff;border:1px solid #2563eb33;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-left:auto;padding:0 14px;font-size:13px;font-weight:900;display:inline-flex}.landing-preview-button svg{flex:none}.landing-feature-strip{isolation:isolate;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,3vw,34px);padding:42px 0 44px;display:grid;position:relative}.landing-feature-strip:before{content:"";z-index:-1;background:#fff;border-top:1px solid #e8edf5eb;border-bottom:1px solid #e8edf5eb;position:absolute;inset:0 calc(50% - 50vw)}.landing-feature-item{grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:18px;min-width:0;display:grid}.landing-feature-item>div{min-width:0}.landing-feature-item h2,.landing-feature-item p{word-break:keep-all;overflow-wrap:break-word;line-break:strict;text-wrap:pretty}.landing-feature-icon{background:#eff4ff;width:56px;height:56px;box-shadow:inset 0 0 0 1px #2563eb0f}.landing-footer{color:var(--muted);text-align:center;background:#fff;padding:20px 20px 36px}.landing-footer-notice{color:#7a8494;text-align:center;background:#f7faff;border:1px solid #e8edf5f5;border-radius:8px;grid-template-columns:28px minmax(0,1fr) 28px;justify-content:center;align-items:center;gap:10px;width:min(760px,100%);margin:0 auto 26px;padding:11px 16px;display:grid}.landing-footer-notice:after{content:"";width:28px;height:28px}.landing-footer-notice-icon{background:var(--color-blue-soft);width:28px;height:28px;color:var(--icon-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.landing-footer-notice p{text-align:center;justify-self:center;max-width:100%;margin-bottom:0;font-size:13px;font-weight:800;line-height:1.5}.landing-footer-links{flex-wrap:wrap;justify-content:center;gap:8px 34px;margin-bottom:22px;display:flex}.landing-footer-links a{color:#6b7280;font-size:13px;font-weight:900}.landing-footer-links a:hover{color:var(--primary)}.landing-footer-links a:focus-visible{color:var(--primary);outline:2px solid var(--primary);outline-offset:var(--space-1)}.landing-footer p{color:#8a94a4;margin-bottom:0;font-size:13px;font-weight:800;line-height:1.5}.mayor-analysis{gap:18px;display:grid}.mayor-analysis-header{margin-bottom:0}.mayor-analysis-header h1{margin-bottom:10px}.mayor-filter-form{grid-template-columns:minmax(132px,.8fr) minmax(132px,.8fr) minmax(132px,.8fr) minmax(190px,1.15fr) minmax(190px,1.15fr) auto}.mayor-filter-form.has-district-filter{grid-template-columns:minmax(112px,.75fr) minmax(112px,.75fr) minmax(112px,.75fr) minmax(120px,.75fr) minmax(180px,1.1fr) minmax(170px,1.05fr) auto}.mayor-cloud-grid{grid-template-columns:minmax(0,1fr) 340px;gap:16px;display:grid}.mayor-wordcloud-panel,.mayor-keyword-panel,.candidate-keyword-section,.policy-category-strip{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;padding:20px}.mayor-section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.mayor-wordcloud-panel{flex-direction:column;min-width:0;display:flex}.mayor-section-heading.compact{gap:4px;display:grid}.mayor-section-heading h2{margin-bottom:0;font-size:20px}.mayor-section-heading p{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.5}.text-reset-button{min-height:38px;color:var(--primary);white-space:nowrap;cursor:pointer;background:#f3f6ff;border:1px solid #2357d838;border-radius:8px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.mayor-wordcloud-stage{place-content:center;align-items:center;gap:var(--space-2);background:var(--color-surface);min-height:420px;padding:var(--space-2);flex-wrap:wrap;flex-shrink:0;margin-block:auto;display:flex;position:relative}.mayor-wordcloud-stage.is-packed{display:block}.mayor-wordcloud-stage.is-packed .mayor-cloud-word{position:absolute}.mayor-cloud-word{border-radius:var(--radius-sm);width:max-content;max-width:calc(100% - 16px);min-height:36px;padding:var(--space-1) var(--space-2);font-size:var(--word-size);font-weight:700;font-family:var(--font-sans);letter-spacing:0;word-break:keep-all;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:1px solid #0000;line-height:1.25;display:inline-block}.mayor-cloud-word.cloud-tone-0{color:var(--color-cloud-blue)}.mayor-cloud-word.cloud-tone-1{color:var(--color-cloud-teal)}.mayor-cloud-word.cloud-tone-2{color:var(--color-cloud-violet)}.mayor-cloud-word.cloud-tone-3{color:var(--color-cloud-ochre)}.mayor-cloud-word.cloud-tone-4{color:var(--color-cloud-slate)}.mayor-cloud-legend{gap:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-line-soft);padding-bottom:var(--space-4);color:var(--color-text-secondary);font-size:12px;line-height:var(--line-height-compact);flex-wrap:wrap;display:flex}.mayor-cloud-legend>span{align-items:center;gap:var(--space-1);display:inline-flex}.cloud-palette-sample{background:linear-gradient(90deg, var(--color-cloud-blue) 0% 20%, var(--color-cloud-teal) 20% 40%, var(--color-cloud-violet) 40% 60%, var(--color-cloud-ochre) 60% 80%, var(--color-cloud-slate) 80%);border-radius:2px;width:30px;height:8px}.mayor-cloud-inspector{align-items:center;gap:var(--space-1) var(--space-3);border-top:1px solid var(--color-line-soft);min-height:52px;padding-top:var(--space-3);color:var(--color-text-secondary);font-size:13px;line-height:var(--line-height-compact);flex-wrap:wrap;display:flex}.mayor-cloud-inspector strong{color:var(--color-text-primary)}.mayor-cloud-expand{justify-content:space-between;align-items:center;gap:var(--space-2);padding-block:var(--space-3);color:var(--color-text-secondary);flex-wrap:wrap;font-size:12px;display:flex}.mayor-cloud-word:hover,.mayor-cloud-word:focus-visible,.mayor-cloud-word.selected,.keyword-rank-row:hover,.keyword-rank-row:focus-visible,.keyword-rank-row.selected{border-color:var(--color-blue-dark);background:var(--color-blue-soft)}.mayor-cloud-word.selected,.keyword-rank-row.selected{text-underline-offset:4px;text-decoration:underline}.mayor-cloud-word:focus-visible,.keyword-rank-row:focus-visible{outline:2px solid var(--color-blue-dark);outline-offset:2px}.keyword-rank-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.keyword-rank-row{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:3px 8px;padding:6px 8px;display:grid}.keyword-rank-row span{width:26px;height:26px;color:var(--primary);background:#eff6ff;border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:900;display:inline-flex}.keyword-rank-row strong{overflow-wrap:anywhere;min-width:0;font-size:15px;line-height:1.35}.keyword-rank-row em{color:var(--muted);grid-column:2;font-size:12px;font-style:normal;font-weight:800;line-height:1.35}.candidate-keyword-list,.mayor-pledge-list,.policy-category-list{gap:10px;display:grid}.candidate-keyword-row,.policy-category-row{border-top:1px solid var(--line);grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);align-items:center;gap:12px;padding-top:12px;display:grid}.candidate-keyword-row:first-child,.policy-category-row:first-child{border-top:0;padding-top:0}.candidate-keyword-row strong,.candidate-keyword-row span,.policy-category-row strong,.policy-category-row span,.policy-category-row em{display:block}.candidate-keyword-row span,.policy-category-row span,.policy-category-row em{color:var(--muted);font-size:13px;font-style:normal;font-weight:800;line-height:1.45}.keyword-badge-list{flex-wrap:wrap;gap:7px;display:flex}.keyword-badge-list button{min-height:30px;color:var(--primary);cursor:pointer;background:#f3f6ff;border:1px solid #2357d82e;border-radius:999px;align-items:center;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.keyword-badge-list button.selected,.keyword-badge-list button:hover,.keyword-badge-list button:focus-visible{border-color:var(--primary);background:var(--primary);color:#fff;outline:none}.incremental-load-more{justify-content:center;padding-top:8px;display:flex}.incremental-load-more button{min-height:44px;color:var(--primary);cursor:pointer;background:#fff;border:1px solid #2357d833;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 10px;padding:0 16px;font-size:14px;font-weight:900;display:inline-flex}.incremental-load-more button:hover,.incremental-load-more button:focus-visible{border-color:var(--primary);background:#f3f6ff;outline:none}.incremental-load-more span{color:var(--muted);font-size:12px;font-weight:800}.policy-category-strip{box-shadow:none}.policy-category-row{grid-template-columns:150px 80px minmax(0,1fr)}.mayor-pledge-results{gap:12px;display:grid}.mayor-pledge-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;display:grid}.mayor-pledge-copy{gap:8px;min-width:0;display:grid}.mayor-pledge-copy h3{margin-bottom:0;font-size:18px;line-height:1.35}.mayor-pledge-copy p,.mayor-pledge-copy small{color:var(--muted);line-height:1.55}.mayor-pledge-copy p{margin-bottom:0;font-size:14px}.mayor-pledge-copy small{font-size:13px}.mayor-pledge-party{color:var(--candidate-party-color,var(--primary))}.mayor-pledge-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:150px;display:flex}.mayor-empty-state{text-align:left}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}.material-table{min-width:980px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 12px}th{color:var(--muted);font-size:13px;font-weight:800}td{font-size:15px}td a,.text-link{color:var(--primary);font-weight:800}.hash-text{overflow-wrap:anywhere;max-width:240px;color:var(--muted);font-size:12px;line-height:1.45;display:inline-block}.empty-copy{color:var(--muted);margin-bottom:0;line-height:1.5}.empty-state{color:var(--muted);text-align:center;padding:36px 12px}td small,.district-name{margin-top:4px;display:block}.region-name{font-weight:800}.status-pill{color:#fff;white-space:nowrap;border-radius:999px;justify-content:center;min-width:72px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.status-pill.pending{background:var(--muted)}.status-pill.collected{background:var(--primary)}.status-pill.analyzed{background:var(--green)}.disclosure-excerpt{margin-top:14px}.disclosure-excerpt summary{color:var(--primary);cursor:pointer;font-size:14px;font-weight:900}.disclosure-excerpt p{border:1px solid var(--line);background:var(--surface-strong);color:#253044;overflow-wrap:anywhere;border-radius:8px;margin:10px 0 0;padding:12px;font-size:13px;line-height:1.6}.detail-page{max-width:1040px}.back-link{color:#253044;background:#fff;border:1px solid #2357d833;border-radius:8px;align-items:center;width:fit-content;min-height:38px;margin-bottom:20px;padding:0 13px;font-size:14px;font-weight:900;display:inline-flex}.back-link:hover,.back-link:focus-visible{color:var(--primary);border-color:#2357d873;outline:none}.detail-header{align-items:center}.public-detail-header{margin-bottom:18px}.detail-actions{justify-content:flex-end;min-width:220px}.detail-grid{grid-template-columns:.9fr 1.1fr}.detail-basic-grid{grid-template-columns:1fr}.info-list{gap:14px;margin:0;display:grid}.info-list div{grid-template-columns:120px 1fr;gap:14px;display:grid}.info-list.compact div{grid-template-columns:140px 1fr}dt{font-weight:800}dd{margin:0;line-height:1.55}.career-list{gap:4px;margin:0;padding-left:18px;display:grid}.criminal-record-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.swatch-row{align-items:center;gap:8px;display:flex}.color-swatch{border:1px solid var(--line);border-radius:50%;width:26px;height:26px}.source-panel{align-content:start}.material-link-list{gap:10px;display:grid}.material-link-item{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.material-link-item strong,.material-link-item span{display:block}.material-link-item strong{margin-bottom:4px;font-size:15px}.material-link-item span{color:var(--muted);font-size:13px;font-weight:800}.pledge-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.detail-page .pledge-list{grid-template-columns:1fr}.pledge-item{min-height:100%;scroll-margin-top:var(--space-8);border:1px solid var(--line);background:#fbfcfe;border-radius:8px;padding:16px}.pledge-item span{color:var(--red);font-size:12px;font-weight:900}.pledge-item h3{margin:8px 0;font-size:18px}.pledge-item p,.pledge-item li{color:var(--muted);font-size:14px;line-height:1.5}.pledge-item details{margin-top:12px}.pledge-item summary{cursor:pointer;color:var(--primary);font-size:14px;font-weight:800}.pledge-item ul{gap:4px;margin:12px 0 0;padding-left:18px;display:grid}.pledge-sections{gap:14px;margin-top:14px;display:grid}.pledge-section{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.pledge-section:first-child{border-top:0;padding-top:0}.pledge-section h4{color:var(--primary);margin:0;font-size:14px;font-weight:900}.pledge-item .pledge-sections ul,.pledge-item .pledge-raw-lines{gap:8px;margin:0;padding-left:0;list-style:none;display:grid}.pledge-section-items>li{padding-left:14px;position:relative}.pledge-section-items>li:before{background:var(--green);content:"";border-radius:999px;width:6px;height:6px;position:absolute;top:10px;left:0}.pledge-section-item-text{color:var(--text);margin:0;font-size:15px;font-weight:800;line-height:1.55}.pledge-item .pledge-detail-lines{border-left:2px solid var(--line);gap:6px;margin-top:8px;padding-left:12px}.pledge-detail-lines li,.pledge-loose-lines li,.pledge-raw-lines li{line-height:1.65}.pagination{justify-content:center;align-items:center;gap:12px;margin-top:18px;display:flex}.pagination span{color:var(--muted);font-size:14px;font-weight:800}.pagination a.disabled{pointer-events:none;border-color:var(--line);background:var(--surface-strong);color:var(--muted)}.wordcloud-page{max-width:1260px}.live-cloud-panel{gap:16px;display:grid;position:relative}.skip-cloud-link{z-index:1000;background:var(--primary);color:#fff;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:900;position:absolute;top:0;left:-999px}.skip-cloud-link:focus{left:0}.cloud-toolbar,.cloud-controlbar,.cloud-visual-grid,.analysis-method-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.cloud-toolbar{justify-content:space-between;align-items:flex-start;gap:24px;padding:28px;display:flex}.cloud-toolbar h1{margin-bottom:12px;font-size:clamp(32px,4.5vw,50px)}.cloud-toolbar .lead{word-break:keep-all;overflow-wrap:break-word;line-break:strict;text-wrap:pretty}.cloud-actions{gap:10px;min-width:244px;display:grid}.primary-cloud-action,.secondary-cloud-action,.cloud-control-actions a{border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:0 14px;font-size:14px;font-weight:900;display:inline-flex}.primary-cloud-action{border:1px solid var(--primary);background:var(--primary);color:#fff;flex-direction:column;align-items:flex-start;line-height:1.25}.primary-cloud-action span{color:#ffffffd1;margin-top:2px;font-size:12px}.secondary-cloud-action,.cloud-control-actions a{color:var(--primary);background:#f3f6ff;border:1px solid #2357d838}.cloud-summary-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.cloud-summary-card{border:1px solid var(--line);min-height:94px;color:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:8px;padding:14px}.cloud-summary-card span{width:24px;height:24px;color:var(--primary);background:#eff6ff;border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:900;display:inline-flex}.cloud-summary-card strong{margin:10px 0 6px;font-size:20px;display:block}.cloud-summary-card em,.cloud-side-rank em,.mobile-keyword-card em{color:var(--muted);font-size:13px;font-style:normal;font-weight:800;line-height:1.4;display:block}.cloud-summary-card:hover,.cloud-summary-card:focus-visible,.cloud-summary-card.selected{background:#f8fbff;border-color:#2357d86b;outline:none}.cloud-mode-tabs{flex-wrap:wrap;gap:8px;display:flex}.cloud-mode-tabs button{border:1px solid var(--line);min-width:176px;min-height:54px;color:var(--muted);text-align:left;cursor:pointer;background:#fff;border-radius:8px;align-content:center;gap:3px;padding:8px 14px;display:grid}.cloud-mode-tabs button span{color:#253044;font-weight:900}.cloud-mode-tabs button small{font-size:12px;line-height:1.3}.cloud-mode-tabs button.active{border-color:var(--primary);background:#f3f6ff}.cloud-mode-tabs button.active span{color:var(--primary)}.cloud-controlbar{grid-template-columns:minmax(240px,1fr) minmax(180px,240px) auto;align-items:end;gap:12px;padding:18px;display:grid}.keyword-search,.keyword-sort{gap:6px;display:grid}.keyword-search span,.keyword-sort span{color:var(--muted);font-size:13px;font-weight:900}.keyword-search input,.keyword-sort select{border:1px solid var(--line);width:100%;height:42px;color:var(--text);background:#fff;border-radius:8px;padding:0 12px}.keyword-search input:focus,.keyword-sort select:focus{border-color:#2357d87a;outline:3px solid #2357d81f}.cloud-control-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.cloud-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:800;display:flex}.cloud-legend strong{color:#253044}.cloud-legend-chips{grid-template-columns:repeat(3,34px);align-items:center;gap:4px;display:inline-grid}.legend-chip{border-radius:999px;height:12px}.legend-chip.low{background:#60a5fa}.legend-chip.middle{background:#2563eb}.legend-chip.high{background:#0f172a}.cloud-visual-grid{grid-template-columns:minmax(0,1fr) 280px;gap:16px;padding:18px;display:grid}.cloud-disclosure>summary{display:none}.live-cloud-stage{border:1px solid var(--line);background:linear-gradient(#f8fbffeb,#fffffff5),radial-gradient(circle at 50% 45%,#fff 0%,#eef4ff 78%);border-radius:8px;height:500px;position:relative;overflow:hidden}.dock-cloud-stage{cursor:default}.cloud-svg{width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.category-cloud-stage{height:500px}.category-cloud-svg{overflow:hidden}.category-bubble-node,.cloud-word-node{cursor:pointer;outline:none}.category-bubble-node{transform-box:fill-box;transform-origin:50%;transition:transform .18s cubic-bezier(.2,.85,.2,1),filter .18s}.category-bubble-node:hover,.category-bubble-node:focus-visible,.category-bubble-node.highlighted{filter:drop-shadow(0 16px 24px #212b3d2e)}.category-bubble-node:focus-visible .category-bubble,.category-bubble-node.highlighted .category-bubble{stroke:#0f172a8f;stroke-width:4px}.category-bubble{opacity:.9;stroke:#ffffffe6;stroke-width:3px}.category-bubble-label{fill:#fff;letter-spacing:0;pointer-events:none;font-family:Malgun Gothic,Apple SD Gothic Neo,Arial,sans-serif}.category-bubble-count{fill:#ffffffd1;pointer-events:none;font-size:13px;font-weight:900}.cloud-word{paint-order:stroke fill;stroke:#fffffff0;stroke-linejoin:round;stroke-width:4px;transform-box:view-box;transform-origin:0 0;-webkit-user-select:none;user-select:none;will-change:transform;font-family:Malgun Gothic,Apple SD Gothic Neo,Arial,sans-serif;font-weight:900;transition:transform .19s cubic-bezier(.2,.85,.2,1),filter .19s,stroke-width .19s}.cloud-loading{color:var(--muted);font-size:14px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cloud-word-node:hover .cloud-word,.cloud-word-node:focus-visible .cloud-word,.cloud-word-node.highlighted .cloud-word{filter:drop-shadow(0 12px 22px #212b3d33);stroke-width:6px}.cloud-tooltip{left:var(--tooltip-x);top:var(--tooltip-y);z-index:999;max-width:min(360px,100% - 36px);color:var(--text);pointer-events:none;transform:var(--tooltip-shift);background:#fffffff7;border:1px solid #15171c14;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex;position:absolute;box-shadow:0 18px 36px #212b3d2e}.cloud-tooltip strong{font-size:14px}.cloud-tooltip span,.cloud-tooltip em{min-width:0;color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.cloud-side-rank{border:1px solid var(--line);background:#fbfcff;border-radius:8px;align-content:start;gap:16px;padding:18px;display:grid}.cloud-side-rank span,.analysis-method-panel span{color:var(--muted);font-size:13px;font-weight:900}.cloud-side-rank h2,.analysis-method-panel h2,.cloud-table-heading h2{margin-bottom:0;font-size:20px}.cloud-side-rank ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cloud-side-rank li button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:28px 1fr;align-items:center;gap:4px 8px;padding:9px;display:grid}.cloud-side-rank li span{width:24px;height:24px;color:var(--primary);background:#eff6ff;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.cloud-side-rank li strong{font-size:16px}.cloud-side-rank li em{grid-column:2}.cloud-side-rank li:hover button,.cloud-side-rank li.highlighted button,.cloud-side-rank li button:focus-visible{background:#fff;border-color:#2357d83d;outline:none}.analysis-method-panel{gap:12px;padding:22px 28px;display:grid}.analysis-method-panel p{max-width:920px;color:var(--muted);margin-bottom:0;line-height:1.6}.analysis-method-links{flex-wrap:wrap;gap:8px;display:flex}.analysis-method-links a{min-height:38px;color:var(--primary);background:#f3f6ff;border:1px solid #2357d838;border-radius:8px;align-items:center;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}@media (max-width:900px){.workspace-header,.detail-header,.content-grid,.detail-grid{grid-template-columns:1fr}.workspace-header,.detail-header,.cloud-toolbar{display:grid}.cloud-actions{min-width:0}.cloud-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.cloud-controlbar{grid-template-columns:1fr 1fr}.cloud-control-actions{grid-column:1/-1;justify-content:flex-start}.cloud-visual-grid,.mayor-filter-form,.mayor-cloud-grid,.candidate-keyword-row,.mayor-pledge-row{grid-template-columns:1fr}.mayor-pledge-actions{justify-content:flex-start;min-width:0}.policy-category-row{grid-template-columns:minmax(140px,.6fr) minmax(70px,.3fr) minmax(0,1fr)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-form{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}.candidate-card{grid-template-columns:1fr}.candidate-identity{border-right:0;border-bottom:1px solid var(--line-soft);padding-right:0;padding-bottom:var(--space-5)}.candidate-fact-grid{border-bottom:1px solid var(--line-soft);padding-bottom:var(--space-5)}.candidate-actions{border-left:0;padding-left:0}.candidate-actions,.detail-actions{justify-content:flex-start;min-width:0}.pledge-list{grid-template-columns:1fr}.landing-page{width:min(var(--container-wide), calc(100% - 32px));grid-template-rows:auto;gap:32px;min-height:0;padding-top:40px}.landing-hero{grid-template-columns:1fr;gap:32px;min-height:0}.landing-hero-copy{max-width:680px}.landing-dashboard-preview{max-width:760px}.landing-feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.landing-layout{--landing-nav-height:98px}.site-navbar-inner{gap:8px;width:min(1180px,100% - 24px);padding:10px 0;display:grid}.site-brand{min-height:32px;font-size:16px}.site-nav-links{flex-wrap:nowrap;justify-content:flex-start;gap:16px;width:100%;padding-bottom:2px;overflow-x:auto}.site-nav-link,.site-nav-cta{flex:none;min-height:34px}.page-shell{width:min(1180px,100% - 24px);padding-top:24px}h1{font-size:34px}.lead{font-size:16px}.metric-grid,.filter-form{grid-template-columns:1fr}.mayor-section-heading{display:grid}.mayor-wordcloud-panel,.mayor-keyword-panel,.candidate-keyword-section,.policy-category-strip{padding:18px}.mayor-wordcloud-stage{min-height:480px}.mayor-cloud-word{min-height:44px;font-size:var(--word-size-small)}.keyword-rank-row{grid-template-columns:30px minmax(0,1fr)}.keyword-rank-row em{text-align:left;grid-column:2}.policy-category-row{grid-template-columns:1fr}.mayor-pledge-actions{width:100%;display:grid}.search-panel{padding:18px}.result-summary{align-items:flex-start}.result-summary strong{width:100%}.candidate-card{padding:16px}.candidate-identity{gap:var(--space-4);grid-template-columns:82px minmax(0,1fr)}.candidate-avatar{width:72px;height:72px}.candidate-avatar svg{width:38px;height:38px}.candidate-office-pill{min-height:26px;padding:0 9px;font-size:12px}.candidate-name{font-size:26px}.candidate-meta,.candidate-submeta{gap:5px;display:grid}.candidate-meta span:not(:last-child):after,.candidate-submeta span:not(:last-child):after{content:"";margin-left:0}.candidate-actions,.detail-actions{width:100%;display:grid}.candidate-actions{grid-template-columns:1fr}.detail-actions{grid-template-columns:1fr 1fr}.candidate-fact-grid{grid-template-columns:86px minmax(0,1fr);gap:8px 12px}.candidate-fact-grid dt,.candidate-fact-grid dd{font-size:14px}.detail-text-link{grid-column:1/-1}.action-button{width:100%}.material-link-item{grid-template-columns:1fr}.info-list div,.info-list.compact div{grid-template-columns:1fr;gap:4px}.cloud-toolbar,.cloud-legend,.cloud-mode-tabs,.cloud-controlbar{padding-left:18px;padding-right:18px}.cloud-summary-strip,.cloud-controlbar{grid-template-columns:1fr}.cloud-disclosure{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.cloud-disclosure>summary{min-height:48px;color:var(--primary);cursor:pointer;justify-content:space-between;align-items:center;padding:0 18px;font-size:14px;font-weight:900;display:flex}.cloud-disclosure>summary:after{content:"열기/접기";color:var(--muted);font-size:12px}.cloud-visual-grid{border:0;border-top:1px solid var(--line);box-shadow:none;border-radius:0;padding:12px}.live-cloud-stage,.category-cloud-stage{height:430px}}.education-header{margin-bottom:18px}.education-header h1{max-width:720px;font-size:clamp(32px,4.2vw,52px);line-height:1.1}.education-hero-actions,.empty-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.data-warning{color:#4a3411;background:#fffbeb;border:1px solid #d8991961;border-radius:8px;gap:4px;margin-bottom:18px;padding:14px 16px;display:grid}.data-warning strong{font-size:14px}.data-warning p{color:#6d4f17;margin-bottom:0;font-size:14px;line-height:1.5}.policy-axis-filter{gap:10px;margin-bottom:18px;display:grid}.policy-axis-filter>strong{color:#253044;font-size:15px}.policy-axis-filter>div,.candidate-policy-tags{flex-wrap:wrap;gap:7px;display:flex}.policy-axis-chip{color:#253044;background:#fff;border:1px solid #2357d82e;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.policy-axis-chip span{color:var(--muted);font-size:12px}.policy-axis-chip:hover,.policy-axis-chip:focus-visible,.policy-axis-chip.active{border-color:var(--primary);color:var(--primary);background:#f3f6ff}.candidate-policy-tags{margin-top:2px}.candidate-policy-tags .policy-axis-chip{min-height:28px;font-size:12px}.action-button.tertiary{color:var(--green);background:#ecfdf5;border-color:#0f7b5f42}.action-button:hover,.action-button:focus-visible,.filter-actions button:hover,.filter-actions button:focus-visible,.filter-actions a:hover,.filter-actions a:focus-visible,.pagination a:hover,.pagination a:focus-visible{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2357d81f}.compare-panel{margin-bottom:18px}.compare-table-wrap{overflow-x:auto}.compare-table{min-width:720px}.compare-table th:first-child{width:120px}.compare-table tbody th{color:var(--muted);font-size:13px;font-weight:900}.compare-table td{overflow-wrap:anywhere;min-width:180px}.compare-table td a{color:var(--primary);font-weight:900}.compare-cell-note{color:var(--muted);margin-top:4px;font-size:12px;font-weight:800;line-height:1.45;display:block}.compare-hint{color:var(--muted);margin:12px 0 0;font-size:14px}.pagination-disabled{border:1px solid var(--line);background:var(--surface-strong);height:42px;color:var(--muted);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-weight:800;display:inline-flex}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #2357d83d}.candidate-name:focus-visible,.detail-text-link:focus-visible,.back-link:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #2357d83d}.page-shell,.panel,.candidate-card,.candidate-main,.state-panel,.state-panel h1,.state-panel p,.lead,.candidate-meta,.candidate-submeta,.candidate-orientation-detail,.info-list dd,.career-list li,.material-link-item,.pledge-item,.compare-table td{overflow-wrap:anywhere;min-width:0}html,body{max-width:100%;overflow-x:clip}@media (max-width:900px){.filter-form{grid-template-columns:1fr 1fr}.candidate-search-header{gap:var(--space-5);display:grid}.candidate-search-page{width:min(1120px,100% - 32px);padding-top:var(--space-8)}.candidate-search-data-summary{width:100%}.candidate-search-form,.candidate-search-detail-filters>div{grid-template-columns:1fr}.candidate-search-form .filter-actions{padding-top:0}.candidate-search-start{grid-template-columns:1fr;align-items:center}.candidate-search-examples{grid-column:auto}.compare-panel .panel-heading{display:grid}}@media (max-width:560px){.lead{max-width:100%}.education-header h1{font-size:clamp(28px,9vw,34px);line-height:1.15}.candidate-search-header h1{font-size:clamp(30px,9vw,36px)}.candidate-search-page{width:min(1120px,100% - 56px);padding-top:24px}.candidate-search-data-summary{grid-template-columns:1fr}.candidate-search-panel{padding:18px}.candidate-search-office-tabs{grid-template-columns:1fr 1fr;width:100%;display:grid}.candidate-search-office-tab{padding:0 var(--space-2)}.state-panel{margin-top:32px;padding:26px 16px}.state-panel h1{font-size:clamp(20px,6vw,24px);line-height:1.28}.filter-form{grid-template-columns:1fr}.candidate-search-form .filter-actions{width:100%;display:grid}.candidate-search-actions button,.candidate-search-actions a,.candidate-search-detail-filters>summary{width:100%}.candidate-search-start{gap:var(--space-4);grid-template-columns:1fr;padding:28px 16px}.education-hero-actions,.empty-actions,.landing-actions{display:grid}.landing-page{width:min(var(--container-max), calc(100% - 24px));grid-template-rows:auto;gap:24px;min-height:0;padding:34px 0 0}.landing-hero{gap:26px}.landing-hero:before{inset:-34px -12px -24px}.landing-hero h1{font-size:34px;line-height:1.16}.landing-hero-copy{width:100%}.landing-hero .lead{word-break:keep-all;overflow-wrap:anywhere;text-wrap:auto;max-width:100%;font-size:17px;line-height:1.65;display:block}.landing-hero .lead span{display:block}.landing-actions .action-button{width:100%}.landing-source-note{font-size:13px}.landing-preview-window{border-radius:16px;gap:12px;padding:16px;box-shadow:0 0 0 8px #ffffff80,0 18px 46px #2563eb1f}.landing-preview-topbar{display:grid}.landing-preview-tabs{overflow-x:auto}.landing-preview-tabs span{flex:none;min-height:38px;padding:0 12px;font-size:13px}.landing-preview-metrics,.landing-chart-layout,.landing-preview-cta{display:grid}.landing-preview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-preview-grid{grid-template-columns:1fr}.landing-chart-layout{justify-items:center}.landing-donut{width:138px;height:138px}.landing-donut:after{inset:38px}.landing-preview-button{width:100%;margin-left:0}.landing-feature-strip{grid-template-columns:1fr;gap:18px;padding:34px 0 38px}.landing-footer-notice{grid-template-columns:28px minmax(0,1fr) 28px;justify-content:center;align-items:center;width:100%;margin:0 0 22px;padding:12px;display:grid}.landing-footer{padding:18px 16px 32px}.landing-footer-links{gap:8px 20px;margin-bottom:18px}.policy-axis-filter>div,.candidate-policy-tags{flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.policy-axis-chip{flex:none}.detail-header .status-pill{justify-self:start;width:auto}.info-list dd,.career-list li{max-width:100%}}:root{--sticky-nav-offset:80px}[id]{scroll-margin-top:var(--sticky-nav-offset)}:where(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid var(--primary);outline-offset:3px}.source-note,.material-unavailable{color:var(--muted);font-size:14px;line-height:var(--line-height-body)}.material-unavailable{display:inline-block}.candidate-material-links{row-gap:var(--space-2);flex-wrap:wrap}.candidate-pledge-preview{min-width:0}.candidate-pledge-preview h3{margin:0 0 var(--space-2);color:var(--muted);font-size:14px}.candidate-pledge-preview ol{padding-left:var(--space-5);line-height:var(--line-height-body);margin:0}.candidate-pledge-preview li+li{margin-top:var(--space-2)}.candidate-search-office-tabs button{background:var(--surface);width:auto;min-height:44px;color:var(--text)}.candidate-search-office-tabs button.active{background:var(--color-blue-soft);color:var(--primary);border-color:var(--primary)}.compare-selection-list{gap:var(--space-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.compare-selection-list li{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.compare-selection-list .detail-text-link{align-items:center;min-height:44px;display:inline-flex}.compare-scroll-hint{color:var(--muted);font-size:14px}.detail-section-links{gap:var(--space-5);margin-top:var(--space-4);color:var(--primary);flex-wrap:wrap;display:flex}.source-panel a,.analysis-method-panel a,.about-source a{color:var(--color-blue-dark);text-underline-offset:3px;text-decoration:underline}.data-source-notes{gap:var(--space-6);margin-top:var(--space-8);display:grid}.landing-hero{gap:var(--space-8)}.landing-hero-copy h1{font-size:clamp(30px,3.3vw,44px);line-height:var(--line-height-title)}.landing-search-form{gap:var(--space-2);margin:var(--space-6) 0 var(--space-4);display:grid}.landing-search-form>div{gap:var(--space-2);display:flex}.landing-search-form input{width:100%;min-width:0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.landing-search-form button{white-space:nowrap}.landing-preview-tabs a{gap:var(--space-2);padding:var(--space-3);align-items:center;min-height:44px;display:inline-flex}.mayor-filter-form>label,.mayor-filter-form input,.mayor-filter-form select{width:100%;min-width:0}.mayor-analysis .analysis-method-panel{padding:var(--space-4);margin:var(--space-4) 0}.mayor-analysis .analysis-method-panel summary{cursor:pointer;font-weight:700}@media (max-width:1023px){.mayor-filter-form,.mayor-filter-form.has-district-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.mayor-filter-form .filter-actions{grid-column:1/-1}}@media (max-width:900px){:root{--sticky-nav-offset:176px}.site-navbar-inner{gap:var(--space-2);width:calc(100% - 24px);padding:var(--space-2) 0;display:grid}.site-nav-links{gap:var(--space-1);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid;overflow:visible}.site-nav-link{padding:var(--space-2);white-space:normal;text-align:center;min-height:44px}.landing-hero{grid-template-columns:1fr}}@media (max-width:560px){.mayor-filter-form,.mayor-filter-form.has-district-filter{grid-template-columns:minmax(0,1fr)}.candidate-search-office-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-search-office-tabs button{width:100%}.compare-selection-list{display:grid}.compare-selection-list li{justify-content:space-between}.landing-search-form>div{flex-direction:column}.landing-hero-copy h1{font-size:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:560px){.cloud-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.cloud-mode-tabs button{min-width:0;padding:var(--space-2)}.candidate-heading{gap:var(--space-2);display:grid}.detail-page>.panel{margin-top:var(--space-6)}}
:root{--line-height-reading:1.75}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.document-page{width:min(1120px, calc(100% - var(--space-12)));padding:var(--space-8) 0 var(--space-16);margin:0 auto}.document-breadcrumb{gap:var(--space-3);color:var(--muted);margin-bottom:var(--space-6);font-size:14px;display:flex}.document-breadcrumb a:hover{text-decoration:underline}.document-tabs{gap:var(--space-8);border-bottom:1px solid var(--line);display:flex}.document-tabs a{min-height:48px;padding:var(--space-2) 0;color:var(--muted);border-bottom:3px solid #0000;align-items:center;font-weight:600;display:inline-flex}.document-tabs a[aria-current=page]{color:var(--color-blue-dark);border-bottom-color:var(--primary)}.document-header{padding:var(--space-12) 0}.document-header .eyebrow{margin:0 0 var(--space-4);color:var(--muted);font-size:13px;font-weight:600}.document-header h1{letter-spacing:-.035em;margin:0 0 var(--space-4);font-size:40px;font-weight:700;line-height:1.25}.document-header>p:last-child{color:var(--muted);font-size:18px;line-height:var(--line-height-body);margin:0}.document-layout,.pledge-reader-layout{gap:var(--space-10);grid-template-columns:224px minmax(0,1fr);align-items:start;display:grid}.reader-sidebar{top:var(--sticky-nav-offset);max-height:calc(100dvh - var(--sticky-nav-offset) - var(--space-6));min-width:0;position:sticky;overflow-y:auto}.page-contents{font-size:14px}.contents-label{color:var(--muted);margin:0 0 var(--space-4);padding-left:var(--space-3);font-weight:600}.page-contents ol{margin:0;padding:0;list-style:none}.page-contents li{margin:0}.page-contents a{gap:var(--space-2);padding:var(--space-3);min-height:44px;line-height:var(--line-height-body);border-left:2px solid var(--line);color:var(--muted);word-break:keep-all;overflow-wrap:anywhere;grid-template-columns:24px minmax(0,1fr);display:grid}.page-contents a:hover{background:var(--color-surface-soft);color:var(--text)}.page-contents a[aria-current=location]{border-left-color:var(--primary);background:var(--color-blue-soft);color:var(--color-blue-dark);font-weight:600}.contents-number{font-variant-numeric:tabular-nums;padding-top:2px;font-size:12px}.contents-toggle{display:none}.document-body{min-width:0;padding:var(--space-8);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);font-size:17px;line-height:var(--line-height-reading);color:var(--text);overflow-wrap:anywhere;word-break:keep-all}.document-body>section{scroll-margin-top:var(--sticky-nav-offset)}.document-body>section+section{border-top:1px solid var(--line);margin-top:var(--space-12);padding-top:var(--space-12)}.document-body h2{letter-spacing:-.025em;margin:0 0 var(--space-6);font-size:26px;font-weight:700;line-height:1.4}.document-body h3{margin:0 0 var(--space-2);font-size:19px;font-weight:600;line-height:1.5}.document-body p{margin:0 0 var(--space-5)}.document-body p:last-child{margin-bottom:0}.document-body .document-section-kicker{color:var(--color-blue-dark);letter-spacing:.03em;margin-bottom:var(--space-3);font-size:12px;font-weight:600}.document-body a{color:var(--color-blue-dark);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.document-body a:hover{text-decoration-thickness:2px}.document-body ul,.document-body ol{padding-left:var(--space-6);margin:0 0 var(--space-6)}.document-body li+li{margin-top:var(--space-4)}.document-body strong{font-weight:600}.document-body .document-caption,.document-caption{font-size:13px;line-height:var(--line-height-body);color:var(--muted)}.document-note{border-left:3px solid var(--primary);background:var(--color-surface-soft);padding:var(--space-5) var(--space-6);margin:var(--space-6) 0}.document-note p{margin:var(--space-2) 0 0;font-size:16px}.document-link-list>a{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-6) 0;border-bottom:1px solid var(--line);text-decoration:none;display:flex}.document-link-list>a:first-child{padding-top:0}.document-link-list>a:last-child{border-bottom:0;padding-bottom:0}.document-link-list svg{flex:none}.document-link-list p{color:var(--muted);font-size:16px}.document-steps{list-style:decimal-leading-zero}.document-steps li::marker{color:var(--color-blue-dark);font-size:13px;font-weight:600}.document-steps li{padding-left:var(--space-2)}.document-steps p{margin-top:var(--space-2);color:var(--muted)}.document-definitions{margin:0 0 var(--space-6)}.document-definitions>div{padding:var(--space-5) 0;border-bottom:1px solid var(--line-soft)}.document-definitions>div:first-child{padding-top:0}.document-definitions dt{margin-bottom:var(--space-2);font-weight:600}.document-definitions dd{color:var(--muted);line-height:var(--line-height-reading);margin:0}.document-details{padding:var(--space-4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px}.document-details summary{cursor:pointer;min-height:44px;color:var(--color-blue-dark);align-content:center;font-weight:600}.document-details[open] summary{margin-bottom:var(--space-4)}.source-origin-list article+article{margin-top:var(--space-8)}.source-origin-list article>span{color:var(--muted);font-size:13px}.source-origin-list article h3{margin-top:var(--space-2)}.coverage-entry{padding:var(--space-6) 0;border-top:1px solid var(--line)}.coverage-entry header>p{color:var(--muted);margin-bottom:var(--space-2);font-size:12px}.coverage-stats{gap:var(--space-5);margin:var(--space-6) 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.coverage-stats dt{color:var(--muted);font-size:12px;font-weight:500}.coverage-stats dd{margin:var(--space-1) 0 0;font-variant-numeric:tabular-nums;font-size:27px;font-weight:600;line-height:1.25}.coverage-stats small{margin-left:var(--space-1);color:var(--muted);font-size:13px;font-weight:400}.document-action{padding:var(--space-3) 0;min-height:44px;display:inline-flex}.candidate-reading-page{max-width:1120px}.candidate-reading-page .detail-header{padding-bottom:var(--space-8);border-bottom:1px solid var(--line)}.candidate-reading-page .detail-header h1{margin-bottom:var(--space-3);font-size:36px;font-weight:700}.candidate-reading-page .detail-header .lead{font-size:16px}.candidate-pledge-reader{margin:var(--space-8) 0 var(--space-12)}.pledge-reader-heading{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.pledge-reader-heading .eyebrow{color:var(--muted);margin-bottom:var(--space-2);font-size:12px;font-weight:500}.pledge-reader-heading h2{margin:0;font-size:24px;font-weight:700}.pledge-reader-heading h2 span{color:var(--muted);margin-left:var(--space-2);font-size:16px;font-weight:500}.pledge-reader-heading>a{color:var(--color-blue-dark);padding:var(--space-3) 0;font-size:13px}.reader-candidate-context{border-bottom:1px solid var(--line);padding:0 var(--space-3) var(--space-6);margin-bottom:var(--space-6)}.reader-candidate-context strong{font-size:20px;font-weight:600}.reader-candidate-context p{color:var(--muted);font-size:13px;line-height:var(--line-height-body);margin:var(--space-2) 0}.reader-candidate-context a{color:var(--color-blue-dark);padding-top:var(--space-2);font-size:13px;display:inline-block}.pledge-reading-list{min-width:0}.pledge-reading-article{padding:var(--space-8);margin-bottom:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);scroll-margin-top:var(--sticky-nav-offset);overflow-wrap:anywhere;word-break:keep-all}.pledge-reading-article:target{border-top:3px solid var(--primary);padding-top:calc(var(--space-8) - 2px)}.pledge-reading-meta{gap:var(--space-2) var(--space-4);margin:0 0 var(--space-4);font-size:12px;line-height:var(--line-height-body);color:var(--muted);flex-wrap:wrap;display:flex}.pledge-reading-meta>span:first-child{color:var(--color-blue-dark);font-weight:600}.pledge-reading-article h3{letter-spacing:-.03em;margin:0 0 var(--space-5);font-size:28px;font-weight:700;line-height:1.4}.pledge-reading-source{align-items:center;gap:var(--space-3) var(--space-6);color:var(--muted);padding-bottom:var(--space-6);border-bottom:1px solid var(--line);flex-wrap:wrap;font-size:12px;line-height:1.6;display:flex}.pledge-reading-source a{align-items:center;gap:var(--space-2);min-height:28px;color:var(--color-blue-dark);font-weight:600;display:inline-flex}.pledge-reading-source a:hover{text-decoration:underline}.pledge-reading-source a span{font-size:12px;font-weight:400}.pledge-reading-body{font-size:18px;line-height:var(--line-height-reading);font-weight:400}.pledge-reading-section{margin-top:var(--space-8)}.pledge-reading-section h4{margin:0 0 var(--space-3);font-size:19px;font-weight:600;line-height:1.5}.pledge-reading-body p{margin:0 0 var(--space-3)}.pledge-reading-body ul{padding-left:var(--space-5);margin:0}.pledge-reading-body li{padding-left:var(--space-1)}.pledge-reading-body li+li{margin-top:var(--space-3)}.pledge-reading-body li::marker{color:var(--color-text-muted)}.pledge-reading-body li>p{margin:0}.pledge-reading-body li ul{margin-top:var(--space-2);color:var(--muted);font-size:16px}.pledge-reading-body .pledge-reading-summary,.pledge-reading-body>.document-caption{margin-top:var(--space-6)}.pledge-reading-end{gap:var(--space-4);border-top:1px solid var(--line);margin-top:var(--space-8);padding-top:var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.pledge-reading-end a{color:var(--color-blue-dark);padding:var(--space-2) 0;font-size:13px}.candidate-reading-page>.panel,.candidate-reading-page>.content-grid{margin-top:var(--space-6)}.landing-analysis-caption{margin:0}.analysis-reference-links{gap:var(--space-5);color:var(--color-blue-dark);margin:var(--space-6) 0;flex-wrap:wrap;font-size:14px;display:flex}.analysis-reference-links a{padding:var(--space-2) 0;text-underline-offset:3px;text-decoration:underline}@media (max-width:900px){.document-layout,.pledge-reader-layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr)}.reader-sidebar{max-height:none;position:static;overflow:visible}.contents-label{display:none}.page-contents{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.contents-toggle{width:100%;min-height:52px;padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border:0;justify-content:space-between;align-items:center;font-size:15px;font-weight:600;display:flex}.contents-toggle small{color:var(--muted);margin-left:var(--space-3);font-size:12px;font-weight:400}.page-contents[data-expanded=false] ol{display:none}.page-contents[data-expanded=true] .contents-toggle svg{transform:rotate(180deg)}.page-contents ol{padding:0 var(--space-4) var(--space-4)}.reader-candidate-context{display:none}}@media (max-width:600px){.document-page{width:calc(100% - var(--space-8));padding-top:var(--space-6);padding-bottom:var(--space-8)}.document-breadcrumb{margin-bottom:var(--space-4);font-size:12px}.document-tabs{justify-content:space-between;gap:0}.document-tabs a{min-height:48px;font-size:14px}.document-header{padding:var(--space-8) 0}.document-header h1{font-size:32px}.document-header>p:last-child{font-size:16px}.document-body{padding:var(--space-5);font-size:16px}.document-body h2{font-size:23px}.document-body h3{font-size:18px}.document-body>section+section{padding-top:var(--space-8);margin-top:var(--space-8)}.document-note{padding:var(--space-4)}.document-note p{font-size:15px}.document-link-list>a{gap:var(--space-3)}.coverage-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.coverage-stats dd{font-size:25px}.candidate-reading-page{width:calc(100% - var(--space-8))}.candidate-reading-page .detail-header h1{font-size:30px}.pledge-reader-heading{align-items:start}.pledge-reader-heading h2{font-size:22px}.pledge-reader-heading>a{font-size:12px}.pledge-reading-article{padding:var(--space-5)}.pledge-reading-article:target{padding-top:calc(var(--space-5) - 2px)}.pledge-reading-article h3{font-size:24px}.pledge-reading-meta{font-size:11px}.pledge-reading-source{gap:var(--space-2);padding-bottom:var(--space-5);flex-direction:column;align-items:start}.pledge-reading-source a{min-height:44px}.pledge-reading-body{font-size:17px}.pledge-reading-section h4{font-size:18px}.pledge-reading-body li ul{font-size:16px}.pledge-reading-end a{align-content:center;min-height:44px}}
.candidate-portrait{aspect-ratio:3/4;border:1px solid var(--color-line-soft);border-radius:var(--radius-md);background:var(--color-surface-soft);width:80px;color:var(--color-text-muted);flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.candidate-portrait img{object-fit:contain;width:100%;height:100%;display:block}.candidate-portrait--large{width:120px}.candidate-portrait-placeholder{justify-items:center;gap:var(--space-2);font-size:11px;line-height:var(--line-height-compact);display:grid}.candidate-biography{gap:var(--space-8);grid-template-columns:200px minmax(0,1fr);display:grid}.candidate-biography-identity{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.candidate-biography-name h3{margin:0;font-size:24px}.candidate-biography-name p{margin:var(--space-1) 0 0}.candidate-photo-source{text-underline-offset:3px;align-items:center;min-height:44px;font-size:13px;display:inline-flex}.candidate-biography-details{min-width:0;padding-left:var(--space-8);border-left:1px solid var(--color-line-soft)}@media (max-width:767px){.candidate-portrait{width:72px}.candidate-portrait--large{width:96px}.candidate-biography{gap:var(--space-6);grid-template-columns:1fr}.candidate-biography-identity{align-items:center;gap:var(--space-5);flex-direction:row}.candidate-biography-details{border-left:0;border-top:1px solid var(--color-line-soft);padding:var(--space-6) 0 0}}
.search-submit-button,.filter-actions .search-submit-button,.landing-search-form .search-submit-button{place-items:center;display:grid}.search-submit-label,.search-submit-progress{justify-content:center;align-items:center;gap:var(--space-2);grid-area:1/1;display:inline-flex}.search-submit-progress,.search-submit-button[data-pending] .search-submit-label{visibility:hidden}.search-submit-button[data-pending] .search-submit-progress{visibility:visible}.search-submit-button:disabled{cursor:progress}.search-progress-dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.search-loading-caption{align-items:center;gap:var(--space-2);color:var(--muted);font-size:14px;line-height:var(--line-height-body);margin:var(--space-6) 0 var(--space-4);display:flex}.loading-shape{border-radius:var(--radius-sm);background:var(--color-line-soft);width:100%;height:14px;display:block}.loading-shape--short{width:40%}.search-initial-loading .candidate-search-data-summary{margin:0}.search-initial-loading .candidate-search-data-summary>div{gap:var(--space-3);min-width:112px}.search-loading-form{gap:var(--space-6) var(--space-3);grid-template-columns:minmax(0,1fr) 132px;display:grid}.search-loading-query{gap:var(--space-2);color:var(--muted);font-size:13px;font-weight:700;display:grid}.search-loading-input{align-items:center;gap:var(--space-3);height:48px;padding:0 var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--icon-subtle);display:flex}.search-loading-button{align-self:end;height:44px}.search-loading-tabs{gap:var(--space-3);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.search-loading-tabs .loading-shape{height:44px}.search-loading-results{gap:var(--space-4);display:grid}.search-loading-card{align-items:center;gap:var(--space-6);padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:72px minmax(0,1fr);display:grid}.search-loading-card>div{gap:var(--space-4);max-width:520px;display:grid}.search-loading-photo{height:96px}.route-initial-loading{min-height:65vh}.route-loading-shapes{gap:var(--space-6);margin-top:var(--space-8);max-width:720px;display:grid}@media (max-width:600px){.search-loading-form{gap:var(--space-4);grid-template-columns:1fr}.search-loading-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.search-loading-card{padding:var(--space-4);gap:var(--space-4)}}
