/* ============================================================
   paper-deck-reveal · 设计系统主题（学术论文 → 投影就绪 reveal.js 成片）
   北极星：如无必要勿增实体 · 投影就绪 · 当作产品做
   纯白页底(~90%) + 单一强调色(点睛 <5%) · Inter/Fraunces(英文承载设计身份) + 系统 PingFang(中文中性载体)

   ★ 本文件不定义任何颜色/字体变量——全部 token 来自 tokens.css（单一真源）。
     换肤 = 改 tokens.css 的三个 --accent* 行；本文件 var(--accent) 自动跟随，绝不在这里硬抄色值。
     这是从一篇真实成片（4 实验心理学论文）泛化而来：保留全部通用页型/子版式 CSS，
     去掉那一篇的专有内容文案；强调色一律走 var(--accent)。
   字体 @font-face 由 deck 的 index.html <head> 引 assets/fonts/fonts.css 加载（路径随 deck 根，故不在此 @import）。
   ============================================================ */

@import "tokens.css";

/* ===== reveal 画布与基础 ===== */
.reveal-viewport{ background: var(--canvas); }
.reveal{
  font-family: var(--font-text);
  font-size: 25px;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: .005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.reveal ::selection{ background: var(--accent-tint); }

.reveal .slides{ text-align: left; }
.reveal .slides section{
  height: 100%;
  box-sizing: border-box;
  padding: 64px 104px;             /* 8px 节奏：更阔的呼吸 */
  background: var(--bg);           /* 白色幻灯 = 灰画布上的一张「页面」 */
  border: 1px solid var(--card-edge);
  box-shadow: 0 4px 16px rgba(0,0,0,.05), 0 1px 3px rgba(0,0,0,.04);
}

/* ===== 标题层级 ===== */
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4{
  font-family: var(--font-cn);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.28;
  margin: 0 0 .5em 0;
  letter-spacing: .005em;
  text-transform: none;
  text-shadow: none;
}
.reveal h1{ font-size: 2.08em; letter-spacing: -.01em; }
.reveal h2{ font-size: var(--ts-title); }
.reveal h3{ font-size: 1.24em; }
.reveal h4{ font-size: var(--ts-cardmain); }
/* 标题里的拉丁词 / 论文名走 Fraunces */
.reveal .en{ font-family: var(--font-display); font-weight: 500; letter-spacing: -.005em; }

/* ===== 正文 / 列表（行距 1.8）===== */
.reveal p{ line-height: 1.8; color: var(--ink); margin: 0 0 .8em 0; }
.reveal ul, .reveal ol{ display: block; margin: .3em 0; line-height: 1.8; }
.reveal ul{ list-style: none; padding-left: 0; }
.reveal ul > li{
  position: relative; padding-left: 1.3em; margin: .6em 0;
  color: var(--ink); line-height: 1.72;
}
/* 一级标记：强调色小菱点（克制） */
.reveal ul > li::before{
  content:""; position: absolute; left: 0; top: .66em;
  width: .38em; height: .38em; background: var(--accent);
  border-radius: 1px; transform: rotate(45deg);
}

.reveal strong{ color: var(--ink); font-weight: 600; }
/* .warm = 全片主线关键词高亮（论文的核心构念/答案落点）：强调色 + 极细下划线，与底成整体 */
.reveal .warm{
  color: var(--accent-deep); font-weight: 600;
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 100% 1.5px; background-repeat: no-repeat;
  background-position: 0 1.04em; padding-bottom: 1px;
}
.reveal em{ font-style: italic; }

/* 统计量：Inter tabular；斜体只来自内部 <em>（Gate 1 容器前置条件：值容器不带 font-style，数字恒正体） */
.reveal .stat, .reveal .stat em{
  font-family: var(--font-latin);
  font-variant-numeric: tabular-nums; font-size: var(--ts-sub);
  color: var(--accent-deep); letter-spacing: 0;
}

.reveal a{ color: var(--accent); text-decoration: none; border-bottom: 1px solid var(--line); }

/* ============================================================
   版式模板 — 每页一个标题、一个焦点
   ============================================================ */

/* —— slide title 下的细红线（每页标题唯一收口）—— */
.reveal .title-rule{
  width: 44px; height: 2px; background: var(--accent);
  margin: .2em 0 1.2em 0; border: 0;
}

/* ===== 1. cover ===== */
.reveal .cover{
  display: flex !important; flex-direction: column; justify-content: center;
  height: 100%;
}
.reveal .cover .kicker{
  font-family: var(--font-cn); font-size: var(--ts-micro); letter-spacing: .18em;
  color: var(--accent); font-weight: 600; margin-bottom: 1.7em;
}
.reveal .cover h1{
  font-family: var(--font-display); font-size: 2.6em; font-weight: 500;
  line-height: 1.1; letter-spacing: -.02em;
  max-width: 17em; margin-bottom: .56em; color: var(--ink);
}
.reveal .cover .subtitle{
  font-family: var(--font-cn); font-size: var(--ts-claim); color: var(--ink-2);
  font-weight: 400; max-width: none; line-height: 1.7; margin-bottom: 0;
  white-space: nowrap;
}
.reveal .cover .meta{
  font-size: var(--ts-meta); color: var(--ink-2); line-height: 2;
  border-top: 1px solid var(--line); padding-top: 1.3em;
  margin-top: 2.8em; max-width: 36em;
}
.reveal .cover .meta .cite{ color: var(--ink-3); }
.reveal .cover .meta .cite em{ font-family: var(--font-display); font-style: italic; }
.reveal .cover .meta .who{ color: var(--ink); }

/* ===== 2. section-divider（行内引导：红色罗马数字正体，直接先导中文标题；最简）===== */
.reveal .section-divider{
  display: flex !important; flex-direction: column;
  justify-content: center; align-items: flex-start; height: 100%;
}
.reveal .section-divider .sec-lockup{
  display: flex; align-items: baseline; gap: .56em;
}
/* —— A2：罗马数字与中文标题视觉等大——Fraunces 大写字母视觉矮于中文，
   故字号放大到 3.0em 使大写字高 ≈ 中文字高；baseline 对齐两者底线 —— */
.reveal .section-divider .sec-num{
  position: relative; top: .08em;   /* 视觉居中：罗马数字 ink-center 比中文高 ~6px，下沉与中文标题对齐 */
  font-family: var(--font-display); font-size: 3.0em; font-weight: 500;
  font-style: normal; letter-spacing: 0; line-height: 1;
  color: var(--accent);
}
.reveal .section-divider h2{
  font-size: 2.4em; letter-spacing: .01em; margin: 0; font-weight: 600; line-height: 1.12;
}
.reveal .section-divider .sec-rule{
  width: 44px; height: 2px; background: var(--accent); border: 0;
  margin: 30px 0 0;
}
.reveal .section-divider .sec-sub{
  margin-top: 22px; font-size: var(--ts-body); color: var(--ink-3);
  letter-spacing: .06em; max-width: 30em; line-height: 1.7;
}

/* ===== 3. content（标题固定左上；内容自上而下铺排）===== */
.reveal .content{
  display: flex !important; flex-direction: column; justify-content: flex-start;
  height: 100%;
}
.reveal .content h2{ font-size: var(--ts-title); margin-bottom: 0; }

/* —— 正文从标题下「自然起排」铺满，不无脑垂直居中。
   默认 justify-content: flex-start；个别确需居中的页用 .slide-body.vcenter 显式开启。
   稀疏页通过形式（强调收束块 / 非对称分栏 / 加大段距）铺满纵向，而非靠居中。 —— */
.reveal .slide-body{
  flex: 1; display: flex; flex-direction: column; justify-content: flex-start;
  min-height: 0;
}
.reveal .slide-body.vcenter{ justify-content: center; }
/* 自然起排时，正文与标题红线之间留一档自然间距 */
.reveal .slide-body > :first-child{ margin-top: 4px; }

/* —— A3：实验标题「实验N · 子标题」全中文、等大、一行——
   实验N 强调色 + 子标题近黑，同 1.5em、同字重，· 灰色分隔；下接 title-rule 红线 —— */
.reveal h2.study-h2{
  font-size: var(--ts-title); margin-bottom: 0; font-weight: 600;
  font-family: var(--font-cn); display: flex; align-items: baseline;
  white-space: nowrap;
}
.reveal h2.study-h2 .ex{ color: var(--accent); font-weight: 600; }
.reveal h2.study-h2 .dot{
  color: var(--ink-3); font-weight: 400; margin: 0 .42em;
}
.reveal h2.study-h2 .sub{ color: var(--ink); font-weight: 600; }

/* 一句核心主张（单焦点页的"题眼"，红字点睛） */
.reveal .lede{
  font-size: var(--ts-cardmain); line-height: 1.7; color: var(--ink);
  max-width: 30em; margin: 0 0 30px 0;
}

/* .compare 对照两栏（两个并列概念/条件，左中性右强调）— 严格等高、内容垂直居中、绝不溢出 */
.reveal .compare{
  display: grid; grid-template-columns: 1fr 1fr;
  align-items: stretch; gap: 24px; min-height: 0;
}
.reveal .compare > .c-lead,
.reveal .compare > .c-focus{
  border: 1px solid var(--line); border-radius: 8px;
  padding: 22px 26px; min-height: 150px;
  display: flex; flex-direction: column; justify-content: center;  /* 内容垂直居中 */
  background: var(--bg);
}
.reveal .compare .c-focus{ background: var(--bg); }
/* 研究背景章节·稀疏页的三段式版面（claim → 对照 → 收束），与「现象」页 phenom-panel 同律。
   间距由单一 gap 掌控：justify-content:center 居中均衡铺满，子元素 margin 清零，杜绝叠加导致的不等距。 */
.reveal .contrast-panel,
.reveal .def-panel{
  flex: 1; display: flex; flex-direction: column; justify-content: center;
  min-height: 0; gap: 34px;
}
.reveal .contrast-panel > *,
.reveal .def-panel > *{ margin-top: 0; margin-bottom: 0; }
.reveal .contrast-panel > .footnote-line,
.reveal .def-panel > .footnote-line{ margin-top: 0; }   /* 提高特异性，压过 .footnote-line 自带的 margin-top */
.reveal .op-block{ display: flex; flex-direction: column; }
.reveal .op-intro{
  font-size: var(--ts-stat); color: var(--ink-2); line-height: 1.66;
  max-width: 44em; margin: 0 0 14px 0;
}
.reveal .compare .tag{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .18em;
  text-transform: uppercase; font-weight: 600; color: var(--ink-3);
  margin-bottom: 14px;
}
.reveal .compare .c-focus .tag{ color: var(--accent); }
.reveal .compare h4{
  font-family: var(--font-cn); font-size: var(--ts-lead); font-weight: 600;
  margin: 0 0 10px 0; color: var(--ink); line-height: 1.32;
}
.reveal .compare .c-focus h4{ color: var(--accent-deep); }
.reveal .compare p{
  font-size: var(--ts-compact); margin: 0; color: var(--ink-2); line-height: 1.58;
}
.reveal .compare .c-focus p{ color: var(--ink); }
.reveal .compare p .warm{ color: var(--accent-deep); }

/* ===== 4. table（垂直铺满）===== */
.reveal .content.table-slide{ justify-content: flex-start; }
.reveal table{
  border-collapse: collapse; width: 100%;
  margin: 6px 0; font-size: var(--ts-stat); font-family: var(--font-text);
}
.reveal table th, .reveal table td{
  border: none; border-bottom: 1px solid var(--line);
  padding: 15px 18px; text-align: left; line-height: 1.55; vertical-align: top;
}
.reveal table thead th{
  color: var(--ink); font-weight: 600;
  border-top: 2px solid var(--ink);      /* P1-1：表格顶线与表头下线同粗同色（design_spec §1D.4 / 翻车11），消「幽灵空白」 */
  border-bottom: 2px solid var(--ink); letter-spacing: .01em; font-size: var(--ts-sub);
}
.reveal table tbody tr:last-child td{ border-bottom: 1px solid var(--line-2); }
/* tr.hl = 表格唯一焦点行（该论文收敛的关键构念/条件）：强调色极淡底 + 强调字 */
.reveal table tbody tr.hl td{ background: var(--accent-tint); }
.reveal table td.warm-cell{ color: var(--accent-deep); font-weight: 600; }
.reveal table .muted{ color: var(--ink-3); }
/* 变量表：类别列（自变量 rowspan / 因变量）分组，一眼区分 IV / DV */
.reveal .var-table{ margin-top: 0; }   /* 去掉表格自带上边距，使「标题→表格」间距与「标题→正文」一致 */
.reveal .var-table th, .reveal .var-table td{ padding: 7px 18px; }   /* 统一收紧行高：四页变量表（3~4 行）行距一致且留足底部安全边距 */
/* 含变量表的设计页：收紧标题/导语间距，给 4 行表格留出底部呼吸 */
.reveal .slide-body:has(.var-table) .h2sub{ margin-bottom: 8px; }
.reveal .slide-body:has(.var-table) .sub-lede{ margin-bottom: 13px; }
.reveal .var-table thead th{ border-top: 2px solid var(--ink); }   /* 顶部线与表头下方分割线同粗同色（2px），构成对称表头带，避免出现不一致的细线 */
.reveal .var-table td.vcat{
  vertical-align: middle; font-weight: 600; color: var(--ink); font-size: var(--ts-sub);
  background: var(--surface); border-right: 1px solid var(--line-2); white-space: nowrap;
}
.reveal .var-table td.vname{ font-weight: 600; color: var(--ink); }
.reveal .var-table tr.dv-row td{ border-top: 1.5px solid var(--line-2); }
/* 新增测量 / 本实验新引入的变量——单一焦点行：极淡强调色底 + 红类别标签 */
.reveal .var-table td.vcat.nm{ color: var(--accent); background: var(--accent-tint); }
.reveal .var-table tr.nm-row td{ background: var(--accent-tint); border-top: 1.5px solid var(--line-2); }
.reveal .var-table tr.nm-row td.vname{ color: var(--accent-deep); }

/* ===== 5. figure（标题固定左上；图区自适应填充）===== */
.reveal .figure{
  display: flex !important; flex-direction: column; justify-content: flex-start;
  height: 100%;
}
.reveal .figure .fig-wrap{
  flex: 1; display: flex; align-items: center; justify-content: center;
  min-height: 0; margin: 14px 0;
}
.reveal .figure img{
  max-height: 100%; max-width: 80%; width: auto; object-fit: contain;
  border: 1px solid var(--line); border-radius: 4px;
  box-shadow: 0 1px 8px rgba(0,0,0,.04); background: var(--bg);   /* 白底：object-fit 信箱化时不露灰板（design_spec 翻车8） */
}
.reveal .figure .read-hint{
  font-size: var(--ts-body); color: var(--ink-2); line-height: 1.72;
  max-width: none; padding-left: 16px; border-left: 2px solid var(--accent);
}
.reveal .figure .read-hint .lbl{
  font-family: var(--font-latin); font-size: var(--ts-body); letter-spacing: .14em;
  text-transform: uppercase; font-weight: 600; color: var(--accent); margin-right: .7em;
}

/* main effect 强调条（结果页唯一焦点：b=1.49 红字）*/
.reveal .effect-bar{
  display: inline-flex; align-items: baseline; gap: .7em;
  padding: 0 0 0 16px; border-left: 2px solid var(--accent);
  margin-bottom: 2px;
}
.reveal .effect-bar .ef-label{ font-size: var(--ts-body); color: var(--ink-2); }
.reveal .effect-bar .ef-val{
  font-family: var(--font-latin);
  font-variant-numeric: tabular-nums; color: var(--accent-deep); font-size: var(--ts-sub);
}

/* ===== 6. interactive =====
   A1：交互页标题与内容页一致——h2 1.5em + title-rule 红线。
   上下 padding 收紧（顶 48 / 底 24），标题区固定高度，使 iframe 内容区净高 ≈ 560px。
   计算：section 720 − padding(48+24) − iv-head(标题行≈47 + rule区16) ≈ 585 → iframe 框 ~585，
   减去 iframe 自身 1px 边 → 内容净高落在 ~560–585，交互按 ≤560 设计即不溢出。 */
/* 提高选择器特异性，覆盖通用 .reveal .slides section 的 64px padding —— 否则 iframe 净高被吃掉 */
.reveal .slides section.interactive-slide{
  display: flex !important; flex-direction: column; height: 720px;
  padding: 64px 56px 24px;   /* P1-4：顶 40→64，页头 y 对齐内容网格 65（iframe 净高仍 ≥540，交互实测 530 无溢出） */
}
/* P1-4：页头（标题/眉注/红线/小注）对齐内容网格 x=105 —— 左右各让 48px（56+48+1px 边=105）；
   iframe 保持全宽（1168）不动，只有 deck 层页头入网格。 */
.reveal .interactive-slide .iv-head{
  display: flex; align-items: baseline; gap: .9em;
  flex: 0 0 auto; line-height: 1.1;
  margin: 0 48px;
}
.reveal .interactive-slide .iv-head h2{
  font-size: 1.4em; margin: 0; font-family: var(--font-cn); line-height: 1.1;
  display: flex; align-items: baseline; white-space: nowrap;
}
.reveal .interactive-slide .iv-head h2 .ex{ color: var(--accent); font-weight: 600; }
.reveal .interactive-slide .iv-head h2 .dot{ color: var(--ink-3); font-weight: 400; margin: 0 .42em; }
.reveal .interactive-slide .iv-head h2 .sub{ color: var(--ink); font-weight: 600; }
.reveal .interactive-slide .iv-head .iv-tag{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .16em;
  text-transform: uppercase; color: var(--accent); font-weight: 600;
  border: 1px solid var(--line-2); padding: .3em .7em; border-radius: 999px;
  margin-left: auto;
}
/* 交互页标题红线（与内容页 title-rule 同款，上下边距收紧以保 iframe 净高）*/
.reveal .interactive-slide .iv-rule{
  width: 44px; height: 2px; background: var(--accent); border: 0;
  margin: 8px 0 8px 48px; flex: 0 0 auto;   /* P1-4：随页头入网格 x=105 */
}
.reveal .interactive-slide iframe{
  flex: 1 1 auto; width: 100%; min-height: 0;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--bg); box-shadow: 0 1px 8px rgba(0,0,0,.03);
}

