@taloswork/ose-shared 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/package.json +3 -3
  2. package/skills/document/SKILL.md +56 -53
  3. package/skills/document/assets/fonts/Archivo-Regular.woff2 +0 -0
  4. package/skills/document/assets/fonts/Archivo-SemiBold.woff2 +0 -0
  5. package/skills/document/assets/fonts/BigShouldersDisplay-Bold.woff2 +0 -0
  6. package/skills/document/assets/fonts/BodoniModa-SemiBold.woff2 +0 -0
  7. package/skills/document/assets/fonts/ChakraPetch-600.woff2 +0 -0
  8. package/skills/document/assets/fonts/CormorantGaramond-SemiBold.woff2 +0 -0
  9. package/skills/document/assets/fonts/DMSerifDisplay-400.woff2 +0 -0
  10. package/skills/document/assets/fonts/Fraunces-SemiBold.woff2 +0 -0
  11. package/skills/document/assets/fonts/GochiHand-Regular.woff2 +0 -0
  12. package/skills/document/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
  13. package/skills/document/assets/fonts/IBMPlexSans-SemiBold.woff2 +0 -0
  14. package/skills/document/assets/fonts/Inter-Regular.woff2 +0 -0
  15. package/skills/document/assets/fonts/Jost-Regular.woff2 +0 -0
  16. package/skills/document/assets/fonts/Jost-SemiBold.woff2 +0 -0
  17. package/skills/document/assets/fonts/Karla-Regular.woff2 +0 -0
  18. package/skills/document/assets/fonts/Lexend-500.woff2 +0 -0
  19. package/skills/document/assets/fonts/Lora-Regular.woff2 +0 -0
  20. package/skills/document/assets/fonts/Manrope-Bold.woff2 +0 -0
  21. package/skills/document/assets/fonts/Manrope-Regular.woff2 +0 -0
  22. package/skills/document/assets/fonts/Marcellus-Regular.woff2 +0 -0
  23. package/skills/document/assets/fonts/Nunito-700.woff2 +0 -0
  24. package/skills/document/assets/fonts/PlayfairDisplay-600.woff2 +0 -0
  25. package/skills/document/assets/fonts/PublicSans-Regular.woff2 +0 -0
  26. package/skills/document/assets/fonts/Quicksand-600.woff2 +0 -0
  27. package/skills/document/assets/fonts/Sora-Regular.woff2 +0 -0
  28. package/skills/document/assets/fonts/Sora-SemiBold.woff2 +0 -0
  29. package/skills/document/assets/fonts/SpaceGrotesk-500.woff2 +0 -0
  30. package/skills/document/assets/fonts/Syne-700.woff2 +0 -0
  31. package/skills/document/assets/fonts/ZillaSlab-600.woff2 +0 -0
  32. package/skills/document/assets/fonts/fonts.json +316 -0
  33. package/skills/document/bin/deck-build.cjs +273 -5
  34. package/skills/document/bin/doc-gen.cjs +108 -23
  35. package/skills/document/bin/html2pptx.cjs +284 -51
  36. package/skills/document/catalog.json +43 -0
  37. package/skills/document/deck-design.md +191 -0
  38. package/skills/document/layouts/README.md +33 -0
  39. package/skills/document/layouts/banner-columns.tpl +9 -9
  40. package/skills/document/layouts/bento.tpl +3 -3
  41. package/skills/document/layouts/big-stat.tpl +3 -3
  42. package/skills/document/layouts/blocks-2x2.tpl +12 -12
  43. package/skills/document/layouts/brand-values.tpl +5 -5
  44. package/skills/document/layouts/cards-3.tpl +3 -3
  45. package/skills/document/layouts/cards-grid.tpl +3 -3
  46. package/skills/document/layouts/chart-full.tpl +3 -3
  47. package/skills/document/layouts/chart-kpi.tpl +3 -3
  48. package/skills/document/layouts/color-palette.tpl +5 -5
  49. package/skills/document/layouts/comparison.tpl +3 -3
  50. package/skills/document/layouts/concept-hub.tpl +3 -3
  51. package/skills/document/layouts/cover-centered.tpl +1 -1
  52. package/skills/document/layouts/cover-image.tpl +1 -1
  53. package/skills/document/layouts/cover-minimal.tpl +3 -3
  54. package/skills/document/layouts/cover-statement.tpl +3 -3
  55. package/skills/document/layouts/cover.tpl +1 -1
  56. package/skills/document/layouts/data-table.tpl +3 -3
  57. package/skills/document/layouts/dos-donts.tpl +14 -14
  58. package/skills/document/layouts/editorial-panel.tpl +11 -11
  59. package/skills/document/layouts/ending-contact.tpl +1 -1
  60. package/skills/document/layouts/ending.tpl +1 -1
  61. package/skills/document/layouts/funnel.tpl +3 -3
  62. package/skills/document/layouts/gantt.tpl +3 -3
  63. package/skills/document/layouts/hero.tpl +3 -3
  64. package/skills/document/layouts/icon-row.tpl +3 -3
  65. package/skills/document/layouts/image-full.tpl +5 -5
  66. package/skills/document/layouts/image-grid.tpl +3 -3
  67. package/skills/document/layouts/image-left.tpl +3 -3
  68. package/skills/document/layouts/list.tpl +3 -3
  69. package/skills/document/layouts/logo-guidelines.tpl +8 -8
  70. package/skills/document/layouts/map-distribution.tpl +3 -3
  71. package/skills/document/layouts/map-quad.tpl +6 -6
  72. package/skills/document/layouts/matrix-2x2.tpl +3 -3
  73. package/skills/document/layouts/numbered-brief.tpl +12 -12
  74. package/skills/document/layouts/org-tree.tpl +3 -3
  75. package/skills/document/layouts/problem-solution-banner.tpl +7 -7
  76. package/skills/document/layouts/problem-solution.tpl +3 -3
  77. package/skills/document/layouts/pyramid.tpl +3 -3
  78. package/skills/document/layouts/quote-aside.tpl +11 -0
  79. package/skills/document/layouts/quote.tpl +1 -1
  80. package/skills/document/layouts/radar.tpl +3 -3
  81. package/skills/document/layouts/ring-progress.tpl +3 -3
  82. package/skills/document/layouts/section-fullbleed.tpl +3 -3
  83. package/skills/document/layouts/section-image.tpl +1 -1
  84. package/skills/document/layouts/section-stat.tpl +1 -1
  85. package/skills/document/layouts/section.tpl +1 -1
  86. package/skills/document/layouts/slots.json +1 -1
  87. package/skills/document/layouts/split-two-col.tpl +3 -3
  88. package/skills/document/layouts/stats-chart.tpl +3 -3
  89. package/skills/document/layouts/steps-serpentine.tpl +11 -11
  90. package/skills/document/layouts/steps-vertical.tpl +3 -3
  91. package/skills/document/layouts/steps.tpl +3 -3
  92. package/skills/document/layouts/team-row.tpl +4 -4
  93. package/skills/document/layouts/three-kpi.tpl +3 -3
  94. package/skills/document/layouts/timeline.tpl +3 -3
  95. package/skills/document/layouts/title-meta.tpl +5 -5
  96. package/skills/document/layouts/title.tpl +2 -2
  97. package/skills/document/layouts/toc-agenda.tpl +3 -3
  98. package/skills/document/layouts/toc-editorial.tpl +15 -0
  99. package/skills/document/layouts/toc-panel.tpl +4 -4
  100. package/skills/document/layouts/toc.tpl +3 -3
  101. package/skills/document/layouts/transition.tpl +1 -1
  102. package/skills/document/layouts/two-kpi.tpl +3 -3
  103. package/skills/document/layouts/type-specimen.tpl +10 -10
  104. package/skills/document/layouts/versus.tpl +3 -3
  105. package/skills/document/motion/README.md +29 -0
  106. package/skills/document/motion/anthropic.json +29 -0
  107. package/skills/document/motion/apple.json +41 -0
  108. package/skills/document/motion/bistro-warm.json +16 -0
  109. package/skills/document/motion/black-gold.json +29 -0
  110. package/skills/document/motion/board-brief.json +14 -0
  111. package/skills/document/motion/bold-clash.json +16 -0
  112. package/skills/document/motion/branding.json +22 -0
  113. package/skills/document/motion/campus-teal.json +22 -0
  114. package/skills/document/motion/cinereel.json +23 -0
  115. package/skills/document/motion/clinic-care.json +22 -0
  116. package/skills/document/motion/cool.json +41 -0
  117. package/skills/document/motion/dark-glass.json +22 -0
  118. package/skills/document/motion/gov-brief.json +14 -0
  119. package/skills/document/motion/grid-tech.json +16 -0
  120. package/skills/document/motion/hand-drawn.json +23 -0
  121. package/skills/document/motion/ivory-gold.json +22 -0
  122. package/skills/document/motion/legal-slate.json +15 -0
  123. package/skills/document/motion/magazine-ink.json +29 -0
  124. package/skills/document/motion/mckinsey.json +28 -0
  125. package/skills/document/motion/memphis.json +16 -0
  126. package/skills/document/motion/mono.json +21 -0
  127. package/skills/document/motion/neon-cyber.json +42 -0
  128. package/skills/document/motion/olive-gold.json +22 -0
  129. package/skills/document/motion/organic-earth.json +15 -0
  130. package/skills/document/motion/pastel-saas.json +15 -0
  131. package/skills/document/motion/portfolio-noir.json +21 -0
  132. package/skills/document/motion/press-room.json +14 -0
  133. package/skills/document/motion/retro-press.json +15 -0
  134. package/skills/document/motion/sport-arena.json +16 -0
  135. package/skills/document/motion/swiss-grid.json +34 -0
  136. package/skills/document/motion/wedding-blush.json +15 -0
  137. package/skills/document/packs/README.md +28 -0
  138. package/skills/document/packs/board-brief/backdrop.html +4 -0
  139. package/skills/document/packs/board-brief/layouts/cover.tpl +12 -0
  140. package/skills/document/packs/board-brief/layouts/toc-agenda.tpl +20 -0
  141. package/skills/document/packs/board-brief/pack.css +27 -0
  142. package/skills/document/packs/press-room/backdrop.html +4 -0
  143. package/skills/document/packs/press-room/layouts/cover.tpl +12 -0
  144. package/skills/document/packs/press-room/layouts/section.tpl +13 -0
  145. package/skills/document/packs/press-room/pack.css +27 -0
  146. package/skills/document/styles/README.md +65 -16
  147. package/skills/document/styles/_contract-defaults.css +55 -0
  148. package/skills/document/styles/_samples/_groups/biz-premium.webp +0 -0
  149. package/skills/document/styles/_samples/_groups/creative.webp +0 -0
  150. package/skills/document/styles/_samples/_groups/editorial.webp +0 -0
  151. package/skills/document/styles/_samples/_groups/minimal.webp +0 -0
  152. package/skills/document/styles/_samples/_groups/natural.webp +0 -0
  153. package/skills/document/styles/_samples/_groups/tech-future.webp +0 -0
  154. package/skills/document/styles/_samples/anthropic.webp +0 -0
  155. package/skills/document/styles/_samples/apple.webp +0 -0
  156. package/skills/document/styles/_samples/bistro-warm.webp +0 -0
  157. package/skills/document/styles/_samples/black-gold.webp +0 -0
  158. package/skills/document/styles/_samples/board-brief.webp +0 -0
  159. package/skills/document/styles/_samples/bold-clash.webp +0 -0
  160. package/skills/document/styles/_samples/branding.webp +0 -0
  161. package/skills/document/styles/_samples/campus-teal.webp +0 -0
  162. package/skills/document/styles/_samples/cinereel.webp +0 -0
  163. package/skills/document/styles/_samples/clinic-care.webp +0 -0
  164. package/skills/document/styles/_samples/cool.webp +0 -0
  165. package/skills/document/styles/_samples/dark-glass.webp +0 -0
  166. package/skills/document/styles/_samples/gov-brief.webp +0 -0
  167. package/skills/document/styles/_samples/grid-tech.webp +0 -0
  168. package/skills/document/styles/_samples/hand-drawn.webp +0 -0
  169. package/skills/document/styles/_samples/ivory-gold.webp +0 -0
  170. package/skills/document/styles/_samples/legal-slate.webp +0 -0
  171. package/skills/document/styles/_samples/magazine-ink.webp +0 -0
  172. package/skills/document/styles/_samples/mckinsey.webp +0 -0
  173. package/skills/document/styles/_samples/memphis.webp +0 -0
  174. package/skills/document/styles/_samples/mono.webp +0 -0
  175. package/skills/document/styles/_samples/neon-cyber.webp +0 -0
  176. package/skills/document/styles/_samples/olive-gold.webp +0 -0
  177. package/skills/document/styles/_samples/organic-earth.webp +0 -0
  178. package/skills/document/styles/_samples/pastel-saas.webp +0 -0
  179. package/skills/document/styles/_samples/portfolio-noir.webp +0 -0
  180. package/skills/document/styles/_samples/press-room.webp +0 -0
  181. package/skills/document/styles/_samples/retro-press.webp +0 -0
  182. package/skills/document/styles/_samples/sport-arena.webp +0 -0
  183. package/skills/document/styles/_samples/swiss-grid.webp +0 -0
  184. package/skills/document/styles/_samples/wedding-blush.webp +0 -0
  185. package/skills/document/styles/anthropic/backdrop.html +4 -0
  186. package/skills/document/styles/anthropic/skin.css +15 -8
  187. package/skills/document/styles/apple/backdrop.html +4 -1
  188. package/skills/document/styles/apple/skin.css +5 -2
  189. package/skills/document/styles/bistro-warm/backdrop.html +4 -0
  190. package/skills/document/styles/bistro-warm/skin.css +27 -0
  191. package/skills/document/styles/black-gold/backdrop.html +3 -0
  192. package/skills/document/styles/black-gold/skin.css +15 -8
  193. package/skills/document/styles/bold-clash/backdrop.html +4 -0
  194. package/skills/document/styles/bold-clash/skin.css +27 -0
  195. package/skills/document/styles/branding/backdrop.html +4 -0
  196. package/skills/document/styles/branding/skin.css +14 -7
  197. package/skills/document/styles/campus-teal/backdrop.html +3 -0
  198. package/skills/document/styles/campus-teal/skin.css +27 -0
  199. package/skills/document/styles/cinereel/skin.css +28 -10
  200. package/skills/document/styles/clinic-care/backdrop.html +4 -0
  201. package/skills/document/styles/clinic-care/skin.css +27 -0
  202. package/skills/document/styles/cool/backdrop.html +3 -0
  203. package/skills/document/styles/cool/skin.css +5 -2
  204. package/skills/document/styles/dark-glass/backdrop.html +4 -0
  205. package/skills/document/styles/dark-glass/skin.css +27 -0
  206. package/skills/document/styles/gov-brief/backdrop.html +4 -0
  207. package/skills/document/styles/gov-brief/skin.css +27 -0
  208. package/skills/document/styles/grid-tech/backdrop.html +37 -0
  209. package/skills/document/styles/grid-tech/skin.css +27 -0
  210. package/skills/document/styles/hand-drawn/skin.css +16 -8
  211. package/skills/document/styles/ivory-gold/skin.css +21 -8
  212. package/skills/document/styles/legal-slate/backdrop.html +6 -0
  213. package/skills/document/styles/legal-slate/skin.css +27 -0
  214. package/skills/document/styles/magazine-ink/skin.css +7 -2
  215. package/skills/document/styles/mckinsey/backdrop.html +5 -0
  216. package/skills/document/styles/mckinsey/skin.css +5 -2
  217. package/skills/document/styles/memphis/backdrop.html +5 -0
  218. package/skills/document/styles/memphis/skin.css +27 -0
  219. package/skills/document/styles/mono/backdrop.html +6 -0
  220. package/skills/document/styles/mono/skin.css +6 -3
  221. package/skills/document/styles/neon-cyber/backdrop.html +4 -0
  222. package/skills/document/styles/neon-cyber/skin.css +27 -0
  223. package/skills/document/styles/olive-gold/backdrop.html +5 -0
  224. package/skills/document/styles/olive-gold/skin.css +15 -8
  225. package/skills/document/styles/organic-earth/backdrop.html +4 -0
  226. package/skills/document/styles/organic-earth/skin.css +27 -0
  227. package/skills/document/styles/pastel-saas/backdrop.html +4 -0
  228. package/skills/document/styles/pastel-saas/skin.css +27 -0
  229. package/skills/document/styles/portfolio-noir/backdrop.html +4 -0
  230. package/skills/document/styles/portfolio-noir/skin.css +27 -0
  231. package/skills/document/styles/retro-press/backdrop.html +6 -0
  232. package/skills/document/styles/retro-press/skin.css +27 -0
  233. package/skills/document/styles/sport-arena/backdrop.html +4 -0
  234. package/skills/document/styles/sport-arena/skin.css +27 -0
  235. package/skills/document/styles/swiss-grid/skin.css +6 -1
  236. package/skills/document/styles/wedding-blush/backdrop.html +6 -0
  237. package/skills/document/styles/wedding-blush/skin.css +27 -0
