*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;color:inherit}button,a,input{ -webkit-tap-highlight-color:transparent }[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}p,h1,h2{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.ancestry-page{display:flex;flex-direction:column;min-height:100svh}
.ancestry{flex:1;min-height:480px;position:relative;isolation:isolate;overflow:hidden;background-image:radial-gradient(#dcd7d5 .65px,transparent .65px);background-size:24px 24px}.map-heading{position:absolute;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;pointer-events:none;top:24px;left:var(--gutter);right:var(--gutter);}.map-heading>div{pointer-events:auto}.eyebrow{font-size:9px;font-weight:600;color:var(--muted);margin-bottom:10px}h1{line-height:1.15;font-weight:800;font-size:clamp(32px,4vw,48px);}h1 span{color:var(--accent)}.map-heading p:last-child{font-size:12px;color:var(--muted);margin-top:8px;font-family:var(--mono);}.map-search{position:relative;width:242px}input[type=search]{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:12px;color:var(--ink);background:white;}#search-results{position:absolute;top:48px;width:100%;border:1px solid var(--line);padding:6px;box-shadow:0 10px 30px #3d383b0a;max-height:320px;overflow:auto;border-radius:0;background:white;}#search-results button{display:block;text-align:left;width:100%;padding:10px;border:0;background:none;border-radius:4px;font-size:12px}#search-results button:hover{background:#f5f0ee}#search-results small{display:block;color:var(--muted);margin-top:3px}#search-results p{padding:10px}
.map-viewport{position:absolute;inset:0;touch-action:none;cursor:grab;overflow:hidden}.map-viewport.is-dragging{cursor:grabbing}.family-map{display:block;width:100%;height:100%;user-select:none}.family-edge{fill:none;stroke-width:1.25;stroke:#a3a3a0;}.family-edge.type-edge{stroke-dasharray:3 5;stroke:#ded7d9}.family-edge.is-related{stroke:var(--accent);stroke-width:2}.family-node{cursor:pointer;outline:none}.node-card{rx:0;stroke-width:1;fill:white;stroke:var(--line);}.family-node:hover .node-card,.family-node:focus .node-card{rx:0;stroke-width:2;fill:white;stroke:var(--line);}.family-node.is-selected .node-card{rx:0;stroke-width:2;fill:white;stroke:var(--line);}.node-name{font-size:13px;fill:var(--ink);font-weight:750;}.node-caption{font-size:9px;fill:#847a80;}.node-id{font:9px ui-monospace,SFMono-Regular,monospace;fill:#8f868b}.generation-label{font-size:9px;font-weight:500;fill:var(--muted);font-family:var(--mono);}.node-halo{fill:#f5eeef}.node-mark{fill:#c8acba}
.empty-note{position:absolute;bottom:125px;left:36px;max-width:285px;pointer-events:none;font-size:12px;line-height:1.65}.empty-note strong{font-weight:500}.empty-note p{color:var(--muted);margin:5px 0 10px}.empty-note a{pointer-events:auto;color:var(--accent)}.view-context{position:absolute;left:36px;top:154px;font-size:11px;color:var(--muted)}.pet-inspector{position:absolute;right:36px;top:100px;width:280px;max-height:calc(100% - 195px);overflow:auto;border:1px solid var(--line);z-index:3;border-radius:0;border-top:4px solid var(--blue);box-shadow:none;background:white;padding:16px;}.pet-inspector h2{font-size:25px;margin:0 20px 12px 0;font-weight:800;}.pet-inspector>p:not(.eyebrow){font-size:12px;line-height:1.7;color:var(--muted)}.close-inspector{position:absolute;right:12px;top:10px;background:none;border:0;font-size:24px;font-weight:300;padding:3px 7px}.pet-inspector dl{margin:20px 0;font-size:11px}.pet-inspector dt{color:var(--muted);margin-top:14px}.pet-inspector dd{margin:5px 0;overflow-wrap:anywhere;line-height:1.7}.pet-inspector [data-selected-id]{font:10px/1.7 ui-monospace,SFMono-Regular,monospace}.detail-link{display:block;text-align:center;background:var(--ink);color:white;font-size:12px;padding:12px;border-radius:0;}.record-link{display:block;text-align:center;margin-top:12px;font-size:11px;color:var(--muted)}
.map-bottom{position:absolute;bottom:24px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:center;gap:18px;pointer-events:none}.map-bottom>*{pointer-events:auto}.map-caption{font-size:10px;color:var(--muted);line-height:1.8}.registry-dot{display:inline-block;background:#91a48e;width:5px;height:5px;border-radius:50%;margin-right:6px}.gesture-hint{display:block;font-size:9px}.map-controls{display:flex;align-items:center;border:1px solid var(--line);padding:5px;position:absolute;left:50%;transform:translateX(-50%);border-radius:0;box-shadow:none;background:white;}.map-controls button{height:34px;border:0;background:transparent;font-size:19px;border-radius:0;min-height:44px;min-width:44px;}.map-controls button:hover{background:#f3eeef}.map-controls button[data-zoom=fit]{font-size:11px}.map-controls output{font-size:10px;width:44px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}.map-controls>span{height:20px;width:1px;background:var(--line);margin:0 4px}.family-list summary{font-size:11px;cursor:pointer;list-style:none}.family-list summary span{margin-left:12px}.family-list-panel{position:absolute;right:0;bottom:58px;width:300px;max-height:min(420px,60svh);overflow:auto;border:1px solid var(--line);padding:20px;z-index:4;border-radius:0;border-top:4px solid var(--ink);box-shadow:none;background:white;}.family-list-panel h2{font-size:16px;font-weight:500}.family-list-panel p{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0}.family-list ul{list-style:none;padding:0;margin:12px 0 0}.family-list li a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.family-list li span{font-size:10px;color:var(--muted)}.map-pagination{position:absolute;bottom:86px;left:50%;transform:translateX(-50%);display:flex;gap:20px;white-space:nowrap;font-size:10px;background:var(--paper);padding:8px 12px;border-radius:6px}.map-pagination span{color:var(--muted)}.no-script{position:absolute;top:190px;left:36px;right:36px;font-size:13px}
@media(max-width:700px){.map-heading{left:20px;right:20px;top:24px;gap:14px}h1{font-weight:800;font-size:clamp(32px,4vw,48px);}.map-heading p:last-child{font-size:10px;font-family:var(--mono);}.eyebrow{font-size:8px;}.map-search{width:170px}input[type=search]{font-size:16px;padding:10px;width:100%;background:white;}.map-search input::placeholder{font-size:10px}.map-bottom{left:20px;right:20px;bottom:18px;align-items:flex-end;padding-top:64px}.map-controls{top:0;border-radius:0;box-shadow:none;background:white;}.gesture-hint{display:none}.map-caption{font-size:9px}.empty-note{left:20px;bottom:135px;max-width:260px;font-size:11px}.view-context{left:20px;top:132px}.pet-inspector{top:auto;bottom:120px;left:20px;right:20px;width:auto;max-height:40%;border-radius:0;border-top:4px solid var(--blue);box-shadow:none;background:white;padding:16px;}.pet-inspector dl{margin:10px 0}.pet-inspector h2{font-size:22px;margin-bottom:8px;font-weight:800;}.pet-inspector dt{margin-top:8px}.map-pagination{bottom:115px}.family-list-panel{max-width:calc(100vw - 40px);bottom:105px;border-radius:0;border-top:4px solid var(--ink);box-shadow:none;background:white;}.family-list summary{font-size:10px}}
@media(max-width:380px){.map-search{width:145px}.map-heading{gap:8px;top:24px;left:var(--gutter);right:var(--gutter);}.map-heading p:last-child{max-width:125px;line-height:1.5;font-family:var(--mono);}}
