/* src/css/fonts.css */
:root {
  --font-family-sans-latin:
    "SF Pro Text",
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "PingFang SC",
    "Hiragino Sans GB",
    "Source Han Sans SC",
    "Noto Sans CJK SC",
    "HarmonyOS Sans SC",
    "Microsoft YaHei",
    "WenQuanYi Micro Hei",
    "WenQuanYi Zen Hei",
    sans-serif;
  --font-family-sans: var(--font-family-sans-latin), var(--font-family-sans-cjk);
  --font-family-mono:
    "SF Mono",
    "SFMono-Regular",
    Consolas,
    "Liberation Mono",
    Menlo,
    Courier,
    monospace;
  --font-family-serif:
    Georgia,
    "Times New Roman",
    Times,
    serif;
  --line-height-latin: 1.7;
  --line-height-zh: 1.65;
  --letter-spacing-latin: 0.015em;
  --letter-spacing-zh: 0.01em;
  --font-mono: var(--font-family-mono);
}
.os-windows {
  --font-family-sans-latin:
    "Space Grotesk",
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "Space Grotesk",
    "Microsoft YaHei",
    "Source Han Sans SC",
    "Noto Sans CJK SC",
    sans-serif;
  --font-family-sans: var(--font-family-sans-latin), var(--font-family-sans-cjk);
  --font-family-mono:
    "Consolas",
    "Courier New",
    monospace;
  --line-height-latin: 1.65;
  --line-height-zh: 1.6;
  --letter-spacing-latin: 0.01em;
  --letter-spacing-zh: 0.005em;
}
.os-windows:not(.fonts-loaded) {
  --font-family-sans-latin:
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "Segoe UI",
    "Microsoft YaHei",
    "Source Han Sans SC",
    sans-serif;
}
.os-macos {
  --font-family-sans-latin:
    "SF Pro Text",
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "PingFang SC",
    "Hiragino Sans GB",
    "Source Han Sans SC",
    "Noto Sans CJK SC",
    sans-serif;
  --font-family-sans: var(--font-family-sans-latin), var(--font-family-sans-cjk);
  --font-family-mono:
    "SF Mono",
    "SFMono-Regular",
    Menlo,
    "Monaco",
    monospace;
  --line-height-latin: 1.7;
  --line-height-zh: 1.65;
  --letter-spacing-latin: 0.015em;
  --letter-spacing-zh: 0.01em;
}
.os-linux {
  --font-family-sans-latin:
    "Ubuntu",
    "Roboto",
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "Source Han Sans SC",
    "Noto Sans CJK SC",
    "WenQuanYi Micro Hei",
    "WenQuanYi Zen Hei",
    sans-serif;
  --font-family-sans: var(--font-family-sans-latin), var(--font-family-sans-cjk);
  --font-family-mono:
    "Ubuntu Mono",
    "Liberation Mono",
    "Courier New",
    monospace;
  --line-height-latin: 1.65;
  --line-height-zh: 1.6;
  --letter-spacing-latin: 0.01em;
  --letter-spacing-zh: 0.005em;
}
.os-linux:not(.fonts-loaded) {
  --font-family-sans-latin:
    "Ubuntu",
    "Roboto",
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "Source Han Sans SC",
    "Noto Sans CJK SC",
    "WenQuanYi Micro Hei",
    sans-serif;
}
.font-fallback {
  --font-family-sans-latin:
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-family-sans-cjk:
    "Segoe UI",
    "Microsoft YaHei",
    "Source Han Sans SC",
    sans-serif;
  --font-family-mono:
    "Consolas",
    "Courier New",
    monospace;
}
html {
  font-family: var(--font-family-sans);
}
body {
  font-family: var(--font-family-sans);
  line-height: var(--line-height-latin);
  letter-spacing: var(--letter-spacing-latin);
}
html:lang(zh) body,
html:lang(zh-CN) body,
html:lang(zh-Hans) body {
  line-height: var(--line-height-zh);
  letter-spacing: var(--letter-spacing-zh);
}
html:lang(en) body,
html:lang(en-US) body,
html:lang(en-GB) body {
  line-height: var(--line-height-latin);
  letter-spacing: var(--letter-spacing-latin);
}
.font-sans {
  font-family: var(--font-family-sans);
}
.font-mono {
  font-family: var(--font-family-mono);
}
.font-serif {
  font-family: var(--font-family-serif);
}