@@ -1,8 +1,8 @@
1
1
  <!-- layouts/section-fullbleed — structure-only. role=section. 满出血图片 + 底部压边超大编号标题(数字与标题连写)+
2
2
  右上角一句引子,vs 小侧图的 section-image(整章过渡用满屏影像时选这个)。 -->
3
3
  <section class="slide" data-layout="section-fullbleed" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
4
- <div class="surface" style="position:absolute;inset:0;border-radius:0;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:15px">{{image_label|满出血章节配图占位 · 替换为 &lt;img&gt;}}</span></div>
4
+ <div class="surface" style="position:absolute;inset:0;border-radius:0;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(15px * var(--type-scale,1))">{{image_label|满出血章节配图占位 · 替换为 &lt;img&gt;}}</span></div>
5
5
  <div style="position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72) 4%,rgba(0,0,0,.18) 46%,transparent 70%)"></div>
6
- <p class="overlay-sub" style="position:absolute;right:96px;top:100px;width:420px;font-size:15px;line-height:1.6;text-align:left">{{desc|一句本章概述,点出这一章要回答的问题,替换为真实内容。}}</p>
7
- <h2 class="overlay-title" style="position:absolute;left:56px;bottom:64px;width:1100px;font-size:64px;font-weight:800;line-height:1;letter-spacing:-.5px">{{index|01}}.{{title|章节标题}}</h2>
6
+ <p class="overlay-sub" style="position:absolute;right:calc(96px * var(--space-scale,1));top:100px;width:420px;font-size:calc(15px * var(--type-scale,1));line-height:1.6;text-align:left">{{desc|一句本章概述,点出这一章要回答的问题,替换为真实内容。}}</p>
7
+ <h2 class="overlay-title" style="position:absolute;left:56px;bottom:64px;width:1100px;font-size:calc(64px * var(--type-scale,1));font-weight:800;line-height:1;letter-spacing:-.5px">{{index|01}}.{{title|章节标题}}</h2>
8
8
  </section>
@@ -1,2 +1,2 @@
1
1
  <!-- layouts/section-image — structure-only. role=section. -->
2
- <section class="slide" data-layout="section-image" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="section-ghost" style="position:absolute;left:60px;top:150px;font-weight:800;line-height:1;font-size:300px">{{index|01}}</div><div class="eyebrow-row" style="position:absolute;left:96px;top:330px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|CHAPTER 01}}</span></div><h2 class="section-title" style="position:absolute;left:92px;top:362px;font-size:60px;letter-spacing:-.5px">{{title|章节标题}}</h2><p class="section-desc" style="position:absolute;left:96px;top:470px;width:520px;font-size:18px;line-height:1.6">{{desc|一句本章概述,点出这一章要回答的问题。}}</p><div class="surface" style="position:absolute;right:96px;top:150px;width:460px;height:420px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:15px">{{image_label|章节配图占位}}</span></div><div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="section-image" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="section-ghost" style="position:absolute;left:60px;top:150px;font-weight:800;line-height:1;font-size:calc(300px * var(--type-scale,1))">{{index|01}}</div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:330px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|CHAPTER 01}}</span></div><h2 class="section-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:362px;font-size:calc(60px * var(--type-scale,1));letter-spacing:-.5px">{{title|章节标题}}</h2><p class="section-desc" style="position:absolute;left:calc(96px * var(--space-scale,1));top:470px;width:520px;font-size:calc(18px * var(--type-scale,1));line-height:1.6">{{desc|一句本章概述,点出这一章要回答的问题。}}</p><div class="surface" style="position:absolute;right:calc(96px * var(--space-scale,1));top:150px;width:460px;height:420px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(15px * var(--type-scale,1))">{{image_label|章节配图占位}}</span></div><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,2 +1,2 @@
1
1
  <!-- layouts/section-stat — structure-only. role=section. -->
