@font-face{font-family:CaslonText;src:url("../fonts/libre-caslon-text.90f3bc3b51fe.ttf") format('truetype');font-display:swap}
.family-comparison,.family-print-result{scroll-margin-top:100px;margin:65px 0 90px}
.family-comparison>header,.family-print-result>header{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;align-items:end;margin-bottom:36px}
.family-comparison h2,.family-print-result h2{font:400 clamp(38px,4.6vw,65px)/1.02 var(--serif);letter-spacing:-.03em;margin:15px 0 0}
.family-comparison>header>p,.family-print-result>header>p{font-size:14px;line-height:1.85;max-width:44ch;margin:0 0 5px}
.family-controls{display:flex;justify-content:space-between;align-items:end;gap:24px;padding-block:23px;border-top:1px solid var(--rule)}
.family-controls fieldset{border:0;padding:0;margin:0;display:flex;gap:6px;flex-wrap:wrap}
.family-controls legend{font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.family-controls label{position:relative;cursor:pointer}
.family-controls input{position:absolute;opacity:0;margin:0;width:100%;height:100%;inset:0;cursor:pointer}
.family-controls label span{display:block;padding:13px 19px;border:1px solid #cbcdbf;font:500 12px var(--sans);color:#455044;transition:background .15s}
.family-controls input:checked+span{color:#fff;background:#2b3c2d;border-color:#2b3c2d}
.family-controls input:focus-visible+span{outline:2px solid #81543c;outline-offset:4px}
.family-zoom{min-height:44px;border:0;background:transparent;font:12px var(--sans);padding:14px 0 14px 14px;cursor:pointer;color:var(--ink);white-space:nowrap}
.family-viewport{overflow:auto;border:1px solid #d1d0c3;background:#fff;overscroll-behavior:contain;scrollbar-color:#a5ab9a #eeeee6}
.family-chart{position:relative;width:100%;aspect-ratio:841/594;background:white}
.family-chart[hidden]{display:none}
.family-chart>img{display:block;width:100%;height:auto}
.family-person{position:absolute;margin:0;padding:0;border:1px solid transparent;border-radius:0;background:transparent;cursor:pointer;transition:background .15s,border-color .15s}
.family-person:hover{background:#6f86630d;border-color:#929d8170}
.family-person:focus-visible{outline:2px solid #81543c;outline-offset:2px;background:#8f9a7714}
.family-person[aria-pressed=true]{border-color:#738568;background:#8f9a7714}
.family-viewport.is-zoomed{height:min(70vh,620px)}
.family-viewport.is-zoomed .family-chart{width:1600px;max-width:none}
.family-caption{display:flex;justify-content:space-between;gap:20px;padding:14px 0;font-size:11px;color:#656c5f;line-height:1.65}
.family-caption p{margin:0}
.family-person-detail{position:relative;border-block:1px solid var(--rule);padding:28px 45px 28px 0;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.family-person-detail[hidden]{display:none}
.family-person-detail h3{font:400 36px var(--serif);margin:5px 0 12px}
.family-detail-dates{font-size:12px;color:var(--muted);margin:0}
.family-person-detail>[data-detail-note]{font-size:14px;line-height:1.8;max-width:45ch}
.family-person-detail>button{position:absolute;right:0;top:20px;border:0;background:none;cursor:pointer;font-size:28px;color:var(--ink);width:40px;height:40px}
.family-finish{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-top:24px}
.family-finish p{font-size:14px;margin:0;max-width:45ch;line-height:1.8}
.family-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.family-print-result{margin-top:0}.family-print-result>header{border-top:1px solid var(--rule);padding-top:50px}
.family-print-result .family-controls{border:0}
.family-print-wall{padding:64px max(5%,24px) 26px;background:#e3e1d9;box-shadow:inset 0 20px 65px #95928612}
.family-print-frame{display:block;margin:auto;width:100%;max-width:1240px;padding:9px;border:0;background:linear-gradient(100deg,#403e34,#706453 48%,#454033);box-shadow:0 30px 40px -22px #393e3666,2px 5px 9px #3d40393b;cursor:zoom-in}
.family-print-frame img{display:block;width:100%;height:auto;border:1px solid #9c9787}
.family-print-wall>p{font-size:10px;letter-spacing:.05em;color:#62695e;margin:28px auto 0;max-width:1240px}
.family-result-order{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:30px 40px}
.family-result-order>div:last-child{display:flex;flex-direction:column;gap:17px;align-items:center}
.family-result-order [data-result-summary]{font-family:var(--serif);font-size:28px;margin:12px 0 18px}
.family-result-order .underlink{font-size:12px}
.family-result-dialog{width:96vw;max-width:none;height:94dvh;max-height:none;padding:0;border:0;background:#e8e9e1;color:#273b2e}
.family-result-dialog::backdrop{background:#17251de6;backdrop-filter:blur(4px)}
.family-result-dialog header{height:64px;display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid #c7cdbf;font-size:12px;letter-spacing:.1em}
.family-result-dialog header button{background:none;border:0;font:12px var(--sans);color:inherit;padding:12px;cursor:pointer}
.family-result-canvas{height:calc(100% - 64px);padding:24px;overflow:auto;display:flex;align-items:start;justify-content:center}
.family-result-canvas img{width:auto;height:auto;max-width:100%;max-height:100%;box-shadow:0 8px 25px #28382615}
.family-result-canvas.is-zoomed{display:block}
.family-result-canvas.is-zoomed img{width:1800px;max-width:none;max-height:none}
.family-print-result button:focus-visible,.family-comparison button:focus-visible{outline:2px solid #81543c;outline-offset:3px}
@media(max-width:700px){.family-comparison,.family-print-result{margin-bottom:50px}.family-comparison>header,.family-print-result>header{grid-template-columns:1fr;gap:22px}.family-controls{gap:12px;align-items:start;flex-wrap:wrap}.family-controls label span{font-size:11px;padding:12px}.family-controls fieldset{max-width:100%}.family-caption{display:block;font-size:10px}.family-caption span{display:block;margin-top:3px}.family-finish{display:block}.family-finish .button{margin-top:18px;width:100%}.family-person-detail{grid-template-columns:1fr;gap:10px}.family-person-detail h3{font-size:30px}.family-person-detail>[data-detail-note]{margin:0}.family-print-result>header{padding-top:30px}.family-print-wall{padding:28px 5% 18px}.family-print-frame{padding:5px}.family-print-wall>p{font-size:9px;line-height:1.7;margin-top:18px}.family-result-order{display:block;padding-block:25px}.family-result-order>div:last-child{align-items:stretch;margin-top:25px}.family-result-order [data-result-summary]{font-size:25px;line-height:1.4}.family-result-size{margin-left:auto!important}.family-result-dialog{width:100vw;height:100dvh;max-height:100dvh;max-width:100vw}.family-result-dialog header{padding:10px}.family-result-canvas{padding:12px}}
@media(prefers-reduced-motion:reduce){.family-person,.family-controls label span{transition:none}}
