.familyTreeSection{padding:90px 3vw 110px;background:var(--cream)}
.treeToolbar{display:flex;justify-content:space-between;align-items:end;gap:30px;max-width:1500px;margin:0 auto 40px;padding:0 4vw}
.treeToolbar h2{font:500 clamp(42px,5vw,68px) Georgia,serif;margin:0}
.treeToolbar>div>p:last-child{color:var(--muted);line-height:1.6}
.treeControls{display:flex;align-items:end;gap:8px;flex:0 0 auto}
.treeControls label{display:grid;gap:6px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
.treeControls input{width:220px;padding:11px;border:1px solid var(--line);background:#fff}
.treeControls button{height:40px;min-width:42px;padding:0 12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:700}
.treeViewport{overflow:auto;padding:40px 30px 90px;background:#fff;border:1px solid var(--line);cursor:grab;min-height:650px}
.treeViewport:active{cursor:grabbing}
.familyTree{--tree-scale:1;display:table;margin:0 auto;transform:scale(var(--tree-scale));transform-origin:top center;transition:transform .18s ease}
.familyTree ul{position:relative;display:flex;justify-content:center;margin:0;padding-top:54px;padding-left:0}
.familyTree li{position:relative;display:flex;flex-direction:column;align-items:center;list-style:none;text-align:center;padding:54px 8px 0}
.familyTree li>ul{width:100%}
.familyTree>ul>li{padding-top:0}
.familyTree li:before,.familyTree li:after{content:"";position:absolute;top:0;right:50%;width:50%;height:54px;border-top:2px solid #9aae9f}
.familyTree li:after{right:auto;left:50%;border-left:2px solid #9aae9f}
.familyTree li:only-child:before,.familyTree li:only-child:after{display:none}
.familyTree li:only-child{padding-top:54px}
.familyTree>ul>li:only-child{padding-top:0}
.familyTree li:first-child:before,.familyTree li:last-child:after{border:0}
.familyTree li:last-child:before{border-right:2px solid #9aae9f;border-radius:0 8px 0 0}
.familyTree li:first-child:after{border-radius:8px 0 0 0}
.familyTree ul ul:before{content:"";position:absolute;top:0;left:50%;height:54px;border-left:2px solid #9aae9f}
.treePerson{position:relative;z-index:2;width:158px;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:12px 9px;border:1px solid #bac9bd;border-top:4px solid var(--forest);border-radius:3px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 8px 18px #17352b12;transition:.15s}
.treePerson:hover,.treePerson.match{border-color:var(--gold);border-top-color:var(--gold);background:#fff8df;transform:translateY(-3px);box-shadow:0 10px 24px #c2a05e35}
.treePerson img,.treePerson i{width:36px;height:36px;border-radius:50%;object-fit:cover}
.treePerson i{display:grid;place-items:center;background:#dce8dc;font:500 14px Georgia,serif;font-style:normal}
.treePerson strong{display:block;font:500 16px/1.1 Georgia,serif}
.treePerson small{display:block;margin-top:4px;color:#7d8a84;font:9px/1.25 Arial,sans-serif}
.familyTree>ul>li>.treePerson{width:180px;min-height:100px;border-top-color:var(--gold);background:var(--forest);color:#fff}
.familyTree>ul>li>.treePerson i{background:#f1e5c9;color:var(--forest)}
.familyTree>ul>li>.treePerson small{color:#c9d8d0}
@media(max-width:720px){
  .familyTreeSection{padding:65px 14px}
  .treeToolbar{display:grid;padding:0 8px}
  .treeControls{flex-wrap:wrap}
  .treeControls label{width:100%}
  .treeControls input{width:100%}
  .treeViewport{padding:30px 15px 70px;min-height:560px}
}