2
- <section class="slide" data-layout="section-stat" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:300px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|CHAPTER 02}}</span></div><h2 class="section-title" style="position:absolute;left:92px;top:332px;font-size:60px;letter-spacing:-.5px">{{title|章节标题}}</h2><p class="section-desc" style="position:absolute;left:96px;top:446px;width:560px;font-size:18px;line-height:1.6">{{desc|一句本章概述。}}</p><div style="position:absolute;right:96px;top:300px;text-align:right"><div class="stat-num" style="font-size:180px;font-weight:800;line-height:1">{{stat|3}}<span class="stat-unit" style="font-size:56px">{{unit|大主题}}</span></div><div class="kpi-label" style="font-size:16px;margin-top:8px">{{stat_label|本章要点数}}</div></div><div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="section-stat" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:300px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|CHAPTER 02}}</span></div><h2 class="section-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:332px;font-size:calc(60px * var(--type-scale,1));letter-spacing:-.5px">{{title|章节标题}}</h2><p class="section-desc" style="position:absolute;left:calc(96px * var(--space-scale,1));top:446px;width:560px;font-size:calc(18px * var(--type-scale,1));line-height:1.6">{{desc|一句本章概述。}}</p><div style="position:absolute;right:calc(96px * var(--space-scale,1));top:300px;text-align:right"><div class="stat-num" style="font-size:calc(180px * var(--type-scale,1));font-weight:800;line-height:1">{{stat|3}}<span class="stat-unit" style="font-size:calc(56px * var(--type-scale,1))">{{unit|大主题}}</span></div><div class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:8px">{{stat_label|本章要点数}}</div></div><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,2 +1,2 @@
1
1
  <!-- layouts/section — structure-only (paint via skin). -->
