/* 燎原统一排字层 liaoyuan-text.css（2026-09-28 起，所有页面共用，配合 liaoyuan-text.js）
   只管“字怎么排”，不管版面、字号和配色。
   - lx- 开头的类由脚本按内容自动加上，是排字硬规则，用 !important，页面样式盖不掉。
   - 其余默认规则用 :where()，权重为 0：页面自己写了的以页面为准，没写的才用这里的。 */

/* 1. 标题只在词与词之间换行（脚本已在词边界插好 <wbr>）；一个词比整行还长时才硬断 */
.lx-wb {
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}

/* 2. 以英文为主的段落：两端对齐会把单词之间拉出大空格，改成左对齐 */
.lx-left {
  text-align: start !important;
}

/* 3. 和正文同色、看不出能点的链接：加一条细下划线 */
.lx-link {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.24em;
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
}

.lx-link:hover {
  text-decoration-color: currentColor;
}

/* 4. 段落最后一行尽量不只剩一两个字：页面没指定时默认 pretty；
      页面把段落写成普通换行（auto）的，由脚本加 .lx-pretty 补上（balance 等其它写法保持不动） */
:where(body) {
  text-wrap-style: pretty;
}

.lx-pretty {
  text-wrap-style: pretty !important;
}

/* 4b. iPhone / Safari（WebKit，包括微信里打开）：正文不用 pretty，一律普通换行（一行尽量放满）。
      2026-10-08 查明：WebKit 的 pretty 会把整段重新分配，让每一行都差不多长，结果中文每行都比放得下的
      少放 2–4 个字，右边缘参差不齐；Chrome 的 pretty 只微调最后几行，所以电脑和安卓上看不出——
      此前所有验收都只在 Chrome 里做，才一直没发现（9/7 修过一次，被 9/28 排字层、10/6 手机文章层先后又打开）。
      @supports 里用 hanging-punctuation（只有 WebKit 认它；-webkit-touch-callout 是 iOS 专有，当保险）：
      Chrome / 安卓微信（X5）整段忽略，渲染一个字节都不变。
      用 !important 压过页面和旧样式里所有写了 pretty 的地方（refinement、publication-reading、liaoyuan-v2、
      publication-article-mobile-r2 等）。只写 text-wrap-style，不写 text-wrap 简写：简写会把 white-space: nowrap 一并盖掉。
      标题仍用 pretty（几行的短文字，让行长匀一点）。
      pretty 原来兼管的“末行别只剩一两个字”，由脚本把段尾最后三个字包进 .lx-tail 补上（见 liaoyuan-text.js 第 4 条）。 */
@supports ((hanging-punctuation: first) or (-webkit-touch-callout: none)) {
  :where(body) {
    text-wrap-style: auto;
  }

  :where(h1, h2, h3, h4) {
    text-wrap-style: pretty;
  }

  p,
  li,
  dd,
  blockquote,
  figcaption {
    text-wrap-style: auto !important;
  }
}

.lx-tail {
  white-space: nowrap;
}

/* 5. 面包屑「燎原 / 燎原刊 / AI 入门」：第一个斜杠两边原来是 10–15px 的固定间距，
      后面的斜杠是文字里的普通空格，看着一宽一窄。统一成一个空格左右宽（最右边的“返回”链接靠 margin-left:auto，不受影响） */
.l2-breadcrumb {
  column-gap: 0.4em;
}
