.analytics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:17px 0 24px;border-top:1px solid var(--line);font:500 13px var(--sans)}
.analytics-toolbar>label{display:flex;align-items:center;gap:13px}.analytics-toolbar input{width:180px;accent-color:var(--ink)}.analytics-toolbar output{min-width:2ch;font-variant-numeric:tabular-nums}
.experiment-nav{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin-bottom:38px}.experiment-nav a{display:flex;justify-content:space-between;padding:19px 23px;text-decoration:none;font:600 16px var(--sans)}.experiment-nav a+a{border-left:1px solid var(--line)}.experiment-nav a:hover{background:var(--soft)}.experiment-nav span{color:var(--brass)}
.analytics-experiment{border:1px solid var(--line);border-radius:8px;background:var(--panel);margin-block:0 40px;scroll-margin-top:20px;box-shadow:0 8px 28px #173c3808;overflow:hidden}.experiment-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 28px;border-bottom:1px solid var(--line);flex-wrap:wrap}.experiment-heading h2{font-size:34px}.flow-legend{display:flex;gap:24px;font:600 12px var(--sans)}.flow-legend span:before{content:'';display:inline-block;width:22px;height:3px;margin-right:8px;vertical-align:middle;background:currentColor}.paternal-key{color:#316b9d}.maternal-key{color:#a13d6a}.maternal-key:before{background:repeating-linear-gradient(90deg,currentColor 0 5px,transparent 5px 8px)!important}
.migration-layout,.lifetime-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px}.migration-chart{min-width:0;position:relative;background:#f1f1e8}.map-tools{position:absolute;top:16px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:1;font:500 11px var(--sans)}.map-tools label{display:flex;align-items:center;gap:9px}.map-tools select,.map-tools button{font-size:12px;background:var(--panel);min-height:35px;padding:6px 10px}.migration-map{height:500px;overflow:hidden}.migration-svg{width:100%;height:100%;display:block}.migration-land{fill:#e0dfcd;stroke:#c1c4ae;stroke-width:.45}.migration-graticule{fill:none;stroke:#cad0bf;stroke-width:.4;stroke-dasharray:2 5}.migration-labels{fill:#627065;font:6px var(--sans);letter-spacing:1px;text-anchor:middle}.ancestry-route{fill:none;transition:opacity .25s}.ancestry-route.is-dimmed{opacity:.22}.route-glow{stroke-width:4;opacity:.2}.route-line{stroke-width:1.6}.maternal .route-line{stroke-dasharray:5 2}.route-particles{stroke-width:2;stroke-dasharray:1 25;animation:ancestry-flow 4s linear infinite;opacity:.85}.is-paused .route-particles{animation-play-state:paused}.migration-node{cursor:pointer;outline:none}.node-aura{fill:#fffdf870;stroke:#173c3817;stroke-width:.6}.node-core{fill:#173c38;stroke:var(--panel);stroke-width:1.1}.country-node .node-core{fill:#fffdf8;stroke:#173c38;stroke-width:1}.country-center{fill:#173c38}.migration-node.is-selected .node-aura,.migration-node:focus .node-aura{fill:#dfd0a470;stroke:#85632a;stroke-width:1.5}.map-key{display:flex;justify-content:center;gap:20px;padding:10px 12px 15px;font:500 10px var(--sans);color:#56665b;flex-wrap:wrap}
.analytics-inspector{border-left:1px solid var(--line);padding:25px 23px;max-height:550px;overflow:auto;scrollbar-width:thin}.analytics-inspector h3{font-size:26px;line-height:1.2}.analytics-inspector>p{font-size:16px;margin-top:13px}.inspection-meta{font:500 11px/1.65 var(--sans)!important;color:var(--muted);margin:10px 0 18px!important}.analytics-people{list-style:none;padding:0;margin:16px 0}.analytics-people li{font-size:16px;line-height:1.35;padding:10px 0;border-bottom:1px solid #e7dfcf}.analytics-people a{font-weight:600;text-decoration-color:#b0ab95}.analytics-people small{display:block;font:400 10px/1.6 var(--sans);color:var(--muted);margin-top:6px}.analytics-inspector details,.inspection-link{font:500 12px/1.5 var(--sans)}.inspection-link{display:inline-block;margin-top:14px}.inspection-links{margin-block:20px;font-size:18px}.connection-arrow{display:block;margin:6px 0;color:var(--brass)}
.experiment-bottom{display:flex;gap:25px;justify-content:space-between;align-items:flex-start;padding:19px 27px;border-top:1px solid var(--line);font:400 12px/1.7 var(--sans)}.experiment-bottom>p{font:400 12px/1.7 var(--sans);max-width:700px}.experiment-bottom details{max-width:500px;min-width:130px}.experiment-bottom summary{font-weight:600;cursor:pointer;white-space:nowrap}.experiment-bottom details p{margin-top:12px}.route-index,.generation-index{padding:0 27px 20px;font:500 12px var(--sans)}.route-index summary,.generation-index summary{cursor:pointer;padding-block:8px}.route-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.route-button{padding:12px;text-align:left;border:1px solid var(--line);border-left:3px solid #316b9d;border-radius:4px;background:#f9f7ef;font-size:12px}.route-button.maternal{border-left-color:#b14978}.route-button small{display:block;font-size:10px;margin-top:5px;color:var(--muted)}
.compact-control{display:flex;align-items:center;gap:10px;font:500 12px var(--sans)}.compact-control select{font-size:12px;min-height:35px;padding:6px 9px}.lifetime-year{display:flex;gap:18px;align-items:center;padding:22px 27px;border-bottom:1px solid var(--line);background:#f6f3e9}.lifetime-year label{flex:1;display:flex;align-items:center;gap:17px;font:500 12px var(--sans)}.lifetime-year input{flex:1;min-width:50px;accent-color:var(--brass)}.lifetime-year output{font:500 30px var(--serif);min-width:4ch;font-variant-numeric:tabular-nums}.lifetime-year button{padding:6px 8px;border:1px solid var(--line);border-radius:4px;font-size:11px;min-height:34px}.lifetime-plot{min-width:0;padding:10px 14px 20px}.lifetime-axis svg{width:100%;display:block;min-width:650px}.lifetime-axis{overflow:hidden;font:12px var(--sans);color:var(--muted)}.lifeline-scroll{max-height:430px;overflow:auto;scrollbar-width:thin}.lifeline-svg{display:block;width:100%;min-width:650px}.lifeline-row{outline:none;cursor:pointer}.lifeline-hit{fill:transparent}.lifeline-row text{fill:#516058;font:14px var(--serif)}.lifeline{fill:none;stroke-width:2;opacity:.45;transition:opacity .2s,stroke-width .2s}.lifeline-row.is-overlapping .lifeline{opacity:1;stroke-width:4}.lifeline-row.is-overlapping .lifeline-hit{fill:#e9ece080}.lifeline-row:hover .lifeline-hit,.lifeline-row:focus .lifeline-hit{fill:#e8ddc2}.lifeline-row:focus .lifeline-hit{stroke:#95753d;stroke-width:1}.lifetime-grid{stroke:var(--line);stroke-width:.5;stroke-dasharray:2 4;fill:none}.overlap-cursor{fill:none;stroke:#967439;stroke-width:1.5;stroke-dasharray:3 3;pointer-events:none}
.rings-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px}.rings-chart{min-width:0;background:radial-gradient(ellipse at center,#fffdf8 30%,#f2efe3)}.rings-svg{display:block;width:100%;max-width:610px;margin:auto}.ancestry-sector{stroke:var(--panel);stroke-width:.35;cursor:pointer;transition:opacity .18s;outline:none}.ancestry-sector.is-active,.ancestry-sector:focus{stroke:#173c38;stroke-width:2}.ancestry-sector:hover{opacity:.8}.ring-center-number{font:32px var(--serif);fill:var(--ink)}.ring-center-label{font:11px var(--sans);fill:var(--muted)}.ring-axis-label{font:10px var(--sans);fill:var(--muted);letter-spacing:.5px}.experiment-unit{font:500 12px var(--sans);color:var(--muted)}.country-legend{display:flex;gap:13px 24px;padding:18px 27px;flex-wrap:wrap;border-top:1px solid var(--line);font:500 11px var(--sans)}.country-legend span{display:flex;gap:7px;align-items:center}.country-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.analytics-table-scroll{overflow:auto}.analytics-table-scroll table{width:100%;border-collapse:collapse;font:400 12px var(--sans);text-align:right}.analytics-table-scroll td,.analytics-table-scroll th{padding:12px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.analytics-table-scroll th:first-child{text-align:left}.analytics-sources{font:400 13px/1.7 var(--sans);padding:5px 0 25px;max-width:900px}.analytics-sources summary{font-weight:600;cursor:pointer}.analytics-sources p{margin-top:14px}
@keyframes ancestry-flow{to{stroke-dashoffset:-104}}
@media(min-width:1101px) and (max-width:1270px){.site-header{gap:12px}.site-header nav{gap:0;font-size:13px}.site-header nav a{padding:9px}.wordmark span{font-size:25px}.wordmark{column-gap:8px}}
@media(max-width:1000px){.migration-layout,.lifetime-layout{grid-template-columns:minmax(0,1fr) 250px}.rings-layout{grid-template-columns:minmax(0,1fr) 290px}.analytics-inspector{padding:22px 18px}.experiment-nav a{padding:16px;font-size:14px}.migration-map{height:450px}.experiment-bottom{flex-direction:column;gap:12px}.experiment-bottom details{max-width:none}.route-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.experiment-heading{padding:21px 18px}.experiment-heading h2{font-size:29px}.experiment-nav{grid-template-columns:1fr;margin-bottom:26px}.experiment-nav a+a{border-left:0;border-top:1px solid var(--line)}.experiment-nav a{padding:14px 18px}.analytics-toolbar .segmented{gap:7px}.analytics-toolbar .segmented button{font-size:12px;padding:8px 11px}.analytics-toolbar>label{width:100%}.analytics-toolbar input{flex:1}.migration-layout,.lifetime-layout,.rings-layout{grid-template-columns:1fr}.migration-map{height:380px}.map-tools{top:12px;left:12px;right:12px;gap:6px}.map-tools label{gap:5px;font-size:10px}.map-tools select,.map-tools button{font-size:10px;padding:5px 7px}.analytics-inspector{border-left:0;border-top:1px solid var(--line);max-height:290px;padding:20px}.experiment-bottom{padding:17px 18px}.map-key{gap:12px;font-size:9px}.flow-legend{gap:17px;font-size:11px}.route-index,.generation-index{padding-inline:18px}.route-buttons{grid-template-columns:1fr}.lifetime-year{gap:9px;padding:15px 12px}.lifetime-year label{gap:9px;flex-wrap:wrap;font-size:10px}.lifetime-year output{font-size:25px}.lifetime-plot{overflow:auto}.lifetime-axis{min-width:650px}.lifeline-scroll{max-height:340px}.rings-svg{max-width:480px}.country-legend{padding:17px 18px;gap:13px;font-size:10px}.analytics-experiment{margin-bottom:28px}.analytics-people li{font-size:17px}.analytics-people small{font-size:11px}.analytics-sources{font-size:12px}}
@media(prefers-reduced-motion:reduce){.route-particles{animation:none}.ancestry-route,.lifeline,.ancestry-sector{transition:none}}

.node-hit{fill:transparent;stroke:transparent;stroke-width:22;vector-effect:non-scaling-stroke}.lifetime-plot{overflow:auto}.lifetime-axis,.lifeline-scroll{min-width:900px}.lifeline-svg{min-width:900px}.chart-scroll-hint{display:none;font:500 11px var(--sans);padding-top:12px;color:var(--muted)}.ancestry-sector{animation:ring-reveal .5s both;transform-origin:center}
@keyframes ring-reveal{from{opacity:0}to{opacity:1}}
@media(max-width:1250px){.chart-scroll-hint{display:block}}
@media(prefers-reduced-motion:reduce){.ancestry-sector{animation:none}}
