.family-map{max-width:1100px;margin:38px auto 44px;padding:clamp(20px,3.5vw,42px);border:1px solid #d8d4bd;border-radius:16px;background:linear-gradient(155deg,#fffdf7 0%,#f4f0df 58%,#edf2e5 100%);box-shadow:0 15px 40px rgba(15,61,46,.08);color:#173d32}
.family-map-intro{max-width:760px;margin-bottom:24px}
.family-map-intro h2{font:clamp(29px,3vw,39px)/1.18 var(--serif,Georgia,serif);margin:6px 0 10px;color:#0f3d2e}
.family-map-intro p:last-child{font-size:14px;line-height:1.7;color:#50665a;margin:0}
.family-map-art{margin:0 0 24px}
.family-map-art-frame{overflow-x:auto;border-radius:10px;overscroll-behavior-inline:contain}
.family-map-art-stage{position:relative;width:100%;min-width:1000px;aspect-ratio:3/2}
.family-map-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:10px;border:1px solid rgba(15,61,46,.14)}
.family-map-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.family-map-connectors path{fill:none;stroke:#0d5740;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round}
.family-map-connectors rect{fill:#fffaf0;stroke:#a97830;stroke-width:3;filter:drop-shadow(0 4px 7px rgba(29,57,42,.16))}
.family-map-connectors text{fill:#153d30;font:700 30px Georgia,serif}
.family-map-download{display:inline-flex;align-items:center;margin-top:12px;padding:9px 13px;border:1px solid #a97830;border-radius:8px;background:#fffaf0;color:#0d5740;font:700 12px/1.35 var(--sans,Arial,sans-serif);text-decoration:none}
.family-map-download:hover,.family-map-download:focus-visible{background:#e9f0e4;outline-color:#0d5740}
.family-map-swipe{display:none}
.family-map-art figcaption{font-size:11px;line-height:1.55;color:#627365;margin-top:9px}
.family-map-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.family-map-branch{padding:21px;border:1px solid #d9dec9;border-radius:10px;background:rgba(255,255,250,.86)}
.family-map-side{margin:0 0 13px!important;font:700 10px/1.4 var(--sans,Arial,sans-serif)!important;letter-spacing:.12em;text-transform:uppercase;color:#a44238!important}
.family-map-branch h3{font:23px/1.25 var(--serif,Georgia,serif);color:#0f3d2e;margin:0 0 19px}
.family-map-branch h3 span{display:block;font:11px/1.4 var(--sans,Arial,sans-serif);color:#627365;margin-top:4px}
.family-map-branch ul{list-style:none;padding:0;margin:0;display:grid;gap:0}
.family-map-branch li{display:grid;gap:1px;padding:11px 0;border-top:1px solid #e2e6d9;margin:0}
.family-map-branch li::before{content:none}
.family-map-branch strong{font:700 17px/1.3 var(--serif,Georgia,serif);color:#1e4c3b}
.family-map-branch li span{font:12px/1.5 var(--sans,Arial,sans-serif);color:#4f6257}
.family-map-note{font:12px/1.6 var(--sans,Arial,sans-serif);color:#4f6257;margin:18px 0 0!important;padding-left:14px;border-left:3px solid #bd9a54}
@media(min-width:1100px){.reader>.family-map,.wrap-narrow>.family-map{width:min(1100px,calc(100vw - 80px));max-width:none;box-sizing:border-box;margin-left:50%;transform:translateX(-50%)}}
@media(max-width:1099px){.family-map-swipe{display:block;font:11px/1.5 var(--sans,Arial,sans-serif);color:#4f6257;margin:8px 0 0}.family-map-art-frame{scrollbar-color:#a7b8a1 #edf2e5}}
@media(max-width:760px){.family-map{margin:30px auto;padding:18px}.family-map-branches{grid-template-columns:1fr}.family-map-branch{padding:18px}.family-map-intro h2{font-size:30px}}
