/* thezencircle.com 站点样式 · 手机优先 · 无框架
   U11 结构单元：token 名是契约（design/contract.md §2），U15 只改值不改名。
   皮肤值只写在 html[data-skin=…] 块里，不许进 :root；U18：三套版式主题 a=静室 / b=书案（默认）/ c=杂志；本文件只放 a 的值与结构性刻度。
   亮/暗：构建期写 <html data-skin="b" data-theme="light">，亮暗归 U12，版式主题切换/持久化 localStorage("skin") 归 src/reading.js。 */

/* == 字体栈 / 字号阶 / 间距 / 圆角 / 阴影：与皮肤无关的结构性刻度（全站只允许这些取值） == */
:root {
  /* 字体栈（三套中文字体分工，design/reference-spec.md §1） */
  --font-display: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;
  --font-kai: "LXGW WenKai Screen", "Kaiti SC", STKaiti, KaiTi, serif;
  --font-body: var(--font-kai);
  --font-ui: system-ui, -apple-system, "PingFang SC", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;

  /* 字号阶（px）：14 16 18 20 22 26 30 34 44 60（reference-spec §3） */
  --fs-14: .875rem;
  --fs-16: 1rem;
  --fs-18: 1.125rem;
  --fs-20: 1.25rem;
  --fs-22: 1.375rem;
  --fs-26: 1.625rem;
  --fs-30: 1.875rem;
  --fs-34: 2.125rem;
  --fs-44: 2.75rem;
  --fs-60: 3.75rem;
  --fs-body: 1.0625rem; /* 正文基准 17px ≥16px；U15 皮肤可覆盖 */

  /* 间距刻度（4/8 基，px） */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px; --space-24: 96px;

  /* 圆角 / 阴影（值随皮肤，名字冻结） */
  --radius-icon: 8px;
  --radius-card: 12px;
  --radius-pill: 999px;
  --shadow-1: 0 1px 3px rgb(0 0 0 / .08);
  --shadow-2: 0 8px 24px rgb(0 0 0 / .12);
}

/* == A 静室（D1）· 亮（值取自 design/proto2 D1 样张；b 书案 / c 杂志 的值在各自 themes/ 文件头） == */
html[data-skin="a"] {
  --bg: #f6f1e6;
  --bg-elevated: #fffcf5;
  --text: #2b261e;
  --text-secondary: #6d6354;
  --accent: #8c5409;
  --accent-weak: #efe3c6;
  --note: #365f8c;
  --border: #d9ceb8;
  color-scheme: light;
}

/* == A 静室 · 暗 == */
html[data-skin="a"][data-theme="dark"] {
  --bg: #16140f;
  --bg-elevated: #211e18;
  --text: #e7e2d6;
  --text-secondary: #a39a8a;
  --accent: #d99a3d;
  --accent-weak: #2e2616;
  --note: #8ab4e8;
  --border: #3a352b;
  color-scheme: dark;
}

/* == b 书案 / c 杂志（U18）：token 值在 src/styles/themes/b-shuan.css、c-zazhi.css 文件头的 html[data-skin="b"|"c"] 块；token 名不得改（design/contract.md §2） == */
/* base.css · reset / 排版基线（U11；值一律来自 tokens.css 的变量） */

* { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: var(--fs-body);  /* 17px ≥ 16px（reference-spec §3 字号阶） */
  line-height: 1.75;
  overflow-wrap: anywhere;   /* 长串不撑破布局 */
}

/* ---- 无横向滚动的兜底 ---- */
body { overflow-x: hidden; }
main, article { min-width: 0; }

img { max-width: 100%; height: auto; display: block; }

/* ---- 跳转链接（无障碍） ---- */
.skip-link {
  position: absolute;
  left: -9999px;
}
.skip-link:focus {
  left: 8px; top: 8px;
  z-index: 100;
  background: var(--bg-elevated);
  color: var(--text);
  padding: 12px 16px;
  border-radius: var(--radius-card);
}

/* ---- 阅读进度条（U11 只给容器；滚动行为归 U12，宽度更新不得加过渡） ---- */
#reading-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0;
  background: var(--accent);
  z-index: 50;
}
/* layout.css · 顶栏 / 抽屉导航 / hero / 落地页 / 讲义页骨架 / 面包屑 / 页脚（U11）
   颜色/圆角/阴影/字体一律用 tokens.css 的变量；A 的皮肤级变体写成 html[data-skin="a"] … 形式，不写死进基础样式。 */

/* ---- 顶部导航（sticky；桌面 ≥768 内联四项，两院同组 / 园地独立组） ---- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: 0 var(--space-3);
  padding-top: env(safe-area-inset-top);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}
.site-name {
  color: var(--text);
  text-decoration: none;
  font-weight: 700;
  font-size: var(--fs-16);
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 44px;
  min-height: 44px;
  white-space: nowrap;
}
.site-nav { display: none; align-items: stretch; }
.site-nav a, .site-nav .site-nav-current {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 var(--space-3);
  color: var(--text-secondary);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  white-space: nowrap;
}
.site-nav a[aria-current="page"], .site-nav .site-nav-current {
  color: var(--accent);
  font-weight: 600;
}
.nav-group { display: inline-flex; align-items: center; }

/* 汉堡按钮（≤767px 显示；A1c 移动端导航入口） */
.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: none;
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
  background: var(--bg-elevated);
  color: var(--text);
  cursor: pointer;
}

/* ---- 抽屉导航（≤767px；A1c） ---- */
.nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgb(0 0 0 / .4);
}
.site-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  z-index: 60;
  width: min(20rem, 82vw);
  background: var(--bg-elevated);
  border-left: 1px solid var(--border);
  box-shadow: var(--shadow-2);
  transform: translateX(100%);
  transition: transform .2s ease-out;
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.site-drawer.open { transform: translateX(0); }
.drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
}
.drawer-title { font-family: var(--font-kai); font-size: var(--fs-18); color: var(--text); }
.nav-close {
  width: 44px; height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
  background: transparent;
  color: var(--text);
  cursor: pointer;
}
.site-drawer a, .site-drawer .site-nav-current {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 var(--space-3);
  color: var(--text);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  border-radius: var(--radius-icon);
}
.site-drawer a[aria-current="page"], .site-drawer .site-nav-current {
  color: var(--accent);
  font-weight: 600;
  background: var(--accent-weak);
}
.site-drawer .nav-group { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-1); }
.site-drawer .nav-group--yuan { border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-2); }
.site-drawer .nav-group--yandi { border: 1px dashed var(--border); border-radius: var(--radius-card); padding: var(--space-2); }

@media (min-width: 768px) {
  .site-nav { display: flex; }
  .nav-toggle, .site-drawer, .nav-overlay { display: none; }
}

/* ---- 主体布局 ---- */
main {
  padding: var(--space-3) var(--space-4) var(--space-12);
}
@media (min-width: 768px) {
  main { padding: var(--space-6) var(--space-8) var(--space-16); }
}
@media (min-width: 1100px) {
  main { max-width: 46rem; margin: 0 auto; padding: var(--space-8) var(--space-6) 80px; }
}

/* ---- 面包屑（院 → 大纲 → 课，逐级可点） ---- */
.breadcrumb {
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  color: var(--text-secondary);
  min-width: 0;
  line-height: 1.5;
  margin-bottom: var(--space-2);
}
.breadcrumb a { color: var(--text-secondary); }
.breadcrumb [aria-current="location"] { color: var(--text); }

/* 返回按钮（现仅离线页用） */
.back-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 var(--space-4);
  border-radius: var(--radius-pill);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: var(--fs-14);
}
.back-link:active { background: var(--accent-weak); }

