@mevdragon/vidfarm-devcli 0.14.0 → 0.15.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 (418) hide show
  1. package/.agents/skills/embedded-captions/CATALOG.md +93 -0
  2. package/.agents/skills/embedded-captions/SKILL.md +286 -0
  3. package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
  4. package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
  5. package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  6. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  7. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  8. package/.agents/skills/embedded-captions/dna/README.md +148 -0
  9. package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
  10. package/.agents/skills/embedded-captions/dna/cream.json +69 -0
  11. package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
  12. package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
  13. package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
  14. package/.agents/skills/embedded-captions/dna/ink.json +65 -0
  15. package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
  16. package/.agents/skills/embedded-captions/dna/loud.json +75 -0
  17. package/.agents/skills/embedded-captions/dna/neon.json +58 -0
  18. package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
  19. package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
  20. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  21. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  22. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  23. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  24. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  25. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  26. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  27. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  28. package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  29. package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  30. package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
  31. package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  32. package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  33. package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
  34. package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  35. package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
  36. package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
  37. package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
  38. package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
  39. package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  40. package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
  41. package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
  42. package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  43. package/.agents/skills/embedded-captions/references/rail.md +68 -0
  44. package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
  45. package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
  46. package/.agents/skills/embedded-captions/references/test-set.md +66 -0
  47. package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
  48. package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
  49. package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  50. package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  51. package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  52. package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  53. package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  54. package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  55. package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  56. package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
  57. package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  58. package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  59. package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
  60. package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
  61. package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
  62. package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
  63. package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  64. package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
  65. package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  66. package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
  67. package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
  68. package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  69. package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
  70. package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
  71. package/.agents/skills/embedded-captions/themes/README.md +244 -0
  72. package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
  73. package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
  74. package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
  75. package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
  76. package/.agents/skills/embedded-captions/themes/brush.json +74 -0
  77. package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
  78. package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
  79. package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
  80. package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
  81. package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
  82. package/.agents/skills/embedded-captions/themes/laser.json +46 -0
  83. package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
  84. package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
  85. package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
  86. package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
  87. package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
  88. package/.agents/skills/embedded-captions/themes/popup.json +46 -0
  89. package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
  90. package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
  91. package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
  92. package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
  93. package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
  94. package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
  95. package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
  96. package/.agents/skills/embedded-captions/themes/transit.json +44 -0
  97. package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
  98. package/.agents/skills/faceless-explainer/SKILL.md +209 -0
  99. package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
  100. package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
  101. package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
  102. package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
  103. package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
  104. package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
  105. package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
  106. package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
  107. package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
  108. package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  109. package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  110. package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
  111. package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  112. package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  113. package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
  114. package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
  115. package/.agents/skills/flockposter/LICENSE +17 -0
  116. package/.agents/skills/flockposter/README.md +72 -0
  117. package/.agents/skills/flockposter/SKILL.md +562 -0
  118. package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
  119. package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
  120. package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
  121. package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
  122. package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
  123. package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
  124. package/.agents/skills/general-video/SKILL.md +143 -0
  125. package/.agents/skills/hyperframes/SKILL.md +160 -0
  126. package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
  127. package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  128. package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
  129. package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  130. package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
  131. package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  132. package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
  133. package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
  134. package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  135. package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
  136. package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
  137. package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
  138. package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
  139. package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  140. package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
  141. package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
  142. package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
  143. package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
  144. package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
  145. package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
  146. package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
  147. package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
  148. package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
  149. package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  150. package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  151. package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
  152. package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  153. package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  154. package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
  155. package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
  156. package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
  157. package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
  158. package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
  159. package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
  160. package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  161. package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  162. package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  163. package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  164. package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  165. package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  166. package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  167. package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  168. package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  169. package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  170. package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  171. package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  172. package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  173. package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
  174. package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
  175. package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
  176. package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
  177. package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
  178. package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
  179. package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
  180. package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
  181. package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
  182. package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
  183. package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
  184. package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
  185. package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
  186. package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
  187. package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
  188. package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
  189. package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
  190. package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
  191. package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
  192. package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
  193. package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
  194. package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
  195. package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
  196. package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
  197. package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
  198. package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
  199. package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
  200. package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
  201. package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
  202. package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
  203. package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
  204. package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
  205. package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
  206. package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
  207. package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
  208. package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
  209. package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
  210. package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
  211. package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
  212. package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  213. package/.agents/skills/hyperframes-animation/techniques.md +507 -0
  214. package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
  215. package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
  216. package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  217. package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  218. package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  219. package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  220. package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  221. package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  222. package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  223. package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
  224. package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  225. package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
  226. package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
  227. package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  228. package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  229. package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
  230. package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
  231. package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
  232. package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
  233. package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
  234. package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
  235. package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
  236. package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
  237. package/.agents/skills/hyperframes-core/SKILL.md +78 -0
  238. package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
  239. package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
  240. package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
  241. package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
  242. package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
  243. package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
  244. package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
  245. package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
  246. package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
  247. package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
  248. package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
  249. package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
  250. package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
  251. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  252. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  253. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  254. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  255. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  256. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  257. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  258. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  259. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  260. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  261. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  262. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  263. package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  264. package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  265. package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  266. package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  267. package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  268. package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  269. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  270. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  271. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  272. package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
  273. package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
  274. package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
  275. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  276. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  277. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  278. package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  279. package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  280. package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  281. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  282. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  283. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  284. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  285. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  286. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  287. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  288. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  289. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  290. package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  291. package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  292. package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  293. package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  294. package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  295. package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  296. package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  297. package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  298. package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  299. package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  300. package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
  301. package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  302. package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  303. package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
  304. package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
  305. package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
  306. package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
  307. package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
  308. package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
  309. package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  310. package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
  311. package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
  312. package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
  313. package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
  314. package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
  315. package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
  316. package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  317. package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  318. package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
  319. package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  320. package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
  321. package/.agents/skills/motion-graphics/SKILL.md +172 -0
  322. package/.agents/skills/motion-graphics/agents/builder.md +40 -0
  323. package/.agents/skills/motion-graphics/agents/director.md +53 -0
  324. package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
  325. package/.agents/skills/motion-graphics/catalog-map.md +40 -0
  326. package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  327. package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
  328. package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  329. package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  330. package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  331. package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  332. package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
  333. package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
  334. package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
  335. package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
  336. package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
  337. package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  338. package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
  339. package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
  340. package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
  341. package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  342. package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  343. package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  344. package/.agents/skills/product-launch-video/SKILL.md +208 -0
  345. package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
  346. package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
  347. package/.agents/skills/product-launch-video/references/story-design.md +373 -0
  348. package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
  349. package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
  350. package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
  351. package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
  352. package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
  353. package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
  354. package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  355. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
  356. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
  357. package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  358. package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
  359. package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  360. package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  361. package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  362. package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
  363. package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
  364. package/.agents/skills/slideshow/SKILL.md +550 -0
  365. package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
  366. package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
  367. package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
  368. package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  369. package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  370. package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
  371. package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
  372. package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  373. package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  374. package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
  375. package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
  376. package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
  377. package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
  378. package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
  379. package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
  380. package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
  381. package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
  382. package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  383. package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
  384. package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
  385. package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  386. package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
  387. package/.agents/skills/vidfarm-media/SKILL.md +85 -0
  388. package/.agents/skills/vidfarm-media/references/tts.md +54 -0
  389. package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
  390. package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
  391. package/.agents/skills/website-to-video/SKILL.md +145 -0
  392. package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
  393. package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
  394. package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
  395. package/.agents/skills/website-to-video/references/capabilities.md +713 -0
  396. package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
  397. package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
  398. package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
  399. package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
  400. package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
  401. package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
  402. package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
  403. package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
  404. package/SKILL.director.md +37 -0
  405. package/SKILL.platform.md +6 -1
  406. package/demo/dist/app.js +295 -11
  407. package/dist/src/app.js +317 -133
  408. package/dist/src/cli.js +529 -12
  409. package/dist/src/composition-runtime.js +262 -3
  410. package/dist/src/devcli/doctor.js +192 -0
  411. package/dist/src/devcli/hyperframes-cli.js +118 -0
  412. package/dist/src/devcli/skills.js +476 -0
  413. package/dist/src/devcli/stills.js +249 -0
  414. package/dist/src/editor-chat.js +255 -0
  415. package/dist/src/hyperframes/composition.js +5 -5
  416. package/dist/src/services/composition-lint.js +199 -0
  417. package/dist/src/services/hyperframes.js +67 -13
  418. package/package.json +2 -1
