/* ============================================================
   超级个体时代的公司组织新形态 — 浅色编辑风 reveal.js 主题
   纯静态 · 本地 vendor · 双击 index.html 即可播放
   ============================================================ */

:root {
  --paper:  #FAF7F2;
  --surf:   #F3EDE2;
  --ink:    #1C1B1A;
  --rust:   #B5462F;
  --teal:   #2F6B6B;
  --gold:   #C8902A;
  --slate:  #4A5568;
  --grey:   #8A8378;
  --faint:  #D8D0C2;
  --white:  #FFFFFF;
  --dark-bg:#1C1B1A;
  --dark-ink:#F2ECE0;

  --fh: "Noto Serif SC", "Songti SC", "STSong", Georgia, serif;
  --ft: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --mono: "JetBrains Mono", "SF Mono", "Consolas", monospace;
}

/* ---------- base ---------- */
html, body { background: var(--paper); }
.reveal {
  font-family: var(--ft);
  font-size: 34px;
  color: var(--ink);
  font-weight: 400;
}
.reveal .slides { text-align: left; }
.reveal .slides section {
  padding: 0;
  height: 100%;
  box-sizing: border-box;
}

/* slide inner wrapper for consistent padding */
.slide-pad {
  position: absolute;
  inset: 0;
  padding: 5.4% 6.8%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}
.slide-pad.center { justify-content: center; }

/* ---------- typography ---------- */
.reveal h1, .reveal h2, .reveal h3 {
  font-family: var(--fh);
  color: var(--ink);
  font-weight: 700;
  line-height: 1.14;
  margin: 0;
  text-transform: none;
  letter-spacing: 0;
}
.reveal h1 { font-size: 1.0em; }
.reveal p  { line-height: 1.55; margin: 0; }
.reveal strong { color: var(--rust); font-weight: 700; }
.reveal em { font-style: normal; color: var(--teal); }
.reveal a  { color: var(--rust); text-decoration: none; }

/* kicker / eyebrow */
.kicker {
  font-family: var(--ft);
  font-size: 0.5em;
  letter-spacing: 0.22em;
  color: var(--rust);
  font-weight: 600;
  margin-bottom: 0.6em;
}

.title-lg {
  font-family: var(--fh);
  font-size: 1.42em;
  font-weight: 700;
  line-height: 1.12;
  margin-bottom: 0.55em;
}
.title-md {
  font-family: var(--fh);
  font-size: 1.12em;
  font-weight: 700;
  line-height: 1.16;
  margin-bottom: 0.5em;
}

/* lede — 一句话主张，控制密度的关键样式 */
.lede {
  font-size: 0.84em;
  color: var(--slate);
  line-height: 1.6;
  max-width: 24em;
}
.lede.big { font-size: 1.0em; color: var(--ink); max-width: 20em; }

/* reveal 自动页码（替代手写 .foot，加页不用改数字） */
.reveal .slide-number {
  right: 6.8%;
  bottom: 3.4%;
  left: auto;
  top: auto;
  background: transparent;
  font-family: var(--mono);
  font-size: 15px;
  color: var(--grey);
  letter-spacing: 0.05em;
  padding: 0;
}
.source {
  position: absolute;
  bottom: 3.4%;
  left: 6.8%;
  font-family: var(--ft);
  font-size: 0.38em;
  color: var(--grey);
  max-width: 60%;
}
.source a { color: var(--slate); border-bottom: 1px solid var(--faint); }

/* cards */
.card {
  background: var(--surf);
  border-radius: 14px;
  padding: 0.85em 1.1em;
}
.card .ct { font-family: var(--fh); font-weight:700; font-size:0.8em; margin-bottom:0.25em; }
.card .cd { font-size: 0.62em; color: var(--slate); line-height:1.5; }

/* grid of cards */
.grid { display: grid; gap: 0.7em; }
.grid.g2 { grid-template-columns: 1fr 1fr; }
.grid.g3 { grid-template-columns: repeat(3,1fr); }