/* ---- hero（学院首页 + 落地页；装饰元素 [data-hero-mark] 由皮肤决定形状） ---- */
.hero {
  padding: var(--space-12) var(--space-4) var(--space-8);
  text-align: center;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, var(--accent-weak), var(--bg));
}
.hero-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-34);
  letter-spacing: 1.5px;
  color: var(--accent);
  line-height: 1.3;
  margin: var(--space-4) 0 0;
}
.hero-sub {
  font-family: var(--font-kai);
  font-size: var(--fs-20);
  color: var(--text-secondary);
  margin: var(--space-4) 0 0;
  letter-spacing: .75px;
}
.hero-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-6);
}
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px var(--space-8);
  border-radius: var(--radius-pill);
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  text-decoration: none;
}
.pill--solid { background: var(--accent); color: #fff; border: 1px solid var(--accent); }
.pill--outline { background: transparent; color: var(--accent); border: 1px solid var(--accent); }
.textlink {
  color: var(--text-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
/* A 经卷的 hero 装饰 = 双细线（B 的「圈相」、C 的工具条由 U15 在 skins.css 里换） */
html[data-skin="a"] .hero-mark {
  width: 64px;
  border-top: 1px solid var(--border);
  box-shadow: 0 3px 0 var(--border);
  margin: 0 auto;
}
@media (min-width: 1024px) {
  .hero { padding: var(--space-24) var(--space-12) var(--space-16); }
  .hero-title { font-size: var(--fs-60); }
  .hero-sub { font-size: var(--fs-22); }
  .hero-actions { flex-direction: row; justify-content: center; gap: var(--space-6); }
}

/* ---- 落地页卡片（大纲 / 分类序列 / 补充入口） ---- */
.card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  padding: var(--space-6);
  margin: var(--space-6) 0;
}
.card .eyebrow, .landing-hero .eyebrow {
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  color: var(--text-secondary);
  display: block;
}
.card h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-26);
  letter-spacing: .75px;
  color: var(--text);
  line-height: 1.3;
  margin: var(--space-2) 0 var(--space-2);
}
.card ul { list-style: none; margin: var(--space-4) 0 0; padding: 0; }
.card li { padding: var(--space-2) 0; border-bottom: 1px solid var(--border); }
.card li:last-child { border-bottom: 0; }
.card li a { color: var(--text); text-decoration: none; font-family: var(--font-ui); font-size: var(--fs-16); display: inline-flex; align-items: center; min-height: 44px; }
.card li a:hover { color: var(--accent); }
@media (min-width: 768px) {
  .card ul { columns: 2; column-gap: var(--space-12); }
}

/* ---- 页标题（非首页文档页） ---- */
h1.page-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-30);
  line-height: 1.3;
  margin: var(--space-3) 0 var(--space-4);
  color: var(--text);
}
@media (min-width: 768px) {
  h1.page-title { font-size: var(--fs-34); }
}

/* ---- 本页目录 TOC（U11 容器 + 基础样式；aria-current 跟随归 U12） ---- */
.toc {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  padding: var(--space-1) var(--space-4);
  margin: 0 0 var(--space-6);
}
.toc summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: var(--fs-16);
  cursor: pointer;
  list-style: none;
}
.toc summary::-webkit-details-marker { display: none; }
.toc summary::after { content: "▾"; margin-left: auto; color: var(--text-secondary); }
.toc[open] summary::after { content: "▴"; }
.toc ol { margin: var(--space-1) 0 var(--space-3); padding-left: 20px; }
.toc a { color: var(--accent); text-decoration: none; }

/* ---- 正文排版 ---- */
article { text-wrap: pretty; }
article p {
  font-size: var(--fs-body);
  line-height: 1.75;
  margin: 0 0 1.1em;
  text-wrap: pretty;
}
article a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent);
}
article h2, article h3, article h4 {
  line-height: 1.3;
  margin: 1.6em 0 .6em;
}
article h2 { font-size: var(--fs-26); }
article h3 { font-size: var(--fs-22); }
article blockquote {
  margin: 1em 0;
  padding: .25em 1em;
  border-left: 3px solid var(--accent);
  background: var(--bg-elevated);
  border-radius: 0 var(--radius-card) var(--radius-card) 0;
}
article hr { border: 0; border-top: 1px solid var(--border); margin: 2em 0; }
article img { margin: 1em auto; border-radius: var(--radius-icon); }

/* 正文三层容器（U11 只给语义与占位；内容分层归 U12 的 renderReading/injectPage） */
.reading-layers { min-width: 0; }
.layer-note, .layer-plain { color: var(--text-secondary); }
.layer-plain[hidden], .layer-note[hidden] { display: none; }

/* ---- 段级导航 / 阅读工具（U11 只挂容器；显示时机与行为归 U12，默认不显示） ---- */
.segnav, .reading-tools { display: none; }
.seg-pos { font-family: var(--font-ui); font-size: var(--fs-14); color: var(--text-secondary); }
.ctl {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
  background: var(--bg-elevated);
  color: var(--text);
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: var(--fs-16);
}
/* 术语弹层容器（U12 填充内容与定位） */
.term-layer { display: none; }

/* ---- 表格：外层横滚，内容不撑破页面 ---- */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1em 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
}
article table {
  border-collapse: collapse;
  min-width: 100%;
}
article td, article th {
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border);
  vertical-align: top;
  text-align: left;
}

/* ---- pre / code 同样可横滚 ---- */
article pre {
  overflow-x: auto;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
  padding: var(--space-3);
  font-size: var(--fs-14);
}
article code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* ---- 页脚 ---- */
.site-footer {
  border-top: 1px solid var(--border);
  padding: var(--space-6) var(--space-4) var(--space-12);
  padding-bottom: calc(var(--space-6) + env(safe-area-inset-bottom));
  color: var(--text-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  text-align: center;
}
.site-footer a { color: var(--text-secondary); }

/* ---- U13 链接卫生：原站自带 404（已登记）渲染为不可点文本 ---- */
.broken {
  color: var(--text-secondary);
  text-decoration: underline dashed;
  text-decoration-color: var(--border);
  text-underline-offset: 3px;
  cursor: not-allowed;
}

/* ---- U13 C3：>25MB 原站托管媒体标注 ---- */
.ext-media {
  margin: var(--space-3) 0;
  padding: 10px 14px;
  background: var(--accent-weak);
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
  font-size: var(--fs-16);
}
.ext-media-label { color: var(--text-secondary); }
.ext-media a { color: var(--accent); }
.ext-media-badge {
  display: inline-block;
  margin: 0 var(--space-2);
  padding: 1px var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  font-size: var(--fs-14);
  color: var(--text-secondary);
  vertical-align: middle;
  white-space: nowrap;
}
.ext-media-orig { display: none; }

/* ---- 离线页 ---- */
.offline-wrap { max-width: 30rem; margin: 0 auto; text-align: center; padding: var(--space-12) var(--space-4); }
.offline-wrap h1 { font-size: var(--fs-26); }
.offline-wrap .back-link { margin-top: var(--space-4); }

/* ---- 键盘焦点（reference-spec §7：2px accent outline, offset 2px） ---- */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---- 学院首页入口卡（U11b B-1：原首页正文已搬 /jing/，首页只留入口） ---- */
.home-cols { display: flex; flex-direction: column; gap: var(--space-4); margin: var(--space-6) 0 0; }
.home-card .card-desc, .home-garden .card-desc { font-family: var(--font-kai); font-size: var(--fs-16); color: var(--text-secondary); margin: var(--space-2) 0 var(--space-4); }
.card-links { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; margin: 0; }
@media (min-width: 768px) {
  .home-cols { flex-direction: row; }
  .home-card { flex: 1; margin: 0; }
}

/* ---- U18：三套版式主题共用的中性基线（各主题在 src/styles/themes/*.css 里覆写） ---- */
/* 两院入口：同一个 class，三套主题里各自定义一份样式（S7 同权） */
.pill--college { background: var(--accent); color: var(--bg); border: 1px solid var(--accent); }
.hero-slogan, .hero-qi { font-family: var(--font-kai); margin: var(--space-4) 0 0; }
.hero-garden { margin: var(--space-4) 0 0; }
.hero-chips, .home-aims { display: none; }
.hero-chips { list-style: none; padding: 0; margin: var(--space-4) 0 0; flex-wrap: wrap; gap: var(--space-2); }
.chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-pill); font-family: var(--font-ui); font-size: var(--fs-14); color: var(--text-secondary); text-decoration: none; }
.page-head { min-width: 0; }
.header-ctl { display: flex; gap: var(--space-2); align-items: center; margin-left: auto; flex: none; }
.header-ctl .ctl { padding: 0 var(--space-2); }
/* reading.css · U12 讲义页阅读体验样式（本文件在 layout.css 之后拼接，可覆盖其 display:none 的占位容器）。
   全部引用 tokens.css 变量；字号只用 reference-spec §3 字号阶（14/16/18/20/22/…）；不做皮肤取值（skins.css 归 U15）。 */