2
- <section class="slide" data-layout="section" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="section-ghost" style="position:absolute;left:60px;top:70px;font-weight:800;line-height:1;font-size:430px">{{index|01}}</div><div class="eyebrow-row" style="position:absolute;left:96px;top:330px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|CHAPTER 01}}</span></div><h2 class="section-title" style="position:absolute;left:92px;top:362px;font-size:64px;letter-spacing:-.5px">{{title|章节标题}}</h2><p class="section-desc" style="position:absolute;left:96px;top:476px;width:820px;font-size:18px;line-height:1.6">{{desc|一句本章概述,点出这一章要回答的问题。}}</p><div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="section" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="section-ghost" style="position:absolute;left:60px;top:70px;font-weight:800;line-height:1;font-size:calc(430px * var(--type-scale,1))">{{index|01}}</div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:330px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|CHAPTER 01}}</span></div><h2 class="section-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:362px;font-size:calc(64px * var(--type-scale,1));letter-spacing:-.5px">{{title|章节标题}}</h2><p class="section-desc" style="position:absolute;left:calc(96px * var(--space-scale,1));top:476px;width:820px;font-size:calc(18px * var(--type-scale,1));line-height:1.6">{{desc|一句本章概述,点出这一章要回答的问题。}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1 +1 @@
1
- {"banner-columns":{"slots":["banner","col1_title","b1","b2","col2_title","b3","b4","col3_title","b5"],"chart":false},"bento":{"slots":["eyebrow","title","big_title","big_num","big_unit","big_body","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","footer","pageno"],"chart":false},"big-stat":{"slots":["eyebrow","title","stat","unit","lead","note","footer","pageno"],"chart":false},"blocks-2x2":{"slots":["eyebrow","title","intro","block1_title","block1_body","block2_title","block2_body","block3_title","block3_body","block4_title","block4_body","quote","quote_attr","refs","footer","pageno"],"chart":false},"brand-values":{"slots":["eyebrow","title","footer","pageno"],"rows":{"values":["name","body"]},"chart":false},"cards-3":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"cards-grid":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","card5_title","card5_body","card6_title","card6_body","footer","pageno"],"chart":false},"chart-full":{"slots":["eyebrow","title","lead","source","footer","pageno"],"chart":true},"chart-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":true},"color-palette":{"slots":["eyebrow","title","footer","pageno"],"rows":{"swatches":["name","hex"]},"chart":false},"comparison":{"slots":["eyebrow","title","colA_title","dim1","colA_v1","dim2","colA_v2","dim3","colA_v3","badge","colB_title","colB_v1","colB_v2","colB_v3","colC_title","colC_v1","colC_v2","colC_v3","footer","pageno"],"chart":false},"concept-hub":{"slots":["eyebrow","title","center_title","center_body","node1_title","node1_body","node2_title","node2_body","node3_title","node3_body","node4_title","node4_body","footer","pageno"],"chart":false},"cover-centered":{"slots":["eyebrow","title","subtitle","meta"],"chart":false},"cover-image":{"slots":["image_label","eyebrow","title","subtitle"],"chart":false},"cover-minimal":{"slots":["title","subtitle","meta"],"chart":false},"cover-statement":{"slots":["eyebrow","statement","meta"],"chart":false},"cover":{"slots":["eyebrow","title","subtitle","presenter","date"],"chart":false},"data-table":{"slots":["eyebrow","title","col0","col1","col2","col3","r1_key","r1c1","r1c2","r1c3","r2_key","r2c1","r2c2","r2c3","r3_key","r3c1","r3c2","r3c3","r4_key","r4c1","r4c2","r4c3","footer","pageno"],"chart":false},"dos-donts":{"slots":["eyebrow","do_head","do1","do2","do3","do4","dont_head","dont1","dont2","dont3","dont4","footer","pageno"],"chart":false},"editorial-panel":{"slots":["eyebrow","title","lead1","lead2","quote","quote_attr","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","list_title","list1","list2","list3","list4","note"],"chart":false},"ending-contact":{"slots":["eyebrow","title","email","phone","web","addr"],"chart":false},"ending":{"slots":["eyebrow","title","sub","contact"],"chart":false},"funnel":{"slots":["eyebrow","title","s1_label","s1_val","s2_label","s2_val","s3_label","s3_val","s4_label","s4_val","rate_label","rate","footer","pageno"],"chart":false},"gantt":{"slots":["eyebrow","title","footer","pageno"],"rows":{"cols":["label"],"tasks":["name","from","to"]},"chart":false},"hero":{"slots":["eyebrow","title","sub"],"chart":false},"icon-row":{"slots":["eyebrow","title","item1_title","item1_body","item2_title","item2_body","item3_title","item3_body","item4_title","item4_body","footer","pageno"],"chart":false},"image-full":{"slots":["image_label","eyebrow","title","caption","pageno"],"chart":false},"image-grid":{"slots":["eyebrow","title","img1_label","img1_title","img1_body","img2_label","img2_title","img2_body","img3_label","img3_title","img3_body","footer","pageno"],"chart":false},"image-left":{"slots":["eyebrow","title","image_label","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"list":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"logo-guidelines":{"slots":["eyebrow","title","wordmark","tagline","v1_label","v2_label","v3_label","footer","pageno"],"chart":false},"map-distribution":{"slots":["eyebrow","title","footer","pageno"],"rows":{"pins":["x","y"],"regions":["name","pct"]},"chart":false},"map-quad":{"slots":["title","q1_num","q1_unit","q1_label","q1_note","q2_num","q2_unit","q2_label","q2_note","q3_num","q3_unit","q3_label","q3_note","q4_num","q4_unit","q4_label","q4_note","footer","pageno"],"chart":false},"matrix-2x2":{"slots":["eyebrow","title","q1_title","q1_body","q2_title","q2_body","q3_title","q3_body","q4_title","q4_body","footer","pageno"],"chart":false},"numbered-brief":{"slots":["title","para1","para2","quote","source","right_title","item1_title","item2_title","item3_title","item4_title","source_label","source_note","pageno"],"chart":false},"org-tree":{"slots":["eyebrow","title","top","dept1_title","dept1_body","dept2_title","dept2_body","dept3_title","dept3_body","footer","pageno"],"chart":false},"problem-solution-banner":{"slots":["problem_label","problem_body","image_label","solution_body","solution_label"],"chart":false},"problem-solution":{"slots":["eyebrow","title","problem_title","problem_1","problem_2","problem_3","solution_title","solution_1","solution_2","solution_3","footer","pageno"],"chart":false},"pyramid":{"slots":["eyebrow","title","level1","level2","level3","level4","footer","pageno"],"chart":false},"quote":{"slots":["eyebrow","quote","source","footer","pageno"],"chart":false},"radar":{"slots":["eyebrow","title","footer","pageno"],"rows":{"metrics":["name","score"]},"chart":"derived"},"ring-progress":{"slots":["eyebrow","title","footer","pageno"],"rows":{"rings":["label","pct","note"]},"chart":false},"section-fullbleed":{"slots":["image_label","desc","index","title"],"chart":false},"section-image":{"slots":["index","eyebrow","title","desc","image_label","footer","pageno"],"chart":false},"section-stat":{"slots":["eyebrow","title","desc","stat","unit","stat_label","footer","pageno"],"chart":false},"section":{"slots":["index","eyebrow","title","desc","footer","pageno"],"chart":false},"split-two-col":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","image_label","footer","pageno"],"chart":false},"stats-chart":{"slots":["brand1","brand2","brand3","title","note"],"chart":true},"steps-serpentine":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","step5_title","step5_body","step6_title","step6_body","step7_title","step7_body","step8_title","step8_body"],"chart":false},"steps-vertical":{"slots":["eyebrow","title","footer","pageno"],"rows":{"steps":["name","body"]},"chart":false},"steps":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","footer","pageno"],"chart":false},"team-row":{"slots":["eyebrow","title","footer","pageno"],"rows":{"members":["name","role"]},"chart":false},"three-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_name","kpi1_desc","kpi2_num","kpi2_unit","kpi2_name","kpi2_desc","kpi3_num","kpi3_unit","kpi3_name","kpi3_desc","footer","pageno"],"chart":false},"timeline":{"slots":["eyebrow","title","item1_date","item1_title","item1_desc","item2_date","item2_title","item2_desc","item3_date","item3_title","item3_desc","item4_date","item4_title","item4_desc","footer","pageno"],"chart":false},"title-meta":{"slots":["index","eyebrow","title","subtitle","meta"],"chart":false},"title":{"slots":["eyebrow","title"],"chart":false},"toc-agenda":{"slots":["eyebrow","title","item1_title","item1_dur","item2_title","item2_dur","item3_title","item3_dur","item4_title","item4_dur","item5_title","item5_dur","footer","pageno"],"chart":false},"toc-panel":{"slots":["brand1","brand2","brand3","title"],"rows":{"entries":["name","desc"]},"chart":false},"toc":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"transition":{"slots":["eyebrow","number","title"],"chart":false},"two-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":false},"type-specimen":{"slots":["eyebrow","title","specimen","font_name","weights","heading_label","heading_sample","body_label","body_sample","charset","footer","pageno"],"chart":false},"versus":{"slots":["eyebrow","title","before_title","before_num","before_body","after_title","after_num","after_body","footer","pageno"],"chart":false}}
1
+ {"banner-columns":{"slots":["banner","col1_title","b1","b2","col2_title","b3","b4","col3_title","b5"],"chart":false},"bento":{"slots":["eyebrow","title","big_title","big_num","big_unit","big_body","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","footer","pageno"],"chart":false},"big-stat":{"slots":["eyebrow","title","stat","unit","lead","note","footer","pageno"],"chart":false},"blocks-2x2":{"slots":["eyebrow","title","intro","block1_title","block1_body","block2_title","block2_body","block3_title","block3_body","block4_title","block4_body","quote","quote_attr","refs","footer","pageno"],"chart":false},"brand-values":{"slots":["eyebrow","title","footer","pageno"],"rows":{"values":["name","body"]},"chart":false},"cards-3":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"cards-grid":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","card5_title","card5_body","card6_title","card6_body","footer","pageno"],"chart":false},"chart-full":{"slots":["eyebrow","title","lead","source","footer","pageno"],"chart":true},"chart-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":true},"color-palette":{"slots":["eyebrow","title","footer","pageno"],"rows":{"swatches":["name","hex"]},"chart":false},"comparison":{"slots":["eyebrow","title","colA_title","dim1","colA_v1","dim2","colA_v2","dim3","colA_v3","badge","colB_title","colB_v1","colB_v2","colB_v3","colC_title","colC_v1","colC_v2","colC_v3","footer","pageno"],"chart":false},"concept-hub":{"slots":["eyebrow","title","center_title","center_body","node1_title","node1_body","node2_title","node2_body","node3_title","node3_body","node4_title","node4_body","footer","pageno"],"chart":false},"cover-centered":{"slots":["eyebrow","title","subtitle","meta"],"chart":false},"cover-image":{"slots":["image_label","eyebrow","title","subtitle"],"chart":false},"cover-minimal":{"slots":["title","subtitle","meta"],"chart":false},"cover-statement":{"slots":["eyebrow","statement","meta"],"chart":false},"cover":{"slots":["eyebrow","title","subtitle","presenter","date"],"chart":false},"data-table":{"slots":["eyebrow","title","col0","col1","col2","col3","r1_key","r1c1","r1c2","r1c3","r2_key","r2c1","r2c2","r2c3","r3_key","r3c1","r3c2","r3c3","r4_key","r4c1","r4c2","r4c3","footer","pageno"],"chart":false},"dos-donts":{"slots":["eyebrow","do_head","do1","do2","do3","do4","dont_head","dont1","dont2","dont3","dont4","footer","pageno"],"chart":false},"editorial-panel":{"slots":["eyebrow","title","lead1","lead2","quote","quote_attr","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","list_title","list1","list2","list3","list4","note"],"chart":false},"ending-contact":{"slots":["eyebrow","title","email","phone","web","addr"],"chart":false},"ending":{"slots":["eyebrow","title","sub","contact"],"chart":false},"funnel":{"slots":["eyebrow","title","s1_label","s1_val","s2_label","s2_val","s3_label","s3_val","s4_label","s4_val","rate_label","rate","footer","pageno"],"chart":false},"gantt":{"slots":["eyebrow","title","footer","pageno"],"rows":{"cols":["label"],"tasks":["name","from","to"]},"chart":false},"hero":{"slots":["eyebrow","title","sub"],"chart":false},"icon-row":{"slots":["eyebrow","title","item1_title","item1_body","item2_title","item2_body","item3_title","item3_body","item4_title","item4_body","footer","pageno"],"chart":false},"image-full":{"slots":["image_label","eyebrow","title","caption","pageno"],"chart":false},"image-grid":{"slots":["eyebrow","title","img1_label","img1_title","img1_body","img2_label","img2_title","img2_body","img3_label","img3_title","img3_body","footer","pageno"],"chart":false},"image-left":{"slots":["eyebrow","title","image_label","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"list":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"logo-guidelines":{"slots":["eyebrow","title","wordmark","tagline","v1_label","v2_label","v3_label","footer","pageno"],"chart":false},"map-distribution":{"slots":["eyebrow","title","footer","pageno"],"rows":{"pins":["x","y"],"regions":["name","pct"]},"chart":false},"map-quad":{"slots":["title","q1_num","q1_unit","q1_label","q1_note","q2_num","q2_unit","q2_label","q2_note","q3_num","q3_unit","q3_label","q3_note","q4_num","q4_unit","q4_label","q4_note","footer","pageno"],"chart":false},"matrix-2x2":{"slots":["eyebrow","title","q1_title","q1_body","q2_title","q2_body","q3_title","q3_body","q4_title","q4_body","footer","pageno"],"chart":false},"numbered-brief":{"slots":["title","para1","para2","quote","source","right_title","item1_title","item2_title","item3_title","item4_title","source_label","source_note","pageno"],"chart":false},"org-tree":{"slots":["eyebrow","title","top","dept1_title","dept1_body","dept2_title","dept2_body","dept3_title","dept3_body","footer","pageno"],"chart":false},"problem-solution-banner":{"slots":["problem_label","problem_body","image_label","solution_body","solution_label"],"chart":false},"problem-solution":{"slots":["eyebrow","title","problem_title","problem_1","problem_2","problem_3","solution_title","solution_1","solution_2","solution_3","footer","pageno"],"chart":false},"pyramid":{"slots":["eyebrow","title","level1","level2","level3","level4","footer","pageno"],"chart":false},"quote-aside":{"slots":["quote","source","footer","pageno"],"chart":false},"quote":{"slots":["eyebrow","quote","source","footer","pageno"],"chart":false},"radar":{"slots":["eyebrow","title","footer","pageno"],"rows":{"metrics":["name","score"]},"chart":"derived"},"ring-progress":{"slots":["eyebrow","title","footer","pageno"],"rows":{"rings":["label","pct","note"]},"chart":false},"section-fullbleed":{"slots":["image_label","desc","index","title"],"chart":false},"section-image":{"slots":["index","eyebrow","title","desc","image_label","footer","pageno"],"chart":false},"section-stat":{"slots":["eyebrow","title","desc","stat","unit","stat_label","footer","pageno"],"chart":false},"section":{"slots":["index","eyebrow","title","desc","footer","pageno"],"chart":false},"split-two-col":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","image_label","footer","pageno"],"chart":false},"stats-chart":{"slots":["brand1","brand2","brand3","title","note"],"chart":true},"steps-serpentine":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","step5_title","step5_body","step6_title","step6_body","step7_title","step7_body","step8_title","step8_body"],"chart":false},"steps-vertical":{"slots":["eyebrow","title","footer","pageno"],"rows":{"steps":["name","body"]},"chart":false},"steps":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","footer","pageno"],"chart":false},"team-row":{"slots":["eyebrow","title","footer","pageno"],"rows":{"members":["name","role"]},"chart":false},"three-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_name","kpi1_desc","kpi2_num","kpi2_unit","kpi2_name","kpi2_desc","kpi3_num","kpi3_unit","kpi3_name","kpi3_desc","footer","pageno"],"chart":false},"timeline":{"slots":["eyebrow","title","item1_date","item1_title","item1_desc","item2_date","item2_title","item2_desc","item3_date","item3_title","item3_desc","item4_date","item4_title","item4_desc","footer","pageno"],"chart":false},"title-meta":{"slots":["index","eyebrow","title","subtitle","meta"],"chart":false},"title":{"slots":["eyebrow","title"],"chart":false},"toc-agenda":{"slots":["eyebrow","title","item1_title","item1_dur","item2_title","item2_dur","item3_title","item3_dur","item4_title","item4_dur","item5_title","item5_dur","footer","pageno"],"chart":false},"toc-editorial":{"slots":["item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","title","desc","footer","pageno"],"chart":false},"toc-panel":{"slots":["brand1","brand2","brand3","title"],"rows":{"entries":["name","desc"]},"chart":false},"toc":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"transition":{"slots":["eyebrow","number","title"],"chart":false},"two-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":false},"type-specimen":{"slots":["eyebrow","title","specimen","font_name","weights","heading_label","heading_sample","body_label","body_sample","charset","footer","pageno"],"chart":false},"versus":{"slots":["eyebrow","title","before_title","before_num","before_body","after_title","after_num","after_body","footer","pageno"],"chart":false}}
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/split-two-col — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
2
- <section class="slide" data-layout="split-two-col" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|CASE STUDY}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|论点 + 视觉}}</h2>
3
- <div style="position:absolute;left:96px;top:280px;width:520px;display:flex;flex-direction:column;gap:22px"><div class="card" style="position:relative;padding:22px 26px"><span class="card-rail" style="position:absolute;left:0;top:22px;width:3px;height:34px;border-radius:2px"></span><div class="card-title" style="font-size:20px;font-weight:700">{{card1_title|背景}}</div><p class="card-body" style="font-size:15px;line-height:1.6;margin-top:6px">{{card1_body|一句说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:22px 26px"><span class="card-rail" style="position:absolute;left:0;top:22px;width:3px;height:34px;border-radius:2px"></span><div class="card-title" style="font-size:20px;font-weight:700">{{card2_title|方案}}</div><p class="card-body" style="font-size:15px;line-height:1.6;margin-top:6px">{{card2_body|一句说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:22px 26px"><span class="card-rail" style="position:absolute;left:0;top:22px;width:3px;height:34px;border-radius:2px"></span><div class="card-title" style="font-size:20px;font-weight:700">{{card3_title|结果}}</div><p class="card-body" style="font-size:15px;line-height:1.6;margin-top:6px">{{card3_body|一句说明,替换为真实内容。}}</p></div></div><div class="surface" style="position:absolute;right:96px;top:280px;width:512px;height:320px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:15px">{{image_label|图片 / 图表占位}}</span></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="split-two-col" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|CASE STUDY}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|论点 + 视觉}}</h2>
3
+ <div style="position:absolute;left:calc(96px * var(--space-scale,1));top:280px;width:520px;display:flex;flex-direction:column;gap:22px"><div class="card" style="position:relative;padding:22px 26px"><span class="card-rail" style="position:absolute;left:0;top:22px;width:3px;height:34px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{card1_title|背景}}</div><p class="card-body" style="font-size:calc(15px * var(--type-scale,1));line-height:1.6;margin-top:6px">{{card1_body|一句说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:22px 26px"><span class="card-rail" style="position:absolute;left:0;top:22px;width:3px;height:34px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{card2_title|方案}}</div><p class="card-body" style="font-size:calc(15px * var(--type-scale,1));line-height:1.6;margin-top:6px">{{card2_body|一句说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:22px 26px"><span class="card-rail" style="position:absolute;left:0;top:22px;width:3px;height:34px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{card3_title|结果}}</div><p class="card-body" style="font-size:calc(15px * var(--type-scale,1));line-height:1.6;margin-top:6px">{{card3_body|一句说明,替换为真实内容。}}</p></div></div><div class="surface" style="position:absolute;right:calc(96px * var(--space-scale,1));top:280px;width:512px;height:320px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(15px * var(--type-scale,1))">{{image_label|图片 / 图表占位}}</span></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,8 +1,8 @@
1
1
  <!-- layouts/stats-chart — structure-only. role=content·data. 大标题+段落 + 深色面板内横向条形图. -->
