/* Self-hosted variable fonts; only the Unicode subsets present on the page load. */
:root {
  --serif: "Noto Serif SC Variable", "Songti SC", "STSong", Georgia, serif;
  --sans: "Inter Variable", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", "PingFang SC", "Microsoft YaHei", monospace;
}

body { font-kerning: normal; }

/* News headlines use an editorial face; controls keep their simpler shapes. */
.brand-name { font-family: var(--serif); font-weight: 800; letter-spacing: .02em; }
.masthead-aside { font-family: var(--serif); font-weight: 600; line-height: 1.55; letter-spacing: 0; }
.lead-content h2,
.quick-story h3,
.news-card h3,
.feed-row h3,
.search-result strong { font-family: var(--serif); font-weight: 650; letter-spacing: 0; }
.lead-content h2 { line-height: 1.5; }
.quick-story h3,
.news-card h3,
.feed-row h3 { line-height: 1.55; }
.intro h1,
.content-heading h2,
.reading-note h3 { font-family: var(--serif); font-weight: 650; letter-spacing: -.025em; }
.lead-summary { font-size: 14px; line-height: 1.9; }
.card-summary,
.feed-summary { line-height: 1.9; }
.nav-link,
.filter-button { font-weight: 500; }
.nav-count,
.story-time,
.feed-date,
.filter-button span,
.reader-progress-label,
.reader-metadata { font-family: var(--sans); font-variant-numeric: tabular-nums; }

/* A slightly heavier text cut remains legible on paper and in dark mode. */
.reader-article-header h2 {
  font-family: var(--serif);
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: -.015em;
}
.reader-article-header h2:lang(en) { line-height: 1.28; letter-spacing: -.025em; }
.reader-original-title { font-family: var(--serif); font-weight: 400; letter-spacing: 0; }
.reader-prose,
.reader-summary-preview > p {
  font-family: var(--serif);
  font-weight: 450;
  line-height: 1.95;
  letter-spacing: .01em;
  line-break: strict;
  font-variant-numeric: lining-nums;
}
.reader-prose:lang(en) { font-family: var(--serif); font-weight: 400; line-height: 1.8; letter-spacing: 0; }
.reader-prose h3 { font-family: var(--serif); font-weight: 650; line-height: 1.65; letter-spacing: 0; }
.reader-font-switch button { font-family: var(--serif); font-weight: 500; }
.reader-byline { font-size: 12px; }
.reader-metadata { font-size: 11px; }
.reader-figure figcaption { font-size: 12px; }

@media (max-width: 600px) {
  .lead-content h2 { line-height: 1.5; }
  .lead-summary { font-size: 12px; line-height: 1.9; }
  .reader-article-header h2 { font-size: 28px; line-height: 1.55; letter-spacing: -.015em; }
  .reader-article-header h2:lang(en) { font-size: 30px; line-height: 1.35; }
  .reader-prose,
  .reader-summary-preview > p { line-height: 1.9; letter-spacing: 0; }
  .reader-prose:lang(en) { line-height: 1.75; }
  .reader-byline,
  .reader-metadata { font-size: 10px; }
  .reader-figure figcaption { font-size: 11px; }
}
@media (max-width: 360px) {
  .reader-article-header h2 { font-size: 26px; }
  .reader-article-header h2:lang(en) { font-size: 28px; }
}