/* ---- 正文基准：18px（≥16px，B4）；字号三档绑定 token 阶（B3，值∈字号阶） ---- */
article p { font-size: var(--fs-18); }
html[data-fs="s"] article p { font-size: var(--fs-16); }
html[data-fs="l"] article p { font-size: var(--fs-20); }

/* B4：正文容器 ≤42em —— 有 TOC 的页面在 ≥1024px 由上面网格限定正文列 42rem；无 TOC 页面 44rem 总宽（含 padding）在 ≥17px 正文字号下均 ≤42em */

/* ---- B9 原文/注分层：注释段小一号 + 注色 + 缩进；经文引文用宋体大一号 ---- */
p.p-note {
  font-size: var(--fs-16);
  color: var(--note);
  padding-left: var(--space-4);
  border-left: 2px solid color-mix(in srgb, var(--note) 45%, transparent);
}
article blockquote {
  font-family: var(--font-display);
  font-size: var(--fs-20);
}

/* ---- 阅读工具条（返工 1：固定底部常驻栏 —— 长页阅读中随时可达，不随内容滚走） ----
   U11 默认 display:none，此处启用为 fixed 底栏；段级导航由 reading.js 移入同栏。 */
.reading-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  margin: 0;
  padding: var(--space-2);
  padding-bottom: calc(var(--space-2) + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-top: 1px solid var(--border);
}
/* 底栏常驻后给页尾留出空间，避免遮住页脚 */
body { padding-bottom: calc(128px + env(safe-area-inset-bottom)); }
.ctl:hover { border-color: var(--accent); color: var(--accent); }
.ctl:active { transform: translateY(1px); }

/* ---- 段级导航（B8）：默认隐藏，reading.js 在段落 ≥2 时启用并移入底部工具栏 ---- */
.segnav {
  display: none;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  margin: 0;
}
.seg-btn {
  min-width: 44px;
  min-height: 44px;
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-icon);
  background: var(--bg-elevated);
  color: var(--text);
  cursor: pointer;
  font-family: var(--font-ui);
  font-size: var(--fs-16);
}
.seg-btn:disabled { opacity: .4; cursor: default; }
.seg-pos { min-width: 5em; text-align: center; }

/* ---- 上一篇 / 下一篇（B8）：仍在文末（长文读完再翻篇，不需要常驻） ---- */
.seg-book {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin: var(--space-6) 0;
}
.book-gap { flex: 1; }
.book-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--bg-elevated);
  color: var(--accent);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: var(--fs-16);
}
.book-link:hover { border-color: var(--accent); }

/* ---- 两级术语标注（B5）：视觉差异 —— 外链=虚线下划线+pointer+UI 字体小字；站内注=点状底边+help ---- */
.term--internal {
  color: inherit;
  background: none;
  border: 0;
  border-bottom: 2px dotted var(--note);
  padding: 0;
  font: inherit;
  cursor: help;
}
.term--internal:hover { color: var(--note); }
.term--external {
  display: inline;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  white-space: nowrap;
  margin-left: 2px;
  text-decoration: underline dashed;
  text-decoration-color: color-mix(in srgb, var(--accent) 60%, transparent);
  text-underline-offset: 3px;
  cursor: pointer;
}
.term--external:hover { text-decoration-style: solid; }
.term--internal:focus-visible,
.term--external:focus-visible,
.ctl:focus-visible,
.seg-btn:focus-visible,
.book-link:focus-visible,
.toc a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ---- 术语释义弹层（B5④⑤） ---- */
.term-layer {
  position: fixed;
  z-index: 60;
  max-width: min(24rem, calc(100vw - 32px));
  padding: var(--space-4);
  padding-right: var(--space-6);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-2);
}
.term-layer.open { display: block; }
.term-head { display: flex; align-items: center; gap: var(--space-2); padding-right: var(--space-6); }
.term-head b { color: var(--accent); font-size: var(--fs-16); }
.term-close {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 44px;
  min-height: 44px;
  border: 0;
  background: none;
  color: var(--text-secondary);
  cursor: pointer;
}
.term-close:hover { color: var(--accent); }
.term-def { margin: var(--space-2) 0 var(--space-2); color: var(--text); font-size: var(--fs-16); line-height: 1.5; }
.term-layer .term--external { margin-left: 0; }

/* ---- TOC：≥1024px 桌面侧栏常驻（B6）；≤1023px 底部抽屉 ---- */
@media (min-width: 1024px) {
  main:has(> .toc) {
    display: grid;
    grid-template-columns: 15rem minmax(0, 42rem);
    justify-content: center;
    column-gap: var(--space-8);
    align-items: start;
    max-width: 62rem;
  }
  main:has(> .toc) > * { grid-column: 2; }
  main:has(> .toc) > .toc {
    grid-column: 1;
    grid-row: 1 / span 6;
    position: sticky;
    top: 80px;
    align-self: start;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    margin: 0;
  }
}
@media (max-width: 1023px) {
  .toc {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 40;
    margin: 0;
    border-radius: var(--radius-card) var(--radius-card) 0 0;
    box-shadow: var(--shadow-2);
    max-height: 72vh;
    overflow-y: auto;
    transform: translateY(105%);
    transition: transform .2s ease-out;
  }
  .toc.open { transform: translateY(0); }
  /* .toc a 保持 inline（不设 min-height/inline-flex）：行内链接豁免 44×44 断言，且避免小数字号误差（43.99px）触雷 */
}
.toc a[aria-current="true"] { color: var(--accent); font-weight: 600; }
.toc a { padding: var(--space-1) var(--space-2); }

@media (prefers-reduced-motion: reduce) {
  .toc { transition: none; }
  .ctl:active, .seg-btn:active { transform: none; }
}
/* U17 正文语义标记 · 最小可辨样式（引文 / 脚注）。
   只负责「能看出来是引文/脚注」；版式与皮肤归 U16/U18/U15 重做这些 class 的值。
   class 名是契约：src/semantics.mjs 生成，勿改名。全部取值走 tokens 刻度与颜色变量。 */

/* 引文（经文/祖师语录/偈颂）：左侧饰线 + 次要色 + 微缩进 */
.quote {
  margin: var(--space-3) 0;
  padding-left: var(--space-3);
  border-left: 3px solid var(--border);
  color: var(--text-secondary);
}
.quote .quote-text { color: inherit; } /* 段内引文包裹：跟随段级引文样式 */
.quote--verse { color: var(--text-secondary); }

/* 脚注（词条注 / 编者按）：注释色，与引文块在颜色上可辨；字号保持 16px（mobile 断言：p ≥16px） */
.fn-note {
  font-size: var(--fs-16);
  color: var(--note);
  margin: var(--space-2) 0;
}
.fn-note--editor { color: var(--text-secondary); }

/* 引文段尾书证出处（（《…》））：注释色小字，视觉上归脚注族 */
.fn-src { color: var(--note); font-size: var(--fs-14); }
/* skins.css · 版式主题已拆到 src/styles/themes/{a-jingshi,b-shuan,c-zazhi}.css（U18；token 值写在各自 html[data-skin=…] 块）。本文件保留为空占位，build 仍按序拼接。 */
/* themes/a-jingshi.css · D1 静室（html[data-skin="a"]）
   骨架：「一页纸」——大留白、少元素、强级差、几乎无框。页头无底线、导航是疏朗文字；首页首屏 = 标题 + 一句话 +
   两行「净修院 →／禅修院 →」大字行，园地缩成一行小字；讲义页单栏 ≈34 字行长，h2 前 96–128px 留白。
   本版修 D1 缺点「首屏没有视觉抓手」：用首页原文的一副对句（其修也…／其证也…）竖排成「挂轴」+ 顶端朱线，零新增文案。
   token 值（亮/暗）在 tokens.css 的 html[data-skin="a"] 块；本文件只写组件规则。不 import 其他主题的任何值。 */

/* ---- 页头：无底线，导航疏朗 ---- */
html[data-skin="a"] .site-header { background: var(--bg); -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: 0; min-height: 56px; padding-left: var(--space-4); padding-right: var(--space-4); }
html[data-skin="a"] .site-name { font-family: var(--font-kai); font-weight: 400; font-size: var(--fs-16); letter-spacing: .12em; }
html[data-skin="a"] .nav-toggle { border-color: transparent; background: transparent; }
html[data-skin="a"] .ctl { background: transparent; border-color: var(--border); }
@media (min-width: 768px) {
  html[data-skin="a"] .site-header { padding-left: var(--space-8); padding-right: var(--space-8); }
  html[data-skin="a"] .site-name { font-size: var(--fs-18); letter-spacing: .2em; }
  html[data-skin="a"] .site-nav { margin-left: auto; gap: var(--space-12); }
  html[data-skin="a"] .nav-group { gap: var(--space-6); }
  html[data-skin="a"] .site-nav a, html[data-skin="a"] .site-nav .site-nav-current { padding: 0 var(--space-1); }
  html[data-skin="a"] .site-nav a[aria-current="page"], html[data-skin="a"] .site-nav .site-nav-current { font-weight: 400; border-bottom: 2px solid var(--accent); }
  html[data-skin="a"] .header-ctl { margin-left: var(--space-8); }
}