2
2
  <section class="slide" data-layout="stats-chart" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
3
- <div class="toc-topbar" style="position:absolute;left:80px;right:80px;top:34px;display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:700"><span class="toc-brand">{{brand1|公司名称}}</span><span class="toc-brand">{{brand2|战略评审}}</span><span class="toc-brand">{{brand3|2026-03-15}}</span></div>
4
- <h1 class="cover-title" style="position:absolute;left:80px;top:96px;font-size:72px;letter-spacing:-1px">{{title|数据统计}}</h1>
5
- <p class="stat-note" style="position:absolute;left:82px;top:200px;width:1120px;font-size:18px;line-height:1.6">{{note|在此展开介绍所呈现的关键统计数据,用一到三句话说明数据来源、口径与要点,帮助读者快速理解图表含义。}}</p>
3
+ <div class="toc-topbar" style="position:absolute;left:80px;right:80px;top:34px;display:flex;justify-content:space-between;align-items:center;font-size:calc(15px * var(--type-scale,1));font-weight:700"><span class="toc-brand">{{brand1|公司名称}}</span><span class="toc-brand">{{brand2|战略评审}}</span><span class="toc-brand">{{brand3|2026-03-15}}</span></div>
4
+ <h1 class="cover-title" style="position:absolute;left:80px;top:96px;font-size:calc(72px * var(--type-scale,1));letter-spacing:-1px">{{title|数据统计}}</h1>
5
+ <p class="stat-note" style="position:absolute;left:82px;top:200px;width:1120px;font-size:calc(18px * var(--type-scale,1));line-height:1.6">{{note|在此展开介绍所呈现的关键统计数据,用一到三句话说明数据来源、口径与要点,帮助读者快速理解图表含义。}}</p>
6
6
  <div class="panel" style="position:absolute;left:80px;right:80px;top:320px;bottom:44px;border-radius:var(--card-radius);padding:36px 44px">
7
7
  <div class="chart" style="position:absolute;inset:36px 44px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"barH","labels":["条目一","条目二","条目三","条目四"],"series":[{"name":"数值","values":[20,30,36,50]}],"colors":["__CHART1__"],"axisColor":"__AXIS__"}'></div></div>
8
8
  </div>
@@ -1,19 +1,19 @@
1
1
  <!-- layouts/steps-serpentine — structure-only (paint via skin). 8 步二行蛇形流程:上排左→右,下排右→左,
2
2
  右侧一条弧线连接两排,用于步骤数超过单排 steps(3–5) 上限的场景。 -->
3
- <section class="slide" data-layout="steps-serpentine" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|WORKFLOW}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:44px;letter-spacing:-.4px">{{title|多阶段流程}}</h2>
3
+ <section class="slide" data-layout="steps-serpentine" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|WORKFLOW}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(44px * var(--type-scale,1));letter-spacing:-.4px">{{title|多阶段流程}}</h2>
4
4
  <svg width="1280" height="720" viewBox="0 0 1280 720" style="position:absolute;inset:0;pointer-events:none"><path d="M 1170 300 C 1230 300, 1230 460, 1170 460" fill="none" stroke="var(--hair)" stroke-width="1"/></svg>
5
5
  <div class="step-line" style="position:absolute;left:150px;right:150px;top:300px;height:1px"></div>
6
- <div class="steps" style="position:absolute;left:96px;right:96px;top:262px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px">
7
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9654;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step1_title|阶段 01}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step1_body|一句说明,替换为真实内容。}}</p></div>
8
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9654;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step2_title|阶段 02}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step2_body|一句说明,替换为真实内容。}}</p></div>
9
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9654;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step3_title|阶段 03}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step3_body|一句说明,替换为真实内容。}}</p></div>
10
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9654;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step4_title|阶段 04}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step4_body|一句说明,替换为真实内容。}}</p></div>
6
+ <div class="steps" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:262px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px">
7
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9654;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step1_title|阶段 01}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step1_body|一句说明,替换为真实内容。}}</p></div>
8
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9654;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step2_title|阶段 02}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step2_body|一句说明,替换为真实内容。}}</p></div>
9
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9654;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step3_title|阶段 03}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step3_body|一句说明,替换为真实内容。}}</p></div>
10
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9654;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step4_title|阶段 04}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step4_body|一句说明,替换为真实内容。}}</p></div>
11
11
  </div>
12
12
  <div class="step-line" style="position:absolute;left:150px;right:150px;top:460px;height:1px"></div>
13
- <div class="steps" style="position:absolute;left:96px;right:96px;top:422px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px">
14
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9664;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step5_title|阶段 05}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step5_body|一句说明,替换为真实内容。}}</p></div>
15
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9664;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step6_title|阶段 06}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step6_body|一句说明,替换为真实内容。}}</p></div>
16
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9664;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step7_title|阶段 07}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step7_body|一句说明,替换为真实内容。}}</p></div>
17
- <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px">&#9664;</div><div class="step-title" style="font-size:16px;font-weight:700;margin-top:18px">{{step8_title|阶段 08}}</div><p class="step-body" style="font-size:13px;margin-top:6px;line-height:1.5">{{step8_body|一句说明,替换为真实内容。}}</p></div>
13
+ <div class="steps" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:422px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px">
14
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9664;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step5_title|阶段 05}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step5_body|一句说明,替换为真实内容。}}</p></div>
15
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9664;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step6_title|阶段 06}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step6_body|一句说明,替换为真实内容。}}</p></div>
16
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9664;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step7_title|阶段 07}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step7_body|一句说明,替换为真实内容。}}</p></div>
17
+ <div class="step" style="text-align:center"><div class="step-circle" style="width:64px;height:64px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--type-scale,1))">&#9664;</div><div class="step-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;margin-top:18px">{{step8_title|阶段 08}}</div><p class="step-body" style="font-size:calc(13px * var(--type-scale,1));margin-top:6px;line-height:1.5">{{step8_body|一句说明,替换为真实内容。}}</p></div>
18
18
  </div>
19
19
  </section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/steps-vertical — structure-only variant (paint via skin). rows.steps{name,body} — the numbered circle uses the row index ({{_n}}); the connector line spans the list, so 3–5 steps all sit right. -->
