/* «Семь родов» на сайте: та же книга, что и в печати, но одной лентой для экрана. Цвета — переменные из app.css. */
body { display: block; }
.book { max-width: 760px; margin: 0 auto; padding: 8px 20px 96px; font: 17px/1.68 var(--serif); color: var(--ink); }
.book a { color: var(--accent); text-underline-offset: 3px; }
.book a.pl, .book a.cref { text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); }
.print-only { display: none !important; }
.book p { margin: 0 0 12px; }
.book [id] { scroll-margin-top: 16px; }

/* титул */
.halftitle { text-align: center; padding: 48px 0 32px; border-bottom: 1px solid var(--line); }
.halftitle .kicker, .part { font: 600 11px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); margin: 0 0 10px; }
.halftitle h1 { font: 600 clamp(36px, 7vw, 56px)/1.05 var(--serif); margin: 6px 0 14px; }
.halftitle .bsub { font-style: italic; font-size: 19px; color: var(--ink); }
.halftitle .dedic { margin-top: 28px; font-style: italic; color: var(--muted); font-size: 16px; }
.halftitle .edition { margin-top: 24px; font: 14px var(--sans); color: var(--muted); }
.colophon { font: 13px/1.55 var(--sans); color: var(--muted); padding: 20px 0; border-bottom: 1px solid var(--line); }
.colophon p { margin: 0 0 6px; }

/* оглавление */
.toc h2 { font: 600 24px var(--serif); margin: 32px 0 12px; }
.toc-list { list-style: none; margin: 0; padding: 0; font: 15px/1.4 var(--sans); }
.toc-list li a { display: block; padding: 5px 0; color: var(--ink); text-decoration: none; }
.toc-list li a:hover { color: var(--accent); }
.toc-list .l1 { margin-top: 14px; font-weight: 600; }
.toc-list .l2 { padding-left: 16px; }
.toc-list .l3 { padding-left: 32px; font-size: 14px; color: var(--muted); }
.toc-list .l3 a { color: var(--muted); }