/* ---- 手机「菜单」：全屏大字页 ---- */
html[data-skin="a"] .site-drawer { width: 100vw; border-left: 0; box-shadow: none; background: var(--bg); padding: var(--space-4) var(--space-8) var(--space-12); gap: var(--space-4); overflow-y: auto; }
html[data-skin="a"] .site-drawer a, html[data-skin="a"] .site-drawer .site-nav-current { font-family: var(--font-display); font-size: var(--fs-34); letter-spacing: .08em; min-height: 64px; padding: 0; border-radius: 0; background: none; }
html[data-skin="a"] .site-drawer a[aria-current="page"], html[data-skin="a"] .site-drawer .site-nav-current { background: none; font-weight: 400; }
html[data-skin="a"] .site-drawer .nav-group--yuan { border: 0; padding: 0; }
html[data-skin="a"] .site-drawer .nav-group--yandi { border: 0; border-top: 1px solid var(--border); border-radius: 0; padding: var(--space-6) 0 0; margin-top: var(--space-4); }
html[data-skin="a"] .drawer-title { font-size: var(--fs-18); letter-spacing: .12em; }

/* ---- 主体：一页纸 ---- */
html[data-skin="a"] main { max-width: 48rem; margin: 0 auto; padding: 0 var(--space-6) var(--space-24); }
html[data-skin="a"] .breadcrumb { padding-top: var(--space-4); }

/* ---- 首页：首屏 = 朱线 + 眉题 + 标题 + 一句话 + 挂轴对句 + 两行大字入口 ---- */
html[data-skin="a"] .hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto auto 1fr auto auto; column-gap: var(--space-4); align-content: center; min-height: calc(100svh - 56px); text-align: left; background: none; border: 0; padding: var(--space-6) 0 var(--space-12); }
html[data-skin="a"] .hero > * { grid-column: 1 / -1; min-width: 0; }
html[data-skin="a"] .hero-mark { order: -2; width: 2px; height: 64px; margin: 0 0 var(--space-6); border: 0; background: var(--accent); box-shadow: none; }
html[data-skin="a"] .hero-sub { order: -1; margin: 0; font: var(--fs-16)/1.8 var(--font-ui); letter-spacing: .24em; color: var(--accent); }
html[data-skin="a"] .hero-title { grid-column: 1; margin: var(--space-4) 0 var(--space-6); font: 400 var(--fs-34)/1.4 var(--font-display); letter-spacing: .04em; color: var(--text); text-wrap: balance; }
html[data-skin="a"] .hero-slogan { grid-column: 1; align-self: start; margin: 0; font: var(--fs-22)/1.9 var(--font-kai); color: var(--text); }
html[data-skin="a"] .hero-qi { grid-column: 2; grid-row: 3 / span 2; align-self: start; margin: var(--space-4) 0 0; writing-mode: vertical-rl; font: var(--fs-18)/1.9 var(--font-kai); letter-spacing: .12em; color: var(--accent); padding: var(--space-4) var(--space-3); border-top: 2px solid var(--accent); border-bottom: 2px solid var(--accent); background: var(--accent-weak); }
html[data-skin="a"] .hero-actions { display: grid; align-items: stretch; justify-items: stretch; justify-content: stretch; gap: 0; margin-top: var(--space-12); border-top: 1px solid var(--border); }
html[data-skin="a"] .hero-garden { margin: var(--space-6) 0 0; }
html[data-skin="a"] .hero-garden .textlink { font-size: var(--fs-16); color: var(--text-secondary); }
/* 两院入口 = 同款大字行（hero 内、卡内两处各自两个同款元素） */
html[data-skin="a"] .hero-actions .pill--college { display: flex; justify-content: space-between; align-items: baseline; min-height: 72px; padding: var(--space-4) 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: none; color: var(--text); font: 400 var(--fs-30)/1.3 var(--font-display); letter-spacing: .1em; }
html[data-skin="a"] .hero-actions .pill--college::after { content: "→"; font-family: var(--font-ui); color: var(--accent); }
html[data-skin="a"] .hero-actions .pill--college:hover { color: var(--accent); }
html[data-skin="a"] .card-links .pill--college { min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid var(--accent); border-radius: 0; background: none; color: var(--accent); font: var(--fs-16) var(--font-ui); }
@media (min-width: 768px) {
  html[data-skin="a"] .hero-title { font-size: var(--fs-60); letter-spacing: .06em; }
  html[data-skin="a"] .hero-slogan { font-size: var(--fs-26); }
  html[data-skin="a"] .hero-qi { font-size: var(--fs-22); padding: var(--space-6) var(--space-4); }
}

/* ---- 两院卡 / 园地：去框，段与段之间 96px 留白 ---- */
html[data-skin="a"] .home-cols { display: block; margin: 0; }
html[data-skin="a"] .card { background: none; border: 0; border-radius: 0; padding: 0; margin: var(--space-24) 0 0; }
html[data-skin="a"] .home-card { margin-top: var(--space-24); }
html[data-skin="a"] .card .eyebrow { font-size: var(--fs-14); letter-spacing: .3em; color: var(--text-secondary); margin-bottom: var(--space-3); }
html[data-skin="a"] .card h2 { font: 400 var(--fs-30)/1.3 var(--font-display); letter-spacing: .2em; color: var(--accent); margin: 0 0 var(--space-6); }
html[data-skin="a"] .home-card .card-desc { font: var(--fs-20)/2 var(--font-kai); color: var(--text); margin: 0 0 var(--space-4); }
html[data-skin="a"] .home-card .card-links { gap: var(--space-8); }
html[data-skin="a"] .home-card .textlink { color: var(--text-secondary); }
html[data-skin="a"] .home-garden { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-24); padding-top: var(--space-6); border-top: 1px solid var(--border); }
html[data-skin="a"] .home-garden .eyebrow, html[data-skin="a"] .home-garden .card-desc { display: none; }
html[data-skin="a"] .home-garden h2 { font-size: var(--fs-18); letter-spacing: .2em; margin: 0; color: var(--text-secondary); }
html[data-skin="a"] .home-garden .card-links { margin: 0; }
html[data-skin="a"] .home-garden .textlink { font-size: var(--fs-16); color: var(--text-secondary); }

/* ---- 落地页：一页纸 hero + 细线行目录 ---- */
html[data-skin="a"] .landing-hero { text-align: left; background: none; border: 0; padding: var(--space-16) 0 var(--space-8); }
html[data-skin="a"] .landing-hero .hero-mark { margin: 0 0 var(--space-6); }
html[data-skin="a"] .landing-hero .eyebrow { font-size: var(--fs-14); letter-spacing: .3em; color: var(--accent); }
html[data-skin="a"] .landing-hero .hero-title { font-size: var(--fs-44); letter-spacing: .14em; margin: var(--space-4) 0 var(--space-6); }
html[data-skin="a"] .landing-hero .hero-sub { font: var(--fs-20)/2 var(--font-kai); letter-spacing: 0; color: var(--text-secondary); margin: 0; }
@media (min-width: 768px) { html[data-skin="a"] .landing-hero .hero-title { font-size: var(--fs-60); } }
html[data-skin="a"] .landing-list ul { columns: 1; margin-top: var(--space-8); border-top: 1px solid var(--border); }
html[data-skin="a"] .card li { padding: 0; }
html[data-skin="a"] .card li a { font: var(--fs-20)/1.5 var(--font-display); letter-spacing: .06em; min-height: 56px; width: 100%; }