/* compact evidence strips for inserted trend slides */
.metric-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.48em;
  margin-top: 0.55em;
}
.metric {
  background: #fff;
  border: 1px solid var(--faint);
  border-radius: 10px;
  padding: 0.48em 0.58em;
  min-height: 3.15em;
}
.metric .n {
  font-family: var(--fh);
  font-weight: 900;
  font-size: 0.78em;
  line-height: 1;
  color: var(--rust);
}
.metric .l {
  margin-top: 0.45em;
  font-size: 0.42em;
  line-height: 1.42;
  color: var(--slate);
}
.definition-band {
  background: var(--surf);
  border-left: 4px solid var(--rust);
  padding: 0.62em 0.82em;
  margin-top: 0.2em;
}
.definition-band .t {
  font-family: var(--mono);
  font-size: 0.38em;
  letter-spacing: 0.16em;
  color: var(--rust);
  margin-bottom: 0.32em;
}
.definition-band p {
  font-size: 0.56em;
  line-height: 1.56;
  color: var(--ink);
}
.fact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.58em;
  margin-top: 0.62em;
}
.fact-card {
  background: #fff;
  border: 1px solid var(--faint);
  border-radius: 12px;
  padding: 0.62em 0.7em;
  min-height: 4.6em;
}
.fact-card .n {
  font-family: var(--fh);
  font-size: 1.08em;
  line-height: 1;
  font-weight: 900;
  color: var(--slate);
}
.fact-card.down .n { color: var(--rust); }
.fact-card .t {
  margin-top: 0.42em;
  font-size: 0.5em;
  line-height: 1.45;
  color: var(--ink);
}
.fact-card .s {
  margin-top: 0.52em;
  font-size: 0.36em;
  color: var(--grey);
}
.process-shift {
  display: grid;
  grid-template-columns: 0.9fr 0.2fr 0.9fr;
  gap: 0.5em;
  align-items: center;
  margin-top: 0.78em;
}
.process-stack {
  display: grid;
  gap: 0.42em;
}
.process-box {
  background: #fff;
  border: 1px solid var(--faint);
  border-left: 4px solid var(--slate);
  border-radius: 10px;
  padding: 0.44em 0.58em;
}
.process-box b {
  display: block;
  font-family: var(--fh);
  font-size: 0.68em;
  color: var(--ink);
}
.process-box span {
  display: block;
  margin-top: 0.18em;
  font-size: 0.44em;
  line-height: 1.36;
  color: var(--slate);
}
.process-box.hot {
  border-left-color: var(--rust);
  background: rgba(181, 70, 47, 0.07);
}
.process-arrow {
  font-family: var(--fh);
  font-size: 1.2em;
  text-align: center;
  color: var(--rust);
}
.manager-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.48em;
  margin-top: 0.56em;
}
.span-figure {
  margin-top: 0.42em;
  flex: 0 0 15.4em;
  min-height: 0;
  align-items: stretch;
}
.company-roster {
  margin-top: 0.58em;
  background: var(--ink);
  color: var(--paper);
  border-radius: 12px;
  padding: 0.56em 0.72em;
}
.company-roster .h {
  font-family: var(--mono);
  font-size: 0.38em;
  letter-spacing: 0.16em;
  color: var(--gold);
  margin-bottom: 0.42em;
}
.company-roster ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.28em 0.72em;
}
.company-roster li {
  font-size: 0.42em;
  line-height: 1.38;
  color: #D8D1C5;
}
.company-roster b { color: #fff; }
.role-triad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.55em;
  margin-top: 0.52em;
}
.role-col {
  background: #fff;
  border: 1px solid var(--faint);
  border-top: 4px solid var(--teal);
  border-radius: 10px;
  padding: 0.56em 0.62em;
}
.role-col.dn { border-top-color: var(--rust); }
.role-col.ch { border-top-color: var(--gold); }
.role-col .h {
  font-family: var(--fh);
  font-size: 0.66em;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 0.22em;
}
.role-col.dn .h { color: var(--rust); }
.role-col.ch .h { color: var(--gold); }
.role-col.up .h { color: var(--teal); }
.role-col .sub {
  font-family: var(--mono);
  font-size: 0.34em;
  color: var(--grey);
  letter-spacing: 0.08em;
  margin-bottom: 0.55em;
}
.role-col ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.role-col li {
  border-top: 1px dashed var(--faint);
  padding: 0.38em 0 0.34em;
  font-size: 0.43em;
  line-height: 1.42;
  color: var(--slate);
}
.role-col li:first-child { border-top: 0; }
.role-col li b {
  display: block;
  color: var(--ink);
  font-size: 1.08em;
  margin-bottom: 0.12em;
}

/* dash list */
ul.dash { list-style: none; margin: 0; padding: 0; }
ul.dash li {
  position: relative;
  padding-left: 1.1em;
  margin: 0.5em 0;
  line-height: 1.5;
  font-size: 0.78em;
}
ul.dash li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: var(--rust);
}
ul.dash li b { color: var(--ink); font-weight: 700; }

