:root{--bg:#faf9f5;--text:#283d34;--muted:#7a827b;--line:#e3e5dc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Arial,sans-serif;font-size:17px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}header{height:104px;max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 35px}.brand{display:flex;gap:12px;align-items:center;font-size:21px;font-weight:700;letter-spacing:1px}.brand:first-letter{font-size:36px}.brand small{display:block;font-size:14px;letter-spacing:2.1px;margin-top:5px;color:var(--muted)}nav{display:flex;gap:32px;font-size:16px}.header-note{font-size:14px;color:var(--muted)}i{display:inline-block;background:#8aab83;width:6px;height:6px;border-radius:50%;margin-left:8px}main{max-width:1210px;margin:auto}.hero{position:relative;padding:66px 0 0;overflow:hidden}.eyebrow{font-size:14px;letter-spacing:2px;font-weight:600;color:#7c887b}h1,h2{font-family:Georgia,serif;font-weight:400}h1{font-size:83px;line-height:1.06;letter-spacing:-3px;margin:25px 0}h1 em{font-weight:400;color:#81957a}.hero p{color:#798078;font-size:18px;line-height:1.9}.primary{display:inline-flex;gap:42px;align-items:center;background:#304c3f;color:white;padding:15px 22px;margin:19px 0 48px;border-radius:5px;font-size:15px}.primary:hover{background:#486351}.hero-bottom{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:20px 0;color:#8d938a;font-size:14px;letter-spacing:1.5px}.hero-art{position:absolute;right:30px;top:50px;width:470px;height:410px}.orbit{position:absolute;width:315px;height:315px;border:1px solid #e1e5d9;border-radius:50%;top:25px;left:75px}.o2{width:420px;height:420px;top:-25px;left:22px;border-style:dashed;opacity:.7}.stem{position:absolute;top:60px;left:233px;width:1px;height:235px;background:#c5cfc0}.leaf{position:absolute;display:grid;place-items:center;font-family:Georgia,serif;font-size:41px;width:125px;height:105px;box-shadow:0 10px 30px #314d3910;border:6px solid var(--bg)}.l1{background:#dceefa;color:#34769b;top:45px;left:92px;border-radius:70px 70px 8px 70px;transform:rotate(-8deg)}.l2{background:#e3efdf;color:#577748;top:45px;right:77px;border-radius:70px 70px 70px 8px;transform:rotate(8deg)}.l3{background:#fbefcc;color:#947427;top:163px;left:92px;border-radius:70px 8px 70px 70px;transform:rotate(8deg)}.l4{background:#ede4f5;color:#8865a1;top:163px;right:77px;border-radius:8px 70px 70px 70px;transform:rotate(-8deg)}.root{position:absolute;top:290px;left:193px;text-align:center;font-size:38px}.root small{display:block;font-size:14px;letter-spacing:2px}.art-caption{position:absolute;bottom:0;left:112px;font-family:Georgia,serif;font-style:italic;color:#8d9789;font-size:16px}section:not(.hero){padding-top:57px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}h2{font-size:36px;letter-spacing:-1px;margin:11px 0 0}.section-head p{color:var(--muted);font-size:15px;line-height:1.8}.clan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.clan-card{background:var(--clan);padding:25px 24px 19px;border-radius:8px;border:1px solid transparent;text-align:left;color:var(--ink);transition:transform .2s}.clan-card:hover{transform:translateY(-4px)}.clan-top{display:flex;justify-content:space-between;font-size:14px;letter-spacing:1px}.clan-card h3{font:32px Georgia,serif;margin:24px 0 8px}.clan-card p{font-size:14px;margin:0 0 27px;min-height:15px}.clan-bottom{border-top:1px solid #ffffff80;padding-top:15px;display:flex;justify-content:space-between;font-size:14px}.view-switch{background:#efefe9;padding:4px;border-radius:6px;display:flex}.view-switch button{border:0;background:none;padding:9px 14px;color:var(--muted);border-radius:4px;font-size:14px}.view-switch .active{background:white;color:var(--text);box-shadow:0 1px 4px #00000009}.toolbar{display:flex;gap:12px}.search{flex:1;display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);border-radius:5px;padding:0 15px}.search span{font-size:26px;color:#8b968a}.search input{width:100%;border:0;outline:0;background:transparent;padding:14px 0;font-size:15px}.toolbar select,.toolbar button{border:1px solid var(--line);border-radius:5px;padding:10px 14px;background:transparent;color:#6b776e;font-size:15px}.tabs{display:flex;gap:27px;border-bottom:1px solid var(--line);margin-top:25px;overflow:auto}.tabs button{border:0;background:none;padding:13px 2px;font-size:15px;color:#7d877c;white-space:nowrap}.tabs button.active{color:#304c3f;border-bottom:2px solid #304c3f;font-weight:600}.results-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 16px;font-size:14px;color:var(--muted)}.results-heading button{background:none;border:0;font-size:14px;color:#57705b}.family{background:white;border:1px solid var(--line);border-radius:7px;margin-bottom:12px;overflow:hidden}.family summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:20px}.family summary::-webkit-details-marker{display:none}.avatar{display:grid;place-items:center;flex-shrink:0;width:41px;height:41px;background:var(--clan);color:var(--ink);border-radius:50%;font:18px Georgia,serif}.family-name{flex:1}.family-name strong{font-size:15px;font-weight:600;display:block}.family-name small{display:block;color:#8c938b;font-size:14px;margin-top:7px}.badge{font-size:14px;background:#f3f4ee;color:#71816d;padding:5px 8px;border-radius:4px}.arrow{color:#a3ad9c}.children{margin:0 22px 20px 40px;border-left:1px solid #dce4d6;padding-left:27px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.person{border:1px solid #e6e9e0;border-radius:5px;background:#fcfdf9;text-align:left;padding:15px;color:var(--text)}.person:hover{border-color:#9fae93}.person strong{font-size:14px;display:block;line-height:1.6}.person small{display:block;font-size:14px;color:#8c9688;margin-top:6px}.list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.data-note{font-size:14px;color:#929888;line-height:1.8;margin:23px 0}.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:40px;padding:40px!important;background:#eeefe6;border-radius:8px}.about p{font-size:15px;color:#7e8978;line-height:1.9}.code-demo{display:flex;gap:15px;margin-bottom:15px}.code-demo span{font:42px Georgia,serif;border-bottom:1px solid #cfd7c7;padding:0 15px 15px;text-align:center}.code-demo small{display:block;font:8px Segoe UI,sans-serif;letter-spacing:1px;margin-top:8px}footer{max-width:1210px;margin:55px auto 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:30px 0;color:#8a9385;font-size:14px}footer .brand{font-size:15px;color:var(--text)}dialog{border:1px solid var(--line);border-radius:12px;padding:36px;max-width:500px;width:90%;color:var(--text);background:var(--bg)}dialog::backdrop{background:#18332766;backdrop-filter:blur(4px)}#close-dialog{position:absolute;top:10px;right:15px;border:0;background:none;font-size:27px;color:#6f7f6d}dialog h2{font-size:28px}dialog p{line-height:1.9;color:#73816f}.empty{padding:45px;text-align:center;color:var(--muted)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #50755b;outline-offset:4px}@media(min-width:1500px){main,footer{max-width:1210px}}@media(max-width:1300px){main,footer{margin-left:5%;margin-right:5%}}@media(max-width:850px){header{padding:0 5%;height:85px}.header-note{display:none}nav{gap:18px}.hero-art{right:-65px;transform:scale(.75);transform-origin:right center;opacity:.8}h1{font-size:67px}.hero p{max-width:45%}.clan-grid{grid-template-columns:repeat(2,1fr)}.children,.list-grid{grid-template-columns:repeat(2,1fr)}.about{gap:20px;padding:25px!important}.section-head p{display:none}}@media(max-width:560px){header .brand{font-size:18px}nav a{font-size:14px}nav a:first-child{display:none}.hero{padding-top:38px}h1{font-size:60px}.hero-art{opacity:.5;right:-135px;top:40px;transform:scale(.6)}.hero p{max-width:70%;font-size:16px;position:relative}.hero-bottom{font-size:14px;gap:15px}.clan-grid{gap:10px}.clan-card{padding:18px}.clan-card h3{margin-top:16px}.clan-card p{line-height:1.6;min-height:35px;margin-bottom:15px}h2{font-size:29px}.section-head{align-items:flex-end}.view-switch button{padding:8px;font-size:14px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.toolbar select{flex:1}.tabs{gap:20px}.children,.list-grid{grid-template-columns:1fr}.children{margin-left:27px;padding-left:15px}.family summary{padding:15px;gap:10px}.family-name strong{font-size:14px}.badge{font-size:14px}.about{grid-template-columns:1fr;margin-top:20px}.code-demo span{font-size:35px}footer{gap:15px;flex-wrap:wrap}.hero-bottom span:last-child{white-space:nowrap}.desktop{display:none}}

/* Larger, upright typography for comfortable family browsing. */
body{font-size:17px;line-height:1.65;--muted:#59675c}
h1,h2,.clan-card h3{font-family:"Segoe UI",Arial,sans-serif;font-weight:700;font-style:normal;letter-spacing:-1px}
h1 em{font-style:normal;font-weight:700;color:#5e7958}
.art-caption{font-family:"Segoe UI",Arial,sans-serif;font-style:normal;color:#59675c}
.family-name strong,.person strong{font-size:16px;line-height:1.6;font-weight:700;overflow-wrap:anywhere}
.family-name small,.person small{font-size:14px;line-height:1.7;color:#59675c}
.family-name strong span{color:#59675c!important}
.hero p,.about p,.section-head p,dialog p{font-size:17px;color:#59675c}
.eyebrow,.hero-bottom,.clan-top{font-weight:600;letter-spacing:1px}
.clan-card p{font-size:15px;line-height:1.7;min-height:52px}
.clan-bottom{flex-wrap:wrap;gap:8px;font-size:14px}
.search input,.toolbar select,.toolbar button,.tabs button,.view-switch button{font-size:16px}
.tabs button{min-height:48px}.person{padding:17px}.badge{white-space:nowrap}
.children{grid-template-columns:repeat(2,minmax(0,1fr))}
.family-name{min-width:0}.section-head{gap:20px}
@media(max-width:850px){.header-note{display:none}.hero-art{opacity:.4}.section-head{flex-wrap:wrap}}
@media(max-width:560px){header{height:auto;min-height:90px;gap:15px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px}header .brand{font-size:18px}nav a{font-size:14px}.hero p{max-width:100%}.hero-art{opacity:.17}h1{font-size:56px}.hero-bottom{flex-wrap:wrap;font-size:12px}.hero-bottom span:last-child{white-space:normal}.clan-card{padding:16px}.clan-card h3{font-size:30px}.clan-card p{min-height:77px}.children,.list-grid{grid-template-columns:1fr}.family summary{flex-wrap:wrap}.family-name{flex-basis:calc(100% - 60px)}.family summary>.badge{margin-left:51px}.family-name strong,.person strong{font-size:16px}.badge{font-size:14px}.view-switch button{font-size:14px}.code-demo{gap:5px}.code-demo small{font-size:11px;letter-spacing:0}.code-demo span{padding-left:10px;padding-right:10px}footer{font-size:14px}footer .brand{font-size:16px}}

/* Keep the family navigation visible while scrolling. */
header{position:sticky;top:0;z-index:100;background:var(--bg);box-shadow:0 3px 12px #283d3408}
html{scroll-padding-top:124px}
@media(max-width:850px){html{scroll-padding-top:110px}}
@media(max-width:560px){html{scroll-padding-top:155px}}

/* Vertical hierarchy: every generation and sibling flows downward. */
.hierarchy{padding:24px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
.hierarchy-root,.hierarchy-clan{padding:18px 22px;border-radius:6px;max-width:650px}
.hierarchy-root{background:var(--text);color:#fff}.hierarchy strong{display:block;font-size:16px}.hierarchy small{display:block;font-size:14px;margin-top:5px}
.hierarchy ul{list-style:none;margin:0 0 0 22px;padding:16px 0 0 25px;border-left:2px solid #d7dfd1}
.hierarchy li{position:relative;padding:0 0 18px;min-width:0}
.hierarchy li:before{content:"";position:absolute;left:-25px;top:26px;width:25px;border-top:2px solid #d7dfd1}
.hierarchy-clan{background:var(--clan);color:var(--ink);border-left:4px solid var(--ink)}
.hierarchy-family>summary{list-style:none;cursor:pointer;display:flex;gap:16px;align-items:center;justify-content:space-between;max-width:650px;border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:6px;padding:16px 20px;background:#fafbf7}
.hierarchy-family>summary::-webkit-details-marker{display:none}.hierarchy-family:not([open])>summary .arrow{transform:rotate(-90deg)}
.hierarchy .person{width:100%;max-width:650px;display:block;background:#fff}.hierarchy .person:hover{background:var(--clan)}
.view-switch{flex-wrap:wrap}
@media(max-width:560px){.hierarchy{padding:16px 10px}.hierarchy ul{margin-left:10px;padding-left:13px}.hierarchy li:before{left:-13px;width:13px}.hierarchy-family>summary{padding:13px 10px}.hierarchy-root,.hierarchy-clan{padding:14px}.hierarchy .person{padding:13px}.hierarchy-family .family-name{flex-basis:auto}.view-switch{width:100%}.view-switch button{flex:1}}
.descendant-branch{min-width:0}.descendant-branch>.person{width:100%}.next-generation{margin:12px 0 0 15px;padding-left:15px;border-left:2px solid #d7dfd1;display:flex;flex-direction:column;gap:10px}.next-generation .person small{line-height:1.8}