/* ---- 讲义页：单栏、窄目录、大标题大留白 ---- */
html[data-skin="a"] .page-head { padding: var(--space-4) 0 0; }
html[data-skin="a"] h1.page-title { font: 400 var(--fs-44)/1.35 var(--font-display); letter-spacing: .1em; margin: var(--space-8) 0 var(--space-12); }
@media (min-width: 768px) { html[data-skin="a"] h1.page-title { font-size: var(--fs-60); } }
html[data-skin="a"] article p { font-size: var(--fs-20); line-height: 1.95; }
html[data-skin="a"][data-fs="s"] article p { font-size: var(--fs-18); }
html[data-skin="a"][data-fs="l"] article p { font-size: var(--fs-22); }
html[data-skin="a"] article h2 { font: 400 var(--fs-30)/1.3 var(--font-display); letter-spacing: .16em; color: var(--accent); margin: var(--space-24) 0 var(--space-4); }
html[data-skin="a"] article h3 { font: 400 var(--fs-26)/1.4 var(--font-display); letter-spacing: .08em; margin: var(--space-12) 0 var(--space-3); }
html[data-skin="a"] article h4 { font: 400 var(--fs-20)/1.5 var(--font-display); letter-spacing: .06em; }
@media (min-width: 768px) { html[data-skin="a"] article h2 { font-size: var(--fs-34); margin-top: calc(var(--space-24) + var(--space-8)); } }
html[data-skin="a"] article blockquote { background: none; border-radius: 0; }
/* U18f F4：讲义页正文遗留表格框归零（验收 V8-2）——base 的 .table-scroll 边框/圆角属 b/c 卡片骨架，
   D1 静室辨识点是「几乎无框、靠留白」，a 作用域下归零；只改 a，b/c 不动 */
html[data-skin="a"] .table-scroll { border: 0; border-radius: 0; }
@media (min-width: 1024px) {
  html[data-skin="a"] main:has(> .toc) { grid-template-columns: 12rem minmax(0, 36rem); max-width: 58rem; column-gap: var(--space-12); }
  html[data-skin="a"] .toc { background: none; border: 0; border-radius: 0; padding: 0; font-family: var(--font-ui); }
  html[data-skin="a"] .toc summary { font-size: var(--fs-14); font-weight: 400; letter-spacing: .3em; color: var(--text-secondary); }
  html[data-skin="a"] .toc a { font-size: var(--fs-14); color: var(--text-secondary); }
  html[data-skin="a"] .toc a[aria-current="true"] { color: var(--accent); font-weight: 400; }
}
html[data-skin="a"] .reading-tools { background: var(--bg); }
html[data-skin="a"] .seg-book { margin-top: var(--space-16); }

/* ---- 正文语义（U17）：引文 = 内缩 + 宋体放大 + 朱色粗饰线；脚注 = 黑体小字注色、顶格；与普通段（楷体 20px）三类可辨 ---- */
html[data-skin="a"] article .quote { font-family: var(--font-display); font-size: var(--fs-22); line-height: 2; color: var(--text); border-left: 3px solid var(--accent); padding: 0 0 0 var(--space-6); margin: var(--space-8) 0 var(--space-8) var(--space-4); }
html[data-skin="a"] article .quote--saying { border-left-color: var(--text-secondary); }
html[data-skin="a"] article .quote--verse { letter-spacing: .12em; }
html[data-skin="a"] article .quote .quote-text { color: inherit; }
html[data-skin="a"] article .fn-note { font-family: var(--font-ui); font-size: var(--fs-16); line-height: 1.7; color: var(--note); margin: var(--space-3) 0; }
html[data-skin="a"] article .fn-note--editor { color: var(--text-secondary); }
html[data-skin="a"] article .fn-src { color: var(--note); font-family: var(--font-ui); font-size: var(--fs-14); }

html[data-skin="a"] .site-footer { border-top: 0; text-align: left; max-width: 48rem; margin: 0 auto; padding: var(--space-24) var(--space-6) var(--space-12); }
/* 段内引文（混排段里被 span.quote-text 包住的那一段）：宋体 + 细朱下划线，读者一眼看出「这是引的话」 */
html[data-skin="a"] article p:not(.quote) .quote-text { font-family: var(--font-display); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--accent); text-underline-offset: 6px; }
/* themes/b-shuan.css · D2 书案（默认主题，html[data-skin="b"]）
   骨架：「工作台」——页面是分区的面板（panel）：顶栏满宽页签、首页首屏标语+工具链接+培养目标并排+两院同款卡片，
   讲义页 = 左侧目录 + 白色阅读面板；标题全部黑体粗体、h1 与正文级差拉开（本版修 D2 缺点：级差偏弱）。
   token 名冻结（contract §2）；值只写在本文件的 html[data-skin="b"] 块；组件规则只写 html[data-skin="b"] … 形式。
   不 import 其他主题的任何值。 */

html[data-skin="b"] {
  --bg: #e8edeb;
  --bg-elevated: #ffffff;
  --text: #1c2a33;
  --text-secondary: #51626c;
  --accent: #1e4d6b;
  --accent-weak: #eef3f4;
  --note: #9a3f2a;
  --border: #c9d3d0;
  --acc2: #b3392a;          /* 书案专属：印章红（页签下标/编号/logo 块） */
  --font-display: var(--font-ui);
  --font-body: var(--font-ui);
  color-scheme: light;
}
html[data-skin="b"][data-theme="dark"] {
  --bg: #0e1519;
  --bg-elevated: #172228;
  --text: #dde7ea;
  --text-secondary: #9fb0b8;
  --accent: #86bfdf;
  --accent-weak: #1d2b32;
  --note: #e8a08f;
  --border: #2b3a42;
  --acc2: #e0806f;
  color-scheme: dark;
}

/* ---- 顶栏：面板色 + 品牌方块 + 页签 ---- */
html[data-skin="b"] .site-header { background: var(--bg-elevated); -webkit-backdrop-filter: none; backdrop-filter: none; padding-left: var(--space-4); padding-right: var(--space-4); }
html[data-skin="b"] .site-name { display: flex; align-items: center; gap: var(--space-2); font-family: var(--font-ui); }
html[data-skin="b"] .site-name::before { content: "如"; flex: none; width: 32px; height: 32px; border-radius: 6px; background: var(--acc2); color: #fff; display: grid; place-items: center; font: 700 var(--fs-18)/1 var(--font-ui); }
html[data-skin="b"] .nav-toggle, html[data-skin="b"] .ctl { background: var(--bg-elevated); }
@media (min-width: 768px) {
  html[data-skin="b"] .site-header { min-height: 64px; gap: var(--space-6); padding-left: var(--space-8); padding-right: var(--space-8); }
  html[data-skin="b"] .site-nav { flex: 1; max-width: 36rem; align-self: stretch; gap: var(--space-2); }
  html[data-skin="b"] .site-nav a, html[data-skin="b"] .site-nav .site-nav-current { min-height: 64px; padding: 0 var(--space-3); border-bottom: 3px solid transparent; }
  html[data-skin="b"] .site-nav a[aria-current="page"], html[data-skin="b"] .site-nav .site-nav-current { background: var(--accent-weak); border-bottom-color: var(--accent); }
  html[data-skin="b"] .nav-group { gap: var(--space-2); }
  html[data-skin="b"] .nav-group--yuan { border-left: 1px solid var(--border); border-right: 1px solid var(--border); padding: 0 var(--space-2); }
  html[data-skin="b"] .nav-group--yandi { margin-left: var(--space-2); }
}

/* ---- 主体：宽工作区 ---- */
html[data-skin="b"] main { padding: var(--space-4) var(--space-4) var(--space-12); }
@media (min-width: 768px) { html[data-skin="b"] main { padding: var(--space-4) var(--space-8) var(--space-16); } }
@media (min-width: 1100px) { html[data-skin="b"] main { max-width: 75rem; padding: var(--space-4) var(--space-8) 80px; } }
html[data-skin="b"] .breadcrumb { margin: 0 0 var(--space-2); }

/* ---- 首页 hero：左标语/工具链接，右培养目标并排 ---- */
html[data-skin="b"] .hero { display: grid; gap: var(--space-3); text-align: left; background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-4); margin-top: var(--space-2); }
html[data-skin="b"] .hero > * { min-width: 0; }
html[data-skin="b"] .hero-mark { display: none; }
html[data-skin="b"] .hero-sub { order: -1; margin: 0; font: 600 var(--fs-16)/1.5 var(--font-ui); letter-spacing: .04em; color: var(--acc2); }
html[data-skin="b"] .hero-title { font: 700 var(--fs-34)/1.3 var(--font-ui); letter-spacing: .02em; color: var(--text); margin: 0; }
html[data-skin="b"] .hero-slogan { font: var(--fs-22)/1.6 var(--font-kai); color: var(--text); margin: 0; }
html[data-skin="b"] .hero-qi { font: var(--fs-18)/1.7 var(--font-kai); color: var(--text-secondary); margin: 0; }
html[data-skin="b"] .hero-actions { display: none; }
html[data-skin="b"] .hero-garden { margin: 0; }
html[data-skin="b"] .hero-garden .textlink { min-height: 44px; color: var(--accent); font-weight: 600; }
html[data-skin="b"] .hero-chips { display: flex; margin: 0; }
html[data-skin="b"] .chip { background: var(--accent-weak); }
html[data-skin="b"] .chip:hover { border-color: var(--accent); color: var(--accent); }
html[data-skin="b"] .home-aims { display: block; background: var(--accent-weak); border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-4); }
html[data-skin="b"] .aim-title { margin: 0; font: 700 var(--fs-18)/1.4 var(--font-ui); color: var(--text); }
html[data-skin="b"] .aim-text { margin: var(--space-1) 0 var(--space-3); font: var(--fs-16)/1.7 var(--font-kai); color: var(--text-secondary); }
html[data-skin="b"] .aim-text:last-child { margin-bottom: 0; }
@media (min-width: 768px) {
  html[data-skin="b"] .hero { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); column-gap: var(--space-6); padding: var(--space-6); align-items: start; }
  html[data-skin="b"] .hero > :not(.home-aims) { grid-column: 1; }
  html[data-skin="b"] .home-aims { grid-column: 2; grid-row: 1 / span 6; }
  html[data-skin="b"] .hero-title { font-size: var(--fs-44); }
}