/* numbered big steps (去Title化 / 三件事) */
.steps { display:flex; gap:5%; margin-top:0.3em; }
.step { flex:1; }
.step .n { font-family:var(--mono); font-size:0.9em; color:var(--rust); font-weight:600; }
.step .t { font-family:var(--fh); font-weight:700; font-size:0.92em; margin:0.18em 0 0.18em; line-height:1.2; }
.step .d { font-size:0.6em; color:var(--slate); line-height:1.5; }

/* big word */
.bigword {
  font-family: var(--fh);
  font-weight: 700;
  font-size: 3.0em;
  text-align: center;
  line-height: 1;
}
section.dark .bigword { color: var(--dark-ink); }

/* two-col */
.row { display: flex; gap: 5%; align-items: stretch; }
.col { flex: 1; }

/* Da Vinci resume slide */
.resume-slide {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1fr);
  gap: 1.15em;
  align-items: center;
}
.resume-art {
  margin: 0;
  align-self: stretch;
  min-height: 0;
  display: flex;
  align-items: center;
}
.resume-toggle {
  position: relative;
  cursor: pointer;
  border: 0;
  outline: none;
  user-select: none;
}
.resume-toggle:focus-visible {
  box-shadow: 0 0 0 4px rgba(47, 107, 107, 0.25);
}
.resume-original,
.resume-translation {
  position: absolute;
  inset: 0;
  transition: opacity 220ms ease, transform 220ms ease;
}
.resume-original {
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transform: scale(1);
}
.resume-translation {
  opacity: 0;
  transform: scale(0.985);
  pointer-events: none;
}
.resume-toggle.is-translated .resume-original {
  opacity: 0;
  transform: scale(0.985);
  pointer-events: none;
}
.resume-toggle.is-translated .resume-translation {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.resume-motion {
  position: relative;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  padding: 0.82em 0.78em;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.86), rgba(243,237,226,0.82)),
    repeating-linear-gradient(0deg, rgba(216,208,194,0.18), rgba(216,208,194,0.18) 1px, transparent 1px, transparent 29px);
  border: 1px solid rgba(138, 131, 120, 0.28);
  box-shadow: 0 0.35em 1.1em rgba(28, 27, 26, 0.12);
  overflow: hidden;
}
.resume-motion::before {
  content: "";
  position: absolute;
  inset: 0.38em;
  border: 1px solid rgba(216, 208, 194, 0.72);
  pointer-events: none;
}
.resume-doc-head {
  position: relative;
  z-index: 1;
  border-bottom: 2px solid var(--faint);
  padding-bottom: 0.45em;
  margin-bottom: 0.58em;
}
.resume-doc-head span {
  display: block;
  font-family: var(--mono);
  font-size: 0.38em;
  letter-spacing: 0.18em;
  color: var(--rust);
}
.resume-doc-head b {
  display: block;
  margin-top: 0.24em;
  font-family: var(--fh);
  font-size: 0.82em;
  line-height: 1.18;
}
.resume-lines {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0.36em;
}
.resume-line {
  display: grid;
  grid-template-columns: 2.1em 1fr;
  gap: 0.46em;
  align-items: start;
  padding: 0.42em 0.42em;
  background: rgba(255, 255, 255, 0.62);
  border-left: 3px solid var(--faint);
  opacity: 0;
  transform: translateY(10px);
  animation: resumeLineIn 620ms ease forwards;
}
.resume-line:nth-child(1) { animation-delay: 160ms; }
.resume-line:nth-child(2) { animation-delay: 520ms; }
.resume-line:nth-child(3) { animation-delay: 880ms; }
.resume-line:nth-child(4) { animation-delay: 1240ms; }
.resume-line span {
  font-family: var(--mono);
  font-size: 0.42em;
  color: var(--grey);
  padding-top: 0.18em;
}
.resume-line p {
  font-size: 0.48em;
  line-height: 1.48;
  color: var(--slate);
}
.resume-line.art {
  border-left-color: var(--rust);
  background: rgba(181, 70, 47, 0.08);
}
.resume-line.art span,
.resume-line.art p {
  color: var(--rust);
  font-weight: 700;
}
.resume-doc-foot {
  position: relative;
  z-index: 1;
  margin-top: 0.58em;
  padding-top: 0.52em;
  border-top: 1px solid var(--faint);
  font-family: var(--fh);
  font-size: 0.58em;
  line-height: 1.35;
  color: var(--ink);
  font-weight: 700;
}
@keyframes resumeLineIn {
  to { opacity: 1; transform: translateY(0); }
}
.resume-art img {
  width: 100%;
  max-height: 100%;
  object-fit: contain;
  border: 1px solid rgba(138, 131, 120, 0.28);
  box-shadow: 0 0.35em 1.1em rgba(28, 27, 26, 0.16);
  background: #E3D0B4;
}
.resume-state {
  position: absolute;
  top: 0.72em;
  left: 0.72em;
  z-index: 3;
  padding: 0.32em 0.56em;
  background: rgba(250, 247, 242, 0.92);
  border: 1px solid rgba(138, 131, 120, 0.32);
  font-family: var(--mono);
  font-size: 0.34em;
  letter-spacing: 0.12em;
  color: var(--rust);
}
.resume-copy {
  min-width: 0;
}
.resume-copy .title-lg {
  font-size: 1.22em;
}
.resume-copy .lede {
  max-width: 25em;
}
.resume-copy .card {
  padding: 0.72em 0.86em;
}

