.chapter-page .page-content { display: flex; flex-direction: column; }
.chapter-page .running { flex: none; }
.chapter-flow { padding-bottom: var(--magazine-reading-footer-gap); margin-top: var(--magazine-chapter-gap); flex: 1; min-height: 0; }
.chapter-flow h2 { font-size: var(--magazine-heading-size); line-height: var(--magazine-heading-leading); font-weight: var(--font-regular); letter-spacing: var(--magazine-heading-tracking); margin: 0 0 var(--magazine-heading-gap); }
.chapter-flow h3 { font-size: var(--magazine-subheading-size); line-height: var(--magazine-subheading-leading); font-weight: var(--font-regular); letter-spacing: var(--magazine-subheading-tracking); margin: 0 0 var(--magazine-subheading-gap); }
.chapter-flow p { font-size: var(--magazine-body-size); line-height: var(--magazine-body-leading); letter-spacing: var(--magazine-body-tracking); margin: 0 0 var(--magazine-paragraph-gap); }
.references-page .chapter-flow p { font-size: var(--magazine-reference-size); line-height: var(--magazine-reference-leading); overflow-wrap: anywhere; }
.chapter-flow sup { font-size: var(--magazine-citation-size); line-height: 0; color: var(--magazine-accent); }
.contents-row.chapter-link { color: var(--magazine-accent); padding: var(--magazine-contents-padding) 0; line-height: var(--magazine-contents-line-ratio); }

.chapter-flow blockquote, .data-right .article-quote {
  margin: 0 0 var(--magazine-quote-gap);
  padding-inline-start: var(--magazine-quote-inset);
  border-inline-start: var(--magazine-quote-rule) solid var(--magazine-accent);
  font-size: var(--magazine-body-size);
  line-height: var(--magazine-body-leading);
  letter-spacing: var(--magazine-quote-tracking);
  font-style: italic;
  color: var(--magazine-quote-color);
}
.chapter-flow .quote-lead { margin-bottom: var(--magazine-quote-gap); }
.chapter-flow .quote-attribution { display: block; font-style: normal; margin-top: calc(var(--magazine-quote-gap) / 2); }
.chapter-flow > :last-child { margin-bottom: 0; }
.data-right .article-quote { margin-top: var(--magazine-paragraph-gap); }
.article-quote sup { font-size: var(--magazine-citation-size); font-style: normal; line-height: 0; color: var(--magazine-accent); }

/* Keep fractional glyph advances when the same printed layout is read on Linux. */
.source-leaf { --source-density: 1; font-family: var(--font-reading); text-rendering: geometricPrecision; }
.source-leaf .chapter-flow { margin-top: var(--magazine-chapter-gap); }
.source-leaf .chapter-flow p, .source-leaf .chapter-flow blockquote {
  font-size: calc(var(--magazine-body-size) * var(--source-density));
  line-height: calc(var(--magazine-body-leading) * var(--source-density));
  margin-bottom: calc(var(--magazine-paragraph-gap) * var(--source-density));
}
.source-leaf .chapter-flow h2 {
  font-size: calc(var(--magazine-heading-size) * var(--source-density));
  line-height: calc(var(--magazine-heading-leading) * var(--source-density));
  margin-bottom: calc(var(--magazine-heading-gap) * var(--source-density));
}
.source-leaf .chapter-flow h3 {
  font-size: calc(var(--magazine-subheading-size) * var(--source-density));
  line-height: calc(var(--magazine-subheading-leading) * var(--source-density));
  margin-bottom: calc(var(--magazine-subheading-gap) * var(--source-density));
}
.source-leaf.compact-page {
  --magazine-body-size: var(--magazine-compact-body-size);
  --magazine-body-leading: var(--magazine-compact-body-leading);
  --magazine-heading-size: var(--magazine-compact-heading-size);
  --magazine-heading-leading: var(--magazine-compact-heading-leading);
  --magazine-subheading-size: var(--magazine-compact-heading-size);
  --magazine-subheading-leading: var(--magazine-compact-heading-leading);
  --magazine-paragraph-gap: var(--magazine-source-block-gap);
  --magazine-subheading-gap: var(--magazine-source-block-gap);
  --magazine-heading-gap: var(--magazine-source-block-gap);
}
.source-leaf .chapter-flow .source-caption, .source-leaf .chapter-flow .source-kicker {
  font-size: calc(var(--magazine-source-caption-size) * var(--source-density));
  line-height: calc(var(--magazine-source-caption-leading) * var(--source-density));
  color: var(--magazine-muted-ink);
}
.source-leaf .chapter-flow .source-kicker { text-transform: uppercase; letter-spacing: var(--magazine-quote-tracking); }
.source-leaf .chapter-flow .source-byline {
  font-size: calc(var(--magazine-compact-body-size) * var(--source-density));
  line-height: calc(var(--magazine-compact-body-leading) * var(--source-density));
}
.source-leaf .source-cover {
  max-height: var(--magazine-source-image-height);
  max-width: var(--magazine-source-image-width);
  display: block;
  margin: 0 auto var(--magazine-source-block-gap);
  object-fit: contain;
}
.source-leaf .source-mark { max-width: var(--magazine-drop-cap-size); max-height: var(--magazine-drop-cap-size); }
.source-leaf .source-cover-text {
  position: absolute;
  width: 1px;
  height: 1px;
  clip-path: inset(50%);
  overflow: hidden;
}
.source-facsimile .source-face {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.source-facsimile .running, .source-facsimile .folio { visibility: hidden; }
.source-leaf .source-watermark {
  position: absolute;
  inset: var(--magazine-page-margin);
  width: calc(100% - var(--magazine-page-margin) * 2);
  opacity: var(--magazine-source-watermark-opacity);
  pointer-events: none;
}
.source-leaf .chapter-flow { overflow-wrap: anywhere; }
.source-leaf .in-article { margin-top: var(--magazine-source-block-gap); }
.source-leaf .in-article h3 { font-size: var(--magazine-source-caption-size); color: var(--magazine-muted-ink); }
.source-leaf .in-article a { font-size: var(--magazine-source-caption-size); }
.source-leaf.directory-page .chapter-flow h3 {
  font-size: calc(var(--magazine-directory-heading-size) * var(--source-density));
  line-height: calc(var(--magazine-directory-heading-leading) * var(--source-density));
  margin-bottom: calc(var(--magazine-directory-block-gap) * var(--source-density));
}
.source-leaf.directory-page .chapter-flow p {
  line-height: calc(var(--magazine-directory-body-leading) * var(--source-density));
  margin-bottom: calc(var(--magazine-directory-block-gap) * var(--source-density));
}
