@biunow/agent-biuvibe 0.0.0-stage → 1.0.0

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 (782) hide show
  1. package/bin/server.js +325 -0
  2. package/data/columns.json +230 -0
  3. package/engine/.claude/skills/weilanx-creator-blackgold-video/SKILL.md +116 -0
  4. package/engine/.claude/skills/weilanx-creator-blackgold-video/references//345/215/241/347/202/271/344/270/216/351/237/263/346/225/210.md +56 -0
  5. package/engine/.claude/skills/weilanx-creator-blackgold-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +68 -0
  6. package/engine/.claude/skills/weilanx-creator-blackgold-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +56 -0
  7. package/engine/.claude/skills/weilanx-creator-blackgold-video/references//351/200/211/351/242/230/344/270/216/350/204/232/346/234/254.md +59 -0
  8. package/engine/.claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs +98 -0
  9. package/engine/.claude/skills/weilanx-creator-blackgold-video/scripts/subtitles.mjs +53 -0
  10. package/engine/.claude/skills/weilanx-creator-desk-video/SKILL.md +124 -0
  11. package/engine/.claude/skills/weilanx-creator-desk-video/references//345/267/245/347/250/213/346/250/241/346/235/277.md +278 -0
  12. package/engine/.claude/skills/weilanx-creator-desk-video/references//347/224/273/351/235/242/351/205/215/346/226/271.md +94 -0
  13. package/engine/.claude/skills/weilanx-creator-distill-video/SKILL.md +98 -0
  14. package/engine/.claude/skills/weilanx-creator-distill-video/references//346/213/206/350/247/243/346/226/271/346/263/225.md +42 -0
  15. package/engine/.claude/skills/weilanx-creator-distill-video/references//351/205/215/346/226/271/345/215/241/346/250/241/346/235/277.md +66 -0
  16. package/engine/.claude/skills/weilanx-creator-distill-video/scripts/analyze.py +211 -0
  17. package/engine/.claude/skills/weilanx-creator-distill-video/scripts/strip.py +52 -0
  18. package/engine/.claude/skills/weilanx-creator-fps-video/SKILL.md +155 -0
  19. package/engine/.claude/skills/weilanx-creator-fps-video/references//345/215/241/347/202/271/344/270/216/351/237/263/346/225/210.md +82 -0
  20. package/engine/.claude/skills/weilanx-creator-fps-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +89 -0
  21. package/engine/.claude/skills/weilanx-creator-fps-video/references//346/225/260/346/215/256/345/244/215/347/233/230.md +36 -0
  22. package/engine/.claude/skills/weilanx-creator-fps-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +60 -0
  23. package/engine/.claude/skills/weilanx-creator-fps-video/references//351/200/211/351/242/230/344/270/216/345/217/231/344/272/213.md +61 -0
  24. package/engine/.claude/skills/weilanx-creator-fps-video/scripts/qa.mjs +94 -0
  25. package/engine/.claude/skills/weilanx-creator-fps-video/scripts/stats.py +57 -0
  26. package/engine/.claude/skills/weilanx-creator-fps-video/scripts/subtitle-doc.mjs +37 -0
  27. package/engine/.claude/skills/weilanx-creator-gilded-video/SKILL.md +102 -0
  28. package/engine/.claude/skills/weilanx-creator-gilded-video/references//345/217/231/344/272/213/344/270/216/345/255/227/345/271/225.md +64 -0
  29. package/engine/.claude/skills/weilanx-creator-gilded-video/references//347/224/273/351/235/242/344/270/216/350/275/254/345/234/272.md +80 -0
  30. package/engine/.claude/skills/weilanx-creator-gilded-video/references//351/205/215/344/271/220/344/270/216/345/215/241/347/202/271.md +56 -0
  31. package/engine/.claude/skills/weilanx-creator-gilded-video/scripts/beats.py +99 -0
  32. package/engine/.claude/skills/weilanx-creator-lamplight-video/SKILL.md +124 -0
  33. package/engine/.claude/skills/weilanx-creator-lamplight-video/references//345/217/231/344/272/213/344/270/216/345/215/241/347/202/271.md +90 -0
  34. package/engine/.claude/skills/weilanx-creator-lamplight-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +67 -0
  35. package/engine/.claude/skills/weilanx-creator-lamplight-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +57 -0
  36. package/engine/.claude/skills/weilanx-creator-lamplight-video/references//351/200/211/351/242/230/344/270/216/345/217/262/346/226/231.md +76 -0
  37. package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/beat_accents.py +45 -0
  38. package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/shot_frames.py +17 -0
  39. package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/subtitle_doc.py +29 -0
  40. package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/timeline_lib.py +57 -0
  41. package/engine/.claude/skills/weilanx-creator-pixel-video/SKILL.md +132 -0
  42. package/engine/.claude/skills/weilanx-creator-vox-video/SKILL.md +124 -0
  43. package/engine/.claude/skills/weilanx-creator-vox-video/references//347/224/273/351/235/242.md +63 -0
  44. package/engine/.claude/skills/weilanx-creator-vox-video/references//347/264/240/346/235/220.md +35 -0
  45. package/engine/.claude/skills/weilanx-creator-vox-video/references//350/257/255/346/260/224/344/270/216/345/206/231/347/250/277.md +43 -0
  46. package/engine/.claude/skills/weilanx-creator-vox-video/references//351/205/215/344/271/220.md +37 -0
  47. package/engine/.claude/skills/weilanx-creator-vox-video/scripts/commons.py +67 -0
  48. package/engine/.claude/skills/weilanx-creator-vox-video/scripts/tts_expressive.py +71 -0
  49. package/engine/.claude/skills/weilanx-creator-vox-video/scripts/voice_stats.py +54 -0
  50. package/engine/AGENTS.md +118 -0
  51. package/engine/CLAUDE.md +1 -0
  52. package/engine/LICENSE +21 -0
  53. package/engine/README.md +282 -0
  54. package/engine/README.zh-CN.md +282 -0
  55. package/engine/audio/bgm.mjs +191 -0
  56. package/engine/audio/episodes/ep00-demo.mjs +10 -0
  57. package/engine/audio/episodes/ep01-agent.mjs +22 -0
  58. package/engine/audio/episodes/ep02-llm.mjs +20 -0
  59. package/engine/audio/episodes/ep03-cc.mjs +19 -0
  60. package/engine/audio/episodes/ep04-opus55.mjs +15 -0
  61. package/engine/audio/episodes/ep05-token.mjs +18 -0
  62. package/engine/audio/episodes/ep06-context.mjs +16 -0
  63. package/engine/audio/episodes/ep07-agent.mjs +16 -0
  64. package/engine/audio/episodes/ep08-hallucination.mjs +15 -0
  65. package/engine/audio/episodes/ep09-prompt.mjs +16 -0
  66. package/engine/audio/episodes/ep10-multimodal.mjs +16 -0
  67. package/engine/audio/episodes/ep11-mcp.mjs +17 -0
  68. package/engine/audio/episodes/ep12-skill.mjs +16 -0
  69. package/engine/audio/episodes/ep13-subagent.mjs +17 -0
  70. package/engine/audio/episodes/ep14-agent-permission.mjs +16 -0
  71. package/engine/audio/episodes/ep15-prompt-injection.mjs +17 -0
  72. package/engine/audio/episodes/ep16-agent-done.mjs +16 -0
  73. package/engine/audio/episodes/ep17-sycophancy.mjs +16 -0
  74. package/engine/audio/episodes/ep18-ai-history.mjs +323 -0
  75. package/engine/audio/episodes/ep19-apple-history.mjs +311 -0
  76. package/engine/audio/episodes/ep20-nvidia-history.mjs +276 -0
  77. package/engine/audio/episodes/ep21-nobel-physics.mjs +151 -0
  78. package/engine/audio/episodes/ep22-nobel-chemistry.mjs +143 -0
  79. package/engine/audio/episodes/ep23-wheat-chessboard.mjs +23 -0
  80. package/engine/audio/episodes/ep24-birthday-paradox.mjs +25 -0
  81. package/engine/audio/episodes/ep25-behind-cover.mjs +11 -0
  82. package/engine/audio/episodes/ep26-opus-video.mjs +14 -0
  83. package/engine/audio/episodes/ep27-opus-video-full.mjs +17 -0
  84. package/engine/audio/episodes/ep28-express-relay.mjs +16 -0
  85. package/engine/audio/episodes/ep29-footsteps.mjs +14 -0
  86. package/engine/audio/episodes/ep30-tang-divorce.mjs +16 -0
  87. package/engine/audio/episodes/ep31-rigged.mjs +11 -0
  88. package/engine/audio/episodes/ep32-love-lasts.mjs +36 -0
  89. package/engine/audio/episodes/ep33-teammates.mjs +11 -0
  90. package/engine/audio/episodes/ep34-song-takeout.mjs +16 -0
  91. package/engine/audio/episodes/ep35-choke.mjs +11 -0
  92. package/engine/audio/episodes/ep36-boxed-pigs.mjs +43 -0
  93. package/engine/audio/episodes/ep37-bhop.mjs +11 -0
  94. package/engine/audio/episodes/ep38-butterfly.mjs +43 -0
  95. package/engine/audio/episodes/ep39-latency.mjs +11 -0
  96. package/engine/audio/episodes/ep40-counter-strafe.mjs +11 -0
  97. package/engine/audio/episodes/ep41-flying-money.mjs +16 -0
  98. package/engine/audio/episodes/ep42-tap-fire.mjs +11 -0
  99. package/engine/audio/episodes/ep43-one-more-game.mjs +11 -0
  100. package/engine/audio/episodes/ep45-callouts.mjs +11 -0
  101. package/engine/audio/episodes/ep46-song-ice.mjs +16 -0
  102. package/engine/audio/episodes/ep47-spotlight.mjs +11 -0
  103. package/engine/audio/episodes/ep48-jiggle-peek.mjs +11 -0
  104. package/engine/audio/episodes/ep49-ad-strafe.mjs +11 -0
  105. package/engine/audio/episodes/ep50-late-night.mjs +11 -0
  106. package/engine/audio/episodes/ep51-practice.mjs +11 -0
  107. package/engine/audio/episodes/library-halftone.mjs +32 -0
  108. package/engine/audio/music.mjs +45 -0
  109. package/engine/audio/score.mjs +209 -0
  110. package/engine/audio/sfx-lamplight.mjs +54 -0
  111. package/engine/audio/sfx-tactical.mjs +76 -0
  112. package/engine/audio/synth.mjs +510 -0
  113. package/engine/package-lock.json +5177 -0
  114. package/engine/package.json +26 -0
  115. package/engine/public/fonts/LICENSES.md +12 -0
  116. package/engine/public/fonts/ZCOOLKuaiLe-Regular.ttf +0 -0
  117. package/engine/public/fonts/vox/Anton-400.woff +0 -0
  118. package/engine/public/fonts/vox/Caveat-600.woff +0 -0
  119. package/engine/public/fonts/vox/EBGaramond-400.woff +0 -0
  120. package/engine/public/fonts/vox/EBGaramond-600.woff +0 -0
  121. package/engine/public/fonts/vox/LICENSES.md +10 -0
  122. package/engine/public/fonts/vox/NotoSansSC-900.woff +0 -0
  123. package/engine/public/fonts/vox/OFL.txt +94 -0
  124. package/engine/public/fonts/vox/PlayfairDisplay-700.woff +0 -0
  125. package/engine/public/fonts/vox/PlayfairDisplay-700i.woff +0 -0
  126. package/engine/public/music/README.md +16 -0
  127. package/engine/remotion.config.ts +5 -0
  128. package/engine/scripts/ep-dir.sh +49 -0
  129. package/engine/scripts/export.sh +28 -0
  130. package/engine/scripts/mix-stems.sh +17 -0
  131. package/engine/scripts/srt2json.mjs +29 -0
  132. package/engine/src/Root.tsx +244 -0
  133. package/engine/src/episodes/ep00-demo/Ep00Demo.tsx +97 -0
  134. package/engine/src/episodes/ep00-demo/components/AdjustPanel.tsx +68 -0
  135. package/engine/src/episodes/ep00-demo/components/Buddy.tsx +58 -0
  136. package/engine/src/episodes/ep00-demo/components/EditorUI.tsx +39 -0
  137. package/engine/src/episodes/ep00-demo/components/Icons.tsx +50 -0
  138. package/engine/src/episodes/ep00-demo/components/MediaPanel.tsx +129 -0
  139. package/engine/src/episodes/ep00-demo/components/Outro.tsx +123 -0
  140. package/engine/src/episodes/ep00-demo/components/Phone.tsx +88 -0
  141. package/engine/src/episodes/ep00-demo/components/SceneArt.tsx +196 -0
  142. package/engine/src/episodes/ep00-demo/components/Timeline.tsx +206 -0
  143. package/engine/src/episodes/ep00-demo/lib/buddy.ts +147 -0
  144. package/engine/src/episodes/ep00-demo/lib/camera.ts +55 -0
  145. package/engine/src/episodes/ep00-demo/lib/state.ts +231 -0
  146. package/engine/src/episodes/ep00-demo/lib/timeline.ts +98 -0
  147. package/engine/src/episodes/ep01-agent/Ep01Agent.tsx +16 -0
  148. package/engine/src/episodes/ep01-agent/cues.json +530 -0
  149. package/engine/src/episodes/ep01-agent/cues.ts +8 -0
  150. package/engine/src/episodes/ep01-agent/scenes/finale.tsx +174 -0
  151. package/engine/src/episodes/ep01-agent/scenes/index.ts +28 -0
  152. package/engine/src/episodes/ep01-agent/scenes/intro.tsx +235 -0
  153. package/engine/src/episodes/ep01-agent/scenes/loop.tsx +284 -0
  154. package/engine/src/episodes/ep01-agent/scenes/safety.tsx +249 -0
  155. package/engine/src/episodes/ep01-agent/scenes/setup.tsx +250 -0
  156. package/engine/src/episodes/ep02-llm/Ep02Llm.tsx +17 -0
  157. package/engine/src/episodes/ep02-llm/cues.json +254 -0
  158. package/engine/src/episodes/ep02-llm/cues.ts +5 -0
  159. package/engine/src/episodes/ep02-llm/scenes/index.ts +21 -0
  160. package/engine/src/episodes/ep02-llm/scenes/part1.tsx +444 -0
  161. package/engine/src/episodes/ep02-llm/scenes/part2.tsx +303 -0
  162. package/engine/src/episodes/ep03-cc/Ep03Cc.tsx +30 -0
  163. package/engine/src/episodes/ep03-cc/cues.json +692 -0
  164. package/engine/src/episodes/ep03-cc/cues.ts +5 -0
  165. package/engine/src/episodes/ep03-cc/scenes/aroll.tsx +265 -0
  166. package/engine/src/episodes/ep03-cc/scenes/broll1.tsx +343 -0
  167. package/engine/src/episodes/ep03-cc/scenes/broll2.tsx +571 -0
  168. package/engine/src/episodes/ep03-cc/scenes/index.ts +30 -0
  169. package/engine/src/episodes/ep04-opus55/Ep04Opus55.tsx +30 -0
  170. package/engine/src/episodes/ep04-opus55/cues.json +368 -0
  171. package/engine/src/episodes/ep04-opus55/cues.ts +5 -0
  172. package/engine/src/episodes/ep04-opus55/scenes/index.ts +25 -0
  173. package/engine/src/episodes/ep04-opus55/scenes/part1.tsx +487 -0
  174. package/engine/src/episodes/ep04-opus55/scenes/part2.tsx +282 -0
  175. package/engine/src/episodes/ep05-token/Ep05Token.tsx +32 -0
  176. package/engine/src/episodes/ep05-token/cues.json +314 -0
  177. package/engine/src/episodes/ep05-token/cues.ts +5 -0
  178. package/engine/src/episodes/ep05-token/scenes/index.ts +22 -0
  179. package/engine/src/episodes/ep05-token/scenes/part1.tsx +355 -0
  180. package/engine/src/episodes/ep05-token/scenes/part2.tsx +385 -0
  181. package/engine/src/episodes/ep06-context/Ep06Context.tsx +32 -0
  182. package/engine/src/episodes/ep06-context/Ep06ContextTall.tsx +35 -0
  183. package/engine/src/episodes/ep06-context/cues.json +332 -0
  184. package/engine/src/episodes/ep06-context/cues.ts +5 -0
  185. package/engine/src/episodes/ep06-context/scenes/index.ts +20 -0
  186. package/engine/src/episodes/ep06-context/scenes/part1.tsx +360 -0
  187. package/engine/src/episodes/ep06-context/scenes/part2.tsx +256 -0
  188. package/engine/src/episodes/ep06-context/tall/Cover.tsx +69 -0
  189. package/engine/src/episodes/ep06-context/tall/index.ts +20 -0
  190. package/engine/src/episodes/ep06-context/tall/part1.tsx +374 -0
  191. package/engine/src/episodes/ep06-context/tall/part2.tsx +272 -0
  192. package/engine/src/episodes/ep07-agent/Ep07Agent.tsx +32 -0
  193. package/engine/src/episodes/ep07-agent/Ep07AgentTall.tsx +35 -0
  194. package/engine/src/episodes/ep07-agent/cues.json +302 -0
  195. package/engine/src/episodes/ep07-agent/cues.ts +5 -0
  196. package/engine/src/episodes/ep07-agent/scenes/index.ts +18 -0
  197. package/engine/src/episodes/ep07-agent/scenes/part1.tsx +307 -0
  198. package/engine/src/episodes/ep07-agent/scenes/part2.tsx +188 -0
  199. package/engine/src/episodes/ep07-agent/tall/Cover.tsx +59 -0
  200. package/engine/src/episodes/ep07-agent/tall/index.ts +18 -0
  201. package/engine/src/episodes/ep07-agent/tall/part1.tsx +306 -0
  202. package/engine/src/episodes/ep07-agent/tall/part2.tsx +187 -0
  203. package/engine/src/episodes/ep08-hallucination/Ep08Hallucination.tsx +32 -0
  204. package/engine/src/episodes/ep08-hallucination/Ep08HallucinationTall.tsx +35 -0
  205. package/engine/src/episodes/ep08-hallucination/cues.json +314 -0
  206. package/engine/src/episodes/ep08-hallucination/cues.ts +5 -0
  207. package/engine/src/episodes/ep08-hallucination/scenes/index.ts +19 -0
  208. package/engine/src/episodes/ep08-hallucination/scenes/part1.tsx +282 -0
  209. package/engine/src/episodes/ep08-hallucination/scenes/part2.tsx +246 -0
  210. package/engine/src/episodes/ep08-hallucination/tall/Cover.tsx +63 -0
  211. package/engine/src/episodes/ep08-hallucination/tall/index.ts +19 -0
  212. package/engine/src/episodes/ep08-hallucination/tall/part1.tsx +273 -0
  213. package/engine/src/episodes/ep08-hallucination/tall/part2.tsx +247 -0
  214. package/engine/src/episodes/ep09-prompt/Ep09Prompt.tsx +35 -0
  215. package/engine/src/episodes/ep09-prompt/cues.json +308 -0
  216. package/engine/src/episodes/ep09-prompt/cues.ts +5 -0
  217. package/engine/src/episodes/ep09-prompt/scenes/Cover.tsx +65 -0
  218. package/engine/src/episodes/ep09-prompt/scenes/index.ts +21 -0
  219. package/engine/src/episodes/ep09-prompt/scenes/part1.tsx +315 -0
  220. package/engine/src/episodes/ep09-prompt/scenes/part2.tsx +320 -0
  221. package/engine/src/episodes/ep10-multimodal/Ep10Multimodal.tsx +35 -0
  222. package/engine/src/episodes/ep10-multimodal/cues.json +308 -0
  223. package/engine/src/episodes/ep10-multimodal/cues.ts +5 -0
  224. package/engine/src/episodes/ep10-multimodal/scenes/Cover.tsx +53 -0
  225. package/engine/src/episodes/ep10-multimodal/scenes/index.ts +21 -0
  226. package/engine/src/episodes/ep10-multimodal/scenes/part1.tsx +343 -0
  227. package/engine/src/episodes/ep10-multimodal/scenes/part2.tsx +437 -0
  228. package/engine/src/episodes/ep11-mcp/Ep11Mcp.tsx +35 -0
  229. package/engine/src/episodes/ep11-mcp/cues.json +332 -0
  230. package/engine/src/episodes/ep11-mcp/cues.ts +5 -0
  231. package/engine/src/episodes/ep11-mcp/scenes/Cover.tsx +67 -0
  232. package/engine/src/episodes/ep11-mcp/scenes/index.ts +21 -0
  233. package/engine/src/episodes/ep11-mcp/scenes/part1.tsx +336 -0
  234. package/engine/src/episodes/ep11-mcp/scenes/part2.tsx +327 -0
  235. package/engine/src/episodes/ep12-skill/Ep12Skill.tsx +35 -0
  236. package/engine/src/episodes/ep12-skill/cues.json +332 -0
  237. package/engine/src/episodes/ep12-skill/cues.ts +5 -0
  238. package/engine/src/episodes/ep12-skill/scenes/Cover.tsx +55 -0
  239. package/engine/src/episodes/ep12-skill/scenes/index.ts +21 -0
  240. package/engine/src/episodes/ep12-skill/scenes/part1.tsx +368 -0
  241. package/engine/src/episodes/ep12-skill/scenes/part2.tsx +274 -0
  242. package/engine/src/episodes/ep13-subagent/Ep13Subagent.tsx +35 -0
  243. package/engine/src/episodes/ep13-subagent/cues.json +344 -0
  244. package/engine/src/episodes/ep13-subagent/cues.ts +5 -0
  245. package/engine/src/episodes/ep13-subagent/scenes/Cover.tsx +61 -0
  246. package/engine/src/episodes/ep13-subagent/scenes/index.ts +21 -0
  247. package/engine/src/episodes/ep13-subagent/scenes/part1.tsx +383 -0
  248. package/engine/src/episodes/ep13-subagent/scenes/part2.tsx +317 -0
  249. package/engine/src/episodes/ep14-agent-permission/Ep14AgentPermission.tsx +35 -0
  250. package/engine/src/episodes/ep14-agent-permission/cues.json +326 -0
  251. package/engine/src/episodes/ep14-agent-permission/cues.ts +5 -0
  252. package/engine/src/episodes/ep14-agent-permission/scenes/Cover.tsx +62 -0
  253. package/engine/src/episodes/ep14-agent-permission/scenes/index.ts +20 -0
  254. package/engine/src/episodes/ep14-agent-permission/scenes/part1.tsx +302 -0
  255. package/engine/src/episodes/ep14-agent-permission/scenes/part2.tsx +309 -0
  256. package/engine/src/episodes/ep15-prompt-injection/Ep15PromptInjection.tsx +35 -0
  257. package/engine/src/episodes/ep15-prompt-injection/cues.json +302 -0
  258. package/engine/src/episodes/ep15-prompt-injection/cues.ts +5 -0
  259. package/engine/src/episodes/ep15-prompt-injection/scenes/Cover.tsx +60 -0
  260. package/engine/src/episodes/ep15-prompt-injection/scenes/index.ts +20 -0
  261. package/engine/src/episodes/ep15-prompt-injection/scenes/part1.tsx +307 -0
  262. package/engine/src/episodes/ep15-prompt-injection/scenes/part2.tsx +253 -0
  263. package/engine/src/episodes/ep16-agent-done/Ep16AgentDone.tsx +35 -0
  264. package/engine/src/episodes/ep16-agent-done/cues.json +320 -0
  265. package/engine/src/episodes/ep16-agent-done/cues.ts +5 -0
  266. package/engine/src/episodes/ep16-agent-done/scenes/Cover.tsx +66 -0
  267. package/engine/src/episodes/ep16-agent-done/scenes/index.ts +19 -0
  268. package/engine/src/episodes/ep16-agent-done/scenes/part1.tsx +271 -0
  269. package/engine/src/episodes/ep16-agent-done/scenes/part2.tsx +253 -0
  270. package/engine/src/episodes/ep17-sycophancy/Ep17Sycophancy.tsx +35 -0
  271. package/engine/src/episodes/ep17-sycophancy/cues.json +320 -0
  272. package/engine/src/episodes/ep17-sycophancy/cues.ts +5 -0
  273. package/engine/src/episodes/ep17-sycophancy/scenes/Cover.tsx +60 -0
  274. package/engine/src/episodes/ep17-sycophancy/scenes/index.ts +19 -0
  275. package/engine/src/episodes/ep17-sycophancy/scenes/part1.tsx +236 -0
  276. package/engine/src/episodes/ep17-sycophancy/scenes/part2.tsx +250 -0
  277. package/engine/src/episodes/ep18-ai-history/Cover.tsx +60 -0
  278. package/engine/src/episodes/ep18-ai-history/CoverTall.tsx +29 -0
  279. package/engine/src/episodes/ep18-ai-history/Ep18AiHistory.tsx +27 -0
  280. package/engine/src/episodes/ep18-ai-history/art.tsx +141 -0
  281. package/engine/src/episodes/ep18-ai-history/cues.json +626 -0
  282. package/engine/src/episodes/ep18-ai-history/cues.ts +5 -0
  283. package/engine/src/episodes/ep18-ai-history/film.tsx +910 -0
  284. package/engine/src/episodes/ep18-ai-history/scrapbook.tsx +762 -0
  285. package/engine/src/episodes/ep18-ai-history/timeline.ts +63 -0
  286. package/engine/src/episodes/ep19-apple-history/Cover.tsx +45 -0
  287. package/engine/src/episodes/ep19-apple-history/CoverTall.tsx +29 -0
  288. package/engine/src/episodes/ep19-apple-history/Ep19AppleHistory.tsx +27 -0
  289. package/engine/src/episodes/ep19-apple-history/art.tsx +302 -0
  290. package/engine/src/episodes/ep19-apple-history/cues.json +470 -0
  291. package/engine/src/episodes/ep19-apple-history/cues.ts +5 -0
  292. package/engine/src/episodes/ep19-apple-history/film.tsx +1245 -0
  293. package/engine/src/episodes/ep19-apple-history/timeline.ts +82 -0
  294. package/engine/src/episodes/ep20-nvidia-history/Cover.tsx +46 -0
  295. package/engine/src/episodes/ep20-nvidia-history/CoverTall.tsx +30 -0
  296. package/engine/src/episodes/ep20-nvidia-history/Ep20NvidiaHistory.tsx +27 -0
  297. package/engine/src/episodes/ep20-nvidia-history/art.tsx +244 -0
  298. package/engine/src/episodes/ep20-nvidia-history/cues.json +482 -0
  299. package/engine/src/episodes/ep20-nvidia-history/cues.ts +5 -0
  300. package/engine/src/episodes/ep20-nvidia-history/film.tsx +1088 -0
  301. package/engine/src/episodes/ep20-nvidia-history/timeline.ts +78 -0
  302. package/engine/src/episodes/ep21-nobel-physics/Cover.tsx +75 -0
  303. package/engine/src/episodes/ep21-nobel-physics/Ep21NobelPhysics.tsx +27 -0
  304. package/engine/src/episodes/ep21-nobel-physics/cues.json +218 -0
  305. package/engine/src/episodes/ep21-nobel-physics/cues.ts +5 -0
  306. package/engine/src/episodes/ep21-nobel-physics/film.tsx +627 -0
  307. package/engine/src/episodes/ep22-nobel-chemistry/Cover.tsx +64 -0
  308. package/engine/src/episodes/ep22-nobel-chemistry/Ep22NobelChemistry.tsx +27 -0
  309. package/engine/src/episodes/ep22-nobel-chemistry/cues.json +212 -0
  310. package/engine/src/episodes/ep22-nobel-chemistry/cues.ts +5 -0
  311. package/engine/src/episodes/ep22-nobel-chemistry/film.tsx +563 -0
  312. package/engine/src/episodes/ep23-wheat-chessboard/Ep23Wheat.tsx +322 -0
  313. package/engine/src/episodes/ep23-wheat-chessboard/timeline.ts +89 -0
  314. package/engine/src/episodes/ep24-birthday-paradox/Cover.tsx +53 -0
  315. package/engine/src/episodes/ep24-birthday-paradox/Ep24Birthday.tsx +233 -0
  316. package/engine/src/episodes/ep24-birthday-paradox/ring.tsx +164 -0
  317. package/engine/src/episodes/ep24-birthday-paradox/scenes.tsx +460 -0
  318. package/engine/src/episodes/ep24-birthday-paradox/timeline.ts +216 -0
  319. package/engine/src/episodes/ep25-behind-cover/Ep25Cover.tsx +306 -0
  320. package/engine/src/episodes/ep25-behind-cover/scenes.tsx +416 -0
  321. package/engine/src/episodes/ep25-behind-cover/timeline.ts +209 -0
  322. package/engine/src/episodes/ep26-opus-video/Cover.tsx +18 -0
  323. package/engine/src/episodes/ep26-opus-video/Ep26OpusVideo.tsx +53 -0
  324. package/engine/src/episodes/ep26-opus-video/cues.json +140 -0
  325. package/engine/src/episodes/ep26-opus-video/cues.ts +6 -0
  326. package/engine/src/episodes/ep26-opus-video/scenes.tsx +301 -0
  327. package/engine/src/episodes/ep27-opus-video-full/Cover.tsx +18 -0
  328. package/engine/src/episodes/ep27-opus-video-full/Ep27OpusVideoFull.tsx +65 -0
  329. package/engine/src/episodes/ep27-opus-video-full/assets.ts +36 -0
  330. package/engine/src/episodes/ep27-opus-video-full/cues.json +860 -0
  331. package/engine/src/episodes/ep27-opus-video-full/cues.ts +6 -0
  332. package/engine/src/episodes/ep27-opus-video-full/scenes/index.tsx +730 -0
  333. package/engine/src/episodes/ep27-opus-video-full/scenes/kit.tsx +334 -0
  334. package/engine/src/episodes/ep28-express-relay/CoverTall.tsx +98 -0
  335. package/engine/src/episodes/ep28-express-relay/Ep28Relay.tsx +453 -0
  336. package/engine/src/episodes/ep28-express-relay/scenes.tsx +2 -0
  337. package/engine/src/episodes/ep28-express-relay/timeline.ts +261 -0
  338. package/engine/src/episodes/ep29-footsteps/Ep29Footsteps.tsx +328 -0
  339. package/engine/src/episodes/ep29-footsteps/scenes.tsx +418 -0
  340. package/engine/src/episodes/ep29-footsteps/timeline.ts +250 -0
  341. package/engine/src/episodes/ep30-tang-divorce/CoverTall.tsx +85 -0
  342. package/engine/src/episodes/ep30-tang-divorce/Ep30Divorce.tsx +453 -0
  343. package/engine/src/episodes/ep30-tang-divorce/timeline.ts +235 -0
  344. package/engine/src/episodes/ep31-rigged/Ep31Rigged.tsx +334 -0
  345. package/engine/src/episodes/ep31-rigged/scenes.tsx +175 -0
  346. package/engine/src/episodes/ep31-rigged/timeline.ts +273 -0
  347. package/engine/src/episodes/ep32-love-lasts/Ep32Love.tsx +228 -0
  348. package/engine/src/episodes/ep32-love-lasts/scenes.tsx +219 -0
  349. package/engine/src/episodes/ep32-love-lasts/timeline.ts +165 -0
  350. package/engine/src/episodes/ep33-teammates/Ep33Teammates.tsx +304 -0
  351. package/engine/src/episodes/ep33-teammates/scenes.tsx +395 -0
  352. package/engine/src/episodes/ep33-teammates/timeline.ts +239 -0
  353. package/engine/src/episodes/ep34-song-takeout/CoverTall.tsx +70 -0
  354. package/engine/src/episodes/ep34-song-takeout/Ep34Takeout.tsx +362 -0
  355. package/engine/src/episodes/ep34-song-takeout/timeline.ts +219 -0
  356. package/engine/src/episodes/ep35-choke/Ep35Choke.tsx +318 -0
  357. package/engine/src/episodes/ep35-choke/scenes.tsx +252 -0
  358. package/engine/src/episodes/ep35-choke/timeline.ts +230 -0
  359. package/engine/src/episodes/ep36-boxed-pigs/CoverTall.tsx +65 -0
  360. package/engine/src/episodes/ep36-boxed-pigs/Ep36Pigs.tsx +519 -0
  361. package/engine/src/episodes/ep36-boxed-pigs/scenes.tsx +18 -0
  362. package/engine/src/episodes/ep36-boxed-pigs/timeline.ts +192 -0
  363. package/engine/src/episodes/ep37-bhop/Ep37Bhop.tsx +379 -0
  364. package/engine/src/episodes/ep37-bhop/scenes.tsx +166 -0
  365. package/engine/src/episodes/ep37-bhop/timeline.ts +232 -0
  366. package/engine/src/episodes/ep38-butterfly/CoverTall.tsx +55 -0
  367. package/engine/src/episodes/ep38-butterfly/Ep38Butterfly.tsx +434 -0
  368. package/engine/src/episodes/ep38-butterfly/timeline.ts +218 -0
  369. package/engine/src/episodes/ep39-latency/Ep39Latency.tsx +461 -0
  370. package/engine/src/episodes/ep39-latency/scenes.tsx +194 -0
  371. package/engine/src/episodes/ep39-latency/timeline.ts +248 -0
  372. package/engine/src/episodes/ep40-counter-strafe/Ep40CounterStrafe.tsx +410 -0
  373. package/engine/src/episodes/ep40-counter-strafe/scenes.tsx +124 -0
  374. package/engine/src/episodes/ep40-counter-strafe/timeline.ts +277 -0
  375. package/engine/src/episodes/ep41-flying-money/CoverTall.tsx +50 -0
  376. package/engine/src/episodes/ep41-flying-money/Ep41FlyingMoney.tsx +447 -0
  377. package/engine/src/episodes/ep41-flying-money/timeline.ts +239 -0
  378. package/engine/src/episodes/ep42-tap-fire/Ep42TapFire.tsx +376 -0
  379. package/engine/src/episodes/ep42-tap-fire/scenes.tsx +174 -0
  380. package/engine/src/episodes/ep42-tap-fire/timeline.ts +262 -0
  381. package/engine/src/episodes/ep43-one-more-game/Ep43OneMoreGame.tsx +376 -0
  382. package/engine/src/episodes/ep43-one-more-game/scenes.tsx +202 -0
  383. package/engine/src/episodes/ep43-one-more-game/timeline.ts +241 -0
  384. package/engine/src/episodes/ep45-callouts/Ep45Callouts.tsx +435 -0
  385. package/engine/src/episodes/ep45-callouts/scenes.tsx +170 -0
  386. package/engine/src/episodes/ep45-callouts/timeline.ts +260 -0
  387. package/engine/src/episodes/ep46-song-ice/CoverTall.tsx +51 -0
  388. package/engine/src/episodes/ep46-song-ice/Ep46SongIce.tsx +414 -0
  389. package/engine/src/episodes/ep46-song-ice/scenes.tsx +172 -0
  390. package/engine/src/episodes/ep46-song-ice/timeline.ts +257 -0
  391. package/engine/src/episodes/ep47-spotlight/Ep47Spotlight.tsx +416 -0
  392. package/engine/src/episodes/ep47-spotlight/scenes.tsx +146 -0
  393. package/engine/src/episodes/ep47-spotlight/timeline.ts +272 -0
  394. package/engine/src/episodes/ep48-jiggle-peek/Ep48JigglePeek.tsx +468 -0
  395. package/engine/src/episodes/ep48-jiggle-peek/scenes.tsx +86 -0
  396. package/engine/src/episodes/ep48-jiggle-peek/timeline.ts +264 -0
  397. package/engine/src/episodes/ep49-ad-strafe/Ep49AdStrafe.tsx +392 -0
  398. package/engine/src/episodes/ep49-ad-strafe/scenes.tsx +89 -0
  399. package/engine/src/episodes/ep49-ad-strafe/timeline.ts +266 -0
  400. package/engine/src/episodes/ep50-late-night/Ep50LateNight.tsx +380 -0
  401. package/engine/src/episodes/ep50-late-night/scenes.tsx +161 -0
  402. package/engine/src/episodes/ep50-late-night/timeline.ts +253 -0
  403. package/engine/src/episodes/ep51-practice/Ep51Practice.tsx +402 -0
  404. package/engine/src/episodes/ep51-practice/scenes.tsx +122 -0
  405. package/engine/src/episodes/ep51-practice/timeline.ts +241 -0
  406. package/engine/src/index.ts +4 -0
  407. package/engine/src/library/README.md +205 -0
  408. package/engine/src/library/Show.tsx +107 -0
  409. package/engine/src/library/Subtitles.tsx +105 -0
  410. package/engine/src/library/anim.ts +49 -0
  411. package/engine/src/library/blackgold/chaos.tsx +203 -0
  412. package/engine/src/library/blackgold/charts.tsx +578 -0
  413. package/engine/src/library/blackgold/pen.tsx +331 -0
  414. package/engine/src/library/blackgold/props.tsx +176 -0
  415. package/engine/src/library/blackgold/stage.tsx +262 -0
  416. package/engine/src/library/blackgold/theme.ts +62 -0
  417. package/engine/src/library/character/Accessories.tsx +172 -0
  418. package/engine/src/library/character/Arm.tsx +16 -0
  419. package/engine/src/library/character/BuddyFigure.tsx +127 -0
  420. package/engine/src/library/character/Char.tsx +71 -0
  421. package/engine/src/library/character/PixelBuddy.tsx +150 -0
  422. package/engine/src/library/character/types.ts +2 -0
  423. package/engine/src/library/cues.ts +49 -0
  424. package/engine/src/library/editor-room/canvas.tsx +264 -0
  425. package/engine/src/library/editor-room/mascots.tsx +92 -0
  426. package/engine/src/library/editor-room/stage.tsx +400 -0
  427. package/engine/src/library/editor-room/theme.ts +66 -0
  428. package/engine/src/library/fonts.ts +24 -0
  429. package/engine/src/library/fx.tsx +233 -0
  430. package/engine/src/library/gilded/charts.tsx +283 -0
  431. package/engine/src/library/gilded/props.tsx +245 -0
  432. package/engine/src/library/gilded/stage.tsx +312 -0
  433. package/engine/src/library/gilded/theme.ts +62 -0
  434. package/engine/src/library/halftone/props.tsx +332 -0
  435. package/engine/src/library/halftone/stage.tsx +435 -0
  436. package/engine/src/library/halftone/suspect.tsx +86 -0
  437. package/engine/src/library/halftone/theme.ts +71 -0
  438. package/engine/src/library/icons.tsx +318 -0
  439. package/engine/src/library/items/apps.tsx +161 -0
  440. package/engine/src/library/items/media.tsx +80 -0
  441. package/engine/src/library/items/objects.tsx +252 -0
  442. package/engine/src/library/lamplight/charts.tsx +530 -0
  443. package/engine/src/library/lamplight/ice.tsx +401 -0
  444. package/engine/src/library/lamplight/props.tsx +1072 -0
  445. package/engine/src/library/lamplight/scenes.tsx +187 -0
  446. package/engine/src/library/lamplight/stage.tsx +451 -0
  447. package/engine/src/library/lamplight/theme.ts +81 -0
  448. package/engine/src/library/previews/BlackGoldDemo.tsx +195 -0
  449. package/engine/src/library/previews/EditorRoomDemo.tsx +190 -0
  450. package/engine/src/library/previews/GildedDemo.tsx +185 -0
  451. package/engine/src/library/previews/HalftoneDemo.tsx +426 -0
  452. package/engine/src/library/previews/LamplightDemo.tsx +202 -0
  453. package/engine/src/library/previews/PixelWardrobe.tsx +39 -0
  454. package/engine/src/library/previews/TacticalDemo.tsx +280 -0
  455. package/engine/src/library/previews/Wardrobe.tsx +49 -0
  456. package/engine/src/library/previews/WarmDeskDemo.tsx +291 -0
  457. package/engine/src/library/previews/WarmDeskShowDemo.tsx +79 -0
  458. package/engine/src/library/sets/Studio.tsx +164 -0
  459. package/engine/src/library/tactical/attention.tsx +340 -0
  460. package/engine/src/library/tactical/charts.tsx +373 -0
  461. package/engine/src/library/tactical/hearing.tsx +189 -0
  462. package/engine/src/library/tactical/movement.tsx +163 -0
  463. package/engine/src/library/tactical/pipeline.tsx +236 -0
  464. package/engine/src/library/tactical/practice.tsx +84 -0
  465. package/engine/src/library/tactical/range.tsx +338 -0
  466. package/engine/src/library/tactical/ranked.tsx +267 -0
  467. package/engine/src/library/tactical/reward.tsx +204 -0
  468. package/engine/src/library/tactical/sleep.tsx +90 -0
  469. package/engine/src/library/tactical/spread.tsx +200 -0
  470. package/engine/src/library/tactical/stage.tsx +379 -0
  471. package/engine/src/library/tactical/theme.ts +48 -0
  472. package/engine/src/library/tactical/tracking.tsx +146 -0
  473. package/engine/src/library/tactical/vectors.tsx +161 -0
  474. package/engine/src/library/tactical/window.tsx +93 -0
  475. package/engine/src/library/theme.ts +55 -0
  476. package/engine/src/library/types.ts +11 -0
  477. package/engine/src/library/ui.tsx +137 -0
  478. package/engine/src/library/vox/CoverTall.tsx +92 -0
  479. package/engine/src/library/vox/VoxShow.tsx +136 -0
  480. package/engine/src/library/vox/desk.tsx +31 -0
  481. package/engine/src/library/vox/footage.tsx +74 -0
  482. package/engine/src/library/vox/hud.tsx +51 -0
  483. package/engine/src/library/vox/portrait.tsx +80 -0
  484. package/engine/src/library/vox/props.tsx +256 -0
  485. package/engine/src/library/vox/shots.tsx +66 -0
  486. package/engine/src/library/vox/stickers.tsx +132 -0
  487. package/engine/src/library/vox/theme.ts +77 -0
  488. package/engine/src/library/warm-desk/CoverTall.tsx +111 -0
  489. package/engine/src/library/warm-desk/DeskShow.tsx +127 -0
  490. package/engine/src/library/warm-desk/HostCam.tsx +30 -0
  491. package/engine/src/library/warm-desk/Slot.tsx +67 -0
  492. package/engine/src/library/warm-desk/immersive.tsx +105 -0
  493. package/engine/src/library/warm-desk/mascot.tsx +48 -0
  494. package/engine/src/library/warm-desk/motifs.tsx +277 -0
  495. package/engine/src/library/warm-desk/props.tsx +318 -0
  496. package/engine/src/library/warm-desk/stage.tsx +268 -0
  497. package/engine/src/library/warm-desk/theme.ts +83 -0
  498. package/engine/styles/LICENSE-huashu-art-motion +21 -0
  499. package/engine/styles/README.md +143 -0
  500. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/346/211/213/347/273/230/351/243/216/README.md +18 -0
  501. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/346/211/213/347/273/230/351/243/216//351/242/204/350/247/210.jpg +0 -0
  502. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/350/264/264/347/272/270/351/243/216/README.md +37 -0
  503. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/350/264/264/347/272/270/351/243/216//351/242/204/350/247/210.jpg +0 -0
  504. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/215/217/344/275/234/345/211/252/350/276/221/345/217/260/351/243/216/README.md +59 -0
  505. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/215/217/344/275/234/345/211/252/350/276/221/345/217/260/351/243/216//351/242/204/350/247/210.jpg +0 -0
  506. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216/README.md +64 -0
  507. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216//347/210/206/346/254/276/350/247/243/346/236/220.md +62 -0
  508. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216//351/242/204/350/247/210.jpg +0 -0
  509. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/226/347/272/270/345/267/245/344/275/234/345/217/260/351/243/216/README.md +54 -0
  510. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/226/347/272/270/345/267/245/344/275/234/345/217/260/351/243/216//351/242/204/350/247/210.jpg +0 -0
  511. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/227/351/207/221/346/226/207/347/214/256/351/243/216/README.md +30 -0
  512. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/227/351/207/221/346/226/207/347/214/256/351/243/216//351/242/204/350/247/210.jpg +0 -0
  513. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/201/257/347/201/253/345/217/262/350/257/235/351/243/216/README.md +55 -0
  514. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/201/257/347/201/253/345/217/262/350/257/235/351/243/216//351/242/204/350/247/210.jpg +0 -0
  515. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/237/242/351/207/217/346/211/213/347/273/230/351/243/216/README.md +19 -0
  516. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/237/242/351/207/217/346/211/213/347/273/230/351/243/216//351/242/204/350/247/210.jpg +0 -0
  517. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/275/221/347/202/271/346/241/243/346/241/210/351/243/216/README.md +50 -0
  518. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/275/221/347/202/271/346/241/243/346/241/210/351/243/216//351/242/204/350/247/210.jpg +0 -0
  519. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//351/273/221/351/207/221/345/205/211/345/275/261/351/243/216/README.md +70 -0
  520. package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//351/273/221/351/207/221/345/205/211/345/275/261/351/243/216//351/242/204/350/247/210.jpg +0 -0
  521. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +364 -0
  522. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//351/205/215/346/226/271/345/215/241.md +46 -0
  523. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//351/242/204/350/247/210.jpg +0 -0
  524. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +524 -0
  525. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//351/205/215/346/226/271/345/215/241.md +64 -0
  526. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//351/242/204/350/247/210.jpg +0 -0
  527. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//345/234/272/346/231/257/344/273/243/347/240/201.js +448 -0
  528. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//351/205/215/346/226/271/345/215/241.md +50 -0
  529. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//351/242/204/350/247/210.jpg +0 -0
  530. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//345/234/272/346/231/257/344/273/243/347/240/201.js +555 -0
  531. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//351/205/215/346/226/271/345/215/241.md +99 -0
  532. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//351/242/204/350/247/210.jpg +0 -0
  533. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//345/234/272/346/231/257/344/273/243/347/240/201.js +522 -0
  534. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//351/205/215/346/226/271/345/215/241.md +32 -0
  535. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//351/242/204/350/247/210.jpg +0 -0
  536. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//345/234/272/346/231/257/344/273/243/347/240/201.js +273 -0
  537. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//351/205/215/346/226/271/345/215/241.md +50 -0
  538. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//351/242/204/350/247/210.jpg +0 -0
  539. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +215 -0
  540. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//351/205/215/346/226/271/345/215/241.md +49 -0
  541. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//351/242/204/350/247/210.jpg +0 -0
  542. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//345/234/272/346/231/257/344/273/243/347/240/201.js +195 -0
  543. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//351/205/215/346/226/271/345/215/241.md +40 -0
  544. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//351/242/204/350/247/210.jpg +0 -0
  545. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//345/234/272/346/231/257/344/273/243/347/240/201.js +338 -0
  546. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//351/205/215/346/226/271/345/215/241.md +41 -0
  547. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//351/242/204/350/247/210.jpg +0 -0
  548. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//345/234/272/346/231/257/344/273/243/347/240/201.js +217 -0
  549. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//351/205/215/346/226/271/345/215/241.md +29 -0
  550. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//351/242/204/350/247/210.jpg +0 -0
  551. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//345/234/272/346/231/257/344/273/243/347/240/201.js +206 -0
  552. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//351/205/215/346/226/271/345/215/241.md +34 -0
  553. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//351/242/204/350/247/210.jpg +0 -0
  554. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//345/234/272/346/231/257/344/273/243/347/240/201.js +183 -0
  555. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//351/205/215/346/226/271/345/215/241.md +17 -0
  556. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//351/242/204/350/247/210.jpg +0 -0
  557. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//345/234/272/346/231/257/344/273/243/347/240/201.js +176 -0
  558. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//351/205/215/346/226/271/345/215/241.md +39 -0
  559. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//351/242/204/350/247/210.jpg +0 -0
  560. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//345/234/272/346/231/257/344/273/243/347/240/201.js +104 -0
  561. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//351/205/215/346/226/271/345/215/241.md +31 -0
  562. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//351/242/204/350/247/210.jpg +0 -0
  563. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//345/234/272/346/231/257/344/273/243/347/240/201.js +334 -0
  564. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//351/205/215/346/226/271/345/215/241.md +31 -0
  565. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//351/242/204/350/247/210.jpg +0 -0
  566. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//345/234/272/346/231/257/344/273/243/347/240/201.js +265 -0
  567. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//351/205/215/346/226/271/345/215/241.md +30 -0
  568. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//351/242/204/350/247/210.jpg +0 -0
  569. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//345/234/272/346/231/257/344/273/243/347/240/201.js +214 -0
  570. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//351/205/215/346/226/271/345/215/241.md +30 -0
  571. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//351/242/204/350/247/210.jpg +0 -0
  572. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//345/234/272/346/231/257/344/273/243/347/240/201.js +227 -0
  573. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//351/205/215/346/226/271/345/215/241.md +37 -0
  574. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//351/242/204/350/247/210.jpg +0 -0
  575. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//345/234/272/346/231/257/344/273/243/347/240/201.js +153 -0
  576. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//351/205/215/346/226/271/345/215/241.md +42 -0
  577. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//351/242/204/350/247/210.jpg +0 -0
  578. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//345/234/272/346/231/257/344/273/243/347/240/201.js +205 -0
  579. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//351/205/215/346/226/271/345/215/241.md +35 -0
  580. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//351/242/204/350/247/210.jpg +0 -0
  581. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//345/234/272/346/231/257/344/273/243/347/240/201.js +221 -0
  582. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//351/205/215/346/226/271/345/215/241.md +29 -0
  583. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//351/242/204/350/247/210.jpg +0 -0
  584. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//345/234/272/346/231/257/344/273/243/347/240/201.js +150 -0
  585. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//351/205/215/346/226/271/345/215/241.md +30 -0
  586. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//351/242/204/350/247/210.jpg +0 -0
  587. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//345/234/272/346/231/257/344/273/243/347/240/201.js +151 -0
  588. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//351/205/215/346/226/271/345/215/241.md +26 -0
  589. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//351/242/204/350/247/210.jpg +0 -0
  590. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//345/234/272/346/231/257/344/273/243/347/240/201.js +123 -0
  591. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//351/205/215/346/226/271/345/215/241.md +25 -0
  592. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//351/242/204/350/247/210.jpg +0 -0
  593. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//345/234/272/346/231/257/344/273/243/347/240/201.js +269 -0
  594. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//351/205/215/346/226/271/345/215/241.md +29 -0
  595. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//351/242/204/350/247/210.jpg +0 -0
  596. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//345/234/272/346/231/257/344/273/243/347/240/201.js +124 -0
  597. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//351/205/215/346/226/271/345/215/241.md +32 -0
  598. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//351/242/204/350/247/210.jpg +0 -0
  599. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//345/234/272/346/231/257/344/273/243/347/240/201.js +255 -0
  600. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//351/205/215/346/226/271/345/215/241.md +30 -0
  601. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//351/242/204/350/247/210.jpg +0 -0
  602. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//345/234/272/346/231/257/344/273/243/347/240/201.js +109 -0
  603. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//351/205/215/346/226/271/345/215/241.md +22 -0
  604. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//351/242/204/350/247/210.jpg +0 -0
  605. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +565 -0
  606. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//351/205/215/346/226/271/345/215/241.md +55 -0
  607. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//351/242/204/350/247/210.jpg +0 -0
  608. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//345/234/272/346/231/257/344/273/243/347/240/201.js +251 -0
  609. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//351/205/215/346/226/271/345/215/241.md +31 -0
  610. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//351/242/204/350/247/210.jpg +0 -0
  611. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//345/234/272/346/231/257/344/273/243/347/240/201.js +219 -0
  612. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//351/205/215/346/226/271/345/215/241.md +31 -0
  613. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//351/242/204/350/247/210.jpg +0 -0
  614. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//345/234/272/346/231/257/344/273/243/347/240/201.js +197 -0
  615. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//351/205/215/346/226/271/345/215/241.md +34 -0
  616. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//351/242/204/350/247/210.jpg +0 -0
  617. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//345/234/272/346/231/257/344/273/243/347/240/201.js +238 -0
  618. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//351/205/215/346/226/271/345/215/241.md +27 -0
  619. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//351/242/204/350/247/210.jpg +0 -0
  620. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//345/234/272/346/231/257/344/273/243/347/240/201.js +300 -0
  621. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//351/205/215/346/226/271/345/215/241.md +32 -0
  622. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//351/242/204/350/247/210.jpg +0 -0
  623. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//345/234/272/346/231/257/344/273/243/347/240/201.js +191 -0
  624. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//351/205/215/346/226/271/345/215/241.md +27 -0
  625. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//351/242/204/350/247/210.jpg +0 -0
  626. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//345/216/237/347/211/210/346/200/273/347/264/242/345/274/225.md +47 -0
  627. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//350/275/254/345/234/272_/350/277/201/347/247/273/346/265/213/350/257/225.md +53 -0
  628. package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//351/237/263/350/275/250_/350/211/272/346/234/257/345/217/262/351/200/237/351/200/232.md +135 -0
  629. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//345/217/202/346/225/260/347/244/272/344/276/213.json +20 -0
  630. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/211/207/346/256/265/344/273/243/347/240/201.js +197 -0
  631. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +11 -0
  632. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s1.js +101 -0
  633. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s2.js +74 -0
  634. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s3.js +65 -0
  635. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//350/257/255/346/263/225/345/215/241.md +114 -0
  636. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//351/242/204/350/247/210.jpg +0 -0
  637. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//345/217/202/346/225/260/347/244/272/344/276/213.json +18 -0
  638. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/211/207/346/256/265/344/273/243/347/240/201.js +143 -0
  639. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
  640. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/244/272/350/214/203/345/267/245/347/250/213/kurzgesagt.js +347 -0
  641. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//350/257/255/346/263/225/345/215/241.md +183 -0
  642. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//351/242/204/350/247/210.jpg +0 -0
  643. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//345/217/202/346/225/260/347/244/272/344/276/213.json +17 -0
  644. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/211/207/346/256/265/344/273/243/347/240/201.js +206 -0
  645. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
  646. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/244/272/350/214/203/345/267/245/347/250/213/whiteboard.js +162 -0
  647. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//350/257/255/346/263/225/345/215/241.md +182 -0
  648. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//351/242/204/350/247/210.jpg +0 -0
  649. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//345/217/202/346/225/260/347/244/272/344/276/213.json +17 -0
  650. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/211/207/346/256/265/344/273/243/347/240/201.js +243 -0
  651. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
  652. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s1.js +57 -0
  653. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s2.js +70 -0
  654. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s3.js +61 -0
  655. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//350/257/255/346/263/225/345/215/241.md +109 -0
  656. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//351/242/204/350/247/210.jpg +0 -0
  657. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//345/217/202/346/225/260/347/244/272/344/276/213.json +27 -0
  658. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/211/207/346/256/265/344/273/243/347/240/201.js +174 -0
  659. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +11 -0
  660. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s1.js +48 -0
  661. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s2.js +42 -0
  662. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s3.js +51 -0
  663. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//350/257/255/346/263/225/345/215/241.md +107 -0
  664. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//351/242/204/350/247/210.jpg +0 -0
  665. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
  666. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/211/207/346/256/265/344/273/243/347/240/201.js +141 -0
  667. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
  668. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/244/272/350/214/203/345/267/245/347/250/213/vox.js +240 -0
  669. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//350/257/255/346/263/225/345/215/241.md +185 -0
  670. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//351/242/204/350/247/210.jpg +0 -0
  671. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
  672. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/211/207/346/256/265/344/273/243/347/240/201.js +168 -0
  673. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +14 -0
  674. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s1_desk.js +18 -0
  675. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s2_screen.js +82 -0
  676. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s3_react.js +39 -0
  677. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s4_wide.js +16 -0
  678. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s5_close.js +18 -0
  679. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/story.js +25 -0
  680. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/vo_env.js +2 -0
  681. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/world.js +73 -0
  682. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//350/257/255/346/263/225/345/215/241.md +166 -0
  683. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//351/242/204/350/247/210.jpg +0 -0
  684. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
  685. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/211/207/346/256/265/344/273/243/347/240/201.js +126 -0
  686. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +16 -0
  687. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k1_title.js +38 -0
  688. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k2_complete.js +55 -0
  689. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k3_chat.js +47 -0
  690. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k4_agent.js +49 -0
  691. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/kinetic.js +52 -0
  692. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//350/257/255/346/263/225/345/215/241.md +150 -0
  693. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//351/242/204/350/247/210.jpg +0 -0
  694. package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y6_presenter_explainer_/350/256/262/350/247/243/345/221/230//350/257/255/346/263/225/345/215/241.md +24 -0
  695. package/engine/tests/episodes/ep00-demo.test.ts +69 -0
  696. package/engine/tests/episodes/ep01-agent-cues.test.ts +25 -0
  697. package/engine/tests/episodes/ep01-agent-scenes.test.ts +25 -0
  698. package/engine/tests/episodes/ep02-llm.test.ts +31 -0
  699. package/engine/tests/episodes/ep03-cc.test.ts +24 -0
  700. package/engine/tests/episodes/ep04-opus55.test.ts +24 -0
  701. package/engine/tests/episodes/ep05-token.test.ts +24 -0
  702. package/engine/tests/episodes/ep06-context.test.ts +24 -0
  703. package/engine/tests/episodes/ep07-agent.test.ts +24 -0
  704. package/engine/tests/episodes/ep08-hallucination.test.ts +24 -0
  705. package/engine/tests/episodes/ep09-prompt.test.ts +24 -0
  706. package/engine/tests/episodes/ep10-multimodal.test.ts +24 -0
  707. package/engine/tests/episodes/ep11-mcp.test.ts +24 -0
  708. package/engine/tests/episodes/ep12-skill.test.ts +24 -0
  709. package/engine/tests/episodes/ep13-subagent.test.ts +24 -0
  710. package/engine/tests/episodes/ep14-agent-permission.test.ts +24 -0
  711. package/engine/tests/episodes/ep15-prompt-injection.test.ts +24 -0
  712. package/engine/tests/episodes/ep16-agent-done.test.ts +24 -0
  713. package/engine/tests/episodes/ep17-sycophancy.test.ts +24 -0
  714. package/engine/tests/episodes/ep18-ai-history.test.ts +19 -0
  715. package/engine/tests/episodes/ep19-apple-history.test.ts +19 -0
  716. package/engine/tests/episodes/ep20-nvidia-history.test.ts +19 -0
  717. package/engine/tests/episodes/ep21-nobel-physics.test.ts +19 -0
  718. package/engine/tests/episodes/ep22-nobel-chemistry.test.ts +19 -0
  719. package/engine/tests/episodes/ep23-wheat-chessboard.test.ts +55 -0
  720. package/engine/tests/episodes/ep24-birthday-paradox.test.ts +140 -0
  721. package/engine/tests/episodes/ep25-behind-cover.test.ts +83 -0
  722. package/engine/tests/episodes/ep26-opus-video.test.ts +39 -0
  723. package/engine/tests/episodes/ep27-opus-video-full.test.ts +51 -0
  724. package/engine/tests/episodes/ep28-express-relay.test.ts +107 -0
  725. package/engine/tests/episodes/ep29-footsteps.test.ts +101 -0
  726. package/engine/tests/episodes/ep30-tang-divorce.test.ts +101 -0
  727. package/engine/tests/episodes/ep31-rigged.test.ts +108 -0
  728. package/engine/tests/episodes/ep32-love-lasts.test.ts +104 -0
  729. package/engine/tests/episodes/ep33-teammates.test.ts +113 -0
  730. package/engine/tests/episodes/ep34-song-takeout.test.ts +98 -0
  731. package/engine/tests/episodes/ep35-choke.test.ts +109 -0
  732. package/engine/tests/episodes/ep36-boxed-pigs.test.ts +98 -0
  733. package/engine/tests/episodes/ep37-bhop.test.ts +114 -0
  734. package/engine/tests/episodes/ep38-butterfly.test.ts +118 -0
  735. package/engine/tests/episodes/ep39-latency.test.ts +150 -0
  736. package/engine/tests/episodes/ep40-counter-strafe.test.ts +145 -0
  737. package/engine/tests/episodes/ep41-flying-money.test.ts +97 -0
  738. package/engine/tests/episodes/ep42-tap-fire.test.ts +137 -0
  739. package/engine/tests/episodes/ep43-one-more-game.test.ts +129 -0
  740. package/engine/tests/episodes/ep45-callouts.test.ts +150 -0
  741. package/engine/tests/episodes/ep46-song-ice.test.ts +117 -0
  742. package/engine/tests/episodes/ep47-spotlight.test.ts +159 -0
  743. package/engine/tests/episodes/ep48-jiggle-peek.test.ts +154 -0
  744. package/engine/tests/episodes/ep49-ad-strafe.test.ts +139 -0
  745. package/engine/tests/episodes/ep50-late-night.test.ts +156 -0
  746. package/engine/tests/episodes/ep51-practice.test.ts +117 -0
  747. package/engine/tests/library/anim.test.ts +37 -0
  748. package/engine/tests/library/bgm.test.ts +29 -0
  749. package/engine/tests/library/blackgold.test.ts +37 -0
  750. package/engine/tests/library/halftone.test.ts +40 -0
  751. package/engine/tests/library/lamplight.test.ts +60 -0
  752. package/engine/tests/library/srt.test.ts +13 -0
  753. package/engine/tests/library/subtitles.test.ts +12 -0
  754. package/engine/tests/library/synth.test.ts +29 -0
  755. package/engine/tests/library/tactical.test.ts +37 -0
  756. package/engine/tests/library/warm-desk.test.ts +25 -0
  757. package/engine/tsconfig.json +15 -0
  758. package/engine/vitest.config.ts +3 -0
  759. package/lib/host.mjs +654 -0
  760. package/manifest.json +51 -0
  761. package/package.json +8 -4
  762. package/skills/biuvibe/SKILL.md +28 -0
  763. package/studio/app.js +258 -0
  764. package/studio/assert-panel-permit.mjs +67 -0
  765. package/studio/composer.css +438 -0
  766. package/studio/composer.js +307 -0
  767. package/studio/index.html +82 -0
  768. package/studio/select-menu.js +433 -0
  769. package/studio/styles.css +2 -0
  770. package/studio/thumbs/blackgold.jpg +0 -0
  771. package/studio/thumbs/desk.jpg +0 -0
  772. package/studio/thumbs/editor.jpg +0 -0
  773. package/studio/thumbs/fps.jpg +0 -0
  774. package/studio/thumbs/gilded.jpg +0 -0
  775. package/studio/thumbs/halftone.jpg +0 -0
  776. package/studio/thumbs/lamplight.jpg +0 -0
  777. package/studio/thumbs/pixel-hand.jpg +0 -0
  778. package/studio/thumbs/pixel-sticker.jpg +0 -0
  779. package/studio/thumbs/vector.jpg +0 -0
  780. package/studio/thumbs/vox-cut.jpg +0 -0
  781. package/studio/thumbs/vox-timeline.jpg +0 -0
  782. package/README.md +0 -3