2
- <section class="slide" data-layout="steps-vertical" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|PROCESS}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|实施步骤}}</h2>
3
- <div style="position:absolute;left:96px;right:96px;top:290px;display:flex;flex-direction:column;gap:20px"><div class="step-line" style="position:absolute;left:62px;top:41px;bottom:41px;width:2px"></div>{{#steps}}<div style="position:relative;display:flex;align-items:center;gap:28px;height:82px"><div class="step-circle" style="width:64px;height:64px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:26px;font-weight:700">{{_n|1}}</div><div><div class="step-title" style="font-size:21px;font-weight:700">{{name|占位步骤}}</div><p class="step-body" style="font-size:15px;line-height:1.5;margin-top:4px">{{body|一句说明,替换为真实内容。}}</p></div></div>{{/steps}}</div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="steps-vertical" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|PROCESS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|实施步骤}}</h2>
3
+ <div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:290px;display:flex;flex-direction:column;gap:20px"><div class="step-line" style="position:absolute;left:62px;top:41px;bottom:41px;width:2px"></div>{{#steps}}<div style="position:relative;display:flex;align-items:center;gap:28px;height:82px"><div class="step-circle" style="width:64px;height:64px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(26px * var(--type-scale,1));font-weight:700">{{_n|1}}</div><div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:700">{{name|占位步骤}}</div><p class="step-body" style="font-size:calc(15px * var(--type-scale,1));line-height:1.5;margin-top:4px">{{body|一句说明,替换为真实内容。}}</p></div></div>{{/steps}}</div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/steps — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
2
- <section class="slide" data-layout="steps" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|ROADMAP}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|实施路径}}</h2>
3
- <div class="step-line" style="position:absolute;left:150px;right:150px;top:392px;height:1px"></div><div class="steps" style="position:absolute;left:96px;right:96px;top:330px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px"><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:44px;font-weight:700">1</div><div class="step-tag" style="font-size:12px;letter-spacing:.18em;margin-top:22px">STEP 01</div><div class="step-title" style="font-size:21px;font-weight:600;margin-top:8px">{{step1_title|调研立项}}</div><p class="step-body" style="font-size:14px;margin-top:6px">{{step1_body|明确目标范围}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:44px;font-weight:700">2</div><div class="step-tag" style="font-size:12px;letter-spacing:.18em;margin-top:22px">STEP 02</div><div class="step-title" style="font-size:21px;font-weight:600;margin-top:8px">{{step2_title|方案设计}}</div><p class="step-body" style="font-size:14px;margin-top:6px">{{step2_body|拆解关键路径}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:44px;font-weight:700">3</div><div class="step-tag" style="font-size:12px;letter-spacing:.18em;margin-top:22px">STEP 03</div><div class="step-title" style="font-size:21px;font-weight:600;margin-top:8px">{{step3_title|试点落地}}</div><p class="step-body" style="font-size:14px;margin-top:6px">{{step3_body|小范围验证}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:44px;font-weight:700">4</div><div class="step-tag" style="font-size:12px;letter-spacing:.18em;margin-top:22px">STEP 04</div><div class="step-title" style="font-size:21px;font-weight:600;margin-top:8px">{{step4_title|全面推广}}</div><p class="step-body" style="font-size:14px;margin-top:6px">{{step4_body|复制成功经验}}</p></div></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="steps" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|ROADMAP}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|实施路径}}</h2>
3
+ <div class="step-line" style="position:absolute;left:150px;right:150px;top:392px;height:1px"></div><div class="steps" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:330px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px"><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">1</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 01</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step1_title|调研立项}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step1_body|明确目标范围}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">2</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 02</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step2_title|方案设计}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step2_body|拆解关键路径}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">3</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 03</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step3_title|试点落地}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step3_body|小范围验证}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">4</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 04</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step4_title|全面推广}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step4_body|复制成功经验}}</p></div></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,7 +1,7 @@
1
1
  <!-- layouts/team-row — structure-only (paint via skin). "团队成员":一排竖版人像槽 + 姓名(accent)+ 职位. rows.members{name,role} — 3–5 members share the row evenly. 图片槽 = .surface 占位(后填真图,同 image-grid 约定);姓名走 .team-name/职位 .team-role. data-layout drives P1/P2/P3 + dedup. -->
2
2
  <section class="slide" data-layout="team-row" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
3
- <div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|MEET OUR TEAM}}</span></div>
4
- <h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|团队成员}}</h2>
5
- <div style="position:absolute;left:96px;right:96px;top:262px;display:flex;gap:20px">{{#members}}<div style="flex:1"><div class="surface" style="height:300px;border-radius:var(--card-radius);display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:13px">人像 {{_nn|01}}</span></div><div class="team-name" style="font-size:18px;font-weight:800;margin-top:16px;letter-spacing:.02em">{{name|占位姓名 · NAME}}</div><div class="team-role" style="font-size:13px;margin-top:3px">{{role|职位 Job Position}}</div></div>{{/members}}</div>
6
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div>
3
+ <div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|MEET OUR TEAM}}</span></div>
4
+ <h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|团队成员}}</h2>
5
+ <div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:262px;display:flex;gap:20px">{{#members}}<div style="flex:1"><div class="surface" style="height:300px;border-radius:var(--card-radius);display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(13px * var(--type-scale,1))">人像 {{_nn|01}}</span></div><div class="team-name" style="font-size:calc(18px * var(--type-scale,1));font-weight:800;margin-top:16px;letter-spacing:.02em">{{name|占位姓名 · NAME}}</div><div class="team-role" style="font-size:calc(13px * var(--type-scale,1));margin-top:3px">{{role|职位 Job Position}}</div></div>{{/members}}</div>
6
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div>
7
7
  </section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/three-kpi — structure-only variant (paint via skin). reuses class contract, no skin change. -->