/* ---- 两院入口：同款卡片（同款实心按钮），园地是另一块（无按钮） ---- */
html[data-skin="b"] .home-cols { gap: var(--space-4); margin-top: var(--space-4); }
html[data-skin="b"] .card { background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-4); margin: var(--space-4) 0; }
html[data-skin="b"] .home-card { border-top: 4px solid var(--accent); margin: 0; display: flex; flex-direction: column; }
html[data-skin="b"] .card .eyebrow { color: var(--acc2); font-weight: 600; }
html[data-skin="b"] .card h2 { font: 700 var(--fs-26)/1.3 var(--font-ui); letter-spacing: 0; }
html[data-skin="b"] .home-card .card-desc { font-family: var(--font-kai); color: var(--text); }
html[data-skin="b"] .home-card .card-links { margin-top: auto; flex-direction: column; align-items: stretch; gap: var(--space-2); }
html[data-skin="b"] .card-links .pill--college { min-height: 48px; padding: 0 var(--space-4); border-radius: var(--radius-icon); font-weight: 700; }
html[data-skin="b"] .pill--college:hover { filter: brightness(1.12); }
html[data-skin="b"] .card-links .textlink { justify-content: center; color: var(--accent); }
html[data-skin="b"] .home-garden { background: var(--accent-weak); border-style: dashed; }

/* ---- 落地页：面板化 hero + 大纲卡 ---- */
html[data-skin="b"] .landing-hero { background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-6) var(--space-4); text-align: left; margin-top: var(--space-2); }
html[data-skin="b"] .landing-hero .eyebrow { color: var(--acc2); font-weight: 600; }
html[data-skin="b"] .landing-hero .hero-title { margin-top: var(--space-2); }
html[data-skin="b"] .landing-hero .hero-sub { order: 0; margin-top: var(--space-3); font: var(--fs-18)/1.7 var(--font-kai); color: var(--text-secondary); letter-spacing: 0; }
html[data-skin="b"] .landing-list ul { columns: 1; }
@media (min-width: 768px) { html[data-skin="b"] .landing-list ul { columns: 2; } }
@media (min-width: 1024px) { html[data-skin="b"] .landing-list ul { columns: 3; } }
html[data-skin="b"] .card li { padding: 0; }
html[data-skin="b"] .card li a { font-family: var(--font-kai); }
html[data-skin="b"] article { background: transparent; }

/* ---- 讲义页：标题面板 + 白色阅读面板 + 左目录 ---- */
html[data-skin="b"] .page-head { background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-3) var(--space-4) var(--space-4); margin-bottom: var(--space-4); }
html[data-skin="b"] h1.page-title { font: 700 var(--fs-34)/1.3 var(--font-ui); letter-spacing: .02em; margin: var(--space-2) 0 0; }
@media (min-width: 768px) { html[data-skin="b"] h1.page-title { font-size: var(--fs-44); } }
html[data-skin="b"] main > article { background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-card); padding: var(--space-4); }
@media (min-width: 768px) { html[data-skin="b"] main > article { padding: var(--space-6) var(--space-8); } }
html[data-skin="b"] article h2 { font: 700 var(--fs-26)/1.3 var(--font-ui); border-top: 2px solid var(--accent); padding-top: var(--space-3); margin: 1.8em 0 .5em; }
html[data-skin="b"] article h3 { font: 700 var(--fs-22)/1.3 var(--font-ui); }
html[data-skin="b"] article h4 { font: 700 var(--fs-18)/1.4 var(--font-ui); }
@media (min-width: 768px) { html[data-skin="b"] article h2 { font-size: var(--fs-30); } }
@media (min-width: 1024px) {
  html[data-skin="b"] main:has(> .toc) { grid-template-columns: 15rem minmax(0, 46rem); max-width: 70rem; column-gap: var(--space-4); }
}
html[data-skin="b"] .toc { border-radius: var(--radius-card); }
html[data-skin="b"] .toc a[aria-current="true"] { background: var(--accent-weak); border-radius: 6px; }
html[data-skin="b"] .reading-tools { background: var(--bg-elevated); }
html[data-skin="b"] .seg-book { margin-top: var(--space-8); }

/* ---- 正文语义（U17）：引文 = 浅底面板 + 粗左边线 + 楷体放大；脚注 = 黑体小字 + 虚线上边 + 砖红注色；与普通段（黑体 18px 正文色）三类可辨 ---- */
html[data-skin="b"] article .quote { font-family: var(--font-kai); font-size: var(--fs-20); line-height: 1.9; color: var(--text); background: var(--accent-weak); border-left: 4px solid var(--accent); border-radius: 0 var(--radius-icon) var(--radius-icon) 0; padding: var(--space-2) var(--space-4); margin: var(--space-4) 0; }
html[data-skin="b"] article .quote--saying { border-left-color: var(--acc2); }
html[data-skin="b"] article .quote--verse { letter-spacing: .06em; font-weight: 700; }
html[data-skin="b"] article .quote .quote-text { color: inherit; }
html[data-skin="b"] article .fn-note { font-family: var(--font-ui); font-size: var(--fs-16); line-height: 1.6; color: var(--note); border-top: 1px dashed var(--border); padding-top: var(--space-2); margin: var(--space-3) 0; }
html[data-skin="b"] article .fn-note--editor { color: var(--text-secondary); }
html[data-skin="b"] article .fn-src { color: var(--note); font-family: var(--font-ui); font-size: var(--fs-14); }

