@charset "UTF-8";
:root{--ink:#183b3e;--deep:#102c30;--paper:#f7f5ef;--white:#fffdf9;--gold:#c4a16c;--gold-light:#e4cc9f;--muted:#75807a;--line:#e3e3d9;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',system-ui,-apple-system,sans-serif;--shadow:0 16px 48px #173a3b0d}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}a{color:inherit;text-decoration:none}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button{border:0;background:none}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.symbols{position:absolute;width:0;height:0;overflow:hidden}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--paper);padding:12px}.skip:focus{top:12px}.site-header{height:90px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);gap:20px}.brand{display:flex;align-items:center;gap:13px;font:24px var(--serif);white-space:nowrap}.brand small{display:block;font:8px var(--sans);letter-spacing:2.2px;margin-top:7px}.brand-mark{width:42px;height:46px;border:1px solid #a7977380;border-radius:24px 24px 10px 10px;display:grid;place-items:center;color:#97774a}.brand-mark svg{width:28px;height:28px}.site-header nav{display:flex;gap:32px;font-size:12px}.site-header nav a{position:relative;padding:8px 0}.site-header nav a:after{content:'';position:absolute;height:1px;background:var(--gold);left:0;right:100%;bottom:0;transition:right .25s}.site-header nav a:hover:after{right:0}.header-search{display:flex;align-items:center;gap:10px;font-size:12px;border:1px solid var(--line);padding:10px 14px;border-radius:4px}.header-search svg{width:17px;height:17px}kbd{color:var(--muted);border:1px solid var(--line);padding:0 6px;font-family:inherit;font-size:11px;margin-left:20px}.hero{height:650px;min-height:580px;position:relative;isolation:isolate;background:var(--deep);overflow:hidden;color:var(--paper)}.hero-art,.hero-shade{position:absolute;inset:0;z-index:-1}.hero-art svg{width:100%;height:100%;stroke:none}.hero-art{animation:landscape-in 2s ease-out both}.hero-shade{background:linear-gradient(90deg,#0b282ef0 0%,#0d2c32b8 35%,#102f3540 70%,#09272e30 100%),linear-gradient(0deg,#0a262fc4,transparent 30%)}.hero-content{padding:86px 0 0 8%;position:relative;z-index:2;max-width:720px}.eyebrow{font-size:10px;letter-spacing:2.8px;font-weight:500;color:var(--gold-light);margin:0 0 24px;display:flex;align-items:center;gap:10px}.eyebrow.dark{color:#947a51}.gold-dot{width:5px;height:5px;display:inline-block;background:var(--gold);border-radius:50%;box-shadow:0 0 0 4px #c4a16c12;flex-shrink:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h1{font-size:clamp(64px,6.6vw,98px);line-height:1.05;letter-spacing:-4px;margin-bottom:26px}em{font-family:var(--serif);font-weight:400}h1 em{color:var(--gold-light)}.hero-description{font-size:14px;font-weight:300;line-height:1.9;color:#e0e7dbb0;margin-bottom:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:15px 24px;border-radius:3px;font-size:12px;font-weight:500;border:1px solid transparent;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button svg{width:18px;height:18px}.gold{background:var(--gold-light);color:#213a36}.gold:hover{background:#f2dfbc}.ink{background:var(--ink);color:var(--paper)}.outline{border-color:var(--line)}.hero-map-link{display:flex;align-items:center;gap:9px;width:fit-content;margin-top:20px;font-size:11px;color:#d0d7c7a6}.hero-map-link svg{width:15px;height:15px;color:var(--gold-light)}.hero-bottom{position:absolute;left:5.5%;right:5.5%;bottom:22px;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.7px;color:#dedacb7a}.hero-bottom a{font-size:20px;animation:drift 3s ease-in-out infinite}.heritage-orbit{position:absolute;width:540px;height:470px;right:5.5%;top:58px;color:var(--gold-light);animation:fade-in 1.6s .3s both}.heritage-orbit>svg{height:100%;width:100%;stroke-width:1}.orbit-label{position:absolute;font-size:8px;letter-spacing:2.7px;text-align:center;left:0;right:0;color:#e9d6a68c}.orbit-top{top:52px}.orbit-bottom{bottom:26px}.hero-person{position:absolute;left:50%;top:60%;transform:translate(-50%,-50%);width:220px;text-align:center;padding:24px 15px;background:#12353a9c;backdrop-filter:blur(10px);border:1px solid #d5bb8540;border-radius:4px;box-shadow:0 20px 60px #0b232730}.hero-person .initials{margin:auto auto 13px;color:var(--gold-light);border:1px solid #dcc18e80;background:#ddc39212}.hero-person h3{font-size:22px;margin:0 0 7px;line-height:1.3}.hero-person p{font-size:10px;letter-spacing:1px;margin:0;color:#e8dfc4a6}.initials{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f3eee4;color:#9d7c4d;font:18px var(--serif)}.stat-strip{display:flex;align-items:center;padding:30px 8%;gap:0;border-bottom:1px solid var(--line);background:#f0f0e7}.stat-strip>div{flex:1;border-right:1px solid #d5d9cc;padding-left:32px}.stat-strip>div:first-child{padding-left:0}.stat-strip strong{display:block;font:38px var(--serif);letter-spacing:-1px}.stat-strip span{display:block;font-size:10px;color:var(--muted);margin-top:6px;letter-spacing:.7px}.stat-strip>p{font:17px/1.55 var(--serif);color:#738174;flex:1.5;margin:0 0 0 42px}.section{padding:90px 5.5%}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px;gap:30px}.section-heading .eyebrow{margin-bottom:12px}h2{font-size:clamp(32px,3.6vw,48px);line-height:1.15;letter-spacing:-1.5px;margin:0}.section-heading h2 em{color:#8a957e}.section-heading>p{font-size:12px;color:var(--muted);line-height:1.85;margin:0 0 3px}.explorer{background:var(--white);border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);overflow:hidden}.explorer-toolbar{padding:14px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.view-tabs{display:flex;background:#f3f3ec;border-radius:5px;padding:4px;gap:3px}.view-tabs button{display:flex;gap:8px;align-items:center;font-size:11px;padding:8px 13px;border-radius:3px;color:var(--muted)}.view-tabs button svg{width:16px;height:16px}.view-tabs button.active{background:#fffdf9;color:var(--ink);box-shadow:0 2px 5px #173a3b0c}.search-trigger{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:11px}.search-trigger svg{width:17px;height:17px}.tree-context{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;font-size:11px;gap:15px}.tree-context>div{display:flex;align-items:center;gap:12px;min-width:0}.tree-context label{white-space:nowrap;color:var(--muted)}select{font-size:11px;color:var(--ink);background:transparent;border:1px solid #dddfd4;border-radius:3px;padding:7px 20px 7px 8px;max-width:100%}.back-button{border:1px solid var(--line);width:28px;height:28px;border-radius:50%;font-size:15px;flex-shrink:0}.tree-viewport{height:650px;position:relative;background-color:#f9faf5;background-image:radial-gradient(#c5cdc06b .7px,transparent .7px);background-size:18px 18px;overflow:hidden;touch-action:none;cursor:grab}.tree-viewport.dragging{cursor:grabbing}.tree-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:auto}.tree-world>svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}.tree-card{position:absolute;width:230px;height:112px;border:1px solid #d9ded3;border-radius:5px;background:var(--white);padding:14px;box-shadow:0 4px 15px #173a3b07;display:flex;gap:12px;align-items:center;cursor:default}.tree-card.root{background:var(--ink);color:var(--white);border-color:var(--ink);box-shadow:0 10px 35px #183b3e25}.tree-card.root .initials{background:#d8c18d16;color:var(--gold-light)}.tree-card.root .card-years,.tree-card.root .card-place{color:#d1ddc8a8}.tree-card.father{border-top:2px solid #8a9e8a}.tree-card.mother{border-top:2px solid #bda880}.tree-card .initials{width:38px;height:38px;flex-shrink:0;font-size:16px}.card-info{min-width:0;flex:1}.person-name-button{padding:0;text-align:left;display:block;width:100%;font:17px/1.2 var(--serif);overflow-wrap:anywhere}.person-name-button:hover{text-decoration:underline;text-underline-offset:3px}.card-years{font-size:10px;letter-spacing:.3px;margin-top:6px;color:#899084}.card-place{font-size:9px;color:#929789;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;max-width:145px}.card-expand{position:absolute;right:-12px;top:43px;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:50%;font-size:12px;box-shadow:0 2px 7px #102c300a}.card-expand:hover{background:var(--gold-light)}.card-number{position:absolute;right:10px;top:5px;font-size:7px;opacity:.45}.generation-label{position:absolute;font-size:9px;letter-spacing:1px;color:#929c8e;text-align:center;width:230px}.tree-line{stroke:#a3b39d;stroke-width:1.5;fill:none}.tree-line.mother-line{stroke:#c7b894}.tree-line.branch-enter{stroke-dasharray:900;animation:draw-line 1.2s ease both}.canvas-note{position:absolute;left:22px;bottom:20px;font-size:9px;color:#8b9387;display:flex;align-items:center;gap:8px;pointer-events:none}.tree-controls{position:absolute;bottom:16px;right:18px;display:flex;align-items:center;border:1px solid var(--line);background:var(--white);border-radius:4px;box-shadow:0 3px 12px #183b3e07}.tree-controls button{width:34px;height:34px;font-size:19px;display:grid;place-items:center}.tree-controls button svg{width:15px;height:15px}.tree-controls output{font-size:9px;color:var(--muted);width:40px;text-align:center}.tree-controls button:last-child{border-left:1px solid var(--line)}.explorer-footer{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;font-size:10px;color:var(--muted)}.explorer-footer button{font-size:10px;color:var(--ink)}.explorer-footer button span{color:#a38656;margin-left:12px}.tree-footnote{display:flex;justify-content:space-between;font-size:9px;color:#969b8f;margin-top:15px;gap:20px}.tree-footnote>span:first-child{display:flex;align-items:center;gap:7px}.legend{display:inline-block;width:14px;height:2px}.legend.father{background:#8a9e8a}.legend.mother{background:#bda880;margin-left:15px}.load-status{font-size:11px;color:#927346;margin:18px 0 0}.load-status:empty{display:none}.register-filters{display:flex;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}.register-filters>label:first-child{display:flex;align-items:center;gap:10px;flex:1}.register-filters input{border:0;background:transparent;min-width:0;width:100%;font-size:13px;outline-offset:2px}.register-filters svg{width:18px;height:18px;color:var(--muted)}.gen-filter{font-size:11px;display:flex;align-items:center;gap:8px}.register-results{padding:0 24px;min-height:400px;max-height:660px;overflow:auto}.register-row{display:flex;align-items:center;gap:15px;padding:17px 3px;border-bottom:1px solid #ededdf;width:100%;text-align:left}.register-row:hover{background:#f5f4ea}.register-row>div:nth-child(2){flex:1}.register-row h3{font-size:17px;line-height:1.3;margin:0 0 3px}.register-row p{font-size:10px;color:var(--muted);margin:0}.register-row .row-meta{font-size:9px;color:var(--muted);text-align:right}.register-pagination{display:flex;justify-content:space-between;align-items:center;padding:17px 24px;font-size:10px;color:var(--muted)}.register-pagination button{padding:9px 16px;font-size:10px}.empty{padding:30px;font-size:13px;color:var(--muted)}
.places-section{padding:80px 5.5%;background:var(--deep);color:var(--paper);position:relative;overflow:hidden}.places-section:before{content:'';position:absolute;width:700px;height:700px;border:1px solid #fffdf906;border-radius:50%;right:-340px;top:120px;pointer-events:none;box-shadow:0 0 0 100px #fffdf903,0 0 0 200px #fffdf902}.places-section .section-heading h2 em{color:#c3b891}.places-section .section-heading>p{color:#b4c1b4a1}.atlas-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:32px;position:relative}.map-panel{background:#17383d;border:1px solid #d4decb20;border-radius:5px;overflow:hidden}.map-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid #d4decb10;font-size:8px;letter-spacing:1.5px;color:#c6d0bc}.map-header>span{display:flex;align-items:center;gap:8px}.map-header svg{width:13px;height:13px;color:var(--gold)}.map-header>div{display:flex;gap:5px}.map-header button{width:27px;height:27px;border:1px solid #dde4d326;border-radius:3px;font-size:14px}.map-viewport{height:490px;position:relative;overflow:hidden;touch-action:none;cursor:grab;background:radial-gradient(ellipse at 50% 30%,#22474b,#12333b)}#atlas{width:100%;height:100%;position:absolute;inset:0;stroke:none;overflow:hidden}.map-land{fill:#33524d;stroke:#769082;stroke-width:.65;stroke-linejoin:round}.map-grid{stroke:#e2e6c416;stroke-width:.6;fill:none}.map-point{cursor:pointer;outline:none}.map-point .halo{fill:#dcc18e;opacity:.07}.map-point .point{fill:#d9be86;stroke:#e8d8aa;stroke-width:1.2}.map-point:hover .point,.map-point:focus-visible .point,.map-point.selected .point{fill:#fff3c9;stroke-width:2}.map-point.selected .halo{opacity:.24}.map-label{fill:#e9e6d3;font:9px var(--sans);paint-order:stroke;stroke:#15383c;stroke-width:3px;pointer-events:none}.map-region-label{fill:#c8d2b52b;font:11px var(--sans);letter-spacing:4px;pointer-events:none}.map-compass{position:absolute;right:20px;top:15px;display:flex;flex-direction:column;text-align:center;font:29px var(--serif);color:#d5c38e80;pointer-events:none}.map-compass span{font:8px var(--sans);letter-spacing:2px}.map-water-label{position:absolute;left:6%;top:30%;font:italic 11px var(--serif);letter-spacing:4px;color:#c4d2c239;transform:rotate(-35deg);pointer-events:none}.map-caption{display:flex;justify-content:space-between;gap:10px;padding:12px 18px;font-size:8px;color:#b5c2b585}.map-caption i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:7px}.place-detail{padding:18px 0 0;min-width:0}.place-detail .eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:20px}.place-detail h3{font-size:35px;line-height:1.25;margin:0 0 22px;letter-spacing:-1px}.place-detail h3 em{color:var(--gold-light)}.place-detail>p:not(.eyebrow){font-size:11px;color:#c4cfbc99;line-height:1.9}.place-list{max-height:235px;overflow:auto;scrollbar-width:thin;scrollbar-color:#7d8d7850 transparent;margin-top:25px}.place-list button{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;text-align:left;padding:11px 0;border-top:1px solid #d4decb19;font-size:12px}.place-list button span{font-size:9px;color:#b4c0ae70}.place-list button:hover{color:var(--gold-light)}.atlas-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:20px;font-size:9px;color:#bac6b389}.atlas-bottom p{margin:0}.text-button{font-size:10px;padding:0;color:var(--gold-light);text-align:left}.text-button span{margin-left:12px}.place-persons{max-height:270px;overflow:auto;margin-top:15px}.place-persons button{width:100%;text-align:left;border-top:1px solid #d4decb1a;padding:11px 0;font:16px/1.3 var(--serif)}.place-persons small{display:block;font:9px var(--sans);color:#c8d1bc88;margin-top:5px}.place-back{color:var(--gold-light);font-size:10px;padding:0;margin-bottom:22px}.place-precision{border-left:1px solid var(--gold);padding-left:12px;font-size:10px!important}.place-tally{font:26px var(--serif);color:var(--gold-light);display:block;margin-bottom:15px}
.sources-section{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-top:100px;padding-bottom:105px}.source-intro{max-width:450px;margin-left:7%}.source-intro h2{margin-bottom:25px}.source-intro h2 em{color:#8a957e}.source-intro>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9;max-width:390px}.source-intro .button{margin-top:9px}.source-intro .source-caveat{font-size:9px!important;max-width:340px!important;margin-top:22px}.archive-art{position:relative;height:380px;max-width:430px;width:100%;margin:auto}.paper{position:absolute;width:260px;height:335px;background:#f5efdf;border:1px solid #dcd2b6;box-shadow:10px 20px 50px #183b3e0f;padding:30px;color:#79775b;left:18%;top:10px}.paper-back{transform:rotate(-11deg);background:#e8e4d6;top:2px;left:10%;font-size:8px;letter-spacing:1.5px}.paper-front{transform:rotate(6deg);padding:27px 33px}.paper-small{font-size:7px;letter-spacing:2px}.paper-leaf{position:absolute;top:23px;right:28px;width:23px;color:#a58c5e}.paper h3{font-size:28px;line-height:1.2;margin:30px 0 17px;letter-spacing:-.7px}.paper-rule{width:40px;height:1px;background:#b9a378;margin-bottom:15px}.paper p{font:12px/1.8 var(--serif);color:#91836b}.paper p i{font-size:11px;color:#b4a182}.paper-folio{position:absolute;bottom:26px;font-size:6px;letter-spacing:1.6px}.archive-seal{position:absolute;right:8%;bottom:39px;width:65px;height:65px;border:1px solid #aa8b5870;border-radius:50%;background:#b2956220;display:grid;place-items:center;transform:rotate(-13deg);box-shadow:0 0 0 5px #b295620b,0 0 0 6px #aa8b5820}.archive-seal svg{width:32px;height:32px;color:#a28859}.closing{padding:58px 20px 65px;text-align:center;border-top:1px solid var(--line);background:#eeeee4}.closing>svg{width:28px;height:28px;color:#a68b59;margin-bottom:17px}.closing p{font:32px/1.4 var(--serif);letter-spacing:-.6px;margin-bottom:23px}.closing p em{color:#8a957e}.closing a{font-size:10px}.closing a span{color:#a18553;margin-left:10px}.site-footer{padding:28px 5.5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.site-footer .brand{font-size:19px;gap:10px}.site-footer .brand svg{color:#a18553;width:20px;height:20px}.site-footer>span{font-size:7px;letter-spacing:1.5px;color:#8d9586}.site-footer button{font-size:9px;color:#8d9586}.site-footer button span{color:#a18553;margin-left:8px}
dialog{border:1px solid var(--line);padding:0;background:var(--white);color:var(--ink);border-radius:8px;max-width:calc(100vw - 28px);max-height:90dvh;box-shadow:0 30px 100px #071d3450;overflow:auto}dialog::backdrop{background:#09292cc2;backdrop-filter:blur(6px)}dialog[open]{animation:dialog-in .2s ease-out}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 28px}.dialog-heading .eyebrow{margin:0;font-size:9px}.dialog-heading h3{margin:9px 0 0;font-size:27px}.icon-button{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid #d4d9ca;background:#fffdf970;flex-shrink:0}.icon-button svg{width:15px;height:15px}.search-dialog{width:640px}.global-search{display:flex;gap:13px;align-items:center;padding:8px 28px 23px;border-bottom:1px solid var(--line)}.global-search svg{color:#a18b61}.global-search input{width:100%;min-width:0;border:0;background:transparent;font-size:17px;color:var(--ink)}.search-results{max-height:440px;overflow:auto;padding:0 24px}.search-results .register-row .initials{width:35px;height:35px;font-size:13px}.search-hint{font-size:9px;color:var(--muted);padding:18px 28px;margin:0;border-top:1px solid var(--line)}.person-dialog{width:580px}.person-top{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--gold-light);font-size:8px;letter-spacing:2px}.person-top .icon-button{border-color:#e1d5b73d;background:transparent;color:var(--paper)}.person-body{padding:34px}.person-body>.initials{width:58px;height:58px;font-size:22px;margin-bottom:20px}.person-body h2{font-size:36px;line-height:1.15;margin-bottom:15px;overflow-wrap:anywhere}.person-lifespan{font:15px var(--serif);color:#927f57;margin:0 0 26px}.person-events{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-block:1px solid var(--line);padding:22px 0;margin:0 0 22px}.person-events dt{font-size:8px;letter-spacing:1.8px;color:var(--muted);margin-bottom:8px}.person-events dd{margin:0;font-size:13px}.person-events small{display:block;font-size:10px;color:var(--muted);margin-top:6px;line-height:1.65}.person-relatives{display:flex;flex-direction:column;gap:7px;margin:18px 0 25px}.person-relatives>span{font-size:8px;letter-spacing:1.5px;color:var(--muted);margin-bottom:4px}.relative-button{padding:10px 13px;background:#f1f2e9;border:1px solid #e3e6d9;border-radius:3px;font:14px var(--serif);text-align:left}.relative-button small{float:right;font:8px var(--sans);color:var(--muted);padding-top:3px}.person-actions{display:flex;gap:8px;flex-wrap:wrap}.person-actions .button{padding:11px 15px;font-size:10px;gap:10px}.person-notes{margin:23px 0 0;border-left:2px solid var(--gold);padding:0 0 0 13px;font-size:10px;color:#8a815f}.person-notes p{margin-bottom:7px}.source-reference{font-size:9px;color:var(--muted);margin:22px 0 0}.source-dialog{width:760px}.source-nav{display:flex;justify-content:space-between;align-items:center;border-block:1px solid var(--line);padding:10px 24px;font-size:12px}.source-nav button{border:1px solid var(--line);width:35px;height:35px;border-radius:50%;font-size:18px}.source-help{padding:16px 28px;margin:0;font-size:10px;color:var(--muted)}#source-body{padding:0 28px 28px}.source-entry{padding:16px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.9}.source-entry.highlight{background:#f0e7d133;border-left:2px solid var(--gold);padding:16px 14px}.source-entry>button{display:block;font:17px var(--serif);margin-bottom:8px;padding:0;text-align:left}.source-entry p{margin:0;color:#7e8374}.source-review{font-size:9px;color:#a18553;display:block;margin-top:8px}.source-photo{display:block;width:100%;height:auto;border-radius:4px;margin-bottom:20px}.source-photo-link{font-size:10px;color:#94784c;margin-bottom:15px;display:inline-block}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);max-width:calc(100vw - 32px);border-radius:5px;background:var(--ink);color:var(--white);font-size:11px;padding:12px 20px;box-shadow:0 8px 30px #102c3030;z-index:100;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.visible{opacity:1;transform:translate(-50%,0)}.noscript{padding:30px;text-align:center;background:var(--gold-light)}.reveal.ready{opacity:0;transform:translateY(16px);transition:opacity .7s,transform .7s}.reveal.ready.visible{opacity:1;transform:none}.motion-off *, .motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-off .reveal.ready{opacity:1;transform:none}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes landscape-in{from{transform:scale(1.035);opacity:.5}to{transform:scale(1);opacity:1}}@keyframes drift{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes draw-line{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero-content{padding-left:max(8%,calc((100vw - 1450px)/2))}.section,.places-section{padding-inline:max(5.5%,calc((100vw - 1450px)/2))}.heritage-orbit{right:max(5.5%,calc((100vw - 1450px)/2))}}
@media(max-width:1100px){.heritage-orbit{right:0;width:440px;top:100px;opacity:.8}.hero-content{padding-left:6%}.hero h1{font-size:75px}.atlas-layout{grid-template-columns:minmax(0,1fr) 245px;gap:24px}.section-heading>p{max-width:280px}.site-header nav{gap:20px}.source-intro{margin-left:0}.sources-section{gap:30px}.stat-strip{padding-inline:6%}.stat-strip>p{margin-left:25px}.hero-bottom span:last-child{max-width:210px;text-align:right}}
@media(max-width:800px){.site-header{height:76px;padding-inline:5%}.site-header nav{gap:16px}.header-search span,kbd{display:none}.header-search{border:0;padding:8px}.brand{font-size:21px}.brand small{font-size:6px;letter-spacing:1.5px}.brand-mark{width:35px;height:40px}.hero{height:630px}.hero-content{padding-top:80px}.hero h1{font-size:70px}.heritage-orbit{right:-100px;width:390px;top:130px;opacity:.45;z-index:-1}.hero-person{display:none}.hero-shade{background:linear-gradient(90deg,#0b282ef0,#0d2c3270),linear-gradient(0deg,#0a262fc4,transparent 50%)}.stat-strip>p{display:none}.stat-strip>div{padding-left:24px}.stat-strip>div:last-of-type{border:0}.section,.places-section{padding:65px 5%}.section-heading{display:block}.section-heading>p{margin-top:18px;max-width:none}.section-heading>p br{display:none}.atlas-layout{grid-template-columns:1fr}.place-detail{padding:8px 4px 0}.place-detail h3 br{display:none}.place-detail h3{font-size:29px}.place-detail h3 em{display:block}.place-list{max-height:150px;display:grid;grid-template-columns:1fr 1fr;column-gap:25px;margin-top:20px}.place-persons{max-height:250px}.place-persons button{font-size:18px}.atlas-bottom{align-items:start}.atlas-bottom p{max-width:55%}.sources-section{padding-top:75px;padding-bottom:75px;gap:20px}.archive-art{transform:scale(.85);transform-origin:center}.source-intro h2{font-size:34px}.site-footer{flex-wrap:wrap;padding-block:24px}.site-footer>span{order:3;flex-basis:100%}.tree-footnote>span:last-child{max-width:200px;text-align:right}}
@media(max-width:560px){html{scroll-padding-top:15px}.site-header{height:72px;gap:10px}.site-header nav{gap:14px;font-size:10px}.site-header nav a:last-child{display:none}.brand{font-size:19px;gap:8px}.brand small{font-size:5px;letter-spacing:1.2px}.brand-mark{width:31px;height:36px}.brand-mark svg{width:23px;height:23px}.hero{height:640px;min-height:0}.hero-content{padding:70px 7% 0}.hero .eyebrow{font-size:8px;letter-spacing:1.8px}.hero h1{font-size:65px;letter-spacing:-2.7px}.hero-description{font-size:12px;max-width:285px;margin-top:30px}.hero-description br{display:none}.hero-art svg{width:150%;position:absolute;left:-35%;opacity:.8}.heritage-orbit{top:110px;right:-120px;width:400px;opacity:.28}.hero-bottom{font-size:6px;letter-spacing:1px;left:7%;right:7%;bottom:20px}.hero-bottom span:last-child{display:none}.hero .button{padding:14px 20px;font-size:11px;margin-top:6px}.hero-map-link{font-size:10px}.stat-strip{padding:24px 6%;gap:12px}.stat-strip>div{padding-left:12px}.stat-strip strong{font-size:29px}.stat-strip span{font-size:8px;letter-spacing:0}.section,.places-section{padding:54px 5%}.section-heading{margin-bottom:25px}h2{font-size:34px;letter-spacing:-1px}.section-heading h2 em{display:block}.section-heading>p{font-size:11px;line-height:1.85;margin-top:16px}.eyebrow{font-size:8px;letter-spacing:2px}.explorer-toolbar{padding:10px 12px;gap:10px}.view-tabs button{padding:8px 9px;font-size:9px;gap:5px}.view-tabs button svg{width:13px;height:13px}.search-trigger span{display:none}.search-trigger{padding:8px}.tree-context{padding:14px 12px;font-size:10px;align-items:center;gap:8px}.tree-context>div{gap:7px}.tree-context label{font-size:0}.tree-context select{font-size:9px;padding-right:5px;max-width:115px}.tree-context #tree-focus{max-width:160px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tree-viewport{height:460px}.tree-card{width:164px;height:122px;padding:15px 11px;display:block}.tree-card .initials{width:25px;height:25px;float:left;margin-right:7px;font-size:11px}.tree-card .card-info{padding-top:1px}.person-name-button{font-size:15px;min-height:36px;line-height:1.2}.card-years{font-size:9px;clear:both;padding-top:4px}.card-place{font-size:8px;max-width:132px}.card-expand{top:auto;right:calc(50% - 12px);bottom:-12px}.card-number{font-size:6px}.generation-label{width:164px;font-size:8px}.canvas-note{left:12px;bottom:61px;font-size:7px}.tree-controls{bottom:13px;right:13px}.explorer-footer{padding:13px 12px;font-size:8px;gap:8px}.explorer-footer button{font-size:8px}.explorer-footer button span{margin-left:5px}.tree-footnote{font-size:8px;gap:15px}.tree-footnote>span:last-child{max-width:160px}.register-filters{padding:16px 12px;gap:10px;flex-wrap:wrap}.register-filters input{font-size:12px}.gen-filter{width:100%;font-size:9px}.register-results{padding:0 12px;max-height:500px}.register-row{padding:15px 0;gap:10px}.register-row .initials{width:32px;height:32px;font-size:12px;flex-shrink:0}.register-row h3{font-size:15px}.register-row .row-meta{font-size:8px}.register-row p{font-size:9px}.register-pagination{padding:15px 12px}.map-viewport{height:420px}.map-caption{font-size:6px;padding:12px}.map-header{padding:12px;font-size:7px}.map-label{font-size:10px}.atlas-layout{gap:22px}.atlas-bottom{flex-direction:column;font-size:8px}.atlas-bottom p{max-width:none}.atlas-bottom .text-button{font-size:9px}.place-list{column-gap:16px}.sources-section{display:flex;flex-direction:column;gap:30px;padding-top:65px;padding-bottom:30px}.source-intro{max-width:100%;width:100%}.source-intro h2{font-size:36px}.source-intro>p:not(.eyebrow){font-size:11px}.archive-art{height:340px;transform:scale(.9);max-width:360px}.closing{padding:45px 20px}.closing p{font-size:27px}.site-footer{padding-inline:5%}.site-footer .brand{font-size:17px}.site-footer>span{font-size:6px;letter-spacing:1px}.site-footer button{font-size:8px}.dialog-heading{padding:20px}.global-search{padding:5px 20px 20px}.global-search input{font-size:14px}.search-results{padding:0 15px}.person-body{padding:25px}.person-body h2{font-size:30px}.person-events{gap:13px}.person-events dd{font-size:12px}.person-actions .button{font-size:9px}.source-entry{font-size:11px}.source-entry>button{font-size:16px}#source-body{padding:0 20px 20px}.source-help{padding:15px 20px}.source-nav{padding:10px 20px}.source-nav select{font-size:13px}}
@media(max-width:560px){.sources-section{overflow:hidden}}
@media(max-width:360px){.site-header nav{display:none}.hero h1{font-size:56px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.ready{opacity:1;transform:none}}
.family-intro{padding:30px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,#f1f2e8,var(--white))}.family-intro .eyebrow{font-size:8px;margin-bottom:8px}.family-intro h3{font-size:30px;margin-bottom:6px}.family-intro p:last-child{font-size:11px;color:var(--muted);margin:0}.family-intro .button{white-space:nowrap}.family-chart{position:relative;padding:36px 26px 28px;background:radial-gradient(ellipse at top,#e9edde6b,transparent 65%)}.family-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.family-line{fill:none;stroke:#a5b19d;stroke-width:1.5;stroke-linejoin:round}.family-line.partner{stroke:#b89d6d;stroke-dasharray:4 4}.family-parents{display:grid;grid-template-columns:1fr 1fr;gap:34px;max-width:490px;margin:auto}.family-branches{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,3fr);gap:28px;margin-top:72px}.family-branch{min-width:0}.family-branch h4{font:9px var(--sans);letter-spacing:1.7px;text-transform:uppercase;text-align:center;color:#8d947d;margin:0 0 15px;position:relative;z-index:1}.family-owner{display:grid;grid-template-columns:1fr;min-height:220px;gap:16px;align-items:start}.family-owner.single{max-width:218px;margin:auto}.family-owner.with-partner{grid-template-columns:1fr 1fr}.family-card{position:relative;z-index:1;background:var(--white);border:1px solid #d9ded3;border-radius:6px;box-shadow:0 5px 18px #173a3b08;overflow:hidden;min-width:0}.family-card.featured{background:var(--ink);color:var(--white);border-color:var(--ink);box-shadow:0 8px 30px #183b3e25}.family-person{padding:20px 12px 16px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:185px}.family-person:hover strong{text-decoration:underline;text-underline-offset:3px}.family-role{font:7px var(--sans);letter-spacing:1.6px;color:#9a9c8e;margin-bottom:13px}.family-person .initials{width:37px;height:37px;font-size:16px;margin-bottom:12px}.family-person strong{font:18px/1.18 var(--serif);overflow-wrap:anywhere;max-width:100%}.family-date{font-size:9px;color:var(--muted);margin-top:11px}.family-residence{font-size:10px;color:#7b8b77;display:flex;align-items:center;gap:5px;margin-top:9px}.family-residence svg{width:12px;height:12px}.family-card.featured .family-date,.family-card.featured .family-role{color:#d1ddc8a8}.family-card.featured .initials{background:#d8c18d16;color:var(--gold-light)}.family-branch-link{display:block;width:100%;border-top:1px solid #9da38e26;padding:10px 6px;font-size:9px;color:#8c947e}.family-card.featured .family-branch-link{color:var(--gold-light)}.family-children{position:relative;display:grid;grid-template-columns:repeat(var(--child-count),minmax(0,1fr));gap:14px;margin-top:66px;align-items:start}.family-children-label{position:absolute;top:-31px;left:0;right:0;font-size:8px;letter-spacing:1px;text-align:center;color:#9a947f;margin:0;z-index:1;background:var(--white)}.family-children .family-person{min-height:190px}.family-source-note{font-size:9px;color:#8b9384;border-top:1px solid var(--line);margin:0;padding:17px 26px;text-align:center}.relationship-badge{display:inline-block;font:10px var(--sans);margin-left:12px;padding:4px 8px;border:1px solid var(--line);border-radius:20px;color:#8d947d}.map-filters{display:flex;gap:8px;flex-wrap:wrap;margin:-10px 0 22px}.map-filters button{border:1px solid #c6cbb02d;border-radius:30px;padding:9px 16px;font-size:11px;color:#bcc7b2;transition:background .2s}.map-filters button.active{background:#dae6ce15;color:#eef2df;border-color:#c6cbb070}.map-caption .current-key{background:#b7d6cf;box-shadow:0 0 8px #b7d6cf70;margin-left:14px}.map-point.current .point{fill:#c1e1d7;stroke:#d2e9df}.map-point.current .halo{fill:#b9dece28}.map-point.current .map-label{fill:#d7e7db}.tree-card.compact{width:220px;height:30px;padding:5px 10px;border-radius:3px;display:flex;align-items:center}.tree-card.compact .initials,.tree-card.compact .card-number,.tree-card.compact .card-years,.tree-card.compact .card-place{display:none}.tree-card.compact .card-info{width:100%;padding:0;min-width:0}.tree-card.compact .person-name-button{font:12px/18px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:0}.tree-card.compact .card-expand{top:6px;right:-9px;bottom:auto;width:18px;height:18px;font-size:10px}.tree-card.compact.root .person-name-button{font-weight:600}
@media(max-width:1200px){.family-lines{display:none}.family-branches{grid-template-columns:1fr;max-width:660px;margin:38px auto 0;gap:48px}.family-branch{padding:28px 18px 22px;border:1px solid var(--line);border-radius:8px;background:#f3f4ec55}.family-branch h4{font-size:10px;margin-bottom:24px}.family-owner{min-height:0}.family-owner.with-partner{max-width:470px;margin:auto}.family-children{margin-top:60px}.family-children-label{background:transparent}.family-parents{position:relative}.family-parents:after{content:'';position:absolute;width:28px;height:1px;background:#b3baa4;top:50%;left:calc(50% - 14px)}.family-intro{padding:25px;align-items:flex-start}.family-intro h3{font-size:27px}.family-source-note{font-size:8px}}
@media(max-width:560px){.family-intro{display:block;padding:22px 17px}.family-intro h3{font-size:26px}.family-intro .button{margin-top:18px;font-size:10px;padding:11px 14px}.family-intro p:last-child{font-size:10px}.family-chart{padding:26px 12px 22px}.family-parents{gap:20px}.family-parents:after{width:16px;left:calc(50% - 8px)}.family-branches{gap:26px;margin-top:26px}.family-branch{padding:20px 10px}.family-card .family-person{padding:17px 8px 13px;min-height:180px}.family-person strong{font-size:15px;overflow-wrap:normal}.family-role{font-size:6px;letter-spacing:1.1px}.family-person .initials{width:30px;height:30px;font-size:13px}.family-date{font-size:8px}.family-residence{font-size:9px}.family-branch-link{font-size:8px}.family-owner.with-partner{gap:12px}.family-children{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:52px}.family-children[style*="--child-count:1"]{grid-template-columns:1fr;max-width:205px;margin-inline:auto}.family-children[style*="--child-count:3"]>.family-card:last-child{grid-column:1/-1;width:calc(50% - 6px);justify-self:center}.family-source-note{font-size:7px;padding:14px}.map-filters{gap:6px;margin-bottom:18px}.map-filters button{font-size:9px;padding:8px 10px}.view-tabs button{font-size:9px;padding:8px}.view-tabs button svg{display:none}.explorer-toolbar{gap:6px}.tree-context #tree-focus{max-width:125px}.tree-context select{max-width:132px}.tree-footnote>span:last-child{max-width:180px}.relationship-badge{font-size:9px}}
@media(max-width:360px){.family-person strong{font-size:14px}}
@media print{.site-header,.hero,.stat-strip,.tree-section,.places-section,.sources-section,.closing,.site-footer,dialog:not([open]){display:none}dialog[open]{position:static;display:block;max-height:none;width:100%;border:0;box-shadow:none}.close-dialog,.person-actions,.source-nav{display:none}body{background:#fff}dialog::backdrop{display:none}}

/* Touch gestures belong to the tree; avoid selection and oversized forced layers on iOS. */
.tree-viewport{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tree-viewport.dragging .branch-enter{animation:none;stroke-dasharray:none}

/* Labels and markers live in screen coordinates; only the geography scales. */
.map-viewport{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.map-viewport.dragging{cursor:grabbing}.map-viewport svg,.map-viewport text{-webkit-user-select:none;user-select:none}.map-label{font-size:12px;stroke-width:3px}.map-label.current-label{fill:#d7e7db}.map-label-leader{stroke:#b8c6ae88;stroke-width:.8;pointer-events:none}.map-point .halo{opacity:.08}.map-point.selected .halo{opacity:.2}.map-point.area .point{fill:#173b3e;stroke:#dcc18e;stroke-dasharray:2 2}.map-point.cluster .point{fill:#254b49;stroke:#ddc58e;stroke-width:1.4}.map-point.cluster.current .point{stroke:#c1e1d7}.map-point.cluster.selected .point{fill:#31564e;stroke:#fff3c9;stroke-width:2}.cluster-count{font:600 11px var(--sans);fill:#f4e7c7;stroke:none;pointer-events:none}.map-header output{font-size:9px;color:#d4d9c5;min-width:36px;text-align:center}.map-caption{flex-wrap:wrap;gap:8px}.map-caption .area-key{background:transparent;border:1px dashed #ddc58e;box-shadow:none}.cluster-place-list{display:block;max-height:330px}.cluster-place-list button{display:block;position:relative;padding-right:90px}.cluster-place-list button small{display:block;font-size:9px;color:#a8b8a2;margin-top:3px}.cluster-place-list button>span{position:absolute;right:0;top:13px;font-size:9px}
@media(max-width:560px){.map-caption{font-size:7px}.map-header output{font-size:8px;min-width:28px}.map-label{font-size:12px}.cluster-place-list{max-height:320px}}
