/* =============================================================================
   字体体系 · css/typography.css   （2026-09-04 建，2026-09-05 苹果风升级）
   -----------------------------------------------------------------------------
   只做一件事：把「大标题 / 板块小标题 / 中文正文 / 英文第二行 / 技术专有名词 / 页脚小字」
   分成六层，各自定字族、字重、字间距、行高与透明度，浅色深色各一套。
   · 全部用系统自带字体栈，不引任何外部字体文件（断网、被墙、离线打开都不受影响）。
   · 本文件在每个页面都排在所有样式之后，靠层叠顺序覆盖，不改任何一行的字号基准。
   · 英文 / 模型名 / GitHub 仓库等专有名词走「苹果风」无衬线（--font-apple）：
     macOS/iOS 命中 San Francisco（-apple-system），Windows 回落 Segoe UI Variable /
     Helvetica Neue 等高级无衬线；纤细干净、圆润高级，不用粗笨等宽字体。
   · 全站复用规范类：.page-main-title（大标题）/.block-sub-title（板块小标题）/
     .en-apple-text（苹果风英文专有名词，旧名 .en-text 兼容保留）——任意元素挂上即复用对应层级样式。
   想退回原来的观感：把各页 typography.css 的 link 删掉即可（其余样式一行没动）。
   ============================================================================= */

:root {
  /* —— 字体栈（全部系统自带，零网络字体） —— */
  --font-sans: system-ui, -apple-system, "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  /* 大标题：英文部分 San Francisco 优先（macOS/iOS 命中），Windows 回落 Segoe UI Variable Display；
     中文照常走 PingFang SC / 黑体 */
  --font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI Variable Display", "Segoe UI Semibold", "Segoe UI", system-ui, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  /* 小标题：英文配套苹果风纤细无衬线，与中文黑体协调 */
  --font-heading: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", system-ui, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-en: "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-mono: "Cascadia Mono", "Segoe UI Mono", Consolas, "SF Mono", Menlo, "PingFang SC", "Microsoft YaHei", monospace;
  --font-term: var(--font-mono);
  /* 苹果风英文（专有名词 / 辅助翻译）：SF 系列优先 → 高级无衬线回落，纤细干净、圆润不粗笨 */
  --font-apple: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, system-ui, sans-serif;

  /* —— 层级参数：浅色模式 —— */
  --tw-display-w: 700;   --tw-display-ls: 0.035em; --tw-display-lh: 1.24;
  --tw-head-w: 600;      --tw-head-ls: 0.05em;     --tw-head-lh: 1.45;
  --tw-body-w: 400;
  --tw-en-w: 400;        --tw-en-op: 1;   /* 2026-09-06：不再用透明度压英文副行（WCAG 明确不建议靠低透明度造层级，而且一压就掉出 AA）；层级靠颜色与字号 */
  --tw-term-w: 500;
  --tw-foot-w: 350;      --tw-foot-op: 0.66;
  --tw-en-color: #5c6b82;   /* 白卡 5.41:1，与 bilingual.css 的 .pair-en 同值 */
  --tw-foot-color: #5b6a82;
  /* 苹果风英文参数：模型代号 / 仓库名保持锐利（500），辅助翻译走 400 + 透明度 */
  --tw-apple-w: 500;     --tw-apple-ls: 0.01em;     --tw-apple-op: 1;
  --tw-apple-color: var(--color-text);
}

[data-theme="dark"] {
  --tw-display-w: 700;
  --tw-en-op: 1;
  --tw-foot-op: 0.74;
  --tw-en-color: #9aa8bd;   /* 卡上 7.16:1 / 画布上 8.14:1，与 bilingual.css 同值 */
  --tw-foot-color: #97a5bd;
}

