:root{--person-card-paper:#fffdfa;--person-card-border:#c9c5bf;--person-card-ink:#20282f;--person-card-muted:#9f777b;--person-card-line:#ded9d2;--person-profile-male:#3f6f9b;--person-profile-female:#b6787d;--person-profile-neutral:#68747d;--relationship-gold:#b8842f;--relationship-red:#c64d4b}.tree-error{max-width:760px;margin:40px auto;padding:18px 20px;border:2px solid var(--red);border-radius:12px;background:#fff7f5;color:#842a24;font-weight:700}.tree-render-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(247,244,238,.72);backdrop-filter:blur(2px);opacity:0;pointer-events:auto;animation:.12s .2s forwards tree-render-overlay-reveal}.tree-render-overlay[hidden]{display:none}.tree-render-overlay.is-error{opacity:1;animation:none;background:rgba(247,244,238,.88)}.tree-render-overlay-card{width:min(390px,calc(100vw - 48px));min-height:154px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:26px 30px;border:1px solid rgba(82,97,109,.28);border-radius:18px;background:#fffdfa;color:#26333d;text-align:center;box-shadow:0 16px 46px rgba(38,51,61,.18)}.tree-render-spinner{width:38px;height:38px;border:4px solid rgba(82,97,109,.2);border-top-color:#52616d;border-radius:50%;animation:.78s linear infinite tree-render-spinner-turn;will-change:transform}.tree-render-overlay.is-error .tree-render-spinner{display:none}.tree-render-overlay-detail{color:#66737d;font-size:.92rem;line-height:1.4}.tree-render-overlay.is-error .tree-render-overlay-detail{color:#8a3434}.tree-render-overlay-close{margin-top:4px}@keyframes tree-render-overlay-reveal{to{opacity:1}}@keyframes tree-render-spinner-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tree-render-overlay{animation-delay:.2s;animation-duration:0s}.tree-render-spinner{animation-duration:1.5s}}.family-tree-root{justify-content:flex-start}.family-unit.couple{flex:0 0 auto}.family-unit.single{flex:0 0 172px}@media (max-width:900px){.family-tree-root{align-items:flex-start;padding-left:24px;padding-right:48px}.unassigned-section{padding-left:24px;padding-right:24px}.unassigned-title{text-align:center}.unassigned-row{justify-content:center}}.family-tree-root .family-unit.single{width:var(--person-card-width,172px)!important;min-width:var(--person-card-width,172px)!important;max-width:var(--person-card-width,172px)!important}.family-tree-root .relationship-group.multi .person-card-profile,.family-tree-root .relationship-group.multi[data-relationship-count="2"][data-person-count="3"] .person-card-profile{top:-31px;width:62px;height:62px}.family-tree-root{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0;margin:0;padding:18px 0 80px}.graph-canvas{position:relative;width:100%;min-width:100%;min-height:320px;overflow:visible}.graph-nodes{position:absolute;inset:0}.graph-node{position:absolute;z-index:2;transform:translate(-50%,0)}.graph-node .family-unit{position:relative}.graph-connectors{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}.graph-connectors path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.graph-connectors .edge-halo{stroke:var(--bg);opacity:.98}.graph-connectors .edge-line,.graph-connectors .edge-line.neutral{stroke:var(--edge-color,var(--line))}.graph-connectors .sibling-edge-halo{stroke:var(--bg);stroke-width:7;opacity:.98}.graph-connectors .sibling-edge-line{stroke:var(--edge-color,var(--line));stroke-width:2.5;stroke-dasharray:6 4}.family-unit.couple{display:grid;grid-template-columns:172px 20px 105px 20px 172px;align-items:center;width:489px}.family-unit.root-couple{grid-template-columns:172px 20px 105px 20px 172px;width:489px}.family-unit.root-couple .person{width:172px;min-height:220px}.marriage-column{position:relative;width:105px;min-height:50px;display:flex;align-items:center;justify-content:center}.spouse-link{width:100%}.unassigned-section{width:100%;min-width:0;margin:72px 0 0;padding:30px 48px 60px;border-top:2px solid #d7d0c4;align-self:stretch}.unassigned-section[hidden]{display:none!important}.unassigned-title{margin:0 0 28px;text-align:center;font-size:25px;line-height:1.25;color:var(--ink)}.unassigned-row{display:flex;justify-content:center;align-items:flex-start;flex-wrap:wrap;gap:22px}.unassigned-row .family-unit{flex:0 0 auto}.marriage-column::after{content:none!important;display:none!important}@media(max-width:900px){.family-tree-root{align-items:flex-start}.unassigned-section{padding-left:24px;padding-right:24px}.unassigned-title{text-align:center}.unassigned-row{justify-content:center}}body.tree-pan-enabled,body.tree-pan-enabled .family-tree-root,body.tree-pan-enabled .graph-canvas,body.tree-pan-enabled .person{cursor:grab}body.tree-pan-active .tree-viewport,body.tree-pan-active .tree-viewport *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}body.tree-pan-active{scroll-behavior:auto!important}.branch-legend{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;width:max-content;max-width:calc(100vw - 36px);margin:12px auto 0;padding:8px 13px;border:1px solid #ddd6ca;border-radius:12px;background:rgba(255,255,255,.78);color:var(--ink);font-size:13px}.branch-legend[hidden]{display:none!important}.branch-legend-items{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 13px}.branch-legend-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.branch-legend-line{display:inline-block;border-radius:999px;background:var(--branch-color);width:30px;height:5px;border:1px solid rgba(20,28,35,.28);box-shadow:0 0 0 2px var(--paper),0 1px 2px rgba(20,28,35,.18)}@media(max-width:700px){.branch-legend{justify-content:flex-start;margin-left:18px;margin-right:18px}.branch-legend-items{justify-content:flex-start}}.graph-connectors .edge-halo{stroke-width:6}.graph-connectors .edge-line{stroke-width:2.4}.detached-lineage-section{width:100%;min-width:0;box-sizing:border-box;margin:72px 0 0;padding:30px 48px 44px;border-top:2px solid #d7d0c4;align-self:stretch}.detached-lineage-section[hidden]{display:none!important}.detached-lineage-title,.special-person-section-title{margin:0 0 26px;text-align:center;color:var(--ink);font-size:22px;line-height:1.25}.unassigned-row{padding-top:18px}.detached-lineage-groups{display:flex;flex-direction:column;gap:30px}.detached-lineage-group{width:100%}.detached-lineage-name{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 0 15px;color:#4d565c;font-size:16px;line-height:1.2}.detached-lineage-name::before{content:"";display:inline-block;width:30px;height:4px;border-radius:999px;background:var(--detached-lineage-color,#7b8389)}.detached-lineage-row{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:22px}.detached-lineage-row .family-unit{flex:0 0 auto}@media(max-width:900px){.detached-lineage-section{padding-left:24px;padding-right:24px}.detached-lineage-title,.special-person-section-title{text-align:center;font-size:19px}.detached-lineage-name,.detached-lineage-row{justify-content:center}}.family-unit.relationship-group{position:relative;width:max-content;padding-bottom:var(--relationship-group-bottom-space,0)}.relationship-group-people{position:relative;z-index:2;display:flex;width:max-content;align-items:center;gap:112px}.relationship-person-slot{position:relative;flex:0 0 auto}.relationship-group.multi .person{width:148px;min-height:224px;padding:37px 10px 10px}.relationship-group.multi[data-relationship-count="2"][data-person-count="3"] .person{width:172px;min-height:246px;padding:40px 12px 12px}.relationship-network{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}.relationship-network .relationship-path{fill:none;stroke:var(--edge-color,var(--line));stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.relationship-marker{z-index:3;transform:translate(-50%,-50%)}.marriage.relationship-divorced .rings::after{content:"";position:absolute;border-radius:999px}.person,.person.confirmed,.person.probable,.person.unconfirmed{min-height:246px;padding:40px 12px 12px;border:1.5px solid var(--person-card-border)!important;border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(250,246,240,.94)),var(--person-card-paper);color:var(--person-card-ink);box-shadow:0 10px 24px rgba(74,66,57,.11),0 2px 5px rgba(74,66,57,.08),inset 0 1px 0 rgba(255,255,255,.92)}.person-card-profile{position:absolute;z-index:5;top:-31px;left:50%;display:grid;place-items:center;width:62px;height:62px;transform:translateX(-50%);border:4px solid rgba(255,255,255,.96);border-radius:50%;background:radial-gradient(circle at 50% 35%,#fff 0 36%,#fbf5f0 100%);box-shadow:0 5px 13px rgba(74,66,57,.15),0 0 0 1px rgba(190,184,176,.25);color:var(--person-profile-neutral)}.person-card-profile::before{content:none!important;display:none!important}.person-card-profile.male{color:var(--person-profile-male);background:radial-gradient(circle at 50% 35%,#fff 0 38%,#f1f6fa 100%)}.person-card-profile.female{color:var(--person-profile-female);background:radial-gradient(circle at 50% 35%,#fff 0 38%,#fbf1f2 100%)}.person-card-profile svg{display:block;width:38px;height:38px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.person-card-profile::after{content:"";position:absolute;left:50%;display:none;transform:translateX(-50%);background:var(--person-branch-color,var(--line))}.person.has-graph-connection .person-card-profile::after{top:-4.5px;display:block;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,253,250,.75)}.person-card-head{min-height:58px;align-items:flex-start}.person-card-head .name,.relationship-group.multi .name,.relationship-group.multi[data-relationship-count="2"][data-person-count="3"] .name{color:var(--person-card-ink);font-family:Georgia,"Times New Roman",serif;font-size:23px;font-weight:700;line-height:1.04;letter-spacing:-.018em}.person-card-head .name.long,.relationship-group.multi .name.long,.relationship-group.multi[data-relationship-count="2"][data-person-count="3"] .name.long{font-size:21px}.person-card-head .name.xlong,.relationship-group.multi .name.xlong,.relationship-group.multi[data-relationship-count="2"][data-person-count="3"] .name.xlong{font-size:19px}.person-card-head small{margin-top:6px;color:var(--person-card-muted);font-family:Georgia,"Times New Roman",serif;font-size:12.5px;font-weight:400;line-height:1.15}.person-card-head-separator{display:flex;align-items:center;gap:8px;margin:9px 0 2px;border:0;color:#cbc5bd;font-family:Georgia,"Times New Roman",serif;font-size:16px;line-height:1}.person-card-head-separator::after,.person-card-head-separator::before{content:"";flex:1 1 auto;height:1px;background:var(--person-card-line)}.person-card-head-separator>span{display:block;transform:rotate(-14deg)}.person-card-middle{min-height:74px;padding:7px 0 9px}.person-card-middle .meta{display:grid;gap:5px}.person-card-middle .person-life-event{display:grid;grid-template-columns:17px 1fr;align-items:center;width:100%;min-height:31px;padding:5px 10px 5px 8px;border:1px solid rgba(218,211,202,.56);border-radius:11px;background:rgba(248,244,238,.76);color:#36414a;font-family:Georgia,"Times New Roman",serif;font-size:12.5px;line-height:1.15}.person-life-symbol{color:var(--person-card-muted);font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1}.person-life-event.death .person-life-symbol{font-size:16px}.relationship-group.multi .person-card-profile{width:56px;height:56px;top:-28px}.relationship-group.multi[data-relationship-count="2"][data-person-count="3"] .person-card-profile{width:62px;height:62px;top:-31px}.marriage{position:relative;display:grid;place-items:center;width:52px;min-width:52px;height:52px;color:var(--relationship-gold);outline:0}.marriage .rings,.relationship-heart-symbol,.relationship-symbol-badge{position:relative;z-index:2;display:grid;place-items:center;width:48px;height:48px;margin:0;border:2px solid var(--tree-card-border);border-radius:50%;background:var(--tree-card-background);box-shadow:var(--tree-card-elevation,0 10px 24px rgba(45,52,58,.13),0 2px 5px rgba(45,52,58,.08));color:var(--relationship-gold);transition:border-color 140ms,box-shadow 140ms,transform 140ms}.relationship-symbol-badge svg{width:32px;height:32px;overflow:visible;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.relationship-heart-symbol{color:var(--relationship-heart)}.relationship-heart-symbol svg{width:27px;height:27px;fill:currentColor;stroke:currentColor;stroke-width:1.4}.marriage.relationship-divorced .rings{position:relative;color:var(--relationship-gold)}.marriage.relationship-divorced .rings::after{top:50%;left:50%;width:35px;height:3px;background:var(--relationship-red);transform:translate(-50%,-50%) rotate(-35deg);box-shadow:0 0 0 1px rgba(255,255,255,.82)}.marriage.relationship-divorced:focus-visible .rings,.marriage.relationship-divorced:hover .rings{border-color:var(--tree-card-border-hover);box-shadow:var(--tree-card-elevation-hover,0 13px 30px rgba(45,52,58,.19),0 3px 7px rgba(45,52,58,.11))}.marriage:focus-visible .relationship-symbol-badge,.marriage:hover .relationship-symbol-badge{transform:translateY(-1px);border-color:var(--tree-card-border-hover);box-shadow:var(--tree-card-elevation-hover,0 13px 30px rgba(45,52,58,.19),0 3px 7px rgba(45,52,58,.11))}.relationship-tooltip{position:absolute;z-index:8;top:calc(100% + 9px);left:50%;display:block;min-width:132px;max-width:220px;padding:8px 10px;transform:translate(-50%,-4px);border:1px solid #d5cec5;border-radius:9px;background:rgba(255,253,249,.98);color:#584932;box-shadow:0 8px 20px rgba(57,48,39,.16);font-family:var(--ui-font);font-size:11px;font-weight:650;line-height:1.35;text-align:center;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 120ms,transform 120ms,visibility 120ms}.marriage.relationship-tooltip-open .relationship-tooltip,.marriage:focus-visible .relationship-tooltip,.marriage:hover .relationship-tooltip{transform:translate(-50%,0);opacity:1;visibility:visible}.relationship-marker{position:absolute;min-width:52px;max-width:52px;padding:0;border-radius:50%;background:0 0;box-shadow:none}.relationship-marker .rings{margin:0}.diverse{color:var(--person-profile-neutral)}.family-tree-root .family-unit.couple,.family-tree-root .family-unit.root-couple{grid-template-columns:var(--person-card-width,172px) 20px calc(var(--relationship-card-gap,112px) - 40px) 20px var(--person-card-width,172px);width:calc(var(--person-card-width,172px) + var(--person-card-width,172px) + var(--relationship-card-gap,112px))}.family-tree-root .marriage-column{width:calc(var(--relationship-card-gap,112px) - 40px)}.family-tree-root .relationship-group-people{gap:var(--relationship-card-gap,112px)}.family-tree-root .family-unit.couple::before{content:"";position:absolute;z-index:0;top:50%;left:var(--person-card-width,172px);right:var(--person-card-width,172px);transform:translateY(-50%);background:linear-gradient(to right,var(--relationship-left-color,var(--line)) 0 50%,var(--relationship-right-color,var(--line)) 50% 100%);pointer-events:none}.family-tree-root .family-unit.couple>.marriage-column::before,.family-tree-root .family-unit.couple>.spouse-link{background:0 0}.family-tree-root .marriage{cursor:pointer!important;width:var(--relationship-symbol-size,52px);min-width:var(--relationship-symbol-size,52px);height:var(--relationship-symbol-size,52px)}.family-tree-root .relationship-marker{min-width:var(--relationship-symbol-size,52px);max-width:var(--relationship-symbol-size,52px)}.family-tree-root .graph-connectors path,.family-tree-root .relationship-network .relationship-path{vector-effect:none;shape-rendering:geometricPrecision}.tree-viewport{contain:layout paint;isolation:isolate}#family-tree-root{will-change:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}body.tree-pan-active #family-tree-root{will-change:transform}#application-page>.zoom-controls{isolation:isolate;contain:layout style;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}@media (hover:none) and (pointer:coarse){#application-page>.zoom-controls{display:none!important}}