/* ===== fragment：克制，淡入 + 微上移 ===== */
.reveal .fragment.fade-in-up{
  opacity: 0; transform: translateY(8px);
  transition: opacity .35s ease, transform .35s ease;
}
.reveal .fragment.fade-in-up.visible{ opacity: 1; transform: none; }

/* ===== 页脚页码 / 进度 / 控制（极简）===== */
.reveal .slide-number{
  font-family: var(--font-latin); font-size: 15px;
  color: var(--ink-3); background: transparent; right: 30px; bottom: 22px;
}
.reveal .progress{ color: var(--accent); height: 2px; }
.reveal .controls{ color: var(--ink-3); }
.reveal .controls .navigate-left.enabled,
.reveal .controls .navigate-right.enabled,
.reveal .controls .navigate-up.enabled,
.reveal .controls .navigate-down.enabled{ opacity: .28; }

/* ============================================================
   全片新增模板 CSS（追加于锁定规则之外 · 同一视觉语言）
   复用 token / 同字号阶 / 同 8px 间距 / 同发丝边
   —— 不覆盖任何锁定规则，只新增类 ——
   ============================================================ */

/* —— 通用：内容页副导语（lede 之下、列表之上的小注） —— */
.reveal .sub-lede{
  font-size: var(--ts-stat); color: var(--ink-2); line-height: 1.7;
  max-width: 52em; margin: 0 0 22px 0;
}

/* —— 通用：强调色极淡 callout（整片至多一两处 · 焦点结论行）——
   ★ 横贯焦点带（callout/concl/predict 一族）一律 max-width:none：必须对齐主内容右缘，
     绝不被 em 上限卡在页面中间（翻车9 根因，design_spec §1D.3 / §2 翻车9）。
     需要更窄时由具体页面容器约束，而非在通用类上设 em 截断。 */
.reveal .callout{
  background: var(--accent-tint); border-left: 2px solid var(--accent);
  border-radius: 0 8px 8px 0; padding: 16px 22px;
  font-size: var(--ts-stat); line-height: 1.66; color: var(--ink);
  max-width: none;
}
.reveal .callout .lbl{
  font-family: var(--font-latin); font-size: var(--ts-body); letter-spacing: .14em;
  text-transform: uppercase; font-weight: 600; color: var(--accent); margin-right: .7em;
}

/* —— 通用：低调脚注句（如已有证据末行"本研究不同"，非元注释）—— */
/* 脚注：「红点引导 + 无框正文」的低调注脚（无语义灰竖线） */
.reveal .footnote-line{
  margin-top: 18px; font-size: var(--ts-body); color: var(--ink-2);
  line-height: 1.66; padding-left: 18px; position: relative;
  max-width: none;   /* 横贯元素解除 em 上限，对齐主内容右缘（design_spec §2 翻车9；QA 实测 46em 时右缘差 178px） */
}
.reveal .footnote-line::before{
  content: ""; position: absolute; left: 0; top: .62em;
  width: .3em; height: .3em; background: var(--line-2);
  border-radius: 1px; transform: rotate(45deg);
}
.reveal .table-slide .footnote-line{ max-width: none; }   /* 表格页脚注与表格同宽，避免比表格提前折行 */
.reveal .footnote-line .em-red{ color: var(--ink); font-weight: 600; }

/* ============================================================
   A. 信息层级页（基本信息 / agenda）— 标签 + 值，干净不堆段
   ============================================================ */
.reveal .info-list{ margin: 4px 0 0; max-width: 50em; }
.reveal .info-list .row{
  display: grid; grid-template-columns: 8.5em 1fr;
  gap: 18px 26px; align-items: baseline;
  padding: 15px 0; border-bottom: 1px solid var(--line);
}
.reveal .info-list .row:last-child{ border-bottom: 0; }
/* 信息行字段名：深灰小字重（不全红），把强调色留给真正关键词 */
.reveal .info-list .k{
  font-family: var(--font-cn); font-size: var(--ts-body); font-weight: 600;
  color: var(--ink-2); letter-spacing: .04em;
}
.reveal .info-list .v{
  font-size: var(--ts-stat); color: var(--ink); line-height: 1.62;
}
.reveal .info-list .v .sub{ color: var(--ink-2); }
.reveal .info-list .v em{ font-family: var(--font-display); font-style: italic; }
.reveal .info-list .v .ln{ display: block; margin-top: 4px; }
.reveal .info-list .v .ln:first-child{ margin-top: 0; }

/* —— agenda（汇报结构）：克制编号目录 —— */
.reveal .agenda{ margin: 6px 0 0; max-width: 40em; counter-reset: ag; }
.reveal .agenda .item{
  display: flex; align-items: baseline; gap: 22px;
  padding: 16px 0; border-bottom: 1px solid var(--line);
}
.reveal .agenda .item:last-child{ border-bottom: 0; }
.reveal .agenda .item .no{
  font-family: var(--font-display); font-style: normal; font-weight: 500;
  font-size: var(--ts-cardmain); color: var(--accent); width: 1.6em; flex: 0 0 auto;
}
.reveal .agenda .item .ttl{ font-size: var(--ts-sub); color: var(--ink); font-weight: 500; }
.reveal .agenda .item .note{ font-size: var(--ts-body); color: var(--ink-3); margin-left: auto; }

/* ============================================================
   B. study-header（目的 + 被试 + 方法说明）
   ============================================================ */
.reveal .study-tag{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .18em;
  text-transform: uppercase; font-weight: 600; color: var(--accent);
  margin-bottom: 10px;
}
.reveal .study-grid{
  display: grid; grid-template-columns: 1fr; gap: 16px; margin: 6px 0 0;
  max-width: 50em;
}
.reveal .study-block{
  border-left: 2px solid var(--line-2); padding: 4px 0 4px 20px;
}
.reveal .study-block.accent{ border-left-color: var(--accent); }
.reveal .study-block .h{
  font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600;
  color: var(--ink-3); letter-spacing: .06em; margin-bottom: 6px;
}
.reveal .study-block.accent .h{ color: var(--accent); }
.reveal .study-block .b{ font-size: var(--ts-stat); color: var(--ink); line-height: 1.66; }
.reveal .study-block .b strong{ color: var(--ink); }
/* 被试 N 大数字点睛 */
.reveal .study-block .n-big{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  color: var(--accent-deep); font-weight: 600;
}

/* —— 一行内的指标小卡（被试/平台/时长）—— */
.reveal .stat-row{
  display: flex; gap: 0; margin: 4px 0 0; max-width: 50em;
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
}
.reveal .stat-row .cell{
  flex: 1; padding: 16px 22px; border-right: 1px solid var(--line);
}
.reveal .stat-row .cell:last-child{ border-right: 0; }
.reveal .stat-row .cell .lab{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 600; margin-bottom: 7px;
}
.reveal .stat-row .cell .num{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  font-size: var(--ts-claim); color: var(--ink); font-weight: 600;
}
.reveal .stat-row .cell.accent .num{ color: var(--accent-deep); }
.reveal .stat-row .cell .num em{ font-style: italic; }
.reveal .stat-row .cell .unit{ font-size: var(--ts-micro); color: var(--ink-3); margin-left: .3em; }

/* ============================================================
   C. design 页（自变量小表 + 因变量 + 材料示例）
   ============================================================ */
