/* Общие стили likhachevs.name. Цвета — токены на :root, тёмная тема ниже. */
:root{
  --paper:#f5f0e6; --paper-2:#ede6d8; --card:#fbf8f2;
  --ink:#27221d; --ink-2:#5f564c; --ink-3:#8a8074;
  --rule:#d9cfbe; --rule-2:#c7bba6;
  --accent:#8a3a28; --accent-soft:#f0ddd4;
  --st-confirmed:#3f6b45; --st-confirmed-bg:#e2ecdf;
  --st-document:#8a6418; --st-document-bg:#f3e8cf;
  --st-hypothesis:#5b6577; --st-hypothesis-bg:#e3e6ec;
  --st-family:#7a6c5d; --st-family-bg:#ebe4d9;
  --serif:"Literata",Georgia,"Times New Roman",serif;
  --sans:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --max:1120px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#1d1a17; --paper-2:#25211d; --card:#24201c;
    --ink:#ece5d9; --ink-2:#b9ae9f; --ink-3:#8d8376;
    --rule:#3a342d; --rule-2:#4a433a;
    --accent:#d98a6f; --accent-soft:#3a2620;
    --st-confirmed:#8fc195; --st-confirmed-bg:#24342a;
    --st-document:#dcb25f; --st-document-bg:#3a3020;
    --st-hypothesis:#a9b3c6; --st-hypothesis-bg:#2b2f38;
    --st-family:#c3b5a4; --st-family-bg:#332d27;
  }
}
:root[data-theme="dark"]{
  --paper:#1d1a17; --paper-2:#25211d; --card:#24201c;
  --ink:#ece5d9; --ink-2:#b9ae9f; --ink-3:#8d8376;
  --rule:#3a342d; --rule-2:#4a433a;
  --accent:#d98a6f; --accent-soft:#3a2620;
  --st-confirmed:#8fc195; --st-confirmed-bg:#24342a;
  --st-document:#dcb25f; --st-document-bg:#3a3020;
  --st-hypothesis:#a9b3c6; --st-hypothesis-bg:#2b2f38;
  --st-family:#c3b5a4; --st-family-bg:#332d27;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--serif);font-optical-sizing:auto}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
@media (max-width:600px){.wrap{padding:0 16px}}

/* hero */
.hero{padding:72px 0 56px;border-bottom:1px solid var(--rule)}
.hero .wrap{display:grid;grid-template-columns:1.25fr .9fr;gap:64px;align-items:start}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:40px}.hero{padding:44px 0 40px}}
.eyebrow{font:500 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 18px}
h1{font:500 clamp(48px,8vw,88px)/.95 var(--serif);letter-spacing:-.02em;margin:0 0 24px}
.lead{font-size:20px;line-height:1.55;color:var(--ink-2);max-width:34em;margin:0 0 28px}
.lead em{color:var(--ink);font-style:italic}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;font:500 15px/1 var(--sans);padding:13px 20px;border-radius:999px;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule-2)}
.btn:hover{opacity:.88}

/* generation ladder */
.ladder{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:26px 26px 18px;position:relative}
.ladder h2{font:500 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 18px}
.ladder ol{list-style:none;margin:0;padding:0;position:relative}
.ladder ol::before{content:"";position:absolute;left:78px;top:8px;bottom:8px;border-left:1px dashed var(--rule-2)}
.ladder li{display:grid;grid-template-columns:68px 1fr;gap:22px;padding:9px 0;position:relative}
.ladder li::after{content:"";position:absolute;left:75px;top:17px;width:7px;height:7px;border-radius:50%;background:var(--paper);border:1px solid var(--ink-3)}
.ladder li.known::after{background:var(--accent);border-color:var(--accent)}
.ladder .yr{font:500 13px/1.6 var(--sans);color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}
.ladder .who{font-size:16px;line-height:1.35}
.ladder .who span{display:block;font:400 13px/1.4 var(--sans);color:var(--ink-3);margin-top:2px}
.ladder .q .who{color:var(--ink-3);font-style:italic}

/* stats */
.stats{border-bottom:1px solid var(--rule)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:28px 20px 26px 0}
.stat+.stat{padding-left:24px;border-left:1px solid var(--rule)}
.stat b{display:block;font:500 40px/1 var(--serif);letter-spacing:-.01em;margin-bottom:8px}
.stat span{font:400 14px/1.4 var(--sans);color:var(--ink-2)}
@media (max-width:760px){.stats .wrap{grid-template-columns:1fr 1fr}.stat:nth-child(3){padding-left:0;border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--rule)}}