/* ---------- 六层工具类（配套 class，可直接挂到任意元素上） ---------- */
.t-display { font-family: var(--font-display); font-weight: var(--tw-display-w); letter-spacing: var(--tw-display-ls); line-height: var(--tw-display-lh); }
.t-section { font-family: var(--font-heading); font-weight: var(--tw-head-w); letter-spacing: var(--tw-head-ls); line-height: var(--tw-head-lh); }
.t-body    { font-family: var(--font-sans); font-weight: var(--tw-body-w); }
.t-en      { font-family: var(--font-en); font-weight: var(--tw-en-w); opacity: var(--tw-en-op); color: var(--tw-en-color); letter-spacing: 0.01em; }
.t-term    { font-family: var(--font-term); font-weight: var(--tw-term-w); letter-spacing: 0; font-variant-ligatures: none; }
.t-footer  { font-family: var(--font-sans); font-weight: var(--tw-foot-w); opacity: var(--tw-foot-op); color: var(--tw-foot-color); }

/* ---------- 挂到站点现有结构上（不改 HTML 也能全站生效） ---------- */
body { font-family: var(--font-sans); font-weight: var(--tw-body-w); }

/* 大标题（含全站复用规范类 .page-main-title：任何页面元素挂上即获得大标题样式） */
h1, .page-main-title, .mm-title, .tt-title, .gk-title, .cl-title, .gv-title, .lq-title, .hv-title, .cs-title, .ad-title {
  font-family: var(--font-display);
  font-weight: var(--tw-display-w);
  letter-spacing: var(--tw-display-ls);
  line-height: var(--tw-display-lh);
}

/* 板块小标题（含全站复用规范类 .block-sub-title）：与正文拉开层级，但不跟大标题抢 */
h2, h3, h4, .block-sub-title, .gk-field-label, .mm-kv-item dt, .tt-sec-title, .ad-group-title, .hv-sec-title, .cs-sec-title {
  font-family: var(--font-heading);
  font-weight: var(--tw-head-w);
  letter-spacing: var(--tw-head-ls);
  line-height: var(--tw-head-lh);
}

/* 中文正文段落：只调字族与字重，行高沿用各页原本的值，避免整页排版位移 */
.mm-lede, .tt-lede, .gk-def, .gk-field-body, .cl-note, .hv-lede, .cs-lede, .ad-lede, .lq-lede,
p:not(.pair-en) {
  font-family: var(--font-sans);
  font-weight: var(--tw-body-w);
}

/* 英文第二行：辅助信息，字号本来就比中文小，这里统一字族（苹果风 SF 优先，与 .en-apple-text 同栈）、
   颜色；不再用透明度压副行（透明度会把对比度一并压出 AA 以下）。
   与 bilingual.css 的 .pair-en 保持同一字体栈与同一颜色值，两边不一致时以本文件为准（它排在后面） */
.pair-en {
  font-family: var(--font-apple);
  font-weight: var(--tw-en-w);
  letter-spacing: 0.01em;
  color: var(--tw-en-color);
  opacity: var(--tw-en-op);
  -webkit-text-fill-color: var(--tw-en-color);
}

/* 技术专有名词（含全站复用规范类 .en-text / .en-apple-text）：模型名、工具名、词条名、
   GitHub 仓库名 —— 苹果风高级无衬线（SF 优先），纤细干净、圆润不粗笨；
   模型代号 / 仓库名保持锐利（500 字重、跟随主题文本色）；中文照常走黑体兜底 */
.gk-name, .gk-fc-name, .mm-entry-name, .tt-name, .ad-name, .cs-name, .hv-name,
.tt-visit, .mm-kv-item dd, .gk-alias, .en-text, .en-apple-text {
  font-family: var(--font-apple);
  font-weight: var(--tw-apple-w);
  letter-spacing: var(--tw-apple-ls);
  color: var(--tw-apple-color);
  font-variant-ligatures: normal;
}

/* 页脚小字：降字重、压透明度，低调待着。
   首页页脚下面那两行联系方式的同层规则写在 index.html 内联样式里，
   公共样式表刻意不出现那个类名，好让「只活在首页」这条守卫可以逐字扫 CSS 来验。 */
.footer, .footer-links, .footer-bottom {
  font-family: var(--font-sans);
  font-weight: var(--tw-foot-w);
  letter-spacing: 0.01em;
}
.footer { color: var(--tw-foot-color); }

