/* Wesemann Family History — site styles
   Fonts: self-host Playfair Display, Source Serif 4 and Source Sans 3 in /assets/fonts/ (see build notes).
   Until the font files are added, the fallbacks below are used. */
:root{
  --ink:#2B2A28; --muted:#5E5852; --rule:#DDD5CC; --fill:#EFE8E1; --soft:#F8F4F0; --page:#FFFFFF;
  --accent:#4D7697; --accent-text:#3F6585; --accent-soft:#E8EEF3; --slate:#374351; --gold:#B49E89;
  --brown:#62432B; --title:#6F5A45; --blush:#EBE3DC;
  --link:#5A6A27; --link-hover:#434F1C; --link-soft:#EEF1E3; --on-link:#FFFFFF;   /* olive: everything clickable */
  --display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --serif:'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans:'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  --base:17px;
}
html[data-theme="dark"]{
  --ink:#ECE7E1; --muted:#B9B0A6; --rule:#3D4550; --fill:#2A313A; --soft:#1F252C; --page:#171C22;
  --accent:#8FB1CC; --accent-text:#A9C4DA; --accent-soft:#25313D; --title:#D9C3A8; --brown:#D9C3A8; --blush:#2E2924;
  --link:#B8C47E; --link-hover:#D0DA9E; --link-soft:#2B3121; --on-link:#171C22;
}
html[data-size="sm"]{--base:15px} html[data-size="lg"]{--base:20px}
*{box-sizing:border-box}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:var(--base);line-height:1.55}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:2px} a:hover{color:var(--link-hover);text-decoration-thickness:2px}
.wrap{max-width:1280px;margin:0 auto;padding:0 40px} .narrow{max-width:860px}
@media (max-width:700px){.wrap{padding:0 16px}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px} .skip:focus{left:16px;top:8px;background:#fff;padding:8px;z-index:20}
.small{font-size:.8em;color:var(--muted)}
.eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
h1,h2,h3,h4{margin:1.6em 0 .5em}
h2{font-family:var(--display);font-weight:400;font-size:1.6em;line-height:1.25;color:var(--accent)}
h3{font-family:var(--display);font-style:italic;font-weight:400;font-size:1.2em;color:var(--brown)}
h4{font-size:1em}
.title{font-family:var(--display);font-style:italic;font-weight:400;font-size:2.6em;line-height:1.15;color:var(--title);margin:.2em 0 .3em}
.title.big{font-size:3.2em}
.rule{display:block;width:64px;height:2px;background:var(--gold);margin:0 0 1.2em}
@media (max-width:700px){.title{font-size:1.9em}.title.big{font-size:2.2em}}
/* top bar */
.utilbar{background:var(--slate);color:#fff}
.utilbar-inner{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end;align-items:center;padding-top:6px;padding-bottom:6px}
.ctl{display:flex;align-items:center;gap:4px} .ctl-label{font-size:12px;color:#E9ECEF;margin-right:4px}
.utilbar button{min-height:32px;padding:0 10px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-family:var(--sans);font-size:13px;border-radius:6px;cursor:pointer}
.utilbar button[aria-pressed="true"],.utilbar .sz.on{background:rgba(255,255,255,.18);border-color:var(--gold);font-weight:700}
.utilbar button:disabled{opacity:.55;cursor:not-allowed}
.seg{gap:0} .seg button{border-radius:0} .seg button:first-child{border-radius:6px 0 0 6px} .seg button:last-child{border-radius:0 6px 6px 0}
.sz-sm{font-size:12px!important}.sz-md{font-size:15px!important}.sz-lg{font-size:18px!important}
@media (max-width:700px){.ctl-label{display:none}}
/* header */
.site-header{border-bottom:1px solid var(--rule);background:var(--page);position:relative;z-index:10}
.header-inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between}
.wordmark{font-family:var(--display);font-style:italic;font-size:24px;color:var(--title);text-decoration:none;padding:16px 0}
.nav{display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:0;padding:0}
.nav-top{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);background:none;border:none;border-bottom:3px solid transparent;padding:22px 4px 19px;cursor:pointer;text-decoration:none;display:inline-block}
.nav-top[aria-expanded="true"],.nav-top[aria-current="true"]{border-bottom-color:var(--gold)}
.search input{min-height:44px;width:230px;border:1px solid var(--rule);border-radius:22px;padding:0 16px;font-family:var(--sans);font-size:14px;background:var(--page);color:var(--ink)}
.search.big input{width:100%;max-width:640px;min-height:56px;border:2px solid var(--accent);font-size:17px;border-radius:28px}
.menu-btn{display:none;min-height:44px;padding:0 14px;border:1px solid var(--rule);background:var(--page);color:var(--ink);border-radius:8px;font-family:var(--sans)}
.megamenu{border-top:1px solid var(--rule);background:var(--soft)}
.mm-inner{max-width:1280px;margin:0 auto;padding:28px 40px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:32px}
.mm-title{font-family:var(--display);font-size:22px;margin:0 0 8px}
.mm-intro p{font-size:14px;color:var(--muted)}
.mm-cell{display:flex;flex-direction:column;gap:10px;min-width:0}
.mm-list{list-style:none;margin:0;padding:0;display:grid;column-gap:28px;align-content:start}
.mm-list a{display:block;text-decoration:none;padding:0 0 14px}
.mm-name{display:block;font-weight:700;color:var(--ink)} .mm-desc{display:block;font-size:13px;color:var(--muted)}
@media (max-width:900px){
  .menu-btn{display:inline-block}.nav{display:none;width:100%;flex-direction:column;gap:0}.site-header.open .nav{display:flex}
  .search{width:100%}.search input{width:100%}
  .mm-inner{grid-template-columns:1fr;padding:16px}.mm-cell{grid-column:auto!important}.mm-list{grid-template-columns:1fr!important}
}
.heldbar{background:#FBE9E7;color:#7A2E12;border-bottom:2px solid #C8553D;padding:10px 40px;font-size:14px}
/* layout */
main{padding:28px 0 64px}
.crumb{font-size:13px;color:var(--muted);margin-bottom:16px}
.layout{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.secnav{flex:1 1 260px;max-width:300px;border-top:3px solid var(--accent);padding-top:12px}
.secnav summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.secnav summary::-webkit-details-marker{display:none}
.secnav-title{font-size:18px;font-weight:700}
.secnav ul{list-style:none;margin:10px 0 0;padding:0}
.secnav a{display:flex;gap:10px;min-height:44px;align-items:flex-start;padding:10px 12px;border-left:3px solid transparent;text-decoration:none;color:var(--ink);font-size:14px;line-height:1.35}
.secnav a[aria-current="page"]{border-left-color:var(--accent);background:var(--accent-soft);font-weight:700}
.secnav .num{flex:none;width:18px;color:var(--muted)} .secnav a.read .num::before{content:"✓";color:var(--accent)} .secnav a.read .num{font-size:0} .secnav a.read .num::before{font-size:14px}
.content{flex:999 1 560px;min-width:0}
@media (max-width:900px){.secnav{max-width:none;flex-basis:100%;border:1px solid var(--rule);border-radius:10px;padding:8px 14px;background:var(--soft)}}
.prose p,.prose li{font-family:var(--serif);font-size:1.06em;line-height:1.7;max-width:46em}
.lede p{font-family:var(--serif);font-size:1.12em;line-height:1.7;max-width:44em}
.meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:4px;background:var(--soft);border:1px solid var(--rule);font-size:12px;font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:22px;background:var(--accent);color:#fff;border:none;font-family:var(--sans);font-size:15px;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{color:#fff;filter:brightness(.95)} .btn-quiet{background:var(--page);color:var(--ink);border:1px solid var(--rule)} .btn-quiet:hover{color:var(--ink)}
.row{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:8px;margin:1em 0}
table{width:100%;min-width:520px;border-collapse:collapse;font-size:.88em;line-height:1.45}
th{text-align:left;background:var(--soft);padding:8px 12px} td{padding:8px 12px;border-top:1px solid var(--rule);vertical-align:top}
.living-note{font-size:.8em!important;color:var(--muted)}
.refs{margin-top:40px;padding:20px 24px;background:var(--accent-soft);border-radius:10px}
.refs h2{margin-top:0;font-size:1.3em} .refs li{font-size:.9em!important;line-height:1.55!important;margin-bottom:8px}
.prevnext{display:flex;flex-wrap:wrap;gap:12px;border-top:1px solid var(--rule);margin-top:28px;padding-top:16px}
.prevnext a{flex:1 1 220px;display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--rule);border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600}
.prevnext a.next{align-items:flex-end;text-align:right}
.pcards{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:700px){.pcards{grid-template-columns:1fr}}
.pcard{display:flex;gap:12px;padding:14px;border:1px solid var(--rule);border-radius:8px;text-decoration:none;height:100%}
.pnum{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-weight:700}
.pcard-title{display:block;font-weight:700;color:var(--ink)} .pcard-desc{display:block;font-size:13px;color:var(--muted)} .pcard-meta{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.hero{background:var(--soft);border-bottom:1px solid var(--rule);margin:-28px 0 32px;padding:48px 0}
.cards{list-style:none;margin:16px 0 32px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{padding:20px;border:1px solid var(--rule);border-radius:10px;background:var(--page)}
.card-title{font-family:var(--display);font-size:21px;margin:0 0 6px}
.callout{padding:16px 18px;background:var(--blush);border-radius:10px}
.progress{position:sticky;top:0;height:4px;background:var(--rule);z-index:5;margin-top:-28px;margin-bottom:24px}.progress span{display:block;height:4px;width:0;background:var(--gold)}
.contact{display:flex;flex-direction:column;gap:14px;max-width:640px;margin-top:20px}
.contact label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.contact input,.contact textarea{min-height:44px;border:1px solid var(--rule);border-radius:8px;padding:8px 12px;font-family:var(--sans);font-size:15px;background:var(--page);color:var(--ink)}
.hp{position:absolute;left:-9999px}
.site-footer{border-top:2px solid var(--gold);background:var(--soft);padding:36px 0}
.footer-inner{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.footer-inner a{display:block;font-size:14px;margin:4px 0}
.footer-mark{font-family:var(--display);font-style:italic;font-size:20px;color:var(--title);margin:0 0 6px}
@media (max-width:700px){.footer-inner{grid-template-columns:1fr}}
.consent{position:fixed;left:0;right:0;bottom:0;background:var(--page);border-top:3px solid var(--gold);box-shadow:0 -6px 20px rgba(0,0,0,.08);z-index:30}
.consent-inner{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.consent p{margin:0;flex:1 1 420px;font-size:14px}
@media print{.utilbar,.site-header,.secnav,.site-footer,.consent,.prevnext,.progress,.print-btn,.heldbar{display:none!important}.layout{display:block}body{font-size:12pt}}

/* ---------- Resources ---------- */
.tool-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px}
.search-input{min-height:44px;min-width:260px;flex:1 1 260px;max-width:520px;border:1px solid var(--rule);border-radius:22px;padding:0 16px;font-family:var(--sans);font-size:15px;background:var(--page);color:var(--ink)}
.search-input.big{max-width:680px;min-height:56px;border:2px solid var(--accent);font-size:17px;border-radius:28px}
.tool-row select{min-height:44px;border:1px solid var(--rule);border-radius:8px;padding:0 10px;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:14px}
.check{display:inline-flex;gap:6px;align-items:center;font-size:14px}
.nowrap{white-space:nowrap}
table.filterable td,table.filterable th{font-size:14px}
tr.world td{background:var(--soft);color:var(--muted)}
.plist{list-style:none;padding:0;margin:0 0 1em} .plist li{padding:6px 0;border-bottom:1px solid var(--rule)}
.plist.cols{columns:2 260px}
.fam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 28px;margin:1em 0}
.fam-grid h2,.doc-sec h2,.person h2{font-size:1.25em}
.tree-results{list-style:none;padding:0;margin:0 0 16px;max-width:640px} .tree-results li{padding:6px 0;border-bottom:1px solid var(--rule)}
.pedigree{display:flex;gap:16px;overflow-x:auto;padding-bottom:10px}
.ped-col{flex:0 0 220px} .ped-col h3{font-size:1em;margin:0 0 6px}
.ped-col ul{list-style:none;padding:0;margin:0} .ped-col li{border:1px solid var(--rule);border-left:3px solid var(--gold);border-radius:6px;padding:8px 10px;margin:0 0 8px;background:var(--page);font-size:14px}
.ped-block{margin:28px 0}
.rel-form{display:grid;gap:12px;max-width:560px;margin:0 0 16px} .rel-form label{display:grid;gap:6px;font-weight:600;font-size:14px}
.doc-list{list-style:none;padding:0;margin:0} .doc-list li{padding:10px 0;border-bottom:1px solid var(--rule);display:grid;gap:2px}
.doc-meta{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;font-size:14px;background:var(--soft);border:1px solid var(--rule);border-radius:10px;padding:14px 18px;margin:0 0 18px}
.doc-meta dt{font-weight:700;color:var(--muted)} .doc-meta dd{margin:0;overflow-wrap:anywhere}
.doc-body p,.doc-body li{font-family:var(--serif);line-height:1.65;overflow-wrap:anywhere}
.doc-sec{margin:0 0 22px}
.doc-title{font-size:2em}
details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
/* facts that open their record */
.fact{cursor:pointer;text-decoration:underline dotted var(--gold);text-decoration-thickness:1.5px;text-underline-offset:3px}
.fact:hover,.fact:focus{background:var(--accent-soft);outline:none}
.rec-btn{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 10px;margin-left:4px;border:1px solid var(--rule);border-radius:14px;background:var(--soft);color:var(--accent-text);font-family:var(--sans);font-size:12px;cursor:pointer;vertical-align:middle}
.rec-btn:hover{border-color:var(--accent)}
.ref-rec{font-family:var(--sans);font-size:12px;margin-left:6px;white-space:nowrap}
.lightbox{position:fixed;inset:0;background:rgba(20,24,30,.55);display:flex;align-items:flex-start;justify-content:center;z-index:100;padding:5vh 12px;overflow-y:auto}
.lightbox[hidden]{display:none}
.lb-panel{background:var(--page);color:var(--ink);max-width:820px;width:100%;border-radius:12px;box-shadow:0 18px 48px rgba(0,0,0,.3);padding:18px 24px 24px}
.lb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--rule);margin-bottom:12px}
.lb-head h2{font-size:1.3em;margin:4px 0 10px}
.lb-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px} .lb-tab{min-height:32px;border:1px solid var(--rule);background:var(--soft);border-radius:6px;padding:0 10px;cursor:pointer;color:var(--ink)} .lb-tab[aria-selected="true"]{border-color:var(--accent);font-weight:700}
.lb-body p,.lb-body li{font-family:var(--serif);line-height:1.6}
body.lb-open{overflow:hidden}
/* glossary */
.term{border-bottom:1px dashed var(--accent);cursor:help}
.term-tip{position:absolute;z-index:120;background:var(--slate);color:#fff;font-family:var(--sans);font-size:13px;line-height:1.45;padding:10px 12px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
/* event map */
.map-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin:0 0 10px}
.map-panel{margin:0;border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:var(--soft)}
.map-panel figcaption{font-weight:700;font-size:14px;padding:8px 12px;border-bottom:1px solid var(--rule)}
.map-panel svg{display:block;width:100%;height:auto}
.map-panel .sea{fill:var(--accent-soft)}
.map-panel .tiles{filter:grayscale(.55) sepia(.2) contrast(.95) brightness(1.03)}
html[data-theme="dark"] .map-panel .tiles{filter:grayscale(.6) invert(.9) hue-rotate(180deg) brightness(.9)}
.map-credit{margin:4px 2px 0;color:var(--muted)} .map-credit a{color:inherit}
.pin{cursor:pointer} .pin circle{fill:var(--gold);stroke:var(--slate);stroke-width:1.5;opacity:.9}
.pin text{font-family:var(--sans);font-size:12px;fill:var(--ink);paint-order:stroke;stroke:var(--soft);stroke-width:3px}
.pin:hover circle,.pin:focus circle{fill:var(--accent)} .pin:focus{outline:none}
.place-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.place-card{border:1px solid var(--rule);border-radius:10px;padding:12px 16px;scroll-margin-top:20px}
.place-card h3{margin:0 0 4px} .place-card ul{padding-left:18px;font-size:14px}
.place-card.flash{outline:3px solid var(--gold)}
.search-results{padding-left:0;list-style:none} .search-results li{padding:10px 0;border-bottom:1px solid var(--rule)}
.lang-note{background:var(--accent-soft);border:1px solid var(--rule);border-radius:10px;padding:12px 16px;margin:0 0 18px;font-size:14px}
@media print{.tool-row,.lightbox,.rec-btn,.ref-rec,.term-tip,[data-choose-ancestor]{display:none!important}.fact{text-decoration:none}.term{border:0}}
@media (max-width:1360px){.search input{width:180px}}
html[lang="de"] .nav-top,html[lang="it"] .nav-top{font-size:14px}
html[lang="de"] .wordmark,html[lang="it"] .wordmark{font-size:21px}

/* search in the top bar; no wordmark */
.utilbar-inner{justify-content:flex-end}
.util-search{margin-right:auto}
.util-search input{min-height:34px;width:300px;border:1px solid rgba(255,255,255,.35);border-radius:17px;background:rgba(255,255,255,.08);color:#fff;font-size:14px;padding:0 14px}
.util-search input::placeholder{color:#D9DEE3}
.util-search input:focus{outline:2px solid var(--gold);outline-offset:1px;background:rgba(255,255,255,.14)}
.site-header .header-inner{justify-content:flex-start}
@media (max-width:1360px){.util-search input{width:260px}}
@media (max-width:820px){.util-search{flex:1 1 100%;margin-right:0}.util-search input{width:100%}}
.footer-legal{border-top:1px solid var(--rule);margin-top:18px;padding-top:12px}
.footer-legal p{margin:4px 0}
.prose h2{margin-top:1.4em}

/* ---------- olive for everything clickable ---------- */
.btn{background:var(--link);color:var(--on-link)} .btn:hover{background:var(--link-hover);color:var(--on-link);filter:none}
.btn-quiet{background:var(--page);color:var(--link);border:1px solid var(--link)} .btn-quiet:hover{background:var(--link-soft);color:var(--link-hover)}
.nav-top:hover{color:var(--link)} .mm-list a:hover .mm-name{color:var(--link);text-decoration:underline}
.secnav a:hover{color:var(--link)} .secnav a[aria-current="page"]{border-left-color:var(--link);background:var(--link-soft)}
.secnav a.read .num::before{color:var(--link)}
.pcard:hover,.prevnext a:hover,.card:hover{border-color:var(--link)} .pcard:hover .pcard-title,.prevnext a:hover{color:var(--link)}
.fact{text-decoration-color:var(--link)} .fact:hover,.fact:focus{background:var(--link-soft)}
.rec-btn{color:var(--link)} .rec-btn:hover{border-color:var(--link)}
.term{border-bottom-color:var(--link)}
.lb-tab[aria-selected="true"]{border-color:var(--link)}
.pin:hover circle,.pin:focus circle{fill:var(--link)}
a:focus-visible,button:focus-visible,.fact:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--link);outline-offset:2px}
/* ---------- home: faded map behind the opening section ---------- */
.hero{position:relative;background-color:var(--soft);
  background-image:linear-gradient(rgba(248,244,240,.86),rgba(248,244,240,.86)),url('images/home-map.jpg');
  background-image:linear-gradient(rgba(248,244,240,.86),rgba(248,244,240,.86)),image-set(url('images/home-map.webp') type('image/webp'),url('images/home-map.jpg') type('image/jpeg'));
  background-size:cover;background-position:center 40%}
html[data-theme="dark"] .hero{
  background-image:linear-gradient(rgba(23,28,34,.88),rgba(23,28,34,.88)),url('images/home-map.jpg');
  background-image:linear-gradient(rgba(23,28,34,.88),rgba(23,28,34,.88)),image-set(url('images/home-map.webp') type('image/webp'),url('images/home-map.jpg') type('image/jpeg'))}
.hero-credit{font-size:11px;color:var(--muted);margin:22px 0 0}
@media print{.hero{background:none}}
.search.big input,.search-input.big{border-color:var(--link)}
.search input:focus,.search-input:focus,.tool-row select:focus{outline:2px solid var(--link);outline-offset:1px}

/* =================================================================== Resources tools (resources.js) */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--rule);border-radius:18px;background:var(--page);color:var(--link);font-family:var(--sans);font-size:14px;text-decoration:none;cursor:pointer}
.chip:hover{border-color:var(--link);background:var(--link-soft);color:var(--link-hover)}
.chip[aria-pressed="true"],.chip.on,.chip[aria-current="page"]{background:var(--link);border-color:var(--link);color:var(--on-link)}
.chip[aria-pressed="true"] .small,.chip.on .small{color:inherit;opacity:.85}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.badge.acc{background:var(--link-soft);border-color:var(--link);color:var(--link-hover)} a.badge{text-decoration:none}
.badge.warm{background:var(--blush);border-color:var(--gold);color:var(--brown)}
.panel{border:1px solid var(--rule);border-radius:10px;padding:16px 18px;background:var(--page);margin:0 0 16px}
.panel.soft{background:var(--soft)} .panel.warm{background:var(--blush);border-color:var(--gold)}
.panel h2,.panel h3{margin-top:0}
.h3{font-family:var(--display);font-size:1.25em;margin:.2em 0;color:var(--brown)} .h4{font-weight:700;font-size:1em;margin:.2em 0}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin:24px 0}
.rowf{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0}
.rowsb{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.rowsb h2,.rowsb h3{margin:.6em 0 .3em}
.bigsearch{margin:6px 0 4px}
.bigsearch .search-input{width:100%;max-width:760px}
.linkbtn{background:none;border:none;padding:4px 2px;color:var(--link);text-decoration:underline;cursor:pointer;font-family:var(--sans);font-size:inherit}
.iconbtn{min-width:40px;min-height:40px;border:1px solid var(--rule);border-radius:8px;background:var(--page);color:var(--link);font-size:18px;cursor:pointer}
.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.filters label{display:inline-flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}
.filters select,.filters input,.rowf input[type=number],.lside input[type=number],.lside input[type=search]{min-height:40px;border:1px solid var(--rule);border-radius:8px;padding:0 10px;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:14px}
.seg{display:inline-flex}
.seg button,.seg-nav a,.gtabs button,.stabs button{min-height:40px;padding:0 16px;border:1px solid var(--link);background:var(--page);color:var(--link);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.seg button+button{border-left:0}
.seg button[aria-pressed="true"],.seg-nav a[aria-current="page"]{background:var(--link);color:var(--on-link)}
.utilbar .seg button{border-color:rgba(255,255,255,.35);background:transparent;color:#fff;min-height:32px;padding:0 10px;font-weight:400;font-size:13px}
.seg-nav{display:inline-flex;margin:4px 0 18px} .seg-nav a:first-child{border-radius:6px 0 0 6px} .seg-nav a:last-child{border-radius:0 6px 6px 0;border-left:0}
.suggest{border:1px solid var(--rule);border-radius:10px;background:var(--page);box-shadow:0 10px 26px rgba(0,0,0,.08);max-width:760px;margin:6px 0;padding:6px}
.suggest a,.suggest button{display:flex;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:none;background:none;border-radius:6px;text-align:left;text-decoration:none;color:var(--ink);font-family:var(--sans);font-size:15px;cursor:pointer}
.suggest a:hover,.suggest button:hover,.suggest a:focus,.suggest button:focus{background:var(--link-soft)}
.suggest a b,.suggest button b{color:var(--link)}
.suggest > p{margin:6px 12px}
.sugwrap{position:relative;flex:1 1 280px;max-width:420px} .sugwrap .search-input{width:100%;max-width:none}
.sugwrap .suggest{position:absolute;left:0;right:0;top:100%;z-index:20}
/* tree hub */
.tgroup{margin:18px 0}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:8px}
.tcard{display:flex;gap:12px;padding:14px 16px;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink);background:var(--page)}
.tcard:hover{border-color:var(--link);background:var(--link-soft)}
.ticon{flex:none;width:40px;height:40px;border-radius:50%;background:var(--link-soft);color:var(--link);display:flex;align-items:center;justify-content:center;font-size:20px}
.tcard-t{display:block;font-weight:700;color:var(--link)} .tcard-s{display:block;font-size:13px;color:var(--muted)}
.az{margin:28px 0}
.letters{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
.letter{min-width:38px;min-height:38px;border:1px solid var(--rule);border-radius:6px;background:var(--page);color:var(--link);font-weight:700;cursor:pointer}
.letter:disabled{color:var(--rule);cursor:default} .letter[aria-pressed="true"]{background:var(--link);color:var(--on-link);border-color:var(--link)}
.az-out{columns:3 240px;margin-top:8px} .az-out details{break-inside:avoid} .az-out ul{margin:0 0 8px}
ul.plain,ol.plain{list-style:none;margin:0;padding:0} ul.plain li{padding:3px 0}
/* tree chart */
.chartwrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}
@media (max-width:900px){.chartwrap{grid-template-columns:1fr}}
.chart{border:1px solid var(--rule);border-radius:12px;background:var(--soft);padding:18px;overflow-x:auto}
.crow{text-align:center} .crow .eyebrow{margin:0 0 8px}
.cboxes{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.cline{width:2px;height:20px;background:var(--gold);margin:8px auto}
.pbox{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:150px;max-width:210px;padding:9px 12px;border:1px solid var(--rule);border-left:4px solid var(--gold);border-radius:8px;background:var(--page);color:var(--ink);font-family:var(--sans);text-align:left;text-decoration:none;cursor:pointer}
.pbox:hover{border-color:var(--link)} .pbox-n{font-weight:700;font-size:14px;line-height:1.25;color:var(--link)} .pbox-y{font-size:12px;color:var(--muted)}
.pbox.center{border:2px solid var(--link);border-left-width:6px;background:var(--link-soft)}
.pbox.sel{box-shadow:0 0 0 3px var(--gold)}
.pbox.sib{border-left-color:var(--accent)} .pbox.spouse{border-left-color:var(--brown)}
.pbox.outside{border-style:dashed;border-left-style:solid}
.amp{color:var(--gold);font-size:20px}
.morebtn{min-height:36px;border:1px dashed var(--link);border-radius:18px;background:var(--page);color:var(--link);padding:0 14px;cursor:pointer;font-family:var(--sans)}
.sidecard{position:sticky;top:16px} .sidecard .stack{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.legend{display:flex;flex-wrap:wrap;gap:16px;margin:6px 0 10px} .legend span{display:inline-flex;gap:6px;align-items:center}
.lg{display:inline-block;width:22px;height:14px;border:1px solid var(--rule);border-left:4px solid var(--gold);border-radius:3px;background:var(--page)}
.lg.center{border:2px solid var(--link);border-left-width:4px;background:var(--link-soft)} .lg.sib{border-left-color:var(--accent)} .lg.outside{border-style:dashed}
.trail{margin:4px 0 8px}
/* tree list */
.ltree{border:1px solid var(--rule);border-radius:10px;overflow:hidden}
.lrow{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.35}
.lrow:nth-child(even){background:var(--soft)} .lrow.dl > span a.b{font-weight:700} .lrow.sel{outline:2px solid var(--gold);outline-offset:-2px}
.tog{flex:none;width:28px;height:28px;border:1px solid var(--link);border-radius:6px;background:var(--page);color:var(--link);font-weight:700;cursor:pointer;line-height:1}
.tog-sp{flex:none;width:28px}
.acc{color:var(--link)}
/* generations */
.gtabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px}
.gtabs button{flex-direction:column;align-items:flex-start;border-radius:8px;min-height:52px;padding:6px 12px;font-weight:400}
.gtabs button b{font-weight:700} .gtabs button span{font-size:12px;opacity:.85}
.gtabs button[aria-current="true"]{background:var(--link);color:var(--on-link)}
.ggroup{border:1px solid var(--rule);border-radius:10px;padding:10px 14px;margin:0 0 12px;background:var(--page)}
.ggroup.dl{border-color:var(--link);border-left-width:4px}
.ggroup h3{margin:.2em 0} .gcards{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
/* person page */
.anc-banner{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;background:var(--blush);border:1px solid var(--gold);border-radius:10px;padding:10px 16px;margin:0 0 16px;font-size:14px}
.phead{display:flex;gap:18px;align-items:center}
.avatar{flex:none;width:76px;height:76px;border-radius:50%;background:var(--link-soft);border:2px solid var(--link);color:var(--link);font-family:var(--display);font-size:28px;display:flex;align-items:center;justify-content:center}
.phead .title{margin:0}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.ptabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--rule);margin:8px 0 18px;position:sticky;top:0;background:var(--page);z-index:4}
.ptabs a{padding:12px 14px;text-decoration:none;font-weight:600;font-size:14px;border-bottom:3px solid transparent} .ptabs a:hover{border-bottom-color:var(--link)}
.pcols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}
@media (max-width:900px){.pcols{grid-template-columns:1fr}}
.pmain section{margin:0 0 28px;scroll-margin-top:60px} .pmain #overview p{font-family:var(--serif);font-size:1.05em;line-height:1.7}
.ribbon{display:flex;gap:0;overflow-x:auto;padding:6px 0}
.rib{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;min-width:150px;max-width:200px;padding:8px 14px 8px 20px;background:var(--soft);border:1px solid var(--rule);text-decoration:none;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
.rib:first-child{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);padding-left:14px}
.rib.me{background:var(--link-soft);border-color:var(--link)} .rib:hover .pbox-n{text-decoration:underline}
.rib-r{font-size:11px;color:var(--brown);min-height:0}
.famrow{margin:0 0 14px} .pboxes{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.evlist{list-style:none;padding:0;margin:8px 0;border-left:2px solid var(--gold)}
.evlist li{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:6px 0 6px 14px;font-size:15px}
.ev-y{font-weight:700;color:var(--muted);font-size:14px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:8px}
.dcard{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--rule);border-radius:8px;text-decoration:none;color:var(--ink)}
.dcard:hover{border-color:var(--link);background:var(--link-soft)}
.dicon,.rthumb{flex:none;width:38px;height:46px;border-radius:4px;background:var(--soft);border:1px solid var(--rule);color:var(--muted);display:flex;align-items:center;justify-content:center}
.dcard-t{display:block;font-weight:600;font-size:14px;color:var(--link);line-height:1.3}
.glance{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:8px 0;font-size:14px} .glance dt{font-weight:700;color:var(--muted)} .glance dd{margin:0}
/* library */
.browse{margin:16px 0}
.libcols{display:grid;grid-template-columns:290px minmax(0,1fr);gap:28px;align-items:start;margin-top:8px}
@media (max-width:900px){.libcols{grid-template-columns:1fr}}
.lside fieldset{border:0;border-top:1px solid var(--rule);margin:0;padding:12px 0}
.lside legend{font-weight:700;font-size:14px;padding:0;margin-bottom:6px}
.lside input[type=search]{width:100%} .lside input[type=number]{width:96px}
.lside .rowf label{display:flex;flex-direction:column;gap:2px}
.fcheck{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;padding:3px 0;cursor:pointer}
.fcheck input{width:18px;height:18px;accent-color:var(--link);vertical-align:-3px}
.check input{width:18px;height:18px;accent-color:var(--link)}
.keybox p{margin:6px 0}
.hist{display:block;width:100%;height:56px;margin-top:8px} .hist rect{fill:var(--rule);cursor:pointer} .hist rect.on{fill:var(--link)} .hist rect:hover{fill:var(--link-hover)}
.hist.wide{height:60px}
.hist-axis{display:flex;justify-content:space-between}
.toolbar{border-bottom:1px solid var(--rule);padding-bottom:6px}
.toolbar select{min-height:36px;border:1px solid var(--rule);border-radius:8px;padding:0 8px;background:var(--page);color:var(--ink)}
.rlist{display:flex;flex-direction:column} .rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.rcard{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--rule)}
.rgrid .rcard{border:1px solid var(--rule);border-radius:10px;padding:12px}
.rbody{min-width:0} .rbody p{margin:3px 0}
.rtitle{font-weight:700;font-size:1.05em}
.rsnip{font-family:var(--serif);font-size:15px;line-height:1.5;color:var(--ink)}
mark{background:#F3E3A6;color:inherit;padding:0 1px;border-radius:2px} html[data-theme="dark"] mark{background:#6A5A22}
.pager{display:flex;flex-wrap:wrap;gap:4px;margin:18px 0}
.pager button{min-width:40px;min-height:40px;border:1px solid var(--rule);border-radius:6px;background:var(--page);color:var(--link);cursor:pointer;padding:0 10px}
.pager button[aria-current="page"]{background:var(--link);color:var(--on-link);border-color:var(--link)} .pager button:disabled{color:var(--rule);cursor:default}
.pager span{align-self:center;padding:0 4px}
/* record page */
.dcols{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:900px){.dcols{grid-template-columns:1fr}}
.dside .doc-meta{grid-template-columns:1fr;gap:2px;background:none;border:0;padding:0} .dside .doc-meta dd{margin:0 0 8px}
.dside .eyebrow{margin-top:10px}
.sbs{display:grid;grid-template-columns:1fr 1fr;gap:24px} .sbs > div{min-width:0} .sbs > div + div{border-left:1px solid var(--rule);padding-left:24px}
mark.find{background:var(--gold);color:#1d1d1d}
/* chronology */
.cfilters{border:1px solid var(--rule);border-radius:12px;padding:14px 18px;background:var(--soft);margin:12px 0}
.acc-top{margin:4px 0 8px;align-items:center} .acc-top p{margin:0}
.era{scroll-margin-top:64px;border-bottom:2px solid var(--gold);padding-bottom:4px}
.acc-sec{margin:0 0 6px} .acc-h{margin:14px 0 0;padding:0;border-bottom:2px solid var(--gold)}
.acc-h button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 4px;border:0;background:none;color:var(--link);font:inherit;text-align:left;cursor:pointer;border-radius:8px}
.acc-h button:hover{background:var(--link-soft)} .acc-h button .small{color:var(--muted);font-family:var(--sans);font-weight:400;margin-left:auto}
.acc-h .caret{flex:none;width:10px;height:10px;border-right:2px solid var(--link);border-bottom:2px solid var(--link);transform:rotate(-45deg);transition:transform .15s}
.acc-sec.open .acc-h .caret{transform:rotate(45deg)}
.acc-p{padding-top:6px}
.timeline{margin:8px 0}
.tl{display:grid;grid-template-columns:120px 18px minmax(0,1fr);gap:12px;padding:6px 0}
.tl-y{text-align:right;display:flex;flex-direction:column} .tl-y b{font-size:1.1em}
.tl-l{position:relative} .tl-l::before{content:"";position:absolute;left:8px;top:0;bottom:-12px;width:2px;background:var(--rule)}
.tl-l::after{content:"";position:absolute;left:3px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--link);border:2px solid var(--page)}
.tl-c{border:1px solid var(--rule);border-radius:10px;padding:10px 14px;background:var(--page)} .tl-c p{margin:4px 0}
.tl.world .tl-c{background:var(--soft);border-style:dashed} .tl.world .tl-l::after{background:var(--gold)}
.tl-wt{color:var(--muted);font-style:italic}
@media (max-width:640px){.tl{grid-template-columns:64px 14px minmax(0,1fr)}}
/* event map */
.legendchips .check{border:1px solid var(--rule);border-radius:18px;padding:4px 12px;min-height:36px}
.sym{color:var(--link);font-size:13px;width:14px;text-align:center}
.slider{display:flex;gap:14px;align-items:center}
.playbtn{flex:none;width:48px;height:48px;border-radius:50%;border:none;background:var(--link);color:var(--on-link);font-size:18px;cursor:pointer}
.sl{flex:1} .sl input[type=range]{width:100%;accent-color:var(--link)} .sl .rowsb label{flex:1 1 240px;display:flex;gap:8px;align-items:center}
.sl p{margin:4px 0}
.mapcols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
@media (max-width:1000px){.mapcols{grid-template-columns:1fr}}
.maps{display:grid;gap:14px}
.inview{max-height:900px;overflow-y:auto;position:sticky;top:12px}
.mli{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--rule);font-size:14px}
.popup{background:var(--link-soft);border:1px solid var(--link);border-radius:8px;padding:8px 12px;margin:8px 0}
.pin.empty circle{fill:var(--page);stroke:var(--muted);opacity:.7} .pin.empty text{fill:var(--muted);font-size:10px}
.pin.on circle{fill:var(--link);stroke-width:3}
/* site search */
.stabs{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0} .stabs button{border-radius:18px;font-weight:400}
.stabs button[aria-current="true"]{background:var(--link);color:var(--on-link)} .stabs button .small{color:inherit;opacity:.85}
.sgroup{border:0!important} .sgroup h2{font-size:1.2em;margin:.8em 0 .2em}
.sitem{display:block;padding:8px 0;text-decoration:none;color:var(--ink)} .sitem b{color:var(--link)} .sitem:hover b{text-decoration:underline}
.snip{display:block;margin-top:2px}
/* lightbox: records open in place */
.lb-panel{max-width:1000px}
.lb-tab{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--sans);font-size:13px}
.lb-views{margin:0 0 10px}
.lb-body .doc-meta{margin-bottom:14px}
.lb-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid var(--rule);margin-top:14px;padding-top:12px}
@media (max-width:700px){.sbs{grid-template-columns:1fr}.sbs > div + div{border-left:0;padding-left:0}}
@media print{.chips,.tools,.bigsearch,.lside,.pager,.acc-top,.cfilters,.slider,.ptabs,.actions,.sidecard,.legendchips{display:none!important}.libcols,.dcols,.pcols,.chartwrap,.mapcols{display:block}}
[hidden]{display:none!important}
.stabs button{gap:6px}
.rowf select{min-height:36px;border:1px solid var(--rule);border-radius:8px;padding:0 8px;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:14px}
.hist-axis{position:relative;height:18px;display:block} .hist-axis span{position:absolute;transform:translateX(-50%)} .hist-axis span:first-child{transform:none}
/* ---------- photographs on the story pages ---------- */
.photos{margin:6px 0 18px}
.photo{margin:0}
.photo img{display:block;width:100%;height:auto;border-radius:6px;background:var(--soft)}
.photo-link{display:block;border-radius:6px;cursor:zoom-in}
.photo-link:focus-visible{outline:3px solid var(--link);outline-offset:3px}
.photo figcaption{font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--muted);margin-top:6px}
.photo-note{font-style:italic}
.photo-right{float:right;width:min(42%,340px);margin:4px 0 14px 28px}
.photo-wide{clear:both;max-width:46em}
.photo-wide .photo img{width:auto;max-width:100%}
.photo-pair{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:46em}
.prose h2,.refs,.prevnext{clear:both}
@media (max-width:640px){.photo-right{float:none;width:auto;max-width:420px;margin:8px 0 16px}.photo-pair{grid-template-columns:1fr}}
.photo-avatar{overflow:hidden;padding:0} .photo-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.photo-box{position:fixed;inset:0;background:rgba(15,18,22,.88);z-index:110;display:flex;align-items:center;justify-content:center;padding:4vh 3vw;flex-direction:column;gap:10px}
.photo-box[hidden]{display:none}
.photo-box img{max-width:100%;max-height:84vh;width:auto;height:auto;border-radius:6px;box-shadow:0 16px 40px rgba(0,0,0,.5)}
.photo-box p{color:#E9ECEF;font-size:14px;max-width:760px;text-align:center;margin:0}
.photo-box .btn{position:absolute;top:16px;right:16px}
@media print{.photo-right{width:40%}.photo-link{cursor:default}}
.photo-right{clear:right}
.prose .table-wrap{clear:both}
/* main navigation: Home lines up with the menu buttons; olive carets */
.nav{align-items:stretch} .nav li{display:flex}
.nav-top{display:inline-flex;align-items:center;gap:6px;margin:0;line-height:1.2;font-family:var(--sans);font-size:15px;font-weight:600;-webkit-appearance:none;appearance:none}
.nav-top .caret{color:var(--link);font-size:12px;line-height:1;transition:transform .15s}
.nav-top[aria-expanded="true"] .caret{transform:rotate(180deg)}
/* side navigation: the other sections of this menu */
.secnav-more{border-top:1px solid var(--rule);margin-top:14px;padding-top:10px}
.secnav-head{font-size:14px;font-weight:700;margin:0 0 4px}
.secnav-more .eyebrow{margin:10px 0 2px;font-size:11px}
.secnav-more ul{margin:2px 0 0}
.secnav-more a{min-height:36px;padding:7px 12px;font-size:14px;color:var(--link)}
.secnav-more a[aria-current="true"]{color:var(--ink);font-weight:700;border-left-color:var(--gold)}
@media (max-width:900px){.secnav-more{display:none}}

/* previous and next: buttons above the references */
.prevnext{border-top:0;margin-top:36px;padding-top:0;gap:16px}
.prevnext a{background:var(--link);color:var(--on-link);border:none;border-radius:12px;padding:14px 20px;font-weight:600;line-height:1.3;gap:4px;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.prevnext a .small{color:var(--on-link);opacity:.85;font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.prevnext a:hover{background:var(--link-hover);color:var(--on-link)}
.prevnext a.back{flex:0 1 auto;min-width:220px}

@media print{.acc-p[hidden]{display:block!important}}
.form-msg{margin:16px 0} .form-msg.warn{background:var(--soft);border:1px solid var(--gold)}