/* 文艺复兴页：keynote 配图 + 两个要点 */
.renai-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
  gap: 1.15em;
  align-items: center;
  align-content: center;
  flex: 1;
  min-height: 0;
  margin-top: 0.5em;
}
.renai-art {
  margin: 0;
  min-width: 0;
}
.renai-art img {
  width: 100%;
  max-height: 340px;
  object-fit: contain;
  object-position: left center;
  display: block;
  border-radius: 10px;
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.3);
}
.renai-art figcaption {
  font-family: var(--fh);
  font-size: 0.5em;
  letter-spacing: 0.02em;
  color: var(--slate);
  margin-top: 0.55em;
}
.renai-points {
  display: flex;
  flex-direction: column;
  gap: 0.7em;
  min-width: 0;
}
.renai-points .card {
  padding: 0.72em 0.86em;
}
.renai-points .card .cd {
  line-height: 1.55;
}
.renai-points .card .cd b {
  font-family: var(--fh);
  font-weight: 700;
  color: var(--rust);
  margin-right: 0.3em;
}

/* talent 页：为底部「真实例子」截图腾出空间 */
section[data-fig="talent"] .fig {
  flex: 0 1 auto;
}
section[data-fig="talent"] #fig-talent svg {
  max-width: 80%;
}
.talent-proof {
  display: flex;
  align-items: center;
  gap: 1.1em;
  margin-top: 0.6em;
  max-width: 42em;
}
.talent-proof img {
  flex: none;
  width: 300px;
  border-radius: 10px;
  border: 1px solid var(--faint);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
}
.talent-proof p {
  margin: 0;
  font-size: 0.6em;
  line-height: 1.6;
  color: var(--slate);
}
.talent-proof strong {
  color: var(--rust);
  font-weight: 700;
}

/* talent 页：左对照表 + 右 Fun Fact 配图 */
.talent-layout {
  display: grid;
  grid-template-columns: 1fr 322px;
  gap: 1.1em;
  align-items: start;
  margin-top: 0.55em;
}
.talent-layout .cmp {
  margin-top: 0;
}
.fun-fact {
  background: var(--surf);
  border: 1px solid var(--faint);
  border-radius: 12px;
  padding: 0.62em 0.7em 0.7em;
}
.fun-fact .tag {
  font-family: var(--mono);
  font-size: 0.34em;
  letter-spacing: 0.16em;
  color: var(--rust);
  margin-bottom: 0.5em;
}
.fun-fact img {
  width: 100%;
  display: block;
  border-radius: 8px;
  border: 1px solid var(--faint);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
.fun-fact p {
  margin: 0.55em 0 0;
  font-size: 0.42em;
  line-height: 1.5;
  color: var(--slate);
}
.fun-fact strong {
  color: var(--rust);
  font-weight: 700;
}

/* 达·芬奇 ↔ 当代 Builder 对照表 */
.cmp {
  display: grid;
  grid-template-columns: 5.4em 1fr 1fr;
  margin-top: 0.5em;
  border: 1px solid var(--faint);
  border-radius: 12px;
  overflow: hidden;
}
.cmp > div {
  padding: 0.52em 0.62em;
  font-size: 0.4em;
  line-height: 1.46;
  border-top: 1px solid var(--faint);
  color: var(--slate);
}
.cmp .h {
  border-top: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--fh);
  font-weight: 700;
  font-size: 0.42em;
  letter-spacing: 0.01em;
  display: flex;
  align-items: center;
}
.cmp .h.b {
  color: var(--gold);
}
.cmp .d {
  background: var(--surf);
  font-family: var(--fh);
  font-weight: 700;
  color: var(--ink);
}
.cmp .b {
  background: rgba(181, 70, 47, 0.05);
  color: var(--ink);
}
.cmp .b strong {
  color: var(--rust);
  font-weight: 700;
}

