
:root{--ink:#1d1d1f;--ink-soft:#6e6e73;--hairline:#d2d2d7;--wash:#f5f5f7;
--accent:#0e4d3c;--accent-soft:#eaf2ef;--max:1040px;--maxr:760px}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;line-height:1.55}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.wrap-r{max-width:var(--maxr);margin:0 auto;padding:0 24px}
nav.site{position:sticky;top:12px;z-index:30;padding:0 14px;
font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif}
.nav-inner{position:relative;display:flex;align-items:center;justify-content:space-between;height:58px;
max-width:1000px;margin:0 auto;padding:0 12px 0 18px;
background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(20px);
border:1px solid var(--hairline);border-radius:980px;box-shadow:0 10px 30px rgba(0,0,0,.09)}
.nav-left{display:flex;align-items:center;gap:11px;flex-shrink:0}
.nav-crest img{height:36px;width:auto;display:block}
.nav-brand{font-size:15px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:15px;font-size:13px;height:100%;white-space:nowrap}
.nav-links a{color:#1d1d1f;font-weight:600}
.nav-links a:hover{color:#000}
.nav-group{position:relative;display:flex;align-items:center;height:100%}
.nav-glabel{cursor:pointer}
.nav-sub{display:none;position:absolute;top:52px;left:-16px;background:rgba(255,255,255,.98);
backdrop-filter:blur(20px);border:1px solid var(--hairline);border-radius:16px;min-width:235px;
padding:8px 0;box-shadow:0 14px 36px rgba(0,0,0,.12);z-index:40}
.nav-sub a{display:block;padding:10px 20px;font-size:13px;font-weight:500}
.nav-sub a:hover{background:var(--wash)}
.nav-group:hover .nav-sub{display:block}
.nav-toggle{display:none}
.nav-burger{display:none;cursor:pointer;width:38px;height:38px;flex-direction:column;justify-content:center;align-items:center;gap:5px;flex-shrink:0}
.nav-burger span{display:block;width:18px;height:1.8px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
@media(max-width:920px){
.nav-caret{display:none}
.nav-burger{display:flex}
.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:rgba(255,255,255,.98);
backdrop-filter:saturate(180%) blur(20px);flex-direction:column;align-items:stretch;gap:0;
padding:8px 22px 14px;border:1px solid var(--hairline);border-radius:22px;box-shadow:0 18px 44px rgba(0,0,0,.14);height:auto;
max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.nav-links > a{padding:11px 0;font-size:16px;border-bottom:1px solid var(--wash)}
.nav-group{display:block;height:auto}
.nav-glabel{display:block;padding:11px 0;font-size:16px;border-bottom:1px solid var(--wash)}
.nav-sub{display:block;position:static;border:none;box-shadow:none;background:none;min-width:0;padding:0 0 6px 16px}
.nav-sub a{padding:9px 0;font-size:15px;border-bottom:1px solid var(--wash)}
.nav-toggle:checked ~ .nav-links{display:flex}
.nav-toggle:checked + .nav-burger span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
.nav-toggle:checked + .nav-burger span:nth-child(2){opacity:0}
.nav-toggle:checked + .nav-burger span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}
}
.kicker{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:12px}
h1.page{font-size:clamp(32px,5vw,48px);font-weight:700;letter-spacing:-.022em;line-height:1.1}
.lede{font-size:18px;color:var(--ink-soft);margin-top:10px}
main{padding:56px 0 80px}
.prose p{font-size:17px;line-height:1.7;margin:0 0 1.15em}
.prose h2{font-size:26px;font-weight:700;letter-spacing:-.015em;margin:2.2em 0 .7em}
.prose h3{font-size:20px;font-weight:650;margin:1.8em 0 .6em}
.prose ul{margin:0 0 1.15em 1.3em}
.prose li{font-size:17px;line-height:1.65;margin-bottom:.35em}
.prose .caption{font-size:13.5px;color:var(--ink-soft);text-align:center;margin:-.4em 0 1.4em}
.prose em{font-style:italic}
.callout{border-radius:16px;padding:20px 24px;margin:1.7em 0;font-size:15.5px;line-height:1.62}
.callout p{font-size:15.5px;line-height:1.62;margin:0 0 .8em}
.callout p:last-child{margin-bottom:0}
.callout .co-h{font-size:12.5px;font-weight:700;letter-spacing:.08em;margin-bottom:10px}
.co-trad{background:#faf6ea;border:1px solid #eadfba}.co-trad .co-h{color:#8a6d1a}
.co-story{background:#eaf4f2;border:1px solid #cde3de}.co-story .co-h{color:#0e5d55}
.co-caution{background:#fdf2ef;border:1px solid #f2d7cf}.co-caution .co-h{color:#a33f2e}
.co-note{background:var(--wash);border:1px solid var(--hairline)}.co-note .co-h{color:var(--ink-soft)}
.co-fix{background:#eef2f9;border:1px solid #ccd9ee}.co-fix .co-h{color:#2a5d9c}
.hand{color:#2a5d9c;font-style:italic}
s{color:#98938a}
em.ed{color:var(--ink-soft)}
.tedpage{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
margin:2.6em 0 1em;padding-top:1.4em;border-top:1px solid var(--hairline)}
.tednh{margin-top:1.8em}

.blazon{background:var(--wash);border-radius:16px;padding:24px 28px;margin:26px 0}
.blazon p{font-size:15.5px;line-height:1.65;margin-bottom:.9em}
.blazon p:last-child{margin-bottom:0}
.blazon .bz{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
color:var(--accent);margin-right:8px}
.tablewrap{overflow-x:auto;margin:1.7em 0}
table.data{width:100%;border-collapse:collapse;font-size:14px}
table.data th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);
border-bottom:2px solid var(--hairline);padding:8px 10px}
table.data td{border-bottom:1px solid var(--wash);padding:9px 10px;vertical-align:top;line-height:1.5}
.pn{display:flex;justify-content:space-between;gap:14px;margin-top:70px;padding-top:26px;border-top:1px solid var(--hairline)}
.pn a{font-size:14px;color:var(--accent);font-weight:600;max-width:45%}
.pn .lbl{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;margin-bottom:3px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.card{background:var(--wash);border-radius:18px;padding:26px;transition:transform .25s ease,box-shadow .25s ease;display:block}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.08)}
.card .num{font-size:12px;color:var(--ink-soft);letter-spacing:.08em;margin-bottom:10px;text-transform:uppercase}
.card h3{font-size:19px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin-bottom:8px}
.card p{font-size:14px;color:var(--ink-soft)}
.grade{display:inline-block;font-size:11px;padding:2px 10px;border-radius:980px;font-weight:600}
.g-doc{background:var(--accent-soft);color:var(--accent)}
.g-prob{background:#fdf3e3;color:#9a6b15}
footer.site{border-top:1px solid var(--hairline);padding:36px 0 60px;font-size:12px;color:var(--ink-soft)}
footer.site .motto-small{font-style:italic;margin-bottom:6px}
footer.site a{text-decoration:underline;text-decoration-color:rgba(0,0,0,.2)}
/* person page */
.p-head{padding:10px 0 34px;display:grid;grid-template-columns:130px 1fr;gap:30px;align-items:center}
@media(max-width:600px){.p-head{grid-template-columns:1fr;text-align:center}}
.portrait{width:130px;height:130px;border-radius:50%;background:linear-gradient(140deg,#d9d4c8,#c0b8a6);
display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:600;color:#fff;margin:0 auto}
img.portrait{object-fit:cover;display:block}
img.fam-avatar{object-fit:cover;display:block}
figure.chfig{margin:34px 0 8px}
figure.chfig img{width:100%;border-radius:18px;display:block}
figure.chfig figcaption{font-size:13px;color:var(--ink-soft);margin-top:10px;text-align:center}
.hero-cta{margin-top:34px;display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.hcta{display:inline-block;padding:12px 26px;border-radius:980px;font-size:15px;font-weight:500;white-space:nowrap}
.hcta-dark{background:var(--ink);color:#fff}
.hcta-dark:hover{background:#000}
.hcta-light{border:1px solid var(--hairline)}
.hcta-light:hover{border-color:var(--ink)}
@media(max-width:760px){.hero-cta{display:flex;flex-wrap:wrap;justify-content:center}.hero-cta a{justify-self:auto!important}}
.hero-img{max-width:1200px;margin:0 auto;padding:0 24px}
.hero-img img{width:100%;border-radius:24px;display:block}
.card-photo{height:130px;border-radius:12px;margin-bottom:16px;background-size:cover;background-position:center}
.dates{font-size:18px;color:var(--ink-soft);margin-top:6px}
.chips{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:600px){.chips{justify-content:center}}
.chip{font-size:12px;padding:4px 12px;border-radius:980px;font-weight:600;background:var(--wash);color:var(--ink-soft)}
section.p{margin-bottom:52px}
section.p h2{font-size:21px;font-weight:700;letter-spacing:-.015em;margin-bottom:18px;padding-bottom:9px;border-bottom:1px solid var(--hairline)}
.vitals{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--hairline);border-radius:14px;overflow:hidden}
@media(max-width:600px){.vitals{grid-template-columns:1fr}}
.vital{background:#fff;padding:15px 18px}
.vital .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:3px}
.vital .v{font-size:15px}
.fam-group{margin-bottom:24px}
.fam-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:10px}
.fam-row{display:flex;gap:12px;flex-wrap:wrap}
.fam-card{display:flex;align-items:center;gap:12px;background:var(--wash);border-radius:14px;padding:10px 18px 10px 10px;transition:transform .2s ease}
.fam-card:hover{transform:translateY(-2px)}
.fam-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(140deg,#d9d4c8,#c0b8a6);
display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff;flex-shrink:0}
.fam-card .n{font-size:14px;font-weight:600;line-height:1.2}
.fam-card .d{font-size:12px;color:var(--ink-soft)}
.notes p{font-size:15.5px;line-height:1.65;margin-bottom:1em;color:#3a3a3c}
.src-list{list-style:none}
.src-list li{padding:12px 0;border-bottom:1px solid var(--wash);font-size:14.5px;display:flex;gap:14px;align-items:baseline}
.src-grade{flex-shrink:0;font-weight:700;color:var(--accent)}
.privacy{background:#f5f5f7;border-radius:14px;padding:16px 20px;font-size:14px;color:var(--ink-soft)}
/* people index */
.searchbar{margin:26px 0 36px}
.searchbar input{width:100%;max-width:460px;font-size:16px;padding:12px 18px;border:1px solid var(--hairline);
border-radius:980px;outline:none;font-family:inherit}
.searchbar input:focus{border-color:var(--accent)}
.letter{font-size:14px;font-weight:700;color:var(--accent);margin:34px 0 12px;letter-spacing:.06em}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.prow{display:flex;align-items:center;gap:11px;background:var(--wash);border-radius:12px;padding:9px 14px 9px 9px;transition:transform .15s ease}
.prow:hover{transform:translateY(-2px)}
.prow .n{font-size:14px;font-weight:600;line-height:1.2}
.prow .d{font-size:12px;color:var(--ink-soft)}
.count{font-size:13px;color:var(--ink-soft)}

/* join-the-tree form */
.fform label{display:block;font-size:13px;font-weight:600;margin:22px 0 6px}
.fform label .opt{font-weight:400;color:var(--ink-soft)}
.fform input[type=text],.fform input[type=email],.fform textarea{width:100%;font-size:16px;padding:11px 14px;
border:1px solid var(--hairline);border-radius:12px;outline:none;font-family:inherit;background:#fff}
.fform input:focus,.fform textarea:focus{border-color:var(--accent)}
.fform textarea{min-height:110px;resize:vertical;line-height:1.5}
.fform .consent{display:flex;gap:10px;align-items:flex-start;margin:26px 0 0;font-size:14px;color:var(--ink-soft)}
.fform .consent input{margin-top:3px}
.fform button{margin-top:28px;padding:13px 30px;border-radius:980px;border:0;background:var(--ink);color:#fff;
font-size:15px;font-weight:500;cursor:pointer;font-family:inherit}
.fform button:hover{background:#000}
.g-open{background:#fdf2ef;color:#a33f2e}
