
:root{
  --bg:#0f1414;--bg2:#141b1b;--panel:#182020;--panel2:#1d2626;
  --text:#f2eee6;--muted:#9ea9a6;--line:rgba(255,255,255,.10);
  --gold:#c7a46b;--gold2:#e2c28e;--green:#709c82;--copper:#ad765f;
  --research:#b9685c;--radius:18px;--shadow:0 20px 60px rgba(0,0,0,.22)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:
  radial-gradient(circle at 10% 5%,rgba(112,156,130,.06),transparent 28rem),
  radial-gradient(circle at 90% 6%,rgba(199,164,107,.06),transparent 30rem),
  var(--bg);
  color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6
}
a{color:inherit}
img{display:block;max-width:100%}
.container{width:min(calc(100% - 36px),1120px);margin:auto}
.wide{width:min(calc(100% - 36px),1480px);margin:auto}
.topbar{
  position:sticky;top:0;z-index:100;background:rgba(15,20,20,.90);backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line)
}
.topbar-inner{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;white-space:nowrap}
.brand span{width:34px;height:34px;border:1px solid rgba(226,194,142,.35);border-radius:50%;display:grid;place-items:center;color:var(--gold2);font:500 1.1rem Georgia,serif}
.brand b{font:500 1rem Georgia,serif}
nav{display:flex;gap:18px;overflow:auto}
nav a{text-decoration:none;color:var(--muted);font-size:.78rem;white-space:nowrap}
nav a:hover{color:var(--gold2)}
.hero{
  min-height:82vh;display:grid;align-items:center;border-bottom:1px solid var(--line);
  background:linear-gradient(115deg,rgba(7,10,10,.15),rgba(7,10,10,.84)),url("images/hero-tree.svg") center/cover no-repeat
}
.hero-content{padding:100px 0}
.eyebrow,.section-head>span{font-size:.72rem;letter-spacing:.21em;text-transform:uppercase;font-weight:800;color:var(--gold2)}
.hero h1{margin:14px 0 22px;font:500 clamp(3.8rem,8.5vw,8.7rem)/.88 Georgia,serif;letter-spacing:-.05em}
.hero h1 em{color:var(--gold2);font-weight:400}
.hero p{max-width:900px;color:#c7cecb;font-size:1.08rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:980px;margin-top:44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats div{padding:22px 16px 22px 0}
.stats b{display:block;font:500 2rem Georgia,serif;color:var(--gold2)}
.stats span{font-size:.78rem;color:var(--muted)}
.section{padding:92px 0;border-bottom:1px solid rgba(255,255,255,.055)}
.section-head{max-width:920px;margin-bottom:40px}
.section-head h2{margin:8px 0 14px;font:500 clamp(2.1rem,4.7vw,4rem)/1.02 Georgia,serif;letter-spacing:-.035em}
.section-head p{color:var(--muted)}
.dark-zone{background:rgba(255,255,255,.012)}
.green-zone{background:radial-gradient(circle at 15% 10%,rgba(112,156,130,.06),transparent 26rem)}
.copper-zone{background:radial-gradient(circle at 85% 15%,rgba(173,118,95,.06),transparent 26rem)}
.lineage{max-width:820px;margin:auto;display:grid;justify-items:center}
.lineage>div{width:min(100%,690px);padding:18px 22px;border:1px solid var(--line);border-radius:16px;background:var(--panel);text-align:center}
.lineage b,.lineage small,.lineage span{display:block}
.lineage small{color:var(--gold2)}
.lineage span{color:var(--muted);font-size:.9rem}
.lineage i{height:30px;width:1px;background:rgba(255,255,255,.2);font-size:0}
.lineage .current{border-color:rgba(199,164,107,.40);box-shadow:var(--shadow)}
.lineage .children{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:transparent;border:0;padding:0}
.lineage .children span{padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.direct-line{margin:0 0 36px;padding:20px 24px;border-left:3px solid var(--gold);background:rgba(199,164,107,.055);border-radius:0 14px 14px 0;color:#d9ddd9}
.direct-line.green{border-color:var(--green);background:rgba(112,156,130,.055)}
.branch-title{font:500 1.8rem Georgia,serif;text-align:center;margin:35px 0 20px}
.couple{margin:22px auto;max-width:910px}
.couple-label{width:max-content;max-width:100%;margin:0 auto 10px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.couple-inner{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;gap:12px}
.bond{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--gold2);font:500 1.3rem Georgia,serif}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:16px;margin:20px 0}
.person{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 40%),var(--panel);box-shadow:0 12px 34px rgba(0,0,0,.13)}
.person:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gold)}
.person.research:before{background:var(--research)}
.person.compact .photo{aspect-ratio:2/1}
.photo{position:relative;aspect-ratio:16/10;border-bottom:1px solid var(--line);background:#101616;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover;opacity:.83}
.photo span{position:absolute;right:14px;bottom:8px;color:rgba(255,255,255,.17);font:500 1.8rem Georgia,serif}
.person-body{padding:18px}
.person-body small{display:block;color:var(--gold2);font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
.person-body h3{margin:5px 0 5px;font:500 1.18rem/1.18 Georgia,serif}
.life{color:var(--gold2);font-size:.86rem;font-weight:700}
.relation{margin-top:10px;color:#d5dad7;font-size:.83rem}
.person-body p{margin:10px 0 0;color:var(--muted);font-size:.84rem}
.arrow{text-align:center;color:var(--gold2);margin:18px 0;font-size:1.2rem}
.arrow.mini{font-size:.8rem;color:var(--muted);margin:12px 0}
.note{max-width:820px;margin:16px auto 26px;padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02);color:var(--muted)}
.subbranch{margin-top:60px;padding:32px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.012)}
.subbranch>h3{margin:0 0 24px;font:500 1.8rem Georgia,serif;color:var(--gold2)}
.subbranch.primary{border-color:rgba(199,164,107,.28);background:linear-gradient(135deg,rgba(199,164,107,.045),transparent)}
.subbranch.green{border-color:rgba(112,156,130,.24);background:linear-gradient(135deg,rgba(112,156,130,.045),transparent)}
.subbranch.green>h3{color:#a9c6b3}
.subbranch.copper{border-color:rgba(173,118,95,.24);background:linear-gradient(135deg,rgba(173,118,95,.045),transparent)}
.subbranch.copper>h3{color:#d19b85}
.subbranch.deep{background:rgba(255,255,255,.02)}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.desc{margin-top:26px;padding:22px;border:1px dashed rgba(255,255,255,.16);border-radius:18px}
h4{font:500 1.3rem Georgia,serif;color:#ddd8cf}
.research-grid .person{border-color:rgba(185,104,92,.24)}
.chronicle{max-width:880px;margin:auto;position:relative}
.chronicle:before{content:"";position:absolute;left:95px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.15)}
.event{display:grid;grid-template-columns:80px 1fr;gap:34px;position:relative;padding-bottom:24px}
.event:before{content:"";position:absolute;left:90px;top:10px;width:11px;height:11px;border-radius:50%;background:var(--gold);border:3px solid var(--bg)}
.event time{color:var(--gold2);font:500 1rem Georgia,serif}
.event div{padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.06)}
.event small{color:var(--muted)}
.event h3{margin:3px 0 0;font-size:1rem}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}
table{width:100%;border-collapse:collapse;min-width:900px;background:var(--panel)}
th,td{text-align:left;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gold2);background:var(--panel2)}
td{font-size:.84rem;color:#d6dbd8}
td a{color:var(--gold2);text-decoration:none}
.source-box{padding:30px;border:1px solid var(--line);border-radius:22px;background:var(--panel)}
.source-box h2{font:500 2rem Georgia,serif;margin-top:0}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}
.confirmed-dot{background:#73a47f}.source-dot{background:var(--gold)}.research-dot{background:var(--research)}
code{padding:.12rem .4rem;background:rgba(255,255,255,.06);border-radius:6px;color:var(--gold2)}
footer{padding:34px 0 44px}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;color:var(--muted);font-size:.82rem}
.footer-inner b,.footer-inner span{display:block}
.footer-inner b{font:500 1.1rem Georgia,serif;color:var(--text)}
.footer-inner p{margin:0;text-align:right}
@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .two{grid-template-columns:1fr}
  .couple-inner{grid-template-columns:1fr}
  .bond{margin:auto}
}
@media(max-width:700px){
  .wide,.container{width:min(calc(100% - 24px),100%)}
  nav{display:none}
  .hero{min-height:700px}.hero-content{padding:80px 0}
  .hero h1{font-size:clamp(3.2rem,15vw,5rem)}
  .stats{grid-template-columns:1fr 1fr}
  .section{padding:66px 0}
  .subbranch{padding:18px}
  .lineage .children{grid-template-columns:1fr}
  .chronicle:before{left:70px}
  .event{grid-template-columns:58px 1fr;gap:26px}
  .event:before{left:65px}
  .footer-inner{display:block}.footer-inner p{text-align:left;margin-top:16px}
}