html[data-skin="b"] .site-footer { background: transparent; text-align: left; }
@media (min-width: 1100px) { html[data-skin="b"] .site-footer { max-width: 75rem; margin: 0 auto; padding-left: var(--space-8); } }
/* 段内引文（混排段里被 span.quote-text 包住的那一段）：浅底高亮 + 楷体，卡片式 */
html[data-skin="b"] article p:not(.quote) .quote-text { font-family: var(--font-kai); background: var(--accent-weak); border-bottom: 2px solid var(--accent); padding: 0 var(--space-1); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
/* themes/c-zazhi.css · D3 杂志（html[data-skin="c"]）
   骨架：「杂志版面」——近全黑通栏（页头/首屏/页标题/页脚都是墨色带）+ 超大黑体字压首屏，两院左右各半、同款；
   正文区 = 白纸 + 粗黑上边线的栏目，园地 = 红色通栏。
   本版修 D3 缺点「讲义页首屏被大标题吃掉」：讲义页/落地页的标题带限制在 44/60px、内边距 ≤24px，正文起点紧贴标题带；
   首页首屏可以超大字（桌面 ≤150px，超出 reference-spec 字号阶，理由见 DONE；手机仍用阶内 60px，360px 不横滚）。
   token 值只写在本文件 html[data-skin="c"] 块；新增主题内部 token：--ink / --on-ink / --acc-ink。不 import 其他主题的任何值。 */

html[data-skin="c"] {
  --bg: #f3f2ee;
  --bg-elevated: #ffffff;
  --text: #14120f;
  --text-secondary: #5d5850;
  --accent: #c0301b;
  --accent-weak: #e9e5da;
  --note: #b02a16;
  --border: #cfcbc0;
  --ink: #14120f;          /* 通栏墨色 */
  --on-ink: #f3f2ee;       /* 墨色上的文字 */
  --acc-ink: #ff8570;      /* 红色在墨色上的亮版（文字用，≥4.5:1） */
  color-scheme: light;
}
html[data-skin="c"][data-theme="dark"] {
  --bg: #17150f;
  --bg-elevated: #211e17;
  --text: #ece9e1;
  --text-secondary: #a8a396;
  --accent: #ef6a52;
  --accent-weak: #2c2820;
  --note: #f08a76;
  --border: #38342b;
  --ink: #403926;          /* 通栏墨色；U18f F3：暗色下原 #000000 对纸色 #17150f 仅 1.15:1（通栏融进背景），提亮到对纸色 ≈1.6:1，色带肉眼可辨，不加边框硬撑 */
  --on-ink: #ece9e1;
  --acc-ink: #ff8570;
  color-scheme: dark;
}

/* ---- 页头：墨色通栏 ---- */
html[data-skin="c"] .site-header { background: var(--ink); color: var(--on-ink); -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: 1px solid rgb(255 255 255 / .22); padding-left: var(--space-4); padding-right: var(--space-4); }
html[data-skin="c"] .site-name { color: var(--on-ink); font: 700 var(--fs-14)/44px var(--font-ui); letter-spacing: .3em; }
html[data-skin="c"] .site-header .ctl, html[data-skin="c"] .nav-toggle { background: transparent; color: var(--on-ink); border-color: rgb(255 255 255 / .32); }
html[data-skin="c"] .site-header .ctl:hover { color: var(--acc-ink); border-color: var(--acc-ink); }
html[data-skin="c"] .site-nav a, html[data-skin="c"] .site-nav .site-nav-current { color: color-mix(in srgb, var(--on-ink) 75%, transparent); font-weight: 600; }
html[data-skin="c"] .site-nav a:hover { color: var(--on-ink); }
html[data-skin="c"] .site-nav a[aria-current="page"], html[data-skin="c"] .site-nav .site-nav-current { color: var(--on-ink); box-shadow: inset 0 -3px var(--accent); }
@media (min-width: 768px) {
  html[data-skin="c"] .site-header { padding-left: var(--space-8); padding-right: var(--space-8); }
  html[data-skin="c"] .site-nav { margin-left: auto; }
  html[data-skin="c"] .site-nav a, html[data-skin="c"] .site-nav .site-nav-current { padding: 0 var(--space-6); min-height: 56px; }
  html[data-skin="c"] .nav-group--yuan { border-left: 1px solid rgb(255 255 255 / .22); }
  html[data-skin="c"] .nav-group--yandi { border-left: 1px solid rgb(255 255 255 / .22); }
  html[data-skin="c"] .header-ctl { margin-left: var(--space-6); }
}

/* ---- 手机抽屉：墨色 ---- */
html[data-skin="c"] .site-drawer { background: var(--ink); color: var(--on-ink); border-left: 0; }
html[data-skin="c"] .site-drawer a, html[data-skin="c"] .site-drawer .site-nav-current { color: var(--on-ink); font-weight: 700; border-radius: 0; }
html[data-skin="c"] .site-drawer a[aria-current="page"], html[data-skin="c"] .site-drawer .site-nav-current { background: var(--accent); color: var(--bg); }
html[data-skin="c"] .drawer-title { color: var(--on-ink); font-family: var(--font-ui); font-weight: 700; letter-spacing: .2em; font-size: var(--fs-16); }
html[data-skin="c"] .nav-close { color: var(--on-ink); border-color: rgb(255 255 255 / .32); }
html[data-skin="c"] .site-drawer .nav-group--yuan, html[data-skin="c"] .site-drawer .nav-group--yandi { border-color: rgb(255 255 255 / .28); border-radius: 0; }

/* ---- 主体与通栏带（box-shadow + clip-path 让带子出血到视口两侧，内容仍在 main 内） ---- */
html[data-skin="c"] main { max-width: 90rem; margin: 0 auto; padding: 0 var(--space-4) var(--space-12); }
@media (min-width: 768px) { html[data-skin="c"] main { padding: 0 var(--space-8) var(--space-16); } }
html[data-skin="c"] .hero, html[data-skin="c"] .page-head, html[data-skin="c"] .landing-hero { background: var(--ink); color: var(--on-ink); box-shadow: 0 0 0 100vmax var(--ink); clip-path: inset(0 -100vmax); border: 0; border-radius: 0; text-align: left; }
html[data-skin="c"] .hero-mark { display: none; }
html[data-skin="c"] .breadcrumb, html[data-skin="c"] .breadcrumb a { color: color-mix(in srgb, var(--on-ink) 75%, transparent); }
html[data-skin="c"] .breadcrumb [aria-current="location"] { color: var(--on-ink); }

/* ---- 首页首屏：超大字压版 ---- */
html[data-skin="c"] .hero { display: flex; flex-direction: column; min-height: calc(100svh - 57px); justify-content: flex-end; padding: var(--space-8) 0 0; margin-top: 0; }
html[data-skin="c"] .hero-sub { order: -2; margin: 0 0 var(--space-6); font: 700 var(--fs-16)/1.6 var(--font-ui); letter-spacing: .2em; color: var(--acc-ink); }
html[data-skin="c"] .hero-title { order: -1; margin: 0 0 var(--space-4) -.04em; font: 900 var(--fs-60)/1 var(--font-display); letter-spacing: -.02em; color: var(--on-ink); text-wrap: balance; }
html[data-skin="c"] .hero-slogan { font: var(--fs-22)/1.6 var(--font-kai); color: var(--on-ink); max-width: 20em; margin: 0; text-wrap: balance; }
html[data-skin="c"] .hero-qi { font: var(--fs-16)/1.7 var(--font-kai); color: color-mix(in srgb, var(--on-ink) 72%, transparent); margin: var(--space-2) 0 0; }
html[data-skin="c"] .hero-garden { order: 4; margin: var(--space-4) 0 var(--space-6); }
html[data-skin="c"] .hero-garden .textlink { color: var(--on-ink); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
/* 两院入口 = 左右各半的同款大块 */
html[data-skin="c"] .hero-actions { order: 5; display: grid; grid-template-columns: 1fr; gap: var(--space-2); margin: 0 calc(-1 * var(--space-4)); align-items: stretch; }
html[data-skin="c"] .hero-actions .pill--college { display: flex; justify-content: space-between; align-items: center; min-height: 80px; padding: var(--space-3) var(--space-4); border: 0; border-radius: 0; background: var(--bg); color: var(--text); font: 900 var(--fs-30)/1.2 var(--font-display); }
html[data-skin="c"] .hero-actions .pill--college::after { content: "→"; font: 700 var(--fs-34) var(--font-ui); color: var(--accent); }
html[data-skin="c"] .hero-actions .pill--college:hover { color: var(--accent); }
@media (min-width: 768px) {
  html[data-skin="c"] .hero { padding-top: var(--space-12); }
  html[data-skin="c"] .hero-title { font-size: 6rem; }
  html[data-skin="c"] .hero-slogan { font-size: var(--fs-26); }
  html[data-skin="c"] .hero-actions { grid-template-columns: 1fr 1fr; margin: 0 calc(-1 * var(--space-8)); gap: 0; }
  html[data-skin="c"] .hero-actions .pill--college { min-height: 128px; padding: var(--space-8); font-size: var(--fs-44); border-left: 1px solid var(--border); }
}
@media (min-width: 1100px) { html[data-skin="c"] .hero-title { font-size: clamp(7.5rem, 10.5vw, 9.375rem); } }

/* ---- 栏目块：白纸 + 粗黑上边线；两院卡 = 两栏 ---- */
html[data-skin="c"] .card { background: none; border: 0; border-top: 4px solid var(--text); border-radius: 0; padding: var(--space-3) 0 0; margin: var(--space-12) 0 0; }
html[data-skin="c"] .card .eyebrow { font: 700 var(--fs-14) var(--font-ui); letter-spacing: .2em; color: var(--accent); }
html[data-skin="c"] .card h2 { font: 900 var(--fs-30)/1.2 var(--font-display); letter-spacing: 0; color: var(--text); margin: var(--space-2) 0 var(--space-4); }
html[data-skin="c"] .home-cols { display: grid; gap: var(--space-12); margin-top: var(--space-12); }
html[data-skin="c"] .home-card { margin: 0; }
html[data-skin="c"] .home-card .card-desc { font: var(--fs-20)/1.95 var(--font-kai); color: var(--text); }
html[data-skin="c"] .card-links .pill--college { min-height: 44px; padding: 0; border: 0; border-bottom: 2px solid var(--accent); border-radius: 0; background: none; color: var(--accent); font: 700 var(--fs-16) var(--font-ui); }
html[data-skin="c"] .home-card .textlink { color: var(--text-secondary); }
@media (min-width: 768px) {
  html[data-skin="c"] .home-cols { grid-template-columns: 1fr 1fr; column-gap: var(--space-16); }
  html[data-skin="c"] .card h2 { font-size: var(--fs-44); }
}
/* 园地 = 红色通栏（另一组，不是第三个「院」） */
html[data-skin="c"] .home-garden { background: var(--accent); color: var(--bg); border: 0; box-shadow: 0 0 0 100vmax var(--accent); clip-path: inset(0 -100vmax); padding: var(--space-12) 0; margin-top: var(--space-16); }
html[data-skin="c"] .home-garden .eyebrow, html[data-skin="c"] .home-garden h2, html[data-skin="c"] .home-garden .card-desc, html[data-skin="c"] .home-garden .textlink { color: inherit; }
html[data-skin="c"] .home-garden h2 { font-size: var(--fs-44); }
html[data-skin="c"] .home-garden .card-desc { font: var(--fs-22)/1.8 var(--font-kai); }
html[data-skin="c"] .home-garden .textlink { text-decoration: underline; text-underline-offset: 4px; font-weight: 700; }
@media (min-width: 768px) { html[data-skin="c"] .home-garden h2 { font-size: var(--fs-60); } html[data-skin="c"] .home-garden .card-desc { font-size: var(--fs-26); } }

/* ---- 落地页：墨色标题带 ---- */
html[data-skin="c"] .landing-hero { display: block; min-height: 0; padding: var(--space-6) 0 var(--space-8); margin-top: 0; }
html[data-skin="c"] .landing-hero .eyebrow { color: var(--acc-ink); font: 700 var(--fs-14) var(--font-ui); letter-spacing: .2em; }
html[data-skin="c"] .landing-hero .hero-title { font-size: var(--fs-60); margin: var(--space-2) 0 var(--space-4); }
html[data-skin="c"] .landing-hero .hero-sub { font: var(--fs-20)/1.9 var(--font-kai); letter-spacing: 0; color: color-mix(in srgb, var(--on-ink) 85%, transparent); max-width: 36em; margin: 0; }
@media (min-width: 768px) { html[data-skin="c"] .landing-hero .hero-title { font-size: 6rem; } }
@media (min-width: 1100px) { html[data-skin="c"] .landing-hero .hero-title { font-size: clamp(7.5rem, 11vw, 9.375rem); } }
html[data-skin="c"] .card ul { margin-top: var(--space-4); }
html[data-skin="c"] .card li { padding: 0; border-bottom: 0; border-top: 1px solid var(--border); }
html[data-skin="c"] .card li a { font: 700 var(--fs-18)/1.4 var(--font-kai); min-height: 52px; }

/* ---- 讲义页：墨色标题带（紧凑，正文紧贴其下）+ 白纸正文 ---- */
html[data-skin="c"] .page-head { padding: var(--space-3) 0 var(--space-4); margin-bottom: var(--space-6); }
html[data-skin="c"] h1.page-title { font: 900 var(--fs-44)/1.1 var(--font-display); color: var(--on-ink); margin: var(--space-2) 0 0; text-wrap: balance; }
@media (min-width: 768px) { html[data-skin="c"] h1.page-title { font-size: var(--fs-60); } }
html[data-skin="c"] main > article { max-width: 46rem; }
html[data-skin="c"] article p { line-height: 1.85; }
html[data-skin="c"] article h2 { font: 900 var(--fs-30)/1.15 var(--font-display); border-top: 4px solid var(--text); padding-top: var(--space-4); margin: var(--space-12) 0 var(--space-3); }
html[data-skin="c"] article h3 { font: 900 var(--fs-22)/1.3 var(--font-display); }
html[data-skin="c"] article h4 { font: 900 var(--fs-18)/1.4 var(--font-display); }
@media (min-width: 768px) { html[data-skin="c"] article h2 { font-size: var(--fs-44); } html[data-skin="c"] article h3 { font-size: var(--fs-26); } }
@media (min-width: 1024px) {
  html[data-skin="c"] main:has(> .toc) { grid-template-columns: 15rem minmax(0, 44rem); max-width: 70rem; column-gap: var(--space-8); }
  html[data-skin="c"] main:has(> .toc) > .page-head { grid-column: 1 / -1; }
  html[data-skin="c"] main:has(> .toc) > .toc { grid-row: 2 / span 6; background: none; border: 0; border-top: 4px solid var(--text); border-radius: 0; padding: var(--space-2) 0 0; font-family: var(--font-ui); }
}
html[data-skin="c"] .toc summary { font-weight: 700; letter-spacing: .1em; }
html[data-skin="c"] .toc a[aria-current="true"] { color: var(--accent); }
html[data-skin="c"] .seg-book .book-link { background: none; border: 0; border-bottom: 2px solid var(--text); border-radius: 0; color: var(--text); font-weight: 700; padding: 0 var(--space-1); }
html[data-skin="c"] .seg-book .book-link:hover { color: var(--accent); border-color: var(--accent); }

/* 阅读栏：墨色 */
html[data-skin="c"] .reading-tools { background: var(--ink); color: var(--on-ink); border-top: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
html[data-skin="c"] .reading-tools .ctl, html[data-skin="c"] .reading-tools .seg-btn { background: transparent; color: var(--on-ink); border-color: rgb(255 255 255 / .32); }
html[data-skin="c"] .reading-tools .ctl:hover, html[data-skin="c"] .reading-tools .seg-btn:hover { color: var(--acc-ink); border-color: var(--acc-ink); }
html[data-skin="c"] .reading-tools .seg-pos { color: color-mix(in srgb, var(--on-ink) 80%, transparent); }

/* ---- 正文语义（U17）：引文 = 黑体粗大字 + 6px 红色粗饰线；脚注 = 黑体小字红注色 + 细上边线；与普通段（楷体 18px 黑字）三类可辨 ---- */
html[data-skin="c"] article .quote { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-22); line-height: 1.7; color: var(--text); border-left: 6px solid var(--accent); padding: 0 0 0 var(--space-4); margin: var(--space-6) 0; }
html[data-skin="c"] article .quote--saying { border-left-color: var(--text); }
html[data-skin="c"] article .quote--verse { letter-spacing: .08em; }
html[data-skin="c"] article .quote .quote-text { color: inherit; }
@media (min-width: 768px) { html[data-skin="c"] article .quote { font-size: var(--fs-26); } }
html[data-skin="c"] article .fn-note { font-family: var(--font-ui); font-size: var(--fs-16); line-height: 1.7; color: var(--note); border-top: 1px solid var(--border); padding-top: var(--space-2); margin: var(--space-3) 0; }
html[data-skin="c"] article .fn-note--editor { color: var(--text-secondary); }
html[data-skin="c"] article .fn-src { color: var(--note); font-family: var(--font-ui); font-size: var(--fs-14); }
html[data-skin="c"] article p:not(.quote) .quote-text { font-family: var(--font-display); border-bottom: 2px solid var(--accent); }

/* ---- 页脚：墨色通栏 ---- */
html[data-skin="c"] body { padding-bottom: 0; }
html[data-skin="c"] .site-footer { background: var(--ink); color: color-mix(in srgb, var(--on-ink) 75%, transparent); border: 0; text-align: left; padding: var(--space-12) max(var(--space-4), calc((100% - 90rem) / 2 + var(--space-8))) var(--space-12); margin-top: var(--space-8); }
html[data-skin="c"] body:has(.reading-tools) .site-footer { padding-bottom: calc(128px + env(safe-area-inset-bottom)); }
