@mevdragon/vidfarm-devcli 0.13.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 (427) 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 +60 -4
  405. package/SKILL.platform.md +7 -2
  406. package/demo/dist/app.css +1 -1
  407. package/demo/dist/app.js +485 -86
  408. package/dist/src/account-pages-legacy.js +9 -14
  409. package/dist/src/app.js +659 -159
  410. package/dist/src/cli.js +618 -17
  411. package/dist/src/composition-runtime.js +286 -6
  412. package/dist/src/devcli/composition-edit.js +176 -8
  413. package/dist/src/devcli/doctor.js +192 -0
  414. package/dist/src/devcli/hyperframes-cli.js +118 -0
  415. package/dist/src/devcli/skills.js +476 -0
  416. package/dist/src/devcli/stills.js +249 -0
  417. package/dist/src/devcli/transitions.js +205 -0
  418. package/dist/src/editor-chat.js +260 -4
  419. package/dist/src/frontend/template-editor-chat.js +6 -5
  420. package/dist/src/homepage.js +2 -48
  421. package/dist/src/hyperframes/composition.js +188 -7
  422. package/dist/src/services/composition-lint.js +199 -0
  423. package/dist/src/services/hyperframes.js +127 -28
  424. package/dist/src/services/serverless-records.js +7 -0
  425. package/dist/src/template-editor-shell.js +87 -48
  426. package/package.json +2 -1
  427. package/public/assets/page-runtime-client-app.js +31 -31
