/* VPN Status 简体中文 — CJK layer on top of ../styles.css
   The system stylesheet is tuned for SF Pro: tight negative tracking and a
   0.98–1.04 display line-height. Both are wrong for Han glyphs, which are
   full-width, full-height, and already carry their own side bearings —
   negative tracking makes them collide and a 1.0 leading makes stacked lines
   touch. This layer only retunes type; it changes no colour and no layout. */

:root {
  --font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", "Segoe UI",
    Roboto, Helvetica, Arial, sans-serif;
}

/* Han text sets no tighter than 0. Latin runs inside it ("macOS", "VPN
   Status", "ipinfo.io") keep the system font's own default. */
h1,
h2,
h3,
.brand,
.lede,
.btn,
.hero-title,
.hero-lede,
.section-title,
.item-title,
.card-title,
.closing-title,
.footer-brand,
.legal-head h1,
.legal-body h2,
.legal-body h3 {
  letter-spacing: 0;
}

.hero-title,
.closing-title {
  line-height: 1.24;
}

.section-title,
.legal-head h1 {
  line-height: 1.3;
}

.item-title,
.card-title {
  line-height: 1.45;
}

/* Chinese needs more leading than Latin at the same size to stay readable. */
.hero-lede,
.lede,
.item-text,
.card-text,
.legal-body p,
.legal-body li {
  line-height: 1.85;
  letter-spacing: 0;
}

/* Han has no word boundaries, so a heading breaks at whatever character the
   line runs out on — the hero was leaving a single glyph stranded on line two.
   Balancing lets it break at the comma instead. */
.hero-title,
.section-title,
.closing-title,
.item-title {
  text-wrap: balance;
}

.hero-lede,
.lede,
.item-text,
.card-text {
  text-wrap: pretty;
}

/* text-transform does nothing to Han, and here it only mangles the one Latin
   word in the label ("macOS" → "MACOS"). The wide tracking still reads as a
   deliberate label, so that stays — just a little narrower. */
.eyebrow {
  letter-spacing: 0.08em;
  text-transform: none;
}