.reveal .design-grid{
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 30px;
  align-items: stretch; margin: 4px 0 0;
}
.reveal .design-col{ display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.reveal .design-block .h{
  font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600;
  color: var(--accent); letter-spacing: .06em; margin-bottom: 9px;
}
/* design 页内嵌小表（比锁定 table 更紧） */
.reveal .mini-table{
  border-collapse: collapse; width: 100%; font-size: var(--ts-compact);
  font-family: var(--font-text);
}
.reveal .mini-table th, .reveal .mini-table td{
  border: none; border-bottom: 1px solid var(--line);
  padding: 9px 12px; text-align: left; line-height: 1.5; vertical-align: top;
}
.reveal .mini-table thead th{
  color: var(--ink); font-weight: 600; border-bottom: 1.5px solid var(--ink);
  font-size: var(--ts-sub);
}
.reveal .mini-table tbody tr:last-child td{ border-bottom: 1px solid var(--line-2); }
.reveal .design-block .dv-line{
  font-size: var(--ts-body); color: var(--ink); line-height: 1.62;
}
.reveal .design-block .dv-line strong{ color: var(--ink); }

/* —— 材料示例：独白 vs 日记，"逐字相同"对照 —— */
.reveal .material-ex{
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
  display: flex; flex-direction: column; height: 100%;
}
.reveal .material-ex .frame{
  padding: 14px 18px; border-bottom: 1px solid var(--line);
  font-size: var(--ts-body); line-height: 1.6; color: var(--ink);
}
.reveal .material-ex .frame:last-child{ border-bottom: 0; }
.reveal .material-ex .frame .frame-tag{
  font-family: var(--font-latin); font-size: var(--ts-micro); letter-spacing: .14em;
  text-transform: uppercase; font-weight: 600; color: var(--ink-3);
  display: block; margin-bottom: 7px;
}
.reveal .material-ex .frame.art .frame-tag{ color: var(--accent); }
.reveal .material-ex .frame strong{ color: var(--ink); }
.reveal .material-ex .same-note{
  background: var(--surface); padding: 11px 18px;
  font-size: var(--ts-meta); color: var(--ink-2); line-height: 1.5;
  border-top: 1px dashed var(--line-2); text-align: center;
}

/* ============================================================
   D. process steps（流程：编号步骤，横向或纵向）
   ============================================================ */
.reveal .steps{ display: flex; flex-direction: column; gap: 0; margin: 6px 0 0; max-width: 46em; }
.reveal .steps .step{
  display: flex; align-items: flex-start; gap: 20px;
  padding: 16px 0; border-bottom: 1px solid var(--line);
}
.reveal .steps .step:last-child{ border-bottom: 0; }
.reveal .steps .step .idx{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  font-size: var(--ts-stat); font-weight: 600; color: var(--accent);
  width: 1.9em; height: 1.9em; flex: 0 0 auto;
  border: 1.5px solid var(--accent); border-radius: 999px;
  display: flex; align-items: center; justify-content: center; line-height: 1;
}
.reveal .steps .step .txt{ font-size: var(--ts-lead); color: var(--ink); line-height: 1.6; padding-top: .15em; }
.reveal .steps .step .txt strong{ color: var(--ink); }
.reveal .steps .step .txt .sub{ display: block; font-size: var(--ts-stat); color: var(--ink-3); margin-top: 4px; }

/* —— 横向 4 步流程（紧凑，study 流程用）—— */
.reveal .steps-h{
  display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
  gap: 16px; margin: 8px 0 0; align-items: stretch;
}
.reveal .steps-h .step{
  border: 1px solid var(--line); border-radius: 10px; padding: 20px 20px;
  display: flex; flex-direction: column; gap: 12px; min-height: 150px;
}
.reveal .steps-h .step .idx{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  font-size: var(--ts-body); font-weight: 600; color: var(--accent);
  width: 1.8em; height: 1.8em; flex: 0 0 auto;
  border: 1.5px solid var(--accent); border-radius: 999px;
  display: flex; align-items: center; justify-content: center; line-height: 1;
}
.reveal .steps-h .step .txt{ font-size: var(--ts-body); color: var(--ink); line-height: 1.58; }
.reveal .steps-h .step .txt strong{ color: var(--ink); }

/* ============================================================
   E. 概念定义 + 操作化 结构（假设页 / 概念界定页）
   ============================================================ */
.reveal .def-block{ margin: 0 0 18px 0; max-width: 42em; }
/* def-block 内的统一二级标题：略收紧上下边距，避免假设页溢出 */
.reveal .def-block .h2sub{ margin-bottom: 8px; }
.reveal .def-block .def-tag{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .16em;
  text-transform: uppercase; font-weight: 600; color: var(--accent);
  margin-bottom: 8px;
}
.reveal .def-block .def-body{ font-size: var(--ts-lead); color: var(--ink); line-height: 1.72; }
.reveal .def-block .def-body strong{ color: var(--ink); }
.reveal .def-block .def-body .warm{ color: var(--accent-deep); }

/* —— 两列结构：概念 / 操作化（信息块横排）—— */
.reveal .twocol{
  display: grid; grid-template-columns: 1fr 1fr; gap: 28px;
  align-items: stretch; margin: 4px 0 0;
}
.reveal .twocol.ratio-6040{ grid-template-columns: 1.2fr .8fr; }
.reveal .info-card{
  border: 1px solid var(--line); border-radius: 10px; padding: 22px 26px;
  display: flex; flex-direction: column; background: var(--bg);
}
.reveal .info-card.accent{ background: var(--bg); }
.reveal .info-card .ic-tag{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .16em;
  text-transform: uppercase; font-weight: 600; color: var(--ink-3); margin-bottom: 12px;
}
.reveal .info-card.accent .ic-tag{ color: var(--accent); }
.reveal .info-card h4{
  font-family: var(--font-cn); font-size: var(--ts-lead); font-weight: 600;
  margin: 0 0 .55em 0; color: var(--ink);
}
.reveal .info-card.accent h4{ color: var(--accent-deep); }
.reveal .info-card p{ font-size: var(--ts-body); color: var(--ink-2); line-height: 1.7; margin: 0; }
.reveal .info-card.accent p{ color: var(--ink); }
.reveal .info-card p + p{ margin-top: .7em; }
.reveal .info-card ul{ margin: .2em 0 0; }
.reveal .info-card ul > li{ font-size: var(--ts-body); color: var(--ink-2); margin: .45em 0; line-height: 1.55; }

/* —— 操作化条目（量表题，紧凑编号）—— */
.reveal .op-items{ margin: 8px 0 0; }
.reveal .op-items .op{
  display: flex; gap: 14px; align-items: baseline; padding: 8px 0;
  font-size: var(--ts-body); color: var(--ink); line-height: 1.55;
}
.reveal .op-items .op .qn{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  font-weight: 600; color: var(--accent); flex: 0 0 auto;
}

/* —— 可证伪预测条（结论性，红框左线）—— */
.reveal .predict{
  margin-top: 18px; padding: 14px 20px; background: var(--surface);
  border-left: 2px solid var(--accent); border-radius: 0 8px 8px 0;
  font-size: var(--ts-stat); line-height: 1.62; color: var(--ink); max-width: 42em;
}
.reveal .predict .pl{
  font-family: var(--font-cn); font-weight: 600; color: var(--accent); margin-right: .6em;
}

/* ============================================================
   F. figure + table 组合页（第 19 页 · 上表下图 / 并排）
   ============================================================ */
/* 结果页·统计小表（关键统计列内）—— 与同类结果页统一在 .result-evidence 内 */
.reveal .figure .pair-table{
  border-collapse: collapse; width: 100%; font-size: var(--ts-compact);
  font-family: var(--font-text);
}
.reveal .figure .pair-table th,
.reveal .figure .pair-table td{
  border: none; border-bottom: 1px solid var(--line);
  padding: 8px 9px; text-align: left; line-height: 1.4; vertical-align: middle;
}
.reveal .figure .pair-table thead th{
  color: var(--ink); font-weight: 600;
  border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); font-size: var(--ts-sub);
}
.reveal .figure .pair-table td.num{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums; text-align: right;
}
.reveal .figure .pair-table .p-col{ color: var(--ink-2); text-align: right; font-family: var(--font-latin); font-variant-numeric: tabular-nums; }
.reveal .figure .pair-table tr.exc td{ color: var(--ink-3); }
.reveal .figure .pair-table tr.exc td.p-col{ color: var(--accent-deep); font-weight: 600; }
.reveal .figure .pair-table tbody tr:last-child td{ border-bottom: 1px solid var(--line-2); }

/* —— figure 页内的简洁结论行（图下一句）—— */
.reveal .figure .fig-concl{
  margin-top: 14px; font-size: var(--ts-body); color: var(--ink); line-height: 1.66;
  max-width: 46em;
}
.reveal .figure .fig-concl strong{ color: var(--ink); }