@@ -0,0 +1,307 @@
1
+ ---
2
+ version: alpha
3
+ name: Blue Professional — Frame (video / frame layer)
4
+ description: >
5
+ Video-first companion to Blue Professional's design.md. The unit is the frame (1920×1080). Atoms
6
+ are identical and sacred — the warm cream canvas, a single saturated cobalt (#1e2bfa) as the only
7
+ accent, the three-step gray text ladder, Space Grotesk (display/numerals/chrome) + Inter (body),
8
+ soft cobalt-tinted cards (4% fill / 20% border / 10–14px radius) with NO shadows, pill chrome, and
9
+ the cobalt progress bar. 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
+ bg: "#fdfae7"
15
+ primary: "#1e2bfa"
16
+ text: "#111111"
17
+ text-muted: "#6b6b6b"
18
+ text-light: "#9a9a9a"
19
+ accent-light: "rgba(30,43,250,0.08)"
20
+ accent-medium: "rgba(30,43,250,0.15)"
21
+ border: "rgba(30,43,250,0.2)"
22
+ card-bg: "rgba(30,43,250,0.04)"
23
+ positive: "#059669"
24
+ negative: "#dc2626"
25
+
26
+ radii:
27
+ pill: "100px"
28
+ card-lg: "14px"
29
+ card-md: "12px"
30
+ card-sm: "10px"
31
+ bar: "6px"
32
+ circle: "50%"
33
+
34
+ typography:
35
+ # — reading ramp (Inter body + Space Grotesk chrome) —
36
+ body: { fontFamily: "Inter", cqw: 0.85, weight: 400, lineHeight: 1.6, color: "text-muted" }
37
+ h4-eyebrow:{ fontFamily: "Space Grotesk", cqw: 0.8, weight: 600, tracking: "0.08em", upper: true, color: "primary" }
38
+ tag: { fontFamily: "Space Grotesk", px: 12, weight: 500, color: "primary" }
39
+ counter: { fontFamily: "Space Grotesk", px: 13, weight: 500, tracking: "0.05em", color: "text-muted" }
40
+ # — display / numerical ramp (Space Grotesk, near-black headings / cobalt numerals) —
41
+ h3: { fontFamily: "Space Grotesk", cqw: 1.25, weight: 500, lineHeight: 1.3, tracking: "-0.02em", color: "text" }
42
+ stat-num:{ fontFamily: "Space Grotesk", cqw: 1.9, weight: 700, lineHeight: 1.0, color: "primary" }
43
+ blockquote:{ fontFamily: "Space Grotesk", cqw: 2.4, weight: 500, lineHeight: 1.35, color: "text" }
44
+ h2: { fontFamily: "Space Grotesk", cqw: 2.6, weight: 600, lineHeight: 1.1, tracking: "-0.02em", color: "text" }
45
+ metric-value:{ fontFamily: "Space Grotesk", cqw: 3.0, weight: 700, lineHeight: 1.0, color: "primary" }
46
+ h1: { fontFamily: "Space Grotesk", cqw: 4.2, weight: 700, lineHeight: 1.08, tracking: "-0.02em", color: "text" }
47
+ quote-mark:{ fontFamily: "Space Grotesk", cqw: 8.0, weight: 700, lineHeight: 0.5, color: "primary", opacity: 0.15 }
48
+
49
+ spacing:
50
+ pad-x: "5cqw"
51
+ pad-y-top: "5cqw"
52
+ gap-cards: "1.4cqw"
53
+ accent-line: "60px × 4px"
54
+
55
+ components:
56
+ card-tinted:
57
+ backgroundColor: "{colors.card-bg}"
58
+ border: "1.5px solid {colors.border}"
59
+ rounded: "{radii.card-lg}"
60
+ shadow: "none"
61
+ description: "Universal content card. Never solid-colored, never opaque-bordered, NO shadow."
62
+ metric-card:
63
+ backgroundColor: "{colors.card-bg}"
64
+ border: "1.5px solid {colors.border}"
65
+ rounded: "{radii.card-lg}"
66
+ typography: "{typography.metric-value} ({colors.primary}) + {typography.metric-label} + {typography.metric-desc}"
67
+ description: "+ optional inline ↑/↓ change chip ({colors.positive}/{colors.negative} text, no fill)."
68
+ tag-pill:
69
+ backgroundColor: "{colors.accent-light}"
70
+ textColor: "{colors.primary}"
71
+ rounded: "{radii.pill}"
72
+ typography: "{typography.tag}"
73
+ description: "Top-right of the slide-header."
74
+ cta-button:
75
+ backgroundColor: "{colors.primary}"
76
+ textColor: "{colors.bg}"
77
+ rounded: "{radii.pill}"
78
+ typography: "Space Grotesk 600"
79
+ shadow: "soft cobalt on hover only — the system's only shadow"
80
+ description: "The one solid element."
81
+ accent-line:
82
+ backgroundColor: "{colors.primary}"
83
+ size: "60×4, 2px radius"
84
+ description: "Above cover titles / eyebrow separators."
85
+ bar-track:
86
+ backgroundColor: "{colors.accent-light}"
87
+ fill: "{colors.primary} (display:block so width resolves)"
88
+ rounded: "{radii.bar}"
89
+ description: "28px track; fill carries the value."
90
+ step-circle:
91
+ backgroundColor: "{colors.primary}"
92
+ textColor: "{colors.bg}"
93
+ rounded: "50%"
94
+ size: "56px"
95
+ description: "Sequential steps fade opacity 1.0→0.85→0.7→0.55."
96
+ split-highlight:
97
+ backgroundColor: "{colors.accent-light}"
98
+ borderLeft: "4px solid {colors.primary}"
99
+ rounded: "{radii.card-md}"
100
+ description: "Inline pull-quote callout."
101
+ slide-header:
102
+ typography: "{typography.h4-eyebrow} (cobalt) left, tag-pill right; {typography.h2} below"
103
+ description: "Top band of every content frame."
104
+ atmosphere:
105
+ elements: "clipped diagonal cobalt-tint panel, 3×3 cobalt dot grid, concentric closing rings"
106
+ description: "Cover/closing only. Never on content frames."
107
+ progress-bar:
108
+ backgroundColor: "{colors.primary}"
109
+ size: "3px tall, bottom edge, width grows with index"
110
+ description: "Persistent progress strip."
111
+ ---
112
+
113
+ # Blue Professional — Frame (video / frame layer)
114
+
115
+ ## Overview
116
+
117
+ Blue Professional at frame scale is a **consulting-grade system: restraint with one strong
118
+ commitment.** A warm cream canvas and a single saturated cobalt that carries every accent —
119
+ eyebrow, metric, CTA, chart fill, progress bar. No secondary brand color, no pastels, just cream,
120
+ cobalt, and a tight ladder of grays. The register is investment-research / McKinsey briefing:
121
+ measured, data-dense without crowding, executive-readable at distance.
122
+
123
+ The voice is two faces in fixed roles: **Space Grotesk** (display, every numeral, all chrome —
124
+ eyebrows uppercase 0.08em) and **Inter** (body, muted gray, line 1.6). Headlines are near-black;
125
+ cobalt is reserved for accent moments. Depth is **soft and tinted** — 4% cobalt card fills with 20%
126
+ cobalt borders and 10–14px radii — never shadowed. The lack of harsh shadows is the premium signal.
127
+
128
+ **Key characteristics at frame scale:**
129
+
130
+ - **Warm cream ground** on every frame; **single cobalt** as the only accent.
131
+ - **Space Grotesk** (display/numerals/chrome) + **Inter** (body) — near-black headlines, cobalt numerals.
132
+ - **Tinted cards** — cobalt 4% fill, cobalt 20% 1.5px border, 10–14px radius, **no shadow**.
133
+ - **Pill chrome** (100px) — tag pills + the one solid cobalt CTA; cobalt **progress bar**.
134
+ - **Soft rounded corners everywhere** (no square corners save the progress bar).
135
+ - **Atmosphere** (diagonal panel, dot grid, concentric rings) on cover/closing only.
136
+
137
+ ## The Frame
138
+
139
+ ### Frame Craft Bar
140
+
141
+ Three eyeball tests gate every frame before any structural check:
142
+
143
+ - **Squint** — one **near-black headline or cobalt numeral** dominates at 3–6× its neighbor.
144
+ - **Silence** — content frames read **balanced, not crowded**; the **dashboard is the one dense exception**.
145
+ - **Restraint** — a **single cobalt accent** carries everything; headlines stay near-black (never cobalt); no shadows (tinted cards do the lift); positive/negative inline-text only.
146
+ - **Reference** — aim at an **investment-research / McKinsey quarterly briefing**; failure looks like a **heavy-outlined, multi-color dashboard**.
147
+
148
+ - **Primary:** 1920×1080 (16:9). Display authored in **`cqw`** (`px ÷ 1920 × 100 = cqw`).
149
+ - **Vertical:** 1080×1920 (9:16). **Square:** 1080×1080 (1:1).
150
+ - **Safe area:** `pad-x` 5cqw; bottom reserves room for the counter + progress bar.
151
+
152
+ **The container law (load-bearing).** Every frame ground sets `container-type: size`; ALL
153
+ frame-relative units are `cqw`/`cqh` against it — never `vw`. Card radii stay px (10–14px); the
154
+ pill radius stays 100px; borders stay 1–1.5px.
155
+
156
+ ## Colors
157
+
158
+ Tokens identical to the source. `{colors.bg}` cream is the universal ground; `{colors.primary}`
159
+ cobalt is the **only** accent — every eyebrow, numeral, CTA, chart fill, progress bar, and the 4px
160
+ highlight left-rule. Headlines are `{colors.text}` near-black (never cobalt); body is
161
+ `{colors.text-muted}`; tertiary is `{colors.text-light}`. Cards fill `{colors.card-bg}` (4%) with
162
+ `{colors.border}` (20%) borders. `{colors.positive}`/`{colors.negative}` appear **only inline** on
163
+ directional change chips — never as fills. **No second accent color.**
164
+
165
+ ## Typography
166
+
167
+ Two ramps. The **reading ramp** (Inter body 0.85cqw muted; Space Grotesk eyebrow uppercase 0.08em
168
+ cobalt) carries copy + chrome; the **display/numerical ramp** (Space Grotesk `h3` 1.25cqw → `h1`
169
+ 4.2cqw near-black; numerals `stat-num`/`metric-value` in cobalt) carries headings and figures.
170
+
171
+ - **Legibility floor:** any load-bearing line ≥ **1.4cqw**; px chrome (tag/counter) is colophon only.
172
+ - **Fit-to-measure:** size the headline to its length. Cap the block at **≤ 78cqw**; ≤3 words → `h1`; 4–6 → `h2`; 7+ → `h3`. Cobalt numerals scale `metric-value`→`stat-num` by card size.
173
+ - **Headlines near-black, −0.02em**; **eyebrows cobalt, uppercase, 0.08em**; **numerals cobalt 600–700**; **body Inter 400 muted, line 1.6**. No italic, no uppercase body, no cobalt headline.
174
+
175
+ ## Depth & Surface
176
+
177
+ Soft and tinted — never offset. Depth from:
178
+
179
+ - **Tinted cards** — 4% cobalt fill + 20% cobalt 1.5px border + 10–14px radius reads as lifted without offset.
180
+ - **Border-left accent** — the 4px cobalt rule on split-highlight blocks pulls a callout forward.
181
+ - **Rounded corners** — the 10–14px radius is part of the softness; square corners break it.
182
+
183
+ **Ceiling:** zero box-shadow on content (the only shadow is a soft cobalt CTA _hover_); no opaque cobalt borders; no harsh outlines.
184
+
185
+ ## Shapes
186
+
187
+ - **100px** — tag pills, CTA, nav buttons (pill chrome).
188
+ - **14/12/10px** — cards by size (large metric / standard stat / detail + mini).
189
+ - **6px** — bar tracks + fills. **50%** — step circles, nav circles, dots, closing rings.
190
+ - **0** — only the progress bar. No square-cornered content.
191
+
192
+ ## Components
193
+
194
+ - **card-tinted / metric-card** — the universal soft-tint content cards (no shadow).
195
+ - **tag-pill / cta-button / accent-line** — the cobalt pill chrome + the one solid CTA + the 60×4 rule.
196
+ - **bar-track / step-circle / split-highlight** — cobalt data + sequence + callout patterns.
197
+ - **slide-header** (eyebrow + tag pill) — the structural rhythm; **atmosphere** (diagonal/dots/rings) on cover/closing only; **progress-bar** on every frame.
198
+
199
+ ## Frame Treatments
200
+
201
+ > Recipe: ground · container · composes · focal · chrome · accent · silence · Fixed/Free · density.
202
+ > Atmosphere only on cover/closing; content frames carry the slide-header rhythm.
203
+
204
+ ### 1 · Cover (identity · move: diagonal accent · left)
205
+
206
+ **Ground** cream + the clipped diagonal cobalt-tint panel (right ~36%) + a 3×3 cobalt dot grid.
207
+ **Composes** accent-line, meta, h1, body sub. **Focal** a 2-line Space Grotesk `h1` near-black, left,
208
+ under a cobalt accent-line + meta. **Chrome** counter + progress bar. **Accent** the cobalt line +
209
+ diagonal panel. **Silence** the diagonal panel holds the right third. **Fixed** near-black h1, cobalt
210
+ accents, atmosphere here only. **Free** title, meta. **Density** low.
211
+
212
+ ### 2 · Dashboard (data · move: 3-up metric grid · the dense frame)
213
+
214
+ **Ground** cream, `pad-x`. **Composes** slide-header (eyebrow + tag-pill), h2, 3× metric/tinted card.
215
+ **Focal** a row of tinted cards — cobalt `metric-value` + Inter label + muted desc + optional
216
+ green/red change chip. **Chrome** eyebrow left, tag-pill right; progress bar. **Accent** the cobalt
217
+ numerals. **Silence** tight — the density exception. **Fixed** 4% tint cards, 20% borders, no shadow,
218
+ cobalt numerals. **Free** figures (from script), labels. **Density** dense-exception.
219
+
220
+ ### 3 · Bar Ranking (data · move: cobalt bars · left)
221
+
222
+ **Ground** cream, `pad-x`. **Composes** eyebrow, h2, bar-track rows. **Focal** 3–5 labeled
223
+ cobalt-fill bars on cobalt-8% tracks with cobalt percentages. **Chrome** eyebrow; progress bar.
224
+ **Accent** the cobalt fills + figures. **Silence** moderate. **Fixed** 6px tracks, cobalt fills.
225
+ **Free** rows, values (from script). **Density** standard.
226
+
227
+ ### 4 · Pull Quote (quote · move: concentric rings · centered)
228
+
229
+ **Ground** cream, centered, with faint concentric closing-rings behind. **Composes** quote-mark,
230
+ blockquote, cite. **Focal** a Space Grotesk `blockquote` near-black under a 15%-opacity cobalt
231
+ quote-mark; an uppercase cobalt-muted cite beneath. **Accent** the faint rings + quote-mark. **Silence**
232
+ ~55%. **Fixed** near-black quote, soft rings. **Free** quote, cite. **Density** low.
233
+
234
+ ### 5 · Split + Highlight (content · move: asymmetric split · left)
235
+
236
+ **Ground** cream, two columns. **Composes** eyebrow, h2, body, split-highlight block. **Focal** an
237
+ Inter body column beside a cobalt-8% highlight block (4px cobalt left rule) carrying an inline pull
238
+ quote. **Accent** the highlight's left rule. **Silence** generous gutter. **Fixed** tinted highlight,
239
+ 4px cobalt rule. **Free** body, callout. **Density** standard.
240
+
241
+ ### 6 · Closing / CTA (closer · move: centered rings + CTA)
242
+
243
+ **Ground** cream + concentric closing-rings. **Composes** accent-line, h1, body, cta-button. **Focal**
244
+ a Space Grotesk `h1` near-black, centered, with the one solid cobalt `cta-button` pill below. **Accent**
245
+ the CTA + rings. **Silence** ~60%. **Fixed** one CTA, near-black h1, soft rings. **Free** sign-off, CTA
246
+ label. **Density** low.
247
+
248
+ ## Composition Rules
249
+
250
+ ### Do
251
+
252
+ - Start every frame on **warm cream**; let **cobalt carry every accent** (eyebrow, numeral, CTA, bar, progress).
253
+ - Set headlines **near-black, −0.02em**; eyebrows **cobalt uppercase 0.08em**; numerals **cobalt 600–700**.
254
+ - Use **tinted cards** (4% fill, 20% border, 10–14px radius, no shadow); body Inter 400 muted, line 1.6.
255
+ - Keep all chrome **pill-shaped (100px)**; one solid cobalt CTA per closing frame.
256
+ - Reserve **atmosphere** (diagonal panel, dots, rings) for cover/closing; content frames keep the slide-header rhythm.
257
+ - Lean left on cover/dashboard/split, centered on quote/closer.
258
+
259
+ ### Don't
260
+
261
+ - No second accent color; no cobalt headlines.
262
+ - No drop shadows on content (only the soft cobalt CTA hover); no opaque cobalt borders.
263
+ - No square corners (save the progress bar); no font substitutes; no uppercase body.
264
+ - Don't use the green/red change chips as general accents — directional comparisons only.
265
+ - Don't fill space with heavier borders — add substance; don't blow a headline edge-to-edge.
266
+
267
+ ## Aspect-Ratio Behavior
268
+
269
+ | Treatment | 16:9 | 9:16 | 1:1 |
270
+ | ----------------- | -------------------------- | ------------------------------ | ------------------------ |
271
+ | Cover | title left, diagonal right | title top, diagonal band below | title upper, dots corner |
272
+ | Dashboard | 3 cards across | 3 stacked | 2×2 |
273
+ | Bar Ranking | 3–5 bars | 3–5 bars (tighter) | 3 bars |
274
+ | Pull Quote | centered, rings behind | centered, taller | centered |
275
+ | Split + Highlight | side-by-side | stacked | stacked |
276
+ | Closing / CTA | centered + CTA | centered + CTA | centered + CTA |
277
+
278
+ `pad-x` holds on the short edge; re-step display above the 1.4cqw floor. The diagonal cover panel
279
+ becomes a top/bottom band on 9:16. Numerals stay Latin Arabic digits in CJK builds.
280
+
281
+ ## Approved Entities
282
+
283
+ No real customers, logos, or vendors are defined in the source — render any such mark as a
284
+ placeholder. Figures, metrics, and quotes are content; the system supplies cream + cobalt + grays.
285
+
286
+ ## Numerals & Claims (hard rule)
287
+
288
+ Never invent figures, financials, percentages, or dates at frame scale. Render slots as `— figure —`,
289
+ `{metric}`, `+NN%`, `↑ —`. Metric cards, bar values, and stat cells especially carry placeholders
290
+ until the script supplies them. Directional chips require a real comparison from the script.
291
+
292
+ ## Pre-Render Self-Audit
293
+
294
+ - **Squint** — one near-black headline or cobalt numeral dominates per frame.
295
+ - **Silence** — content frames balanced, not crowded; only the dashboard runs dense.
296
+ - **Single accent** — cobalt only; headlines near-black; positive/negative inline only.
297
+ - **Type** — Space Grotesk headings −0.02em near-black, cobalt eyebrows 0.08em + numerals; Inter body muted line 1.6; ≥1.4cqw floor.
298
+ - **Depth** — tinted cards (no shadow), soft rounded corners, 20% cobalt borders; no square content corners.
299
+ - **Anchor** — left on cover/dashboard/split, centered on quote/closer; atmosphere on cover/closing only.
300
+ - **Fabrication** — every numeral traces to the script, else placeholder.
301
+
302
+ ## Known Gaps
303
+
304
+ - **Motion intentionally out of scope.** frame.md specifies composition only; the source's 500ms translateX transitions + bar-fill animations are deck mechanics.
305
+ - **Space Grotesk + Inter via Google Fonts.** CJK pairing (Noto Sans SC 700 display / Noto Serif SC 400 body) carries over; the eyebrow's uppercase+tracking signal weakens in CJK — pair it with the accent-line.
306
+ - **9:16 / 1:1 are guidance**; verify the floor and that the diagonal panel reflows to a band.
307
+ - Diagonal panel (clip-path), dot grid, concentric rings, and bars are CSS-only; no external imagery is required.
@@ -0,0 +1,223 @@
1
+ <!--
2
+ Blue Professional — 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 blue-professional
14
+ literal 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 soft cobalt-tinted card on warm cream — a 4% cobalt fill inside a 1.5px
23
+ 20%-cobalt border, soft 14px rounded corners, NO shadow (the system's premium signal
24
+ is the absence of cast depth; the tinted card does the lift). Space Grotesk, sentence
25
+ case, near-black glyphs. Upcoming words sit in muted gray; the current word becomes a
26
+ solid cobalt chip — the brand's signature single-accent gesture, a pill-rounded fill
27
+ with cream reading on top; spoken words settle to near-black ink, chip 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 tinted card — 4% cobalt fill, 1.5px 20%-cobalt border, soft 14px corners,
69
+ NO shadow (the tinted card does the lift; cast depth is forbidden) */
70
+ .caption-pill {
71
+ max-width: 78%;
72
+ padding: 20px 44px 24px;
73
+ background: color-mix(in srgb, var(--cap-accent, #1e2bfa) 4%, var(--cap-canvas, #fdfae7));
74
+ border: 1.5px solid color-mix(in srgb, var(--cap-accent, #1e2bfa) 20%, transparent);
75
+ border-radius: 14px;
76
+ }
77
+ .caption-line {
78
+ display: flex;
79
+ flex-wrap: wrap;
80
+ justify-content: center;
81
+ gap: 0.1em 0.34em;
82
+ font-family: var(--font-display, "Space Grotesk"), system-ui, sans-serif;
83
+ font-weight: 600;
84
+ font-size: clamp(40px, 4.4vw, 58px);
85
+ line-height: 1.16;
86
+ letter-spacing: -0.02em;
87
+ }
88
+
89
+ /* upcoming — muted gray, no chip */
90
+ .caption-word {
91
+ display: inline-block;
92
+ padding: 0 0.18em;
93
+ border-radius: 0.32em;
94
+ color: color-mix(in srgb, var(--cap-ink, #111111) 52%, var(--cap-canvas, #fdfae7));
95
+ }
96
+ /* current word — THE solid cobalt chip (the single-accent gesture; pill-rounded
97
+ fill, NO shadow), cream reading on top */
98
+ .caption-word.is-active {
99
+ color: var(--cap-canvas, #fdfae7);
100
+ background: var(--cap-accent, #1e2bfa);
101
+ box-shadow: none;
102
+ }
103
+ /* already spoken — solid near-black ink, chip cleared */
104
+ .caption-word.is-spoken {
105
+ color: var(--cap-ink, #111111);
106
+ background: transparent;
107
+ box-shadow: none;
108
+ }
109
+
110
+ /* optional per-word accents (dormant until a word-classer tags them) */
111
+ /* brand / key term — cobalt, the system's one accent on a key word */
112
+ .caption-word.cap-brand {
113
+ color: var(--cap-accent, #1e2bfa);
114
+ }
115
+ /* numerals / data — cobalt 700, the figure voice */
116
+ .caption-word.cap-num {
117
+ font-family: var(--font-display, "Space Grotesk"), system-ui, sans-serif;
118
+ font-weight: 700;
119
+ color: var(--cap-accent, #1e2bfa);
120
+ }
121
+ /* emphasis — a directional-red hairline underline (inline only, never a fill) */
122
+ .caption-word.cap-cta {
123
+ text-decoration: underline;
124
+ text-decoration-thickness: 2px;
125
+ text-decoration-color: var(--cap-accent-2, #dc2626);
126
+ text-underline-offset: 0.1em;
127
+ }
128
+
129
+ @media (max-aspect-ratio: 9/16) {
130
+ .caption-pill {
131
+ max-width: 92%;
132
+ }
133
+ .caption-line {
134
+ font-size: clamp(34px, 5.4vw, 48px);
135
+ }
136
+ }
137
+ </style>
138
+
139
+ <div
140
+ id="captions-root"
141
+ data-composition-id="captions"
142
+ data-timeline-locked
143
+ data-start="0"
144
+ data-duration="0"
145
+ data-fps="30"
146
+ data-width="0"
147
+ data-height="0"
148
+ >
149
+ <div class="caption-layer" aria-hidden="true">
150
+ <div id="caption-stage" class="caption-stage"></div>
151
+ </div>
152
+ </div>
153
+
154
+ <script>
155
+ // captions.mjs injects the engine's scene-aware groups + real duration here.
156
+ var GROUPS = [];
157
+ var DURATION = 0;
158
+
159
+ (function () {
160
+ var stage = document.getElementById("caption-stage");
161
+
162
+ // build DOM: one .caption-group per group, .caption-word per word
163
+ GROUPS.forEach(function (group, g) {
164
+ var groupEl = document.createElement("div");
165
+ groupEl.className = "caption-group";
166
+ groupEl.id = "caption-group-" + g;
167
+ var pill = document.createElement("div");
168
+ pill.className = "caption-pill";
169
+ var line = document.createElement("div");
170
+ line.className = "caption-line";
171
+ (group.words || []).forEach(function (w, i) {
172
+ var span = document.createElement("span");
173
+ span.className = "caption-word";
174
+ span.id = "caption-word-" + g + "-" + i;
175
+ span.textContent = String(w.text);
176
+ line.appendChild(span);
177
+ });
178
+ pill.appendChild(line);
179
+ groupEl.appendChild(pill);
180
+ stage.appendChild(groupEl);
181
+ });
182
+
183
+ window.__timelines = window.__timelines || {};
184
+ var tl = gsap.timeline({ paused: true });
185
+
186
+ GROUPS.forEach(function (group, g) {
187
+ var groupEl = document.getElementById("caption-group-" + g);
188
+ var words = group.words || [];
189
+ var next = GROUPS[g + 1];
190
+ var isLast = g === GROUPS.length - 1;
191
+ var start = Math.max(0, Number(group.start));
192
+ var end = isLast ? DURATION : Math.min(Number(next.start), Number(group.end) + 0.3);
193
+ if (end <= start) end = start + 0.01;
194
+
195
+ // group on/off — exactly one group visible at a time
196
+ tl.set(groupEl, { opacity: 1 }, start);
197
+ tl.set(groupEl, { opacity: 0 }, end);
198
+
199
+ // 3-state karaoke via className SETS — seek-safe (gsap.set applies on the
200
+ // engine's frame-by-frame seek; .call callbacks would NOT fire).
201
+ words.forEach(function (w, i) {
202
+ var el = document.getElementById("caption-word-" + g + "-" + i);
203
+ var at = Math.max(start, Number(w.start));
204
+ tl.set(el, { className: "caption-word" }, start); // upcoming (also resets on reverse-seek)
205
+ tl.set(el, { className: "caption-word is-active" }, at); // current
206
+ tl.fromTo(el, { scale: 0.985 }, { scale: 1, duration: 0.18, ease: "power1.out" }, at);
207
+ if (i + 1 < words.length) {
208
+ var nextAt = Math.max(start, Number(words[i + 1].start));
209
+ tl.set(el, { className: "caption-word is-spoken" }, nextAt); // demote when next activates
210
+ }
211
+ });
212
+ if (words.length) {
213
+ var lastEl = document.getElementById("caption-word-" + g + "-" + (words.length - 1));
214
+ var lastSpoken = Math.min(end, Number(words[words.length - 1].end) + 0.1);
215
+ tl.set(lastEl, { className: "caption-word is-spoken" }, lastSpoken);
216
+ }
217
+ });
218
+
219
+ // full-span anchor so the sub-comp timeline spans the whole video
220
+ tl.to({}, { duration: DURATION }, 0);
221
+ window.__timelines["captions"] = tl;
222
+ })();
223
+ </script>