@@ -0,0 +1,56 @@
1
+ # 配乐卡点与音效
2
+
3
+ ## we-never 网格(统一配乐,已授权 2026-10-11)
4
+
5
+ ```ts
6
+ export const BAR = (102.52 - 17.45) / 40; // 两个重拍相隔正好 40 小节,一小节约 2.127 秒
7
+ export const BAR0 = 17.45 - 8 * BAR; // 第 0 拍 ≈ 0.44 秒
8
+ export const BEAT = BAR / 4;
9
+ export const fbt = (b: number) => fr(BAR0 + BEAT * b); // 第 b 拍的帧
10
+ export const fb = (k: number) => fbt(4 * k); // 第 k 小节
11
+ HIT = fb(8) // 17.45 秒,第 32 拍
12
+ HIT2 = fb(48) // 102.52 秒,第 192 拍(配乐换气后整段重新进来)
13
+ DARK_FROM = fr(16.7); DARK_FROM2 = fr(101.75); FREEZE = 3
14
+ DURATION = fr(beatSec(256) + 1) // ≈ 137.5 秒
15
+ ```
16
+
17
+ ## 实测重音(测试里 ±2 帧核对)
18
+
19
+ | 段落 | 拍号 | 秒 |
20
+ |---|---|---|
21
+ | 开场第一组 | 0 / 5 / 7 / 8 | 0.44 / 3.09 / 4.16 / 4.69 |
22
+ | 开场第二组 | 11 / 13 / 15 / 16 | 6.28 / 7.35 / 8.41 / 8.94 |
23
+ | 回落段 11 下硬拍(10–15 dB 跳变) | 165 · 167 · 168 / 171 · 173 · 175 · 176 / 181 · 183 · 184 / 187 | 88.16 · 89.23 · 89.76 · 91.35 · 92.42 · 93.48 · 94.01 · 96.67 · 97.73 · 98.27 · 99.86 |
24
+ | 强拍(换镜头、关键数字) | 80 / 85 / 88 / 104 / 112 / 117 / 120 / 128 / 133 / 136 / 144 | — |
25
+
26
+ **硬拍一拍一个动作**:回落段 11 下,ep36 是「双数下按拉杆、单数下冲到食槽」,对账卡每下跳一次数;下一期按选题换成「出一次价」「亮一个人」「多一个旁观者」。
27
+
28
+ ## 重拍前后
29
+
30
+ - 重拍前约 0.75 秒(`DARK_FROM`)起整体收暗到 94% 黑(`pow(…, 0.7)`),最后 3 帧画面静止(`ff = min(f, HIT − FREEZE)`)。
31
+ - 重拍帧:标题 / 锚词 **+2 帧必须已经亮**(`SparkTitle instant`、`GlowSmash`)。
32
+ - 每小节第一拍整屏轻推 1.2%,两个重拍 4%(`barPunch`,从 `src/library/lamplight/scenes` 引;字幕在推的那层外面)。
33
+
34
+ ## 音效(`audio/episodes/<期>.mjs`,照 ep36)
35
+
36
+ `cutMusic({track: 'we-never', start: 0, duration: DURATION, ep, fadeIn: 0.02, fadeOut: 2})` 成功后 `makeTacticalSfx(EP)`(借 riser),再用 ffmpeg `aevalsrc` 合成本期的:
37
+
38
+ | 名字 | 用途 | 音量 |
39
+ |---|---|---|
40
+ | room | 极轻粉噪底噪,整片 | 0.5 |
41
+ | impact | 两个爆点、关键结论(第 8、32、120、152、192、216 拍) | 爆点 0.66–0.7,其余 0.4–0.45 |
42
+ | riser | 两个爆点前 2 秒 | 0.55–0.6 |
43
+ | chime | 数字亮起、天平落定、结论(落在强拍上) | 0.35–0.45 |
44
+ | **本期动作音** | 模型里的动作,卡开场四连和回落段硬拍。ep36:press 拉杆咔哒(0.5–0.7)、drop 食粒落槽碎响(0.45–0.6)、run 小碎步(0.6) | — |
45
+ | 共享 whoosh / paper | 换章、引文出现 | 0.22–0.3 |
46
+
47
+ 动作音按选题设计:拍卖 → 木槌 / 硬币;旁观者 → 心跳 / 呼救声的抽象音(不要真人声);天平 → 金属轻碰。合成后 `alimiter=limit=0.5` 压峰。
48
+
49
+ ## 响度自查
50
+
51
+ - 整片约 −15.5 LUFS(ep36 −15.4)、真峰值 ≤ −1 dBFS(ep36 −1.7)。超了找峰值所在 0.1 秒窗口,通常是 impact + 动作音 + 配乐重音叠在同一拍,压低或去掉 impact。
52
+ - 高频小音效(铃、碎响、咔哒)用 1.2–5 kHz 带通比前后能量,要高出 10 dB 以上;全频 RMS 会被配乐重音淹掉、量不准:
53
+ ```sh
54
+ ffmpeg -nostats -ss <秒> -t 0.2 -i a.wav -af "highpass=f=1200,lowpass=f=5000,volumedetect" -f null - 2>&1 | grep mean_volume
55
+ ```
56
+ - **听不到声音要如实说**,只报数字。
@@ -0,0 +1,68 @@
1
+ # 封面、发布文案、字幕稿
2
+
3
+ ## 3:4 封面(代码渲染)
4
+
5
+ 不用 AI 生图:中文一个字都不会错,画风和片子一致。照 `src/episodes/ep36-boxed-pigs/CoverTall.tsx`(1080×1440 的 `Still`):
6
+
7
+ - **上半标题字牌**:系列小字「黑金光影 · <领域>」(36px,灰,字距 12)→ 金色大标题(宋体 Black 176px,`#ffe9b0` + 多层金色光晕,和 `SparkTitle` 一致)→ 米白问句副题(92px,两行,关键词用青色发光)→ 红框钩子条(52px,一句戳痛点的话,不换行)。
8
+ - **下半主视觉**:把片中的舞台放进 `Stage`(1920×1080 舞台用 `left` / `top` / `scale` 裁进竖版),取最有戏的一刻(ep36:大猪甩汗奔跑 + 小猪趴着打呼)。动画帧取一个好看的固定值(`T = 47`)。
9
+ - **压暗层**:上半渐变压暗;底部一条压暗带。
10
+ - **底部一行结论数字**:灰色说明 + Garamond 大号金字(ep36「跑断腿 vs 躺着,净得 4 : 4」),必须和片中某句一致。
11
+ - 在 `src/Root.tsx` 的 `09-黑金光影风` 文件夹里注册 `<Still id="<期>-cover-tall" …>`。
12
+
13
+ ```sh
14
+ npx remotion still src/index.ts <期>-cover-tall <素材目录>/封面-3x4.png --timeout=120000 --log=error
15
+ ```
16
+
17
+ 渲完 Read 看:标题无压字、钩子条不换行、主视觉不被标题挡住、底部数字不压角色。
18
+
19
+ ## 字幕稿 + SRT
20
+
21
+ ```sh
22
+ node .claude/skills/weilanx-creator-blackgold-video/scripts/subtitles.mjs <期> <素材目录>
23
+ ```
24
+
25
+ 产出 `字幕稿.md`(序号 | 时间 | 中文 | English)和 `字幕.srt`(双语两行)。标题卡、锚词爆点自动写成「标题:副题」「锚词(术语)」。
26
+
27
+ ## 发布文案(`<素材目录>/发布文案.md`,结构照 ep36)
28
+
29
+ ```markdown
30
+ # <期> 发布文案
31
+
32
+ ## 标题
33
+ [和封面一致的悬念问句](与封面一致;悬念提问式,N 字)
34
+
35
+ ## 备选标题
36
+ - [反常识提问,钩子落在观众的处境]
37
+ - [结果先行,答案留到片里]
38
+
39
+ ## 描述
40
+ [开场白描,2 句]
41
+
42
+ 两分钟讲清楚「<模型名>」:
43
+ · [出处:年份 + 谁 + 做了什么 + 原文结论]
44
+ · [规则和数字]
45
+ · [推导两三步,带术语]
46
+
47
+ [结论那句 + 反面情况]
48
+ [重新定义锚词那两句]
49
+
50
+ [评论区问题]?评论区说说。
51
+
52
+ 资料来源:[作者, 题目, 期刊 卷:页 (年份);书名 + 章节表号]。画面、动画和字幕全部用代码一帧一帧画出来,[舞台]为示意。
53
+
54
+ ## 话题
55
+ #<模型名> #博弈论 / #经济学 / #心理学 … #冷知识 #知识视频 #涨知识 #Vibe知识大赏
56
+
57
+ ---
58
+
59
+ ## 发布前核对(内部,不要发出去)
60
+ - 每个数字的出处、核对情况(原文 / 摘要 / 自己算 / 示意)、测试位置
61
+ - 原实验和课本说法的差异;有意没说的
62
+ - 标题和事实的口径(会被挑刺的地方怎么回复)
63
+ - 封面数字对应片中哪一句
64
+ - 配乐:we-never,用户确认已授权(2026-10-11)
65
+ - 片尾没有下期预告
66
+ ```
67
+
68
+ 封面、发布文案、字幕稿、字幕.srt 都复制到 `<成片目录>/`。
@@ -0,0 +1,56 @@
1
+ # 画面与镜头
2
+
3
+ ## 内容 → 组件(`src/library/blackgold/`)
4
+
5
+ | 要表达的 | 组件 |
6
+ |---|---|
7
+ | 底色、质感 | `SmokeBg`(`tone` 暖 / 红,反面情况用红)、`Grain` |
8
+ | 旁白 | `BGCaption`(y 950、size 56;最后一句问题 y 560、size 76 居中);普通句 `out = 下一句开始 − 12`,话说一半随收暗退场 |
9
+ | 章节、出处 | `ChapterTag` 左上、`CiteLine` 顶部(作者 · 年份 / 期刊 卷 : 页) |
10
+ | 标题爆点 | `SparkTitle instant` + `FormulaField`(items 写本题的公式碎片) |
11
+ | 锚词爆点 | `GlowSmash` + 背后一个和锚词同义的图形(「等」→ `TickRing`) |
12
+ | 一个会动的小世界 | `pen.tsx`:`PigPen`(拉杆—管子—食槽)、`GlowPigG`(呼吸、眨眼、`sweat`、`zzz`、`eat`、`speed`)、`track` 跑位、`ShockG`、`LightMotesG`;人物题用 `GlowPawnG` / `Booth` / `Silhouettes` |
13
+ | 规则、结局 | `GlowCard` + 本期的卡片内容(ep36 `OutcomeCard`) |
14
+ | 2×2 博弈 | `PayoffMatrix`(箭头沿格子边缘,`hi` 标均衡)、`cellText` 由 `payoff()` 算 |
15
+ | 两个选项比大小 | `BalanceScale`(`phases` 一拍换一次数值,往大的一边沉) |
16
+ | 加减法 | `PelletStack`(`leave` 颗变汗珠飞走) |
17
+ | 硬拍上累加的数 | `Ledger`(`bumps` 那一帧闪一下,`hiCol` 大号金字) |
18
+ | 分布、比例、曲线 | `GlowBars`、`NeonLines`、`DotRing`、`CellGrid`、`TileSeq` |
19
+ | 中央一句话 | `CenterWord` |
20
+
21
+ ## 每期都要有的「出彩设计」(3~5 个,只属于这个选题)
22
+
23
+ 用户 2026-10-13 明确要求:不要只拼素材包,要为选题设计体验感。套路(详见配方卡「出彩的手法」):
24
+
25
+ 1. **一个舞台贯穿全片**:开场、回落段、结尾回到同一个小世界,推导段只是离开一会儿。
26
+ 2. **角色有生命**:呼吸、眨眼、甩汗、打呼、吃东西掉碎屑——先让观众对角色有情绪。
27
+ 3. **把推理变成实物**:比较 → 天平;减法 → 东西飞走;累计 → 对账卡;陷阱 → 红烟 + 灯闪。
28
+ 4. **硬拍推动数字**:回落段每一下硬拍都改变一个数,让观众亲眼看到结论成立。
29
+ 5. **连续长镜头转场**:推理收尾时镜头推进结论那一格(ep36:`transform-origin` 设在纳什均衡格中心、最后 20 帧放大 6 倍淡出),下一镜头从 1.25 倍落回 1 倍。
30
+ 6. **反面情况要有感官**:0 : 0 时灯接触不良(`flicker`)、肚子「咕……」。
31
+
32
+ 做完把通用的挪进 `src/library/blackgold/`(`pen.tsx` 就是 ep36 沉淀出来的),补 `src/library/README.md` 和配方卡。
33
+
34
+ ## 版式
35
+
36
+ - 字幕区 y > 880 留给字幕;舞台地面 `FLOOR_Y = 800`,舞台元素别压进字幕区。
37
+ - 顶部 0–200 给 `ChapterTag` / `CiteLine` / `Ledger`;有对账卡时把舞台整体 `translateY(40) scale(0.94)`(原点底部中间)让出顶部。
38
+ - 收益矩阵靠左(x ≈ 400),右边留给天平(cx ≈ 1500);均衡标签在矩阵右侧,天平在标签出现前淡出。
39
+ - 两个角色挨着时,大的放后面、小的画在前面,脚底中心至少隔开两者半宽之和(ep36 初版大猪压住小猪)。
40
+
41
+ ## ep36 踩过的坑
42
+
43
+ - 标题在重拍 +2 帧还没亮 → `SparkTitle` 加 `instant`。
44
+ - `TickRing` 半径太小压住术语小字 → r ≥ 400。
45
+ - 天平数字压在吊绳上 → 数字放秤盘里(`top: ey + 62`)。
46
+ - 对账卡、食粒在 0.4 倍缩略图里太小 → 对账卡数字 54 / 76px、食粒 58px。
47
+ - Root 里有风格 `<Folder>`,新一期要注册进 `09-黑金光影风`,不要跟在别的风格最后一期后面。
48
+
49
+ ## 自查清单(看 `qa.mjs` 拼图时逐条过)
50
+
51
+ - 文字重叠、出画、折行(标题、卡片、天平标签、对账卡);舞台元素压进字幕区
52
+ - 该出现的东西都出现了(每个元素的出场帧在镜头范围内);角色互相遮挡
53
+ - 爆点:−16 已开始收暗、−3 静止、+2 标题 / 锚词已经亮
54
+ - 中段抽帧:角色在跑、天平在晃、数字在跳,动画不是静止的
55
+ - 示意画面有「示意」标注;出处行写对作者、年份、卷页
56
+ - 响度约 −15.5 LUFS、峰值 ≤ −1 dBFS
@@ -0,0 +1,59 @@
1
+ # 选题、事实、选题与分镜脚本
2
+
3
+ ## 好选题 = 三样都有
4
+
5
+ 1. **一个人人有过的处境**,而且直觉是错的:干活多的吃亏(智猪博弈)、找对象该何时定(37% 法则)、人越多越没人管(旁观者效应)。
6
+ 2. **一个能画出来的模型**:收益矩阵、天平、点阵、网络、曲线、一个小世界(猪圈、拍卖台、隔间)。抽象到画不出来的不做。
7
+ 3. **能查到原文的数字或原话**:论文摘要、原书段落、教材表格。没有一手出处的流行说法(「眼镜蛇效应」这类轶事)不当事实讲。
8
+
9
+ 选题池:`materials/09-黑金光影风/选题.md`(⭐ 先做)。参考视频讲过的不撞:囚徒困境、一报还一报、鹰鸽博弈、维克里拍卖、空间囚徒困境网格、公地悲剧、猜平均数的 2/3。
10
+
11
+ ## 事实
12
+
13
+ - **论文**:读到摘要(ScienceDirect / PubMed / 期刊页);原话要引用就照摘要原文。只读到摘要的细节,字幕不能说得比摘要更具体。
14
+ - **教材 / 原书**:读到原段落(网络副本可以),写清版本和表号(ep36:Rasmusen《Games and Information》§1.4 表 1.6)。
15
+ - **同一个模型多个版本数字不同**(ep36 网上有一版是小猪先到吃 6 份):取权威教材那一版,在核对清单里注明另一版存在。
16
+ - **原实验和课本说法的差异**要在片里体现(ep36:原文是 dominant / subordinate,1979 段写「强的那只 / 弱的那只」,课本那段才说大猪小猪)。
17
+ - **能算的就算**:收益、均衡、概率、比例写成 `timeline.ts` 里的函数,测试复算;画面上的累计数(ep36 对账卡)注明是按规则累加的示意。
18
+ - **哲学题**(荒诞、虚无、悲观、斯多葛……)的「事实」是原著原话:找到原著章节(原文或通行中译本),字幕里的引文标书名和章节;不替哲学家说他没说过的话,流传的「名言」查不到出处就不用。
19
+ - 一个选题至少 2 个来源,至少 1 个是同行评审论文或权威教材原文。
20
+
21
+ ## 锚词
22
+
23
+ 2~4 个字,是这个模型落在普通人生活里的**处境或动作**,不是术语:智猪博弈 →「等」,最优停止 →「37%」,旁观者效应 →「别人会管」,一美元拍卖 →「停不下」。
24
+
25
+ 出现四次:钩子第三句(`〔〕`金)、推导中段一次、第 192 拍大字砸出(下配「术语 · English」)、结尾重新定义(「等不是懒,是算出来的」)。
26
+
27
+ ## 章节骨架(拍号固定,照 ep36)
28
+
29
+ | 拍 | 段落 | 做什么 |
30
+ |---|---|---|
31
+ | 0–24 | 钩子 | 第一秒就有发光的视觉锚点;三句把现象演出来(第二人称或「一个猪圈:…」这种白描);开场两组四连重音(0/5/7/8、11/13/15/16)每下一个动作 |
32
+ | 24 | 话说一半 | 「你猜,最后是谁吃亏了——」以「——」结尾,随收暗退场 |
33
+ | 32 | 爆点 1 | 金粒子聚成标题(`SparkTitle instant`)+ 漂浮公式;不放字幕 |
34
+ | 36–64 | 第 1 章:出处 | 原始实验 / 原始故事;`ChapterTag` + `CiteLine`(作者 · 年份 · 期刊卷页) |
35
+ | 64–96 | 第 2 章:规则和数字 | 规则卡、结局卡(`GlowCard`) |
36
+ | 96–160 | 第 3 章:推导 | 模型图(矩阵、天平、曲线),一步一拍点亮;术语用【】青色 |
37
+ | 160–188 | 回落段 | 11 下硬拍 = 模型在小世界里一遍遍运行,每下推动一个数(对账卡) |
38
+ | 188 | 话说一半 | 「它的全部本事,只有一个字——」 |
39
+ | 192 | 爆点 2 | 锚词砸出 + 同义图形(「等」配表盘刻度环)+ 术语小字;不放字幕 |
40
+ | 200–224 | 结论 | 把结论变成看得见的数(食粒柱 4 : 4);反面情况(都不做 → 0 : 0) |
41
+ | 224–240 | 重新定义锚词 | 「小猪敢躺,是因为有大猪在跑」「等不是懒,是算出来的」 |
42
+ | 240–片尾 | 评论区问题 | 大号居中字幕,人人有答案(「你身边,谁是大猪,谁是小猪?」),舞台压暗;不做下期预告 |
43
+
44
+ ## 字幕规则
45
+
46
+ - 每句中文 ≤ 18 字(不算标点、空格和【】〔〕〖〗标记),英文意译、比中文短更好。
47
+ - 每句挂在拍点上,停 1~2 小节;推导段可以 4 拍一句(`它跟着按,净得 1;等着,净得 4。`)。
48
+ - 数字统一用阿拉伯数字,负号用「−」。
49
+ - 只有 `HALF_BEATS` 两句以「——」结尾;最后一句以「?」结尾。
50
+ - 爆点那一拍 `CUES` 写 `[拍, null, '']`,同一行 `// 说明`。
51
+
52
+ ## `文案与卡点.md` 结构(ep36 那份是模板)
53
+
54
+ 1. 一句话:作品 ID、规格、配乐。
55
+ 2. 锚词「X」:四个出现位置。
56
+ 3. 卡点表:拍 | 秒 | 配乐 | 画面。
57
+ 4. 事实清单:说法 | 出处 | 核对(读到原文 / 摘要 / 自己算 / 示意)。
58
+ 5. 有意不说的:原实验和课本的差异、查不到原文的流行说法、标题的口径。
59
+ 6. 本期专属的出彩设计(3~5 条)。
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env node
2
+ // 一期的自动自查:抽帧拼图 + 两个爆点的收暗 / 静止 / 爆发 + 整片响度 + 每个音效有没有被配乐盖住。
3
+ // node .claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs <期> # 全部
4
+ // node .claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs <期> --frames # 只抽帧
5
+ // node .claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs <期> --audio # 只测音频
6
+ // node .claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs <期> --frames-only=title,hit2 # 只重渲某几个镜头
7
+ // --loud=impact,press,drop # 要检查「有没有被配乐盖住」的音效文件名(默认见下面 LOUD)
8
+ // 产物在 /tmp/<期>/qa/:sheet-1.jpg、sheet-2.jpg …(每张 4×4,标了镜头名)、hits.jpg(两个爆点 −16 / −3 / +2 帧)、report.md。
9
+ // 读 src/episodes/<期>/timeline.ts 的 SHOTS、HIT、HIT2、SFX、DURATION、FPS;timeline.ts 里不能 import 别的 .ts / .tsx(Node 只能剥掉本文件的类型)。
10
+ // 运行前先 export NODE_OPTIONS=--max-old-space-size=4096。一次只渲一帧(并发渲染会把内存吃光)。
11
+ import {execFileSync, spawnSync} from 'node:child_process';
12
+ import {existsSync, mkdirSync, writeFileSync} from 'node:fs';
13
+ import {resolve} from 'node:path';
14
+ import {pathToFileURL} from 'node:url';
15
+
16
+ const [ep, ...flags] = process.argv.slice(2);
17
+ if (!ep) {
18
+ console.error('用法:node qa.mjs <期> [--frames | --audio | --frames-only=a,b]');
19
+ process.exit(1);
20
+ }
21
+ const only = flags.find((x) => x.startsWith('--frames-only='))?.split('=')[1]?.split(',');
22
+ const doFrames = !flags.includes('--audio');
23
+ const doAudio = !flags.includes('--frames') && !only;
24
+ const T = await import(pathToFileURL(resolve(`src/episodes/${ep}/timeline.ts`)).href);
25
+ const dir = `/tmp/${ep}/qa`;
26
+ mkdirSync(dir, {recursive: true});
27
+ const run = (cmd, args) => execFileSync(cmd, args, {stdio: ['ignore', 'pipe', 'pipe'], maxBuffer: 1 << 28}).toString();
28
+ /** ffmpeg 的统计信息都打在 stderr 上,成功时也要读 stderr */
29
+ const runErr = (cmd, args) => {
30
+ const r = spawnSync(cmd, args, {maxBuffer: 1 << 28});
31
+ return String(r.stderr ?? '') + String(r.stdout ?? '');
32
+ };
33
+ const still = (name, frame) => {
34
+ const out = `${dir}/${name}.jpg`;
35
+ run('npx', ['remotion', 'still', 'src/index.ts', ep, out, `--frame=${frame}`, '--scale=0.5', '--timeout=120000']);
36
+ // 左上角写镜头名和帧号,拼图时好对照
37
+ run('ffmpeg', ['-v', 'error', '-y', '-i', out, '-vf', `drawbox=x=0:y=0:w=330:h=44:color=black@0.7:t=fill,drawtext=text='${name} f${frame}':x=10:y=10:fontsize=24:fontcolor=yellow`, `${out}.tmp.jpg`]);
38
+ run('mv', [`${out}.tmp.jpg`, out]);
39
+ return out;
40
+ };
41
+ const sheet = (files, out, cols = 4) => {
42
+ const n = files.length;
43
+ const layout = files.map((_, i) => `${i % cols === 0 ? '0' : Array(i % cols).fill('w0').join('+')}_${Math.floor(i / cols) === 0 ? '0' : Array(Math.floor(i / cols)).fill('h0').join('+')}`).join('|');
44
+ run('ffmpeg', ['-v', 'error', '-y', ...files.flatMap((f) => ['-i', f]), '-filter_complex', n === 1 ? 'null' : `xstack=inputs=${n}:layout=${layout}:fill=black`, out]);
45
+ };
46
+ const report = [`# ${ep} 自查报告`, ''];
47
+
48
+ if (doFrames) {
49
+ // 每个镜头取切走前的倒数第 4 帧:这时画面里该出现的东西都应该已经出来了(上一镜头的字幕也已退场)。
50
+ // 曾经漏过的 bug:节点要等到镜头结束之后才点亮、从头到尾都没露面——只看 3/4 处发现不了
51
+ const shots = Object.entries(T.SHOTS).filter(([k]) => !only || only.includes(k));
52
+ const files = [];
53
+ for (const [k, [a, b]] of shots) {
54
+ const f = Math.max(a, b - 4);
55
+ files.push(still(k, f));
56
+ process.stdout.write(`· ${k} `);
57
+ }
58
+ for (let i = 0; i < files.length; i += 16) sheet(files.slice(i, i + 16), `${dir}/sheet-${i / 16 + 1}.jpg`);
59
+ report.push(`## 抽帧`, '', `每个镜头切走前一帧,拼成 ${Math.ceil(files.length / 16)} 张:${Array.from({length: Math.ceil(files.length / 16)}, (_, i) => `${dir}/sheet-${i + 1}.jpg`).join('、')}`, '');
60
+ if (!only) {
61
+ const hits = [];
62
+ for (const [name, H] of [['hit1', T.HIT], ['hit2', T.HIT2]]) for (const d of [-16, -3, 2]) hits.push(still(`${name}${d > 0 ? '+' : ''}${d}`, H + d));
63
+ sheet(hits, `${dir}/hits.jpg`, 3);
64
+ report.push(`两个爆点各 −16 / −3 / +2 帧:${dir}/hits.jpg(应当是 收暗 → 静止 → 已经亮起来)`, '');
65
+ }
66
+ console.log('\n抽帧完成');
67
+ }
68
+
69
+ if (doAudio) {
70
+ const wav = `${dir}/a.wav`;
71
+ run('npx', ['remotion', 'render', 'src/index.ts', ep, wav, '--codec=wav']);
72
+ const eb = runErr('ffmpeg', ['-nostats', '-i', wav, '-af', 'ebur128=peak=true', '-f', 'null', '-']);
73
+ const I = Number(/I:\s+(-?[\d.]+) LUFS/.exec(eb.split('Summary')[1] ?? '')?.[1]);
74
+ const peak = Number(/Peak:\s+(-?[\d.]+) dBFS/.exec(eb.split('Summary')[1] ?? '')?.[1]);
75
+ // band = true 时只量 1.2–5 kHz:铃、咔哒、碎响这类高频小音效全频会被配乐低频淹掉,看频段才准
76
+ const mean = (t, d, band = false) =>
77
+ Number(/mean_volume: (-?[\d.]+) dB/.exec(runErr('ffmpeg', ['-ss', String(Math.max(0, t)), '-t', String(d), '-i', wav, '-af', `${band ? 'highpass=f=1200,lowpass=f=5000,' : ''}volumedetect`, '-f', 'null', '-']))?.[1] ?? NaN);
78
+ report.push('## 音频', '', `- 整片 ${I} LUFS(目标约 −15.5)、真峰值 ${peak} dBFS(不能高于 −1.0)${I > -14.5 || I < -16.5 || peak > -1 ? ' ⚠' : ''}`, '');
79
+ // 只看「要听得见」的音效:冲击、本期的动作音(按键、落下、铃);whoosh、paper、room 本来就轻
80
+ const LOUD = flags.find((x) => x.startsWith('--loud='))?.split('=')[1]?.split(',') ?? ['impact', 'press', 'drop', 'chime', 'bell', 'clink', 'stamp', 'coin', 'tick'];
81
+ const loud = new RegExp(`/(${LOUD.join('|')})\\.wav$`);
82
+ const weak = [];
83
+ for (const [file, at, vol] of T.SFX) {
84
+ if (!loud.test(file)) continue;
85
+ const t = at / T.FPS;
86
+ const rise = mean(t, 0.15) - mean(t - 0.3, 0.15);
87
+ const riseHi = mean(t, 0.15, true) - mean(t - 0.3, 0.15, true);
88
+ // 全频高出 4 dB,或者 1.2–5 kHz 高出 6 dB,就算听得见
89
+ if (!(rise >= 4 || riseHi >= 6)) weak.push(`- ${file.split('/').pop()} @ ${t.toFixed(2)} 秒(音量 ${vol}):全频只高 ${rise.toFixed(1)} dB、1.2–5 kHz 只高 ${riseHi.toFixed(1)} dB`);
90
+ }
91
+ report.push(weak.length ? `被配乐盖住的音效(全频高出不到 4 dB、1.2–5 kHz 也高出不到 6 dB;要么加音量、要么挪开前面的音效):\n${weak.join('\n')}` : '要听得见的音效都比前一刻明显高出(全频 ≥ 4 dB 或 1.2–5 kHz ≥ 6 dB)。', '');
92
+ report.push('音量只看数值,听感要让用户自己确认。', '');
93
+ console.log(`音频:${I} LUFS / 峰值 ${peak} dBFS / 偏弱音效 ${weak.length} 处`);
94
+ }
95
+
96
+ writeFileSync(`${dir}/report.md`, report.join('\n'));
97
+ console.log(`报告:${dir}/report.md`);
98
+ if (!existsSync(`public/audio/${ep}/bgm.wav`)) console.log('⚠ 还没生成音频:node audio/episodes/<期>.mjs');
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ // 从一期黑金光影风的 timeline.ts 生成双语字幕稿和 SRT:
3
+ // node .claude/skills/weilanx-creator-blackgold-video/scripts/subtitles.mjs <期> <输出目录>
4
+ // 产物:<输出目录>/字幕稿.md(序号 | 时间 | 中文 | English)、<输出目录>/字幕.srt(中文一行 + 英文一行)。
5
+ // 读 CUES([拍号, 中文 | null, 英文])、cueStart、cueEnd、HALF_BEATS、DARK_FROM、DARK_FROM2、HIT、HIT2、FPS、DURATION、
6
+ // TITLE、TITLE_EN、TITLE_SUB、ANCHOR、TERM。中文为 null 的条目:落在 HIT 上写标题,落在 HIT2 上写锚词 + 术语,其余用源码同一行的 // 注释。
7
+ // Node 24 直接 import .ts(剥掉类型),所以 timeline.ts 不能 import 别的 .ts / .tsx。
8
+ import {mkdirSync, readFileSync, writeFileSync} from 'node:fs';
9
+ import {resolve} from 'node:path';
10
+ import {pathToFileURL} from 'node:url';
11
+
12
+ const [ep, outDir] = process.argv.slice(2);
13
+ if (!ep || !outDir) {
14
+ console.error('用法:node subtitles.mjs <期> <输出目录>');
15
+ process.exit(1);
16
+ }
17
+ const src = resolve(`src/episodes/${ep}/timeline.ts`);
18
+ const T = await import(pathToFileURL(src).href);
19
+ const notes = new Map();
20
+ for (const m of readFileSync(src, 'utf8').matchAll(/\[(\d+),\s*null,\s*'[^']*'\],?\s*\/\/\s*(.+)/g)) notes.set(Number(m[1]), m[2].trim());
21
+
22
+ const strip = (s) => s.replace(/[【】〔〕〖〗]/g, '');
23
+ const srt = (f) => {
24
+ const ms = Math.round((f / T.FPS) * 1000);
25
+ const p = (n, w = 2) => String(n).padStart(w, '0');
26
+ return `${p(Math.floor(ms / 3600000))}:${p(Math.floor(ms / 60000) % 60)}:${p(Math.floor(ms / 1000) % 60)},${p(ms % 1000, 3)}`;
27
+ };
28
+ const mmss = (f) => {
29
+ const t = f / T.FPS;
30
+ return `${String(Math.floor(t / 60)).padStart(2, '0')}:${(t % 60).toFixed(1).padStart(4, '0')}`;
31
+ };
32
+ const half = T.HALF_BEATS ?? [];
33
+ const rows = [];
34
+ T.CUES.forEach(([beat, cn, en], i) => {
35
+ const a = T.cueStart(i);
36
+ let e = T.cueEnd(i);
37
+ if (beat === half[0] && T.DARK_FROM) e = T.DARK_FROM;
38
+ if (beat === half[1] && T.DARK_FROM2) e = T.DARK_FROM2;
39
+ if (cn) return rows.push({a, e, cn: strip(cn), en});
40
+ if (a === T.HIT && T.TITLE) return rows.push({a, e, cn: `${T.TITLE.replace(/\n/g, '')}${T.TITLE_SUB ? `:${T.TITLE_SUB}` : ''}`, en: T.TITLE_EN ?? ''});
41
+ if (a === T.HIT2 && T.ANCHOR) return rows.push({a, e, cn: `${T.ANCHOR}${T.TERM ? `(${T.TERM.split(' · ')[0]})` : ''}`, en: T.TERM?.split(' · ')[1] ?? ''});
42
+ if (notes.has(beat)) rows.push({a, e, cn: `【${notes.get(beat)}】`, en: ''});
43
+ });
44
+ const hits = [T.HIT, T.HIT2].filter((x) => x !== undefined).map(mmss).join('、');
45
+ const md =
46
+ `# 字幕稿 · ${ep}${T.TITLE ? ` ${T.TITLE.replace(/\n/g, '')}` : ''}\n\n共 ${rows.length} 条 · 时长 ${mmss(T.DURATION)} · 无口播,画面上的双语字幕即旁白${hits ? ` · 爆点 ${hits}` : ''}\n\n` +
47
+ `| 序号 | 时间 | 中文 | English |\n|---:|:---|:---|:---|\n` +
48
+ rows.map((r, i) => `| ${i + 1} | ${mmss(r.a)}–${mmss(r.e)} | ${r.cn} | ${r.en} |`).join('\n') +
49
+ '\n';
50
+ mkdirSync(resolve(outDir), {recursive: true});
51
+ writeFileSync(resolve(outDir, '字幕稿.md'), md);
52
+ writeFileSync(resolve(outDir, '字幕.srt'), rows.filter((r) => !r.cn.startsWith('【')).map((r, i) => `${i + 1}\n${srt(r.a)} --> ${srt(r.e)}\n${r.cn}${r.en ? `\n${r.en}` : ''}\n`).join('\n'));
53
+ console.log(`wrote ${outDir}/字幕稿.md + 字幕.srt(${rows.length} 条,${mmss(T.DURATION)})`);
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: weilanx-creator-desk-video
3
+ description: 「暖纸工作台风」口播视频工作流:用户给一个主题(多是「我是怎么用 AI 做 XX 的」「一件事分几步」这类流程拆解),依次写口播稿、复刻音色配音并加速 1.2 倍、转 SRT;或者用户给一段自己录好的真人口播视频,直接转 SRT 并把真人放进左下角出镜小窗做 A-roll / B-roll。在 weilanx-claude-videos 工程里做成横屏 16:9 的口播视频:暖米色点阵纸当工作台(柔光晕 + 漂浮几何),白色窗口卡片和主视觉图形(清单、终端、同心圆、胶片、流程卡)一层层摆上来又滑走,阿里巴巴普惠体粗黑体标题 + 一块朱橙渐变高亮,顶部步骤条随口播推进,右下角像素吉祥物 CC 常驻换表情,字幕在底部;再出 3:4 封面和发布文案,打开 Studio 给用户预览,确认后导出(成片 + 分轨 + 封面 + 字幕稿 + 文案)。用户说「用暖纸风做一期」「做一期流程拆解」「像 dl(4) 那种口播风格做一期」「用工作台风格讲讲 XX」「做一期 XX 分几步」「我录好了口播,用暖纸风做出来」时都用这个 skill。
4
+ ---
5
+
6
+ # 一个主题 / 一段真人口播 → 一期暖纸工作台风口播视频
7
+
8
+ > **目录约定(2026-10-13 起)**:`materials/` 和 `out/` 按风格分类、风格内从 00 编号,代码里的作品 ID(下文的 `<期>`)不变。下文 `<素材目录>` = `materials/<风格>/<编号-中文短题>/`,`<成片目录>` = `out/` 下同名目录。新一期开工时先建:`bash scripts/ep-dir.sh <期> materials --new <风格目录> <中文短题>`(自动取下一个编号,materials 和 out 一起建);之后查路径用 `bash scripts/ep-dir.sh <期> materials` / `bash scripts/ep-dir.sh <期> out`。`npm run export -- <期>` 会自动把成片放进 `<成片目录>`。
9
+ > 本 skill 的风格目录是 `07-暖纸工作台风`。
10
+
11
+ 风格配方:`styles/我的风格/暖纸工作台风/README.md`(从一支参考视频蒸馏,参考视频不进 git);素材包 `src/library/warm-desk/`;口播骨架 `DeskShow`;最小例子 `src/library/previews/WarmDeskShowDemo.tsx`(Studio 里 `library-warm-desk-show`),全部组件一览 `library-warm-desk`,封面 `library-warm-desk-cover`。**真人出镜的样片是 `ep26-opus-video`**(用户认可的版本:左下角出镜小窗、A/B-roll 交替、每个场景一个主视觉),做真人口播时先读它的 `scenes.tsx` 和 `Ep26OpusVideo.tsx`。
12
+
13
+ 这套风格的灵魂:**一张纸、一条步骤线、一个吉祥物**。观众始终知道「现在讲到第几步」(顶部步骤条),每句口播都有一张卡片在桌上发生变化,结论用粗黑体大字 + 朱橙块砸下来。
14
+
15
+ 用户对画面的要求是**丰富、优雅、有设计感**——只摆一张卡片 + 一行字会被说「太素、太单调」。具体做法见下面「画面质量线」和 `references/画面配方.md`。
16
+
17
+ 按第 0~6 步一口气做完,中途不等用户确认,每步做完用一两句话同步进度;第 6 步打开 Studio 后停下,**用户确认后才导出**;不提交 git,除非用户另外要求。动手前先读工程根目录 `CLAUDE.md`、`src/library/README.md`「暖纸工作台风」一节、风格配方卡。所有 npm / npx / node 命令前先 `export NODE_OPTIONS=--max-old-space-size=4096`。
18
+
19
+ ## 依赖(开源版说明)
20
+
21
+ 这个工作流原本串起了作者的几个私人 Skill,仓库里没有带。换成你自己的工具即可,接口只要求「输入文本 / 音频,输出文件」:
22
+
23
+ | 步骤 | 作者用的私人 Skill | 换成 |
24
+ |---|---|---|
25
+ | 写口播稿 | `weilanx-creator-spoken-script` | 自己写,或让 Agent 按「强钩子开头、句子连贯、不用冒号括号」写 |
26
+ | 配音 | `weilanx-doubao-voice-clone`(豆包复刻音色) | 任何 TTS 或真人录音,输出 wav / mp3 |
27
+ | 字幕 | `weilanx-doubao-voice-srt`(豆包录音识别) | 任何语音识别工具,输出 SRT |
28
+ | 标题 | `dbs-xhs-title`(标题公式库) | 自己起标题,或让 Agent 按「≤ 20 字、留悬念」写 |
29
+
30
+ 真人出镜的 `footage/<期>/host.mp4` 不在仓库里,换成你自己的录像。字幕导入、出片、导出这些工程内的步骤都不依赖上面的私人工具。
31
+
32
+ ## 两种来源
33
+
34
+ | | 配音口播(默认) | 真人口播(用户给了录好的视频) |
35
+ |---|---|---|
36
+ | 口播 | 第 1~2 步:写稿 → 复刻音色 → 1.2 倍速 | 跳过第 1~2 步,用户的录音就是口播,不加速 |
37
+ | 字幕 | 识别加速后的配音 | 识别原录音(`weilanx-doubao-voice-srt`) |
38
+ | 画面 | 卡片占满主内容区 | 左下角出镜小窗 `HostCam`:A-roll 放大(人是主角)、B-roll 缩小(卡片是主角) |
39
+ | 结构 | 开场钩子 → 摊开过程 → 3~7 步 → 金句 → 关注 | 跟着用户的口播走,同样拆成 开场 / 章节 / 收尾 |
40
+
41
+ ## 规格
42
+
43
+ | 项 | 默认 |
44
+ |---|---|
45
+ | 画面 | 横屏 1920×1080、30fps,`DeskShow` 骨架,首帧横版封面 `DeskCoverWide`;`decor` 开背景漂浮几何(避开内容区),`push` 默认 2.5% 场景内缓推 |
46
+ | 配色 / 字体 | 唯一强调色朱橙 `#f15a35`(大色块用 `OG` 渐变);全部阿里巴巴普惠体 3.0(`DF.sans` / `DF.serif` 都指向它,标题 900、字幕 800、卡片 700),本机没装时回落思源黑体 Heavy |
47
+ | 时长 | 2~3 分钟(口播 800~1100 字,加速 1.2 倍后);用户给了时长或录好了视频,按用户的 |
48
+ | 结构 | 开场钩子 → 「今天把整个过程摊开」→ 3~7 步,每步一个章节大标题 → 收束金句 → 关注卡 |
49
+ | 人声 | **−19 LUFS**(用户嫌 −16 太响),峰值 ≤ −1.5 dBFS |
50
+ | 配乐 | `buildBgm` 合成,`light` / `groove` 为主,**`level: 0.05`**、`depth 0.7`,`DeskShowConfig.bgmVolume: 0.85`(人声 + 配乐合计约 −19 LUFS) |
51
+ | 音效 | 共享音效:卡片落下 `paper` / `pop`,步骤点亮 `ding`,选择 `click`,打字 `type`,揭晓 `magic`,换章 `whoosh`;**音量 0.16–0.26**,宁轻勿重 |
52
+ | 封面 | 3:4 竖版 `DeskCoverTall`(1080×1440,平台单独上传用) |
53
+
54
+ ## 画面质量线(每个场景都要过)
55
+
56
+ 1. **一个主视觉**:每个 B-roll 场景挑一个当主角——信息卡(`props.tsx`:清单、深色终端、表格……)或设计图形(`motifs.tsx`:同心圆、胶片条、图标大卡、流程卡、播放卡、悬念卡、徽章),不要只有一行字。
57
+ 2. **一句粗黑体标题**带 `kicker` 小眉标(短橙线 + 灰字),关键词 `〔词〕` 橙块刷入 + 星光。
58
+ 3. **层次**:卡片带 `stack` 叠纸或倾斜 ±2°,主视觉旁边放一个辅助元素(标签、胶片条、播放卡、徽章),背景有柔光和漂浮几何。
59
+ 4. **动效**:入场都是回弹 + 去模糊(`rise` / `Rise` 已内置),列表从左滑入,图形逐层点亮,挂在 `cw` 的词上;揭晓时 `Sparkle`(放在内容**后面**,DOM 里先画,不然线条压字)。
60
+ 5. **不编数据**:缩略图、示意画面用风格配色画极简示意,不放假截图、不编时长和播放量。
61
+
62
+ ## 0. 定期数和目录
63
+
64
+ - 期号取 `src/episodes/` 里最大的下一个,作品 ID `epNN-英文短名`,下面记作 `<期>`。
65
+ - 素材 `<素材目录>/`,代码 `src/episodes/<期>/`,音频 `public/audio/<期>/`,配乐脚本 `audio/episodes/<期>.mjs`,测试 `tests/episodes/<期>.test.ts`。
66
+ - 选题候选池 `materials/00-公共/选题候选池.md`:开工把那一行改成 🎬,导出后改 ✅ 并填期号。
67
+
68
+ ## 1. 写口播稿(真人口播跳过)
69
+
70
+ 调用 `weilanx-creator-spoken-script` Skill,交代清楚这是「流程拆解」:
71
+
72
+ - 先抛结果或反差(「你现在看的这条 XX,全是 AI 做的」「我只说了一句话」),再说「今天就把整个过程摊开给你看」。
73
+ - 正文按步骤讲,**步骤名 2~3 个字**(会直接上步骤条和章节标题),每步开头一句「第 N 步」;每步讲:做了什么 → 卡在哪 → 怎么解决的。
74
+ - 结尾一句能当大字的金句(会用橙块高亮其中一个词),再一句关注引导。
75
+ - 存 `<素材目录>/口播稿.txt`(只放能念的正文),回复里贴全文、字数和要核对的事实。
76
+
77
+ ## 2. 配音并加速 1.2 倍(真人口播跳过)
78
+
79
+ 调用 `weilanx-doubao-voice-clone`:
80
+
81
+ ```sh
82
+ python3 scripts/voice.py status
83
+ python3 scripts/voice.py synthesize --text-file <工程>/<素材目录>/口播稿.txt --output <工程>/<素材目录>/<期>-口播-中文标准版.mp3
84
+ ffmpeg -i <素材目录>/<期>-口播-中文标准版.mp3 -filter:a atempo=1.2 -ar 48000 -c:a pcm_s16le <素材目录>/<期>-口播-1.2x.wav
85
+ ```
86
+
87
+ ## 3. 转 SRT
88
+
89
+ 调用 `weilanx-doubao-voice-srt`:配音口播识别**已加速**的 `<期>-口播-1.2x.wav`(不要再加速);真人口播直接识别原录音。用口播稿(有的话)校对用字,每行 6~16 字、去标点。输出 `<素材目录>/字幕.srt` 和 `字幕稿.md`(文件名固定,导出时会复制)。识别和稿子对不上的地方记下来,最后提醒用户去听。
90
+
91
+ ## 4. 建工程
92
+
93
+ 详见 `references/工程模板.md`(文件清单 + 每个文件的模板代码,含真人出镜版)和 `references/画面配方.md`(每类口播内容用哪个组件、主视觉怎么选、版式安全区、节奏和音效)。
94
+
95
+ 1. **人声**:`ebur128` 测响度 → `volume=<增益>dB,alimiter=limit=0.8:level=false` 调到 **−19 LUFS**(±0.5)→ 48kHz 立体声 16-bit → `public/audio/<期>/voice.wav`。真人口播从原视频里抽(`-vn`)。
96
+ 2. **出镜视频(真人口播)**:裁成方形、H.264、去音轨 → `public/footage/<期>/host.mp4`(命令见工程模板);人声只走 `voice.wav`,小窗静音。
97
+ 3. **字幕**:`npm run cues -- <素材目录>/字幕.srt src/episodes/<期>/cues.json`;`cues.ts` 里 `VOICE_SECONDS` = 人声时长 + 0.3~0.5 秒,且不短于最后一条字幕结束。
98
+ 4. **配乐**:`audio/episodes/<期>.mjs` 写段落表调 `buildBgm({…, level: 0.05})`,只跑 `node audio/episodes/<期>.mjs`。
99
+ 5. **场景表**:`src/episodes/<期>/scenes.tsx` 导出 `DeskScene[]`(真人口播再加 `roll: 'A' | 'B'`),每句或每两句口播一个场景,`from = cf(n) − 6`;动画挂 `cf(n)` / `cw(n, '词')`;步骤场景填 `step`,开场和结尾不填(步骤条只在正文出现);吉祥物表情 `eyes`、跳一下 `hop`、头顶小反应 `emotes` 跟着口播情绪走;每个场景配音效。每个场景过一遍「画面质量线」。
100
+ 6. **配置**:`Ep*.tsx` 写 `DeskShowConfig`(`steps`、`cover` 用 `DeskCoverWide` 且 `frames: cf(1) − 5`、`bgmVolume: 0.85`、`decor` 避开内容区);真人口播加 `overlay`(`HostCam` + `camAt`)、`mascot: {x: 1700, y: 1000, s: 0.75}`。组件接 `mix` 透传给 `DeskShow`(导出分轨要用)。
101
+ 7. **竖版封面**:`Cover.tsx` 用 `DeskCoverTall`,在 `Root.tsx` 注册 `<期>-cover-tall` 的 Still,渲染到 `<素材目录>/封面-3x4.png`:`npx remotion still src/index.ts <期>-cover-tall <素材目录>/封面-3x4.png`。
102
+ 8. **注册和测试**:`Root.tsx` 注册 `<Composition id="<期>" … defaultProps={{mix: 'all'}}>`;测试照 `references/工程模板.md`(场景按时间递增、步骤号不越界、字幕在时长内、`cw` 的词都在字幕里、音效名存在;真人口播加「小窗始终在左下角」);`npm run typecheck && npm test`。
103
+
104
+ ## 5. 抽帧自查
105
+
106
+ - 第 0 帧(封面)、封面淡出那几帧、每个场景 3/4 处各一帧,关键动画中间态(橙块刷到一半、步骤切换那一帧、星光迸发那一帧)也抽;一次只渲一帧:`npx remotion still src/index.ts <期> /tmp/<期>/x.jpg --frame=N --scale=0.5 --timeout=120000`,逐张看。
107
+ - 逐条查 `画面配方.md` 的「自查清单」和上面的「画面质量线」:主视觉有没有、够不够大、星光有没有压字、有没有压到右下角吉祥物区 / 左下角出镜小窗 / 底部字幕区、步骤条是不是跟口播同步、一个画面里是不是只有一种强调色。
108
+ - 发现问题就改,改完再抽帧确认。
109
+
110
+ ## 6. 发布文案 + Studio 预览(然后停下)
111
+
112
+ - 调用 `dbs-xhs-title` 出标题:主标题 1 个 + 备选 2 个,注明公式编号,含标点不超过 20 字。
113
+ - 描述:钩子一句 → 步骤清单(每步一句做了什么)→ 观众能拿走的做法 → 话题。存 `<素材目录>/发布文案.md`。
114
+ - `lsof -i :3000 -sTCP:LISTEN` 看 Studio 在不在,不在就后台起 `npm run studio`;给 `http://localhost:3000/<期>`。
115
+ - 汇报:字数和时长、人声 / 配乐响度、字幕条数、封面路径、标题和备选、场景表(时间 | A/B | 步骤 | 主视觉)、要核对的事实、TTS 可能读错的地方;**听不到声音要如实说**,只报数字,听感请用户确认。**不要导出**。
116
+
117
+ ## 7. 导出(用户确认后)
118
+
119
+ `npm run export -- <期>` → `<成片目录>/`:成片(分轨重混限幅)、`stems/`、`封面-3x4.png`、`字幕稿.md`、`发布文案.md`。检查 1920×1080、首帧是封面、约 −19 LUFS、峰值低于 −1 dBFS;成片复制一份到 `<素材目录>/`。
120
+
121
+ ## 收尾登记
122
+
123
+ - 风格配方卡的期数表补一行,`styles/README.md`「我的风格」表期数栏补上。
124
+ - 新写的通用组件挪进 `src/library/warm-desk/`(信息卡进 `props.tsx`,设计图形进 `motifs.tsx`)并补 `src/library/README.md`。