@mevdragon/vidfarm-devcli 0.14.0 → 0.16.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 +37 -0
  405. package/SKILL.platform.md +6 -1
  406. package/demo/dist/app.css +1 -1
  407. package/demo/dist/app.js +369 -85
  408. package/dist/src/app.js +630 -140
  409. package/dist/src/cli.js +529 -12
  410. package/dist/src/composition-runtime.js +262 -3
  411. package/dist/src/config.js +13 -0
  412. package/dist/src/devcli/doctor.js +192 -0
  413. package/dist/src/devcli/hyperframes-cli.js +118 -0
  414. package/dist/src/devcli/skills.js +476 -0
  415. package/dist/src/devcli/stills.js +249 -0
  416. package/dist/src/editor-chat.js +256 -0
  417. package/dist/src/frontend/homepage-client.js +50 -1
  418. package/dist/src/frontend/homepage-shared.js +197 -0
  419. package/dist/src/frontend/homepage-store.js +10 -1
  420. package/dist/src/frontend/homepage-view.js +43 -5
  421. package/dist/src/homepage.js +51 -18
  422. package/dist/src/hyperframes/composition.js +5 -5
  423. package/dist/src/services/composition-lint.js +199 -0
  424. package/dist/src/services/hyperframes.js +67 -13
  425. package/dist/src/services/serverless-records.js +9 -0
  426. package/package.json +2 -1
  427. package/public/assets/homepage-client-app.js +23 -23
