@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,759 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=1920, height=1080" />
6
+ <title>Scene 04 — Contextual Product Showcase</title>
7
+
8
+ <!--
9
+ HyperFrames composition.tsx.
10
+
11
+ Choreography (4 phases, 9 seconds total):
12
+ 0.00 – 0.80s 3D-tilted page card scales 0.95 → 1.0
13
+ Navbar / title / CTA fade in (staggered)
14
+ 0.12 – 2.80s Title keywords glow synced to ASR words:
15
+ "1" "long" "video" "10" "viral" "clips"
16
+ 3.08 – 4.08s Page content scrolls up 280 px (programmatic scroll feel)
17
+ Carousel section fades in + scales from 0.9
18
+ 3.58 – 8.84s Main video pops forward in 3D (translateZ 80 px) + scales up
19
+ Radial spotlight dims the surroundings; decays at end
20
+ (attack 0→1 then decay 1→REST_LEVEL). All visual effects (color,
21
+ text-shadow, scale) derive from --glow via CSS calc()
22
+ - Pop-target uses the same --glow pattern; translateZ + scale derived
23
+ - Spotlight is a separate overlay with simple opacity tween
24
+ - Video placeholders are colored divs (no asset files needed)
25
+ - Tilt is static CSS, never tweened
26
+ -->
27
+
28
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
29
+
30
+ <style>
31
+ :root {
32
+ --page-bg: #0a0a0f;
33
+ --text-primary: #ffffff;
34
+ --text-secondary: #a1a1aa;
35
+ --accent: #edcb50;
36
+ --input-bg: #1a1a1f;
37
+ --green: #22c55e;
38
+ }
39
+ * {
40
+ margin: 0;
41
+ padding: 0;
42
+ box-sizing: border-box;
43
+ }
44
+ html,
45
+ body {
46
+ margin: 0;
47
+ width: 1920px;
48
+ height: 1080px;
49
+ overflow: hidden;
50
+ background: #000;
51
+ font-family:
52
+ "Inter",
53
+ system-ui,
54
+ -apple-system,
55
+ sans-serif;
56
+ color: var(--text-primary);
57
+ }
58
+
59
+ /* ============================================================
60
+ BACKGROUND
61
+ ============================================================ */
62
+ .bg {
63
+ position: absolute;
64
+ inset: 0;
65
+ background:
66
+ radial-gradient(
67
+ ellipse 100% 60% at 50% -10%,
68
+ rgba(100, 100, 150, 0.08) 0%,
69
+ transparent 60%
70
+ ),
71
+ var(--page-bg);
72
+ }
73
+
74
+ /* ============================================================
75
+ 3D PERSPECTIVE + TILTED CARD
76
+ ============================================================ */
77
+ .perspective-wrap {
78
+ position: absolute;
79
+ inset: 0;
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ perspective: 1200px;
84
+ }
85
+ .page-card {
86
+ width: 92%;
87
+ height: 88%;
88
+ background-color: var(--page-bg);
89
+ border-radius: 20px;
90
+ overflow: hidden;
91
+ transform-style: preserve-3d;
92
+ /* tilt + initial scale set by gsap.set() below so subsequent tweens preserve them */
93
+ box-shadow:
94
+ -30px 30px 60px rgba(0, 0, 0, 0.4),
95
+ -15px 15px 30px rgba(0, 0, 0, 0.3),
96
+ 0 0 80px rgba(0, 0, 0, 0.2);
97
+ border: 1px solid rgba(255, 255, 255, 0.1);
98
+ position: relative;
99
+ }
100
+
101
+ /* ============================================================
102
+ NAVBAR (sticks to top of card; NOT inside scroll content)
103
+ ============================================================ */
104
+ .page-navbar {
105
+ position: absolute;
106
+ top: 0;
107
+ left: 0;
108
+ right: 0;
109
+ height: 72px;
110
+ padding: 0 48px;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: space-between;
114
+ z-index: 100;
115
+ opacity: 0; /* GSAP fades in */
116
+ background: linear-gradient(to bottom, rgba(10, 10, 15, 0.95), rgba(10, 10, 15, 0.6));
117
+ }
118
+ .nav-left {
119
+ display: flex;
120
+ align-items: center;
121
+ gap: 10px;
122
+ }
123
+ .nav-logo {
124
+ width: 32px;
125
+ height: 32px;
126
+ color: var(--text-primary);
127
+ }
128
+ .nav-brand {
129
+ font-size: 20px;
130
+ font-weight: 600;
131
+ letter-spacing: -0.5px;
132
+ }
133
+ .nav-center {
134
+ display: flex;
135
+ align-items: center;
136
+ gap: 28px;
137
+ }
138
+ .nav-item {
139
+ font-size: 14px;
140
+ font-weight: 500;
141
+ color: var(--text-secondary);
142
+ display: flex;
143
+ align-items: center;
144
+ }
145
+ .nav-item .chev {
146
+ margin-left: 4px;
147
+ font-size: 10px;
148
+ }
149
+ .nav-tag {
150
+ font-size: 10px;
151
+ background: var(--green);
152
+ color: #fff;
153
+ padding: 2px 6px;
154
+ border-radius: 4px;
155
+ font-weight: 600;
156
+ margin-right: 6px;
157
+ }
158
+ .nav-right {
159
+ display: flex;
160
+ align-items: center;
161
+ gap: 12px;
162
+ }
163
+ .nav-signin {
164
+ padding: 8px 16px;
165
+ border: 1px solid rgba(255, 255, 255, 0.2);
166
+ border-radius: 8px;
167
+ color: var(--text-primary);
168
+ font-size: 14px;
169
+ font-weight: 500;
170
+ }
171
+ .nav-signup {
172
+ padding: 8px 16px;
173
+ background: var(--accent);
174
+ border-radius: 8px;
175
+ color: var(--page-bg);
176
+ font-size: 14px;
177
+ font-weight: 600;
178
+ }
179
+
180
+ /* ============================================================
181
+ SCROLL CONTENT — GSAP tweens its y
182
+ ============================================================ */
183
+ .scroll-content {
184
+ padding-top: 140px;
185
+ padding-bottom: 60px;
186
+ display: flex;
187
+ flex-direction: column;
188
+ align-items: center;
189
+ will-change: transform;
190
+ }
191
+
192
+ /* ============================================================
193
+ HERO SECTION
194
+ ============================================================ */
195
+ .hero {
196
+ text-align: center;
197
+ max-width: 1200px;
198
+ width: 90%;
199
+ opacity: 0; /* GSAP fades in */
200
+ }
201
+ .hero-eyebrow {
202
+ font-size: 14px;
203
+ color: var(--accent);
204
+ text-transform: uppercase;
205
+ letter-spacing: 2px;
206
+ margin-bottom: 24px;
207
+ font-weight: 600;
208
+ }
209
+ .hero-title {
210
+ font-size: 64px;
211
+ font-weight: 700;
212
+ line-height: 1.1;
213
+ letter-spacing: -1px;
214
+ }
215
+ .hero-sub {
216
+ font-size: 20px;
217
+ color: rgba(255, 255, 255, 0.6);
218
+ margin-top: 24px;
219
+ font-weight: 400;
220
+ line-height: 1.5;
221
+ max-width: 800px;
222
+ margin-left: auto;
223
+ margin-right: auto;
224
+ }
225
+
226
+ /* ============================================================
227
+ KEYWORD GLOW — all derived from --glow CSS custom property
228
+ ============================================================ */
229
+ .kw {
230
+ --glow: 0;
231
+ display: inline-block;
232
+ position: relative;
233
+ z-index: 0;
234
+ padding: 0 0.015em;
235
+ color: rgb(
236
+ calc(255 - var(--glow) * 18) calc(255 - var(--glow) * 30) calc(255 - var(--glow) * 150)
237
+ );
238
+ text-shadow:
239
+ 0 0 calc(var(--glow) * 10px) rgba(255, 235, 120, calc(var(--glow) * 0.95)),
240
+ 0 0 calc(var(--glow) * 24px) rgba(237, 203, 80, calc(var(--glow) * 0.78)),
241
+ 0 0 calc(var(--glow) * 44px) rgba(237, 203, 80, calc(var(--glow) * 0.38));
242
+ transform: scale(calc(1 + var(--glow) * 0.035));
243
+ }
244
+ .kw::before {
245
+ content: "";
246
+ position: absolute;
247
+ left: -0.025em;
248
+ right: -0.025em;
249
+ top: 0.08em;
250
+ bottom: 0.05em;
251
+ z-index: -1;
252
+ border-radius: 0.16em;
253
+ background: linear-gradient(
254
+ 90deg,
255
+ rgba(237, 203, 80, 0.08),
256
+ rgba(255, 222, 80, 0.72),
257
+ rgba(237, 203, 80, 0.12)
258
+ );
259
+ opacity: calc(var(--glow) * 0.78);
260
+ transform: scaleX(calc(0.72 + var(--glow) * 0.24)) skewX(-5deg);
261
+ transform-origin: left center;
262
+ box-shadow:
263
+ 0 0 calc(var(--glow) * 14px) rgba(237, 203, 80, calc(var(--glow) * 0.7)),
264
+ 0 0 calc(var(--glow) * 28px) rgba(237, 203, 80, calc(var(--glow) * 0.32));
265
+ }
266
+
267
+ /* ============================================================
268
+ CTA INPUT ROW
269
+ ============================================================ */
270
+ .cta-row {
271
+ display: flex;
272
+ align-items: center;
273
+ justify-content: center;
274
+ gap: 16px;
275
+ margin-top: 36px;
276
+ opacity: 0; /* GSAP fades in */
277
+ }
278
+ .cta-input {
279
+ display: flex;
280
+ align-items: center;
281
+ background: var(--input-bg);
282
+ border-radius: 28px;
283
+ padding: 6px 6px 6px 18px;
284
+ gap: 12px;
285
+ }
286
+ .cta-link-icon {
287
+ width: 16px;
288
+ height: 16px;
289
+ color: rgba(255, 255, 255, 0.4);
290
+ }
291
+ .cta-placeholder {
292
+ font-size: 14px;
293
+ color: rgba(255, 255, 255, 0.4);
294
+ min-width: 130px;
295
+ }
296
+ .cta-button {
297
+ padding: 12px 24px;
298
+ background: #fff;
299
+ border-radius: 22px;
300
+ color: var(--page-bg);
301
+ font-size: 14px;
302
+ font-weight: 600;
303
+ }
304
+ .cta-or {
305
+ color: rgba(255, 255, 255, 0.4);
306
+ font-size: 14px;
307
+ }
308
+ .cta-upload {
309
+ padding: 12px 24px;
310
+ border: 1px solid rgba(255, 255, 255, 0.2);
311
+ border-radius: 22px;
312
+ color: var(--text-primary);
313
+ font-size: 14px;
314
+ font-weight: 500;
315
+ }
316
+
317
+ /* ============================================================
318
+ VIDEO CAROUSEL (Phase 2 entry, Phase 4 pop-out)
319
+ ============================================================ */
320
+ .carousel-wrap {
321
+ opacity: 0; /* GSAP fades in */
322
+ transform: scale(0.9); /* GSAP scales to 1 */
323
+ transform-origin: center top;
324
+ margin-top: 48px;
325
+ display: flex;
326
+ justify-content: center;
327
+ align-items: center;
328
+ gap: 20px;
329
+ width: 100%;
330
+ max-width: 1400px;
331
+ padding: 0 20px;
332
+ perspective: 800px;
333
+ transform-style: preserve-3d;
334
+ }
335
+ .carousel-arrow {
336
+ width: 44px;
337
+ height: 44px;
338
+ border-radius: 50%;
339
+ background: rgba(60, 60, 65, 0.8);
340
+ display: flex;
341
+ align-items: center;
342
+ justify-content: center;
343
+ color: #fff;
344
+ flex-shrink: 0;
345
+ font-size: 24px;
346
+ font-weight: 300;
347
+ }
348
+
349
+ /* Main video — Phase 4 pop-out target */
350
+ .carousel-main {
351
+ --glow: 0;
352
+ width: 720px;
353
+ height: 420px;
354
+ background: var(--input-bg);
355
+ border-radius: 16px;
356
+ position: relative;
357
+ overflow: hidden;
358
+ flex-shrink: 0;
359
+ transform-style: preserve-3d;
360
+ transform: translateZ(calc(var(--glow) * 80px)) scale(calc(1 + var(--glow) * 0.15));
361
+ box-shadow:
362
+ 0 0 calc(var(--glow) * 25px) rgba(237, 203, 80, calc(var(--glow) * 0.7)),
363
+ 0 0 calc(var(--glow) * 50px) rgba(237, 203, 80, calc(var(--glow) * 0.4)),
364
+ 0 calc(20px + var(--glow) * 40px) calc(60px + var(--glow) * 40px)
365
+ rgba(0, 0, 0, calc(0.6 + var(--glow) * 0.2));
366
+ border: 3px solid rgba(237, 203, 80, calc(var(--glow) * 0.8));
367
+ z-index: 200;
368
+ }
369
+ .carousel-main-placeholder {
370
+ position: absolute;
371
+ inset: 0;
372
+ display: flex;
373
+ align-items: center;
374
+ justify-content: center;
375
+ font-size: 28px;
376
+ font-weight: 600;
377
+ color: rgba(255, 255, 255, 0.5);
378
+ background: linear-gradient(135deg, #1a2540 0%, #3d2a4f 50%, #4f1d2e 100%);
379
+ }
380
+ .carousel-main-placeholder span {
381
+ background: rgba(0, 0, 0, 0.4);
382
+ padding: 8px 20px;
383
+ border-radius: 8px;
384
+ }
385
+
386
+ /* Side panel */
387
+ .carousel-side {
388
+ width: 420px;
389
+ height: 280px;
390
+ background: var(--input-bg);
391
+ border-radius: 16px;
392
+ position: relative;
393
+ overflow: hidden;
394
+ flex-shrink: 0;
395
+ }
396
+ .carousel-side-placeholder {
397
+ position: absolute;
398
+ inset: 0;
399
+ background: linear-gradient(135deg, #2a3550 0%, #4a3a5a 100%);
400
+ display: flex;
401
+ align-items: center;
402
+ justify-content: center;
403
+ font-size: 18px;
404
+ font-weight: 600;
405
+ color: rgba(255, 255, 255, 0.5);
406
+ }
407
+ .presets-stack {
408
+ position: absolute;
409
+ top: 16px;
410
+ right: 16px;
411
+ display: flex;
412
+ flex-direction: column;
413
+ gap: 8px;
414
+ z-index: 5;
415
+ }
416
+ .preset-label {
417
+ padding: 8px 14px;
418
+ background: rgba(255, 255, 255, 0.12);
419
+ border-radius: 8px;
420
+ color: rgba(255, 255, 255, 0.8);
421
+ font-size: 12px;
422
+ font-weight: 500;
423
+ }
424
+ .preset-tile {
425
+ width: 44px;
426
+ height: 44px;
427
+ background: rgba(255, 255, 255, 0.08);
428
+ border-radius: 8px;
429
+ align-self: flex-end;
430
+ }
431
+
432
+ /* ============================================================
433
+ SPOTLIGHT OVERLAY (above page card, dims surroundings)
434
+ ============================================================ */
435
+ .spotlight {
436
+ position: absolute;
437
+ inset: 0;
438
+ background: radial-gradient(
439
+ ellipse 850px 550px at 40% 60%,
440
+ transparent 0%,
441
+ transparent 50%,
442
+ rgba(0, 0, 0, 0.65) 100%
443
+ );
444
+ pointer-events: none;
445
+ opacity: 0; /* GSAP fades in during Phase 4 */
446
+ z-index: 150;
447
+ }
448
+
449
+ /* ============================================================
450
+ VIGNETTE
451
+ ============================================================ */
452
+ .vignette {
453
+ position: absolute;
454
+ inset: 0;
455
+ background: radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.3) 100%);
456
+ pointer-events: none;
457
+ z-index: 400;
458
+ }
459
+ </style>
460
+ </head>
461
+ <body>
462
+ <div
463
+ id="root"
464
+ data-composition-id="main"
465
+ data-start="0"
466
+ data-duration="9"
467
+ data-width="1920"
468
+ data-height="1080"
469
+ >
470
+ <div class="bg"></div>
471
+
472
+ <div class="perspective-wrap">
473
+ <div
474
+ class="page-card clip"
475
+ data-start="0"
476
+ data-duration="9"
477
+ data-track-index="1"
478
+ id="page-card"
479
+ >
480
+ <!-- Navbar (anchored to card top) -->
481
+ <nav class="page-navbar" id="navbar">
482
+ <div class="nav-left">
483
+ <svg
484
+ class="nav-logo"
485
+ viewBox="0 0 24 24"
486
+ fill="none"
487
+ xmlns="http://www.w3.org/2000/svg"
488
+ aria-hidden="true"
489
+ >
490
+ <path
491
+ fill="currentColor"
492
+ d="M11.954 3.817c-4.49 0-8.132 3.644-8.152 8.146v12H0V12C0 5.373 5.352 0 11.954 0s11.953 5.373 11.953 12-5.351 12-11.953 12a12 12 0 0 1-1.718-.123v-3.876q.831.181 1.718.182c4.502 0 8.152-3.663 8.152-8.183s-3.65-8.183-8.152-8.183"
493
+ />
494
+ <path
495
+ fill="currentColor"
496
+ d="M5.118 24V11.995c0-3.79 3.062-6.857 6.836-6.857 3.773 0 6.836 3.068 6.836 6.857s-3.063 6.857-6.836 6.857c-.594 0-1.17-.076-1.718-.218V14.5c.488.337 1.08.534 1.718.534a3.037 3.037 0 0 0 3.034-3.04 3.037 3.037 0 0 0-3.034-3.04 3.037 3.037 0 0 0-3.034 3.008V24z"
497
+ />
498
+ </svg>
499
+ <span class="nav-brand">OpusClip</span>
500
+ </div>
501
+ <div class="nav-center">
502
+ <span class="nav-item">Features<span class="chev">▾</span></span>
503
+ <span class="nav-item">Solutions<span class="chev">▾</span></span>
504
+ <span class="nav-item">Resources<span class="chev">▾</span></span>
505
+ <span class="nav-item">Pricing</span>
506
+ <span class="nav-item">For business<span class="chev">▾</span></span>
507
+ <span class="nav-item"><span class="nav-tag">New</span>Agent Opus</span>
508
+ </div>
509
+ <div class="nav-right">
510
+ <span class="nav-signin">Sign in</span>
511
+ <span class="nav-signup">Sign up - It's FREE</span>
512
+ </div>
513
+ </nav>
514
+
515
+ <!-- Scrollable content -->
516
+ <div class="scroll-content" id="scroll-content">
517
+ <div class="hero" id="hero">
518
+ <div class="hero-eyebrow">#1 AI VIDEO CLIPPING TOOL</div>
519
+ <h1 class="hero-title">
520
+ <span class="kw" data-glow-start="0.12" data-glow-end="0.28">1</span>
521
+ <span class="kw" data-glow-start="0.52" data-glow-end="0.72">long</span>
522
+ <span class="kw" data-glow-start="0.78" data-glow-end="1.44">video,</span>
523
+ <span class="kw" data-glow-start="1.48" data-glow-end="1.80">10</span>
524
+ <span class="kw" data-glow-start="1.94" data-glow-end="2.22">viral</span>
525
+ <span class="kw" data-glow-start="2.28" data-glow-end="2.80">clips.</span>
526
+ <br />Create 10x faster.
527
+ </h1>
528
+ <p class="hero-sub">
529
+ OpusClip turns long videos into shorts, and publishes them to all social platforms
530
+ in one click.
531
+ </p>
532
+ </div>
533
+
534
+ <div class="cta-row" id="cta-row">
535
+ <div class="cta-input">
536
+ <svg
537
+ class="cta-link-icon"
538
+ viewBox="0 0 24 24"
539
+ fill="none"
540
+ stroke="currentColor"
541
+ stroke-width="2"
542
+ stroke-linecap="round"
543
+ stroke-linejoin="round"
544
+ aria-hidden="true"
545
+ >
546
+ <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
547
+ <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
548
+ </svg>
549
+ <span class="cta-placeholder">Drop a video link</span>
550
+ <div class="cta-button">Get free clips</div>
551
+ </div>
552
+ <span class="cta-or">or</span>
553
+ <div class="cta-upload">Upload files</div>
554
+ </div>
555
+
556
+ <!-- Video carousel section -->
557
+ <div class="carousel-wrap" id="carousel">
558
+ <div class="carousel-arrow">‹</div>
559
+
560
+ <div class="carousel-main pop-target" id="pop-target">
561
+ <div class="carousel-main-placeholder">
562
+ <span>Hero animation</span>
563
+ </div>
564
+ </div>
565
+
566
+ <div class="carousel-arrow">›</div>
567
+
568
+ <div class="carousel-side">
569
+ <div class="carousel-side-placeholder">Demo · reframe</div>
570
+ <div class="presets-stack">
571
+ <div class="preset-label">Presets</div>
572
+ <div class="preset-tile"></div>
573
+ <div class="preset-tile"></div>
574
+ <div class="preset-tile"></div>
575
+ <div class="preset-tile"></div>
576
+ </div>
577
+ </div>
578
+ </div>
579
+ </div>
580
+ <!-- /.scroll-content -->
581
+ </div>
582
+ <!-- /.page-card -->
583
+ </div>
584
+ <!-- /.perspective-wrap -->
585
+
586
+ <div class="spotlight" id="spotlight"></div>
587
+ <div class="vignette"></div>
588
+ </div>
589
+
590
+ <script>
591
+ /* ================================================================
592
+ TIMING — all in local seconds (scene starts at 0).
593
+ ASR timestamps are direct from the source, with SCENE_START = 16
594
+ subtracted to get local time.
595
+ ================================================================ */
596
+ const ASR = {
597
+ // Phase 2 title keywords
598
+ one: { start: 0.119, end: 0.279 },
599
+ long: { start: 0.52, end: 0.719 },
600
+ video: { start: 0.779, end: 1.44 },
601
+ ten: { start: 1.479, end: 1.799 },
602
+ viral: { start: 1.94, end: 2.219 },
603
+ clips: { start: 2.279, end: 2.8 },
604
+ };
605
+
606
+ const TIMING = {
607
+ // Phase 1: entry
608
+ cardEntryStart: 0.0,
609
+ cardEntryDur: 0.8,
610
+ navbarFadeAt: 0.0,
611
+ navbarFadeDur: 0.6,
612
+ titleFadeAt: 0.17,
613
+ titleFadeDur: 0.7,
614
+ ctaFadeAt: 0.5,
615
+ ctaFadeDur: 0.7,
616
+
617
+ // Phase 2: keyword glows handled per-element via data attrs
618
+
619
+ // Phase 3: scroll + carousel
620
+ phase2StartAt: 3.08,
621
+ scrollDur: 1.0,
622
+ scrollDistance: 280,
623
+ carouselFadeDur: 0.5,
624
+
625
+ // Phase 4: pop-out + spotlight
626
+ popStart: 3.58,
627
+ popAttackDur: 0.67, // ramp 0 → 1
628
+ popDecayDur: 0.33, // ramp 1 → 0.5 near end
629
+ popEnd: 8.84,
630
+ popRestLevel: 0.5,
631
+ };
632
+
633
+ const KEYWORD_REST_LEVEL = 0.14;
634
+ const KEYWORD_SUSTAIN = 0.5; // seconds after ASR end before decay completes
635
+
636
+ /* ================================================================
637
+ TIMELINE
638
+ ================================================================ */
639
+ window.__timelines = window.__timelines || {};
640
+ const tl = gsap.timeline({ paused: true });
641
+ window.__timelines["main"] = tl;
642
+
643
+ // Set the static 3D tilt + initial scale via GSAP so subsequent
644
+ // scale tweens preserve the rotation aliases. (If we left
645
+ // `transform: rotateY(...) rotateX(...) scale(0.95)` in CSS, a GSAP
646
+ // tween touching only `scale` could overwrite the full matrix and
647
+ // lose the rotation. Owning the transform state in GSAP avoids the
648
+ // problem entirely.)
649
+ gsap.set(".page-card", {
650
+ rotationY: -8,
651
+ rotationX: 3,
652
+ scale: 0.95,
653
+ });
654
+
655
+ /* ----------------------------------------------------------------
656
+ PHASE 1: Page card entry + navbar/title/CTA fade-in
657
+ ---------------------------------------------------------------- */
658
+ tl.to(
659
+ ".page-card",
660
+ { scale: 1.0, duration: TIMING.cardEntryDur, ease: "power2.out" },
661
+ TIMING.cardEntryStart,
662
+ );
663
+
664
+ tl.fromTo(
665
+ "#navbar",
666
+ { opacity: 0 },
667
+ { opacity: 1, duration: TIMING.navbarFadeDur, ease: "power2.out" },
668
+ TIMING.navbarFadeAt,
669
+ );
670
+
671
+ tl.fromTo(
672
+ "#hero",
673
+ { opacity: 0 },
674
+ { opacity: 1, duration: TIMING.titleFadeDur, ease: "power2.out" },
675
+ TIMING.titleFadeAt,
676
+ );
677
+
678
+ tl.fromTo(
679
+ "#cta-row",
680
+ { opacity: 0 },
681
+ { opacity: 1, duration: TIMING.ctaFadeDur, ease: "power2.out" },
682
+ TIMING.ctaFadeAt,
683
+ );
684
+
685
+ /* ----------------------------------------------------------------
686
+ PHASE 2: Keyword glows — two tweens per word.
687
+ Attack (0 → 1) + decay (1 → REST_LEVEL). GSAP holds REST forever.
688
+ ---------------------------------------------------------------- */
689
+ document.querySelectorAll(".kw").forEach((kw) => {
690
+ const start = Number(kw.dataset.glowStart);
691
+ const end = Number(kw.dataset.glowEnd);
692
+ const peak = start + (end - start) / 2;
693
+ const restAt = end + KEYWORD_SUSTAIN;
694
+
695
+ tl.fromTo(
696
+ kw,
697
+ { "--glow": 0 },
698
+ { "--glow": 1.18, duration: peak - start, ease: "power2.out" },
699
+ start,
700
+ );
701
+
702
+ tl.to(
703
+ kw,
704
+ { "--glow": KEYWORD_REST_LEVEL, duration: restAt - peak, ease: "power2.out" },
705
+ peak,
706
+ );
707
+ });
708
+
709
+ /* ----------------------------------------------------------------
710
+ PHASE 3: Scroll + carousel entry
711
+ ---------------------------------------------------------------- */
712
+ tl.fromTo(
713
+ "#scroll-content",
714
+ { y: 0 },
715
+ { y: -TIMING.scrollDistance, duration: TIMING.scrollDur, ease: "power2.inOut" },
716
+ TIMING.phase2StartAt,
717
+ );
718
+
719
+ tl.fromTo(
720
+ "#carousel",
721
+ { opacity: 0, scale: 0.9 },
722
+ { opacity: 1, scale: 1.0, duration: TIMING.carouselFadeDur, ease: "power2.out" },
723
+ TIMING.phase2StartAt,
724
+ );
725
+
726
+ /* ----------------------------------------------------------------
727
+ PHASE 4: Pop-out (driven by --glow on .carousel-main) + spotlight
728
+ ---------------------------------------------------------------- */
729
+ // Attack the pop-out glow.
730
+ tl.fromTo(
731
+ "#pop-target",
732
+ { "--glow": 0 },
733
+ { "--glow": 1, duration: TIMING.popAttackDur, ease: "power2.out" },
734
+ TIMING.popStart,
735
+ );
736
+
737
+ // Decay at the end of the scene (mirrors original phase2End-10 / phase2End ramp).
738
+ tl.to(
739
+ "#pop-target",
740
+ { "--glow": TIMING.popRestLevel, duration: TIMING.popDecayDur, ease: "power2.out" },
741
+ TIMING.popEnd - TIMING.popDecayDur,
742
+ );
743
+
744
+ // Spotlight fades in alongside the pop attack, decays with the pop.
745
+ tl.fromTo(
746
+ "#spotlight",
747
+ { opacity: 0 },
748
+ { opacity: 1, duration: 0.5, ease: "power2.out" },
749
+ TIMING.popStart,
750
+ );
751
+
752
+ tl.to(
753
+ "#spotlight",
754
+ { opacity: TIMING.popRestLevel, duration: TIMING.popDecayDur, ease: "power2.out" },
755
+ TIMING.popEnd - TIMING.popDecayDur,
756
+ );
757
+ </script>
758
+ </body>
759
+ </html>