/* части и главы */
.partpage { margin: 72px 0 8px; padding-top: 40px; border-top: 3px double var(--line); text-align: center; }
.partpage h1 { font: 600 clamp(30px, 5vw, 44px)/1.1 var(--serif); margin: 0; }
.subpart { margin-top: 48px; }
.subpart > .part { display: none; }
h2.pt { font: 600 clamp(26px, 4vw, 34px)/1.15 var(--serif); margin: 0 0 16px; }
.chapter { margin-top: 56px; }
.chapter.story { margin-top: 40px; }
h2.ch { font: 600 24px/1.25 var(--serif); margin: 0 0 12px; display: flex; flex-direction: column; }
h2.ch .yr { font: 600 12px var(--sans); letter-spacing: .12em; color: var(--accent); margin-bottom: 4px; }
h3.bsub { font: 600 20px var(--serif); margin: 28px 0 10px; }
h4.gen { font: 600 11px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 36px 0 4px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.lede { color: var(--muted); font-size: 18px; font-style: italic; }
.bfacts { font: 14px/1.5 var(--sans); color: var(--muted); }
.line-open { border-left: 4px solid var(--lc, var(--accent)); padding-left: 16px; }
.book ul { padding-left: 20px; }
.book li { margin-bottom: 8px; }

/* иллюстрации */
.book figure { margin: 20px 0; }
.book figure img { display: block; max-width: 100%; height: auto; border-radius: 6px; margin: 0 auto; }
.book figure.photo img { max-height: 520px; }
.book figcaption { font: 13px/1.45 var(--sans); color: var(--muted); margin-top: 6px; }
.book figcaption .credit { display: block; font-size: 12px; opacity: .85; }
.frow { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; align-items: start; margin: 20px 0; }
.frow figure { margin: 0; }

/* схема */
.chart-scroll { overflow-x: auto; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 12px; }
.chart-scroll svg { width: 1100px; height: auto; display: block; }
.blegend { font: 13px var(--sans); color: var(--muted); margin-top: 10px; white-space: normal; }
.blegend span { margin-right: 14px; white-space: nowrap; }
.blegend b { display: inline-block; min-width: 18px; padding: 0 4px; margin-right: 3px; color: #fff; background: var(--c); border-radius: 6px; text-align: center; font-size: 11px; }
svg .ln { fill: none; stroke: var(--line); stroke-width: .35; }
svg .card rect:first-child { fill: var(--paper); stroke: var(--line); stroke-width: .3; }
svg .root rect { fill: var(--accent); }
svg .root text { fill: #fff; }
svg text { font-family: var(--sans); fill: var(--ink); }
svg .sn { font-size: 2.9px; font-weight: 700; }
svg .nm { font-size: 2.7px; }
svg .root .nm { font-size: 3.4px; font-weight: 700; }
svg .sub, svg .yrs { font-size: 2.2px; fill: var(--muted); }
svg .root .sub { fill: #f0e3cf; }
svg .tag { font-size: 1.9px; font-weight: 700; }
svg .yrs { text-anchor: end; }
svg .unk { font-size: 2.2px; fill: var(--muted); font-style: italic; }
svg .gh { font-size: 2.4px; font-weight: 700; letter-spacing: .25px; fill: var(--accent); text-transform: uppercase; }

/* статьи о людях */
.person { border-top: 1px solid var(--line); padding: 20px 0 8px; }
.person::after { content: ""; display: block; clear: both; }
.person h3 { font: 600 21px/1.3 var(--serif); margin: 0 0 2px; padding-left: 12px; border-left: 4px solid var(--lc, var(--muted)); }
.person h3 .yrs { font: 14px var(--sans); color: var(--muted); margin-left: 10px; white-space: nowrap; }
.prob { color: var(--muted); }
.person .rel { font: italic 15px var(--serif); color: var(--muted); margin: 0 0 10px; }
.person dl { display: grid; grid-template-columns: 120px 1fr; gap: 4px 12px; margin: 0 0 12px; font: 14px/1.45 var(--sans); }
.person dt { color: var(--muted); }
.person dd { margin: 0; }
.person .bnotes p { font-size: 16px; line-height: 1.65; }
.person .srcs { font: 13px var(--sans); color: var(--muted); }
.pphoto { float: right; width: 150px; margin: 4px 0 12px 20px !important; }
.pphoto img { max-height: 210px; object-fit: cover; object-position: top; width: 100%; }
.pphoto figcaption { text-align: center; }
.unk { color: var(--muted); font-style: italic; }
.srefs { white-space: nowrap; }
a.sref { display: inline-block; font: 600 11px/1.5 var(--sans); padding: 0 5px; margin: 0 2px; border-radius: 6px; background: var(--chip); color: var(--accent); text-decoration: none; vertical-align: 1px; }

/* роспись, летопись, документы, указатели */
.roster ul, .possible, .chron { list-style: none; padding: 0; font: 15px/1.5 var(--sans); }
.roster li, .possible li, .chron li { padding: 6px 0; border-bottom: 1px dashed var(--line); margin: 0; }
.roster .yrs, .possible .yrs { color: var(--muted); }
.possible .rn { font-size: 13px; color: var(--muted); }
.bdoc { padding: 12px 0; border-bottom: 1px solid var(--line); }
.bdoc p { margin: 0 0 4px; }
.bdoc .dh b { font: 600 13px var(--sans); color: var(--accent); margin-right: 6px; }
.bdoc .dm { font: 13px var(--sans); color: var(--muted); }
.bdoc .ds { font-size: 15px; line-height: 1.55; }
.bdoc .du { font: 12px var(--sans); color: var(--muted); word-break: break-all; }
blockquote { margin: 0 0 20px; padding-left: 16px; border-left: 3px solid var(--line); }
blockquote p { font-style: italic; }
blockquote footer { font: 13px var(--sans); color: var(--muted); }
.idx { columns: 2 260px; column-gap: 32px; list-style: none; padding: 0; font: 14px/1.5 var(--sans); }
.idx li { break-inside: avoid; margin: 0; }
.idx .letter { font: 600 18px var(--serif); color: var(--accent); margin-top: 12px; }
.idx a { color: var(--ink); text-decoration: none; }
.idx a.main { font-weight: 600; }
.pidx { list-style: none; padding: 0; font: 14px/1.5 var(--sans); }
.pidx li { padding: 8px 0; border-bottom: 1px dashed var(--line); }
.pidx .where { color: var(--muted); }

/* рукопись */
.manuscript { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 20px; }
.manuscript p { font-style: italic; }
.ms-title, .ms-gen { text-align: center; font-style: normal !important; }
.ms-title { font-weight: 600; }
.ms-gen { text-decoration: underline; }

@media (max-width: 720px) {
  .book { padding: 4px 16px 72px; font-size: 16px; }
  .person dl { grid-template-columns: 1fr; gap: 0; }
  .person dt { margin-top: 6px; }
  .pphoto { width: 110px; margin-left: 12px !important; }
}
@media print { header.bar { display: none; } }

