@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
.family-document{display:grid;grid-template-columns:82px minmax(0,1fr);gap:16px;padding:16px;margin:22px 0;border:1px solid #3c595b;border-radius:12px;background:#142e32;text-decoration:none;color:#f1f5f6}.family-document img{width:82px;height:116px;object-fit:cover;border-radius:5px}.family-document>span{display:flex;flex-direction:column;gap:7px}.family-document small{font-size:10px;letter-spacing:1.4px;color:#7be3d0}.family-document strong{font-size:17px;line-height:1.3}.family-document span span{font-size:13px;line-height:1.5;color:#b0c0ca}.family-document b{font-size:12px;color:#7be3d0;font-weight:500}
:root{color-scheme:dark;--bg:#09141f;--panel:#101f2c;--line:#243543;--text:#f1f5f6;--muted:#9baebb;--mint:#7be3d0;--blue:#99baff;--amber:#e9ba7a;--font:'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button:disabled{opacity:.4;cursor:default}a{color:var(--mint)}button{transition:background .18s,color .18s,border-color .18s}button:hover{filter:brightness(1.14)}button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.topbar{height:86px;display:flex;align-items:center;padding:0 32px;border-bottom:1px solid var(--line);gap:24px;background:#0d1925;position:relative;z-index:15}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text)}.brand>svg{width:34px;height:34px;fill:var(--bg);stroke:var(--mint);stroke-width:1.5}.brand>span{font-family:Manrope,var(--font);font-size:24px;font-weight:600;letter-spacing:-.9px;line-height:1.25}.brand small{display:block;font:10px var(--font);color:var(--muted);letter-spacing:2.2px;margin-top:5px}.view-switch{display:flex;gap:3px;background:#07111b;border:1px solid var(--line);border-radius:10px;padding:4px;margin-left:auto}.view-switch button{font-size:14px;padding:10px 23px;border-radius:7px;background:transparent;color:var(--muted)}.view-switch button.active{background:#253844;color:#fff;box-shadow:0 2px 6px #0003}.text-button{background:transparent;font-size:14px;border:1px solid #3b4d5a;border-radius:8px;padding:12px 16px}.text-button span{margin-left:7px;color:var(--muted);font-size:12px}.workspace{display:flex;height:calc(100dvh - 86px);min-height:400px}.graph{position:relative;flex:1;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 58% 40%,#142c37 0,transparent 67%),#09141f}#scene,#labels{position:absolute;inset:0}#scene{touch-action:none}#scene canvas{display:block;width:100%;height:100%;outline:0}#labels{pointer-events:none;overflow:hidden}.graph-heading{position:absolute;left:32px;top:28px;z-index:3;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:600;color:var(--muted);margin:0 0 11px}.graph-heading h1{font-family:Manrope,var(--font);font-size:26px;font-weight:500;letter-spacing:-.7px;margin:0 0 8px}.graph-heading>p:last-child{font-size:14px;margin:0;color:var(--muted)}.graph-top{position:absolute;left:32px;top:139px;display:flex;gap:18px;align-items:center;z-index:4}.segmented{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:3px;background:#0c1925}.segmented button{background:transparent;color:var(--muted);font-size:13px;border-radius:5px;padding:8px 11px}.segmented .active{background:#29433f;color:#a8f4e6}.segmented span{font-size:11px;padding-left:4px;opacity:.8}.toggle{font-size:13px;color:#b6c6d0;display:flex;align-items:center;gap:7px;cursor:pointer}.toggle input{accent-color:var(--mint);width:16px;height:16px}.node-position{position:absolute;left:0;top:0;pointer-events:none}.person-node{position:relative;transform:translate(-50%,-50%);width:164px;min-height:70px;text-align:left;background:#112633;border:1px solid #396565;border-radius:10px;padding:10px 12px;pointer-events:auto;box-shadow:0 5px 18px #0003;display:block;transform-origin:center}.person-node .node-name{display:block;font-weight:600;font-size:13px;line-height:1.35}.person-node .node-dates{display:block;font-size:11px;color:#9cbbc4;margin-top:5px}.person-node[data-kind="O"],.person-node[data-kind="U"]{border-style:dashed;border-color:#826a4e;background:#211f20}.person-node[data-kind="O"] .node-dates,.person-node[data-kind="U"] .node-dates{color:#c8ac88}.person-node[data-branch="brendhagen"]{border-color:#5d7697;background:#172637}.person-node.selected{border-color:var(--mint);background:#234f4c;box-shadow:0 0 0 3px #7be3d015,0 0 35px #4dc6bb20}.person-node.selected:before{content:'';position:absolute;top:-5px;right:-5px;background:var(--mint);width:9px;height:9px;border:3px solid var(--bg);border-radius:50%}.person-node.dimmed{opacity:.27}.person-node:hover{border-color:#b2ffea;opacity:1}.person-node .node-tag{font-size:10px;position:absolute;bottom:-17px;color:#b9d1d5;left:0;right:0;text-align:center;white-space:nowrap}.generation-label{position:absolute;left:18px;color:#526c7c;font-size:10px;letter-spacing:1px;transform:translateY(-50%);pointer-events:none;writing-mode:vertical-rl}.graph-bottom{position:absolute;left:32px;bottom:25px;pointer-events:none;z-index:3}.legend{display:flex;gap:20px;color:#b0c0cb;font-size:12px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:20px;height:1px;border-top:1px solid var(--mint)}.legend i.dashed{border-top:1px dashed var(--amber)}.graph-bottom p{font-size:11px;color:#69808f;margin:10px 0 0}.camera-tools{position:absolute;right:24px;bottom:24px;border:1px solid #314553;border-radius:10px;display:flex;align-items:center;background:#122230;z-index:6;padding:4px;box-shadow:0 8px 24px #0004}.camera-tools button{background:transparent;width:40px;height:38px;border-radius:6px;font-size:24px;display:grid;place-items:center}.camera-tools button:hover{background:#283d4b}.camera-tools>span{height:18px;width:1px;background:#344957;margin:0 5px}.selection-chip{position:absolute;top:24px;right:24px;z-index:4;align-items:center;gap:10px;background:#21433f;color:var(--mint);border:1px solid #3a6c62;border-radius:20px;padding:7px 8px 7px 12px;font-size:12px}.selection-chip:not([hidden]){display:flex}.selection-chip button{background:#ffffff0d;border-radius:50%;width:22px;height:22px}.detail-panel{width:340px;flex:none;background:linear-gradient(145deg,#142633,#0e1c29 55%);border-left:1px solid var(--line);overflow:auto;padding:24px 25px 40px;z-index:10;scrollbar-width:thin;scrollbar-color:#34505f transparent}.panel-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.panel-top .eyebrow{margin:0}.panel-top button{background:transparent;color:var(--muted);font-size:24px;line-height:1;width:30px;height:30px}.avatar{width:63px;height:63px;border:1px solid #457469;color:var(--mint);border-radius:18px;display:grid;place-items:center;font-family:Manrope,var(--font);font-size:25px;background:#1b3937;margin-bottom:20px}.person-heading{font-family:Manrope,var(--font);font-size:28px;font-weight:500;letter-spacing:-.6px;line-height:1.2;margin:0 0 10px}.person-years{margin:0 0 6px;color:#bfd0d8;font-size:15px}.person-role{font-size:13px;color:#8ea9ba;margin:0 0 18px}.badge{display:inline-flex;padding:6px 9px;border:1px solid #366154;border-radius:5px;font-size:11px;letter-spacing:.2px;color:#9ce5c8;background:#16372e;margin-bottom:23px}.badge.uncertain{background:#33291e;border-color:#776041;color:#e5c296}.detail-note{border-top:1px solid var(--line);padding-top:18px;color:#b5c7d2;font-size:14px;line-height:1.65;margin:0 0 22px}.detail-note p{margin:0 0 10px}.detail-note p:last-child{margin-bottom:0}.detail-section{border-top:1px solid var(--line);padding-top:20px;margin:22px 0}.detail-section h3{font-size:11px;letter-spacing:1.8px;font-weight:500;color:#8da5b4;margin:0 0 12px}.relation-button{display:flex;align-items:center;text-align:left;width:100%;background:#ffffff03;border:1px solid #2d424f;border-radius:7px;padding:10px 11px;margin-bottom:7px;gap:11px}.relation-button>span:first-child{background:#26413e;color:#a7dfd0;width:32px;height:32px;display:grid;place-items:center;flex:none;border-radius:9px;font-size:11px}.relation-button .relation-name{font-size:13px;line-height:1.4;flex:1}.relation-button small{display:block;font-size:11px;color:#8fa9ba;margin-top:2px}.relation-button b{color:#7893a4;font-weight:400}.relation-button.uncertain{border-style:dashed;border-color:#5c503e}.source-link{display:block;font-size:13px;line-height:1.6;text-decoration:none;border-bottom:1px solid #29404a;padding:8px 0}.source-link span{color:#8da5b4;display:block;font-size:11px}.source-text{font-size:13px;line-height:1.6;color:#a8bac6;margin:10px 0}.focus-button{width:100%;padding:12px;background:var(--mint);color:#0a2927;border-radius:7px;font-size:13px;font-weight:600;margin:0 0 10px}.quiet-button{width:100%;padding:10px;color:var(--muted);border:1px solid #304452;border-radius:7px;font-size:13px;background:transparent}.empty-copy{font-size:14px;line-height:1.6;color:var(--muted)}dialog{width:min(560px,calc(100vw - 32px));max-height:82dvh;color:var(--text);background:#132532;border:1px solid #3a515e;box-shadow:0 30px 120px #0008;border-radius:18px;padding:26px}dialog::backdrop{background:#020c16bb;backdrop-filter:blur(7px)}.dialog-header{display:flex;justify-content:space-between;align-items:start}.dialog-header h2{font:500 25px Manrope,var(--font);margin:0 0 23px}.dialog-header button{font-size:25px;background:transparent;width:28px}.search-label{display:block;font-size:12px;color:var(--muted);margin:0 0 7px}input[type="search"]{width:100%;font:15px var(--font);padding:14px;background:#0c1b27;border:1px solid #385363;color:var(--text);border-radius:8px}#person-results{margin-top:17px;max-height:52dvh;overflow:auto;scrollbar-width:thin}.result-person{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:transparent;border-bottom:1px solid #273e4d;padding:12px 2px}.result-person .result-initials{display:grid;place-items:center;width:37px;height:37px;border:1px solid #3a5e63;border-radius:10px;font-size:12px;color:var(--mint);flex:none}.result-person>span:nth-child(2){flex:1;font-size:14px}.result-person small{display:block;font-size:11px;margin-top:4px;color:var(--muted)}.result-person .result-status{color:#bbaa88;font-size:11px}.result-person:hover{background:#1b3543}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#error-state{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);max-width:380px;background:#142c3a;border:1px solid #385465;border-radius:14px;padding:24px;z-index:8}#error-state h2{font-size:20px}#error-state p{font-size:14px;color:var(--muted);line-height:1.6}#error-state button{background:var(--mint);color:#152b27;padding:12px;border-radius:6px}.detail-panel.closed{display:none}
@media(min-width:1500px){.detail-panel{width:370px;padding:30px}.graph-heading{top:36px;left:42px}.graph-top{left:42px;top:153px}.graph-heading h1{font-size:30px}}
@media(max-width:1050px){.detail-panel{width:290px;padding:21px}.topbar{padding:0 24px}.graph-heading h1{font-size:23px}.graph-top{gap:9px}.selection-chip{top:auto;bottom:104px;left:32px;right:auto}.person-heading{font-size:25px}.toggle{font-size:12px}.graph-bottom{bottom:28px}.camera-tools{right:15px;bottom:20px}.legend{gap:12px;font-size:11px}.graph-bottom p{display:none}}
@media(max-width:760px){.topbar{height:73px;padding:0 17px;gap:12px}.brand{gap:9px}.brand>svg{width:28px}.brand>span{font-size:20px}.brand small{font-size:8px;letter-spacing:1.4px}.view-switch{margin-left:auto}.view-switch button{padding:9px 10px;font-size:12px}.text-button{font-size:0;padding:10px;border-color:#3b4d5a;display:grid;place-items:center;width:38px;height:38px}.text-button:before{content:'⌕';font-size:27px;line-height:18px}.text-button span{display:none}.workspace{height:calc(100dvh - 73px)}.graph-heading{left:20px;top:24px}.graph-heading .eyebrow{font-size:9px}.graph-heading h1{font-size:23px}.graph-heading>p:last-child{font-size:12px}.graph-top{left:20px;top:124px;gap:12px}.segmented button{font-size:12px;padding:7px 9px}.toggle{font-size:11px;gap:4px}.toggle input{width:15px;height:15px}.detail-panel{position:absolute;bottom:0;left:0;right:0;width:100%;max-height:55dvh;border:1px solid #39505f;border-radius:20px 20px 0 0;box-shadow:0 -20px 50px #0005;padding:18px 24px 30px}.detail-panel .panel-top{margin-bottom:16px}.detail-panel .avatar{width:42px;height:42px;font-size:19px;border-radius:12px;float:left;margin:0 13px 12px 0}.detail-panel .person-heading{font-size:24px;padding-right:10px}.detail-panel .person-years{font-size:13px}.detail-panel .person-role{font-size:12px;margin-bottom:14px}.badge{margin-bottom:16px}.detail-note{clear:both}.graph-bottom{left:20px;bottom:24px}.graph-bottom .legend{flex-direction:column;gap:8px;font-size:10px}.camera-tools{right:15px;bottom:20px}.camera-tools button{width:35px;height:36px}.selection-chip{left:20px;bottom:88px;max-width:calc(100% - 40px)}.generation-label{left:8px;font-size:9px}.person-node{width:150px;min-height:65px;padding:9px 11px}.person-node .node-name{font-size:12px}.person-node .node-dates{font-size:10px}.person-node .node-tag{font-size:9px}.graph-heading{pointer-events:none}dialog{padding:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.person-node.compact{width:125px;min-height:45px;padding:8px 9px;border-radius:7px}.person-node.compact .node-name{font-size:12px;line-height:1.25}.person-node.compact .node-dates{display:none}.person-node.compact .node-tag{font-size:9px;bottom:-16px}
.node-sibling-count{display:block;width:max-content;font-size:9px;line-height:1.5;color:#a6c3c7;margin-top:6px;border-top:1px solid #6c9c9b40;padding-top:4px}.person-node.compact .node-sibling-count{display:none}.person-node.minor,.person-node.minor.compact{width:118px;min-height:44px;padding:7px 9px;border-radius:7px;box-shadow:0 3px 10px #0002;background:#101f2a}.person-node.minor .node-name{font-size:11px;line-height:1.3}.person-node.minor .node-dates,.person-node.minor .node-sibling-count,.person-node.minor .node-tag{display:none}.gap-label{position:absolute;left:0;top:0;padding:4px 7px;border-radius:4px;background:#101f2cee;color:#a9bbc8;font-size:9px;white-space:nowrap;pointer-events:none;translate:-50% -50%;border:1px dotted #6e8997}.sibling-cards{display:grid;gap:6px}.sibling-card{display:flex;align-items:center;gap:9px;width:100%;min-height:48px;text-align:left;padding:7px 9px;background:#0c1b274d;border:1px solid #314753;border-radius:6px}.sibling-card .sibling-initials{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:7px;color:#a6d9cf;background:#243b3d;font-size:9px}.sibling-card>span:nth-child(2){flex:1;min-width:0}.sibling-card strong{display:block;font-size:12px;line-height:1.35;font-weight:500}.sibling-card small{display:block;font-size:10px;line-height:1.35;color:#92a8b7;margin-top:2px}.sibling-card b{font-size:12px;color:#88bcb3;font-weight:400}.sibling-card.uncertain{border-style:dashed;border-color:#79613f}.sibling-tree-link{min-height:44px;width:100%;text-align:left;padding:10px 0 0;background:transparent;color:var(--mint);font-size:12px}.siblings-section{border-left:1px solid #385458;padding-left:12px}.sibling-card:hover{border-color:#77bcad;background:#193439}
@media(max-width:760px){.panel-open .graph-heading{display:none}.panel-open .graph-top{top:15px}.panel-open .graph-bottom,.panel-open .selection-chip{display:none}.panel-open .camera-tools{top:61px;bottom:auto;right:14px;flex-direction:column}.panel-open .camera-tools button{width:31px;height:31px}.panel-open .camera-tools>span{display:none}}

#research-open{pointer-events:auto;color:var(--mint);background:transparent;font-size:12px;padding:0;margin-top:9px;text-decoration:underline;text-underline-offset:3px}.graph-top{top:160px}.research-branch{border-top:1px solid var(--line);padding:22px 0}.research-branch .eyebrow{margin-bottom:8px}.research-branch h3{font-size:19px;font-weight:500;margin:0 0 10px}.research-branch p:not(.eyebrow){font-size:14px;line-height:1.6;color:#b5c7d2}.research-next{background:#0d202b;padding:12px;border-radius:8px}.research-branch .quiet-button{text-align:left}#research{width:min(640px,calc(100vw - 32px))}@media(min-width:1500px){.graph-top{top:172px}}@media(max-width:760px){.graph-top{top:150px}.panel-open .graph-top{top:15px}}
.trail-status{display:inline-block;padding:.25rem .5rem;border:1px solid #54616d;border-radius:4px;color:#c5d0da;font-size:.75rem;line-height:1.5}
.trail-status.children{color:#a5eddb;border-color:#397a71;background:#173e38}
.trail-status.early{color:#e5c7a9;border-color:#7c644e;background:#302a25}
.trail-list{display:grid;gap:.625rem;margin:1.25rem 0}
.trail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem .75rem;text-align:left;width:100%;padding:1rem;background:#122330;border:1px solid #2f4655;border-radius:8px;color:#e5edf3;cursor:pointer;font:inherit}
.trail-row:hover,.trail-row:focus-visible{border-color:#7be3d0;background:#19313d}
.trail-person strong{display:block;font-size:.9375rem;line-height:1.4}
.trail-person small{display:block;color:#a8bbc9;font-size:.8125rem;margin-top:.2rem}
.trail-row .trail-status{align-self:start}
.trail-place,.trail-description{grid-column:1/-1;line-height:1.55;font-size:.875rem}
.trail-place{color:#b4d1df}.trail-description{color:#a5b4c2}
.family-memory{margin-top:1rem;padding:.75rem;border:1px solid #394b58;border-radius:6px}
.family-memory summary{cursor:pointer;color:#bccbd7;font-size:.875rem}
.sibling-trails{grid-column:1/-1;scroll-margin-top:1rem}
.node-sibling-count{font-size:12px}
.person-node.minor,.person-node.minor.compact{width:132px}
.person-node.minor .node-name{font-size:12px}
.sibling-card{min-height:56px}
.sibling-card strong{font-size:14px}
.sibling-card small{font-size:12px;line-height:1.5}
.sibling-tree-link{font-size:12px}
@media(max-width:480px){.trail-row{grid-template-columns:1fr}.trail-row .trail-status{justify-self:start}}

/* Historical milestones sit on their own line; tree rows remain generations. */
.graph{--history-height:242px}
#scene,#labels{bottom:var(--history-height)}
.graph-bottom{bottom:calc(var(--history-height) + 25px)}
.camera-tools{bottom:calc(var(--history-height) + 24px)}
.history-timeline{position:absolute;left:0;right:0;bottom:0;z-index:7;background:#0b1925;border-top:1px solid #3e443d;padding:0 22px;color:#d4c3a8}
.history-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px}
.history-header h2{font-size:.875rem;font-weight:500;margin:0;color:#d8c09b;letter-spacing:.02em}
.history-header button{padding:10px 0 10px 12px;min-height:42px;background:transparent;font-size:.8125rem;color:#9caebc;white-space:nowrap}
.history-track{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#615440 #0b1925;padding:0 0 5px}
.history-track[hidden]{display:none}
.history-track ol{position:relative;display:flex;list-style:none;margin:0;padding:8px 0 10px;min-width:100%;width:max-content;isolation:isolate}
.history-track ol:before{content:'';position:absolute;left:56px;right:56px;top:40px;height:1px;background:#5c5547;z-index:-1}
.history-track li{flex:1 0 112px;width:112px}
.history-event{display:grid;grid-template-rows:22px 12px auto;justify-items:center;gap:4px;width:100%;min-height:76px;padding:0 7px;background:transparent;border-radius:6px;color:#a4b6c4;text-align:center}
.history-year{font-size:.9375rem;line-height:22px;font-variant-numeric:tabular-nums;color:#c8baa5}
.history-marker{width:8px;height:8px;align-self:center;border:1px solid #c0a478;background:#0b1925;border-radius:50%}
.history-event-name{font-size:.75rem;line-height:1.4;max-width:110px}
.history-event.featured .history-year,.history-event.featured .history-event-name{color:#f1c586;font-weight:600}
.history-event.featured .history-marker{background:#e9ba7a;box-shadow:0 0 0 4px #e9ba7a12}
.history-event:hover,.history-event.current{background:#d7b4780c;color:#fff}
.history-event.current .history-marker{background:#f3d39d}
.history-event:focus-visible{outline-offset:-2px}
#history-dialog{width:min(620px,calc(100vw - 32px))}
#history-period{color:#e9ba7a;font-size:.8125rem;letter-spacing:.04em;line-height:1.6;padding-right:8px}
#history-title{line-height:1.25;margin-bottom:14px}
#history-close{flex:none;min-width:44px;min-height:44px}
#history-body>p{font-size:1rem;line-height:1.7;color:#c4d1da}
#history-body .history-category{color:#d6bb95;font-size:.8125rem;margin-top:0}
#history-body .history-context{border-left:2px solid #a18358;padding-left:14px;color:#adbfc9;font-size:.9375rem}
.history-sources,.history-people{border-top:1px solid #344652;padding-top:16px;margin-top:20px}
.history-sources h3,.history-people h3{font-size:.875rem;color:#a9b9c6;font-weight:500;margin:0 0 8px}
.history-sources a{display:block;font-size:.875rem;line-height:1.6;padding:7px 0;text-underline-offset:3px}
.history-people button{display:block;min-height:44px;background:transparent;text-align:left;color:var(--mint);font-size:.875rem;padding:8px 0}
@media(max-width:1050px){.selection-chip{bottom:calc(var(--history-height) + 104px)}}
@media(max-width:760px){
 .history-timeline{padding:0 16px}.history-header{min-height:40px}
 .graph-bottom{bottom:calc(var(--history-height) + 24px)}
 .camera-tools{bottom:calc(var(--history-height) + 20px)}
 .selection-chip{bottom:calc(var(--history-height) + 88px)}
 .panel-open .history-timeline{display:none}
 .panel-open #scene,.panel-open #labels{bottom:0}
 .panel-open .camera-tools{bottom:auto}
}

/* Historical atmosphere: independent of genealogical coordinates. */
.graph{--era-color:#94c7b1;--era-rgb:148,199,177;isolation:isolate}
#historical-backdrop{position:absolute;inset:0 0 var(--history-height);z-index:0;overflow:hidden;pointer-events:none;background:linear-gradient(0deg,rgba(var(--era-rgb),.045),transparent 75%)}
#historical-backdrop[hidden]{display:none}
#history-atmosphere{position:absolute;inset:0;width:100%;height:100%;opacity:.95;mask-image:linear-gradient(to bottom,transparent 10%,#000 45%)}
#scene{z-index:1}#labels{z-index:2}#generation-labels{position:relative;z-index:3;pointer-events:none}
.era-watermark{position:absolute;right:5%;bottom:100px;max-width:72%;display:flex;align-items:flex-end;flex-direction:column;gap:7px;text-align:right;color:var(--era-color)}
.era-watermark strong{font:500 clamp(42px,7.5vw,116px)/1 Manrope,var(--font);letter-spacing:-.055em;opacity:.17;font-variant-numeric:tabular-nums;white-space:nowrap}
#era-category{font-size:12px;letter-spacing:.15em;text-transform:uppercase;opacity:.6}
#era-title{font-size:18px;line-height:1.3;opacity:.55}
#era-scope{font-size:12px;line-height:1.5;color:#a2b5bf;opacity:.6;max-width:360px}
.graph[data-backdrop='off'] #history-atmosphere{display:none}
.era-controls{display:flex;gap:8px;align-items:center;padding:1px 0 8px;flex-wrap:wrap}
.era-controls button,.era-controls select{font:400 14px/1.35 var(--font);min-height:40px;border:1px solid #354954;border-radius:6px;background:#132430;color:#c8d3da;padding:8px 10px;min-width:0}
.era-controls select{flex:1 1 230px;max-width:420px;cursor:pointer;color:var(--era-color);background:#14262e}
.era-controls select:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.era-controls option{background:#132430;color:#f1f5f6}
#backdrop-toggle[aria-pressed='true']{border-color:var(--era-color);color:var(--era-color);background:rgba(var(--era-rgb),.07)}
#era-read{border-color:transparent;background:transparent;color:var(--era-color)}
#backdrop-motion{font-size:12px;min-height:40px;color:#a7bac6}
.era-note{margin:0 0 5px;color:#92a5b1;font-size:12px;line-height:1.45}
.history-event[data-backdrop='conflict']{--event-color:#df8a79}
.history-event[data-backdrop='epidemic']{--event-color:#94c7b1}
.history-event[data-backdrop='scarcity']{--event-color:#dcb57b}
.history-event[data-backdrop]:not([data-backdrop='']) .history-marker{border-color:var(--event-color);border-radius:2px;rotate:45deg}
.history-event.backdrop-current{box-shadow:inset 0 -2px var(--event-color);background:#ffffff06}
.history-event.backdrop-current .history-marker{background:var(--event-color);box-shadow:0 0 0 4px #ffffff06}
.history-event.backdrop-current .history-year{color:var(--event-color)}
.history-timeline{border-top-color:#4a5557;background:linear-gradient(150deg,rgba(var(--era-rgb),.035),transparent 55%),#0b1925}
@media(max-width:1050px){.era-controls select{flex-basis:190px}.era-controls{gap:5px}#backdrop-motion{margin-left:auto}.era-watermark{bottom:105px}}
@media(max-width:760px){
 .era-controls{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px}
 .era-controls select{width:100%;max-width:none;font-size:14px}
 #era-read{text-align:left;padding-left:0}#backdrop-motion{justify-self:end;margin:0}
 .era-note{font-size:12px;padding-bottom:3px}
 .era-watermark{right:24px;bottom:95px;max-width:85%}
 .era-watermark strong{font-size:clamp(42px,13vw,80px)}#era-title{font-size:16px}
 .panel-open #historical-backdrop{bottom:0}.panel-open .era-watermark{display:none}
}
@media(max-height:700px){.era-note{display:none}#backdrop-motion{display:none}.era-controls{display:flex;flex-wrap:nowrap}.era-controls select{flex:1;max-width:none}.era-controls button,.era-controls select{font-size:12px}#era-read{display:none}.era-watermark{bottom:82px}#era-scope{display:none}}

/* Person-first reading surface, with a compact tree workspace. */
[hidden]{display:none!important}
.detail-panel{width:420px;padding:22px 26px 40px;background:linear-gradient(145deg,#142a36,#0d1c29 70%)}
.panel-top{margin-bottom:22px}.panel-top .eyebrow{font-size:12px}
.person-intro{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.person-intro .avatar{flex:none;width:54px;height:62px;border-radius:15px;margin:0;font-size:22px}
.person-intro .person-heading{font-size:27px;line-height:1.25;overflow-wrap:anywhere;margin:4px 0 8px}
.person-intro .person-role{font-size:14px;margin:0;color:#9fc4cc}
.person-intro .person-years{font-size:14px;margin:0;color:#c4d4de}
.person-tabs{display:flex;gap:4px;border-bottom:1px solid #34505e;margin-bottom:24px;position:sticky;top:-22px;z-index:2;background:#112430;padding-top:8px}
.person-tabs button{flex:1;white-space:nowrap;min-height:48px;padding:10px 5px;font-size:14px;color:#9fb5c5;background:transparent;border-bottom:2px solid transparent}
.person-tabs button[aria-selected=true]{color:#a3f0de;border-color:var(--mint)}
.person-tabs span{font-size:12px;margin-left:3px;color:#9bbfb8}
[role=tabpanel]{animation:panel-in .2s ease-out}
@keyframes panel-in{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.detail-note{border:0;padding:0;font-size:16px;line-height:1.75;color:#c6d5de;margin-bottom:20px}
.bio-more summary{font-size:14px;color:var(--mint);cursor:pointer;padding:9px 0}
.bio-more p{margin-top:10px!important}
.person-actions{display:flex;gap:8px;margin:22px 0}.person-actions button{width:auto;flex:1;margin:0;min-height:44px;font-size:14px}
.history-teaser{display:grid;gap:8px;text-align:left;width:100%;padding:18px 20px;border:1px solid #42675f;border-radius:12px;background:linear-gradient(120deg,#204b46,#15303a);color:#c4e7df}
.history-teaser .eyebrow{margin:0;color:#a0d4c5;font-size:12px}.history-teaser strong{font:500 21px Manrope,var(--font);color:#effff9}.history-teaser>span:last-child{font-size:14px;line-height:1.5}.history-teaser b{float:right}
.detail-section h3{font-size:12px;letter-spacing:1.2px}.detail-section .relation-name{font-size:15px}.relation-button small{font-size:12px}.relation-button{min-height:62px}
.source-text,.source-link{font-size:14px}.source-link span{font-size:13px}.family-memory p{font-size:15px}.siblings-section{border-left:0;padding-left:0}.sibling-card{padding:10px 12px}.sibling-card strong{font-size:15px}.sibling-tree-link{font-size:14px}
.source-intro{font-size:15px;line-height:1.65;color:#aec6d2}.source-record{border:1px solid #304d5c;border-radius:10px;padding:14px 16px;margin:12px 0}.source-record summary{font-size:15px;line-height:1.5;cursor:pointer;color:#d4e3ec}.source-record p{font-size:15px;line-height:1.7;color:#aebfcb}.source-record a{font-size:14px;display:inline-block;padding:6px 0}
.context-heading h3,.history-empty h3{font:500 25px Manrope,var(--font);margin:6px 0 10px}.context-heading p,.history-empty p{font-size:15px;line-height:1.65;color:#a9bfcd}.context-heading .eyebrow,.history-empty .eyebrow{font-size:12px;color:#a7cbbc}
.person-timeline{list-style:none;margin:26px 0 0;padding:0}.context-event{--context-color:#9fbdea;position:relative;border-left:1px solid #375362;padding:0 0 26px 20px;margin-left:4px}.context-event:last-child{border:0}.context-event:before{content:'';position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--context-color);box-shadow:0 0 0 5px #122633}.context-event.conflict{--context-color:#efa595}.context-event.epidemic{--context-color:#9de0c3}.context-event.scarcity{--context-color:#ebc590}
.context-year{font:500 20px Manrope,var(--font);letter-spacing:-.3px;color:var(--context-color);margin-bottom:10px}.context-event button{display:block;text-align:left;width:100%;padding:16px;border:1px solid #304a59;border-radius:12px;background:#152b3880}.context-event button:hover{background:#1b3744;border-color:#618585}.context-kind{display:block;font-size:12px;line-height:1.5;color:#a6bdcc;margin-bottom:8px}.context-event strong{display:block;font-size:18px;line-height:1.45;font-weight:500}.context-age{display:block;font-size:13px;line-height:1.5;color:var(--context-color);margin-top:8px}.context-event p{font-size:15px;line-height:1.7;color:#bdcdd8;margin:12px 0}.context-read{color:#94dece;font-size:13px;line-height:1.5}.context-family-title{font-size:15px;margin-top:26px}.history-empty{padding:20px;border:1px solid #324d5c;border-radius:12px;background:#142c37}.history-empty-inline{font-size:14px;line-height:1.6;color:#9ab2c3;margin:10px 0 18px}
.graph-heading{top:24px;left:30px;right:24px}.graph-heading .eyebrow{font-size:12px;margin-bottom:9px}.graph-heading h1{font-size:24px;margin-bottom:5px}.graph-heading #graph-subtitle{font-size:14px;color:#a5bcc9;margin:8px 0}.graph-heading #research-open{position:absolute;right:0;top:0;font-size:13px;max-width:160px;text-align:right}
.graph-top{top:127px;left:30px}.segmented button,.toggle{font-size:14px}.selection-chip{display:none!important}.generation-label{font-size:12px;writing-mode:horizontal-tb;background:#0b1c26c9;padding:4px 6px;border-radius:4px;max-width:130px;line-height:1.4;letter-spacing:.4px}
.history-timeline{padding:0 24px}.history-header{min-height:48px}.history-header h2{font-size:14px;color:#c8dbdf;flex:1}.history-header button{font-size:13px}.history-event-name{font-size:13px}.history-track li{flex-basis:124px;width:124px}.history-track ol:before{display:none}.history-event{min-height:88px}.era-controls{padding-bottom:8px}.era-controls:has(select:disabled){display:none}.era-note{font-size:12px;margin-bottom:8px}.era-watermark{opacity:.65;bottom:98px}.era-watermark strong{font-size:clamp(42px,6vw,86px)}
.person-node .node-name,.person-node.compact .node-name,.person-node.minor .node-name{font-size:14px;line-height:1.35}.person-node .node-dates{font-size:12px}.person-node.compact,.person-node.minor,.person-node.minor.compact{width:145px;min-height:52px}.person-node .node-tag{font-size:12px;bottom:-21px}.legend{font-size:12px}.graph-bottom p{font-size:12px}.brand small{font-size:12px;letter-spacing:1.5px}
@media(max-width:1200px) and (min-width:761px){.detail-panel{width:360px;padding:20px}.person-intro .person-heading{font-size:24px}.graph-heading #research-open{position:static;max-width:none;font-size:12px}.graph-top{top:154px}.graph-heading .eyebrow{font-size:12px}.graph-heading h1{font-size:22px}.person-tabs{top:-20px}.person-tabs button{font-size:13px}.graph-bottom .legend{display:none}}
@media(max-width:760px){.detail-panel{width:100%;padding:16px 20px 30px;max-height:64dvh}.person-intro{gap:12px;margin-bottom:16px}.person-intro .avatar{float:none;width:48px;height:54px;font-size:20px}.person-intro .person-heading{font-size:24px}.person-intro .person-years,.person-intro .person-role{font-size:14px}.panel-top{margin-bottom:10px!important}.person-tabs{top:-16px;margin-bottom:18px}.person-tabs button{min-height:48px;font-size:14px}.graph-heading{left:20px;top:20px}.graph-heading h1{font-size:21px}.graph-heading .eyebrow{font-size:12px;max-width:220px}.graph-heading #research-open{position:static;font-size:13px;max-width:none}.graph-top{left:20px;top:164px;gap:9px}.segmented button,.toggle{font-size:13px}.history-timeline{padding:0 16px}.history-header{gap:8px;flex-wrap:wrap}.history-header h2{font-size:14px}.history-header button{font-size:12px}.era-controls{display:flex;flex-wrap:wrap}.era-controls select{flex:1;min-width:130px}#backdrop-motion{display:none}.history-event{min-height:80px}.brand small{font-size:10px}.generation-label{display:none}.panel-open .graph-top{top:12px}.panel-open .detail-panel{padding-bottom:max(30px,env(safe-area-inset-bottom))}.context-event{padding-left:16px}.context-event button{padding:14px}.topbar{gap:8px;padding:0 12px}.view-switch button{font-size:12px;padding:9px 8px}.brand>span{font-size:18px}.brand>svg{width:24px}}
@media(max-width:370px){.brand small{display:none}.person-tabs button{font-size:13px}.person-intro .person-heading{font-size:22px}.graph-top{left:12px;gap:5px}.toggle{font-size:12px}}
@media(prefers-reduced-motion:reduce){[role=tabpanel]{animation:none}}

/* A navigable family atlas: less chrome, stable rows and a continuous grid. */
.topbar{height:72px;padding:0 24px}.workspace{height:calc(100dvh - 72px);min-height:0}.graph{background:#0a1722;--history-height:49px}
#workspace-grid{position:absolute;inset:0 0 var(--history-height);pointer-events:none;z-index:0;--grid-step:48px;--grid-major:192px;--grid-x:0px;--grid-y:0px;background-image:radial-gradient(circle,#7597a93b 1px,transparent 1.5px),linear-gradient(#789aab0c 1px,transparent 1px),linear-gradient(90deg,#789aab0c 1px,transparent 1px);background-size:var(--grid-step) var(--grid-step),var(--grid-major) var(--grid-major),var(--grid-major) var(--grid-major);background-position:var(--grid-x) var(--grid-y);mask-image:linear-gradient(transparent,#000 130px,#000 85%,transparent)}
.graph-heading{left:24px;right:24px;top:20px;display:flex;align-items:center;gap:16px}.graph-heading .eyebrow,.graph-heading #graph-subtitle{display:none}.graph-heading h1{font-size:20px;line-height:1.4;letter-spacing:-.3px;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:70%}.graph-heading #research-open{position:static;margin-left:auto;max-width:none;font-size:14px;white-space:nowrap;pointer-events:auto;text-align:right}.graph-top{left:24px;right:24px;top:64px;gap:14px;height:48px}.scope-control select{font:500 14px var(--font);color:#d7e7ef;background:#152b38;border:1px solid #486572;border-radius:8px;min-height:44px;max-width:160px;padding:8px 30px 8px 12px;cursor:pointer}.scope-control select:focus-visible{outline:2px solid var(--mint);outline-offset:3px}#view-options{display:flex;align-items:center;gap:14px}#view-options-toggle{display:none}#visible-count{margin-left:auto;font-size:12px;color:#88a2b3;white-space:nowrap}.toggle{white-space:nowrap}.segmented button{min-height:38px}
.person-node,.person-node.minor,.person-node.compact,.person-node.minor.compact{width:190px;min-height:76px;padding:12px 14px;border-radius:10px;box-shadow:0 5px 16px #0002;background:#142938;border-color:#3d6478}.person-node .node-name,.person-node.minor .node-name,.person-node.compact .node-name{font-size:14px;line-height:1.4}.person-node.compact .node-dates{display:block}.person-node .node-dates{font-size:12px;line-height:1.4;margin-top:5px}.person-node .node-sibling-count{display:none}.person-node.dimmed{opacity:.34}.person-node.selected{background:#1e4745;border-color:#86e3d2;box-shadow:0 0 0 3px #7be3d014,0 5px 20px #0004}.person-node[data-branch=antonsen]{border-color:#8c7964}.person-node[data-branch=brendhagen]{border-color:#647f9f}.person-node.selected{border-color:#86e3d2}.person-node.minor{min-height:70px}.person-node.compact{min-height:62px}.person-node.compact .node-name{font-size:14px}
.generation-label{left:10px;font-size:12px;opacity:.7;max-width:115px}.graph-bottom{left:24px;bottom:calc(var(--history-height) + 20px)}.graph-bottom p{display:none}.camera-tools{right:24px;bottom:calc(var(--history-height) + 16px);background:#122634e8;backdrop-filter:blur(8px)}.camera-tools button{width:44px;height:44px}.history-timeline.collapsed .era-controls,.history-timeline.collapsed .era-note,.history-timeline.collapsed .history-track{display:none}.history-timeline.collapsed .history-header{min-height:48px}.history-timeline .history-header h2{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.era-watermark{opacity:.35}.detail-panel{width:390px}.person-intro{align-items:flex-start}.panel-top button{width:44px;height:44px}.panel-top{margin-bottom:14px}.person-tabs{scrollbar-width:none}.person-photos{margin:22px 0}.person-photos h3{font-size:16px;font-weight:500}.person-photos figure{margin:0 0 20px;border:1px solid #375260;border-radius:12px;overflow:hidden;background:#0c1c28}.photo-open{display:block;position:relative;width:100%;padding:0;background:#07111a}.photo-open img{display:block;width:100%;height:auto;max-height:280px;object-fit:contain}.photo-open>span{position:absolute;right:10px;bottom:10px;background:#0a1929e8;color:#e7f4fa;border:1px solid #567280;border-radius:6px;padding:7px 9px;font-size:12px}.person-photos figcaption{padding:14px}.person-photos figcaption strong{font-size:15px;line-height:1.4}.person-photos figcaption p{font-size:14px;color:#b5cad7;line-height:1.6;margin:8px 0}.person-photos figcaption a{font-size:13px;line-height:1.5}.person-photos figcaption small{display:block;font-size:12px;line-height:1.5;color:#8ca6b8;margin-top:6px}.person-photos .photo-identity{border-left:2px solid #aa966b;padding-left:10px;color:#d5c7a7}#photo-dialog{width:min(980px,calc(100vw - 24px));max-height:92dvh}#photo-dialog .dialog-header h2{font-size:22px;line-height:1.4}#photo-close{width:44px;min-height:44px;flex:none}#photo-body>img{width:100%;height:auto;display:block}#photo-body>p{font-size:16px;line-height:1.6}
@media(min-width:761px) and (max-width:1200px){.detail-panel{width:350px}.graph-heading #research-open{font-size:0}.graph-heading #research-open:after{content:'Kildestatus ↗';font-size:14px}.graph-top{gap:8px}#visible-count{display:none}#view-options{gap:8px}.toggle{font-size:12px}.segmented button{padding:7px 8px;font-size:13px}}
@media(max-width:760px){
 .topbar{height:62px;padding:0 16px;gap:10px}.brand>span{font-size:20px}.brand>svg{width:27px}.brand small,.view-switch{display:none}.topbar #directory-open{margin-left:auto;display:flex;width:auto;height:42px;font-size:14px;padding:9px 12px;gap:6px}.topbar #directory-open:before{font-size:22px}.topbar #directory-open span{display:none}.workspace{height:calc(100dvh - 62px)}.graph{--history-height:0px!important}.graph-heading,.panel-open .graph-heading,.graph-bottom,.history-timeline,#generation-labels,.era-watermark{display:none}#scene,#labels,#historical-backdrop,#workspace-grid,.panel-open #scene,.panel-open #labels{bottom:0}#workspace-grid{mask-image:linear-gradient(transparent,#000 90px,#000)}.graph-top,.panel-open .graph-top{top:12px;left:14px;right:14px;height:44px;gap:8px}.scope-control select{font-size:14px;max-width:155px;background:#122937f5}#view-options-toggle{display:block;min-height:44px;background:#162c3be8;border:1px solid #395767;border-radius:8px;font-size:14px;padding:8px 12px}#visible-count{font-size:12px}#view-options{display:none;position:absolute;left:0;top:52px;padding:14px;background:#142936;border:1px solid #426070;box-shadow:0 12px 30px #0006;border-radius:12px;align-items:flex-start;flex-direction:column;gap:16px;z-index:12}#view-options.open{display:flex}#view-options .toggle{font-size:14px;min-height:40px}#view-options input{width:20px;height:20px}.segmented button{font-size:14px;min-height:42px}.camera-tools,.panel-open .camera-tools{top:auto;right:14px;bottom:max(16px,env(safe-area-inset-bottom));flex-direction:row;padding:4px}.camera-tools button,.panel-open .camera-tools button{width:44px;height:44px}.panel-open .camera-tools{display:none}.person-node,.person-node.minor,.person-node.compact,.person-node.minor.compact{width:162px;min-height:66px;padding:10px 12px}.person-node .node-name{font-size:14px}.person-node .node-dates{font-size:12px}.detail-panel{width:100%;max-height:65dvh;padding:10px 18px 24px;border-radius:18px 18px 0 0;overscroll-behavior:contain;box-shadow:0 -12px 40px #0005}.detail-panel:before{content:'';display:block;width:38px;height:4px;border-radius:4px;background:#66818e;margin:0 auto 4px}.panel-top{margin-bottom:8px!important}.person-intro .person-heading{font-size:23px}.person-tabs{top:-10px}.photo-open img{max-height:240px}.panel-open #visible-count{display:none}.panel-open .graph-top{right:14px}dialog{overscroll-behavior:contain}.detail-section .relation-name{font-size:15px}.person-actions{flex-wrap:wrap}.person-actions button{flex-basis:130px}
}
@media(max-width:370px){#visible-count{display:none}.person-intro .avatar{display:none}.person-tabs button{font-size:13px}}
@media(max-height:520px) and (max-width:760px){.panel-open .detail-panel{max-height:calc(100dvh - 62px)}.panel-open .graph-top{display:none}}
.perspective-button{margin-left:auto;min-height:44px;padding:10px 14px;border:1px solid #416477;border-radius:9px;background:#152e3d;font-size:14px;color:#c5e6ed;white-space:nowrap}.view-switch{margin-left:0}.person-actions{flex-wrap:wrap}.person-actions #use-perspective{flex-basis:100%;font-weight:400;color:#acccda}.node-photo-mark{display:block;color:#b4d9de;font-size:12px;margin-top:4px}.photo-window,.photo-open>.photo-window{display:block;position:relative;width:100%;overflow:hidden;right:auto;bottom:auto;padding:0;border:0;border-radius:0;background:#0c1722;color:inherit}.photo-window img,.photo-open .photo-window img{position:absolute;height:auto;max-width:none;max-height:none;object-fit:initial}.original-photo{display:inline-block;margin:16px 0 4px;font-size:14px}#photo-body>.photo-window{max-width:620px;margin:auto}#photo-body>img{max-width:100%;width:auto;margin:auto;max-height:65dvh;object-fit:contain}.person-photos figure:has(.photo-identity) .photo-open img{width:auto;max-width:100%;margin:auto}.person-node.compact .node-photo-mark{display:none}
@media(max-width:1050px){.perspective-button{font-size:13px;padding:9px 10px}.topbar{gap:12px}.brand>span{font-size:21px}}
@media(max-width:760px){.topbar{gap:8px}.perspective-button{margin-left:auto;max-width:135px;overflow:hidden;text-overflow:ellipsis;font-size:13px}.topbar #directory-open{margin-left:0;font-size:0;width:42px;padding:8px}.topbar #directory-open:before{font-size:25px}.brand>span{font-size:18px}.brand{gap:8px}.person-actions #use-perspective{min-height:44px}#photo-dialog{padding:18px}.photo-open>.photo-window{max-width:330px;margin:auto}.person-node .node-photo-mark{font-size:12px}}
@media(max-width:370px){.brand>svg{display:none}.topbar{padding:0 12px}.perspective-button{max-width:135px}}
@media(min-width:761px) and (max-width:1150px){#view-options-toggle{display:block;min-height:44px;background:#162c3b;border:1px solid #395767;border-radius:8px;font-size:14px;padding:8px 12px}#view-options{display:none;position:absolute;left:0;top:52px;padding:14px;background:#142936;border:1px solid #426070;box-shadow:0 12px 30px #0006;border-radius:12px;flex-direction:column;align-items:flex-start;gap:16px;z-index:12}#view-options.open{display:flex}#visible-count{display:block}.graph-heading h1{max-width:60%}}

/* Native image viewport: no off-screen lazy image or percentage offsets. */
svg.photo-window,.photo-open>svg.photo-window{display:block;width:100%;height:auto;stroke:none;fill:none;overflow:hidden}

/* Keep the selected ancestral route legible independently of surname/branch. */
.person-node.on-path{border-color:#86e3d2;background:#1b373c;opacity:1;box-shadow:0 0 0 2px #86e3d21a,0 5px 18px #0003}.person-node.on-path.selected{background:#1e4745;border-color:#b4ffef}
.ancestry-route{margin:18px 0 22px;padding:16px;border:1px solid #426b70;border-radius:12px;background:#102c32}.ancestry-route h3{font-size:16px;line-height:1.4;margin:0 0 14px;color:#bcf1e5}.route-links{display:grid;gap:12px;margin-bottom:16px}.route-link{display:grid;gap:4px;padding-left:12px;border-left:2px solid #86e3d2}.route-link.uncertain{border-left-style:dashed;border-color:#c5a776}.route-link button{display:block;text-align:left;background:transparent;color:#e7f4f3;font-size:14px;line-height:1.4;padding:7px 4px;min-height:36px}.route-link button:hover,.route-link button:focus-visible{background:#244b51;border-radius:5px}.route-link>span{color:#91c7bd;font-size:12px;padding-left:4px}.ancestry-route .quiet-button{font-size:14px;min-height:44px;border-color:#527b80;color:#c8eee6}

/* Branch map: stable, flat families around the selected perspective. */
.layout-picker{display:none}
.branch-nav{position:absolute;left:24px;right:24px;top:126px;z-index:5;display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:2px 0 6px;pointer-events:auto}
.branch-nav[hidden]{display:none}
.branch-nav button{flex:none;min-height:42px;padding:9px 13px;font-size:14px;white-space:nowrap;border:1px solid #385566;border-radius:24px;background:#112735ed;color:#d5e5ed}
.branch-nav button:hover,.branch-nav button:focus-visible{background:#254451;border-color:#8fdaca}
.branch-nav .branch-chip:before{content:'';display:inline-block;width:16px;height:3px;border-radius:2px;margin-right:8px;vertical-align:middle;background:var(--branch-color)}
.branch-chip.antonsen{--branch-color:#d5ab7d}.branch-chip.brendhagen{--branch-color:#91b6f0}.branch-chip.strandli{--branch-color:#7be3d0}
.branch-view #workspace-grid{background-image:radial-gradient(circle,#7597a933 1px,transparent 1.5px);background-size:var(--grid-step) var(--grid-step)}
@media(max-width:760px){
 .layout-picker{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px;font-size:14px;color:#b8cdd8}
 .layout-picker select{font:inherit;color:#e0edf2;min-height:44px;min-width:155px;padding:8px 12px;border-radius:8px;background:#0d2230;border:1px solid #496575}
 .branch-nav{left:14px;right:14px;top:65px;gap:6px}.branch-nav button{min-height:44px;font-size:14px;padding:8px 12px}
 .panel-open .branch-nav{display:none}
}
/* Separate trees share the camera, while each keeps a clear boundary. */
#branch-panels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
#branch-panels[hidden],.branch-help[hidden]{display:none}
.branch-panel{position:absolute;border:1px solid color-mix(in srgb,var(--branch-color,#86dccc) 35%,transparent);border-radius:18px;background:color-mix(in srgb,var(--branch-color,#86dccc) 3%,transparent);pointer-events:none}
.branch-panel-title{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;gap:5px;text-align:left;padding:10px 12px;border-radius:10px;background:#10212ff2;color:var(--branch-color,#86dccc);pointer-events:auto;font-size:15px;box-shadow:0 2px 12px #07111b80}
.branch-panel-title span{font-size:11px;font-weight:400;color:#adbfcc}.branch-panel-title strong{overflow-wrap:anywhere}
.branch-nav button[aria-pressed="true"]{background:#254451;border-color:#8fdaca;color:#e5fffa}
.branch-help{position:absolute;top:172px;left:26px;right:24px;margin:0;z-index:4;color:#a5bdc9;font-size:12px;pointer-events:none}
@media(max-width:760px){.branch-help{top:118px;left:16px;right:16px;font-size:11px;max-width:340px}.panel-open .branch-help{display:none}.branch-panel-title{font-size:12px;padding:7px;left:5px;top:5px}.branch-panel-title span{font-size:10px}}
#branch-overview{position:absolute;inset:216px 24px 76px;z-index:6;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;overflow:auto;align-content:start;padding:4px}
#branch-overview[hidden]{display:none}
.branch-preview{display:flex;flex-direction:column;min-width:0;text-align:left;border:1px solid color-mix(in srgb,var(--branch-color,#86dccc) 40%,#233a49);border-radius:18px;background:#10212ff5;padding:20px;color:var(--branch-color,#86dccc)}
.branch-preview:hover{background:#182f3d}.branch-preview-head{display:flex;flex-direction:column;gap:7px}.branch-preview-head strong{font:600 20px Manrope,var(--font);color:#e4eff5}.branch-preview-head>span{font-size:12px;color:#a5bdc9}
.branch-preview svg{width:100%;height:150px;margin:22px 0;opacity:.8}.branch-preview-footer{display:flex;justify-content:space-between;font-size:13px;border-top:1px solid #34505c;padding-top:14px}
.branch-overview #scene,.branch-overview #labels,.branch-overview .camera-tools,.branch-overview .selection-chip,.branch-overview .graph-bottom{visibility:hidden}
.branch-overview .branch-help{pointer-events:none}
@media(max-width:760px){#branch-overview{inset:158px 12px 28px;grid-template-columns:1fr;gap:12px}.branch-preview{padding:16px}.branch-preview svg{height:110px;margin:14px 0}.branch-preview-head strong{font-size:18px}.branch-overview .history-timeline{display:none}}
.profile-photo{display:block;position:relative;width:100%;height:100%;overflow:hidden;border-radius:inherit;background:#243b45;isolation:isolate}
.portrait-fallback{position:absolute;inset:0;display:grid;place-items:center}
.profile-photo svg{position:relative;display:block;width:100%;height:100%;fill:initial;stroke:none;z-index:1;background:#142938}
.profile-photo.photo-failed svg{display:none}
.person-node.has-portrait,.person-node.has-portrait.compact,.person-node.has-portrait.minor{width:220px;min-height:88px;padding-left:76px}
.node-portrait{position:absolute;left:12px;top:12px;width:50px;height:62px;border-radius:9px;overflow:hidden;border:1px solid #ffffff24}
.person-node.has-portrait .node-photo-mark{display:none}
.avatar.has-portrait{display:block;width:76px;height:88px;border-radius:13px;overflow:hidden}
.portrait-credit{display:block;font-size:11px;line-height:1.5;color:#9db9c5;margin:12px 0 18px}
@media(max-width:760px){.person-node.has-portrait,.person-node.has-portrait.compact,.person-node.has-portrait.minor{width:192px;min-height:84px;padding-left:65px}.node-portrait{left:10px;top:10px;width:44px;height:56px}.avatar.has-portrait{display:block;width:62px;height:74px}.portrait-credit{font-size:10px}}
.person-tabs{overflow-x:auto}.person-tabs button{flex:none;white-space:nowrap;padding-left:12px;padding-right:12px}
.health-intro h3{font-size:19px;line-height:1.4;margin:12px 0}.health-intro p,.health-record p{font-size:14px;line-height:1.65;color:#b7cad5}.health-record{margin:18px 0;padding:16px;border:1px solid #355260;border-radius:12px;background:#112632}.health-record h3{margin:10px 0;font-size:17px}.health-basis{font-size:11px;color:#a5d7ca}.health-record small,.health-record a{display:block;font-size:12px;line-height:1.6;margin-top:10px}

.album-photo{margin:0 0 32px;border:1px solid #375260;border-radius:12px;overflow:hidden}.album-photo img{display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain;background:#07111a}.album-photo figcaption{padding:16px}.album-photo h3{margin:0 0 8px}.album-photo p{line-height:1.6}.album-photo a{display:inline-block;min-height:44px;padding-top:10px}#family-album-open{min-height:44px;text-align:left}

.photo-search-summary{margin-top:20px;padding-top:16px;border-top:1px solid #375260}.photo-search-summary p{font-size:14px;line-height:1.65;color:#b5cad7}.photo-search-summary a{display:block;padding:10px 0;font-size:14px;line-height:1.5}

#cone-branches{position:absolute;inset:0;pointer-events:none;overflow:hidden}.cone-branch-label{position:absolute;left:0;top:0;translate:-50% -50%;font-size:14px;font-weight:500;background:#0b1a25e8;border:1px solid #42607060;border-radius:20px;padding:7px 12px;white-space:nowrap}.space-view .graph-bottom p{display:block;color:#9bb8c9}.space-view #workspace-grid{opacity:.12!important}.space-view .person-node.compact{width:160px;min-height:54px}.space-view .person-node.compact .node-dates{display:none}

/* Generated illustrations are visually distinct from archival portraits. */
.ai-portrait{outline:1px dashed #c8ab7660;outline-offset:-1px}.ai-portrait svg{filter:saturate(.75) brightness(1.16)}.ai-badge{position:absolute;right:2px;bottom:2px;z-index:2;padding:2px 3px;border-radius:3px;font:600 8px/1 system-ui;letter-spacing:.03em;background:#152532ed;color:#f1dba9;border:1px solid #d6b97b80}.ai-portrait-note{margin:12px 0 18px;padding:11px 13px;border:1px dashed #bca46e70;border-radius:9px;background:#bca46e09;color:#dbcaa6;font-size:12px;line-height:1.6}.ai-portrait-note summary{cursor:pointer}.ai-portrait-note p{color:#b7c9d2;margin:9px 0 0}.hide-ai-portraits .ai-portrait svg,.hide-ai-portraits .ai-badge,.hide-ai-portraits .ai-portrait-note{display:none}.hide-ai-portraits .ai-portrait{outline:none}.profile-photo.photo-failed .ai-badge{display:none}