/* —— figure 页顶部多个 effect-bar 竖排 —— */
.reveal .effect-stack{ display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.reveal .effect-stack .effect-bar{ margin-bottom: 0; }

/* ============================================================
   J. "为什么做"强调引导块（多实验论文里，第 2..N 个实验目的页开头的 lede）
   —— 承接上一个实验的结论、点出本实验要补的缺口；强调色框左线，比正文略重，语义主线点睛 ——
   ============================================================ */
.reveal .why-lede{
  background: var(--accent-tint); border-left: 3px solid var(--accent);
  border-radius: 0 8px 8px 0; padding: 16px 22px;
  margin: 2px 0 22px 0; max-width: 48em;
  font-size: var(--ts-lead); line-height: 1.68; color: var(--ink);
}
.reveal .why-lede .wl-tag{
  font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 600;
  color: var(--accent); letter-spacing: .04em; margin-right: .6em;
}
.reveal .why-lede strong{ color: var(--ink); }
.reveal .why-lede .warm{ color: var(--accent-deep); }

/* —— 被试展开网格：方法点（招募/排除/分析N、年龄、性别、平台、报酬、预注册、功效）——
   一行多指标小卡，紧凑、可读、tabular 数字 —— */
.reveal .subj-grid{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
  margin: 4px 0 0; max-width: 52em;
}
.reveal .subj-grid .sc{
  padding: 15px 20px; border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.reveal .subj-grid .sc:nth-child(4n){ border-right: 0; }
.reveal .subj-grid .sc:nth-last-child(-n+4){ border-bottom: 0; }
.reveal .subj-grid .sc.accent{ background: var(--bg); }
.reveal .subj-grid .sc .lab{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .12em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 600; margin-bottom: 7px;
}
.reveal .subj-grid .sc .val{
  font-family: var(--font-text); font-variant-numeric: tabular-nums;
  font-size: var(--ts-sub); color: var(--ink); font-weight: 600; line-height: 1.4;
}
.reveal .subj-grid .sc.accent .val{ color: var(--accent-deep); }
.reveal .subj-grid .sc .val em{ font-family: var(--font-latin); font-style: italic; }
.reveal .subj-grid .sc .val .u{ font-size: var(--ts-meta); color: var(--ink-3); font-weight: 400; margin-left: .25em; }
.reveal .subj-grid .sc .val .sub{ display: block; font-size: var(--ts-compact); color: var(--ink-2); font-weight: 400; margin-top: 3px; }

/* ============================================================
   K. 结果页结构化主线（结论 → 分析 → 解读 小标题）
   —— 每个结果页用统一小标题节奏；结论一句话红色先行 ——
   ============================================================ */
/* 结论行：红底强调，一句话先行 */
.reveal .res-concl{
  background: var(--accent-tint); border-left: 3px solid var(--accent);
  border-radius: 0 8px 8px 0; padding: 14px 22px; margin: 2px 0 14px 0;
  font-size: var(--ts-lead); line-height: 1.62; color: var(--ink); max-width: 50em;
}
.reveal .res-concl .rc-tag{
  font-family: var(--font-cn); font-size: var(--ts-body); font-weight: 600;
  color: var(--accent); letter-spacing: .06em; margin-right: .6em;
}
.reveal .res-concl strong{ color: var(--ink); }
.reveal .res-concl .warm{ color: var(--accent-deep); }
/* 结论句尾内联统计量 */
.reveal .res-concl .ef-inline{
  display: block; margin-top: 6px;
  font-family: var(--font-latin);
  font-variant-numeric: tabular-nums; font-size: var(--ts-stat); color: var(--accent-deep);
}
/* 小标题（分析 / 解读）：克制的节段标 */
.reveal .res-h{
  font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600;
  color: var(--accent); letter-spacing: .08em; margin: 0 0 8px 0;
  display: flex; align-items: center; gap: 10px;
}
.reveal .res-h::after{
  content: ""; flex: 1; height: 1px; background: var(--line);
}
/* 解读 / 限定段：低调脚注气质，但比 footnote 略显主线 */
.reveal .res-read{
  font-size: var(--ts-body); color: var(--ink-2); line-height: 1.58;
  padding-left: 16px; border-left: 2px solid var(--line-2); max-width: 48em;
}
.reveal .res-read strong{ color: var(--ink); }
.reveal .res-read .warm{ color: var(--accent-deep); }

/* ====== 统一·实验结果页（1..N 个实验通用）：统计方法 → 统计结果（数据 + 大图）→ 结论沉底 ====== */
.reveal .figure.result{ justify-content: flex-start; }
.reveal .figure.result .rv-method{ display: flex; align-items: baseline; gap: .8em; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.reveal .figure.result .rv-method .mk{ font-family: var(--font-cn); font-size: var(--ts-micro); font-weight: 600; letter-spacing: .1em; color: var(--accent); flex: 0 0 auto; }
.reveal .figure.result .rv-method .mt{ font-size: var(--ts-compact); line-height: 1.5; color: var(--ink-2); }
.reveal .figure.result .rv-method .mt strong{ color: var(--ink); font-weight: 600; }
.reveal .figure.result .rv-method .mt em{ font-family: var(--font-latin); font-style: italic; }
.reveal .figure.result .a-results{ flex: 1; min-height: 0; display: grid; grid-template-columns: .44fr .56fr; gap: 34px; align-items: stretch; margin: 16px 0 18px; }
.reveal .figure.result .a-data{ display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.reveal .figure.result .rv-dh{ font-family: var(--font-cn); font-size: var(--ts-micro); font-weight: 600; letter-spacing: .1em; color: var(--ink-3); margin-bottom: 11px; }
.reveal .figure.result .a-stat{ margin-bottom: 16px; }
.reveal .figure.result .a-stat .lab{ font-size: var(--ts-compact); color: var(--ink); font-weight: 600; margin-right: .55em; }
.reveal .figure.result .a-stat .bv{ font-family: var(--font-latin); font-weight: 600; font-size: 1.32em; color: var(--accent-deep); }
.reveal .figure.result .a-stat .x{ display: block; margin-top: 5px; font-family: var(--font-latin); font-variant-numeric: tabular-nums; font-size: var(--ts-compact); color: var(--ink-2); }
.reveal .figure.result .rv-table{ border-collapse: collapse; width: 100%; font-size: var(--ts-compact); font-family: var(--font-text); }
.reveal .figure.result .rv-table th, .reveal .figure.result .rv-table td{ border: none; border-bottom: 1px solid var(--line); padding: 7px 8px; text-align: left; line-height: 1.4; vertical-align: middle; }
.reveal .figure.result .rv-table thead th{ color: var(--ink); font-weight: 600; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); font-size: var(--ts-sub); }
.reveal .figure.result .rv-table td.num{ font-family: var(--font-latin); font-variant-numeric: tabular-nums; text-align: right; }
.reveal .figure.result .rv-table .pc{ text-align: right; color: var(--ink-2); font-family: var(--font-latin); font-variant-numeric: tabular-nums; }
.reveal .figure.result .rv-table td.val{ color: var(--ink); }
.reveal .figure.result .rv-table td.val em{ font-family: var(--font-latin); font-style: italic; }
.reveal .figure.result .rv-table td.lead{ color: var(--ink); }
.reveal .figure.result .rv-table tr.exc td{ color: var(--ink-3); }
.reveal .figure.result .rv-table tr.exc td.pc{ color: var(--accent-deep); font-weight: 600; }
.reveal .figure.result .rv-table tbody tr:last-child td{ border-bottom: 1px solid var(--line-2); }
.reveal .figure.result .rv-fig{ min-width: 0; display: flex; flex-direction: column; min-height: 0; }
.reveal .figure.result .rv-fig img{ flex: 1; min-height: 0; max-width: 100%; object-fit: contain; object-position: center; }
.reveal .figure.result .rv-fig .fc{ margin-top: 9px; font-size: var(--ts-micro); color: var(--ink-3); line-height: 1.5; }
.reveal .figure.result .rv-fig .fc b{ font-family: var(--font-latin); color: var(--accent); font-weight: 600; margin-right: .5em; }
.reveal .figure.result .rv-concl{ background: var(--accent-tint); border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; padding: 13px 22px; }
.reveal .figure.result .rv-concl .ck{ font-family: var(--font-cn); font-weight: 600; color: var(--accent); margin-right: .7em; font-size: var(--ts-body); }
.reveal .figure.result .rv-concl .ct{ font-size: var(--ts-stat); line-height: 1.5; color: var(--ink); }
.reveal .figure.result .rv-concl .ct strong{ color: var(--ink); }
.reveal .figure.result .rv-concl .ct .warm{ color: var(--accent-deep); }

/* ============================================================
   G. 列表型 content（核心发现 / 机制 / 局限 / 贡献 / 小结）
   ============================================================ */
/* —— 编号要点列表（小结 / 局限，带红序号）—— */
.reveal .num-list{ margin: 8px 0 0; max-width: 48em; counter-reset: nl; }
.reveal .num-list .nl-item{
  display: flex; gap: 20px; align-items: baseline;
  padding: 13px 0; border-bottom: 1px solid var(--line);
}
.reveal .num-list .nl-item:last-child{ border-bottom: 0; }
.reveal .num-list .nl-item .nlx{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  font-weight: 600; color: var(--accent); font-size: var(--ts-lead); flex: 0 0 auto; width: 1.4em;
}
.reveal .num-list .nl-item .nlt{ font-size: var(--ts-stat); color: var(--ink); line-height: 1.62; }
.reveal .num-list .nl-item .nlt strong{ color: var(--ink); }
.reveal .num-list .nl-item .nlt .term{ font-weight: 600; color: var(--ink); }

/* —— 证据链（核心发现：四研究逐条 → 结论）—— */
.reveal .chain{ margin: 6px 0 0; max-width: 48em; }
.reveal .chain .ch-item{
  display: grid; grid-template-columns: 6.2em 1fr; gap: 18px;
  align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--line);
}
.reveal .chain .ch-item .ck{
  font-family: var(--font-latin); font-size: var(--ts-body); letter-spacing: .04em;
  font-weight: 600; color: var(--accent); text-transform: uppercase;
}
.reveal .chain .ch-item .cv{ font-size: var(--ts-stat); color: var(--ink); line-height: 1.6; }
.reveal .chain .ch-item .cv strong{ color: var(--ink); }
.reveal .chain .ch-concl{
  margin-top: 18px; padding: 16px 22px; background: var(--accent-tint);
  border-radius: 8px; font-size: var(--ts-lead); line-height: 1.66; color: var(--ink); max-width: 44em;
}
.reveal .chain .ch-concl .warm{ color: var(--accent-deep); }

/* —— 机制 / 贡献：两块或编号说明 —— */
.reveal .meta-flag{
  display: inline-block; font-family: var(--font-cn); font-size: var(--ts-meta);
  color: var(--ink-3); letter-spacing: .04em; margin-bottom: 16px;
  padding: 5px 14px; border: 1px solid var(--line-2); border-radius: 999px;
  align-self: flex-start;   /* P2-4：pill 收紧到文字宽（flex 列里不再被拉伸成整行） */
}
.reveal .reason-grid{
  display: grid; grid-template-columns: 1fr 1fr; gap: 26px;
  align-items: stretch; margin: 4px 0 0;
}
.reveal .reason-card{
  border: 1px solid var(--line); border-radius: 10px; padding: 30px 32px;
  display: flex; flex-direction: column; justify-content: center;
  min-height: 232px;
}
.reveal .reason-card .rn{
  font-family: var(--font-display); font-style: normal; font-size: var(--ts-cardmain);
  color: var(--accent); font-weight: 500; margin-bottom: 10px;
}
.reveal .reason-card h4{
  font-family: var(--font-cn); font-size: var(--ts-lead); font-weight: 600;
  margin: 0 0 .5em 0; color: var(--ink);
}
.reveal .reason-card p{ font-size: var(--ts-body); color: var(--ink-2); line-height: 1.7; margin: 0; }

/* ============================================================
   H. closing（谢谢 · 极简收尾，复用 cover 气质）
   ============================================================ */
.reveal .closing{
  display: flex !important; flex-direction: column; justify-content: center;
  height: 100%;
}
.reveal .closing .kicker{
  font-family: var(--font-cn); font-size: var(--ts-micro); letter-spacing: .18em;
  color: var(--accent); font-weight: 600; margin-bottom: 1.7em;
}
.reveal .closing h1{
  font-family: var(--font-display); font-size: 2.4em; font-weight: 500;
  line-height: 1.1; letter-spacing: -.02em; color: var(--ink); margin-bottom: .5em;
}
.reveal .closing .thanks-cn{
  font-family: var(--font-cn); font-size: var(--ts-cardmain); color: var(--ink-2);
  font-weight: 400; margin-bottom: 0; line-height: 1.7;
}
.reveal .closing .meta{
  font-size: var(--ts-meta); color: var(--ink-2); line-height: 2;
  border-top: 1px solid var(--line); padding-top: 1.3em;
  margin-top: 2.8em; max-width: 36em;
}
.reveal .closing .meta .cite{ color: var(--ink-3); }
.reveal .closing .meta .cite em{ font-family: var(--font-display); font-style: italic; }
.reveal .closing .meta .who{ color: var(--ink); }

/* —— 跨媒介证据三栏（现象页：文学/音乐/电影）—— */
.reveal .media-tri{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  align-items: stretch; margin: 4px 0 0;
}
.reveal .media-tri .mt{
  border: 1px solid var(--line); border-radius: 10px; padding: 18px 22px;
}
.reveal .media-tri .mt .mh{
  font-family: var(--font-cn); font-size: var(--ts-body); font-weight: 600;
  color: var(--accent); margin-bottom: 8px;
}
.reveal .media-tri .mt .mb{ font-size: var(--ts-compact); color: var(--ink-2); line-height: 1.6; }
.reveal .media-tri .mt .mb em{ font-family: var(--font-display); font-style: italic; }

/* —— 通用 2 列对照小表（如 A/B 二分对照）—— */
.reveal .label-pair{
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin: 4px 0 0;
  max-width: 44em;
}
.reveal .label-pair .lp-col{ padding: 18px 24px; }
.reveal .label-pair .lp-col.art{ border-right: 1px solid var(--line); }
.reveal .label-pair .lp-col .lp-h{
  font-family: var(--font-latin); font-size: var(--ts-eyebrow); letter-spacing: .14em;
  text-transform: uppercase; font-weight: 600; color: var(--ink-3); margin-bottom: 10px;
}
.reveal .label-pair .lp-col.art .lp-h{ color: var(--accent); }
.reveal .label-pair .lp-col .lp-b{ font-size: var(--ts-stat); color: var(--ink); line-height: 1.7; }

/* —— 紧凑要点列表（current·info-card 之外的简单段落组）—— */
.reveal .tight-list{ margin: 4px 0 0; max-width: 44em; }
.reveal .tight-list > .ti{
  padding: 11px 0; border-bottom: 1px solid var(--line);
  font-size: var(--ts-stat); line-height: 1.64; color: var(--ink);
}
.reveal .tight-list > .ti:last-child{ border-bottom: 0; }
.reveal .tight-list > .ti strong{ color: var(--ink); }
.reveal .tight-list > .ti .ti-h{
  font-family: var(--font-cn); font-weight: 600; color: var(--ink); margin-right: .5em;
}

/* —— 研究问题页：把“现象 → 操纵 → 解释路径”从列表改为研究逻辑图 —— */
.reveal .rq-slide{
  flex: 1; display: grid; grid-template-rows: auto 1fr auto;
  gap: 14px; min-height: 0;
}
.reveal .rq-question{
  border-left: 4px solid var(--accent);
  background: linear-gradient(90deg, var(--accent-tint), rgba(251,240,241,0));
  padding: 13px 20px 15px;
}
.reveal .rq-kicker{
  font-size: var(--ts-micro); font-weight: 600; letter-spacing: .12em;
  color: var(--accent); margin-bottom: 8px;
}
.reveal .rq-question p{
  font-size: var(--ts-cardmain); line-height: 1.52; margin: 0; max-width: 35em;
}
.reveal .rq-map{
  display: grid; grid-template-columns: .92fr 1.05fr 1.08fr;
  gap: 20px; align-items: stretch; min-height: 0;
}
.reveal .rq-node,
.reveal .rq-hyp{
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--bg); padding: 17px 20px;
}
.reveal .rq-node{
  display: flex; flex-direction: column; justify-content: center;
}
.reveal .rq-label{
  font-size: var(--ts-micro); font-weight: 600; letter-spacing: .13em;
  color: var(--accent); margin-bottom: 12px;
}
.reveal .rq-node h3,
.reveal .rq-hyp h3{
  font-size: var(--ts-sub); margin: 0 0 8px; line-height: 1.32;
}
.reveal .rq-node p,
.reveal .rq-hyp p{
  font-size: var(--ts-compact); line-height: 1.58; color: var(--ink-2); margin: 0;
}
.reveal .rq-bridge{
  position: relative; display: flex; flex-direction: column;
  justify-content: center; align-items: stretch; gap: 10px;
  padding: 4px 0;
}
.reveal .rq-bridge::before,
.reveal .rq-bridge::after{
  content: ""; position: absolute; top: 50%; width: 18px; height: 1px;
  background: var(--line-2);
}
.reveal .rq-bridge::before{ left: -19px; }
.reveal .rq-bridge::after{ right: -19px; }
.reveal .rq-bridge-title,
.reveal .rq-effect{
  text-align: center; font-weight: 600; color: var(--ink);
}
.reveal .rq-bridge-title{ font-size: var(--ts-lead); }
.reveal .rq-effect{
  font-size: var(--ts-lead); color: var(--accent-deep);
}
.reveal .rq-switch{
  position: relative;
  display: grid; grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line-2); border-radius: 8px; overflow: hidden;
}
.reveal .rq-switch .rq-vs{
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 28px; height: 28px; padding: 0; border-radius: 999px;
  background: var(--bg); border: 1px solid var(--line-2);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-style: italic; font-weight: 500;
  font-size: var(--ts-micro); line-height: 1; color: var(--ink-3); letter-spacing: 0;
  z-index: 2;
}
.reveal .rq-switch span{
  text-align: center; padding: 13px 10px; font-size: var(--ts-body);
  font-weight: 600; line-height: 1.35; color: var(--ink);
}
.reveal .rq-switch span:first-child{
  color: var(--accent-deep); background: var(--accent-tint);
  border-right: 1px solid var(--line-2);
}
.reveal .rq-explain{
  display: flex; flex-direction: column; min-height: 0;
}
.reveal .rq-hypotheses{
  display: grid; grid-template-rows: 1fr 1fr; gap: 10px; flex: 1;
}
.reveal .rq-hyp{
  display: flex; flex-direction: column; justify-content: center;
}
.reveal .rq-hyp.accent{
  background: var(--bg);
}
.reveal .rq-hyp.accent h3{ color: var(--accent-deep); }
.reveal .rq-boundary{
  border-top: 1px solid var(--line); padding-top: 10px;
  font-size: var(--ts-compact); line-height: 1.45; color: var(--ink-2);
}
.reveal .rq-boundary span{
  display: inline-block; margin-right: .7em; color: var(--ink);
  font-weight: 600;
}