2
- <section class="slide" data-layout="three-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|KEY METRICS}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|三个关键指标}}</h2>
3
- <div style="position:absolute;left:96px;right:96px;top:300px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px"><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:92px;font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:32px">{{kpi1_unit| 单位}}</span></div><div class="kpi-label" style="font-size:15px;margin-top:12px;font-weight:600">{{kpi1_name|指标名}}</div><p class="card-body" style="font-size:14px;line-height:1.5;margin-top:6px">{{kpi1_desc|指标一,给上下文说明。}}</p></div><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:92px;font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:32px">{{kpi2_unit| %}}</span></div><div class="kpi-label" style="font-size:15px;margin-top:12px;font-weight:600">{{kpi2_name|指标名}}</div><p class="card-body" style="font-size:14px;line-height:1.5;margin-top:6px">{{kpi2_desc|指标二,给上下文说明。}}</p></div><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:92px;font-weight:800;line-height:1">{{kpi3_num|3.4}}<span class="stat-unit" style="font-size:32px">{{kpi3_unit| ×}}</span></div><div class="kpi-label" style="font-size:15px;margin-top:12px;font-weight:600">{{kpi3_name|指标名}}</div><p class="card-body" style="font-size:14px;line-height:1.5;margin-top:6px">{{kpi3_desc|指标三,给上下文说明。}}</p></div></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="three-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|KEY METRICS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|三个关键指标}}</h2>
3
+ <div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:300px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px"><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:calc(92px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:calc(32px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><div class="kpi-label" style="font-size:calc(15px * var(--type-scale,1));margin-top:12px;font-weight:600">{{kpi1_name|指标名}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi1_desc|指标一,给上下文说明。}}</p></div><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:calc(92px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:calc(32px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><div class="kpi-label" style="font-size:calc(15px * var(--type-scale,1));margin-top:12px;font-weight:600">{{kpi2_name|指标名}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi2_desc|指标二,给上下文说明。}}</p></div><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:calc(92px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi3_num|3.4}}<span class="stat-unit" style="font-size:calc(32px * var(--type-scale,1))">{{kpi3_unit| ×}}</span></div><div class="kpi-label" style="font-size:calc(15px * var(--type-scale,1));margin-top:12px;font-weight:600">{{kpi3_name|指标名}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi3_desc|指标三,给上下文说明。}}</p></div></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/timeline — structure-only variant (paint via skin; uses batch-5 classes). -->
2
- <section class="slide" data-layout="timeline" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|TIMELINE}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|关键里程碑}}</h2>
3
- <div class="step-line" style="position:absolute;left:170px;right:170px;top:396px;height:2px"></div><div style="position:absolute;left:96px;right:96px;top:298px;display:grid;grid-template-columns:repeat(4,1fr)"><div style="text-align:center"><div class="tl-date" style="font-size:34px;font-weight:800;line-height:1">{{item1_date|2022}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:19px;font-weight:700;margin-top:22px">{{item1_title|立项启动}}</div><p class="tl-desc" style="font-size:14px;line-height:1.5;margin-top:6px">{{item1_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:34px;font-weight:800;line-height:1">{{item2_date|2023}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:19px;font-weight:700;margin-top:22px">{{item2_title|试点验证}}</div><p class="tl-desc" style="font-size:14px;line-height:1.5;margin-top:6px">{{item2_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:34px;font-weight:800;line-height:1">{{item3_date|2024}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:19px;font-weight:700;margin-top:22px">{{item3_title|规模推广}}</div><p class="tl-desc" style="font-size:14px;line-height:1.5;margin-top:6px">{{item3_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:34px;font-weight:800;line-height:1">{{item4_date|2025}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:19px;font-weight:700;margin-top:22px">{{item4_title|全面落地}}</div><p class="tl-desc" style="font-size:14px;line-height:1.5;margin-top:6px">{{item4_desc|一句里程碑说明。}}</p></div></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="timeline" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|TIMELINE}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|关键里程碑}}</h2>
3
+ <div class="step-line" style="position:absolute;left:170px;right:170px;top:396px;height:2px"></div><div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:298px;display:grid;grid-template-columns:repeat(4,1fr)"><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item1_date|2022}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item1_title|立项启动}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item1_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item2_date|2023}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item2_title|试点验证}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item2_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item3_date|2024}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item3_title|规模推广}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item3_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item4_date|2025}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item4_title|全面落地}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item4_desc|一句里程碑说明。}}</p></div></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,8 +1,8 @@
1
1
  <!-- layouts/title-meta — structure-only. role=title (带副标题/日期/编号). -->
2
2
  <section class="slide" data-layout="title-meta" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
3
- <div class="section-ghost" style="position:absolute;right:80px;top:120px;font-weight:800;line-height:1;font-size:340px">{{index|01}}</div>
4
- <div class="eyebrow-row" style="position:absolute;left:96px;top:300px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:40px;height:3px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|SECTION · 01}}</span></div>
5
- <h1 class="cover-title" style="position:absolute;left:92px;top:336px;width:900px;font-size:74px;line-height:1.08;letter-spacing:-1px">{{title|篇章标题<br>可换两行}}</h1>
6
- <p class="cover-sub" style="position:absolute;left:96px;top:520px;width:820px;font-size:20px;line-height:1.5">{{subtitle|一句本篇导语 / 副标题,点出这一部分的主旨。}}</p>
7
- <div class="ending-contact" style="position:absolute;left:96px;bottom:44px;font-size:13px;letter-spacing:.14em">{{meta|2026 · 报告名称}}</div>
3
+ <div class="section-ghost" style="position:absolute;right:80px;top:120px;font-weight:800;line-height:1;font-size:calc(340px * var(--type-scale,1))">{{index|01}}</div>
4
+ <div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:300px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:40px;height:3px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|SECTION · 01}}</span></div>
5
+ <h1 class="cover-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:336px;width:900px;font-size:calc(74px * var(--type-scale,1));line-height:1.08;letter-spacing:-1px">{{title|篇章标题<br>可换两行}}</h1>
6
+ <p class="cover-sub" style="position:absolute;left:calc(96px * var(--space-scale,1));top:520px;width:820px;font-size:calc(20px * var(--type-scale,1));line-height:1.5">{{subtitle|一句本篇导语 / 副标题,点出这一部分的主旨。}}</p>
7
+ <div class="ending-contact" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:44px;font-size:calc(13px * var(--type-scale,1));letter-spacing:.14em">{{meta|2026 · 报告名称}}</div>
8
8
  </section>
@@ -1,6 +1,6 @@
1
1
  <!-- layouts/title — structure-only. role=title (内封/篇章大标题). -->
2
2
  <section class="slide" data-layout="title" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
3
- <div class="eyebrow" style="position:absolute;left:0;right:0;top:288px;text-align:center;font-size:15px;letter-spacing:.34em">{{eyebrow|PART ONE}}</div>
4
- <h1 class="cover-title" style="position:absolute;left:0;right:0;top:322px;text-align:center;font-size:92px;line-height:1.06;letter-spacing:-1px">{{title|标题页}}</h1>
3
+ <div class="eyebrow" style="position:absolute;left:0;right:0;top:288px;text-align:center;font-size:calc(15px * var(--type-scale,1));letter-spacing:.34em">{{eyebrow|PART ONE}}</div>
4
+ <h1 class="cover-title" style="position:absolute;left:0;right:0;top:322px;text-align:center;font-size:calc(92px * var(--type-scale,1));line-height:1.06;letter-spacing:-1px">{{title|标题页}}</h1>
5
5
  <div style="position:absolute;left:50%;top:472px;transform:translateX(-50%)"><span class="accent-bar" style="display:inline-block;width:72px;height:3px"></span></div>
6
6
  </section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/toc-agenda — structure-only variant (paint via skin). -->
2
- <section class="slide" data-layout="toc-agenda" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|议程 · AGENDA}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|议程}}</h2>
3
- <div style="position:absolute;left:96px;right:96px;top:258px;bottom:76px;display:flex;flex-direction:column;justify-content:space-between"><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:30px;font-weight:700">01</span><div class="toc-title" style="font-size:22px;font-weight:600;flex:1">{{item1_title|议程项标题}}</div><span class="toc-desc" style="font-size:14px">{{item1_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:30px;font-weight:700">02</span><div class="toc-title" style="font-size:22px;font-weight:600;flex:1">{{item2_title|议程项标题}}</div><span class="toc-desc" style="font-size:14px">{{item2_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:30px;font-weight:700">03</span><div class="toc-title" style="font-size:22px;font-weight:600;flex:1">{{item3_title|议程项标题}}</div><span class="toc-desc" style="font-size:14px">{{item3_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:30px;font-weight:700">04</span><div class="toc-title" style="font-size:22px;font-weight:600;flex:1">{{item4_title|议程项标题}}</div><span class="toc-desc" style="font-size:14px">{{item4_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:30px;font-weight:700">05</span><div class="toc-title" style="font-size:22px;font-weight:600;flex:1">{{item5_title|议程项标题}}</div><span class="toc-desc" style="font-size:14px">{{item5_dur|10 min}}</span></div></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="toc-agenda" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|议程 · AGENDA}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|议程}}</h2>
3
+ <div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:258px;bottom:76px;display:flex;flex-direction:column;justify-content:space-between"><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:calc(30px * var(--type-scale,1));font-weight:700">01</span><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600;flex:1">{{item1_title|议程项标题}}</div><span class="toc-desc" style="font-size:calc(14px * var(--type-scale,1))">{{item1_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:calc(30px * var(--type-scale,1));font-weight:700">02</span><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600;flex:1">{{item2_title|议程项标题}}</div><span class="toc-desc" style="font-size:calc(14px * var(--type-scale,1))">{{item2_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:calc(30px * var(--type-scale,1));font-weight:700">03</span><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600;flex:1">{{item3_title|议程项标题}}</div><span class="toc-desc" style="font-size:calc(14px * var(--type-scale,1))">{{item3_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:calc(30px * var(--type-scale,1));font-weight:700">04</span><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600;flex:1">{{item4_title|议程项标题}}</div><span class="toc-desc" style="font-size:calc(14px * var(--type-scale,1))">{{item4_dur|10 min}}</span></div><div class="toc-item" style="display:flex;gap:26px;align-items:center;padding:14px 0"><span class="toc-num" style="font-size:calc(30px * var(--type-scale,1));font-weight:700">05</span><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600;flex:1">{{item5_title|议程项标题}}</div><span class="toc-desc" style="font-size:calc(14px * var(--type-scale,1))">{{item5_dur|10 min}}</span></div></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -0,0 +1,15 @@
1
+ <!-- layouts/toc-editorial — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup.
2
+ Editorial TOC: 2x2 numbered briefs on the left, an oversized display title stack on the right.
3
+ Reuses the existing .toc-* contract (.toc-item carries its own hairline from the skin) — no new classes.
4
+ `slide-inverse` asks for the source template's light middle panel (dark skins flip the content
5
+ area, letterbox bars stay black). Skins that don't define it simply render the page normally. -->
6
+ <section class="slide slide-inverse" data-layout="toc-editorial" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
7
+ <div class="toc-grid" style="position:absolute;left:calc(96px * var(--space-scale,1));top:118px;width:648px;display:grid;grid-template-columns:1fr 1fr;gap:92px 60px">
8
+ <div class="toc-item" style="display:block;padding:18px 0 0"><div class="toc-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;letter-spacing:.01em;text-transform:uppercase">{{item1_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:9px;line-height:1.5">{{item1_desc|一句概述}}</div><div class="toc-num" style="font-size:calc(54px * var(--type-scale,1));font-weight:700;line-height:1;margin-top:26px;white-space:nowrap">01.</div></div>
9
+ <div class="toc-item" style="display:block;padding:18px 0 0"><div class="toc-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;letter-spacing:.01em;text-transform:uppercase">{{item2_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:9px;line-height:1.5">{{item2_desc|一句概述}}</div><div class="toc-num" style="font-size:calc(54px * var(--type-scale,1));font-weight:700;line-height:1;margin-top:26px;white-space:nowrap">02.</div></div>
10
+ <div class="toc-item" style="display:block;padding:18px 0 0"><div class="toc-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;letter-spacing:.01em;text-transform:uppercase">{{item3_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:9px;line-height:1.5">{{item3_desc|一句概述}}</div><div class="toc-num" style="font-size:calc(54px * var(--type-scale,1));font-weight:700;line-height:1;margin-top:26px;white-space:nowrap">03.</div></div>
11
+ <div class="toc-item" style="display:block;padding:18px 0 0"><div class="toc-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;letter-spacing:.01em;text-transform:uppercase">{{item4_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:9px;line-height:1.5">{{item4_desc|一句概述}}</div><div class="toc-num" style="font-size:calc(54px * var(--type-scale,1));font-weight:700;line-height:1;margin-top:26px;white-space:nowrap">04.</div></div>
12
+ </div>
13
+ <h2 class="deck-title" style="position:absolute;left:800px;right:calc(96px * var(--space-scale,1));top:98px;font-size:calc(76px * var(--type-scale,1));line-height:.94;letter-spacing:-.5px;text-transform:uppercase">{{title|目录}}</h2>
14
+ <div class="toc-desc" style="position:absolute;left:800px;right:calc(96px * var(--space-scale,1));top:340px;font-size:calc(14px * var(--type-scale,1));line-height:1.62;text-align:justify">{{desc|一段总述:这份内容覆盖的范围、读者能从中得到什么。}}</div>
15
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|02}}</div></section>
@@ -1,9 +1,9 @@
1
1
  <!-- layouts/toc-panel — structure-only. role=toc. 左大标题+插图 / 右深色面板目录. rows.entries{name,desc} — 3–5 chapters spread down the panel. -->
2
2
  <section class="slide" data-layout="toc-panel" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
3
- <div class="toc-topbar" style="position:absolute;left:80px;right:80px;top:34px;display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:700"><span class="toc-brand">{{brand1|公司名称}}</span><span class="toc-brand">{{brand2|战略评审}}</span><span class="toc-brand">{{brand3|2026-03-15}}</span></div>
4
- <div class="surface" style="position:absolute;left:96px;top:150px;width:300px;height:280px;display:flex;align-items:center;justify-content:center;border-radius:var(--card-radius)"><span class="surface-label" style="font-size:14px">插图占位</span></div>
5
- <h1 class="cover-title" style="position:absolute;left:92px;top:456px;font-size:76px;line-height:1.02;letter-spacing:-1px">{{title|目录}}</h1>
3
+ <div class="toc-topbar" style="position:absolute;left:80px;right:80px;top:34px;display:flex;justify-content:space-between;align-items:center;font-size:calc(15px * var(--type-scale,1));font-weight:700"><span class="toc-brand">{{brand1|公司名称}}</span><span class="toc-brand">{{brand2|战略评审}}</span><span class="toc-brand">{{brand3|2026-03-15}}</span></div>
4
+ <div class="surface" style="position:absolute;left:calc(96px * var(--space-scale,1));top:150px;width:300px;height:280px;display:flex;align-items:center;justify-content:center;border-radius:var(--card-radius)"><span class="surface-label" style="font-size:calc(14px * var(--type-scale,1))">插图占位</span></div>
5
+ <h1 class="cover-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:456px;font-size:calc(76px * var(--type-scale,1));line-height:1.02;letter-spacing:-1px">{{title|目录}}</h1>
6
6
  <div class="panel" style="position:absolute;left:700px;right:80px;top:96px;bottom:56px;border-radius:var(--card-radius);padding:56px 60px;display:flex;flex-direction:column;justify-content:space-between">
7
- {{#entries}}<div class="panel-item"><div class="panel-item-title" style="font-size:30px;font-weight:800;letter-spacing:.5px">{{name|占位章节}}</div><p class="panel-item-desc" style="font-size:19px;margin-top:8px">{{desc|简述本节要讨论的内容。}}</p></div>{{/entries}}
7
+ {{#entries}}<div class="panel-item"><div class="panel-item-title" style="font-size:calc(30px * var(--type-scale,1));font-weight:800;letter-spacing:.5px">{{name|占位章节}}</div><p class="panel-item-desc" style="font-size:calc(19px * var(--type-scale,1));margin-top:8px">{{desc|简述本节要讨论的内容。}}</p></div>{{/entries}}
8
8
  </div>
9
9
  </section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/toc — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
2
- <section class="slide" data-layout="toc" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|目录 · CONTENTS}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:52px;letter-spacing:-.4px">{{title|目录}}</h2>
3
- <div class="toc-grid" style="position:absolute;left:96px;right:96px;top:290px;display:grid;grid-template-columns:1fr 1fr;gap:0 72px"><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:32px;font-weight:700">01</span><div><div class="toc-title" style="font-size:22px;font-weight:600">{{item1_title|章节标题}}</div><div class="toc-desc" style="font-size:14px;margin-top:5px">{{item1_desc|一句概述}}</div></div></div><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:32px;font-weight:700">02</span><div><div class="toc-title" style="font-size:22px;font-weight:600">{{item2_title|章节标题}}</div><div class="toc-desc" style="font-size:14px;margin-top:5px">{{item2_desc|一句概述}}</div></div></div><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:32px;font-weight:700">03</span><div><div class="toc-title" style="font-size:22px;font-weight:600">{{item3_title|章节标题}}</div><div class="toc-desc" style="font-size:14px;margin-top:5px">{{item3_desc|一句概述}}</div></div></div><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:32px;font-weight:700">04</span><div><div class="toc-title" style="font-size:22px;font-weight:600">{{item4_title|章节标题}}</div><div class="toc-desc" style="font-size:14px;margin-top:5px">{{item4_desc|一句概述}}</div></div></div></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="toc" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|目录 · CONTENTS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(52px * var(--type-scale,1));letter-spacing:-.4px">{{title|目录}}</h2>
3
+ <div class="toc-grid" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:290px;display:grid;grid-template-columns:1fr 1fr;gap:0 72px"><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:calc(32px * var(--type-scale,1));font-weight:700">01</span><div><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600">{{item1_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:5px">{{item1_desc|一句概述}}</div></div></div><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:calc(32px * var(--type-scale,1));font-weight:700">02</span><div><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600">{{item2_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:5px">{{item2_desc|一句概述}}</div></div></div><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:calc(32px * var(--type-scale,1));font-weight:700">03</span><div><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600">{{item3_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:5px">{{item3_desc|一句概述}}</div></div></div><div class="toc-item" style="display:flex;gap:22px;align-items:baseline;padding:22px 0"><span class="toc-num" style="font-size:calc(32px * var(--type-scale,1));font-weight:700">04</span><div><div class="toc-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:600">{{item4_title|章节标题}}</div><div class="toc-desc" style="font-size:calc(14px * var(--type-scale,1));margin-top:5px">{{item4_desc|一句概述}}</div></div></div></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,2 +1,2 @@
1
1
  <!-- layouts/transition — structure-only. role=transition. reuse across chapter breaks. -->
2
- <section class="slide" data-layout="transition" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div style="position:absolute;left:0;right:0;top:264px;text-align:center"><span class="eyebrow-row" style="display:inline-flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.34em">{{eyebrow|NEXT · 下一章}}</span></span></div><h2 class="ending-title" style="position:absolute;left:0;right:0;top:302px;text-align:center;font-size:120px;letter-spacing:-2px">{{number|02}}</h2><div class="section-desc" style="position:absolute;left:0;right:0;top:492px;text-align:center;font-size:22px;font-weight:600">{{title|下一章标题}}</div></section>
2
+ <section class="slide" data-layout="transition" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div style="position:absolute;left:0;right:0;top:264px;text-align:center"><span class="eyebrow-row" style="display:inline-flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.34em">{{eyebrow|NEXT · 下一章}}</span></span></div><h2 class="ending-title" style="position:absolute;left:0;right:0;top:302px;text-align:center;font-size:calc(120px * var(--type-scale,1));letter-spacing:-2px">{{number|02}}</h2><div class="section-desc" style="position:absolute;left:0;right:0;top:492px;text-align:center;font-size:calc(22px * var(--type-scale,1));font-weight:600">{{title|下一章标题}}</div></section>
@@ -1,4 +1,4 @@
1
1
  <!-- layouts/two-kpi — structure-only variant (paint via skin). -->
2
- <section class="slide" data-layout="two-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|KEY METRICS}}</span></div><h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|两个关键指标}}</h2>
3
- <div style="position:absolute;left:96px;right:96px;top:320px;display:grid;grid-template-columns:1fr 1fr;gap:40px"><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:132px;font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:44px">{{kpi1_unit| 单位}}</span></div><p class="kpi-label" style="font-size:16px;margin-top:12px">{{kpi1_label|指标一说明,给上下文}}</p></div><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:132px;font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:44px">{{kpi2_unit| %}}</span></div><p class="kpi-label" style="font-size:16px;margin-top:12px">{{kpi2_label|指标二说明,给上下文}}</p></div></div>
4
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div></section>
2
+ <section class="slide" data-layout="two-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|KEY METRICS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|两个关键指标}}</h2>
3
+ <div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:320px;display:grid;grid-template-columns:1fr 1fr;gap:40px"><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:calc(132px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:calc(44px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><p class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:12px">{{kpi1_label|指标一说明,给上下文}}</p></div><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:calc(132px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:calc(44px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><p class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:12px">{{kpi2_label|指标二说明,给上下文}}</p></div></div>
4
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
@@ -1,18 +1,18 @@
1
1
  <!-- layouts/type-specimen — structure-only (paint via skin). 品牌手册"字体规范":左 大 Aa 范样 + 字体名 + 字重梯度;右 标题/正文范样 + 字符集. 全部复用既有 class(.deck-title 衬线大字 / .card-body / .surface / .rule). data-layout drives P1/P2/P3 + dedup. -->
2
2
  <section class="slide" data-layout="type-specimen" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
3
- <div class="eyebrow-row" style="position:absolute;left:96px;top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:13px;letter-spacing:.28em">{{eyebrow|TYPOGRAPHY}}</span></div>
4
- <h2 class="deck-title" style="position:absolute;left:92px;top:158px;font-size:48px;letter-spacing:-.4px">{{title|字体规范}}</h2>
3
+ <div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|TYPOGRAPHY}}</span></div>
4
+ <h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|字体规范}}</h2>
5
5
  <!-- left: Aa specimen -->
6
- <div class="surface" style="position:absolute;left:96px;top:264px;width:520px;bottom:92px;padding:36px 40px;display:flex;flex-direction:column;justify-content:center"><div class="deck-title" style="font-size:168px;line-height:.9;">{{specimen|Aa}}</div><div class="deck-title" style="font-size:24px;margin-top:22px">{{font_name|占位字体 · 衬线标题}}</div><div class="surface-label" style="font-size:14px;margin-top:8px;letter-spacing:.08em">{{weights|Regular · Medium · Bold}}</div></div>
6
+ <div class="surface" style="position:absolute;left:calc(96px * var(--space-scale,1));top:264px;width:520px;bottom:92px;padding:36px 40px;display:flex;flex-direction:column;justify-content:center"><div class="deck-title" style="font-size:calc(168px * var(--type-scale,1));line-height:.9;">{{specimen|Aa}}</div><div class="deck-title" style="font-size:calc(24px * var(--type-scale,1));margin-top:22px">{{font_name|占位字体 · 衬线标题}}</div><div class="surface-label" style="font-size:calc(14px * var(--type-scale,1));margin-top:8px;letter-spacing:.08em">{{weights|Regular · Medium · Bold}}</div></div>
7
7
  <!-- right: samples -->
8
- <div style="position:absolute;left:660px;right:96px;top:274px">
9
- <div class="surface-label" style="font-size:12px;letter-spacing:.2em">{{heading_label|HEADING · 标题}}</div>
10
- <div class="deck-title" style="font-size:40px;margin-top:6px">{{heading_sample|优雅、克制、有呼吸感}}</div>
8
+ <div style="position:absolute;left:660px;right:calc(96px * var(--space-scale,1));top:274px">
9
+ <div class="surface-label" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.2em">{{heading_label|HEADING · 标题}}</div>
10
+ <div class="deck-title" style="font-size:calc(40px * var(--type-scale,1));margin-top:6px">{{heading_sample|优雅、克制、有呼吸感}}</div>
11
11
  <div class="rule" style="height:1px;margin:22px 0"></div>
12
- <div class="surface-label" style="font-size:12px;letter-spacing:.2em">{{body_label|BODY · 正文}}</div>
13
- <p class="card-body" style="font-size:16px;line-height:1.8;margin-top:8px">{{body_sample|正文使用无衬线体,行距宽松、字重规整,保证长段落的可读性。标题用衬线、正文用无衬线,层级清晰,替换为真实内容。}}</p>
12
+ <div class="surface-label" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.2em">{{body_label|BODY · 正文}}</div>
13
+ <p class="card-body" style="font-size:calc(16px * var(--type-scale,1));line-height:1.8;margin-top:8px">{{body_sample|正文使用无衬线体,行距宽松、字重规整,保证长段落的可读性。标题用衬线、正文用无衬线,层级清晰,替换为真实内容。}}</p>
14
14
  <div class="rule" style="height:1px;margin:22px 0"></div>
15
- <div class="card-body" style="font-size:22px;letter-spacing:.04em">{{charset|A B C D E F G a b c d e f g 0 1 2 3 4 5 6 7 8 9}}</div>
15
+ <div class="card-body" style="font-size:calc(22px * var(--type-scale,1));letter-spacing:.04em">{{charset|A B C D E F G a b c d e f g 0 1 2 3 4 5 6 7 8 9}}</div>
16
16
  </div>
17
- <div class="rule rule-foot" style="position:absolute;left:96px;right:96px;bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:96px;bottom:17px;font-size:12px;letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:96px;bottom:17px;font-size:12px">{{pageno|01}}</div>
17
+ <div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div>
18
18
  </section>