*,:after,:before{box-sizing:border-box;margin:0;padding:0}@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,900;1,400;1,600&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap");:root{--ink:#0B1D2E;--ink-90:rgba(11,29,46,0.90);--ink-70:rgba(11,29,46,0.70);--ink-60:rgba(11,29,46,0.60);--ink-40:rgba(11,29,46,0.40);--ink-30:rgba(11,29,46,0.30);--ink-20:rgba(11,29,46,0.20);--ink-12:rgba(11,29,46,0.12);--ink-06:rgba(11,29,46,0.06);--ink-03:rgba(11,29,46,0.03);--paper:#F5F0E8;--paper-90:rgba(245,240,232,0.90);--paper-80:rgba(245,240,232,0.80);--paper-60:rgba(245,240,232,0.60);--paper-40:rgba(245,240,232,0.40);--paper-20:rgba(245,240,232,0.20);--paper-10:rgba(245,240,232,0.10);--gold:#C8A96E;--gold-deep:#8B6914;--gold-40:rgba(200,169,110,0.40);--gold-25:rgba(200,169,110,0.25);--gold-12:rgba(200,169,110,0.12);--rule:rgba(11,29,46,0.10);--rule-light:rgba(11,29,46,0.06);--blue-link:#2563EB;--digital-blue:#00D1FF;--font-sans:"IBM Plex Sans",system-ui,sans-serif;--font-serif:"Playfair Display",Georgia,serif;--font-mono:"IBM Plex Mono","Courier New",monospace;--font-multiplier:1;--text-3xs:calc(0.6250rem * var(--font-multiplier));--text-2xs:calc(0.6875rem * var(--font-multiplier));--text-xs:calc(0.7500rem * var(--font-multiplier));--text-sm:calc(0.8750rem * var(--font-multiplier));--text-base:calc(1.0000rem * var(--font-multiplier));--text-md:calc(1.0625rem * var(--font-multiplier));--text-lg:calc(1.1250rem * var(--font-multiplier));--text-xl:calc(1.2500rem * var(--font-multiplier));--text-2xl:calc(1.5000rem * var(--font-multiplier));--text-3xl:calc(2.0000rem * var(--font-multiplier));--text-4xl:calc(2.5000rem * var(--font-multiplier));--text-5xl:calc(3.5000rem * var(--font-multiplier));--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--container-max:1440px;--container-pad:var(--space-16);--navbar-h:64px;--col-a:1fr;--col-sep:1px;--col-b:1fr;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--shadow-soft:0 1px 3px rgba(11,29,46,0.06),0 4px 16px rgba(11,29,46,0.04);--shadow-modal:0 32px 80px rgba(0,0,0,0.5),0 0 0 1px rgba(200,169,110,0.15);--ease-swift:cubic-bezier(0.4,0,0.2,1);--dur-quick:160ms;--dur-normal:240ms}[data-theme=dark]{--ink:#E8EDF2;--ink-90:rgba(232,237,242,0.90);--ink-70:rgba(232,237,242,0.70);--ink-60:rgba(232,237,242,0.60);--ink-40:rgba(232,237,242,0.40);--ink-30:rgba(232,237,242,0.30);--ink-20:rgba(232,237,242,0.20);--ink-12:rgba(232,237,242,0.12);--ink-06:rgba(232,237,242,0.06);--ink-03:rgba(232,237,242,0.03);--paper:#060D14;--paper-90:rgba(6,13,20,0.90);--paper-80:rgba(6,13,20,0.80);--paper-60:rgba(6,13,20,0.60);--paper-40:rgba(6,13,20,0.40);--paper-20:rgba(6,13,20,0.20);--paper-10:rgba(6,13,20,0.10);--rule:rgba(232,237,242,0.10);--rule-light:rgba(232,237,242,0.06);--gold:#D4AF5A;--gold-deep:#B8922E;--gold-40:rgba(212,175,90,0.40);--gold-25:rgba(212,175,90,0.25);--gold-12:rgba(212,175,90,0.12);--blue-link:#60A5FA;--shadow-soft:0 1px 3px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.2)}html.font-large{--font-multiplier:1.2}html.font-small{--font-multiplier:0.85}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);overflow-x:hidden;font-size:var(--text-base);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}.t-machine{font-family:var(--font-sans)}.t-fact{font-family:var(--font-serif)}.t-proof{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em}.t-eyebrow{font-family:var(--font-sans);font-size:var(--text-3xs);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-40)}.container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-pad)}.rule-h{height:1px;border:none;margin:0}.rule-h,.rule-v{background:var(--rule)}.rule-v{width:1px;align-self:stretch;flex-shrink:0}.navbar{height:var(--navbar-h);background:var(--paper-90);border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;padding-inline:var(--space-8);position:-webkit-sticky;position:sticky;top:0;z-index:200;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.navbar-brand{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1}.navbar-brand em{color:var(--gold);font-style:normal}.navbar-nav{display:flex;align-items:center;gap:var(--space-1)}.navbar-link{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;color:var(--ink-60);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--dur-quick) var(--ease-swift);letter-spacing:.02em}.navbar-link:hover{color:var(--ink)}.navbar-actions{display:flex;align-items:center;gap:var(--space-3)}.compare-layout{background:var(--paper);min-height:100vh}.compare-header{background:var(--paper);border-bottom:1px solid var(--rule);padding:var(--space-6) var(--container-pad)}.compare-breadcrumb{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--ink-40);margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.compare-breadcrumb a:hover{color:var(--ink)}.compare-election-name{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:700;color:var(--ink);line-height:1.15;margin-bottom:var(--space-2);letter-spacing:-.02em}.compare-meta{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--ink-30);letter-spacing:.06em;line-height:1.8}.compare-meta a{color:var(--blue-link);text-underline-offset:2px;text-decoration:underline}.candidates-bar{display:grid;grid-template-columns:var(--col-a) var(--col-sep) var(--col-b);background:var(--paper);border-bottom:2px solid var(--rule);position:-webkit-sticky;position:sticky;top:var(--navbar-h);z-index:100}.candidate-col{padding:var(--space-6) var(--space-8);display:flex;flex-direction:column;gap:var(--space-3);background:var(--paper)}.candidate-avatar{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--rule);overflow:hidden;background-position:50%;background-size:cover;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:700;color:white;flex-shrink:0;letter-spacing:.04em}.candidate-name{font-family:var(--font-serif);font-size:var(--text-md);font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-.01em}.candidate-party{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--ink-40);letter-spacing:.12em;text-transform:uppercase}.candidate-separator{width:1px;background:var(--rule);align-self:stretch}.filter-bar{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:var(--space-2);padding:var(--space-3) var(--container-pad);background:var(--paper);border-bottom:1px solid var(--rule);-webkit-overflow-scrolling:touch;scrollbar-width:none;position:-webkit-sticky;position:sticky;top:calc(var(--navbar-h) + 89px);z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--paper-90)}.filter-bar::-webkit-scrollbar{display:none}.filter-pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px 12px;border-radius:var(--radius-md);border:1px solid var(--rule);background:var(--paper);color:var(--ink-60);font-family:var(--font-mono);font-size:var(--text-3xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background var(--dur-quick) var(--ease-swift),color var(--dur-quick) var(--ease-swift),border-color var(--dur-quick) var(--ease-swift);cursor:pointer;min-height:32px}.filter-pill:hover{border-color:var(--ink-30);color:var(--ink)}.filter-pill.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.category-block,.category-header{border-bottom:1px solid var(--rule)}.category-header{display:grid;grid-template-columns:var(--col-a) var(--col-sep) var(--col-b);background:var(--ink-03)}.category-header-cell{padding:var(--space-3) var(--space-8);display:flex;align-items:center;gap:var(--space-2)}.category-dot{width:6px;height:6px;border-radius:1px;flex-shrink:0}.category-label{font-family:var(--font-sans);font-size:var(--text-3xs);font-weight:600;color:var(--ink-60);letter-spacing:.12em;text-transform:uppercase}.category-count{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--ink-30);margin-left:auto;letter-spacing:.04em}.promise-row{display:grid;grid-template-columns:var(--col-a) var(--col-sep) var(--col-b);border-bottom:1px solid var(--rule-light);transition:background var(--dur-quick) var(--ease-swift)}.promise-row:last-child{border-bottom:none}.promise-row:hover{background:var(--ink-03)}.promise-cell{padding:var(--space-6) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);min-height:100px}.promise-cell--empty{justify-content:center;background:var(--ink-03)}.promise-empty{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--ink-20);font-style:italic;line-height:1.6}.promise-category-tag{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:var(--text-3xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:2px var(--space-2);border-radius:var(--radius-sm);align-self:flex-start}.promise-text{font-size:var(--text-sm);color:var(--ink);line-height:1.75;letter-spacing:.01em}.promise-quote,.promise-text{font-family:var(--font-serif);font-weight:400}.promise-quote{font-size:var(--text-xs);font-style:italic;color:var(--ink-60);padding-left:var(--space-4);border-left:2px solid var(--rule);line-height:1.7;margin:0}.promise-provenance{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--rule-light);margin-top:auto}.provenance-source{color:var(--ink-40)}.provenance-date,.provenance-source{font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:.04em}.provenance-date{color:var(--ink-30)}.provenance-sep{color:var(--ink-20);font-size:10px}.provenance-archive{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--blue-link);text-decoration:underline;text-underline-offset:2px;letter-spacing:.02em;transition:opacity var(--dur-quick) var(--ease-swift)}.provenance-archive:hover{opacity:.7}.auth-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);background:transparent;border:.5px solid var(--gold-40);border-radius:var(--radius-sm);padding:2px var(--space-2);cursor:pointer;transition:background var(--dur-quick) var(--ease-swift),border-color var(--dur-quick) var(--ease-swift);min-height:20px}.auth-badge:hover{background:var(--gold-12);border-color:var(--gold)}.auth-modal-overlay{position:fixed;inset:0;background:rgba(6,13,20,.8);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.auth-modal{background:var(--ink);border:1px solid var(--gold-25);border-radius:var(--radius-md);padding:var(--space-10) var(--space-8);max-width:460px;width:100%;box-shadow:var(--shadow-modal)}.auth-modal-header{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid rgba(200,169,110,.12)}.auth-modal-icon{width:36px;height:36px;border-radius:50%;background:var(--gold-12);display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-modal-title{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--paper);margin-bottom:var(--space-1)}.auth-modal-subtitle{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--paper-40);letter-spacing:.1em;text-transform:uppercase}.auth-field{margin-bottom:var(--space-5)}.auth-field-label{font-family:var(--font-sans);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-40);margin-bottom:var(--space-2)}.auth-field-value{color:var(--gold);background:var(--gold-12);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);line-height:1.6;display:block}.auth-field-link,.auth-field-value{font-family:var(--font-mono);font-size:var(--text-2xs);word-break:break-all}.auth-field-link{color:#60A5FA;text-decoration:underline;text-underline-offset:2px}.auth-how-to{margin-top:var(--space-5);padding:var(--space-4);background:rgba(245,240,232,.04);border-left:2px solid var(--gold-25);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.auth-how-to-label{font-family:var(--font-sans);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-2)}.auth-how-to-text{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--paper-40);line-height:1.75}.auth-modal-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid rgba(245,240,232,.06)}.auth-open-source{font-family:var(--font-mono);font-size:9px;color:var(--paper-40);letter-spacing:.06em;text-decoration:none}.auth-open-source:hover{color:var(--paper-60)}.auth-close-btn{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:500;letter-spacing:.06em;color:var(--paper-40);background:rgba(245,240,232,.06);border:.5px solid rgba(245,240,232,.12);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-5);cursor:pointer;transition:color var(--dur-quick) var(--ease-swift),background var(--dur-quick) var(--ease-swift)}.auth-close-btn:hover{color:var(--paper-80);background:rgba(245,240,232,.1)}.social-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--ink-06);color:var(--ink-60);font-family:var(--font-mono);font-size:var(--text-3xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;transition:all var(--dur-quick) var(--ease-swift);border:1px solid var(--rule-light);white-space:nowrap;flex-shrink:0}.social-pill:hover{background:var(--ink-12);color:var(--ink);border-color:var(--rule)}.social-pill.official{border-color:var(--gold-25);color:var(--gold-deep);background:var(--gold-12)}.social-pill.official:hover{background:var(--gold-25);border-color:var(--gold)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm);padding:10px var(--space-6);cursor:pointer;border:none;min-height:44px;transition:background var(--dur-quick) var(--ease-swift),color var(--dur-quick) var(--ease-swift),transform 80ms var(--ease-swift)}.btn:active{transform:translateY(1px)}.btn-ink{background:var(--ink);color:var(--paper)}.btn-ink:hover{background:#152d45}.btn-gold{background:var(--gold);color:var(--ink)}.btn-gold:hover{background:#b89355}.btn-ghost{background:transparent;color:var(--ink-60);border:1px solid var(--rule)}.btn-ghost:hover{border-color:var(--ink-30);color:var(--ink)}.mobile-toggle-nav{display:none}@media (max-width:992px){.candidates-bar,.hidden-mobile{display:none!important}.mobile-toggle-nav{display:flex}.promise-row{grid-template-columns:1fr}.candidate-separator,body.show-cand-a .cand-b,body.show-cand-b .cand-a{display:none}.category-header{grid-template-columns:1fr}.category-header .category-header-cell:last-of-type{display:none}.promise-cell{padding:var(--space-5) var(--space-5)}.compare-header{padding:var(--space-5) var(--space-5) var(--space-3)}.compare-election-name{font-size:var(--text-xl)}.filter-bar{padding:var(--space-2) var(--space-4);top:calc(var(--navbar-h) + 56px)}.navbar{padding-inline:var(--space-5)}}@media (max-width:768px){:root{--container-pad:var(--space-5)}}@media print{.auth-badge,.auth-modal-overlay,.filter-bar,.mobile-toggle-nav,.navbar,.social-pill{display:none!important}body{background:white;color:black;font-size:10pt}.promise-text{font-family:Georgia,serif;font-size:10pt;line-height:1.6}.provenance-date,.provenance-source{font-family:Courier New,monospace;font-size:8pt}.promise-row{page-break-inside:avoid}.candidates-bar{position:static!important;display:grid!important}}