:root{color-scheme:light;--ink: #202522;--muted: #69716a;--paper: #f5f0e6;--paper-deep: #e7dcc8;--line: #d2c5af;--oxide: #8f3f2f;--green: #2f3a35;--blue: #31566d;--gold: #b18942;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#f9f5ec,var(--paper))}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--blue)}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f5f0e6f0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:inline-flex;align-items:center;gap:10px;min-height:48px;border:0;background:transparent;color:var(--ink);text-align:left}.brand-mark{display:block;width:42px;height:42px;overflow:hidden;border-radius:8px;background:var(--green);flex:0 0 auto}.brand-mark img{display:block;width:100%;height:100%}.brand small,.entity-card small,.discovery-card small{display:block;color:var(--muted);line-height:1.35}.header-actions{display:flex;align-items:center;gap:8px}.icon-button,.favorite-button{min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fffaf1;color:var(--green);display:inline-flex;align-items:center;gap:8px;padding:0 12px}.menu-trigger span{font-weight:750}.menu-overlay{position:fixed;inset:0;z-index:100;display:flex;justify-content:flex-end;background:#20252294;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:menu-fade-in .15s ease-out}.menu-drawer{width:min(430px,calc(100% - 16px));height:100svh;overflow-y:auto;border-left:1px solid var(--line);background:#fffaf1;box-shadow:-18px 0 48px #2025223d;padding:18px;animation:menu-slide-in .18s ease-out}.menu-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:16px}.menu-header h2{margin:5px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.65rem}.menu-eyebrow{color:var(--oxide);font-size:.72rem;font-weight:800;text-transform:uppercase}.menu-navigation{display:grid;gap:24px;padding:22px 0 10px}.menu-group h3{margin:0 0 9px;color:var(--muted);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.menu-links{display:grid;gap:7px}.menu-links button{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;width:100%;min-height:62px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:9px 11px;text-align:left}.menu-links button:hover{border-color:var(--green)}.menu-links button.active{border-color:var(--green);background:var(--green);color:#fff}.menu-link-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:7px;background:#fffaf1;color:var(--oxide)}.menu-links button.active .menu-link-icon{background:#fffaf124;color:var(--gold)}.menu-links strong,.menu-links small{display:block}.menu-links strong{font-size:.96rem}.menu-links small{margin-top:3px;color:var(--muted);font-size:.76rem;line-height:1.3}.menu-links button.active small{color:#e7dcc8}@keyframes menu-fade-in{0%{opacity:0}}@keyframes menu-slide-in{0%{transform:translate(32px);opacity:0}}main{width:min(1120px,100%);margin:0 auto;padding:18px 14px 36px}.hero{min-height:calc(100svh - 88px);display:grid;align-items:center;gap:18px;padding:28px 0 18px}.eyebrow{color:var(--oxide);font-weight:750;text-transform:uppercase;font-size:.78rem;letter-spacing:0}h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(2.15rem,7vw,4.8rem);line-height:.98;margin:0 0 14px;letter-spacing:0}h2{font-size:1.1rem;margin:0 0 10px}.hero p{max-width:58rem;font-size:1.08rem;line-height:1.55}.hero-actions,.chips,.filter-row,.segmented-filter{display:flex;gap:10px;flex-wrap:wrap}.hero-actions button,.wide-action,.chips button{min-height:46px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;padding:0 14px}.hero-actions button:nth-child(2),.hero-actions button:nth-child(3),.chips button{background:#fffaf1;color:var(--green)}.archive-visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px;border:1px solid var(--line);background:#fffaf1}.archive-visual button{min-height:104px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--oxide);padding:12px;text-align:left;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.archive-visual button:hover{border-color:var(--oxide);transform:translateY(-2px);box-shadow:0 5px 12px #2025221a}.archive-visual strong{font-family:Georgia,serif;font-size:1.5rem}.archive-visual small{color:var(--muted);font-size:.68rem;line-height:1.25}.discovery-grid,.card-grid{display:grid;grid-template-columns:1fr;gap:12px}.discovery-card,.entity-card,.source-card,.notice,.detail,.edge-card,.relation-row{border:1px solid var(--line);border-radius:8px;background:#fffaf1;color:var(--ink);text-align:left;padding:16px}.discovery-card{min-height:152px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.discovery-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 6px 16px #2025221a}.discovery-card span,.entity-card span,.source-card span,.edge-card span,.relation-row span{color:var(--oxide);font-weight:750;font-size:.78rem;text-transform:uppercase}.discovery-card strong,.entity-card strong,.edge-card strong{display:block;margin:8px 0;font-size:1.08rem}.discovery-card .discovery-cta{display:inline-flex;align-items:center;gap:4px;align-self:flex-end;margin-top:12px;color:var(--green);font-size:.72rem;text-transform:none}.notice{margin-top:18px;line-height:1.6}.home-notice{display:block;width:100%;cursor:pointer;font:inherit}.home-notice:hover{border-color:var(--green)}.home-notice p:last-child{display:flex;align-items:center;gap:6px}.page,.detail{padding-top:14px}.page-title{margin-bottom:18px}.page-title p,.detail p,.prose p{color:#3b423d;line-height:1.65;max-width:72ch}.page-title h1,.detail-heading h1{font-size:clamp(2rem,8vw,3.6rem)}.filter-row select,.search-input{min-height:48px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fffaf1;padding:0 12px;color:var(--ink)}.filter-row{display:grid;grid-template-columns:1fr}.segmented-filter{margin-bottom:10px}.segmented-filter button{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#fffaf1;color:var(--green);padding:0 12px;font-weight:750}.segmented-filter button.active{border-color:var(--green);background:var(--green);color:#fff}.timeline{list-style:none;padding:0;margin:20px 0 0;border-left:3px solid var(--gold)}.timeline li{margin:0 0 10px 12px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fffaf1}.timeline .timeline-summary{width:100%;border:0;border-radius:0;background:transparent;padding:14px;text-align:left}.timeline .timeline-summary:hover{background:var(--paper)}.timeline .timeline-date-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}.timeline .timeline-date-row svg{flex:0 0 auto;color:var(--oxide);transition:transform .16s ease}.timeline li.open .timeline-date-row svg{transform:rotate(180deg)}.timeline time{display:block;color:var(--oxide);font-weight:800}.timeline span{display:block;color:var(--muted);margin-top:5px}.timeline .timeline-meta{color:var(--blue);font-size:.78rem;font-weight:750;text-transform:uppercase}.timeline .timeline-summary>strong{display:block;margin-top:3px}.timeline-panel{border-top:1px solid var(--line);padding:12px 14px 14px}.timeline-panel>p{margin:0;color:#3b423d;line-height:1.55}.timeline .timeline-links,.timeline .timeline-context{display:grid;gap:4px;margin-top:10px;color:#3b423d;font-size:.9rem;line-height:1.4}.timeline .timeline-context{border-top:1px solid var(--line);padding-top:10px}.timeline .timeline-links b,.timeline .timeline-context b{color:var(--ink)}.timeline .timeline-full-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;margin-top:14px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;padding:10px 12px;font-weight:750}.empty-state{color:var(--muted);margin-top:18px}.timeline-context-section>dl{display:grid;gap:0;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.timeline-context-section>dl>div{display:grid;grid-template-columns:minmax(145px,.35fr) 1fr;gap:14px;padding:12px 14px;background:#fffdf8}.timeline-context-section>dl>div+div{border-top:1px solid var(--line)}.timeline-context-section dt{color:var(--blue);font-weight:800}.timeline-context-section dd{margin:0}.timeline-context-section .chips{margin-top:0}.context-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);padding:8px 10px}.empty-context{color:var(--muted);font-style:italic}@media(max-width:560px){.timeline-context-section>dl>div{grid-template-columns:1fr;gap:7px}}.entity-card{width:100%;min-height:138px}.party-card{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:14px;min-height:154px}.party-logo{display:grid;place-items:center;width:88px;height:88px;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.party-logo img{display:block;width:76px;height:76px;object-fit:contain}.entity-card .party-monogram{display:grid;place-items:center;width:100%;height:100%;margin:0;padding:8px;color:var(--green);background:linear-gradient(145deg,#fffdf8,var(--paper-deep));font-size:.84rem;font-weight:850;overflow-wrap:anywhere;text-align:center}.party-card-copy{min-width:0;margin:0}.entity-card .party-acronym{margin:0}.party-card-copy strong{margin:5px 0 7px}.person-card{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:14px;min-height:154px}.person-portrait-thumb{display:grid;place-items:center;width:88px;height:104px;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.person-portrait-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}.person-card-copy{min-width:0;margin:0}.entity-card .person-dates{margin:0}.person-card-copy strong{margin:5px 0 7px}.person-monogram{display:grid;place-items:center;width:100%;height:100%;color:var(--green);background:linear-gradient(145deg,#fffdf8,var(--paper-deep));font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:800}.logo-credits{margin-top:24px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#fffaf1}.logo-credits summary{cursor:pointer;color:var(--green);font-weight:800}.logo-credits p{color:var(--muted);line-height:1.5}.logo-credits ul{margin-bottom:0;padding-left:20px;line-height:1.6}.source-card h2{margin-top:8px}.detail{margin-top:10px}.detail-heading{display:grid;gap:8px;margin-bottom:18px}.person-profile{display:grid;gap:18px;align-items:start}.person-portrait{width:min(270px,100%);margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.person-portrait>img{display:block;width:100%;max-height:360px;object-fit:cover;object-position:center top}.person-portrait>.person-monogram{min-height:280px;font-size:4rem}.person-portrait figcaption{display:grid;gap:4px;padding:10px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:.74rem;line-height:1.35}.person-portrait figcaption span{display:block;overflow-wrap:anywhere}.person-biography{min-width:0}.biography-copy h2{margin-bottom:10px}.biography-copy>p{margin:0 0 12px}.biography-copy .person-summary{border-left:4px solid var(--gold);padding:10px 12px;background:var(--paper);color:var(--ink);font-weight:700}.wikipedia-attribution{margin:14px 0 0;border-top:1px solid var(--line);padding-top:10px;color:var(--muted)!important;font-size:.78rem;line-height:1.45!important}.settings-grid{display:grid;gap:14px}.settings-card{border:1px solid var(--line);border-radius:8px;background:#fffaf1;padding:18px}.settings-app-identity{display:flex;align-items:center;gap:14px}.settings-app-identity img{width:68px;height:68px;border-radius:14px}.settings-app-identity h2,.settings-card-heading h2{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.55rem}.settings-version-list{display:grid;gap:8px;margin:18px 0 0}.settings-version-list div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:9px}.settings-version-list dt{color:var(--muted);font-size:.84rem}.settings-version-list dd{margin:0;color:var(--green);font-weight:800}.settings-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.update-status{max-width:190px;border-radius:999px;background:var(--paper-deep);color:var(--green);padding:6px 9px;font-size:.72rem;font-weight:750;text-align:center}.update-status.available{background:#f0dfbd;color:#6e4615}.update-status.error{background:#f1d9d3;color:var(--oxide)}.update-status.installing,.update-status.checking{background:#dce7ed;color:var(--blue)}.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:14px}.settings-toggle strong,.settings-toggle small{display:block}.settings-toggle small{margin-top:4px;color:var(--muted);line-height:1.4}.settings-toggle input{width:24px;height:24px;flex:0 0 auto;accent-color:var(--green)}.settings-update-note{margin:15px 0;color:#3b423d;line-height:1.55}.settings-actions{display:flex;flex-wrap:wrap;gap:9px}.settings-actions .wide-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;margin-top:0}.settings-actions .secondary-action{background:#fffaf1;color:var(--green)}.settings-actions button:disabled{cursor:wait;opacity:.65}.last-update-check{display:block;margin-top:12px;color:var(--muted)}.spinning{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.person-career{margin-top:28px}.profile-info-grid{display:grid;gap:12px}.profile-list{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:14px}.profile-list h3,.mandates-section h3{margin:0 0 9px;font-size:.92rem}.profile-list ul{margin:0;padding-left:18px;line-height:1.55}.mandates-section{margin-top:18px}.mandates-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.mandates-list li{display:grid;gap:4px;border-left:4px solid var(--blue);background:var(--paper);padding:10px 12px}.mandates-list strong{line-height:1.35}.mandates-list span{color:var(--muted);font-size:.82rem}.fact-grid{display:grid;gap:10px;margin:18px 0}.fact-grid div{padding:12px;border:1px solid var(--line);background:var(--paper);border-radius:8px}.fact-grid dt{color:var(--muted);font-size:.82rem}.fact-grid dd{margin:4px 0 0;font-weight:750}.method-note,.status{border-left:4px solid var(--gold);padding:10px 12px;background:var(--paper)}.event-consequences{margin:18px 0;border-left:4px solid var(--oxide);padding:10px 14px;background:var(--paper)}.event-consequences h2{margin:0 0 6px;font-size:1rem}.event-consequences p{margin:0}.election-result{margin:18px 0;border-left:4px solid var(--gold);padding:14px 16px;background:var(--paper)}.election-result h2{margin:0 0 7px;font-size:1.05rem}.election-result p{margin:0;font-size:1.02rem;line-height:1.6}.election-context,.election-analysis,.election-key-section,.election-breakdown,.election-map-section,.post-election-sequence{margin-top:26px}.election-context h2,.election-analysis h2,.election-key-section h2,.election-breakdown h2,.election-map-section h2,.post-election-sequence h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.45rem}.election-context p,.election-analysis p,.post-election-sequence>p{margin:8px 0 0}.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.section-heading-row>strong{color:var(--oxide);font-size:.9rem}.section-kicker{margin:0 0 3px!important;color:var(--oxide)!important;font-size:.7rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.round-chip,.map-status{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#fffaf1;color:var(--green);padding:6px 9px;font-size:.72rem;font-weight:800}.map-status-territorial-data{border-color:#8ba091;color:#315c3b}.map-status-no-second-round,.map-status-source-not-digitized{color:var(--muted)}.election-key-figures{display:grid;gap:9px;margin:14px 0 0}.election-key-figures div{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fffaf1;padding:13px}.election-key-figures dt{color:var(--muted);font-size:.75rem;line-height:1.3}.election-key-figures dd{margin:6px 0 0;color:var(--green);font-family:Georgia,Times New Roman,serif;font-size:1.25rem;font-weight:800;overflow-wrap:anywhere}.election-metric-notes{display:grid;gap:4px;margin-top:10px}.election-metric-notes p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.election-breakdown{border:1px solid var(--line);border-radius:10px;background:#fffaf1;padding:15px}.election-result-rows{display:grid;gap:13px;margin-top:16px}.election-result-row{display:grid;gap:6px}.election-result-label{display:grid;grid-template-columns:13px minmax(0,1fr) auto;align-items:center;gap:7px}.election-result-label span:nth-of-type(2){grid-column:2 / 3;color:var(--muted);font-size:.76rem}.election-result-label b{grid-column:3;grid-row:1 / span 2;color:var(--green)}.map-swatch{display:inline-block;width:11px;height:11px;border-radius:3px;border:1px solid rgba(32,37,34,.18)}.election-result-bar{height:7px;overflow:hidden;border-radius:999px;background:var(--paper-deep)}.election-result-bar span{display:block;height:100%;min-width:2px;border-radius:inherit}.election-map-section{border-top:1px solid var(--line);padding-top:24px}.map-explanation{margin:9px 0 0;color:#3b423d;line-height:1.55}.map-legend{display:flex;flex-wrap:wrap;gap:7px 13px;margin-top:13px}.map-legend span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.74rem;font-weight:700}.map-legend i{width:12px;height:12px;border-radius:3px;border:1px solid rgba(32,37,34,.18)}.france-map-shell{display:grid;gap:10px;margin-top:14px;border:1px solid var(--line);border-radius:12px;background:#edf0ea;padding:10px}.france-map{display:block;width:100%;max-height:560px;filter:drop-shadow(0 5px 7px rgba(32,37,34,.12))}.department-shape{stroke:#fffaf1;stroke-width:1.3;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .12s ease,stroke .12s ease}.department-shape:hover,.department-shape:focus,.department-shape.is-selected{outline:none;opacity:.82;stroke:var(--ink);stroke-width:2.6}.france-map-shell.no-results .department-shape{cursor:default}.map-loading{min-height:280px;display:grid;place-items:center;margin:0;color:var(--muted);text-align:center}.map-selection{min-height:104px;border:1px solid var(--line);border-radius:9px;background:#fffaf1;padding:13px}.map-selection>strong,.map-selection>span{display:block}.map-selection>strong{font-family:Georgia,Times New Roman,serif;font-size:1.15rem}.map-selection>span,.map-selection>p{margin:4px 0 0;color:var(--muted);font-size:.78rem}.map-selection ol{display:grid;gap:6px;margin:11px 0 0;padding:0;list-style:none}.map-selection li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;font-size:.78rem}.map-selection li span{display:inline-flex;align-items:center;gap:6px}.map-selection li small{grid-column:1 / -1;color:var(--muted);padding-left:17px}.map-selection li i{width:10px;height:10px;border-radius:2px}.overseas-results{margin-top:12px}.overseas-results>strong{display:block;margin-bottom:7px;font-size:.8rem}.overseas-results>div{display:flex;flex-wrap:wrap;gap:6px}.overseas-results button{display:inline-flex;align-items:center;gap:6px;min-height:36px;border:1px solid var(--line);border-radius:999px;background:#fffaf1;color:var(--green);padding:0 9px;font-size:.72rem}.map-attribution{margin:9px 0 0;color:var(--muted);font-size:.7rem;line-height:1.4}.economic-context{border-left:4px solid var(--blue);background:var(--paper);padding:13px 15px}.reform-context{border-left:4px solid var(--green);background:var(--paper);padding:13px 15px}.post-election-sequence{border-top:1px solid var(--line);padding-top:23px}.post-election-list{display:grid;gap:8px;margin-top:14px}.post-election-list button{display:grid;grid-template-columns:84px minmax(0,1fr);gap:3px 10px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fffaf1;color:var(--ink);padding:11px;text-align:left}.post-election-list button:hover,.post-election-list button:focus{border-color:var(--green);outline:none}.post-election-list span{grid-row:1 / span 2;color:var(--oxide);font-size:.73rem;font-weight:800}.post-election-list small{color:var(--muted)}.linked-section{margin-top:22px}.source-list{padding-left:18px;line-height:1.6}.relation-row{display:block;width:100%;margin-bottom:10px}.relation-row strong,.relation-row small{display:block;margin-top:4px}.wide-action{width:100%;margin-top:18px}.genealogy-controls{display:grid;gap:10px;margin-bottom:12px}.genealogy-controls label{display:grid;gap:5px;color:var(--muted);font-size:.78rem;font-weight:750}.genealogy-controls select{min-height:46px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fffaf1;color:var(--ink);padding:0 11px}.genealogy-zoom{display:grid;grid-template-columns:46px minmax(64px,1fr) 46px;align-items:end;align-self:end}.genealogy-zoom button,.genealogy-zoom span{min-height:46px;display:grid;place-items:center;border:1px solid var(--line);background:#fffaf1;color:var(--green)}.genealogy-zoom button:first-child{border-radius:8px 0 0 8px}.genealogy-zoom button:last-child{border-radius:0 8px 8px 0}.genealogy-zoom span{border-right:0;border-left:0;font-size:.78rem;font-weight:800}.genealogy-relation-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.genealogy-relation-filters button{min-height:40px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:#fffaf1;color:var(--green);padding:0 11px;font-size:.78rem;font-weight:750}.genealogy-relation-filters button[aria-pressed=false]{opacity:.48;text-decoration:line-through}.genealogy-relation-filters button>span{width:10px;height:10px;border-radius:50%;background:currentColor}.genealogy-summary{display:flex;flex-wrap:wrap;gap:7px 14px;margin:0 0 10px;color:var(--muted);font-size:.78rem}.genealogy-summary strong{color:var(--ink)}.genealogy-workspace{display:grid;gap:12px;min-width:0}.genealogy-viewport{height:clamp(440px,62svh,680px);overflow:auto;border:1px solid var(--line);border-radius:8px;background-color:#fffaf1;background-image:linear-gradient(var(--paper-deep) 1px,transparent 1px),linear-gradient(90deg,var(--paper-deep) 1px,transparent 1px);background-size:28px 28px;overscroll-behavior:contain}.genealogy-scaled-canvas{position:relative}.genealogy-stage{position:absolute;inset:0 auto auto 0;transform-origin:left top}.genealogy-lines{position:absolute;inset:0;overflow:visible;pointer-events:none}.genealogy-lines .genealogy-line{fill:none;stroke-width:2.5;opacity:.78}.genealogy-line.selected{stroke-width:4.5;opacity:1}.genealogy-edge-label{position:absolute;z-index:2;width:86px;min-height:28px;border:1px solid currentColor;border-radius:999px;background:#fffaf1;padding:3px 5px;font-size:.62rem;font-weight:800;line-height:1.1;text-align:center}.genealogy-edge-label.selected{box-shadow:0 0 0 3px #31566d33}.genealogy-party-node{position:absolute;z-index:3;overflow:hidden;border:2px solid var(--line);border-radius:9px;background:#fffaf1;color:var(--ink);padding:10px 12px;text-align:left;box-shadow:0 3px 9px #2025221a}.genealogy-party-node.active{border-left:6px solid var(--green)}.genealogy-party-node.historical{border-left:6px solid var(--muted)}.genealogy-party-node.selected{border-color:var(--blue);box-shadow:0 0 0 4px #31566d33,0 5px 14px #20252224}.genealogy-party-node strong{display:block;margin:5px 0 2px;color:var(--green);font-size:1.18rem;line-height:1}.genealogy-party-node small{display:-webkit-box;overflow:hidden;color:#3b423d;font-size:.7rem;line-height:1.22;-webkit-box-orient:vertical;-webkit-line-clamp:2}.genealogy-node-date{display:block;padding-right:58px;color:var(--oxide);font-size:.67rem;font-weight:800}.genealogy-node-status{position:absolute;top:8px;right:8px;color:var(--muted);font-size:.61rem;font-weight:800;text-transform:uppercase}.genealogy-party-node.active .genealogy-node-status{color:var(--green)}.genealogy-detail{border:1px solid var(--line);border-radius:8px;background:#fffaf1;padding:16px}.genealogy-detail h2{display:flex;align-items:center;gap:7px;margin:7px 0 4px;font-family:Georgia,Times New Roman,serif;font-size:1.35rem}.genealogy-detail p{margin:10px 0 0;color:#3b423d;line-height:1.5}.genealogy-detail .genealogy-detail-date{margin-top:4px;color:var(--oxide);font-weight:800}.genealogy-detail-type{font-size:.72rem;font-weight:850;text-transform:uppercase}.genealogy-detail dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:14px 0 0}.genealogy-detail dl div{background:var(--paper);padding:8px}.genealogy-detail dt{color:var(--muted);font-size:.68rem}.genealogy-detail dd{margin:3px 0 0;font-size:.78rem;font-weight:800}.genealogy-detail-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.genealogy-detail-actions button{min-height:40px;border:1px solid var(--green);border-radius:8px;background:#fffaf1;color:var(--green);padding:0 10px}.genealogy-legend{display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;margin-top:12px;color:var(--muted);font-size:.75rem}.genealogy-legend span{display:inline-flex;align-items:center;gap:6px}.genealogy-legend i{width:18px;height:13px;border:2px solid var(--line);border-left-width:5px;border-radius:3px;background:#fffaf1}.genealogy-legend .active-node{border-left-color:var(--green)}.genealogy-legend .historical-node{border-left-color:var(--muted)}.genealogy-legend small{flex-basis:100%;line-height:1.4}.relation-creation{color:var(--gold);stroke:var(--gold);fill:var(--gold)}.relation-split{color:var(--oxide);stroke:var(--oxide);fill:var(--oxide)}.relation-merge{color:var(--blue);stroke:var(--blue);fill:var(--blue)}.relation-rename{color:var(--green);stroke:var(--green);fill:var(--green)}.relation-succession{color:var(--muted);stroke:var(--muted);fill:var(--muted)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media(max-width:360px){.menu-trigger span,.brand small{display:none}}@media(prefers-reduced-motion:reduce){.menu-overlay,.menu-drawer,.spinning{animation:none}}@media(min-width:760px){main{padding:24px}.hero{grid-template-columns:1.2fr .8fr;min-height:72vh}.archive-visual{grid-template-columns:repeat(4,minmax(0,1fr))}.discovery-grid,.card-grid,.filter-row,.fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.election-key-figures{grid-template-columns:repeat(4,minmax(0,1fr))}.france-map-shell{grid-template-columns:minmax(0,1.6fr) minmax(230px,.7fr);align-items:start}.map-selection{position:sticky;top:86px}.person-profile{grid-template-columns:minmax(210px,270px) minmax(0,1fr)}.profile-info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mandates-list{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);align-items:start}.genealogy-controls{grid-template-columns:minmax(210px,.8fr) minmax(280px,1.2fr) 160px;align-items:end}}@media(min-width:1040px){.discovery-grid,.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail{padding:24px}.genealogy-workspace{grid-template-columns:minmax(0,1fr) 290px;align-items:start}.genealogy-detail{position:sticky;top:78px}}