/* svg figure container */
.fig {
  width: 100%;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}
.fig svg { width: 100%; height: 100%; max-height: 100%; overflow: visible; }
.fig.figure-card {
  background: #fff;
  border: 1px solid var(--faint);
  border-radius: 18px;
  padding: 0.36em 0.5em 0.28em;
  box-sizing: border-box;
}
.fig.figure-card svg {
  height: 100%;
}

/* 真实案例卡片（贴在 query / loop / buff 三页，把口播里的真案例显式上墙） */
.case-row {
  display: grid;
  gap: 0.5em;
  margin: 0.32em 0 0.1em;
}
.case-row.c2 { grid-template-columns: 1fr 1fr; }
.case-card {
  background: #fff;
  border: 1px solid var(--faint);
  border-left: 4px solid var(--teal);
  border-radius: 11px;
  padding: 0.5em 0.66em;
}
.case-card .tag {
  font-family: var(--mono);
  font-size: 0.34em;
  letter-spacing: 0.14em;
  color: var(--teal);
  margin-bottom: 0.32em;
}
.case-card b {
  display: block;
  font-family: var(--fh);
  font-size: 0.6em;
  line-height: 1.3;
  color: var(--ink);
  margin-bottom: 0.24em;
}
.case-card span {
  display: block;
  font-size: 0.45em;
  line-height: 1.45;
  color: var(--slate);
}
.case-card code {
  font-family: var(--mono);
  font-size: 0.92em;
  color: var(--rust);
  background: rgba(181, 70, 47, 0.08);
  padding: 0 0.28em;
  border-radius: 4px;
}
.case-card.hot {
  border-left-color: var(--rust);
  background: rgba(181, 70, 47, 0.05);
}
.case-card.hot .tag { color: var(--rust); }

/* titleline story slide（沿用全局 .slide-pad 留白与标题字阶） */
.titleline-head {
  font-family: var(--fh);
  font-size: 1.42em;
  font-weight: 900;
  line-height: 1.12;
  max-width: 22em;
  margin: 0;
}
.titleline-head span {
  color: var(--rust);
}
.titleline-copy {
  margin-top: 0.6em;
  max-width: 43em;
  font-size: 0.66em;
  line-height: 1.62;
  color: var(--slate);
}
.titleline-copy strong {
  color: var(--ink);
  font-weight: 800;
}
.titleline-figure {
  margin-top: 0.6em;
  flex: 1;
  min-height: 0;
}

/* 逆分工对照 strip（原「端到端」页压缩成一行） */
.reverse-strip {
  display: flex;
  align-items: stretch;
  gap: 0.5em;
  margin-top: 0.55em;
}
.reverse-strip .rs-side {
  flex: 1;
  background: #fff;
  border: 1px solid var(--faint);
  border-left: 4px solid var(--slate);
  border-radius: 10px;
  padding: 0.42em 0.6em;
  font-family: var(--fh);
  font-size: 0.58em;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.28;
}
.reverse-strip .rs-side small {
  display: block;
  margin-top: 0.22em;
  font-family: var(--ft);
  font-size: 0.62em;
  font-weight: 400;
  color: var(--slate);
  line-height: 1.4;
}
.reverse-strip .rs-side.hot {
  border-left-color: var(--rust);
  background: rgba(181, 70, 47, 0.07);
}
.reverse-strip .rs-arrow {
  align-self: center;
  font-family: var(--fh);
  font-size: 0.9em;
  color: var(--rust);
}

/* mono inline + tags */
.m { font-family: var(--mono); font-size: 0.92em; }
.tag { color: var(--rust); font-weight: 600; }
.tag-teal { color: var(--teal); font-weight: 600; }
.pill {
  display:inline-block; font-family:var(--mono); font-size:0.42em;
  letter-spacing:0.1em; color:var(--teal); border:1px solid var(--faint);
  border-radius:999px; padding:0.25em 0.8em; margin-bottom:0.6em;
}