@@ -0,0 +1,284 @@
1
+ ---
2
+ version: alpha
3
+ name: Capsule — Frame (video / frame layer)
4
+ description: >
5
+ Video-first companion to Capsule's design.md. The unit is the frame (1920×1080). Atoms are
6
+ identical and sacred — the pill geometry (9999px small / 2rem cards) with a 2px ink outline on
7
+ everything, the sun-bleached cream canvas, the nine-color candy palette, Bodoni Moda + Space
8
+ Grotesk, soft hard-offset shadows (4/6/8/12px in 8% ink), floating decorative-pill wallpaper,
9
+ radial accent glows, and the grain overlay. Composition + frame scale rewritten. Motion out of scope.
10
+ unit: the frame — 1920×1080 primary; 9:16 and 1:1 documented
11
+ principle: atoms are sacred · composition is free · numbers come from the script
12
+
13
+ colors:
14
+ cream: "#F5F5F0"
15
+ ink: "#1A1A1A"
16
+ outline: "#1E1E1E"
17
+ white: "#FFFFFF"
18
+ coral: "#E85D4E"
19
+ lime: "#C4D94E"
20
+ lavender: "#C5B5E0"
21
+ sky: "#8BB4F7"
22
+ violet: "#A06CE8"
23
+ yellow: "#F2D160"
24
+ peach: "#F5B895"
25
+ mint: "#A8E6CF"
26
+ shadow: "rgba(26,26,26,0.08)"
27
+
28
+ typography:
29
+ # — reading ramp (Space Grotesk) —
30
+ body: { fontFamily: "Space Grotesk", cqw: 0.85, weight: 400, lineHeight: 1.6 }
31
+ subtitle: { fontFamily: "Space Grotesk", cqw: 0.95, weight: 400, tracking: "0.18em", upper: true }
32
+ pill-text: { fontFamily: "Space Grotesk", cqw: 0.75, weight: 600, tracking: "0.12em", upper: true }
33
+ label: { fontFamily: "Space Grotesk", px: 14, weight: 500, tracking: "0.1em", upper: true }
34
+ # — display / hero ramp (Bodoni Moda, ink, sentence case) —
35
+ card-headline:{ fontFamily: "Bodoni Moda", cqw: 1.9, weight: 700, lineHeight: 1.1 }
36
+ orbit-numeral:{ fontFamily: "Bodoni Moda", cqw: 2.6, weight: 700, lineHeight: 1.0 }
37
+ quote-display:{ fontFamily: "Bodoni Moda", cqw: 4.2, weight: 600, lineHeight: 1.3, tracking: "-0.01em" }
38
+ stat-number: { fontFamily: "Bodoni Moda", cqw: 3.6, weight: 800, lineHeight: 1.0, tracking: "-0.03em" }
39
+ section-headline:{ fontFamily: "Bodoni Moda", cqw: 4.0, weight: 700, lineHeight: 1.05, tracking: "-0.01em" }
40
+ headline: { fontFamily: "Bodoni Moda", cqw: 5.0, weight: 700, lineHeight: 1.05, tracking: "-0.02em" }
41
+ closing-display:{ fontFamily: "Bodoni Moda", cqw: 8.5, weight: 800, lineHeight: 0.95, tracking: "-0.03em" }
42
+ display: { fontFamily: "Bodoni Moda", cqw: 12.0, weight: 800, lineHeight: 0.88, tracking: "-0.03em" }
43
+
44
+ spacing:
45
+ pad: "5cqw"
46
+ gap-md: "2cqw"
47
+ card-pad: "2cqw 1.6cqw"
48
+
49
+ components:
50
+ pill:
51
+ rounded: "9999px (small) / 2rem (cards)"
52
+ border: "0.2cqw solid {colors.outline}"
53
+ backgroundColor: "any candy or {colors.white}"
54
+ description: "The universal container — every chip/button/label/stat tile/node/bar. No unstroked pill exists."
55
+ pill-card:
56
+ backgroundColor: "{colors.white}"
57
+ border: "0.2cqw solid {colors.outline}"
58
+ rounded: "2rem"
59
+ shadow: "0.4cqw 0.4cqw 0 {colors.shadow}"
60
+ typography: "{typography.card-headline} + {typography.body}"
61
+ description: "Holds a circular card-icon, Bodoni headline, Space Grotesk body."
62
+ stat-pill:
63
+ backgroundColor: "{colors.white}"
64
+ border: "0.2cqw solid {colors.outline}"
65
+ rounded: "2rem"
66
+ shadow: "0.3cqw 0.3cqw 0 {colors.shadow}"
67
+ typography: "{typography.stat-number} (COLORED) + {typography.pill-text}"
68
+ description: "The one place color touches a numeral; + a 40px accent bar."
69
+ title-pill:
70
+ backgroundColor: "{colors.yellow}"
71
+ border: "0.2cqw solid {colors.outline}"
72
+ rounded: "9999px"
73
+ shadow: "0.3cqw 0.3cqw 0 {colors.shadow}"
74
+ typography: "{typography.pill-text}"
75
+ description: "Sits above the display headline on cover/closing."
76
+ card-icon:
77
+ backgroundColor: "any candy"
78
+ border: "0.2cqw solid {colors.outline}"
79
+ rounded: "50%"
80
+ size: "60px"
81
+ typography: "Bodoni numeral/letter in {colors.ink}"
82
+ description: "Card mark."
83
+ floating-pill:
84
+ backgroundColor: "any candy"
85
+ border: "0.2cqw solid {colors.outline}"
86
+ rounded: "9999px / 50%"
87
+ transform: "rotate(−20°..+25°)"
88
+ shadow: "none"
89
+ typography: "{typography.pill-text}"
90
+ description: "Decorative wallpaper confetti, 5–8 per declarative frame. Flat — no shadow."
91
+ quote-highlight:
92
+ backgroundColor: "{colors.lime} / {colors.sky}"
93
+ border: "0.2cqw solid {colors.outline}"
94
+ rounded: "9999px"
95
+ description: "Inline candy pill wrapping a phrase inside a Bodoni quote — the emphasis mechanism, replacing bold/italic."
96
+ bar-track:
97
+ backgroundColor: "{colors.cream}"
98
+ border: "0.2cqw solid {colors.outline}"
99
+ rounded: "9999px"
100
+ fill: "child candy pill, value at right edge"
101
+ description: "36px pill chart track."
102
+ accent-line:
103
+ backgroundColor: "{colors.coral}"
104
+ rounded: "9999px"
105
+ size: "60×4 (80×4 closing)"
106
+ description: "Coral pill rule."
107
+ atmosphere:
108
+ background: "1–3 radial candy glows (6–15% opacity) over {colors.cream} + 4% grain overlay"
109
+ description: "Baseline canvas layers on every frame. Never absent."
110
+ ---
111
+
112
+ # Capsule — Frame (video / frame layer)
113
+
114
+ ## Overview
115
+
116
+ Capsule at frame scale is a **playful editorial system where every container is a pill.** The
117
+ `border-radius: 9999px` (small) / `2rem` (cards) rule plus a 2px ink outline wraps every chip,
118
+ card, icon, bar, and node — inflated, friendly, graphically distinct. The canvas is sun-bleached
119
+ cream warmed by soft radial candy glows and a permanent 4% grain overlay.
120
+
121
+ The voice is a two-face conversation: **Bodoni Moda** (didone serif, weight 700–800, always ink,
122
+ always sentence case) carries every headline, stat, and quote; **Space Grotesk** carries body and
123
+ all uppercase tracked pill/label text. Nine candy accents fill pills interchangeably with no
124
+ semantic meaning. Depth is a **soft hard-offset shadow** (4/6/8/12px in 8% ink) — lifted, not
125
+ stamped — reserved for content-bearing containers; decorative floating pills are flat.
126
+
127
+ **Key characteristics at frame scale:**
128
+
129
+ - **Pill geometry everywhere** — 9999px small, 2rem cards — each wrapped in a 2px `{colors.outline}` stroke.
130
+ - **Bodoni Moda** display (ink, sentence case) + **Space Grotesk** body/pills (uppercase, tracked).
131
+ - **Nine candy accents**, interchangeable; color touches stat numerals + pill fills, never headlines.
132
+ - **Soft offset shadows** (4/6/8/12px, 8% ink) on content containers only; floating pills are flat.
133
+ - **Floating decorative-pill wallpaper** (5–8, tilted) + radial glows + 4% grain on declarative frames.
134
+ - **Cream canvas** warmed by atmosphere — bare corners read as broken.
135
+
136
+ ## The Frame
137
+
138
+ ### Frame Craft Bar
139
+
140
+ Three eyeball tests gate every frame before any structural check:
141
+
142
+ - **Squint** — one Bodoni headline or stat dominates at **3–6× its nearest neighbor**.
143
+ - **Silence** — declarative frames carry **atmosphere, not clutter** (pills as wallpaper, not content); the **pillar-cards and stat grid are the dense exception**.
144
+ - **Restraint** — every pill carries the 2px outline; color touches **fills + stat numerals only** (never a headline); soft shadow on content-bearing pills only (floating pills are flat); no tenth accent.
145
+ - **Reference** — aim at a **Memphis / ice-cream-parlor editorial spread**; failure looks like a **flat, sticker-less SaaS card grid**.
146
+
147
+ - **Primary:** 1920×1080 (16:9). Display authored in **`cqw`** (`px ÷ 1920 × 100 = cqw`).
148
+ - **Vertical:** 1080×1920 (9:16). **Square:** 1080×1080 (1:1).
149
+ - **Safe area:** `pad` (5cqw); floating pills may bleed off edges as wallpaper.
150
+
151
+ **The container law (load-bearing).** Every frame ground sets `container-type: size` AND carries
152
+ the radial-glow + grain atmosphere; ALL frame-relative units are `cqw`/`cqh` against it — never
153
+ `vw`. Pill radii stay `9999px`/`2rem` (shape, not scale); shadow offsets scale in `cqw`.
154
+
155
+ ## Colors
156
+
157
+ Tokens identical to the source. `{colors.cream}` is the ground; `{colors.ink}`/`{colors.outline}`
158
+ is type + the universal 2px stroke; the nine candy accents fill pills with **no semantic mapping**
159
+ — pair a warm (coral/yellow/peach) with a cool (sky/lavender/violet/mint) with a neutral-bright
160
+ (lime); never two same-family adjacent. Color appears on **stat numerals and pill fills only** —
161
+ never on a Bodoni headline. Shadow is always `{colors.shadow}` (8% ink). No tenth color.
162
+
163
+ ## Typography
164
+
165
+ Two ramps. The **reading ramp** (Space Grotesk body 0.85cqw, uppercase tracked pill/label text)
166
+ carries copy + chips; the **display ramp** (Bodoni `card-headline` 1.9cqw → `display` 12cqw, all
167
+ 700–800) carries every headline, stat, and quote.
168
+
169
+ - **Legibility floor:** any load-bearing line ≥ **1.4cqw**; px labels are chrome only.
170
+ - **Fit-to-measure:** size the headline to its length. Cap the block at **≤ 78cqw**; ≤3 words → `display`/`closing-display`; 4–6 → `headline`; 7+ → `section-headline`.
171
+ - **Bodoni 700+ in ink, sentence case** (italic via `<em>` only, color allowed on the italic key word as a candy hue); **Space Grotesk pills/labels uppercase, 0.08em+ tracked**; negative-track Bodoni display.
172
+
173
+ ## Depth & Surface
174
+
175
+ Soft hard-offset shadow is the only depth, in `{colors.shadow}` (8% ink), bottom-right:
176
+
177
+ - **0.2cqw (4px)** small nodes; **0.3cqw (6px)** stat-pills, orbit pills, diagram nodes; **0.4cqw (8px)** pillar-cards; **0.6cqw (12px)** the visual frame.
178
+ - The **2px outline** does most of the lift against cream; the shadow adds the float.
179
+ - **Decorative floating pills cast no shadow** — this separates content from atmosphere at a glance.
180
+
181
+ **Ceiling:** no blurred shadow, no re-colored shadow, no gradient depth.
182
+
183
+ ## Shapes
184
+
185
+ - **9999px** — all small pills (chips, buttons, bars, nodes, floating pills, quote highlights, accent lines).
186
+ - **2rem** — larger cards (pillar-card, stat-pill, chart container, visual frame).
187
+ - **50%** — circular pills (card-icon 60px, step-node 56px, orbit-center 160px, nav dots).
188
+ - **0** — only the grain overlay and the gradient region inside a visual frame. No sharp-cornered text container exists.
189
+
190
+ ## Components
191
+
192
+ - **pill** — the universal 2px-outlined container. **pill-card / stat-pill / title-pill** — the white/yellow content pills with soft shadows.
193
+ - **card-icon** — circular candy mark; **floating-pill** — flat tilted wallpaper confetti; **quote-highlight** — inline candy emphasis pill.
194
+ - **bar-track** — pill-shaped chart bar; **accent-line** — coral pill rule; **atmosphere** — the baseline glow + grain on every frame.
195
+
196
+ ## Frame Treatments
197
+
198
+ > Recipe: ground · container · composes · focal · chrome · accent · silence · Fixed/Free · density.
199
+ > Atmosphere (glow + grain) on every frame; declarative frames carry floating-pill wallpaper.
200
+
201
+ ### 1 · Cover (identity · move: title pill + display · centered)
202
+
203
+ **Ground** cream + atmosphere, floating-pill wallpaper. **Composes** title-pill, display, accent-line, floating-pills (5–8). **Focal** a 1–2 line Bodoni `display` headline in ink (italic key word in a candy hue), centered, under a yellow title-pill; a coral accent-line below. **Chrome** uppercase Space Grotesk sub. **Accent** the italic word + candy floating pills. **Silence** content centered; pills fill the edges. **Fixed** pill outlines, Bodoni ink, flat floating pills. **Free** title, which candy hues, pill words/positions. **Density** medium-atmospheric.
204
+
205
+ ### 2 · Pillar Cards (catalog · move: 3-up grid · left — the dense frame)
206
+
207
+ **Ground** cream + atmosphere. **Composes** title-pill (lavender), section-headline, 3× pill-card. **Focal** three white 2rem pill-cards (circular candy card-icon, Bodoni card-headline, Space Grotesk body) with 0.4cqw shadows, under a Bodoni section-headline. **Chrome** a lavender header tag-pill. **Accent** the three card-icon fills (coral/sky/lime sequence). **Silence** tight — the density exception (no floating pills here). **Fixed** 2px outlines, soft shadows, ink headlines. **Free** card content, icon hues. **Density** dense-exception.
208
+
209
+ ### 3 · Stat Grid (data · move: stat pills · centered head)
210
+
211
+ **Ground** cream + atmosphere. **Composes** section-headline, 3–4× stat-pill. **Focal** a row of white stat-pills, each a COLORED Bodoni stat-number + uppercase label + accent bar. **Accent** the colored numerals + bars (the one place color meets type). **Silence** moderate. **Fixed** 2rem pills, colored numerals only, soft shadow. **Free** figures (from script), hues. **Density** standard.
212
+
213
+ ### 4 · Pull Quote (quote · move: highlight pill · left)
214
+
215
+ **Ground** cream + atmosphere, a few floating pills. **Composes** quote-display, quote-highlight, accent-line. **Focal** a Bodoni quote in ink with one phrase wrapped in a lime/sky `quote-highlight` pill (the emphasis mechanism — never bold). **Chrome** uppercase attribution. **Accent** the highlight pill. **Silence** ~50%. **Fixed** Bodoni 600, highlight-pill emphasis. **Free** quote, highlight color/phrase. **Density** sparse.
216
+
217
+ ### 5 · Orbit (concept · move: gravitational pills · centered)
218
+
219
+ **Ground** cream + atmosphere. **Composes** orbit-center (160px lime circle, Bodoni ordinal), 4–6 orbit-pill satellites (candy, tilted, soft shadow). **Focal** the lime center anchored by orbiting candy pills. **Accent** the satellite hues. **Silence** moderate. **Fixed** circular center, outlined satellites with shadow. **Free** ordinal, satellite words/positions. **Density** medium.
220
+
221
+ ### 6 · Closing Plate (closer · move: title pill + display · centered)
222
+
223
+ **Ground** cream + atmosphere, floating-pill wallpaper. **Composes** title-pill (yellow), closing-display, accent-line, floating-pills. **Focal** a Bodoni `closing-display` sign-off in ink (italic word in violet/candy), centered. **Accent** the italic word + pills. **Silence** content centered. **Fixed** Bodoni ink, flat pills. **Free** sign-off, pill words. **Density** medium-atmospheric.
224
+
225
+ ## Composition Rules
226
+
227
+ ### Do
228
+
229
+ - Make every text container a **pill** (9999px / 2rem) with the **2px ink outline**.
230
+ - Set **Bodoni headlines in ink, sentence case**; color lives on stat numerals + pill fills.
231
+ - Use **soft offset shadows** (4/6/8/12px, 8% ink) on content containers; keep floating pills flat.
232
+ - Float **5–8 candy pills** + radial glows + grain on declarative frames; bare corners read as broken.
233
+ - Wrap inline emphasis in a **candy quote-highlight pill**, never bold/italic-alone.
234
+ - Pair warm+cool+neutral-bright accents; lean centered on cover/closer, left on cards/quote.
235
+
236
+ ### Don't
237
+
238
+ - No sharp-cornered text container; no unstroked pill.
239
+ - No colored Bodoni headline; no uppercase Bodoni.
240
+ - No blurred or re-colored shadow; no tenth accent color.
241
+ - No shadow on decorative floating pills.
242
+ - Don't blow a headline edge-to-edge — fit to measure.
243
+
244
+ ## Aspect-Ratio Behavior
245
+
246
+ | Treatment | 16:9 | 9:16 | 1:1 |
247
+ | ------------ | ------------------------------ | --------------------------- | --------------------- |
248
+ | Cover | display centered, pills around | display top, pills band | centered, fewer pills |
249
+ | Pillar Cards | head + 3-up | head + 3 stacked | head + 2+1 |
250
+ | Stat Grid | 3–4 across | 2×2 | 2×2 |
251
+ | Pull Quote | quote left | quote top, highlight inline | centered |
252
+ | Orbit | center + 4–6 satellites | center + 3 satellites | center + 4 |
253
+ | Closing | centered + pills | centered, pills band | centered |
254
+
255
+ `pad` holds on the short edge; re-step display above the 1.4cqw floor. Floating-pill count drops
256
+ on tighter ratios so they stay wallpaper, not clutter.
257
+
258
+ ## Approved Entities
259
+
260
+ No real customers, logos, or vendors are defined in the source — render any such mark as a
261
+ placeholder. Floating-pill words are neutral atmospheres ("VISION", "FUTURE", "NEXT"), never content-specific.
262
+
263
+ ## Numerals & Claims (hard rule)
264
+
265
+ Never invent figures, stats, or counts at frame scale. Render slots as `— figure —`, `{metric}`,
266
+ `N%`. Stat-pill numbers and bar-track widths carry placeholders until the script supplies values.
267
+
268
+ ## Pre-Render Self-Audit
269
+
270
+ - **Squint** — one Bodoni element dominates at 3–5× its neighbor.
271
+ - **Silence** — declarative frames carry atmosphere not clutter; only pillar/stat grids run dense.
272
+ - **Pills** — every container is a pill with a 2px outline; no sharp text container.
273
+ - **Color** — candy on fills + stat numerals only; headlines ink; no tenth hue.
274
+ - **Depth** — soft offset shadow on content only; floating pills flat; no blur.
275
+ - **Type** — Bodoni ink sentence-case, fit-to-measure; pills uppercase tracked; ≥1.4cqw floor.
276
+ - **Anchor** — centered on cover/closer/orbit, left on cards/quote; no 3 consecutive alike.
277
+ - **Fabrication** — every numeral traces to the script, else placeholder.
278
+
279
+ ## Known Gaps
280
+
281
+ - **Motion intentionally out of scope.** frame.md specifies composition only; the 0.6s fade in the source is a deck mechanic.
282
+ - **Bodoni Moda + Space Grotesk via Google Fonts.** CJK pairing (ZCOOL XiaoWei / Yozai) carries over from the source.
283
+ - **9:16 / 1:1 are guidance**; verify the floor and that floating-pill count scales down.
284
+ - The grain overlay, radial glows, floating pills, and bar fills are CSS-only; no external imagery is required.
@@ -0,0 +1,224 @@
1
+ <!--
2
+ Capsule — caption skin (preset-local source).
3
+
4
+ This is the preset's own lower-third karaoke caption look. product-launch-video's
5
+ Step 2 copies it into the project as caption-skin.html; captions.mjs then fills the
6
+ three reserved holes, wraps the fragment in a <template>, and writes
7
+ compositions/captions.html:
8
+ · the empty GROUPS array → the engine's scene-aware word groups
9
+ · the 0 duration + 0 width/height → real total + canvas size
10
+ · the empty data-brand-tokens style → :root tokens derived from the project's frame.md
11
+
12
+ Token contract — reference ONLY this fixed vocab (captions.mjs injects it from
13
+ frame.md, so the Step-2 brand overlay flows through; each var has a capsule literal
14
+ fallback for standalone preview):
15
+ --cap-ink · --cap-canvas · --cap-accent · --cap-accent-2 · --font-display ·
16
+ --font-body · --cap-band-top · --cap-band-height
17
+ Hooks (do not rename): .caption-group / .caption-word + states .is-active / .is-spoken,
18
+ root data-composition-id="captions", timeline at window.__timelines["captions"].
19
+ State changes use gsap.set({className}) (applied on the engine's frame-by-frame seek);
20
+ never tl.call() callbacks (seek does not fire them → wrong state on render).
21
+
22
+ Visual: a cream caption pill — fully-rounded (9999px), wrapped in capsule's universal
23
+ 2px ink outline, lifted on a soft hard-offset shadow (no blur), Bodoni Moda glyphs in
24
+ ink, sentence case. Upcoming words sit in faint ink; the current word lights up as a
25
+ rounded candy highlight — a candy fill plus a box-shadow spread halo that follows the
26
+ pill radius (a soft candy capsule around the word, no blur, NO layout shift) with ink
27
+ reading on top; spoken words settle to solid ink, the candy highlight cleared.
28
+ -->
29
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
30
+
31
+ <!-- captions.mjs injects the project's :root tokens here -->
32
+ <style data-brand-tokens></style>
33
+
34
+ <style>
35
+ #captions-root {
36
+ position: absolute;
37
+ inset: 0;
38
+ pointer-events: none;
39
+ }
40
+ .caption-layer {
41
+ position: absolute;
42
+ inset: 0;
43
+ z-index: 20;
44
+ pointer-events: none;
45
+ }
46
+ /* the keep-out band, from captionBand(H) — frame content stays above it */
47
+ .caption-stage {
48
+ position: absolute;
49
+ left: 0;
50
+ right: 0;
51
+ top: var(--cap-band-top, 900px);
52
+ height: var(--cap-band-height, 180px);
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ }
57
+ .caption-group {
58
+ /* every group is absolutely stacked over the SAME band — exactly one shown at a
59
+ time via opacity. Must be absolute: in-flow groups would lay out side-by-side. */
60
+ position: absolute;
61
+ inset: 0;
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ opacity: 0;
66
+ }
67
+
68
+ /* THE caption capsule — cream pill, fully-rounded (9999px), capsule's universal 2px
69
+ ink outline, lifted on a soft hard-offset shadow (no blur, 8% ink) */
70
+ .caption-pill {
71
+ max-width: 80%;
72
+ padding: 18px 46px 20px;
73
+ background: var(--cap-canvas, #f5f5f0);
74
+ border: 2px solid var(--cap-ink, #1a1a1a);
75
+ border-radius: 9999px;
76
+ box-shadow: 8px 8px 0 color-mix(in srgb, var(--cap-ink, #1a1a1a) 8%, transparent);
77
+ }
78
+ .caption-line {
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ justify-content: center;
82
+ gap: 0.12em 0.36em;
83
+ font-family: var(--font-display, "Bodoni Moda"), Georgia, serif;
84
+ font-weight: 700;
85
+ font-size: clamp(38px, 4.2vw, 56px);
86
+ line-height: 1.16;
87
+ letter-spacing: -0.02em;
88
+ }
89
+
90
+ /* upcoming — faint ink, no highlight */
91
+ .caption-word {
92
+ display: inline-block;
93
+ padding: 0 0.1em;
94
+ border-radius: 9999px;
95
+ color: color-mix(in srgb, var(--cap-ink, #1a1a1a) 42%, var(--cap-canvas, #f5f5f0));
96
+ }
97
+ /* current word — THE rounded candy highlight: a candy fill + a box-shadow spread
98
+ halo that follows the pill radius (a soft candy capsule around the word, no blur,
99
+ no layout shift), ink reading on top */
100
+ .caption-word.is-active {
101
+ color: var(--cap-ink, #1a1a1a);
102
+ background: var(--cap-accent, #e85d4e);
103
+ box-shadow: 0 0 0 0.14em var(--cap-accent, #e85d4e);
104
+ }
105
+ /* already spoken — solid ink, candy highlight cleared */
106
+ .caption-word.is-spoken {
107
+ color: var(--cap-ink, #1a1a1a);
108
+ background: transparent;
109
+ box-shadow: none;
110
+ }
111
+
112
+ /* optional per-word accents (dormant until a word-classer tags them) */
113
+ /* brand / key term — Bodoni Moda italic, capsule's display inflection */
114
+ .caption-word.cap-brand {
115
+ font-style: italic;
116
+ }
117
+ /* numerals / data — the Space Grotesk voice, slightly recessed */
118
+ .caption-word.cap-num {
119
+ font-family: var(--font-body, "Space Grotesk"), ui-sans-serif, sans-serif;
120
+ color: color-mix(in srgb, var(--cap-ink, #1a1a1a) 72%, var(--cap-canvas, #f5f5f0));
121
+ }
122
+ /* emphasis — a second-candy rounded underline (the counter-accent) */
123
+ .caption-word.cap-cta {
124
+ text-decoration: underline;
125
+ text-decoration-thickness: 3px;
126
+ text-decoration-color: var(--cap-accent-2, #f2d160);
127
+ text-underline-offset: 0.12em;
128
+ }
129
+
130
+ @media (max-aspect-ratio: 9/16) {
131
+ .caption-pill {
132
+ max-width: 92%;
133
+ }
134
+ .caption-line {
135
+ font-size: clamp(34px, 5.4vw, 48px);
136
+ }
137
+ }
138
+ </style>
139
+
140
+ <div
141
+ id="captions-root"
142
+ data-composition-id="captions"
143
+ data-timeline-locked
144
+ data-start="0"
145
+ data-duration="0"
146
+ data-fps="30"
147
+ data-width="0"
148
+ data-height="0"
149
+ >
150
+ <div class="caption-layer" aria-hidden="true">
151
+ <div id="caption-stage" class="caption-stage"></div>
152
+ </div>
153
+ </div>
154
+
155
+ <script>
156
+ // captions.mjs injects the engine's scene-aware groups + real duration here.
157
+ var GROUPS = [];
158
+ var DURATION = 0;
159
+
160
+ (function () {
161
+ var stage = document.getElementById("caption-stage");
162
+
163
+ // build DOM: one .caption-group per group, .caption-word per word
164
+ GROUPS.forEach(function (group, g) {
165
+ var groupEl = document.createElement("div");
166
+ groupEl.className = "caption-group";
167
+ groupEl.id = "caption-group-" + g;
168
+ var pill = document.createElement("div");
169
+ pill.className = "caption-pill";
170
+ var line = document.createElement("div");
171
+ line.className = "caption-line";
172
+ (group.words || []).forEach(function (w, i) {
173
+ var span = document.createElement("span");
174
+ span.className = "caption-word";
175
+ span.id = "caption-word-" + g + "-" + i;
176
+ span.textContent = String(w.text);
177
+ line.appendChild(span);
178
+ });
179
+ pill.appendChild(line);
180
+ groupEl.appendChild(pill);
181
+ stage.appendChild(groupEl);
182
+ });
183
+
184
+ window.__timelines = window.__timelines || {};
185
+ var tl = gsap.timeline({ paused: true });
186
+
187
+ GROUPS.forEach(function (group, g) {
188
+ var groupEl = document.getElementById("caption-group-" + g);
189
+ var words = group.words || [];
190
+ var next = GROUPS[g + 1];
191
+ var isLast = g === GROUPS.length - 1;
192
+ var start = Math.max(0, Number(group.start));
193
+ var end = isLast ? DURATION : Math.min(Number(next.start), Number(group.end) + 0.3);
194
+ if (end <= start) end = start + 0.01;
195
+
196
+ // group on/off — exactly one group visible at a time
197
+ tl.set(groupEl, { opacity: 1 }, start);
198
+ tl.set(groupEl, { opacity: 0 }, end);
199
+
200
+ // 3-state karaoke via className SETS — seek-safe (gsap.set applies on the
201
+ // engine's frame-by-frame seek; .call callbacks would NOT fire).
202
+ words.forEach(function (w, i) {
203
+ var el = document.getElementById("caption-word-" + g + "-" + i);
204
+ var at = Math.max(start, Number(w.start));
205
+ tl.set(el, { className: "caption-word" }, start); // upcoming (also resets on reverse-seek)
206
+ tl.set(el, { className: "caption-word is-active" }, at); // current
207
+ tl.fromTo(el, { scale: 0.92 }, { scale: 1, duration: 0.18, ease: "back.out(2)" }, at);
208
+ if (i + 1 < words.length) {
209
+ var nextAt = Math.max(start, Number(words[i + 1].start));
210
+ tl.set(el, { className: "caption-word is-spoken" }, nextAt); // demote when next activates
211
+ }
212
+ });
213
+ if (words.length) {
214
+ var lastEl = document.getElementById("caption-word-" + g + "-" + (words.length - 1));
215
+ var lastSpoken = Math.min(end, Number(words[words.length - 1].end) + 0.1);
216
+ tl.set(lastEl, { className: "caption-word is-spoken" }, lastSpoken);
217
+ }
218
+ });
219
+
220
+ // full-span anchor so the sub-comp timeline spans the whole video
221
+ tl.to({}, { duration: DURATION }, 0);
222
+ window.__timelines["captions"] = tl;
223
+ })();
224
+ </script>