/* sections */
section.block{padding:72px 0;border-bottom:1px solid var(--rule)}
@media (max-width:600px){section.block{padding:52px 0}}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px;flex-wrap:wrap}
.sec-head h2{font:500 clamp(30px,4vw,40px)/1.1 var(--serif);margin:0;letter-spacing:-.01em}
.sec-head p{margin:8px 0 0;color:var(--ink-2);max-width:36em}
.more{font:500 14px/1 var(--sans);color:var(--accent);text-decoration:none;white-space:nowrap}
.more:hover{text-decoration:underline}

/* branches */
.branches{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:980px){.branches{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.branches{grid-template-columns:1fr}}
.branch{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:22px 22px 20px;text-decoration:none;display:flex;flex-direction:column;gap:10px;transition:border-color .15s}
.branch:hover{border-color:var(--ink-3)}
.branch .side{font:500 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.branch h3{font:500 24px/1.15 var(--serif);margin:0}
.branch .place{font:400 14px/1.45 var(--sans);color:var(--ink-2)}
.branch p{margin:0;font-size:15px;line-height:1.55}
.branch .meta{margin-top:auto;padding-top:12px;border-top:1px solid var(--rule);font:400 13px/1.4 var(--sans);color:var(--ink-3);display:flex;justify-content:space-between;gap:8px}

/* status badges */
.st{display:inline-flex;align-items:center;gap:6px;font:500 12px/1 var(--sans);padding:5px 9px 5px 8px;border-radius:999px;white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st.confirmed{color:var(--st-confirmed);background:var(--st-confirmed-bg)}
.st.document{color:var(--st-document);background:var(--st-document-bg)}
.st.hypothesis{color:var(--st-hypothesis);background:var(--st-hypothesis-bg)}
.st.hypothesis::before{background:transparent;border:1.5px dashed currentColor;width:5px;height:5px}
.st.family{color:var(--st-family);background:var(--st-family-bg)}
.st.family::before{background:transparent;border:1.5px solid currentColor;width:4px;height:4px}

/* chronicle */
.chron{display:grid;grid-template-columns:200px 1fr;gap:56px}
@media (max-width:860px){.chron{grid-template-columns:1fr;gap:24px}}
.chron aside{position:sticky;top:24px;align-self:start;font:400 14px/1.55 var(--sans);color:var(--ink-2)}
@media (max-width:860px){.chron aside{position:static}}
.chron aside .legend{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-top:14px}
.tl{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule-2)}
.tl li{position:relative;padding:0 0 30px 32px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:"";position:absolute;left:-5px;top:9px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1px solid var(--ink-3)}
.tl li.era{padding-bottom:22px}
.tl li.era::before{display:none}
.tl li.era h3{margin:0 0 0 -32px;padding:4px 0 4px 32px;font:500 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:var(--paper)}
.tl .when{font:600 15px/1.4 var(--sans);font-variant-numeric:tabular-nums;margin-bottom:4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tl .what{margin:0;max-width:40em}
.tl .src{margin-top:6px;font:400 13px/1.45 var(--mono);color:var(--ink-3)}
.tl a.person{text-decoration:none;border-bottom:1px solid var(--rule-2)}
.tl a.person:hover{border-color:var(--accent);color:var(--accent)}

/* stories */
.stories{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width:860px){.stories{grid-template-columns:1fr}}
.story{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:28px;display:grid;grid-template-columns:120px 1fr;gap:24px}
@media (max-width:480px){.story{grid-template-columns:1fr;padding:22px}.story figure{max-width:140px}}
.story figure{margin:0}
.story img{width:100%;aspect-ratio:2/3;object-fit:cover;filter:grayscale(1) contrast(1.02);border:1px solid var(--rule)}
.story figcaption{font:400 11px/1.4 var(--sans);color:var(--ink-3);margin-top:8px}
.story .kicker{font:500 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px}
.story h3{font:500 26px/1.15 var(--serif);margin:0 0 4px}
.story .dates{font:400 14px/1.4 var(--sans);color:var(--ink-2);margin:0 0 14px}
.story p{margin:0 0 14px;font-size:16px}
.story blockquote{margin:16px 0 0;padding:14px 0 0 18px;border-left:2px solid var(--accent);font-style:italic;font-size:16px;line-height:1.55;color:var(--ink-2)}
.story blockquote cite{display:block;font:normal 400 12px/1.45 var(--sans);color:var(--ink-3);margin-top:8px}
.story .read{font:500 14px/1 var(--sans);color:var(--accent);text-decoration:none;display:inline-block;margin-top:16px}

/* method + questions */
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:48px}}
.method dl{margin:24px 0 0;display:grid;grid-template-columns:auto 1fr;gap:14px 18px;align-items:baseline}
.method dt{margin:0}
.method dd{margin:0;font-size:16px;color:var(--ink-2)}
.method .note{margin-top:28px;padding:18px 20px;background:var(--paper-2);border-radius:4px;font:400 14px/1.55 var(--sans);color:var(--ink-2)}
.method .note b{color:var(--ink);font-weight:600}
.qs{list-style:none;margin:24px 0 0;padding:0;counter-reset:q}
.qs li{counter-increment:q;padding:18px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:36px 1fr;gap:8px}
.qs li:last-child{border-bottom:1px solid var(--rule)}
.qs li::before{content:counter(q);font:500 13px/1.9 var(--sans);color:var(--accent)}
.qs h3{font:500 18px/1.35 var(--serif);margin:0 0 4px}
.qs p{margin:0;font-size:15px;color:var(--ink-2)}
.qs a{font:500 13px/1 var(--sans);color:var(--accent);text-decoration:none;display:inline-block;margin-top:10px}

/* invite */
.invite{background:var(--ink);color:var(--paper);padding:64px 0}
.invite .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
@media (max-width:860px){.invite .wrap{grid-template-columns:1fr;gap:28px}}
.invite h2{font:500 clamp(28px,4vw,38px)/1.15 var(--serif);margin:0 0 12px}
.invite p{margin:0;color:color-mix(in srgb,var(--paper) 72%,transparent);font-size:17px}
.invite ul{list-style:none;margin:0;padding:0;font:400 15px/1.5 var(--sans)}
.invite li{padding:12px 0;border-top:1px solid color-mix(in srgb,var(--paper) 18%,transparent)}
.invite li b{font-weight:600}
.invite .btn{background:var(--paper);color:var(--ink);border-color:var(--paper);margin-top:20px}

footer{padding:40px 0 56px;font:400 13px/1.6 var(--sans);color:var(--ink-3)}
footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
footer p{margin:0;max-width:52em}


/* inner pages */
.page-head{padding:56px 0 36px;border-bottom:1px solid var(--rule)}
.page-head h1{font-size:clamp(38px,6vw,60px);margin-bottom:14px}
.page-head .lead{margin:0}
.toc{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:24px;font:500 14px/1.4 var(--sans)}
.toc a{color:var(--accent);text-decoration:none}
.toc a:hover{text-decoration:underline}

/* sources */
.arch{padding:48px 0;border-bottom:1px solid var(--rule)}
.arch>h2{font:500 30px/1.15 var(--serif);margin:0 0 6px}
.arch>p{margin:0 0 24px;color:var(--ink-2);max-width:44em}
.docs{list-style:none;margin:0;padding:0}
.docs>li{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--rule)}
.docs .id{font:500 13px/1.6 var(--mono);color:var(--ink-3)}
.docs h3{font:500 18px/1.35 var(--serif);margin:0 0 4px}
.docs .ref{font:400 13px/1.5 var(--mono);color:var(--ink-2);margin:0 0 6px}
.docs p{margin:0 0 6px;font-size:15px;color:var(--ink-2);max-width:48em}
.docs .row{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font:400 13px/1.5 var(--sans);color:var(--ink-3);margin-top:8px}
.docs .row a{color:var(--accent);text-decoration:none}
.docs .row a:hover{text-decoration:underline}
.docs .who a{color:var(--ink-2)}
.thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.thumbs a{display:block;border:1px solid var(--rule);background:var(--card)}
.thumbs img{width:88px;height:110px;object-fit:cover;object-position:top}
.closed{font:400 13px/1.5 var(--sans);color:var(--ink-3);background:var(--paper-2);padding:6px 10px;border-radius:4px;display:inline-block;margin-top:8px}
@media (max-width:560px){.docs>li{grid-template-columns:1fr;gap:4px}}

.claims{list-style:none;margin:0;padding:0}
.claims li{padding:16px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:150px 1fr;gap:16px}
.claims .txt{margin:0;font-size:16px}
.claims .why{margin:6px 0 0;font:400 14px/1.55 var(--sans);color:var(--ink-3)}
@media (max-width:640px){.claims li{grid-template-columns:1fr;gap:6px}}
.st.conflict{color:var(--accent);background:var(--accent-soft)}

/* family edition: welcome */
.welcome{padding:48px 0 44px;border-bottom:1px solid var(--rule);background:var(--card)}
.welcome h2{font:500 clamp(32px,5vw,46px)/1.1 var(--serif);margin:0 0 14px}
.welcome .lead{margin:0 0 28px;max-width:44em}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.step{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:18px}
.step:hover{border-color:var(--ink-3)}
.step b{font:500 28px/1 var(--serif);color:var(--accent)}
.step strong{display:block;font:600 16px/1.3 var(--sans);margin-bottom:4px}
.step em{display:block;font:400 14px/1.45 var(--sans);font-style:normal;color:var(--ink-2)}
.step.main{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.step.main b,.step.main em{color:var(--paper)}
.step.main em{opacity:.9}