@@ -0,0 +1,333 @@
1
+ ---
2
+ version: alpha
3
+ name: Creative Mode — Frame (video / frame layer)
4
+ description: >
5
+ Video-first companion to Creative Mode's design.md. The unit is the frame (1920×1080),
6
+ not the slide-in-a-deck. Atoms are identical and sacred — warm cream canvas, 4px ink
7
+ borders, hard offset shadows (no blur), Archivo Black uppercase at 0.92 line-height,
8
+ JetBrains Mono taxonomy, Space Grotesk body, the four-accent palette. Composition,
9
+ frame scale, and aspect-ratio behavior are rewritten for the frame. Motion is 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: "#EFE9D9"
15
+ cream-2: "#E4DCC4"
16
+ ink: "#0F0F0F"
17
+ ink-2: "#2A2A2A"
18
+ green: "#1F8A4C"
19
+ green-dark: "#136636"
20
+ pink: "#F06CA8"
21
+ pink-dark: "#D14E8B"
22
+ orange: "#E85A1F"
23
+ yellow: "#F5C518"
24
+
25
+ typography:
26
+ # — reading ramp (px @ 1920, with cqw) —
27
+ body-lg: { fontFamily: "Space Grotesk", px: 28, cqw: 1.46, weight: 400, lineHeight: 1.4 }
28
+ body-md: { fontFamily: "Space Grotesk", px: 24, cqw: 1.25, weight: 400, lineHeight: 1.3 }
29
+ mono-label: { fontFamily: "JetBrains Mono", px: 24, cqw: 1.25, weight: 400, tracking: "0.06em", upper: true }
30
+ mono-kicker:{ fontFamily: "JetBrains Mono", px: 24, cqw: 1.25, weight: 400, tracking: "0.14em", upper: true }
31
+ table-head: { fontFamily: "Archivo Black", px: 28, cqw: 1.46, weight: 400, upper: true }
32
+ # — display / hero ramp (frame-native, cqw-first) —
33
+ step-title: { fontFamily: "Archivo Black", px: 34, cqw: 1.77, weight: 400, lineHeight: 1.0, upper: true }
34
+ badge-label:{ fontFamily: "Archivo Black", px: 28, cqw: 1.46, weight: 400, upper: true }
35
+ marker: { fontFamily: "Archivo Black", cqw: 2.4, weight: 400, lineHeight: 1.0, upper: true }
36
+ stamp-num: { fontFamily: "Archivo Black", cqw: 2.2, weight: 400, lineHeight: 0.9 }
37
+ stat-num: { fontFamily: "Archivo Black", cqw: 6.4, weight: 400, lineHeight: 0.88 }
38
+ step-num: { fontFamily: "Archivo Black", cqw: 7.0, weight: 400, lineHeight: 0.85 }
39
+ display-head: { fontFamily: "Archivo Black", cqw: 4.2, weight: 400, lineHeight: 0.92, tracking: "-0.01em", upper: true }
40
+ display-lg: { fontFamily: "Archivo Black", cqw: 8.0, weight: 400, lineHeight: 0.9, tracking: "-0.01em", upper: true }
41
+ display-xl: { fontFamily: "Archivo Black", cqw: 11.0, weight: 400, lineHeight: 0.9, tracking: "-0.01em", upper: true }
42
+ display-hero:{ fontFamily: "Archivo Black", cqw: 15.5,weight: 400, lineHeight: 0.84, tracking: "-0.02em", upper: true }
43
+
44
+ spacing:
45
+ frame-pad: "3.3cqw" # 64px chrome gutter @1920
46
+ content-gutter: "5cqw" # 96px content gutter @1920
47
+ grid-gap: "1.5cqw" # 28px
48
+ cell-pad: "1.7cqw" # 32px
49
+
50
+ components:
51
+ frame-chrome:
52
+ typography: "{typography.mono-label}"
53
+ placement: "topbar 2.5cqw from top, meta 2.5cqw from bottom, both inset {spacing.frame-pad}"
54
+ rounded: "0"
55
+ shadow: "none"
56
+ description: "Mono topbar (section label left + 999px ink-stroked pill right) + meta footer (descriptor left + NN • NN counter right, 0.5cqw ink dot divider). Present on most frames."
57
+ stat-cell:
58
+ backgroundColor: "{colors.green} · {colors.pink} · {colors.orange} · {colors.cream}"
59
+ textColor: "{colors.cream} on accent · {colors.ink} on cream"
60
+ border: "0.4cqw solid {colors.ink}"
61
+ rounded: "0"
62
+ padding: "{spacing.cell-pad}"
63
+ typography: "{typography.stat-num} + {typography.mono-label}"
64
+ shadow: "none"
65
+ description: "Flat accent/cream stat tile, square corners, no shadow."
66
+ step-card:
67
+ backgroundColor: "{colors.cream} · {colors.pink} · {colors.yellow} · {colors.green}"
68
+ border: "0.4cqw solid {colors.ink}"
69
+ rounded: "0"
70
+ padding: "{spacing.cell-pad}"
71
+ typography: "{typography.step-num} + {typography.step-title} + {typography.body-md}"
72
+ shadow: "none"
73
+ description: "Ink-bordered card; giant step-num top. Sequence alternates cream with accents and ENDS on green."
74
+ marker-block:
75
+ backgroundColor: "{colors.pink}"
76
+ textColor: "{colors.ink}"
77
+ border: "0.4cqw solid {colors.ink}"
78
+ rounded: "0"
79
+ typography: "{typography.marker}"
80
+ shadow: "1.25cqw 1.25cqw 0 {colors.orange}, 1.25cqw 1.25cqw 0 0.2cqw {colors.ink}"
81
+ description: "The one hard-offset featured callout per frame."
82
+ kicker-block:
83
+ backgroundColor: "{colors.ink}"
84
+ textColor: "{colors.cream}"
85
+ typography: "{typography.mono-kicker}"
86
+ padding: "0.5cqw 1cqw"
87
+ rounded: "0"
88
+ description: "Inverted eyebrow chip."
89
+ badge-rotated:
90
+ backgroundColor: "{colors.yellow}"
91
+ border: "0.4cqw solid {colors.ink}"
92
+ typography: "{typography.badge-label}"
93
+ rounded: "0"
94
+ transform: "rotate(-4deg)"
95
+ description: "Deliberate-imperfection annotation."
96
+ pill-badge:
97
+ backgroundColor: "{colors.cream}"
98
+ border: "0.2cqw solid {colors.ink}"
99
+ rounded: "999px"
100
+ typography: "{typography.mono-label}"
101
+ description: "The ONLY rounded element; reads as a chip, not a card."
102
+ stamp:
103
+ backgroundColor: "{colors.pink}"
104
+ border: "0.4cqw solid {colors.cream}"
105
+ size: "~18cqw square"
106
+ rounded: "0"
107
+ transform: "rotate(-6deg)"
108
+ typography: "{typography.stamp-num}"
109
+ description: "Closing seal with a cream circular inner ring."
110
+ comparison-table:
111
+ backgroundColor: "{colors.cream-2}"
112
+ border: "0.4cqw solid {colors.ink}"
113
+ rule: "0.3cqw solid {colors.ink}"
114
+ rounded: "0"
115
+ typography: "{typography.table-head} + {typography.body-md}"
116
+ shadow: "none"
117
+ description: "Ink head row with cream Archivo labels; pink/green column-fill variants."
118
+ decorative-circle:
119
+ backgroundColor: "{colors.yellow}"
120
+ border: "0.4cqw solid {colors.ink}"
121
+ rounded: "50%"
122
+ description: "Decorative figure; pairs with a green panel for shape contrast."
123
+ ---
124
+
125
+ # Creative Mode — Frame (video / frame layer)
126
+
127
+ ## Overview
128
+
129
+ Creative Mode at frame scale is a **neo-brutalist editorial poster in motion's clothing** — warm
130
+ cream paper, near-black ink, and four accents that collide at full saturation. Every frame is one
131
+ flat color-blocked composition: no gradients, no blurred shadows, no rounded cards (save the one
132
+ pill chip). Depth is **hard offset shadow** (a solid same-direction duplicate) or **color-block
133
+ contrast**, never light.
134
+
135
+ The display voice is **Archivo Black in strict uppercase at 0.92 line-height** — letters overlap
136
+ their own cap height; that tightness is the brand. **JetBrains Mono** carries every label, kicker,
137
+ counter, and axis as a "technical artifact" register. **Space Grotesk** carries the few body lines.
138
+ The frame is loud by construction and calm by restraint: two or three accents per frame, the green
139
+ ground reserved for a single closing plate, the hard shadow spent on one featured element only.
140
+
141
+ **Key characteristics at frame scale:**
142
+
143
+ - **Cream ground** (`{colors.cream}`) on nearly every frame; `{colors.green}` reserved for the closing plate.
144
+ - **0.4cqw (4px @1920) ink borders** on every structural element; 0.3cqw internal rules.
145
+ - **Hard offset shadow** (≈1.25cqw, orange+ink) on one featured block per frame — never blurred.
146
+ - **Archivo Black uppercase**, 0.92 line-height, always; sentence-case Archivo Black does not exist.
147
+ - **Two or three accents per frame**, never all four; collisions are the design.
148
+ - **One pill chip** (999px) per frame as the sole rounded element.
149
+
150
+ ### Frame Craft Bar
151
+
152
+ Three eyeball tests gate every frame before any structural check:
153
+
154
+ - **Squint** — exactly one element dominates, at **3–6× its nearest neighbor** (a chasm, not a ramp): the `display-hero`/`display-xl` claim or the `stat-num` figure, never two rival headlines.
155
+ - **Silence** — sparse frames (cover, claim, closer) read **45–60% empty**; the **stat grid and comparison ledger are the one dense exception**. Never fill a sparse frame to look complete.
156
+ - **Restraint** — the scarce gestures fire **once per frame**: at most one hard-offset shadow, two-to-three accents (never all four), the green ground reserved for the single closing plate.
157
+ - **Reference** — aim at a **Risograph editorial poster / punk-zine spread** (flat ink-bordered blocks, one big claim, vast cream); failure looks like a **rounded, soft-shadowed SaaS feature grid**.
158
+
159
+ ## The Frame
160
+
161
+ - **Primary:** 1920×1080 (16:9). All display sizes authored in **`cqw`** (`px ÷ 1920 × 100 = cqw`).
162
+ - **Vertical:** 1080×1920 (9:16). **Square:** 1080×1080 (1:1).
163
+ - **Safe area:** chrome at `3.3cqw` (64px) inset; content at `5cqw` (96px) gutter. No load-bearing element crosses the `3.3cqw` line.
164
+
165
+ **The container law (load-bearing).** Every frame ground sets `container-type: size`. ALL
166
+ frame-relative units are `cqw`/`cqh` (1cqw = 1% of the frame's width), resolved against that
167
+ ground — **never `vw`.** `vw` measures the page viewport, so a frame inflates whenever it isn't
168
+ rendered full-screen; `cqw` resolves against the frame at any render size. This is why every size
169
+ in the display ramp is `cqw`.
170
+
171
+ ## Colors
172
+
173
+ Tokens identical to the source. At frame scale: `{colors.cream}` is the **ground**, `{colors.ink}`
174
+ is borders + type, and the four accents (`green` / `pink` / `orange` / `yellow`) are **flat fills
175
+ rationed two-to-three per frame.** `{colors.orange}` is also the hard-shadow color. `{colors.green}`
176
+ doubles as the single closing-plate ground — its rarity is the impact. Never introduce a fifth
177
+ accent; never use pure white; never gradient.
178
+
179
+ ## Typography
180
+
181
+ Two ramps. The **reading ramp** (body, mono labels, table heads) holds px+cqw for chrome and copy.
182
+ The **display/hero ramp** is frame-native and authored in `cqw` — from `display-head` (4.2cqw) up
183
+ to `display-hero` (15.5cqw) for a wordmark cover.
184
+
185
+ - **Legibility floor:** any load-bearing line ≥ **1.4cqw (≈27px@1920)**. Mono chrome at 1.15cqw is colophon only.
186
+ - **Fit-to-measure:** a headline's size tracks its line length. Cap the headline block at **≤ 78cqw** and never touch the safe margin. ≤3 words → `display-hero`/`display-xl`; 4–6 words → `display-lg`; 7+ words → `display-head`. Short lines go big; long lines step down.
187
+ - **Uppercase + 0.92 line-height on all Archivo Black**, always. Mono carries 0.06–0.14em tracking. Never letter-space Archivo Black beyond the encoded −0.01em; never set body centered.
188
+
189
+ ## Depth & Surface
190
+
191
+ Zero blur. Two depth devices only:
192
+
193
+ - **Hard offset shadow** — a solid duplicate offset ≈1.25cqw in X and Y (`box-shadow: 1.25cqw 1.25cqw 0 {colors.orange}, 1.25cqw 1.25cqw 0 0.2cqw {colors.ink}`). **One featured block per frame** (marker, stamp). Diagram stacks may use a 0.95cqw ink-only offset.
194
+ - **Color-block contrast** — cream on cream-2, ink on cream, accent on cream. No shadow needed when contrast carries.
195
+
196
+ **Ceiling:** no blurred shadow, no gradient, no glow, anywhere.
197
+
198
+ ## Shapes
199
+
200
+ - **0 radius** on every structural element — stat cells, step cards, table cells, markers, panels.
201
+ - **50%** on decorative circles, stamp inner ring, the meta dot.
202
+ - **999px** on the topbar pill chip only — the single rounded exception.
203
+ - **Rotation** only at the fixed brand angles: badge −4deg, stamp −6deg.
204
+
205
+ ## Components
206
+
207
+ - **frame-chrome** — the mono topbar + meta footer. Present on most frames; dropped only on a pure full-bleed wordmark beat if it competes.
208
+ - **stat-cell / step-card** — ink-bordered flat-fill blocks; step sequences end on green.
209
+ - **marker-block** — the one hard-shadow featured callout per frame.
210
+ - **kicker-block** — inverted ink eyebrow chip; **badge-rotated** — −4deg yellow annotation; **pill-badge** — the lone rounded chip.
211
+ - **stamp** — the −6deg closing seal. **comparison-table** — cream-2 ledger with ink head row.
212
+ - **decorative-circle** — yellow disc for shape contrast against a green panel.
213
+
214
+ ## Frame Treatments
215
+
216
+ > Recipe per plate: ground · container · composes · focal · chrome · accent · silence · Fixed/Free · density.
217
+ > Authored at 1920×1080. Lean centered; vary the anchor; one idea per frame.
218
+
219
+ ### 1 · Wordmark Cover (identity · move: full-frame lockup · centered)
220
+
221
+ **Ground** `{colors.cream}`, `frame-pad`. **Container** grid, chrome top/bottom, focal centered.
222
+ **Composes** frame-chrome, the wordmark. **Focal** the two-line wordmark at `display-hero`
223
+ (15.5cqw), centered, second line in an accent (`{colors.pink}`/`orange`). **Chrome** mono topbar
224
+ (section label + pill) and meta footer (descriptor + 01•NN). **Accent** the second-line color only;
225
+ optionally one corner decorative-circle bleeding off an edge. **Silence** ~55% empty cream.
226
+ **Fixed** Archivo Black uppercase 0.84 lh, one accent on the wordmark, square corners. **Free** which
227
+ accent, line break, whether a circle bleeds a corner. **Density** sparse.
228
+
229
+ ### 2 · Big Claim (oversized statement · move: scale · left)
230
+
231
+ **Ground** one full-bleed accent (`{colors.pink}`/`green`/`orange`), `content-gutter`. **Container**
232
+ flex, claim left-anchored and vertically centered. **Composes** kicker-block, the claim. **Focal**
233
+ a 2–3 line claim at `display-xl`/`display-lg`, ink on the accent (ink-on-fire — never white).
234
+ **Chrome** small ink kicker-block above the claim; mono meta footer. **Accent** the ground IS the
235
+ accent; no second accent competes. **Silence** ~45% of the colored field empty. **Fixed** ink type
236
+ on accent, fit-to-measure sizing, no shadow on type. **Free** the claim, which accent ground, which
237
+ word breaks. **Density** sparse — one idea.
238
+
239
+ ### 3 · Stat Grid (catalog · move: density — the one dense frame · centered)
240
+
241
+ **Ground** `{colors.cream}`, `content-gutter`. **Container** grid: a centered `display-head` over a
242
+ 3-up row of stat-cells. **Composes** frame-chrome, 3× stat-cell. **Focal** the row of three
243
+ ink-bordered cells (green / pink / orange), each a `stat-num` + mono label. **Chrome** mono topbar +
244
+ meta. **Accent** the three cell fills (the named density exception — three accents allowed here).
245
+ **Silence** ~25% — tight by design. **Fixed** 0.4cqw borders, square corners, no per-cell shadow,
246
+ mono labels. **Free** the three figures+labels, head copy, which three accents. **Density** dense-exception.
247
+
248
+ ### 4 · Closing Plate (closer · move: ground-swap · centered)
249
+
250
+ **Ground** `{colors.green}` (the single green frame of the run), `frame-pad`. **Focal** a 2-line
251
+ sign-off at `display-lg` in `{colors.cream}`, centered. **Composes** frame-chrome (cream variant),
252
+ stamp. **Chrome** cream mono topbar + meta. **Accent** one `{colors.pink}` stamp rotated −6deg in
253
+ a corner, cream ring + stamp-num. **Silence** ~55% empty green. **Fixed** green ground reserved to
254
+ this beat, cream-on-green type, one stamp. **Free** sign-off copy, stamp text, stamp corner. **Density** sparse.
255
+
256
+ ### 5 · Featured Marker (callout · move: hard-shadow focal · left/asymmetric)
257
+
258
+ **Ground** `{colors.cream}`. **Composes** frame-chrome, marker-block, optional body-md support line.
259
+ **Focal** the pink marker-block with the signature orange+ink hard offset shadow, set asymmetrically.
260
+ **Accent** pink block + orange shadow (two accents). **Silence** ~50%. **Fixed** exactly one hard
261
+ shadow on the frame, 0.4cqw borders. **Free** marker copy, block position, optional support line.
262
+ **Density** sparse.
263
+
264
+ ### 6 · Comparison Ledger (data · move: matrix · left)
265
+
266
+ **Ground** `{colors.cream}`, `content-gutter`. **Composes** frame-chrome, comparison-table.
267
+ **Focal** the cream-2 table with ink head row; one column fill (pink or green) marks the winner.
268
+ **Accent** the single column fill. **Silence** tight — the second density exception. **Fixed**
269
+ cream-2 fill, 0.3cqw internal rules, ink head row with cream Archivo labels. **Free** rows, which
270
+ column fills, copy. **Density** dense-exception.
271
+
272
+ ## Composition Rules
273
+
274
+ ### Do
275
+
276
+ - Compose around **one idea per frame**, focal element **3–5× its neighbors** (squint test).
277
+ - **Lean centered** — cover, claim, stat grid, and closer all center their focal element; reserve left/asymmetric for the marker and ledger.
278
+ - Keep sparse frames **45–60% empty**; only the stat grid and ledger run dense.
279
+ - Use **two or three accents per frame**; reserve `{colors.green}` ground for the closing plate.
280
+ - Spend the hard offset shadow on **one featured block per frame**.
281
+ - Size headlines **fit-to-measure**; render Archivo Black uppercase at 0.92 lh.
282
+
283
+ ### Don't
284
+
285
+ - Don't round corners (except the pill chip); don't gradient, blur, or glow.
286
+ - Don't set Archivo Black in sentence case or letter-space it beyond −0.01em.
287
+ - Don't use all four accents on one frame, a fifth accent, or pure white.
288
+ - Don't center body copy or set labels in anything but JetBrains Mono.
289
+ - Don't blow a headline edge-to-edge — step the ramp down for long lines.
290
+ - Don't put two hard shadows on one frame.
291
+
292
+ ## Aspect-Ratio Behavior
293
+
294
+ | Treatment | 16:9 | 9:16 | 1:1 |
295
+ | ----------------- | ------------------------------- | ---------------------------- | ------------------------ |
296
+ | Wordmark Cover | two lines centered | stacked taller, circle top | centered, tighter |
297
+ | Big Claim | claim left, full accent | claim top, accent full | claim centered |
298
+ | Stat Grid | head over 3-up row | head top, 3 stacked | head top, 2×2 (4th cell) |
299
+ | Closing Plate | sign-off centered, stamp corner | stacked, stamp below | centered, stamp corner |
300
+ | Featured Marker | marker asymmetric | marker centered, shadow down | marker centered |
301
+ | Comparison Ledger | full-width table | table scrolls to fewer cols | 2-col table |
302
+
303
+ Safe area holds the `3.3cqw` chrome inset on the short edge for every ratio; re-step display per
304
+ ratio so no load-bearing line drops below the 1.4cqw floor.
305
+
306
+ ## Approved Entities
307
+
308
+ No real customers, logos, or vendors are defined in the source — render any such mark as a
309
+ placeholder. Products/sections are content-agnostic; the system supplies geometry, not brands.
310
+
311
+ ## Numerals & Claims (hard rule)
312
+
313
+ Never invent figures, percentages, counts, or dates at frame scale. Render data slots as
314
+ `— figure —`, `{metric}`, `N×`. Real numerals appear only when the script supplies them — the stat
315
+ grid and ledger especially carry placeholders, not fabricated values.
316
+
317
+ ## Pre-Render Self-Audit
318
+
319
+ - **Squint** — one element dominates at 3–5× its neighbor, else rescale.
320
+ - **Silence** — sparse frames 45–60% empty; only stat grid / ledger run dense.
321
+ - **Accents** — two or three per frame, never all four; green ground only on the closer.
322
+ - **Depth** — 0 blur; at most one hard offset shadow; color-block contrast otherwise.
323
+ - **Geometry** — square corners except the pill; rotation only at −4/−6deg.
324
+ - **Type** — Archivo Black uppercase 0.92 lh, fit-to-measure, ≥1.4cqw on load-bearing lines.
325
+ - **Anchor** — centered default; left/asymmetric only on marker + ledger; no 3 consecutive frames share an anchor.
326
+ - **Fabrication** — every numeral traces to the script, else placeholder.
327
+
328
+ ## Known Gaps
329
+
330
+ - **Motion intentionally out of scope.** frame.md specifies composition only; timing and transitions are a later stage. The closing green is described as a _plate_, not a transition.
331
+ - **Archivo Black requires Google Fonts**; fallback is `sans-serif`. CJK pairing (Noto Serif SC 900 / NSC 400) carries over from the source's CJK section.
332
+ - **9:16 / 1:1 are guidance**, not pixel-locked; verify the legibility floor per ratio.
333
+ - Decorative geometry (circle, stamp, stacked blocks) is CSS-only; no external imagery is required.
@@ -0,0 +1,227 @@
1
+ <!--
2
+ Creative Mode — 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 creative-mode
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 warm-cream card on a thick 4px ink border with a HARD offset shadow (a solid
23
+ same-direction ink+orange duplicate, no blur — creative-mode's only depth device),
24
+ square corners. Archivo Black, UPPERCASE, 0.92 line-height, ink glyphs. Upcoming words
25
+ sit in faint ink; the current word becomes a solid yellow inked block (the brand's
26
+ signature hard-offset-shadow accent block, no blur) with ink reading on top; spoken
27
+ words settle to solid ink, the accent block 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 cream card — thick 4px ink border + the signature HARD offset shadow
69
+ (a solid same-direction orange+ink duplicate, no blur), square corners */
70
+ .caption-pill {
71
+ max-width: 80%;
72
+ padding: 18px 40px 22px;
73
+ background: var(--cap-canvas, #efe9d9);
74
+ border: 4px solid var(--cap-ink, #0f0f0f);
75
+ border-radius: 0;
76
+ box-shadow:
77
+ 14px 14px 0 var(--cap-accent-2, #e85a1f),
78
+ 14px 14px 0 4px var(--cap-ink, #0f0f0f);
79
+ }
80
+ .caption-line {
81
+ display: flex;
82
+ flex-wrap: wrap;
83
+ justify-content: center;
84
+ gap: 0.16em 0.3em;
85
+ font-family: var(--font-display, "Archivo Black"), sans-serif;
86
+ font-weight: 400;
87
+ text-transform: uppercase;
88
+ font-size: clamp(34px, 3.8vw, 52px);
89
+ line-height: 0.92;
90
+ letter-spacing: -0.01em;
91
+ }
92
+
93
+ /* upcoming — faint ink, no accent block */
94
+ .caption-word {
95
+ display: inline-block;
96
+ padding: 0.02em 0.1em;
97
+ color: color-mix(in srgb, var(--cap-ink, #0f0f0f) 38%, var(--cap-canvas, #efe9d9));
98
+ }
99
+ /* current word — THE hard yellow inked block (box-shadow spread = a hard square
100
+ block w/o layout shift; no blur), ink reading on top */
101
+ .caption-word.is-active {
102
+ color: var(--cap-ink, #0f0f0f);
103
+ background: var(--cap-accent, #f5c518);
104
+ box-shadow: 0 0 0 0.08em var(--cap-accent, #f5c518);
105
+ }
106
+ /* already spoken — solid ink, accent block cleared */
107
+ .caption-word.is-spoken {
108
+ color: var(--cap-ink, #0f0f0f);
109
+ background: transparent;
110
+ box-shadow: none;
111
+ }
112
+
113
+ /* optional per-word accents (dormant until a word-classer tags them) */
114
+ /* brand / key term — an inverted ink chip (the kicker-block voice) */
115
+ .caption-word.cap-brand {
116
+ color: var(--cap-canvas, #efe9d9);
117
+ background: var(--cap-ink, #0f0f0f);
118
+ box-shadow: 0 0 0 0.08em var(--cap-ink, #0f0f0f);
119
+ }
120
+ /* numerals / data — the mono voice, slightly recessed */
121
+ .caption-word.cap-num {
122
+ font-family: var(--font-body, "Space Grotesk"), ui-monospace, monospace;
123
+ color: color-mix(in srgb, var(--cap-ink, #0f0f0f) 72%, var(--cap-canvas, #efe9d9));
124
+ }
125
+ /* emphasis — a thick orange underline (the counter accent) */
126
+ .caption-word.cap-cta {
127
+ text-decoration: underline;
128
+ text-decoration-thickness: 3px;
129
+ text-decoration-color: var(--cap-accent-2, #e85a1f);
130
+ text-underline-offset: 0.12em;
131
+ }
132
+
133
+ @media (max-aspect-ratio: 9/16) {
134
+ .caption-pill {
135
+ max-width: 92%;
136
+ }
137
+ .caption-line {
138
+ font-size: clamp(30px, 5vw, 44px);
139
+ }
140
+ }
141
+ </style>
142
+
143
+ <div
144
+ id="captions-root"
145
+ data-composition-id="captions"
146
+ data-timeline-locked
147
+ data-start="0"
148
+ data-duration="0"
149
+ data-fps="30"
150
+ data-width="0"
151
+ data-height="0"
152
+ >
153
+ <div class="caption-layer" aria-hidden="true">
154
+ <div id="caption-stage" class="caption-stage"></div>
155
+ </div>
156
+ </div>
157
+
158
+ <script>
159
+ // captions.mjs injects the engine's scene-aware groups + real duration here.
160
+ var GROUPS = [];
161
+ var DURATION = 0;
162
+
163
+ (function () {
164
+ var stage = document.getElementById("caption-stage");
165
+
166
+ // build DOM: one .caption-group per group, .caption-word per word
167
+ GROUPS.forEach(function (group, g) {
168
+ var groupEl = document.createElement("div");
169
+ groupEl.className = "caption-group";
170
+ groupEl.id = "caption-group-" + g;
171
+ var pill = document.createElement("div");
172
+ pill.className = "caption-pill";
173
+ var line = document.createElement("div");
174
+ line.className = "caption-line";
175
+ (group.words || []).forEach(function (w, i) {
176
+ var span = document.createElement("span");
177
+ span.className = "caption-word";
178
+ span.id = "caption-word-" + g + "-" + i;
179
+ span.textContent = String(w.text);
180
+ line.appendChild(span);
181
+ });
182
+ pill.appendChild(line);
183
+ groupEl.appendChild(pill);
184
+ stage.appendChild(groupEl);
185
+ });
186
+
187
+ window.__timelines = window.__timelines || {};
188
+ var tl = gsap.timeline({ paused: true });
189
+
190
+ GROUPS.forEach(function (group, g) {
191
+ var groupEl = document.getElementById("caption-group-" + g);
192
+ var words = group.words || [];
193
+ var next = GROUPS[g + 1];
194
+ var isLast = g === GROUPS.length - 1;
195
+ var start = Math.max(0, Number(group.start));
196
+ var end = isLast ? DURATION : Math.min(Number(next.start), Number(group.end) + 0.3);
197
+ if (end <= start) end = start + 0.01;
198
+
199
+ // group on/off — exactly one group visible at a time
200
+ tl.set(groupEl, { opacity: 1 }, start);
201
+ tl.set(groupEl, { opacity: 0 }, end);
202
+
203
+ // 3-state karaoke via className SETS — seek-safe (gsap.set applies on the
204
+ // engine's frame-by-frame seek; .call callbacks would NOT fire).
205
+ words.forEach(function (w, i) {
206
+ var el = document.getElementById("caption-word-" + g + "-" + i);
207
+ var at = Math.max(start, Number(w.start));
208
+ tl.set(el, { className: "caption-word" }, start); // upcoming (also resets on reverse-seek)
209
+ tl.set(el, { className: "caption-word is-active" }, at); // current
210
+ tl.fromTo(el, { scale: 0.92 }, { scale: 1, duration: 0.16, ease: "back.out(2.2)" }, at);
211
+ if (i + 1 < words.length) {
212
+ var nextAt = Math.max(start, Number(words[i + 1].start));
213
+ tl.set(el, { className: "caption-word is-spoken" }, nextAt); // demote when next activates
214
+ }
215
+ });
216
+ if (words.length) {
217
+ var lastEl = document.getElementById("caption-word-" + g + "-" + (words.length - 1));
218
+ var lastSpoken = Math.min(end, Number(words[words.length - 1].end) + 0.1);
219
+ tl.set(lastEl, { className: "caption-word is-spoken" }, lastSpoken);
220
+ }
221
+ });
222
+
223
+ // full-span anchor so the sub-comp timeline spans the whole video
224
+ tl.to({}, { duration: DURATION }, 0);
225
+ window.__timelines["captions"] = tl;
226
+ })();
227
+ </script>