/* 数字统计条：等宽对齐，深浅两套都稳 */
.mm-meta b, .tt-stat dd, .hero-stat b, .cl-stat b {
  font-family: var(--font-term);
  font-weight: 600;
  letter-spacing: 0;
}

/* 极端小屏：字间距收一点，防止大标题挤到折行 */
@media (max-width: 560px) {
  h1, .mm-title, .tt-title, .gk-title, .cl-title, .gv-title, .lq-title, .hv-title, .cs-title, .ad-title {
    letter-spacing: 0.015em;
  }
}

/* =============================================================================
   落地微调（2026-09-04 全站字体升级）
   -----------------------------------------------------------------------------
   只调字重 / 字距 / 行高 / 字体族四类属性，不动字号与布局；
   全部基于上方分层变量，深浅色自动跟随主题文本色（--color-text）。
   ============================================================================= */

/* ① 首页一级大标题：厚重科技黑体，字重 700（避免 800 过于粗笨），
   适度加大字间距（原 -0.03em 为收紧），行高放宽；渐变与字号保持原样 */
.hero-title {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.22;
}

/* ① 网站主名称（brand-strip）：归属大标题层 —— 厚重现代黑体（英文部分 SF 优先），
   替换原等宽 mono；字重 700 / 字距 .2em / 深浅两套渐变全部保留 */
.brand-strip-text {
  font-family: var(--font-display);
}

/* ② 首页板块小标题与卡片标题：统一挂板块小标题层（500-600 字重、轻微字距），
   层级弱于大标题、强于正文。这些类在 style.css / index.html 内联中字重偏重（800/700），
   此处按后加载层叠覆盖为 600 */
.section-title, .wiki-title, .entry-card__title {
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.45;
}
.entry-card__title {
  letter-spacing: 0.02em;          /* 深色渐变卡片上的白字：字距略收，避免小字号显散 */
  line-height: 1.3;
}

/* ③ 中文正文：可读性优先（字重 400、舒适行高）——body 已挂 --font-sans / 400 / 1.6，
   各页 lede / desc 段落类显式归位，避免个别元素被浏览器默认加粗 */
.mm-lede, .tt-lede, .gk-lede, .hv-lede, .cs-lede, .ad-lede, .lq-lede,
.wiki-desc, .entry-card__desc, .hero-subtitle {
  font-weight: 400;
}

/* ④ 代码与快捷键：统一走高质量系统等宽字体（代码必须等宽对齐；
   模型名 / 仓库名等专有名词已走上方苹果风 --font-apple，不再进等宽） */
pre, code, kbd {
  font-family: var(--font-term);
  font-variant-ligatures: none;
}

/* 深浅色对比度兜底：大标题 / 小标题 / 苹果风专有名词显式跟随主题文本色
   （渐变类标题 .hero-title / .brand-strip-text 不在本组，各自保留深浅两套渐变，不受影响） */
.page-main-title, .block-sub-title, .section-title, .wiki-title, .en-text, .en-apple-text {
  color: var(--color-text);
}

/* 深色模式：透明度档位微调，保证小字层级在暗底上清晰而不刺眼 */
[data-theme="dark"] .page-main-title,
[data-theme="dark"] .block-sub-title {
  color: var(--color-text);
}

/* =============================================================================
   P0 · 墨阶地基：正文基线 / 焦点可见 / reduce-motion 兜底
   -----------------------------------------------------------------------------
   追加于 2026-09-06，不改上方任何已有规则。
   · --fs-body/--lh-body 统一正文基线，条目正文与摘要不再低于 15px。
   · :focus-visible 给键盘用户可见的焦点环，不影响鼠标用户。
   · prefers-reduced-motion 把动画/过渡压到近乎零，照顾前庭敏感用户；
     html{scroll-behavior:smooth} 在 style.css 保留，此处仅在 reduce 下覆盖。
   ============================================================================= */
:root {
  --fs-body: 16px;
  --lh-body: 1.75;
}
body {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  html {
    scroll-behavior: auto;
  }
}