/* ============================================================
   ★ 设计修复追加（同一视觉语言、复用 token）
   ============================================================ */

/* —— 全片统一二级标题「左红短竖标 + 中文加粗小标题」——
   替代英文大写小眉题与「行内加粗冒充二级标题」。
   一律近黑加粗 + 一段 1em 高的强调色竖标。 */
.reveal .h2sub{
  font-family: var(--font-cn); font-size: var(--ts-sub); font-weight: 600;
  color: var(--ink); line-height: 1.3; letter-spacing: .01em;
  position: relative; padding-left: 16px; margin: 0 0 12px 0;
  display: flex; align-items: baseline; gap: .5em;
}
.reveal .h2sub::before{
  content: ""; position: absolute; left: 0; top: .12em;
  width: 3px; height: .96em; background: var(--accent); border-radius: 1px;
}
/* 二级标题后可跟一句行内补注（灰、轻） */
.reveal .h2sub .h2sub-note{
  font-family: var(--font-text); font-size: var(--ts-body); font-weight: 400;
  color: var(--ink-3); letter-spacing: 0;
}
/* 对照卡内的小标题——与 pe-type / rq-label 同款小型 kicker（向前面卡片看齐：.58em 红色，无竖标） */
.reveal .compare .ctag{
  font-size: var(--ts-micro); font-weight: 600;
  color: var(--accent); letter-spacing: .13em; margin-bottom: 10px;
}

/* 二级标题 + 一段正文 成「无框分块」——替代一句话灰卡 */
.reveal .plain-block{ max-width: 40em; }
.reveal .plain-block .pb-body{
  font-size: var(--ts-stat); color: var(--ink-2); line-height: 1.74; margin: 0;
}
.reveal .plain-block .pb-body strong{ color: var(--ink); }
.reveal .plain-block .pb-body .stat{ font-size: var(--ts-sub); }

/* —— 横向流程（.flow · 设计逻辑页）—— 多步用箭头串联体现递进，
   非等宽描边卡：每步只有红序号 + 标题 + 一句话，步间以「→」连接，无盒子。 */
.reveal .flow{
  display: grid; grid-auto-flow: column;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: stretch; gap: 0; margin: 10px 0 0;
}
.reveal .flow .fstep{
  display: flex; flex-direction: column; gap: 9px; padding: 4px 18px 4px 0;
  min-width: 0;
}
.reveal .flow .fstep:first-child{ padding-left: 0; }
.reveal .flow .fstep .fhead{
  display: flex; align-items: baseline; gap: 10px;
}
.reveal .flow .fstep .fn{
  font-family: var(--font-latin); font-variant-numeric: tabular-nums;
  font-size: var(--ts-stat); font-weight: 600; color: #fff; background: var(--accent);
  width: 1.7em; height: 1.7em; flex: 0 0 auto; border-radius: 999px;
  display: flex; align-items: center; justify-content: center; line-height: 1;
}
.reveal .flow .fstep .ft{
  font-family: var(--font-cn); font-size: var(--ts-lead); font-weight: 600; color: var(--accent-deep);
}
.reveal .flow .fstep .fq{ font-size: var(--ts-body); color: var(--ink); line-height: 1.55; }
.reveal .flow .fstep .fr{ font-size: var(--ts-compact); color: var(--ink-2); line-height: 1.5; margin-top: -2px; }
.reveal .flow .fstep .fr strong{ color: var(--ink); }
/* 步间箭头 */
.reveal .flow .farrow{
  display: flex; align-items: center; justify-content: center;
  color: var(--line-2); font-size: 1.4em; flex: 0 0 auto;
  padding: 0 2px; align-self: center;
}
.reveal .flow .farrow svg{ width: 26px; height: 18px; display: block; }

/* —— 轻量两栏（.duo · 机制 / 贡献页）—— 大号红序号 + 二级标题 + 一句话，
   无大空卡：仅以列分栏 + 顶部细分隔，内容自然起排。 */
.reveal .duo{
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px;
  margin: 12px 0 0; align-items: start;
}
.reveal .duo .ditem{ padding-top: 14px; border-top: 2px solid var(--accent); }
.reveal .duo .ditem .dn{
  font-family: var(--font-display); font-style: normal; font-weight: 500;
  font-size: var(--ts-title); color: var(--accent); line-height: 1; margin-bottom: 10px;
  display: block;
}
.reveal .duo .ditem h4{
  font-family: var(--font-cn); font-size: var(--ts-cardmain); font-weight: 600;
  color: var(--ink); margin: 0 0 .5em 0;
}
.reveal .duo .ditem p{ font-size: var(--ts-stat); color: var(--ink-2); line-height: 1.74; margin: 0; }
.reveal .duo .ditem p strong{ color: var(--ink); }
.reveal .duo .ditem p .warm{ color: var(--accent-deep); }

/* —— 无框三栏（.tri-plain · 现象页）—— 去描边，红小标 + 出处，列间发丝竖分隔 */
.reveal .tri-plain{
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; margin: 8px 0 0;
}
.reveal .tri-plain .tp{ padding: 4px 28px; border-left: 1px solid var(--line); }
.reveal .tri-plain .tp:first-child{ padding-left: 0; border-left: 0; }
.reveal .tri-plain .tp .tph{
  font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 600;
  color: var(--accent); margin-bottom: 8px;
}
.reveal .tri-plain .tp .tpb{ font-size: var(--ts-compact); color: var(--ink-2); line-height: 1.62; }
.reveal .tri-plain .tp .tpb em{ font-family: var(--font-display); font-style: italic; }

/* —— 结论收束块（.concl-band · 核心发现页下部）—— 红底大字、过程→结论的纵向落点 */
.reveal .concl-band{
  margin-top: auto; background: var(--accent-tint); border-left: 3px solid var(--accent);
  border-radius: 0 8px 8px 0; padding: 16px 24px; max-width: none;
  display: flex; align-items: baseline; gap: 14px;
}
.reveal .concl-band .cb-tag{
  font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600;
  letter-spacing: .04em; color: var(--accent); flex: 0 0 auto;
}
.reveal .concl-band .cb-text{
  font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 400;
  line-height: 1.55; color: var(--ink);
}
.reveal .concl-band .cb-text strong{ color: var(--accent-deep); font-weight: 600; }
.reveal .concl-band .cb-text .warm{
  color: var(--accent-deep); font-weight: 600; background-image: none; padding-bottom: 0;
}

/* ========================================================================
   收束章节统一重构（核心发现 / 机制 / 贡献 / 关联 / 小结）——
   与结果页同一套语言：发丝线卡片 · 数据右对齐 · 单一红色焦点 · 编号节点
   ===================================================================== */
