.family-tree-page{max-width:1400px;margin:0 auto;padding-bottom:3rem}.family-tree-page .page-intro{max-width:850px}.tree-toolbar{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:1rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.tree-toolbar input{width:min(24rem,100%);margin:0}.tree-buttons{display:flex;gap:.35rem;margin-left:auto}.tree-buttons button{min-width:2.4rem;padding:.45rem .7rem;border:1px solid var(--rule);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer}.tree-legend{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;padding:.8rem 0;color:var(--muted);font-size:.88rem}.legend-line{display:inline-block;width:2.5rem;border-top:2px solid var(--ink);vertical-align:middle;margin-right:.35rem}.legend-line.adoptive{border-top-style:dashed}.legend-line.spouse{border-top-color:var(--rust)}.legend-line.other{border-top-style:dotted}.family-tree-canvas{overflow:auto;cursor:grab;background:rgba(255,250,240,.72);border:1px solid var(--rule);padding:1.25rem;min-height:20rem}.family-tree-canvas:active{cursor:grabbing}.tree-component{margin-bottom:2rem}.tree-component h2{font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);margin:.2rem 0 .7rem}.family-svg{display:block;min-width:760px;width:100%;height:auto;transform:scale(var(--tree-scale,1));transform-origin:top left;transition:transform .18s ease}.family-svg .tree-edge{fill:none;stroke:var(--ink);stroke-width:1.5}.family-svg .tree-edge.biological{stroke-width:2}.family-svg .tree-edge.adoptive{stroke-dasharray:8 6}.family-svg .tree-edge.spouse{stroke:var(--rust);stroke-width:2}.family-svg .tree-edge.other{stroke-dasharray:2 5}.family-svg .tree-edge.family-bus{stroke:#806b55;stroke-width:1.5}.family-node{cursor:pointer;outline:none}.family-node rect{fill:rgba(255,250,240,.96);stroke:var(--rule);stroke-width:1.2;rx:4}.family-node text{fill:var(--ink);font-family:Georgia,serif;font-size:12px}.family-node .node-date{fill:var(--muted);font-size:10px}.family-node .linked-note{fill:var(--rust);font-size:8px;font-style:italic}.family-node:hover rect,.family-node:focus rect,.family-node.selected rect,.family-node.search-hit rect{stroke:var(--rust);stroke-width:2}.family-node.search-hit rect{fill:#f5e1c8}.isolated-people{border-top:1px solid var(--rule);margin-top:2rem;padding-top:1.5rem}.isolated-list{display:flex;flex-wrap:wrap;gap:.55rem}.isolated-person{border:1px solid var(--rule);background:var(--paper);padding:.5rem .8rem;color:var(--ink);font:inherit;cursor:pointer}.person-details{position:relative;margin:1.5rem 0 0;padding:1.4rem 1.7rem;border-top:2px solid var(--rust);border-bottom:1px solid var(--rule);background:rgba(255,250,240,.86)}.person-details h2{margin-top:0}.person-details h3{margin-bottom:.25rem;color:var(--rust)}.details-close{position:absolute;top:.7rem;right:.7rem;border:0;background:transparent;color:var(--rust);font:inherit;cursor:pointer}.person-link{border:0;background:transparent;padding:0;color:var(--rust);font:inherit;text-decoration:underline;cursor:pointer}.family-search-results{flex-basis:100%;display:flex;flex-wrap:wrap;gap:.35rem}.family-search-results button{border:1px solid var(--rule);background:var(--paper);padding:.35rem .6rem;color:var(--ink);cursor:pointer}@media(max-width:760px){.tree-buttons{margin-left:0}.family-tree-canvas{padding:.7rem}.family-svg{min-width:680px}.tree-legend{font-size:.8rem;gap:.55rem .9rem}}@media print{.family-tree-page .tree-toolbar,.family-tree-page .tree-legend,.family-tree-page .isolated-people,.family-tree-page .person-details{display:none}.family-tree-canvas{border:0;padding:0;overflow:visible}.family-svg{transform:none!important;min-width:0}.tree-component{break-inside:avoid}}
/* Keep the introductory title and description as one readable block. */
.family-tree-page .page-intro{display:block;width:100%;max-width:980px;margin:0 auto;padding:clamp(1.5rem,4vw,3.5rem) 1rem 2rem;text-align:center;columns:1;column-count:1;column-width:auto}
.family-tree-page .page-intro h1{max-width:none;margin:.2rem auto .8rem;font-size:clamp(2.8rem,7vw,6rem);line-height:1.02;letter-spacing:.06em}
.family-tree-page .page-intro p:last-child{max-width:52rem;margin:0 auto;line-height:1.6}