/* quote / 金句 */
.quote {
  font-family: var(--fh);
  font-size: 1.0em;
  line-height: 1.45;
  color: var(--ink);
}
.quote .src { display:block; font-family:var(--mono); font-size:0.42em; color:var(--grey); margin-top:0.8em; letter-spacing:0.04em; }

/* ---------- dark slides ---------- */
.reveal section.dark { background: var(--dark-bg); }
section.dark .slide-pad { color: var(--dark-ink); }
section.dark h1, section.dark h2, section.dark h3 { color: var(--dark-ink); }
section.dark .kicker { color: var(--rust); }
section.dark p, section.dark .lede { color: #D8D1C5; }
section.dark .lede.big { color: var(--dark-ink); }
section.dark .foot { color: #6B655C; }
section.dark .quote { color: var(--dark-ink); }
section.dark .quote em { color: var(--gold); }
section.dark strong { color: var(--gold); }
section.dark .card { background: #2A2825; }
section.dark .card .cd { color: #C9C2B6; }

/* 层级终局 · 中层消失后的三角色 */
.endgame-roles { margin-top: 0.7em; }
.endgame-roles .er-head {
  font-family: var(--mono);
  font-size: 0.4em;
  letter-spacing: 0.08em;
  color: var(--gold);
  margin-bottom: 0.5em;
}
.endgame-roles .er-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6em;
}
.endgame-roles .er {
  background: #2A2825;
  border-top: 2px solid var(--rust);
  padding: 0.55em 0.66em;
}
.endgame-roles .er b {
  display: block;
  font-family: var(--mono);
  font-size: 0.46em;
  letter-spacing: 0.04em;
  color: var(--dark-ink);
  font-weight: 600;
  margin-bottom: 0.34em;
}
.endgame-roles .er span {
  display: block;
  font-size: 0.42em;
  line-height: 1.52;
  color: #C9C2B6;
}

/* ---------- cover ---------- */
.cover-kicker {
  font-family: var(--mono);
  letter-spacing: 0.3em;
  font-size: 0.46em;
  color: var(--rust);
  margin-bottom: 0.9em;
}
.cover-title {
  font-family: var(--fh);
  font-weight: 700;
  font-size: 2.3em;
  line-height: 1.04;
  color: var(--dark-ink);
}
.cover-title .accent { color: var(--rust); }
.cover-sub {
  font-size: 0.7em;
  color: #C9C2B6;
  margin-top: 0.7em;
  font-weight: 300;
}
.cover-author {
  margin-top: 1.55em;
  padding-left: 1.1em;
  border-left: 2px solid rgba(181, 70, 47, 0.58);
  color: #8F887E;
  font-size: 0.4em;
  line-height: 1.5;
  max-width: 46em;
}
.author-name {
  font-family: var(--mono);
  font-size: 1.14em;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #BDB5AA;
}
.author-name span {
  margin-left: 0.8em;
  color: #756E66;
  font-weight: 400;
}
.author-roles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.18em;
  margin-top: 0.7em;
  font-family: var(--ft);
  letter-spacing: 0;
}
.author-roles div {
  display: grid;
  grid-template-columns: 8.4em 1fr;
  column-gap: 0.8em;
  align-items: baseline;
}
.author-roles b {
  color: #A9A196;
  font-weight: 600;
}
.author-roles span {
  color: #7F786F;
}
.author-tag {
  margin-top: 0.55em;
  font-family: var(--mono);
  font-size: 0.92em;
  letter-spacing: 0.14em;
  color: #675F57;
}

/* section divider 大章节封面 */
.sec-num { font-family:var(--mono); font-size:0.6em; color:var(--rust); letter-spacing:0.2em; }
.sec-title { font-family:var(--fh); font-weight:700; font-size:1.9em; line-height:1.1; margin-top:0.25em; }

/* 浅色章节分隔页：surf 底 + 超大章节数字水印，给章节边界一个明确的视觉信号 */
.reveal section.divider { background: var(--surf); }
section.divider .slide-pad::after {
  content: attr(data-num);
  position: absolute;
  right: 2%;
  bottom: -8%;
  font-family: var(--fh);
  font-weight: 900;
  font-size: 11em;
  line-height: 1;
  color: rgba(181, 70, 47, 0.08);
  pointer-events: none;
}

/* progress + controls color */
.reveal .progress { color: var(--rust); height: 4px; }
.reveal .progress span { background: var(--rust); }
.reveal .controls { color: var(--rust); }

/* fragment tuning */
.reveal .fragment.fade-in-then-semi-out.visible { opacity: 1; }