/* 证据账本（.ev-ledger · 核心发现页）：每条逐研究结论左列、关键统计右置，节点脊柱收敛于焦点行 */
.reveal .ev-ledger{ flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: center; position: relative; margin: 8px 0 16px; }
.reveal .ev-ledger::before{ content: ""; position: absolute; left: 16px; top: 32px; bottom: 32px; width: 2px; background: var(--line-2); z-index: 0; }
.reveal .ev-row{ position: relative; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 26px; padding: 15px 0; border-top: 1px solid var(--line); }
.reveal .ev-row:first-child{ border-top: 0; }
.reveal .ev-n{ position: relative; z-index: 1; width: 32px; height: 32px; border-radius: 999px; background: var(--bg); border: 1px solid var(--line-2); color: var(--ink-3); font-family: var(--font-latin); font-weight: 600; font-size: var(--ts-compact); display: flex; align-items: center; justify-content: center; }
.reveal .ev-row.is-converge .ev-n{ background: var(--accent); border-color: var(--accent); color: #fff; }
.reveal .ev-find{ display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.reveal .ev-verdict{ font-family: var(--font-cn); font-size: var(--ts-sub); font-weight: 600; color: var(--ink); }
.reveal .ev-row.is-converge .ev-verdict{ color: var(--accent-deep); }
.reveal .ev-detail{ font-size: var(--ts-compact); color: var(--ink-2); line-height: 1.45; }
.reveal .ev-stat{ text-align: right; font-family: var(--font-latin); font-variant-numeric: tabular-nums; font-size: var(--ts-sub); font-weight: 600; color: var(--ink); white-space: nowrap; line-height: 1.2; }
.reveal .ev-stat em{ font-style: italic; }
.reveal .ev-stat .ev-su{ display: block; font-family: var(--font-cn); font-weight: 400; font-size: var(--ts-micro); color: var(--ink-3); margin-top: 5px; }
.reveal .ev-row.is-converge .ev-stat{ color: var(--accent-deep); }

/* 机制卡（.mech-cards · 机制页）：并列互补解释，等高发丝卡 + 字母节点，无单一焦点，仅末尾理论推测注 */
.reveal .mech-cards{ flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; margin: 6px 0 16px; }
.reveal .mech-card{ border: 1px solid var(--line); border-radius: 10px; padding: 40px 30px 26px; display: flex; flex-direction: column; justify-content: flex-start; }   /* P1-5：内容顶对齐（等上内边距），两卡字母锚点同一水平线（§1D 考究＝可测量的精确） */
.reveal .mech-n{ width: 34px; height: 34px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--ink-2); font-family: var(--font-display); font-style: italic; font-size: var(--ts-sub); font-weight: 600; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.reveal .mech-card h4{ font-family: var(--font-cn); font-size: var(--ts-cardmain); font-weight: 600; color: var(--ink); margin: 0 0 12px; }
.reveal .mech-card p{ font-size: var(--ts-body); line-height: 1.62; color: var(--ink-2); margin: 0; }
.reveal .mech-card p strong{ color: var(--ink); font-weight: 600; }

/* 理论贡献卡（.contrib2 · 贡献页）：多层贡献均衡发丝卡 + 红色「结果」收束带 */
.reveal .contrib2{ flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; margin: 6px 0 16px; }
.reveal .contrib2 .cn-card{ border: 1px solid var(--line); border-radius: 10px; padding: 24px 28px; display: flex; flex-direction: column; justify-content: center; }
.reveal .contrib2 .cn-tag{ font-family: var(--font-latin); font-size: var(--ts-eyebrow); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.reveal .contrib2 .cn-card h4{ font-family: var(--font-cn); font-size: var(--ts-cardmain); font-weight: 600; color: var(--ink); margin: 0 0 12px; }
.reveal .contrib2 .cn-card p{ font-size: var(--ts-body); line-height: 1.62; color: var(--ink-2); margin: 0; }
.reveal .contrib2 .cn-card p strong{ color: var(--ink); font-weight: 600; }
/* 机制页：注释带与上方双栏同宽（去掉 callout 的 40em 上限），右缘对齐 */
.reveal .slide-body:has(.mech-cards) .callout{ max-width: none; }
/* 理论贡献页·「带来的结果」：克制的浅红焦点带（替代过重的实心红块），与 callout / 可证伪预测同语言 */
.reveal .contrib-outcome{ background: var(--accent-tint); border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; padding: 15px 24px; display: flex; align-items: baseline; gap: 14px; }
.reveal .contrib-outcome .co-tag{ font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600; letter-spacing: .04em; color: var(--accent); flex: 0 0 auto; }
.reveal .contrib-outcome .co-text{ font-size: var(--ts-body); line-height: 1.55; color: var(--ink); }
.reveal .contrib-outcome .co-text .warm{ color: var(--accent-deep); }

/* 关联账本（.assoc · 与既有文献关联页）：标签 + 正文 的克制账本 */
.reveal .assoc{ flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: center; margin: 8px 0 4px; }
.reveal .assoc .as-row{ display: grid; grid-template-columns: 7.5em 1fr; gap: 30px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--line); }
.reveal .assoc .as-row:first-child{ border-top: 0; }
.reveal .assoc .as-k{ font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 600; color: var(--ink-3); }
.reveal .assoc .as-v{ font-size: var(--ts-stat); line-height: 1.64; color: var(--ink); }
.reveal .assoc .as-v strong{ font-weight: 600; }
.reveal .assoc .as-v .warm{ color: var(--accent-deep); }

/* 要点小结（.sum-answer / .sum-grid · 小结页）：红色最终回答带 + 多支柱卡 + 限定脚注 */
.reveal .sum-answer{ background: var(--accent-tint); border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; padding: 16px 24px; display: flex; align-items: baseline; gap: 14px; }
.reveal .sum-answer .ab-tag{ font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600; letter-spacing: .04em; color: var(--accent); flex: 0 0 auto; }
.reveal .sum-answer .ab-text{ font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 400; line-height: 1.5; color: var(--ink); }
.reveal .sum-answer .ab-text strong{ color: var(--accent-deep); font-weight: 600; }
.reveal .sum-answer .ab-text .warm{ color: var(--accent-deep); font-weight: 600; background-image: none; padding-bottom: 0; }
.reveal .sum-grid{ flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; margin: 18px 0; }
.reveal .sum-card{ border: 1px solid var(--line); border-radius: 10px; padding: 22px 24px; display: flex; flex-direction: column; justify-content: center; }
.reveal .sum-n{ width: 30px; height: 30px; border-radius: 999px; background: var(--accent); color: #fff; font-family: var(--font-latin); font-weight: 600; font-size: var(--ts-meta); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.reveal .sum-card h4{ font-family: var(--font-cn); font-size: var(--ts-sub); font-weight: 600; color: var(--ink); margin: 0 0 10px; }
.reveal .sum-card p{ font-size: var(--ts-compact); line-height: 1.58; color: var(--ink-2); margin: 0; }
.reveal .sum-card p em{ font-family: var(--font-latin); font-style: italic; }
.reveal .sum-limit{ font-size: var(--ts-meta); line-height: 1.6; color: var(--ink-3); border-top: 1px solid var(--line); padding-top: 14px; }
.reveal .sum-limit strong{ color: var(--ink-2); font-weight: 600; }

/* —— 结果页「图放大」—— 上文字下大图分区，给图更多宽度 + 图注 */
.reveal .figure .fig-band{
  flex: 1; min-height: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; margin: 8px 0 6px;
}
.reveal .figure .fig-band img{
  height: 100%; max-height: 100%; max-width: 96%; width: auto; object-fit: contain;
  /* height:100%：money figure 撑满图带（§1C.3 图占内容区约⅔为主角）——max-* 不会放大小于自然尺寸的图 */
  border: 1px solid var(--line); border-radius: 6px;
  box-shadow: 0 1px 8px rgba(0,0,0,.04); background: var(--bg);   /* P1-3：白底，object-fit 信箱化不露灰板（design_spec 翻车8） */
}
.reveal .figure .fig-cap{
  font-size: var(--ts-meta); color: var(--ink-3); line-height: 1.5;
  margin-top: 8px; text-align: center; max-width: 52em;
}
.reveal .figure .fig-cap .fc-lbl{ color: var(--accent); font-weight: 600; }
/* 结果页统计量分组横排（不贴边、分组清晰）*/
.reveal .figure .stat-line{
  display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 0 6px;
}
.reveal .figure .stat-line .si{
  display: inline-flex; align-items: baseline; gap: .55em;
  padding-left: 14px; border-left: 2px solid var(--accent);
}
.reveal .figure .stat-line .si .sl{ font-size: var(--ts-body); color: var(--ink-2); }
.reveal .figure .stat-line .si .sv{
  font-family: var(--font-latin);
  font-variant-numeric: tabular-nums; font-size: var(--ts-stat); color: var(--accent-deep);
}
/* P0-1(p18)：chips 只留头号统计一枚红，其余值转近黑（红是点睛，全红＝无重点） */
.reveal .figure .stat-line .si.quiet .sv{ color: var(--ink); }

/* —— 结果页判据裁决 + 证据区：让结果页从“文字宣告”变成“结论—判据—证据”。 —— */
.reveal .res-decision{
  display: flex; align-items: baseline; gap: 12px;
  margin: -4px 0 10px; padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: var(--ts-body); line-height: 1.55; color: var(--ink);
}
.reveal .res-decision .rd-tag{
  flex: 0 0 auto; font-family: var(--font-cn); font-weight: 600;
  color: var(--accent); letter-spacing: .05em;
}
.reveal .res-decision strong{ color: var(--ink); }
.reveal .result-evidence{
  flex: 1; min-height: 0; display: grid;
  grid-template-columns: .47fr .53fr; gap: 28px;
  align-items: stretch; margin: 6px 0 14px;
}
.reveal .result-metrics{
  min-width: 0; display: flex; flex-direction: column; justify-content: center;
}
.reveal .figure .stat-line.stat-stack{
  display: flex; flex-direction: column; gap: 11px; margin: 0;
}
.reveal .figure .stat-line.stat-stack .si{
  display: block; padding: 3px 0 3px 13px;
  border-left: 2px solid var(--accent);
}
.reveal .figure .stat-line.stat-stack .si .sl{
  display: block; margin-bottom: 4px; font-size: var(--ts-meta); color: var(--ink-2); line-height: 1.4;
}
.reveal .figure .stat-line.stat-stack .si .sv{
  display: block; font-size: var(--ts-body); line-height: 1.3;
  font-family: var(--font-text); font-variant-numeric: tabular-nums; color: var(--ink);
}
.reveal .figure .stat-line.stat-stack .si .sv em{ font-family: var(--font-latin); font-style: italic; }
/* 图卡：发丝边框 + 图注，四个结果页统一 */
.reveal .result-evidence .fig-band{
  margin: 0; min-width: 0; align-items: stretch; justify-content: flex-start;
  border: 1px solid var(--line-2); border-radius: 10px; box-shadow: none;
  background: var(--bg); padding: 14px 16px;
}
.reveal .result-evidence .fig-band img{
  flex: 1; min-height: 0; max-width: 100%; object-fit: contain;
}
.reveal .result-evidence .fig-cap{
  margin-top: 10px; font-size: var(--ts-micro); color: var(--ink-3); line-height: 1.5; text-align: left; max-width: none;
}
.reveal .result-evidence .fig-cap .fc-lbl{
  font-family: var(--font-latin); font-weight: 600; color: var(--accent); margin-right: .5em; letter-spacing: .02em;
}

/* —— 实验目的页链条锚点：多实验保持统一，但突出每个实验新增点。 —— */
.reveal .exp-thread{
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
  margin: 0 0 24px;
}
.reveal .exp-thread .et{
  padding: 11px 18px 11px 0; margin-left: 18px;
  border-right: 1px solid var(--line);
}
.reveal .exp-thread .et:first-child{ margin-left: 0; }
.reveal .exp-thread .et:last-child{ border-right: 0; }
.reveal .exp-thread .etl{
  font-family: var(--font-cn); font-size: var(--ts-micro); color: var(--ink-3);
  letter-spacing: .06em; font-weight: 600; margin-bottom: 5px;
}
.reveal .exp-thread .etv{
  font-size: var(--ts-compact); line-height: 1.48; color: var(--ink);
}
.reveal .exp-thread .etv strong{ color: var(--ink); }

/* —— 最终页从列表收束为“回答 + 多个 takeaway + 限定”。 —— */
.reveal .final-answer{
  flex: 1; display: flex; flex-direction: column; min-height: 0;
}
/* ★ 焦点带一律淡粉底 + 左红线（design_spec §1A.4）：实心强调色块已全面退役。
   小结/最终回答带与 .sum-answer / .concl-band / .callout 同一焦点语言，绝不整块实心红。 */
.reveal .answer-band{
  background: var(--accent-tint); border-left: 3px solid var(--accent);
  border-radius: 0 8px 8px 0;
  padding: 16px 24px; margin: 4px 0 22px;
  display: flex; align-items: baseline; gap: 14px;
}
.reveal .answer-band .ab-tag{
  font-family: var(--font-cn); font-size: var(--ts-compact); font-weight: 600;
  letter-spacing: .04em; color: var(--accent); flex: 0 0 auto;
}
.reveal .answer-band .ab-text{
  font-family: var(--font-cn); font-size: var(--ts-stat); line-height: 1.5;
  font-weight: 400; color: var(--ink);
}
.reveal .answer-band strong{ color: var(--accent-deep); font-weight: 600; }
.reveal .answer-band .warm{
  color: var(--accent-deep); font-weight: 600;
  background-image: none; padding-bottom: 0;
}
.reveal .takeaway-grid{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  margin: 0 0 20px;
}
.reveal .takeaway{
  border-top: 2px solid var(--accent); padding-top: 16px;
}
.reveal .takeaway .tn{
  font-family: var(--font-latin); font-size: var(--ts-claim);
  font-weight: 600; color: var(--accent); margin-bottom: 10px;
}
.reveal .takeaway h4{
  font-size: var(--ts-lead); margin: 0 0 8px; font-weight: 600;
}
.reveal .takeaway p{
  font-size: var(--ts-compact); line-height: 1.62; color: var(--ink-2); margin: 0;
}
.reveal .final-limit{
  margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line);
  font-size: var(--ts-body); line-height: 1.62; color: var(--ink-2);
}
.reveal .final-limit strong{ color: var(--ink); }

/* —— 被试页统一模板 —— 实验目的（无红竖线正文）+ 实验被试（二级标题 + 紧凑信息行）
   被试信息以「单行小表 / 紧凑信息行」罗列，不用等宽描边卡片。 */
/* 实验目的：纯正文段，无任何左竖线 */
.reveal .purpose{
  font-size: var(--ts-lead); color: var(--ink); line-height: 1.74;
  max-width: 50em; margin: 0 0 16px 0;
}
.reveal .purpose strong{ color: var(--ink); }
.reveal .purpose .warm{ color: var(--accent-deep); }
/* 第 2..N 实验：目的前的「为什么做」引导，弱化为一行轻提示（红标签 + 灰正文，无盒子无竖线） */
.reveal .why-lite{
  font-size: var(--ts-stat); color: var(--ink-2); line-height: 1.7;
  max-width: 50em; margin: 2px 0 16px 0;
}
.reveal .why-lite .wll{
  font-family: var(--font-cn); font-size: var(--ts-lead); font-weight: 600;
  color: var(--accent); letter-spacing: .04em; margin-right: .55em;
}
.reveal .why-lite strong{ color: var(--ink); }
.reveal .why-lite .warm{ color: var(--accent-deep); }

/* 被试紧凑信息行：标签 · 值 横排，发丝竖分隔，无卡片描边盒子 */
.reveal .subj-line{
  display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
  margin: 0; border-top: 1px solid var(--line-2);
  border-bottom: 1px solid var(--line-2);
}
.reveal .subj-line .si{
  padding: 13px 22px 13px 0; border-right: 1px solid var(--line);
  margin-left: 22px;
}
.reveal .subj-line .si:first-child{ margin-left: 0; }
.reveal .subj-line .si:last-child{ border-right: 0; }
.reveal .subj-line .si .sl{
  font-family: var(--font-cn); font-size: var(--ts-micro); letter-spacing: .04em;
  color: var(--ink-3); font-weight: 600; margin-bottom: 6px;
}
.reveal .subj-line .si .sv{
  font-family: var(--font-text); font-variant-numeric: tabular-nums;
  font-size: var(--ts-lead); color: var(--ink); font-weight: 600; line-height: 1.35;
}
.reveal .subj-line .si .sv em{ font-family: var(--font-latin); font-style: italic; }
.reveal .subj-line .si .sv .u{
  display: block; font-size: var(--ts-meta); color: var(--ink-3); font-weight: 400; margin-top: 3px;
}
/* 分析样本 N：唯一点睛——大号红字，不靠底色盒子 */
.reveal .subj-line .si.key .sv{
  color: var(--accent-deep); font-size: 1.18em;
}
.reveal .subj-line .si.key .sv .u{ color: var(--ink-3); }

/* —— 实验目的页（方案①·方法面板）：目的导语 + 「被试与程序」横向漏斗 + 三列人口学 —— */
.reveal .exp-method .slide-body{ display: flex; flex-direction: column; }
.reveal .exp-method .c-purpose{ margin-bottom: 18px; }
.reveal .exp-method .c-purpose .purpose{ margin: 0; }
.reveal .exp-method .why-lite{ margin: 0 0 14px; }
.reveal .exp-method .m-new{ margin-top: 11px; font-size: var(--ts-compact); line-height: 1.5; color: var(--ink-2); border-left: 2px solid var(--accent); padding-left: 14px; }
.reveal .exp-method .m-new b{ color: var(--accent); font-weight: 600; margin-right: .5em; }
.reveal .exp-method .m-new strong{ color: var(--ink); font-weight: 600; }
.reveal .exp-method .c-panel{
  flex: 1; border: 1px solid var(--line-2); border-radius: 12px; padding: 24px 26px;
  display: flex; flex-direction: column; justify-content: space-between; min-height: 0; background: var(--surface);
}
.reveal .exp-method .c-ph{ display: flex; align-items: baseline; gap: .6em; margin-bottom: 2px; }
.reveal .exp-method .c-ph .cph-t{ font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 600; color: var(--ink); }
.reveal .exp-method .c-ph .cph-n{ font-size: var(--ts-meta); color: var(--ink-3); }
.reveal .exp-method .e-funnel{
  display: flex; align-items: stretch; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--bg);
}
.reveal .exp-method .e-fn{ flex: 1; padding: 16px 20px; display: flex; flex-direction: column; justify-content: center; }
.reveal .exp-method .e-fn + .e-fn{ border-left: 1px solid var(--line); }
.reveal .exp-method .e-fn .fnl{ font-size: var(--ts-micro); font-weight: 600; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 8px; }
.reveal .exp-method .e-fn .fnv{ font-family: var(--font-latin); font-variant-numeric: tabular-nums; font-size: var(--ts-cardmain); font-weight: 600; color: var(--ink); line-height: 1; }
.reveal .exp-method .e-fn .fnv em{ font-style: italic; }
.reveal .exp-method .e-fn .fnu{ font-size: var(--ts-micro); color: var(--ink-3); font-weight: 400; margin-top: 7px; line-height: 1.4; }
.reveal .exp-method .e-fn.is-final{ background: var(--accent-tint); }
.reveal .exp-method .e-fn.is-final .fnl{ color: var(--accent); }
.reveal .exp-method .e-fn.is-final .fnv{ color: var(--accent-deep); }
.reveal .exp-method .e-fnarrow{ flex: 0 0 34px; display: flex; align-items: center; justify-content: center; color: var(--ink-3); font-size: var(--ts-claim); }
.reveal .exp-method .e-meta{ display: grid; grid-template-columns: repeat(3, 1fr); padding-top: 4px; }
.reveal .exp-method .e-meta .mc{ padding: 0 22px; border-left: 1px solid var(--line-2); }
.reveal .exp-method .e-meta .mc:first-child{ padding-left: 0; border-left: 0; }
.reveal .exp-method .e-meta .ml{ font-size: var(--ts-micro); font-weight: 600; letter-spacing: .03em; color: var(--ink-3); margin-bottom: 7px; }
.reveal .exp-method .e-meta .mv{ font-family: var(--font-text); font-variant-numeric: tabular-nums; font-size: var(--ts-stat); color: var(--ink); line-height: 1.35; }
.reveal .exp-method .e-meta .mv em{ font-family: var(--font-latin); font-style: italic; }

/* —— 核心发现页：证据链加大行距以铺满上半，结论收束块沉底 —— */
.reveal .chain.chain-airy{ margin: 8px 0 0; }
.reveal .chain.chain-airy .ch-item{ padding: 20px 0; }
.reveal .chain.chain-airy .ch-item .cv{ font-size: var(--ts-lead); }
.reveal .content .slide-body .concl-band{ margin-top: auto; }

/* —— 汇报结构页（目录）：大号罗马数字 + 行距撑满纵向（非对称目录）—— */
.reveal .agenda.agenda-tall{
  flex: 1; display: flex; flex-direction: column; justify-content: space-evenly;
  max-width: none; margin: 18px 0 0;
}
.reveal .agenda.agenda-tall .item{
  padding: 0; border-bottom: 1px solid var(--line); align-items: baseline;
  flex: 1; display: flex;
}
.reveal .agenda.agenda-tall .item:last-child{ border-bottom: 0; }
.reveal .agenda.agenda-tall .item .no{
  font-size: 1.7em; width: 1.9em; line-height: 1;
}
.reveal .agenda.agenda-tall .item .ttl{ font-size: 1.12em; font-weight: 600; }
.reveal .agenda.agenda-tall .item .note{ font-size: var(--ts-stat); }

/* —— 编号列表（局限 / 小结）行距均匀撑满纵向 —— */
.reveal .num-list.fill{
  flex: 1; display: flex; flex-direction: column; justify-content: space-between;
  margin: 16px 0 0;
}
.reveal .num-list.fill .nl-item{
  flex: 1; align-items: center; border-bottom: 1px solid var(--line); padding: 0;
}
.reveal .num-list.fill .nl-item:last-child{ border-bottom: 0; }
/* —— tight-list（关联 / 研究问题）行距撑满 ——
   注意：.ti 必须保持块级（含行内 <strong> 红字），用上下内边距撑高、不用 flex，
   否则行内强调会被当作 flex item 拆行重叠。 */
.reveal .tight-list.fill{
  flex: 1; display: flex; flex-direction: column; justify-content: space-evenly;
  margin: 16px 0 0;
}
.reveal .tight-list.fill > .ti{
  display: block; padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.reveal .tight-list.fill > .ti:last-child{ border-bottom: 0; }

/* —— 目录页行内容真正垂直居中 —— */
.reveal .agenda.agenda-tall.agenda-bands{
  gap: 0; margin-top: 18px; border-top: 1px solid var(--line);
}
.reveal .agenda.agenda-tall.agenda-bands .item{
  min-height: 76px; padding: 0;
  display: grid; grid-template-columns: 70px minmax(260px, 1fr) minmax(260px, 1.05fr);
  align-items: center; column-gap: 18px;
}
.reveal .agenda.agenda-tall.agenda-bands .item .no{
  width: auto; font-size: 1.9em; align-self: center;
}
.reveal .agenda.agenda-tall.agenda-bands .item .ttl,
.reveal .agenda.agenda-tall.agenda-bands .item .note{
  margin: 0; align-self: center; line-height: 1.35;
}
.reveal .agenda.agenda-tall.agenda-bands .item .note{
  text-align: right; color: var(--ink-3);
}

/* —— 现象页（.phenom-panel）：claim → 三个具象例子 → 直觉收束 —— */
.reveal .phenom-panel{
  flex: 1; display: grid; grid-template-rows: auto 1fr auto;
  gap: 18px; min-height: 0;
}
.reveal .phenom-claim{
  border-left: 4px solid var(--accent);
  background: linear-gradient(90deg, var(--accent-tint), rgba(251,240,241,0));
  padding: 14px 20px 16px;
}
.reveal .phenom-claim p{
  font-size: var(--ts-cardmain); line-height: 1.55; margin: 0;
}
.reveal .phenom-name{
  margin-top: 8px; font-size: var(--ts-body); color: var(--ink-2);
}
.reveal .phenom-examples{
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 18px; min-height: 0;
}
.reveal .pe-card{
  border: 1px solid var(--line); border-radius: 8px;
  padding: 18px 20px; display: flex; flex-direction: column;
  justify-content: space-between; min-height: 0;
}
.reveal .pe-card.accent{
  background: var(--bg);
}
.reveal .pe-type{
  font-size: var(--ts-micro); font-weight: 600; letter-spacing: .13em;
  color: var(--accent); margin-bottom: 10px;
}
.reveal .pe-card h3{
  font-size: var(--ts-lead); margin: 0 0 10px; line-height: 1.32;
}
.reveal .pe-card p{
  font-size: var(--ts-compact); line-height: 1.58; color: var(--ink-2); margin: 0;
}
.reveal .pe-src{
  margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--line);
  font-size: var(--ts-micro); color: var(--ink-3); line-height: 1.45;
}
.reveal .phenom-intuition{
  border-top: 1px solid var(--line); padding-top: 12px;
  font-size: var(--ts-compact); line-height: 1.58; color: var(--ink-2);
}
.reveal .phenom-intuition span{
  display: inline-block; margin-right: .65em;
  color: var(--accent); font-weight: 600;
}

/* 假设页 · 推理链版式（定义 → 推理链 → 检验/支持 → 预测，而非松散卡片） */
.reveal .hypothesis-layout{
  flex: 1; display: grid; grid-template-rows: auto auto auto auto;
  align-content: space-between; gap: 16px; min-height: 0;
}
.reveal .hyp-definition{
  border-left: 4px solid var(--accent);
  padding: 11px 18px 12px;
  background: linear-gradient(90deg, var(--accent-tint), rgba(251,240,241,0));
}
.reveal .hyp-definition h3{
  font-size: var(--ts-sub); margin: 0 0 6px; line-height: 1.32;
}
.reveal .hyp-definition p{
  font-size: var(--ts-compact); line-height: 1.58; color: var(--ink-2); margin: 0;
}
.reveal .hyp-chain{
  display: grid; grid-template-columns: 1fr 26px 1fr 26px 1fr;
  align-items: stretch; gap: 0; min-height: 0;
}
.reveal .hc-step{
  border: 1px solid var(--line); border-radius: 8px;
  padding: 16px 14px; display: flex; flex-direction: column;
  justify-content: center; min-width: 0;
}
.reveal .hc-step span,
.reveal .em-num{
  width: 28px; height: 28px; border-radius: 999px; display: inline-flex;
  align-items: center; justify-content: center; background: var(--accent);
  color: #fff; font-family: var(--font-latin); font-size: var(--ts-meta);
  font-weight: 600; margin-bottom: 12px;
}
.reveal .hc-step h4{
  font-size: var(--ts-lead); margin: 0 0 8px;
}
.reveal .hc-step p{
  font-size: var(--ts-meta); line-height: 1.52; color: var(--ink-2); margin: 0;
}
.reveal .hc-arrow{
  display: flex; align-items: center; justify-content: center;
  color: var(--ink-3); font-size: var(--ts-claim);
}
.reveal .hyp-test-grid{
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
/* 假设页·检验/支持小块：标题向 h2sub 看齐（近黑加粗 + 红竖标），不再用 .58em 红眉题 */
.reveal .hyp-test{
  border-top: 1px solid var(--line); padding-top: 13px; line-height: 1.55;
}
.reveal .hyp-test .rq-label{
  font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 600;
  color: var(--ink); letter-spacing: .01em; line-height: 1.3;
  position: relative; padding-left: 13px; margin: 0 0 8px 0;
}
.reveal .hyp-test .rq-label::before{
  content: ""; position: absolute; left: 0; top: .16em;
  width: 3px; height: .9em; background: var(--accent); border-radius: 1px;
}
.reveal .hyp-test p{ margin: 0; font-size: var(--ts-compact); line-height: 1.56; color: var(--ink-2); }
.reveal .hyp-test.accent{ border-top-color: var(--accent); }
.reveal .hyp-prediction{
  background: var(--surface); border-left: 3px solid var(--accent);
  padding: 12px 18px; font-size: var(--ts-compact); line-height: 1.5;
}
.reveal .hyp-prediction span{
  color: var(--accent); font-weight: 600; margin-right: .7em;
}

/* —— 假设对照页（.contrast-grid）：内容靠近标题，判据更突出 —— */
.reveal .contrast-slide .slide-body{
  justify-content: flex-start;
}
.reveal .contrast-grid{
  display: grid; grid-template-columns: .9fr 1fr 1fr;
  grid-template-rows: auto 1fr 1fr 1fr; flex: 1; min-height: 0;
  border-top: 1px solid var(--line-2); border-left: 1px solid var(--line);
  margin-top: 8px;
}
.reveal .contrast-head,
.reveal .contrast-row-title,
.reveal .contrast-cell{
  padding: 16px 18px; border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line); line-height: 1.45;
  display: flex; align-items: center;
}
.reveal .contrast-head{
  font-size: var(--ts-body); font-weight: 600; color: var(--ink);
}
.reveal .contrast-row-title{
  font-size: var(--ts-compact); color: var(--accent-deep); font-weight: 600;
}
.reveal .contrast-cell{
  font-size: var(--ts-body); color: var(--ink-2);
}
.reveal .contrast-head.accent,
.reveal .contrast-cell.accent{ color: var(--accent-deep); font-weight: 600; }
.reveal .contrast-row-title.key,
.reveal .contrast-cell.key{ background: var(--accent-tint); }
.reveal .contrast-note{
  margin: 16px 0 12px; padding: 12px 16px; border-left: 4px solid var(--accent);
  background: var(--surface); font-size: var(--ts-compact); line-height: 1.52; color: var(--ink-2);
}
.reveal .contrast-note span{
  color: var(--accent); font-weight: 600; margin-right: .7em;
}

/* —— 多实验总览页（.exp-logic）：横向递进流 ——
   lede 顶 / 逐实验横向卡片 + 箭头 / 主线收束于底部单一 callout。 */
.reveal .exp-logic .slide-body{
  display: flex; flex-direction: column; justify-content: space-between;
}
.reveal .a-lede p{
  font-size: var(--ts-body); line-height: 1.62; color: var(--ink-2);
  margin: .5em 0 0; max-width: 54em;
}
.reveal .a-flow{ display: flex; align-items: stretch; }
.reveal .a-step{
  flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: 10px;
  padding: 22px 20px; display: flex; flex-direction: column;
}
.reveal .a-arrow{
  flex: 0 0 40px; display: flex; align-items: center; justify-content: center;
  color: var(--ink-3); font-size: 1.3em;
}
.reveal .a-num{
  width: 30px; height: 30px; border-radius: 999px; background: var(--accent); color: #fff;
  font-family: var(--font-latin); font-size: var(--ts-meta); font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center; margin-bottom: 13px;
}
.reveal .a-exp{ font-size: var(--ts-lead); font-weight: 600; color: var(--ink); margin: 0 0 7px; }
.reveal .a-q{ font-size: var(--ts-compact); line-height: 1.5; color: var(--ink-2); margin: 0 0 14px; }
.reveal .a-concl{
  margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line);
  font-size: var(--ts-compact); font-weight: 600; color: var(--accent-deep); line-height: 1.4;
}
.reveal .a-step.is-end .a-concl{ color: var(--accent); }

