:root {
  --forest:#123b32; --forest-2:#24594c; --ink:#24312c; --muted:#68766e; --cream:#f4f0e6;
  --paper:#fffdf8; --sage:#dfeae2; --gold:#a96f27; --line:#d9e0da;
  --sans:"Aptos","Segoe UI Variable","Segoe UI",system-ui,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
  --shadow:0 20px 60px rgba(22,55,45,.12);
}
* { box-sizing:border-box; }
html { max-width:100%; overflow-x:clip; scroll-behavior:smooth; }
body { width:100%; max-width:100%; margin:0; overflow-x:clip; color:var(--ink); background:var(--cream); font-family:var(--sans); font-size:16px; line-height:1.65; text-rendering:optimizeLegibility; }
@supports not (overflow:clip) { html,body { overflow-x:hidden; } }
button,a { font:inherit; }
button { color:inherit; }
.hidden { display:none!important; }
.public-nav { height:74px; padding:0 clamp(20px,4vw,66px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; position:sticky; top:0; z-index:30; color:white; background:rgba(18,59,50,.97); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.1); }
.public-brand { display:flex; align-items:center; gap:12px; color:white; text-decoration:none; width:max-content; }
.public-brand-logo { width:56px; height:56px; display:block; flex:none; object-fit:contain; filter:drop-shadow(0 5px 10px rgba(0,0,0,.25)); }
.tree-mark { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; font-size:22px; }
.public-brand strong,.public-brand small { display:block; }
.public-brand strong { font:600 20px/1 var(--serif); letter-spacing:-.2px; }
.public-brand small { color:#bcd0c6; font-size:9px; margin-top:3px; text-transform:uppercase; letter-spacing:1.2px; }
.public-nav nav { display:flex; gap:3px; padding:3px; border-radius:30px; background:rgba(255,255,255,.07); }
.nav-link { min-height:36px; padding:6px 17px; border:0; border-radius:24px; color:#c9d8d0; background:transparent; cursor:pointer; }
.nav-link.active { color:var(--forest); background:#f8f5ec; font-weight:650; }
.public-note { justify-self:end; color:#a9c0b5; font-size:10px; letter-spacing:.8px; text-transform:uppercase; }

.public-hero { min-height:390px; padding:70px clamp(24px,6vw,110px); display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,520px) minmax(0,1fr); align-items:center; gap:clamp(28px,4vw,64px); color:white; background:var(--forest); position:relative; overflow:visible; }
.public-hero::before,.public-hero::after { content:""; position:absolute; border:1px solid rgba(207,225,215,.12); border-radius:50%; }
.public-hero::before { width:420px; height:420px; right:-120px; top:-180px; box-shadow:0 0 0 70px rgba(255,255,255,.018),0 0 0 140px rgba(255,255,255,.012); }
.public-hero::after { width:210px; height:210px; left:46%; bottom:-170px; }
.public-hero>* { min-width:0; }
.hero-copy { position:relative; z-index:1; max-width:670px; min-width:0; }
.kicker { display:block; color:#c29352; font-size:10px; font-weight:750; line-height:1.3; letter-spacing:1.8px; text-transform:uppercase; }
.hero-copy h1 { margin:10px 0 16px; font:500 clamp(44px,6vw,76px)/.95 var(--serif); letter-spacing:-2.2px; }
.hero-copy h1 em { color:#cbdcd2; font-weight:500; }
.hero-copy p { max-width:570px; margin:0; color:#bdd0c6; font-size:15px; line-height:1.65; }
.hero-search{position:relative;z-index:12;width:100%;max-width:520px;justify-self:center}.hero-search>label{display:block;margin:0 0 9px;color:#c9d9d1;font-size:10px;font-weight:700;letter-spacing:1.15px;text-transform:uppercase}.hero-search-control{height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 13px 0 17px;border:1px solid rgba(255,255,255,.24);border-radius:15px;background:#fffdf8;box-shadow:0 18px 45px rgba(4,24,19,.22);transition:border-color .2s,box-shadow .2s,transform .2s}.hero-search:focus-within .hero-search-control{border-color:#d5b47d;box-shadow:0 20px 52px rgba(4,24,19,.3),0 0 0 4px rgba(201,157,92,.13);transform:translateY(-1px)}.hero-search-control>span{color:var(--forest-2);font-size:25px;line-height:1}.hero-search-control input{width:100%;min-width:0;padding:0;border:0;outline:0;color:var(--ink);background:transparent;font:500 15px var(--sans)}.hero-search-control input::placeholder{color:#87928c;font-weight:400}.hero-search-control input::-webkit-search-cancel-button{display:none}.hero-search-control button{width:31px;height:31px;padding:0;border:0;border-radius:50%;color:#65746c;background:#edf1ed;cursor:pointer;font-size:19px}.hero-search-control button:hover,.hero-search-control button:focus-visible{color:var(--forest);background:var(--sage);outline:0}.hero-search-results{position:absolute;top:calc(100% + 9px);left:0;right:0;max-height:380px;overflow:auto;padding:7px;border:1px solid rgba(37,73,62,.15);border-radius:14px;color:var(--ink);background:#fffdf9;box-shadow:0 24px 60px rgba(3,22,17,.34);animation:heroResultsIn .17s ease-out}.hero-search-result{display:grid;grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;color:inherit;text-decoration:none}.hero-search-result:hover,.hero-search-result.active,.hero-search-result:focus-visible{background:var(--sage);outline:0}.hero-search-avatar{width:43px;height:43px;display:grid;place-items:center;overflow:hidden;border-radius:50%;color:var(--forest);background:#dce9e1;font:600 14px var(--serif)}.hero-search-avatar img{width:100%;height:100%;object-fit:cover}.hero-search-copy{min-width:0}.hero-search-copy strong,.hero-search-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-search-copy strong{font:600 14px var(--serif)}.hero-search-copy small{margin-top:2px;color:var(--muted);font-size:10px}.hero-search-open{color:var(--gold);font-size:18px}.hero-search-empty{margin:0;padding:17px 13px;color:var(--muted);font-size:12px;text-align:center}@keyframes heroResultsIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.hero-search-application{margin-top:2px;padding:13px 12px;border:1px solid #d8c69f;background:linear-gradient(135deg,#f7f1e3,#edf3ed)}.hero-search-application:hover,.hero-search-application.active,.hero-search-application:focus-visible{border-color:#c49a57;background:#e4eee7;box-shadow:0 5px 16px rgba(31,72,59,.1)}.hero-search-application-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--forest-2);font-size:22px}.hero-search-application .hero-search-copy strong{color:var(--forest);font:700 14px var(--sans)}.hero-search-application .hero-search-copy small{overflow:visible;white-space:normal;line-height:1.45}.hero-search-application .hero-search-open{font-size:20px}
.hero-aside { position:relative; z-index:1; min-width:min(370px,100%); display:grid; justify-self:end; justify-items:center; gap:18px; }
.hero-family-logo { width:clamp(150px,16vw,210px); height:auto; display:block; object-fit:contain; filter:drop-shadow(0 18px 28px rgba(0,0,0,.3)); }
.hero-facts { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); min-width:min(370px,100%); max-width:100%; border-top:1px solid rgba(255,255,255,.22); border-bottom:1px solid rgba(255,255,255,.22); }
.hero-facts div { padding:23px 20px; border-right:1px solid rgba(255,255,255,.16); }
.hero-facts div:last-child { border-right:0; }
.hero-facts strong { display:block; font:500 35px/1 var(--serif); }
.hero-facts span { display:block; margin-top:7px; color:#b9cbc2; font-size:10px; letter-spacing:.7px; text-transform:uppercase; }

.public-section { min-height:calc(100vh - 74px); padding:68px clamp(20px,5vw,76px) 90px; }
.section-heading { max-width:1320px; margin:0 auto 38px; display:flex; justify-content:space-between; align-items:end; gap:35px; }
.section-heading h2 { margin:6px 0 5px; font:500 clamp(31px,4vw,48px)/1.05 var(--serif); letter-spacing:-1px; color:var(--forest); }
.section-heading p { margin:0; color:var(--muted); font-size:13px; }
.tree-legend { display:flex; gap:18px; color:var(--muted); font-size:10px; white-space:nowrap; }
.tree-legend span { display:flex; align-items:center; gap:7px; }
.tree-legend .line { width:26px; height:0; display:inline-block; border-top:2px solid #74877d; }
.tree-legend .line.dashed { border-color:#9a819d; border-top-style:dashed; }
.public-tree-frame { position:relative; }
.public-tree-shell { width:100%; min-height:520px; overflow:auto; position:relative; border:1px solid rgba(54,82,70,.11); border-radius:22px; background-color:#eeece4; background-image:radial-gradient(rgba(42,74,63,.13) .8px,transparent .8px); background-size:22px 22px; box-shadow:inset 0 1px rgba(255,255,255,.7); scrollbar-width:none; -ms-overflow-style:none; }
.public-tree-shell::-webkit-scrollbar { width:0; height:0; display:none; }
.public-tree-shell:not(.compact-mode){cursor:grab}.public-tree-shell.tree-panning{cursor:grabbing;user-select:none}.public-tree-shell.tree-panning *{cursor:grabbing!important;user-select:none}
@media(min-width:720px){.public-tree-shell:not(.compact-mode){height:clamp(900px,120vh,1400px);max-height:1400px;overscroll-behavior:contain}}
.public-tree-stage { position:relative; min-width:100%; min-height:520px; }
.public-tree-canvas { position:absolute; left:0; top:0; transform-origin:0 0; will-change:transform; }
.public-zoom-controls { position:sticky; z-index:20; top:88px; width:max-content; margin:14px 14px -62px auto; display:flex; align-items:center; gap:4px; padding:5px; border:1px solid rgba(54,82,70,.15); border-radius:13px; background:rgba(255,253,248,.94); box-shadow:0 7px 20px rgba(29,55,46,.13); backdrop-filter:blur(8px); }
.public-zoom-controls button { width:36px; height:36px; padding:0; border:0; border-radius:8px; color:var(--forest); background:transparent; cursor:pointer; font-size:18px; line-height:1; }
.public-zoom-controls button:hover,.public-zoom-controls button:focus-visible { background:var(--sage); outline:none; }
.public-zoom-controls button:disabled { opacity:.32; cursor:not-allowed; }
.public-zoom-controls button[data-tooltip] { position:relative; }
.public-zoom-controls button[data-tooltip]::before,.public-zoom-controls button[data-tooltip]::after { position:absolute; z-index:40; left:50%; pointer-events:none; opacity:0; visibility:hidden; }
.public-zoom-controls button[data-tooltip]::before { content:""; top:calc(100% + 4px); width:8px; height:8px; background:#173d34; transform:translateX(-50%) rotate(45deg); }
.public-zoom-controls button[data-tooltip]::after { content:attr(data-tooltip); top:calc(100% + 8px); width:max-content; max-width:220px; padding:6px 9px; border-radius:6px; color:#fff; background:#173d34; box-shadow:0 5px 15px rgba(12,32,27,.22); font:600 11px/1.25 var(--sans); white-space:nowrap; transform:translateX(-50%); }
.public-zoom-controls button[data-tooltip]:hover::before,.public-zoom-controls button[data-tooltip]:hover::after,.public-zoom-controls button[data-tooltip]:focus-visible::before,.public-zoom-controls button[data-tooltip]:focus-visible::after { opacity:1; visibility:visible; }
.public-zoom-controls button:last-child::before,.public-zoom-controls button:last-child::after { left:auto; right:0; transform:none; }
.public-zoom-controls output { min-width:48px; color:var(--muted); font-size:10px; font-weight:700; text-align:center; }
.public-layout-controls{display:flex;align-items:center;gap:5px}.public-zoom-controls .public-layout-button{display:grid;place-items:center;flex:none;color:#61726a}.public-zoom-controls .public-layout-button svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.public-zoom-controls .public-layout-button.active{color:white;background:var(--forest-2)}.public-zoom-controls .public-layout-button.active:hover,.public-zoom-controls .public-layout-button.active:focus-visible{background:var(--forest)}.public-zoom-divider{width:1px;height:26px;margin:0 6px;background:var(--line)}
.public-fullscreen-button svg { width:19px; height:19px; display:block; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.public-fullscreen-button .fullscreen-exit,.public-fullscreen-button.is-fullscreen .fullscreen-enter { display:none; }
.public-fullscreen-button.is-fullscreen .fullscreen-exit { display:block; }
.public-tree-frame:fullscreen { width:100vw; height:100vh; padding:0; overflow:hidden; background:#eeece4; }
.public-tree-frame:fullscreen .public-tree-shell { width:100vw; height:100vh; min-height:100vh; max-height:none; border:0; border-radius:0; }
.public-tree-frame:fullscreen .public-zoom-controls { position:absolute; top:14px; right:14px; margin:0; }
#publicEdges { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:visible; }
.public-tree { min-width:100%; min-height:520px; position:relative; z-index:2; }
.public-edge { fill:none; stroke:#74877d; stroke-width:1.7; }
.public-edge.partner { stroke:#917c97; stroke-dasharray:5 5; }
.public-edge.widowed { stroke:#7c7482; stroke-dasharray:2 4; }
.public-edge.classic-family{stroke:#617b6f;stroke-width:1.9}
.public-person { position:absolute; width:230px; min-height:110px; padding:15px; border:1px solid var(--line); border-top:3px solid #7e9589; border-radius:14px; background:rgba(255,253,248,.98); box-shadow:0 8px 23px rgba(29,55,46,.09); cursor:pointer; transition:.18s; }
.public-person { color:inherit; text-decoration:none; }
.public-person:hover { transform:translateY(-3px); border-color:#a8baaf; box-shadow:0 15px 30px rgba(29,55,46,.14); }
.public-person[data-gender="male"] { border-top-color:#6687a8; }
.public-person[data-gender="female"] { border-top-color:#a56f83; }
.public-person[data-gender="diverse"] { border-top-color:#8879a7; }
.public-person-top { display:grid; grid-template-columns:46px 1fr; gap:11px; align-items:center; }
.public-avatar { width:46px; height:46px; border-radius:50%; object-fit:cover; display:grid; place-items:center; background:var(--sage); color:var(--forest); font:600 16px var(--serif); }
.public-person h3 { margin:0; font:600 16px/1.12 var(--serif); letter-spacing:-.1px; }
.public-person .life { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.35; }
.person-event-count { display:inline-block; margin-top:10px; padding:3px 8px; border-radius:14px; color:var(--forest-2); background:#edf3ef; font-size:9px; }
.public-tree-shell.compact-mode { min-height:0; overflow:auto; border:0; background:transparent; box-shadow:none; }
.public-tree-shell.compact-mode .public-tree-stage { min-height:0; }
.public-tree-shell.compact-mode #publicEdges { display:none; }
.public-tree.compact-tree { width:100%; min-height:0; display:grid; gap:0; position:relative; }
.compact-generation { position:relative; display:grid; grid-template-columns:112px minmax(0,1fr); gap:20px; padding:0 0 35px; }
.compact-generation:not(:last-child)::after { content:""; position:absolute; left:55px; top:42px; bottom:-5px; width:1px; background:#bdcbc2; }
.compact-generation-title { position:relative; z-index:1; padding-top:12px; text-align:center; }
.compact-generation-title span { width:31px; height:31px; margin:0 auto; display:grid; place-items:center; border:1px solid #b8c9be; border-radius:50%; color:var(--gold); background:var(--cream); font:600 11px var(--serif); }
.compact-generation-title strong { width:max-content; margin:7px auto 0; padding:5px 2px; display:block; position:relative; color:var(--muted); background:var(--cream); font-size:9px; line-height:1.2; text-transform:uppercase; letter-spacing:.7px; writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; }
.compact-generation-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:12px; }
.compact-tree .public-person { position:relative; inset:auto; width:100%; min-height:108px; }

.public-chronicle { position:relative; max-width:950px; margin:0 auto; padding:5px 0; }
.public-chronicle::before { content:""; position:absolute; left:155px; top:9px; bottom:9px; width:1px; background:#c2d0c7; }
.public-event { display:grid; grid-template-columns:125px 60px minmax(0,1fr); align-items:start; margin:0 0 15px; }
.public-event-date { text-align:right; padding-top:19px; }
.public-event-date strong { display:block; color:var(--gold); font:600 27px/1 var(--serif); }
.public-event-date span { color:var(--muted); font-size:9px; }
.public-event-marker { position:relative; min-height:100px; }
.public-event-marker::before { content:""; position:absolute; left:26px; top:24px; width:10px; height:10px; border-radius:50%; border:3px solid var(--forest-2); background:var(--cream); box-shadow:0 0 0 4px var(--cream); }
.public-event-card { padding:17px 19px; min-height:90px; border:1px solid var(--line); border-radius:14px; background:var(--paper); box-shadow:0 6px 20px rgba(25,50,42,.06); cursor:pointer; }
.public-event-card .kind { color:var(--gold); font-size:9px; font-weight:750; text-transform:uppercase; letter-spacing:1.3px; }
.public-event-card h3 { margin:4px 0 0; font:600 20px/1.15 var(--serif); }
.public-event-card p { margin:7px 0 0; color:var(--muted); font-size:12px; }
.public-event-card .person-chip { display:inline-block; margin-top:9px; padding:3px 8px; border-radius:14px; background:var(--sage); color:var(--forest-2); font-size:10px; }
.public-empty { padding:65px 20px; color:var(--muted); text-align:center; }
.public-directory { position:relative; padding:80px clamp(20px,6vw,96px) 95px; overflow:hidden; border-top:1px solid #d8d2c4; background:linear-gradient(145deg,#f8f5ed 0%,#f1ede2 100%); }
.public-directory::before { content:""; position:absolute; width:390px; height:390px; right:-190px; top:-210px; border:1px solid rgba(169,111,39,.13); border-radius:50%; box-shadow:0 0 0 60px rgba(169,111,39,.025),0 0 0 120px rgba(18,59,50,.018); pointer-events:none; }
.directory-heading { position:relative; max-width:1320px; margin:0 auto 36px; display:flex; justify-content:space-between; align-items:end; gap:30px; }
.directory-heading h2 { margin:8px 0 10px; color:var(--forest); font:500 clamp(34px,4.5vw,55px)/1.02 var(--serif); letter-spacing:-1.35px; }
.directory-heading p { max-width:620px; margin:0; color:var(--muted); font-size:14px; }
.directory-count { flex:none; min-width:108px; padding:12px 17px; display:flex; align-items:baseline; justify-content:center; gap:7px; border:1px solid rgba(169,111,39,.23); border-radius:30px; color:#76634a; background:rgba(255,253,248,.66); font-size:10px; text-transform:uppercase; letter-spacing:.8px; }
.directory-count strong { color:var(--gold); font:600 25px/1 var(--serif); }
.directory-grid { position:relative; max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); gap:16px; }
.directory-person { min-width:0; border:1px solid rgba(46,79,67,.13); border-radius:18px; background:rgba(255,253,248,.86); box-shadow:0 9px 30px rgba(30,53,44,.055); transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.directory-person:hover { transform:translateY(-4px); border-color:rgba(169,111,39,.36); box-shadow:0 18px 42px rgba(30,53,44,.11); }
.directory-person-link { height:100%; min-height:205px; padding:24px; display:grid; grid-template-columns:76px minmax(0,1fr); align-items:start; gap:18px; color:inherit; text-decoration:none; }
.directory-person-link:focus-visible { border-radius:17px; outline:3px solid rgba(169,111,39,.42); outline-offset:3px; }
.directory-avatar { width:76px; height:76px; display:grid; place-items:center; overflow:hidden; border:4px solid #f8f5ed; border-radius:50%; color:var(--forest); background:linear-gradient(145deg,#dce9e1,#cbded3); box-shadow:0 7px 19px rgba(28,68,55,.13); font:600 23px var(--serif); }
.directory-avatar img { width:100%; height:100%; display:block; object-fit:cover; }
.directory-person-copy { min-width:0; height:100%; display:flex; flex-direction:column; align-items:flex-start; }
.directory-eyebrow { margin:1px 0 5px; color:var(--gold); font-size:8px; font-weight:750; text-transform:uppercase; letter-spacing:1.15px; }
.directory-person h3 { margin:0; color:var(--forest); font:600 22px/1.08 var(--serif); letter-spacing:-.25px; overflow-wrap:anywhere; }
.directory-dates { margin-top:7px; display:block; color:#8f682e; font-size:10px; line-height:1.45; }
.directory-summary { margin-top:13px; display:-webkit-box; overflow:hidden; color:#65736b; font-size:11px; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.directory-summary.muted { color:#89928d; font-style:italic; }
.directory-open { margin-top:auto; padding-top:17px; color:var(--forest-2); font-size:10px; font-weight:700; letter-spacing:.15px; }
.directory-open b { display:inline-block; margin-left:5px; color:var(--gold); font-size:15px; transition:transform .2s ease; }
.directory-person:hover .directory-open b { transform:translateX(4px); }
.directory-note { position:relative; max-width:1320px; margin:24px auto 0; color:#7c817d; font-size:10px; text-align:right; }

body.story-open { overflow:hidden; }
.story-drawer { position:fixed; z-index:60; top:0; right:0; bottom:0; width:min(470px,94vw); max-height:100dvh; padding:38px; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y; background:var(--paper); box-shadow:-20px 0 70px rgba(14,38,31,.2); transform:translateX(105%); transition:transform .26s ease; }
.story-drawer.open { transform:translateX(0); }
.back-to-top{--scroll-progress:0deg;position:fixed;z-index:48;right:clamp(16px,2.6vw,38px);bottom:clamp(16px,2.6vw,34px);width:52px;height:52px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;color:var(--forest);background:conic-gradient(var(--gold) var(--scroll-progress),rgba(255,255,255,.3) 0);box-shadow:0 10px 28px rgba(10,35,28,.25);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px) scale(.9);transition:opacity .22s,visibility .22s,transform .22s}.back-to-top::before{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--paper)}.back-to-top span{position:relative;z-index:1;font-size:22px;font-weight:700;line-height:1}.back-to-top.visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover,.back-to-top:focus-visible{transform:translateY(-3px);outline:3px solid rgba(255,255,255,.45);outline-offset:3px}.back-to-top:active{transform:translateY(0) scale(.96)}
.drawer-backdrop { position:fixed; z-index:50; inset:0; background:rgba(13,35,29,.42); opacity:0; pointer-events:none; transition:.2s; backdrop-filter:blur(2px); }
.drawer-backdrop.open { opacity:1; pointer-events:auto; }
.story-close { position:absolute; right:22px; top:20px; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:var(--paper); cursor:pointer; font-size:21px; }
.story-portrait { width:105px; height:105px; margin:17px 0 22px; border-radius:50%; object-fit:cover; display:grid; place-items:center; background:var(--sage); color:var(--forest); font:600 31px var(--serif); }
.story-drawer h2 { margin:5px 0 7px; font:600 34px/1.05 var(--serif); letter-spacing:-.7px; }
.story-name-link { color:inherit; text-decoration:none; }
.story-name-link:hover,.story-name-link:focus-visible { color:var(--forest-2); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.story-life { color:var(--gold); font-size:12px; }
.story-data-note,.profile-data-note { padding:12px 14px; border:1px solid #ded4be; border-radius:10px; color:#695f50; background:#faf5e9; }
.story-data-note { margin-top:18px; }
.story-data-note strong,.profile-data-note strong { display:block; font:600 13px var(--serif); }
.story-data-note p,.profile-data-note p { margin:4px 0 0; color:#776c5b; font-size:11px; line-height:1.5; }
.story-section { margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
.story-section h3 { margin:0 0 10px; font:600 18px var(--serif); }
.story-section p { color:var(--muted); font-size:13px; white-space:pre-line; }
.story-family,.story-social { display:grid; gap:7px; }
.public-document-list{display:grid;gap:7px;margin-top:12px}.public-document-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;color:var(--forest-2);background:#f7f7f1;text-decoration:none}.public-document-list a:hover{background:var(--sage)}.public-document-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-document-list small{grid-column:1;color:var(--muted)}.public-document-list span{grid-column:2;grid-row:1/3;align-self:center;font-size:10px;font-weight:700}
.story-family-link,.story-social a { display:flex; justify-content:space-between; gap:10px; padding:9px 11px; border-radius:9px; color:var(--forest-2); background:#f3f3ec; font-size:12px; text-decoration:none; }
.story-family-link span { color:var(--muted); }
.story-family-link:hover,.story-social a:hover { background:var(--sage); }
.story-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.story-gallery img { width:100%; aspect-ratio:1; border-radius:10px; object-fit:cover; }
.gallery-lightbox-trigger { width:100%; padding:0; overflow:hidden; display:block; border:0; border-radius:10px; background:transparent; cursor:zoom-in; }
.gallery-lightbox-trigger:focus-visible { outline:3px solid rgba(194,147,82,.52); outline-offset:3px; }
.story-facts { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:22px; }
.story-fact { padding:11px; border-radius:10px; background:#f3f3ec; }
.story-fact small,.story-fact strong { display:block; }
.story-fact small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.8px; }
.story-fact strong { margin-top:3px; font-size:12px; }
.story-event { padding:8px 0 8px 13px; border-left:2px solid #bdcfc3; }
.story-event strong { display:block; font:600 14px var(--serif); }
.story-event small { color:var(--muted); font-size:10px; }
.site-footer { padding:28px clamp(20px,4vw,62px); display:grid; grid-template-columns:minmax(190px,1fr) auto minmax(280px,1fr); align-items:center; gap:28px; color:#aec5ba; background:var(--forest); font-size:11px; }
.site-footer .tree-mark.small { width:28px; height:28px; font-size:16px; }
.footer-brand { display:flex; align-items:center; gap:10px; }
.footer-brand p { margin:0; }
.footer-brand strong,.footer-brand span { display:block; }
.footer-brand strong { color:#f4f8f5; font:600 14px/1.2 var(--serif); }
.footer-brand span { margin-top:3px; color:#9eb8ac; font-size:9px; letter-spacing:.35px; text-transform:uppercase; }
.footer-credit { min-width:264px; padding:8px 13px 8px 9px; display:flex; align-items:center; justify-content:center; gap:11px; border:1px solid rgba(255,255,255,.13); border-radius:13px; color:#c8dad1; background:rgba(255,255,255,.055); text-decoration:none; line-height:1.35; transition:border-color .2s ease,background .2s ease,transform .2s ease; }
.footer-credit img { width:50px; height:43px; flex:none; object-fit:contain; padding:4px; border-radius:8px; background:rgba(255,255,255,.94); }
.footer-credit span { font-size:9px; letter-spacing:.15px; }
.footer-credit strong { display:block; margin-top:2px; color:white; font-size:11px; }
.footer-credit:hover,.footer-credit:focus-visible { transform:translateY(-2px); border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.09); outline:none; }
.footer-legal { justify-self:end; display:grid; grid-template-columns:repeat(2,minmax(116px,1fr)); gap:6px; }
.footer-legal-title { grid-column:1/-1; margin:0 3px 2px; color:#88a99a; font-size:8px; font-weight:750; letter-spacing:1.1px; text-transform:uppercase; }
.footer-legal a { min-height:30px; padding:6px 9px; display:flex; align-items:center; border:1px solid rgba(255,255,255,.09); border-radius:7px; color:#d5e2dc; background:rgba(255,255,255,.035); font-size:9px; line-height:1.25; text-decoration:none; transition:border-color .18s ease,background .18s ease,color .18s ease; }
.footer-legal a:hover,.footer-legal a:focus-visible { border-color:rgba(255,255,255,.22); color:white; background:rgba(255,255,255,.08); outline:none; }
.footer-family-logo { width:42px; height:42px; display:block; object-fit:contain; filter:drop-shadow(0 5px 10px rgba(0,0,0,.2)); }

.legal-page { min-height:100vh; display:flex; flex-direction:column; }
.legal-nav { min-height:74px; padding:8px clamp(20px,4vw,66px); display:flex; align-items:center; justify-content:space-between; gap:20px; color:white; background:var(--forest); }
.legal-back { color:#d5e2dc; font-size:11px; text-decoration:none; }
.legal-back:hover,.legal-back:focus-visible { color:white; text-decoration:underline; text-underline-offset:4px; }
.legal-shell { width:100%; flex:1; padding:64px clamp(20px,6vw,90px) 90px; }
.legal-document { max-width:920px; margin:0 auto; }
.legal-hero { margin-bottom:42px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.legal-hero h1 { max-width:840px; margin:9px 0 13px; color:var(--forest); font:500 clamp(38px,6vw,65px)/1.02 var(--serif); letter-spacing:-1.5px; }
.legal-hero p { max-width:700px; margin:0; color:var(--muted); font-size:15px; }
.legal-document section { margin-top:34px; }
.legal-document h2 { margin:0 0 11px; color:var(--forest); font:600 25px/1.18 var(--serif); }
.legal-document h3 { margin:24px 0 8px; color:var(--forest-2); font:600 18px/1.25 var(--serif); }
.legal-document p,.legal-document li,.legal-document address { color:#53625a; font-size:14px; line-height:1.75; }
.legal-document p { margin:8px 0; }
.legal-document ul { margin:10px 0; padding-left:22px; }
.legal-document li+li { margin-top:5px; }
.legal-document address { font-style:normal; }
.legal-document a { color:var(--forest-2); font-weight:650; text-underline-offset:3px; }
.legal-document mark { padding:1px 4px; border-radius:3px; color:#6c501f; background:#fff0bd; }
.legal-placeholder-note,.legal-placeholder,.legal-highlight { padding:17px 19px; border-radius:12px; }
.legal-placeholder-note { margin:0 0 38px; border:1px solid #dfc485; background:#fff7dc; }
.legal-placeholder-note strong { display:block; color:#6c501f; font:600 16px var(--serif); }
.legal-placeholder-note p { margin:4px 0 0; color:#725e38; font-size:12px; }
.legal-placeholder { margin-top:14px; border:1px solid #e2d5b8; color:#695f50; background:#faf5e9; font-size:13px; }
.legal-highlight { border:1px solid #bfd0c5; background:#edf4ef; }

.maintenance-page { min-height:100vh; display:grid; place-items:center; padding:24px; color:white; background:var(--forest); overflow:hidden; }
.maintenance-page::before,.maintenance-page::after { content:""; position:fixed; border:1px solid rgba(204,224,213,.12); border-radius:50%; pointer-events:none; }
.maintenance-page::before { width:520px; height:520px; right:-180px; top:-250px; box-shadow:0 0 0 85px rgba(255,255,255,.018),0 0 0 170px rgba(255,255,255,.012); }
.maintenance-page::after { width:260px; height:260px; left:-120px; bottom:-170px; }
.maintenance-card { position:relative; z-index:1; max-width:690px; text-align:center; }
.maintenance-mark { width:70px; height:70px; margin:0 auto 25px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.23); border-radius:50%; color:#d2e2d9; font-size:38px; }
.maintenance-card h1 { margin:9px 0 17px; font:500 clamp(40px,7vw,68px)/1 var(--serif); letter-spacing:-1.8px; }
.maintenance-card p { max-width:510px; margin:0 auto; color:#bdd0c6; font-size:14px; line-height:1.65; }
.maintenance-status { width:max-content; margin:30px auto 0; padding:9px 14px; display:flex; align-items:center; gap:9px; border:1px solid rgba(255,255,255,.15); border-radius:25px; color:#d6e4dc; background:rgba(255,255,255,.06); font-size:10px; text-transform:uppercase; letter-spacing:1px; }
.maintenance-status i { width:8px; height:8px; border-radius:50%; background:#d2a35e; box-shadow:0 0 0 4px rgba(210,163,94,.13); }

.person-page .public-hero,.person-page #treeView,.person-page #chronicleViewPublic { display:none!important; }
.not-found-page{min-height:calc(100vh - 74px);padding:64px clamp(20px,7vw,110px) 90px;background:linear-gradient(150deg,#f8f5ed,#eef2ec)}.not-found-hero{max-width:920px;margin:0 auto;text-align:center}.not-found-hero .profile-back{display:block;width:max-content;margin:0 auto 35px}.not-found-hero h1{max-width:760px;margin:10px auto 14px;color:var(--forest);font:500 clamp(42px,6vw,72px)/1 var(--serif);letter-spacing:-1.8px}.not-found-hero>p{max-width:680px;margin:0 auto;color:var(--muted);font-size:15px}.missing-search{position:relative;z-index:10;max-width:680px;margin:34px auto 0;text-align:left}.missing-search>label{display:block;margin:0 0 8px;color:var(--forest-2);font-size:10px;font-weight:750;letter-spacing:1.1px;text-transform:uppercase}.missing-search-control{height:60px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:0 14px 0 18px;border:1px solid #bdcbc2;border-radius:15px;background:white;box-shadow:0 17px 45px rgba(23,61,52,.12)}.missing-search:focus-within .missing-search-control{border-color:var(--gold);box-shadow:0 17px 45px rgba(23,61,52,.16),0 0 0 4px rgba(169,111,39,.11)}.missing-search-control>span{color:var(--forest-2);font-size:25px}.missing-search-control input{width:100%;min-width:0;padding:0;border:0;outline:0;color:var(--ink);background:transparent;font:500 16px var(--sans)}.missing-search-control button{width:31px;height:31px;padding:0;border:0;border-radius:50%;color:var(--muted);background:#edf1ed;cursor:pointer;font-size:19px}.missing-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:390px;overflow:auto;padding:7px;border:1px solid var(--line);border-radius:14px;background:white;box-shadow:0 23px 55px rgba(21,52,43,.22);animation:heroResultsIn .17s ease-out}.not-found-options{max-width:1100px;margin:64px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.not-found-options article{display:flex;min-width:0;min-height:245px;padding:25px;border:1px solid rgba(41,77,65,.13);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:0 10px 30px rgba(29,55,46,.06);flex-direction:column}.not-found-options article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:var(--gold);background:#f2e8d8;font:600 20px var(--serif)}.not-found-options h2{margin:18px 0 8px;color:var(--forest);font:600 22px var(--serif)}.not-found-options p{margin:0 0 20px;color:var(--muted);font-size:12px}.not-found-options a{margin-top:auto;color:var(--forest-2);font-size:12px;font-weight:750;text-decoration:none}.not-found-options a:hover{text-decoration:underline;text-underline-offset:4px}
.server-person-profile { min-height:calc(100vh - 74px); padding:55px clamp(24px,8vw,130px) 90px; background:var(--cream); }
.profile-back { display:inline-block; margin-bottom:35px; color:var(--forest-2); font-size:11px; font-weight:650; text-decoration:none; }
.profile-hero { display:grid; grid-template-columns:150px minmax(0,1fr); gap:30px; max-width:1050px; align-items:center; }
.profile-portrait { width:150px; height:150px; display:grid; place-items:center; object-fit:cover; border-radius:50%; border:7px solid var(--paper); background:var(--sage); box-shadow:var(--shadow); color:var(--forest); font:600 40px var(--serif); }
.public-avatar-wrap,.story-portrait-wrap { display:block; overflow:hidden; border-radius:50%; }
.public-avatar-wrap { width:46px; height:46px; }
.public-avatar-wrap .public-avatar { width:100%; height:100%; }
.story-portrait-wrap { width:105px; height:105px; margin:17px 0 22px; }
.story-portrait-wrap .story-portrait { width:100%; height:100%; margin:0; }
.dsgvo-portrait { filter:blur(13px) saturate(.45); transform:scale(1.28); pointer-events:none; user-select:none; }
.profile-portrait.dsgvo-portrait { filter:blur(18px) saturate(.4); transform:scale(1.22); }
.dsgvo-public-note { max-width:760px; margin:22px 0; padding:13px 15px; border:1px solid rgba(169,111,39,.28); border-radius:11px; color:#695f50; background:#faf5e9; }
.dsgvo-public-note strong { display:block; color:var(--forest); font:600 14px var(--serif); }
.dsgvo-public-note p { margin:4px 0 0; font-size:11px; line-height:1.5; }
.dsgvo-redacted { filter:blur(5px); opacity:.58; user-select:none; pointer-events:none; }
.dsgvo-placeholder { color:#66736b; letter-spacing:2px; }
.profile-portrait-mask { width:150px; height:150px; overflow:hidden; border-radius:50%; }
.profile-portrait-mask .profile-portrait { border-radius:0; }
.profile-hero h1 { margin:7px 0 9px; color:var(--forest); font:500 clamp(39px,6vw,70px)/.98 var(--serif); letter-spacing:-1.8px; }
.profile-hero p { color:var(--gold); font-size:12px; }
.profile-facts { max-width:1050px; margin:40px 0 0; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.profile-facts div { padding:17px 18px; border-right:1px solid var(--line); }
.profile-facts div:last-child { border-right:0; }
.profile-data-note { max-width:1050px; margin-top:24px; }
.profile-updated { max-width:1050px; margin:8px 0 0; color:var(--muted); font-size:9px; text-align:right; }
.profile-facts small,.profile-facts strong { display:block; }
.profile-facts small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:1px; }
.profile-facts strong { margin-top:4px; font-size:12px; }
.profile-columns { max-width:1050px; margin-top:50px; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr); gap:65px; }
.profile-columns h2 { margin:5px 0 15px; font:600 29px var(--serif); color:var(--forest); }
.profile-story { color:#53625a; font-size:17px; line-height:1.8; }
.profile-subsection { margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.profile-subsection h3 { margin:0 0 8px; font:600 18px var(--serif); color:var(--forest); }
.profile-subsection p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.profile-family-links,.profile-social { display:grid; gap:7px; }
.profile-family-link,.profile-social a { display:flex; justify-content:space-between; gap:12px; padding:9px 11px; border-radius:9px; color:var(--forest-2); background:rgba(255,255,255,.52); font-size:12px; text-decoration:none; }
.profile-family-link span { color:var(--muted); }
.profile-family-link:hover,.profile-social a:hover { background:var(--sage); }
.profile-gallery-section { max-width:1050px; margin-top:45px; }
.profile-gallery-section h2 { margin:5px 0 16px; color:var(--forest); font:600 29px var(--serif); }
.profile-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); gap:12px; }
.profile-gallery img { width:100%; aspect-ratio:4/3; border-radius:13px; object-fit:cover; box-shadow:var(--shadow); }
.profile-gallery .gallery-lightbox-trigger { border-radius:13px; }
.profile-gallery .gallery-lightbox-trigger:hover img,.story-gallery .gallery-lightbox-trigger:hover img { transform:scale(1.025); }
.profile-gallery img,.story-gallery img { display:block; transition:transform .2s ease; }

body.lightbox-open { overflow:hidden; }
.image-lightbox { position:fixed; z-index:120; inset:0; padding:42px 70px; display:flex; align-items:center; justify-content:center; color:white; background:rgba(8,18,15,.94); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease,visibility .2s ease; backdrop-filter:blur(8px); }
.image-lightbox.open { opacity:1; visibility:visible; pointer-events:auto; }
.image-lightbox figure { width:100%; height:100%; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.image-lightbox figure img { display:block; width:auto; height:auto; max-width:100%; max-height:calc(100vh - 115px); object-fit:contain; border-radius:4px; box-shadow:0 20px 70px rgba(0,0,0,.42); }
.image-lightbox figcaption { min-height:16px; color:#d5dfda; font-size:11px; text-align:center; }
.lightbox-close,.lightbox-nav { position:absolute; z-index:1; width:44px; height:44px; padding:0; display:grid; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; color:white; background:rgba(255,255,255,.08); cursor:pointer; }
.lightbox-close:hover,.lightbox-nav:hover,.lightbox-close:focus-visible,.lightbox-nav:focus-visible { background:rgba(255,255,255,.18); outline:2px solid rgba(255,255,255,.7); outline-offset:2px; }
.lightbox-close { top:20px; right:22px; font-size:25px; }
.lightbox-nav { top:50%; transform:translateY(-50%); font-size:34px; }
.lightbox-nav.previous { left:18px; }.lightbox-nav.next { right:18px; }
.profile-event { padding:11px 0 11px 16px; border-left:2px solid #b8cbbf; }
.profile-event-kind { display:block; margin-bottom:2px; color:var(--gold); font-size:8px; font-weight:750; text-transform:uppercase; letter-spacing:.8px; }
.profile-event time { display:block; color:var(--gold); font-size:9px; }
.profile-event strong { display:block; margin-top:2px; font:600 15px var(--serif); }
.profile-event p { margin:3px 0 0; color:var(--muted); font-size:11px; }

/* Lesbare Grundtypografie und sicher gerenderte Biografie-/Quellentexte */
.kicker,.public-note,.hero-search>label,.missing-search>label { font-size:11px; }
.hero-copy p,.not-found-hero>p,.legal-hero p { font-size:16px; }
.section-heading p,.directory-heading p { font-size:15px; }
.public-person .life,.directory-dates,.directory-note,.profile-updated,.profile-event time,.story-event small { font-size:11px; }
.person-event-count,.directory-eyebrow,.profile-facts small,.profile-event-kind,.story-fact small,.footer-legal-title { font-size:10px; }
.public-event-card p,.profile-facts strong,.profile-subsection p,.profile-family-link,.profile-social a,.story-family-link,.story-social a { font-size:13px; }
.directory-summary,.profile-event p,.story-data-note p,.profile-data-note p,.dsgvo-public-note p { font-size:12px; }
.directory-open,.tree-legend,.public-zoom-controls output { font-size:11px; }
.legal-back,.profile-back { font-size:13px; }
.legal-document p,.legal-document li,.legal-document address { font-size:16px; line-height:1.75; }
.site-footer { font-size:12px; }
.footer-brand span,.footer-credit span,.footer-legal a { font-size:11px; }
.footer-credit strong { font-size:12px; }
.rich-text p { margin:0 0 12px; color:inherit; font-size:inherit; line-height:inherit; white-space:normal; }
.rich-text p:last-child { margin-bottom:0; }
.rich-text ul,.rich-text ol { margin:10px 0 14px; padding-left:24px; }
.rich-text li+li { margin-top:5px; }
.rich-text strong { color:var(--ink); font-weight:700; }
.rich-text code { padding:2px 5px; border:1px solid #d5ddd7; border-radius:5px; color:#344c43; background:#eef2ed; font:500 .9em/1.4 ui-monospace,"SFMono-Regular",Consolas,monospace; }
.rich-text a { color:var(--forest-2); font-weight:650; overflow-wrap:anywhere; text-decoration-thickness:1px; text-underline-offset:3px; }
.rich-text a:hover,.rich-text a:focus-visible { color:#7d531f; }
.external-link-icon { display:inline-block; margin-left:5px; color:var(--gold); font-size:.82em; text-decoration:none; transition:transform .18s ease; }
.rich-text a:hover .external-link-icon,.rich-text a:focus-visible .external-link-icon { transform:translate(2px,-2px); }
.profile-sources .rich-text { color:var(--muted); font-size:14px; line-height:1.7; }

@media (max-width:1150px) and (min-width:901px){.public-hero{grid-template-columns:minmax(0,1fr) minmax(290px,.72fr);gap:35px}.hero-search{grid-column:1/-1;grid-row:2;max-width:680px;justify-self:start}.hero-aside{grid-column:2;grid-row:1}.hero-copy h1{font-size:clamp(48px,6vw,66px)}}
@media (max-width:900px) {
  .public-nav { grid-template-columns:1fr auto; } .public-nav nav { position:static; justify-self:end; background:rgba(255,255,255,.07); box-shadow:none; } .public-note { display:none; }
  .public-hero { grid-template-columns:1fr;align-items:start;min-height:440px;padding-top:55px;overflow:visible}.hero-search{max-width:none}.hero-facts { width:100%; min-width:0; }
  .tree-legend { display:none; }
  .not-found-options{grid-template-columns:1fr}.not-found-options article{min-height:0}.not-found-page{padding-top:42px}
  .directory-heading { align-items:flex-start; } .directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-footer { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1; } .footer-credit { grid-column:2; grid-row:1; justify-self:end; } .footer-legal { grid-column:1/-1; width:100%; grid-template-columns:repeat(4,minmax(0,1fr)); justify-self:stretch; } .footer-legal-title { text-align:center; }
}
@media(max-width:719px){.public-zoom-controls{display:none!important}.public-tree-shell{cursor:auto}}
@media (max-width:600px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),select,textarea { font-size:16px; }
  .public-nav { width:100%;max-width:100%;height:64px;padding:0 12px;gap:8px; } .public-brand { min-width:0;gap:7px; } .public-brand-logo { width:46px; height:46px; } .public-brand small { display:none; } .public-brand strong { font-size:18px; } .public-brand .tree-mark { width:34px; height:34px; } .nav-link { min-height:33px; padding:5px 10px; font-size:12px; } .public-hero { width:100%;max-width:100%;padding:45px 20px;overflow-x:clip;overflow-y:visible; } .hero-copy h1 { font-size:43px; letter-spacing:-1.3px; overflow-wrap:anywhere; }
  .hero-copy,.hero-search,.hero-search-control,.hero-search-results,.hero-aside,.hero-facts,.public-section,.public-tree-frame,.site-footer { max-width:100%;min-width:0; }
  .hero-aside { width:100%; min-width:0; gap:14px; } .hero-family-logo { width:150px; } .hero-facts { width:100%; min-width:0; }
  .public-directory { padding:58px 14px 70px; } .directory-heading { margin-bottom:25px; display:block; } .directory-heading h2 { font-size:38px; } .directory-heading p { font-size:13px; } .directory-count { width:max-content; margin-top:18px; padding:9px 14px; } .directory-count strong { font-size:21px; } .directory-grid { grid-template-columns:1fr; gap:12px; } .directory-person-link { min-height:180px; padding:19px 17px; grid-template-columns:62px minmax(0,1fr); gap:14px; } .directory-avatar { width:62px; height:62px; border-width:3px; font-size:19px; } .directory-person h3 { font-size:20px; } .directory-note { margin-top:18px; text-align:left; line-height:1.5; }
  .hero-facts div { padding:17px 10px; } .hero-facts strong { font-size:28px; }
  .public-section { padding:45px 14px 75px; } .public-tree-frame { padding-top:50px; } .public-tree-shell { border-radius:15px; } .public-zoom-controls { top:0; right:0; } .compact-generation { grid-template-columns:61px minmax(0,1fr); gap:12px; padding-bottom:28px; } .compact-generation:not(:last-child)::after { left:30px; } .compact-generation-title strong { font-size:8px; letter-spacing:.35px; }
  .public-chronicle::before { left:61px; } .public-event { grid-template-columns:44px 35px minmax(0,1fr); } .public-event-date strong { font-size:15px; } .public-event-date span { font-size:8px; } .public-event-marker::before { left:12px; }
  .story-drawer { padding:28px 22px; }
  .image-lightbox { padding:64px 15px 48px; } .lightbox-close { top:12px; right:12px; } .lightbox-nav { top:auto; bottom:10px; transform:none; } .lightbox-nav.previous { left:calc(50% - 54px); } .lightbox-nav.next { right:calc(50% - 54px); }
  .server-person-profile { padding:35px 20px 65px; } .profile-back { margin-bottom:25px; } .profile-hero { grid-template-columns:1fr; gap:19px; } .profile-portrait,.profile-portrait-mask { width:105px; height:105px; } .profile-portrait { border-width:5px; font-size:29px; } .profile-hero h1 { font-size:42px; letter-spacing:-1px; } .profile-facts { grid-template-columns:1fr 1fr; } .profile-facts div { padding:13px 10px; } .profile-columns { grid-template-columns:1fr; gap:35px; margin-top:38px; }
  .site-footer { grid-template-columns:1fr; gap:18px; padding:28px 20px; } .footer-brand { grid-column:1; justify-content:center; width:100%; text-align:left; } .footer-credit { grid-column:1; grid-row:auto; justify-self:stretch; width:100%; min-width:0; } .footer-legal { grid-column:1; grid-template-columns:repeat(2,minmax(0,1fr)); } .footer-legal-title { text-align:left; } .footer-legal a { min-height:36px; justify-content:center; text-align:center; font-size:10px; }
  .legal-nav { min-height:64px; padding:7px 12px; } .legal-nav .public-brand small { display:none; } .legal-back { font-size:10px; }
  .legal-shell { padding:42px 18px 65px; } .legal-hero { margin-bottom:30px; padding-bottom:24px; } .legal-document section { margin-top:28px; } .legal-document h2 { font-size:24px; } .legal-document p,.legal-document li,.legal-document address { font-size:16px; }
}

/* Größere, ruhige Lesetypografie in Navigation, Suche, Personenakten und Footer */
.public-brand strong{font-size:22px;line-height:1.08}.public-brand small{margin-top:5px;font-size:11px;line-height:1.3}
.hero-search-empty{padding:18px 14px 14px;font-size:14px;line-height:1.5}.hero-search-application{padding:15px 14px;gap:13px}.hero-search-application .hero-search-copy strong{font-size:16px;line-height:1.3}.hero-search-application .hero-search-copy small{margin-top:4px;font-size:12.5px;line-height:1.55}.hero-search-application-icon{width:46px;height:46px;font-size:23px}
.hero-search-result:not(.hero-search-application){grid-template-columns:48px minmax(0,1fr) auto;gap:13px;padding:12px 13px}.hero-search-result:not(.hero-search-application) .hero-search-avatar{width:48px;height:48px;font-size:16px}.hero-search-result:not(.hero-search-application) .hero-search-copy strong{font-size:16px;line-height:1.35}.hero-search-result:not(.hero-search-application) .hero-search-copy small{margin-top:4px;font-size:12.5px;line-height:1.45}.hero-search-result:not(.hero-search-application) .hero-search-open{font-size:21px}
.not-found-options article{padding:29px;min-height:265px}.not-found-options h2{font-size:26px;line-height:1.2}.not-found-options p{font-size:15px;line-height:1.65}.not-found-options a{font-size:14px;line-height:1.4}
.hero-facts div{padding-top:26px;padding-bottom:25px}.hero-facts strong{font-size:39px}.hero-facts span{margin-top:9px;font-size:12px;line-height:1.35;letter-spacing:.8px}
.directory-eyebrow{font-size:11px}.directory-dates{font-size:13px}.directory-summary{font-size:14px;line-height:1.65}.directory-open{font-size:13px}.directory-open b{font-size:17px}
.story-data-note,.profile-data-note{padding:15px 17px}.story-data-note strong,.profile-data-note strong{font-size:15px}.story-data-note p,.profile-data-note p{margin-top:6px;font-size:14px;line-height:1.65}.profile-hero p{font-size:14px;line-height:1.5}.profile-updated{font-size:12px}
.profile-columns h2{font-size:31px}.profile-subsection h3{margin-bottom:11px;font-size:21px}.profile-subsection p{font-size:15px;line-height:1.75}.profile-family-links,.profile-social{gap:9px}.profile-family-link,.profile-social a{padding:12px 14px;font-size:14.5px;line-height:1.45}.story-family-link,.story-social a{padding:11px 13px;font-size:14px;line-height:1.45}
.profile-event{padding:14px 0 15px 18px}.profile-event-kind{margin-bottom:4px;font-size:10.5px;line-height:1.4}.profile-event time{font-size:12.5px;line-height:1.45}.profile-event strong{margin-top:3px;font-size:17px;line-height:1.35}.profile-event p{margin-top:5px;font-size:14px;line-height:1.65}.story-event{padding:11px 0 11px 15px}.story-event strong{font-size:16px}.story-event small{font-size:12px;line-height:1.5}
.profile-sources .rich-text{font-size:15.5px;line-height:1.8}.image-lightbox figcaption{min-height:20px;font-size:13.5px;line-height:1.5}
.footer-brand{gap:13px}.footer-brand strong{font-size:18px;line-height:1.25}.footer-brand span{margin-top:5px;font-size:11.5px;line-height:1.35}.footer-credit{padding:11px 15px 11px 11px}.footer-credit span{font-size:12px;line-height:1.45}.footer-credit strong{font-size:14px}.footer-legal-title{font-size:10.5px}.footer-legal a{min-height:40px;padding:8px 11px;font-size:12.5px;line-height:1.35}
@media(max-width:600px){.public-brand strong{font-size:19px}.hero-search-result:not(.hero-search-application){grid-template-columns:44px minmax(0,1fr) auto;gap:11px;padding:11px}.hero-search-result:not(.hero-search-application) .hero-search-avatar{width:44px;height:44px}.hero-search-result:not(.hero-search-application) .hero-search-copy strong{font-size:15px}.hero-search-result:not(.hero-search-application) .hero-search-copy small{font-size:12px}.hero-search-application{grid-template-columns:42px minmax(0,1fr) auto;padding:13px 11px}.hero-search-application-icon{width:42px;height:42px}.hero-search-application .hero-search-copy strong{font-size:15px}.hero-search-application .hero-search-copy small{font-size:12px}.not-found-options article{padding:23px}.not-found-options h2{font-size:24px}.hero-facts strong{font-size:32px}.hero-facts span{font-size:11px}.directory-summary{font-size:13.5px}.profile-family-link,.profile-social a{font-size:14px}.footer-legal a{min-height:42px;font-size:12px}}
