// Font families. The lesson text is Chinese + heavy math.
//
// We pass FONT FALLBACK LISTS rather than single names: typst tries each in
// order and falls back to the next if a face is missing. This means we never
// hard-fail when one specific CJK font is absent on the compile host — a key
// MVP robustness requirement (CI may have a different font set).

/// Serif body font (宋体). First broadly-shipped match wins; if none are
/// present typst falls back to its own default — we never hard-fail.
#let serif = ("Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", "SimSun")

/// Sans / heading font (黑体).
#let sans = ("Noto Sans CJK SC", "Source Han Sans SC", "PingFang SC", "Heiti SC", "SimHei")

/// Accent font used for problem/proof bodies (仿宋 feel).
#let accent = ("FZFangSong-Z02S", "FangSong", "STFangsong", "Songti SC")