/* —— 实验设计与变量页（第 2..N 实验）：左「设计骨架」规格表 + 右「变量与测量」（新增=焦点）—— */
.reveal .design-panel{
  flex: 1; display: flex; flex-direction: column; min-height: 0;
}
.reveal .dp-lead{
  font-size: var(--ts-body); line-height: 1.56; color: var(--ink-2);
  margin: 2px 0 18px; max-width: 56em;
}
.reveal .dp-lead strong{ color: var(--ink); font-weight: 600; }
.reveal .dp-lead .warm{ color: var(--accent-deep); }
.reveal .des-grid{
  flex: 1; min-height: 0; display: grid; grid-template-columns: .42fr .58fr;
  gap: 36px; align-items: stretch;
}
.reveal .des-eyebrow{
  font-family: var(--font-cn); font-size: var(--ts-micro); font-weight: 600;
  letter-spacing: .1em; color: var(--ink-3); margin-bottom: 13px;
}
.reveal .des-skeleton{ display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.reveal .des-dl{ display: flex; flex-direction: column; }
.reveal .des-dl .dr{
  display: grid; grid-template-columns: 4.6em 1fr; align-items: baseline; gap: 16px;
  padding: 13px 0; border-top: 1px solid var(--line);
}
.reveal .des-dl .dr:first-child{ border-top: 0; }
.reveal .des-dl .dr:last-child{ border-bottom: 1px solid var(--line); }
.reveal .des-dl .dt{ font-size: var(--ts-meta); font-weight: 600; letter-spacing: .04em; color: var(--ink-3); }
.reveal .des-dl .dd{ font-size: var(--ts-body); line-height: 1.5; color: var(--ink); }
.reveal .des-dl .dd strong{ font-weight: 600; }
.reveal .des-dl .dd em{ font-family: var(--font-latin); font-style: italic; }
.reveal .des-vars{ display: flex; flex-direction: column; justify-content: center; gap: 16px; min-width: 0; }
.reveal .dv-card{
  border: 1px solid var(--line); border-radius: 8px; padding: 16px 20px;
}
.reveal .dv-card.is-new{ border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; }
.reveal .dv-tag{ font-size: var(--ts-eyebrow); font-weight: 600; letter-spacing: .13em; color: var(--ink-3); margin-bottom: 9px; }
.reveal .dv-card.is-new .dv-tag{ color: var(--accent); }
.reveal .dv-card h4{ font-family: var(--font-cn); font-size: var(--ts-stat); font-weight: 600; color: var(--ink); margin: 0 0 8px; line-height: 1.35; }
.reveal .dv-card.is-new h4{ color: var(--accent-deep); }
.reveal .dv-card p{ font-size: var(--ts-meta); line-height: 1.56; color: var(--ink-2); margin: 0; }
.reveal .dv-card p strong{ color: var(--ink); font-weight: 600; }
.reveal .dv-card p .warm{ color: var(--accent-deep); }
.reveal .dv-items{ display: flex; gap: 22px; }
.reveal .dv-items .dvi{ flex: 1; min-width: 0; }
.reveal .dv-items .dvi .k{ display: block; font-size: var(--ts-meta); font-weight: 600; color: var(--ink); margin-bottom: 3px; }
.reveal .dv-items .dvi .v{ display: block; font-size: var(--ts-meta); line-height: 1.5; color: var(--ink-2); }

/* —— 贡献页（.contrib-board）：增加“贡献 → 结果”的收束区 —— */
.reveal .contrib-board{
  flex: 1; display: grid; grid-template-rows: auto 1fr auto;
  gap: 18px; min-height: 0;
}
.reveal .cb-head{
  border-left: 4px solid var(--accent); padding: 13px 18px;
  background: linear-gradient(90deg, var(--accent-tint), rgba(251,240,241,0));
}
.reveal .cb-head p{
  font-size: var(--ts-body); line-height: 1.55; color: var(--ink-2); margin: 0;
}
.reveal .cb-grid{
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
}
.reveal .cb-card{
  border-top: 2px solid var(--accent); padding: 18px 6px 0;
  display: flex; flex-direction: column; justify-content: center;
}
.reveal .cb-card.accent{
  background: var(--bg); border: 1px solid var(--line);
  border-top: 2px solid var(--accent); border-radius: 8px; padding: 18px 22px;
}
.reveal .cb-card .dn{
  font-family: var(--font-display); font-size: 1.55em;
  color: var(--accent); line-height: 1; margin-bottom: 14px;
}
.reveal .cb-card h4{ font-size: var(--ts-lead); margin: 0 0 10px; }
.reveal .cb-card p{
  font-size: var(--ts-compact); line-height: 1.62; color: var(--ink-2); margin: 0;
}
.reveal .cb-outcome{
  border-top: 1px solid var(--line); padding-top: 12px;
  font-size: var(--ts-compact); line-height: 1.55; color: var(--ink-2);
}
.reveal .cb-outcome span{
  color: var(--accent); font-weight: 600; margin-right: .7em;
}

@media (prefers-reduced-motion: reduce){
  .reveal *,
  .reveal *::before,
  .reveal *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   DECK-SPECIFIC · cwiek-2022-bouba-kiki（沿用 token，绝不引新色/新字号原则）
   —— 页型菜单装不下时的扩展（page_types_and_layout §6 授权）——
   ① signature：反转钩子编辑式封面（钩子前置 · 红左线焦点）
   ② 现象页：两个原创形状替身（bouba blob / kiki star）
   ③ 交互页观众层小注（不进被试程序卡）
   ============================================================ */

/* ① signature · 反转钩子封面 —— 钩子问句领起、论文原题作锚，红左线焦点 */
.reveal .cover.cover-hook{ justify-content: center; }
.reveal .cover.cover-hook .hook-q{
  font-family: var(--font-cn); font-size: 2.0em; font-weight: 600;
  color: var(--ink); line-height: 1.22; letter-spacing: .01em;
  padding-left: 26px; border-left: 4px solid var(--accent);
  margin: 0 0 .66em 0; max-width: 18em;
}
.reveal .cover.cover-hook h1{
  font-family: var(--font-display); font-size: 1.72em; font-weight: 500;
  line-height: 1.16; letter-spacing: -.01em; max-width: 25em;
  margin: 0 0 .5em 0; color: var(--ink);
}
.reveal .cover.cover-hook .subtitle{
  white-space: normal; max-width: 40em; font-size: var(--ts-lead);
  color: var(--ink-2); font-weight: 400; line-height: 1.7; margin-bottom: 0;
}

/* ② 现象页 · 原创形状替身（左形状 / 右释义） */
.reveal .bk-demo{
  flex: 1; min-height: 0; display: grid; grid-template-columns: .46fr .54fr;
  gap: 44px; align-items: center;
}
.reveal .bk-shapes{ display: flex; flex-direction: column; }
.reveal .bk-q{
  font-size: var(--ts-cardmain); line-height: 1.6; color: var(--ink); margin: 0 0 16px 0;
}
.reveal .bk-q strong{ color: var(--ink); font-weight: 600; }
.reveal .bk-pair{
  display: flex; gap: 40px; align-items: center; justify-content: center; padding: 6px 0;
}
.reveal .bk-pair svg{ width: 138px; height: 138px; display: block; }
.reveal .bk-pair svg path{ fill: var(--ink); }
.reveal .bk-note{
  margin-top: 16px; text-align: center; font-size: var(--ts-micro);
  color: var(--ink-3); letter-spacing: .02em; line-height: 1.5;
}
.reveal .bk-text{ display: flex; flex-direction: column; }
.reveal .bk-text .bk-pt{
  padding: 13px 0; border-bottom: 1px solid var(--line);
  font-size: var(--ts-stat); line-height: 1.64; color: var(--ink);
}
.reveal .bk-text .bk-pt:last-child{ border-bottom: 0; }
.reveal .bk-text .bk-h{
  font-family: var(--font-cn); font-weight: 600; color: var(--ink-2);
  letter-spacing: .02em; margin-right: .55em;
}
.reveal .bk-text .bk-pt strong{ color: var(--ink); font-weight: 600; }
.reveal .bk-text .bk-pt em{ font-family: var(--font-display); font-style: italic; }

/* ③ 交互页观众层小注（slide 小注 · 不进被试程序卡） */
.reveal .interactive-slide .iv-note{
  flex: 0 0 auto; font-size: var(--ts-micro); color: var(--ink-3);
  line-height: 1.5; margin: 0 48px 7px;   /* P1-4：随页头入网格 x=105 */
}
.reveal .interactive-slide .iv-note b{ color: var(--ink-2); font-weight: 600; }

/* compare 左栏标签归中性（design_spec §1B「左中性右强调」；deck 主题默认把两 ctag 都染红，
   这里把非强调侧退回灰，红只留强调侧——同时把每页红点收回预算内） */
.reveal .compare .c-lead .ctag{ color: var(--ink-3); }

/* —— P4b gatefix 通用小件（只调间距/断行，不引新样式语言）—— */
/* 统计表达式整体不断行：断点只落在字段之间，绝不断进括号/等号内（P1-2） */
.reveal .nb{ white-space: nowrap; }
/* §1C.5 稀疏页铺满（p8/p10）：slide-body 单一 gap 掌控、子元素 margin 清零，
   对照卡行 flex:1 吸收纵向余量（卡内容居中）——末块自然落在公共底线 655 */
.reveal .content.fill-y .slide-body{ gap: 24px; }
.reveal .content.fill-y .slide-body > *{ margin: 0; }
.reveal .content.fill-y .slide-body > :first-child{ margin-top: 4px; }
.reveal .content.fill-y .slide-body .compare{ flex: 1 1 auto; min-height: 0; }
/* P2-3(p15) 整页上收：脚注距底回到安全区（≥25px），间距按比例同收不破节奏 */
.reveal .content.snug .sub-lede{ margin-bottom: 12px; }
.reveal .content.snug .footnote-line{ margin-top: 10px; }
/* P2-7(p24)：行内容仍对整块垂直居中，但编号与首行走同一基线（内层 nl-in 承接原 gap） */
.reveal .num-list .nl-in{ display: flex; gap: 20px; align-items: baseline; min-width: 0; }

/* 密页收紧件（沿用 token，仅调间距/尺寸，不引新样式语言） */
.reveal .info-list.compact .row{ padding: 12px 0; }
.reveal .info-list.compact .row .k{ letter-spacing: .02em; }
/* 作者表：长合作者行导致行高偏高，收紧单元格 padding + 表下脚注同宽 */
.reveal .authors-slide table th,
.reveal .authors-slide table td{ padding: 6px 18px; line-height: 1.48; }
.reveal .authors-slide .sub-lede{ margin-bottom: 14px; }
.reveal .authors-slide table{ margin: 2px 0; }
.reveal .authors-slide .footnote-line{ margin-top: 10px; max-width: none; }
/* 设计流程页：紧凑竖向步骤 + 右侧 Fig 2 等高容器 */
.reveal .method-grid{
  flex: 1; min-height: 0; display: grid; grid-template-columns: .5fr .5fr;
  gap: 40px; align-items: stretch; margin-top: 6px;
}
.reveal .method-grid .m-left{ display: flex; flex-direction: column; min-height: 0; }
.reveal .steps.compact{ margin: 6px 0 0; }
.reveal .steps.compact .step{ padding: 11px 0; }
.reveal .steps.compact .step .txt{ font-size: var(--ts-body); }
.reveal .method-grid .m-left .callout{ margin-top: auto; }
.reveal .method-fig{ display: flex; flex-direction: column; min-height: 0; }
.reveal .method-fig img{
  flex: 1; min-height: 0; max-width: 100%; object-fit: contain; object-position: top center;
  border: 1px solid var(--line); border-radius: 6px; background: var(--surface);
}
.reveal .method-fig .fig-cap{
  margin-top: 9px; font-size: var(--ts-micro); color: var(--ink-3); line-height: 1.55;
}
.reveal .method-fig .fig-cap .fc-lbl{ font-family: var(--font-latin); color: var(--accent); font-weight: 600; margin-right: .5em; }

/* ④ 收尾页 CC-BY 署名 / 替身声明块（小字、克制，与 meta 呼应） */
.reveal .closing .closing-credits{
  margin-top: 20px; max-width: 52em;
  display: flex; flex-direction: column; gap: 6px;
}
.reveal .closing .closing-credits > div{
  font-size: var(--ts-micro); color: var(--ink-3); line-height: 1.6; letter-spacing: .01em;
}
.reveal .closing .closing-credits strong{ color: var(--ink-2); font-weight: 600; }
.reveal .closing .closing-credits em{ font-family: var(--font-display); font-style: italic; }
