@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-400.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-600.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Literata;src:url(/fonts/literata-400.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Literata;src:url(/fonts/literata-600.ttf) format("truetype");font-weight:600;font-display:swap}:root{font-family:IBM Plex Sans,sans-serif;color:#1a1814;background:#f3f0e8;font-synthesis:none;--paper: #f3f0e8;--surface: #e9e4d8;--ink: #1a1814;--muted: #5b564c;--accent: #b4452b;--rule: #c9c2b4}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{min-height:44px;cursor:pointer;color:inherit;background:transparent;border:1px solid var(--rule);padding:10px 16px}button:hover{background:var(--surface)}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button svg{flex-shrink:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3,.wordmark{font-family:Literata,Georgia,serif;font-weight:400}h1{font-size:clamp(40px,5vw,64px);line-height:1.12;letter-spacing:-.035em}h2{font-size:32px;line-height:1.25;letter-spacing:-.02em}h3{font-size:23px;line-height:1.4}p{line-height:1.7}small,.eyebrow{color:var(--muted)}.eyebrow{display:block;font-size:12px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:#963820}.brand-mark{color:var(--accent)}.site-header{height:80px;display:flex;align-items:center;gap:32px;margin:0 48px;border-bottom:1px solid var(--rule)}.wordmark{font-size:27px;text-decoration:none;display:flex;gap:16px;align-items:center}.header-caption{flex:1;color:var(--muted);font-size:13px}.site-footer{display:flex;justify-content:space-between;margin:48px 48px 0;padding:24px 0;border-top:1px solid var(--rule);font-size:12px;color:var(--muted)}.welcome{min-height:85svh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:32px;text-align:center}.welcome .brand-mark{font-size:56px}.welcome h1{font-size:80px}.welcome .primary{margin-top:24px;min-width:176px}.welcome small{font-size:13px}.notice{margin:24px 48px;padding:24px;border-left:3px solid var(--accent);background:var(--surface)}.notice button{margin-left:24px}.tree-heading{padding:40px 48px 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.tree-heading h1{font-size:48px}.search-wrap{position:relative;width:288px;z-index:5}.search{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--muted);height:48px}.search input{width:100%;min-width:0;background:none;border:0;padding:10px 0;color:var(--ink)}.search-results{position:absolute;top:56px;left:0;right:0;max-height:360px;overflow:auto;background:var(--paper);border:1px solid var(--rule);box-shadow:0 8px 24px #1a181414}.search-results button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--rule)}.search-results small{display:block;padding-top:4px}.search-results p{padding:16px}.tree-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 48px;border-bottom:1px solid var(--rule);padding:8px 0 16px}.tree-toolbar>div{display:flex;gap:4px}.tree-toolbar button{display:flex;align-items:center;justify-content:center;border:0;padding:10px 12px}.tree-toolbar .text-button{font-size:13px;text-decoration:underline;text-underline-offset:4px}.tree-viewport{height:auto;max-height:none;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--rule) transparent}.tree-canvas{position:relative;transform-origin:0 0}.connections{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.connections path{fill:none;stroke:#aaa292;stroke-width:1.5;vector-effect:non-scaling-stroke}.connections rect{fill:var(--paper);stroke:#aaa292;stroke-width:1.5}.connections .active-link path,.connections .active-link rect{stroke:var(--accent)}.connections .active-link rect{fill:var(--accent)}.connections .non-birth{stroke-dasharray:5 4}.person{position:absolute;transform:translate(-50%);border:0;padding:8px 6px;width:168px;height:192px;display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--paper)}.person:hover{background:var(--surface)}.portrait{display:block;width:72px;height:90px;background:var(--surface);overflow:hidden;outline:1px solid var(--rule);outline-offset:3px}.portrait img,.profile-portrait img{width:100%;height:100%;object-fit:cover}.initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:Literata,Georgia,serif;font-size:32px;color:var(--muted)}.image-placeholder{height:100%;display:flex;align-items:center;justify-content:center;padding:8px;font-size:11px;color:var(--muted);text-align:center}.person-name{font-family:Literata,Georgia,serif;font-size:17px;line-height:1.22;max-width:160px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.person-years{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.person.is-focus .portrait{outline:2px solid var(--ink)}.person.is-focus .person-name{font-weight:600}.person.is-selected .portrait{outline:3px solid var(--accent)}.focus-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.expand-row{display:flex;justify-content:center;padding:16px}.expand-row button{display:flex;align-items:center;gap:8px}.tree-help,.sync-note{font-size:13px;color:var(--muted);text-align:center;padding:8px 24px}.selection{position:fixed;z-index:6;right:24px;bottom:24px;width:352px;max-height:75svh;overflow:auto;padding:32px;background:var(--paper);border:1px solid var(--rule);box-shadow:0 16px 64px #1a181419}.selection h2{padding-right:16px;font-size:28px}.selection>p{margin-top:12px;color:var(--muted)}.close{position:absolute;top:8px;right:8px;border:0;display:grid;place-items:center;padding:8px}.selection-actions{display:grid;gap:8px;margin:24px 0}.selection-actions button{display:flex;align-items:center;justify-content:space-between}.connections-list{padding:16px 0 0;margin:0;border-top:1px solid var(--rule);list-style:none;font-size:12px;color:var(--muted)}.connections-list button{border:0;padding:4px 0;text-decoration:underline;text-align:left;min-height:36px;color:var(--ink)}.relative-list{max-width:760px;margin:32px auto;padding:0 24px;list-style:none}.relative-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--rule);padding:12px 0}.relative-list button{border:0;text-align:left;font-family:Literata,serif;font-size:20px;padding-left:0}.relative-list span{color:var(--muted);font-size:13px}.profile{max-width:1100px;margin:auto;padding:32px 48px 0}.back-link{border:0;padding:0;display:flex;align-items:center;gap:12px;font-size:14px}.profile-hero{display:grid;grid-template-columns:192px 1fr;gap:48px;align-items:center;padding:56px 0 64px;border-bottom:1px solid var(--rule)}.profile-portrait{width:192px;height:240px;background:var(--surface);outline:1px solid var(--rule);outline-offset:8px}.profile-portrait .initials{font-size:72px}.profile-hero h1{max-width:750px}.life-dates{font-size:18px;color:var(--muted);margin-top:24px}.profile-hero nav{display:flex;flex-wrap:wrap;gap:24px;margin-top:32px;font-size:14px}.profile-hero nav a{min-height:44px;display:flex;align-items:center}.profile section{padding:64px 0;scroll-margin-top:24px;border-bottom:1px solid var(--rule)}.profile section h2{margin-bottom:32px}.biography{max-width:680px;margin:auto}.biography p{font-family:Literata,Georgia,serif;font-size:19px;line-height:1.85;white-space:pre-wrap;margin-top:24px}.empty{color:var(--muted);font-size:16px}.life-section{display:grid;grid-template-columns:1fr 2fr;gap:48px}.timeline{padding:0 0 0 24px;margin:0;list-style:none;border-left:1px solid var(--rule)}.timeline>li{position:relative;padding:0 0 40px 16px}.timeline>li:before{content:"";position:absolute;width:7px;height:7px;left:-28px;top:20px;background:var(--paper);border:1px solid var(--muted);transform:rotate(45deg)}.timeline .chosen-event:before{background:var(--accent);border-color:var(--accent)}.timeline>li>button:first-child{display:block;text-align:left;width:100%;border:0;padding:8px 0}.event-date{display:block;font-size:13px;color:var(--muted);margin-bottom:8px;font-variant-numeric:tabular-nums}.timeline p{font-size:15px;margin-top:12px}.citations{list-style:none;padding:0;margin:16px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.document-link{border:0;border-bottom:1px solid var(--rule);padding:8px 0;display:flex;gap:16px;font-size:14px}.album{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;align-items:start}.album button{display:block;width:100%;padding:0;border:0;background:var(--surface);min-height:200px}.album img{width:100%;max-height:360px;object-fit:contain;display:block}.album figcaption{font-size:13px;margin-top:12px;line-height:1.5;color:var(--muted)}.document-cover{display:flex;min-height:240px;justify-content:center;align-items:center;gap:16px;font-family:Literata,serif;font-size:22px}.life-map{background:var(--surface);padding:16px}.life-map svg{width:100%;display:block}.land{fill:#d4ccbb;stroke:var(--paper);stroke-width:.5}.journey{stroke:var(--accent);stroke-width:1.5;fill:none;stroke-dasharray:4 4}.life-map circle{fill:var(--paper);stroke:var(--accent);stroke-width:2;cursor:pointer}.life-map .selected-place{fill:var(--accent)}.life-map figcaption{font-size:12px;color:var(--muted);padding:16px;line-height:1.6}.place-list{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;list-style:none;padding:0}.place-list button{width:100%;text-align:left;border:0;border-bottom:1px solid var(--rule);padding:16px 0}.place-list button[aria-pressed=true]{border-bottom:2px solid var(--accent)}.place-list span{display:block;font-size:12px;color:var(--muted);margin-top:6px}.media-viewer{background:var(--paper);border:1px solid var(--rule);padding:24px;width:min(1200px,94vw);max-height:94svh;color:var(--ink)}.media-viewer::backdrop{background:#1a1814c9}.media-viewer header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.media-viewer h2{font-size:24px}.media-viewer header button{border:0;display:grid;place-items:center}.media-viewer iframe{width:100%;height:70svh;border:0}.full-image{max-height:70svh;overflow:auto}.full-image img{display:block;max-width:100%;margin:auto}.media-viewer>a{display:inline-block;padding:16px 0;font-size:14px}[hidden]{display:none!important}@media (min-width: 1100px){body:has(.selection) .tree-viewport{margin-right:376px}body:has(.selection) .tree-heading{padding-right:400px}}@media (max-width: 649px){h1{font-size:40px}h2{font-size:28px}.site-header{margin:0 20px;height:64px;gap:16px}.wordmark{font-size:24px;flex:1}.header-caption{display:none}.tree-heading{padding:32px 20px 16px;align-items:stretch;flex-direction:column;gap:24px}.tree-heading h1{font-size:40px}.search-wrap{width:100%}.tree-toolbar{margin:0 12px;padding-bottom:8px}.tree-viewport{height:auto}.person{width:140px}.person-name{font-size:16px}.person-years{font-size:11px}.site-footer{margin:32px 20px 0;gap:16px}.selection{right:0;bottom:0;left:0;width:100%;max-height:55svh;padding:24px 24px max(24px,env(safe-area-inset-bottom))}.selection-actions{grid-template-columns:1fr 1fr;gap:12px}.selection-actions button{font-size:14px;gap:8px}.connections-list{max-height:120px;overflow:auto}.profile{padding:24px 20px 0}.profile-hero{grid-template-columns:80px 1fr;gap:24px;padding:32px 0}.profile-portrait{width:80px;height:100px;align-self:start}.profile-portrait .initials,.profile-hero h1{font-size:32px}.profile-hero nav{gap:8px 20px;margin-top:16px}.life-dates{font-size:14px;margin-top:16px}.profile section{padding:40px 0}.biography p{font-size:17px}.life-section{display:block}.timeline{margin-left:4px}.album{grid-template-columns:1fr 1fr;gap:16px}.album button,.document-cover{min-height:160px}.document-cover{font-size:16px}.place-list{grid-template-columns:1fr}.notice{margin:20px;padding:16px}.notice button{margin:16px 0 0}.media-viewer{padding:16px}.life-map{padding:8px}.life-map figcaption{padding:8px}.welcome h1{font-size:64px}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.tree-viewport>div{margin-inline:auto}.person{background:transparent}.person-name,.person-years,.focus-label{background:var(--paper)}.person:hover .person-name,.person:hover .person-years,.person:hover .focus-label{background:var(--surface)}.life-map{position:relative;overflow:hidden}.map-expand{position:relative;z-index:1;font-size:12px;background:var(--paper)}.expanded-map{position:fixed;top:16px;right:16px;bottom:16px;left:16px;z-index:10;overflow:auto;box-shadow:0 0 0 100vmax #1a1814b3}.expanded-map svg{height:75svh}.connections path,.connections rect{stroke:#898173}@media (max-width: 649px){.tree-viewport{height:auto;max-height:none}}.person{height:224px;scroll-margin-top:96px}.person-years{font-size:14px}.focus-label{font-size:12px;letter-spacing:0;text-transform:none}.relative-list small{display:block;margin-top:8px;font-size:13px;line-height:1.6}.relative-list li{align-items:flex-start}.relative-list li>span{max-width:60%}@media (max-width: 649px){.selection{max-height:40svh}.person-years{font-size:14px}html:has(.selection){scroll-padding-bottom:40svh}}
