/* ==========================================================================
   FateHalo — 中文排版补充

   Loaded by the pages under /zh/ only, after style.css and readings.css, so it
   can correct what the Latin-first typography assumes without touching a byte
   of the English pages.  Four things need saying:

     1. Latin families stay first in every stack, so Latin words inside a
        Chinese page (FateHalo, BaZi, e-mail addresses) still get Cormorant and
        Jost.  The Chinese families are appended as fallbacks, which is what the
        browser reaches for only when the Latin font has no glyph.
     2. The wide tracking the design uses on small caps-style labels is a Latin
        device.  Chinese glyphs already carry their own side bearing, so the
        same values read as broken spacing.  Capped at 0.05em below.
     3. Chinese has no true italic; the browser fakes an oblique that shears the
        strokes.  Emphasis is carried by colour and weight instead.
     4. CJK glyphs are drawn on a full em box, so they look larger and set
        tighter than Latin at the same size.  A little extra leading and a
        hair less size on the display face restores the original rhythm.
   ========================================================================== */

/* --------------------------------------------------------------- 字体栈 */
:root {
  --font-display:
    "Cormorant Garamond", "Iowan Old Style", Georgia, "Times New Roman",
    "Songti SC", "Source Han Serif SC", "Noto Serif SC", "Noto Serif CJK SC",
    "STSong", "SimSun", serif;

  --font-sans:
    "Jost", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial,
    "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC",
    "Noto Sans CJK SC", "Noto Sans SC", "WenQuanYi Micro Hei", sans-serif;
}

/* ----------------------------------------------------------- 字距与正文 */
/* Every selector below carries 0.12em or more in the base sheets.  Measured
   from the stylesheets rather than guessed; see README, "中文版". */
.eyebrow,
.hero__scroll,
.brand__tag,
.nav__link,
.btn,
.link-arrow,
.hero__meta-label,
.breadcrumb,
.svc__index,
.stat__label,
.step::before,
.quote__role,
.person__role,
.field label,
.site-footer h4,
.choice__meta,
.readout__head,
.readout__k,
.tc__pos,
.tc__num,
.tc__flag,
.ledger__k,
.combo__cc,
.path__tag {
  letter-spacing: 0.05em;
}

/* The kickers read as deliberate labels rather than as squeezed body text, so
   they keep a little more air than the rest. */
.eyebrow,
.brand__tag,
.hero__scroll {
  letter-spacing: 0.11em;
}

/* Chinese sets a fraction tighter than Latin at the same size; nudging the
   display face down keeps headings from over-running their measured blocks. */
.hero h1,
.page-head h1,
.section-head h2 {
  letter-spacing: 0;
}

h2,
h3,
h4,
.hero h1 {
  line-height: 1.32;
}

.hero h1 {
  line-height: 1.24;
}

/* Raised on the body rather than on `p`, so only the copy that inherits its
   leading moves; captions and labels keep the sizes the design gave them. */
body {
  line-height: 1.82;
}

/* --------------------------------------------------------------- 斜体 */
/* Two rules in the base sheet italicise display text.  Chinese has no italic
   form, so the shear is replaced by the gold accent the design already uses. */
.hero h1 em,
.quote__text {
  font-style: normal;
}

.quote__text {
  font-weight: 400;
}

/* --------------------------------------------------------- 出生地下拉 */
/* The country sits beside the city in a small uppercase Latin label.  Chinese
   country names need a little more size and no `uppercase` (which is a no-op
   on CJK but would still be inherited by any Latin territory name that falls
   back to English). */
.combo__cc {
  font-size: 0.76rem;
  text-transform: none;
  color: var(--muted);
}

/* The Chinese name leads the row in Chinese, the English name supports it, and
   the pip glyphs on the tarot cards stay as they are. */

/* ------------------------------------------------------------- 表单文案 */
/* Placeholder and error text run longer in Chinese than the Latin original in
   a couple of spots; nothing needs to change structurally, but the field hint
   line benefits from the extra leading already applied above. */
::placeholder {
  letter-spacing: 0.02em;
}
