takomi 2.1.45 → 2.5.4

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 (679) hide show
  1. package/.pi/README.md +5 -5
  2. package/.pi/agents/architect.md +2 -2
  3. package/.pi/agents/designer.md +2 -2
  4. package/.pi/agents/worker.md +32 -0
  5. package/.pi/extensions/oauth-router/README.md +3 -3
  6. package/.pi/extensions/oauth-router/config.ts +34 -34
  7. package/.pi/extensions/oauth-router/report-ui.ts +205 -205
  8. package/.pi/extensions/oauth-router/scripts/vibe-verify.py +5 -5
  9. package/.pi/extensions/takomi-context-manager/diagnostics.ts +560 -560
  10. package/.pi/extensions/takomi-context-manager/model-policy-gate.ts +15 -103
  11. package/.pi/extensions/takomi-context-manager/policy-tools.ts +93 -93
  12. package/.pi/extensions/takomi-context-manager/skill-categories.d.ts +11 -11
  13. package/.pi/extensions/takomi-context-manager/skill-tools.ts +208 -208
  14. package/.pi/extensions/takomi-context-manager/tool-renderers.ts +112 -112
  15. package/.pi/extensions/takomi-runtime/command-text.ts +5 -4
  16. package/.pi/extensions/takomi-runtime/commands.ts +17 -17
  17. package/.pi/extensions/takomi-runtime/gate-provenance.ts +24 -24
  18. package/.pi/extensions/takomi-runtime/index.ts +278 -86
  19. package/.pi/extensions/takomi-runtime/model-routing-defaults.ts +168 -232
  20. package/.pi/extensions/takomi-runtime/profile.ts +9 -8
  21. package/.pi/extensions/takomi-runtime/routing-policy.ts +84 -65
  22. package/.pi/extensions/takomi-runtime/shared.ts +7 -30
  23. package/.pi/extensions/takomi-runtime/tool-renderers.ts +234 -234
  24. package/.pi/extensions/takomi-runtime/workflow-catalog.ts +54 -54
  25. package/.pi/extensions/takomi-subagents/agents.ts +5 -0
  26. package/.pi/extensions/takomi-subagents/async-lifecycle.ts +401 -401
  27. package/.pi/extensions/takomi-subagents/detached-results.ts +940 -940
  28. package/.pi/extensions/takomi-subagents/index.ts +4 -0
  29. package/.pi/extensions/takomi-subagents/native-render.ts +253 -250
  30. package/.pi/extensions/takomi-subagents/pi-subagents-engine.ts +7 -1
  31. package/.pi/extensions/takomi-subagents/result-heartbeat.ts +55 -55
  32. package/.pi/extensions/takomi-subagents/subagent-ux.ts +162 -162
  33. package/.pi/extensions/takomi-subagents/tool-runner.ts +65 -1
  34. package/.pi/settings.json +39 -36
  35. package/.pi/takomi/model-routing.md +6 -0
  36. package/.pi/takomi-profile.json +8 -4
  37. package/README.md +1 -1
  38. package/assets/.agent/skills/embedded-captions/CATALOG.md +93 -93
  39. package/assets/.agent/skills/embedded-captions/SKILL.md +286 -286
  40. package/assets/.agent/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -35
  41. package/assets/.agent/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -115
  42. package/assets/.agent/skills/embedded-captions/assets/fonts/char-widths.json +2211 -2211
  43. package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +241 -241
  44. package/assets/.agent/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +241 -241
  45. package/assets/.agent/skills/embedded-captions/dna/README.md +148 -148
  46. package/assets/.agent/skills/embedded-captions/dna/chrome.json +68 -68
  47. package/assets/.agent/skills/embedded-captions/dna/cream.json +69 -69
  48. package/assets/.agent/skills/embedded-captions/dna/documentary.json +62 -62
  49. package/assets/.agent/skills/embedded-captions/dna/editorial.json +70 -70
  50. package/assets/.agent/skills/embedded-captions/dna/glitch.json +82 -82
  51. package/assets/.agent/skills/embedded-captions/dna/ink.json +65 -65
  52. package/assets/.agent/skills/embedded-captions/dna/keynote.json +62 -62
  53. package/assets/.agent/skills/embedded-captions/dna/loud.json +75 -75
  54. package/assets/.agent/skills/embedded-captions/dna/neon.json +58 -58
  55. package/assets/.agent/skills/embedded-captions/dna/velocity.json +89 -89
  56. package/assets/.agent/skills/embedded-captions/modes/cinematic/README.md +48 -48
  57. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -98
  58. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -188
  59. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -134
  60. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -179
  61. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -81
  62. package/assets/.agent/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -170
  63. package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -16
  64. package/assets/.agent/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -226
  65. package/assets/.agent/skills/embedded-captions/modes/cinematic/engine.html +355 -355
  66. package/assets/.agent/skills/embedded-captions/modes/standard/_anatomy.md +233 -233
  67. package/assets/.agent/skills/embedded-captions/modes/standard/_motion.md +192 -192
  68. package/assets/.agent/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -97
  69. package/assets/.agent/skills/embedded-captions/references/aesthetic-principles.md +168 -168
  70. package/assets/.agent/skills/embedded-captions/references/anti-patterns.md +188 -188
  71. package/assets/.agent/skills/embedded-captions/references/bespoke-vs-presets.md +178 -178
  72. package/assets/.agent/skills/embedded-captions/references/caption-grouping.md +130 -130
  73. package/assets/.agent/skills/embedded-captions/references/composition-craft.md +522 -522
  74. package/assets/.agent/skills/embedded-captions/references/direction-catalog.md +138 -138
  75. package/assets/.agent/skills/embedded-captions/references/example-renders/champion.html +371 -371
  76. package/assets/.agent/skills/embedded-captions/references/example-renders/memory-wall.html +334 -334
  77. package/assets/.agent/skills/embedded-captions/references/failure-modes.md +145 -145
  78. package/assets/.agent/skills/embedded-captions/references/layout-heuristics.md +238 -238
  79. package/assets/.agent/skills/embedded-captions/references/motion-vocabulary.md +148 -148
  80. package/assets/.agent/skills/embedded-captions/references/rail.md +68 -68
  81. package/assets/.agent/skills/embedded-captions/references/reference-bar.md +47 -47
  82. package/assets/.agent/skills/embedded-captions/references/scene-types.md +94 -94
  83. package/assets/.agent/skills/embedded-captions/references/test-set.md +66 -66
  84. package/assets/.agent/skills/embedded-captions/references/typographic-moves.md +266 -266
  85. package/assets/.agent/skills/embedded-captions/references/typography-presets.md +63 -63
  86. package/assets/.agent/skills/embedded-captions/scripts/audio-envelope.cjs +95 -95
  87. package/assets/.agent/skills/embedded-captions/scripts/check-occlusion.cjs +250 -250
  88. package/assets/.agent/skills/embedded-captions/scripts/check-overflow.cjs +194 -194
  89. package/assets/.agent/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -233
  90. package/assets/.agent/skills/embedded-captions/scripts/check-timing.cjs +173 -173
  91. package/assets/.agent/skills/embedded-captions/scripts/fill-timings.cjs +124 -124
  92. package/assets/.agent/skills/embedded-captions/scripts/fit-fonts.cjs +158 -158
  93. package/assets/.agent/skills/embedded-captions/scripts/gen-stroke-path.py +46 -46
  94. package/assets/.agent/skills/embedded-captions/scripts/inject-fonts.cjs +169 -169
  95. package/assets/.agent/skills/embedded-captions/scripts/lib-dna.cjs +201 -201
  96. package/assets/.agent/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -1205
  97. package/assets/.agent/skills/embedded-captions/scripts/make-composition.cjs +404 -404
  98. package/assets/.agent/skills/embedded-captions/scripts/make-theme.cjs +8781 -8781
  99. package/assets/.agent/skills/embedded-captions/scripts/matte.cjs +279 -279
  100. package/assets/.agent/skills/embedded-captions/scripts/measure-layout.cjs +293 -293
  101. package/assets/.agent/skills/embedded-captions/scripts/prepare.sh +39 -39
  102. package/assets/.agent/skills/embedded-captions/scripts/preview-frames.cjs +268 -268
  103. package/assets/.agent/skills/embedded-captions/scripts/render-and-composite.sh +469 -469
  104. package/assets/.agent/skills/embedded-captions/scripts/render-theme.sh +34 -34
  105. package/assets/.agent/skills/embedded-captions/scripts/safe-zones.cjs +813 -813
  106. package/assets/.agent/skills/embedded-captions/scripts/transcribe.cjs +332 -332
  107. package/assets/.agent/skills/embedded-captions/themes/PORTING.md +49 -49
  108. package/assets/.agent/skills/embedded-captions/themes/README.md +244 -244
  109. package/assets/.agent/skills/embedded-captions/themes/anchor.json +27 -27
  110. package/assets/.agent/skills/embedded-captions/themes/arcade.json +51 -51
  111. package/assets/.agent/skills/embedded-captions/themes/aurora.json +41 -41
  112. package/assets/.agent/skills/embedded-captions/themes/biolume.json +35 -35
  113. package/assets/.agent/skills/embedded-captions/themes/brush.json +74 -74
  114. package/assets/.agent/skills/embedded-captions/themes/chalkboard.json +52 -52
  115. package/assets/.agent/skills/embedded-captions/themes/dossier.json +56 -56
  116. package/assets/.agent/skills/embedded-captions/themes/graffiti.json +62 -62
  117. package/assets/.agent/skills/embedded-captions/themes/hologram.json +41 -41
  118. package/assets/.agent/skills/embedded-captions/themes/inkwater.json +43 -43
  119. package/assets/.agent/skills/embedded-captions/themes/laser.json +46 -46
  120. package/assets/.agent/skills/embedded-captions/themes/lastpage.json +33 -33
  121. package/assets/.agent/skills/embedded-captions/themes/neonsign.json +53 -53
  122. package/assets/.agent/skills/embedded-captions/themes/nightcity.json +56 -56
  123. package/assets/.agent/skills/embedded-captions/themes/ordnance.json +54 -54
  124. package/assets/.agent/skills/embedded-captions/themes/papercut.json +37 -37
  125. package/assets/.agent/skills/embedded-captions/themes/popup.json +46 -46
  126. package/assets/.agent/skills/embedded-captions/themes/ransom.json +62 -62
  127. package/assets/.agent/skills/embedded-captions/themes/scoreboard.json +54 -54
  128. package/assets/.agent/skills/embedded-captions/themes/spectrum.json +46 -46
  129. package/assets/.agent/skills/embedded-captions/themes/stardust.json +29 -29
  130. package/assets/.agent/skills/embedded-captions/themes/stomp.json +43 -43
  131. package/assets/.agent/skills/embedded-captions/themes/terminal.json +49 -49
  132. package/assets/.agent/skills/embedded-captions/themes/thunder.json +44 -44
  133. package/assets/.agent/skills/embedded-captions/themes/transit.json +44 -44
  134. package/assets/.agent/skills/embedded-captions/themes/vhs.json +47 -47
  135. package/assets/.agent/skills/faceless-explainer/SKILL.md +209 -209
  136. package/assets/.agent/skills/faceless-explainer/references/cut-catalog.md +215 -215
  137. package/assets/.agent/skills/faceless-explainer/references/motion-language.md +156 -156
  138. package/assets/.agent/skills/faceless-explainer/references/story-design.md +248 -248
  139. package/assets/.agent/skills/faceless-explainer/references/visual-design.md +146 -146
  140. package/assets/.agent/skills/faceless-explainer/scripts/assemble-index.mjs +570 -570
  141. package/assets/.agent/skills/faceless-explainer/scripts/audio.mjs +253 -253
  142. package/assets/.agent/skills/faceless-explainer/scripts/build-frame.mjs +536 -536
  143. package/assets/.agent/skills/faceless-explainer/scripts/captions.mjs +508 -508
  144. package/assets/.agent/skills/faceless-explainer/scripts/lib/assets.mjs +55 -55
  145. package/assets/.agent/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -45
  146. package/assets/.agent/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -249
  147. package/assets/.agent/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -204
  148. package/assets/.agent/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -38
  149. package/assets/.agent/skills/faceless-explainer/scripts/lib/transitions.json +71 -71
  150. package/assets/.agent/skills/faceless-explainer/scripts/transitions.mjs +320 -320
  151. package/assets/.agent/skills/faceless-explainer/sub-agents/frame-worker.md +75 -75
  152. package/assets/.agent/skills/figma/SKILL.md +121 -121
  153. package/assets/.agent/skills/general-video/SKILL.md +143 -143
  154. package/assets/.agent/skills/hyperframes/SKILL.md +164 -164
  155. package/assets/.agent/skills/hyperframes-animation/SKILL.md +84 -84
  156. package/assets/.agent/skills/hyperframes-animation/adapters/animate-text.md +64 -64
  157. package/assets/.agent/skills/hyperframes-animation/adapters/animejs.md +114 -114
  158. package/assets/.agent/skills/hyperframes-animation/adapters/css-animations.md +143 -143
  159. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -118
  160. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -96
  161. package/assets/.agent/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -96
  162. package/assets/.agent/skills/hyperframes-animation/adapters/gsap.md +105 -105
  163. package/assets/.agent/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -507
  164. package/assets/.agent/skills/hyperframes-animation/adapters/lottie.md +117 -117
  165. package/assets/.agent/skills/hyperframes-animation/adapters/three.md +131 -131
  166. package/assets/.agent/skills/hyperframes-animation/adapters/typegpu.md +178 -178
  167. package/assets/.agent/skills/hyperframes-animation/adapters/waapi.md +101 -101
  168. package/assets/.agent/skills/hyperframes-animation/blueprints/comparison-split.md +27 -27
  169. package/assets/.agent/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -44
  170. package/assets/.agent/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -28
  171. package/assets/.agent/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -57
  172. package/assets/.agent/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -46
  173. package/assets/.agent/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -53
  174. package/assets/.agent/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -66
  175. package/assets/.agent/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -78
  176. package/assets/.agent/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -69
  177. package/assets/.agent/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -28
  178. package/assets/.agent/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -37
  179. package/assets/.agent/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -29
  180. package/assets/.agent/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -42
  181. package/assets/.agent/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -51
  182. package/assets/.agent/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -30
  183. package/assets/.agent/skills/hyperframes-animation/blueprints-index.md +146 -146
  184. package/assets/.agent/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -382
  185. package/assets/.agent/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -649
  186. package/assets/.agent/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -520
  187. package/assets/.agent/skills/hyperframes-animation/examples/cta-morph-press.html +468 -468
  188. package/assets/.agent/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -1298
  189. package/assets/.agent/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -759
  190. package/assets/.agent/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -729
  191. package/assets/.agent/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -352
  192. package/assets/.agent/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -779
  193. package/assets/.agent/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -1374
  194. package/assets/.agent/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -861
  195. package/assets/.agent/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -347
  196. package/assets/.agent/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -606
  197. package/assets/.agent/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -227
  198. package/assets/.agent/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -297
  199. package/assets/.agent/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -382
  200. package/assets/.agent/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -305
  201. package/assets/.agent/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -286
  202. package/assets/.agent/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -371
  203. package/assets/.agent/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -246
  204. package/assets/.agent/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -267
  205. package/assets/.agent/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -227
  206. package/assets/.agent/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -257
  207. package/assets/.agent/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -332
  208. package/assets/.agent/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -283
  209. package/assets/.agent/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -373
  210. package/assets/.agent/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -262
  211. package/assets/.agent/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -313
  212. package/assets/.agent/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -303
  213. package/assets/.agent/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -273
  214. package/assets/.agent/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -307
  215. package/assets/.agent/skills/hyperframes-animation/rules/gsap-effects.md +299 -299
  216. package/assets/.agent/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -223
  217. package/assets/.agent/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -183
  218. package/assets/.agent/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -328
  219. package/assets/.agent/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -273
  220. package/assets/.agent/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -301
  221. package/assets/.agent/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -350
  222. package/assets/.agent/skills/hyperframes-animation/rules/press-release-spring.md +296 -296
  223. package/assets/.agent/skills/hyperframes-animation/rules/reactive-displacement.md +277 -277
  224. package/assets/.agent/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -298
  225. package/assets/.agent/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -278
  226. package/assets/.agent/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -277
  227. package/assets/.agent/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -273
  228. package/assets/.agent/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -156
  229. package/assets/.agent/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -329
  230. package/assets/.agent/skills/hyperframes-animation/rules/svg-path-draw.md +274 -274
  231. package/assets/.agent/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -239
  232. package/assets/.agent/skills/hyperframes-animation/rules/viewport-change.md +349 -349
  233. package/assets/.agent/skills/hyperframes-animation/rules-index.md +86 -86
  234. package/assets/.agent/skills/hyperframes-animation/scripts/animation-map.mjs +606 -606
  235. package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.mjs +288 -288
  236. package/assets/.agent/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -62
  237. package/assets/.agent/skills/hyperframes-animation/techniques.md +507 -507
  238. package/assets/.agent/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -167
  239. package/assets/.agent/skills/hyperframes-animation/transitions/catalog.md +127 -127
  240. package/assets/.agent/skills/hyperframes-animation/transitions/css-3d.md +12 -12
  241. package/assets/.agent/skills/hyperframes-animation/transitions/css-blur.md +51 -51
  242. package/assets/.agent/skills/hyperframes-animation/transitions/css-cover.md +43 -43
  243. package/assets/.agent/skills/hyperframes-animation/transitions/css-destruction.md +95 -95
  244. package/assets/.agent/skills/hyperframes-animation/transitions/css-dissolve.md +66 -66
  245. package/assets/.agent/skills/hyperframes-animation/transitions/css-distortion.md +45 -45
  246. package/assets/.agent/skills/hyperframes-animation/transitions/css-grid.md +10 -10
  247. package/assets/.agent/skills/hyperframes-animation/transitions/css-light.md +49 -49
  248. package/assets/.agent/skills/hyperframes-animation/transitions/css-mechanical.md +30 -30
  249. package/assets/.agent/skills/hyperframes-animation/transitions/css-other.md +25 -25
  250. package/assets/.agent/skills/hyperframes-animation/transitions/css-push.md +41 -41
  251. package/assets/.agent/skills/hyperframes-animation/transitions/css-radial.md +37 -37
  252. package/assets/.agent/skills/hyperframes-animation/transitions/css-scale.md +24 -24
  253. package/assets/.agent/skills/hyperframes-animation/transitions/overview.md +153 -153
  254. package/assets/.agent/skills/hyperframes-cli/SKILL.md +113 -113
  255. package/assets/.agent/skills/hyperframes-cli/references/doctor-browser.md +45 -45
  256. package/assets/.agent/skills/hyperframes-cli/references/init-and-scaffold.md +51 -51
  257. package/assets/.agent/skills/hyperframes-cli/references/lambda.md +132 -132
  258. package/assets/.agent/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -121
  259. package/assets/.agent/skills/hyperframes-cli/references/preview-render.md +164 -164
  260. package/assets/.agent/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -75
  261. package/assets/.agent/skills/hyperframes-core/SKILL.md +78 -78
  262. package/assets/.agent/skills/hyperframes-core/references/composition-patterns.md +263 -263
  263. package/assets/.agent/skills/hyperframes-core/references/data-attributes.md +70 -70
  264. package/assets/.agent/skills/hyperframes-core/references/determinism-rules.md +68 -68
  265. package/assets/.agent/skills/hyperframes-core/references/full-screen-motion.md +62 -62
  266. package/assets/.agent/skills/hyperframes-core/references/minimal-composition.md +66 -66
  267. package/assets/.agent/skills/hyperframes-core/references/script-format.md +49 -49
  268. package/assets/.agent/skills/hyperframes-core/references/storyboard-format.md +95 -95
  269. package/assets/.agent/skills/hyperframes-core/references/sub-compositions.md +237 -237
  270. package/assets/.agent/skills/hyperframes-core/references/subagent-dispatch.md +41 -41
  271. package/assets/.agent/skills/hyperframes-core/references/tailwind.md +125 -125
  272. package/assets/.agent/skills/hyperframes-core/references/tracks-and-clips.md +76 -76
  273. package/assets/.agent/skills/hyperframes-core/references/variables-and-media.md +90 -90
  274. package/assets/.agent/skills/hyperframes-creative/SKILL.md +70 -70
  275. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -289
  276. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -221
  277. package/assets/.agent/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -1214
  278. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -275
  279. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -224
  280. package/assets/.agent/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -1347
  281. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -307
  282. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -223
  283. package/assets/.agent/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -1372
  284. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -275
  285. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -230
  286. package/assets/.agent/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -1140
  287. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -284
  288. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -225
  289. package/assets/.agent/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -1166
  290. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -284
  291. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -224
  292. package/assets/.agent/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -1465
  293. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -278
  294. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -222
  295. package/assets/.agent/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -1263
  296. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -277
  297. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -224
  298. package/assets/.agent/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -1439
  299. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -265
  300. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -238
  301. package/assets/.agent/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -1468
  302. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -314
  303. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -226
  304. package/assets/.agent/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -1268
  305. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -333
  306. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -227
  307. package/assets/.agent/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -1330
  308. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -274
  309. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -230
  310. package/assets/.agent/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -1444
  311. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -265
  312. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -223
  313. package/assets/.agent/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -1273
  314. package/assets/.agent/skills/hyperframes-creative/palettes/bold-energetic.md +14 -14
  315. package/assets/.agent/skills/hyperframes-creative/palettes/clean-corporate.md +14 -14
  316. package/assets/.agent/skills/hyperframes-creative/palettes/dark-premium.md +14 -14
  317. package/assets/.agent/skills/hyperframes-creative/palettes/jewel-rich.md +14 -14
  318. package/assets/.agent/skills/hyperframes-creative/palettes/monochrome.md +14 -14
  319. package/assets/.agent/skills/hyperframes-creative/palettes/nature-earth.md +14 -14
  320. package/assets/.agent/skills/hyperframes-creative/palettes/neon-electric.md +14 -14
  321. package/assets/.agent/skills/hyperframes-creative/palettes/pastel-soft.md +14 -14
  322. package/assets/.agent/skills/hyperframes-creative/palettes/warm-editorial.md +14 -14
  323. package/assets/.agent/skills/hyperframes-creative/references/audio-reactive.md +76 -76
  324. package/assets/.agent/skills/hyperframes-creative/references/beat-direction.md +164 -164
  325. package/assets/.agent/skills/hyperframes-creative/references/composition-patterns.md +199 -199
  326. package/assets/.agent/skills/hyperframes-creative/references/data-in-motion.md +19 -19
  327. package/assets/.agent/skills/hyperframes-creative/references/design-adherence.md +19 -19
  328. package/assets/.agent/skills/hyperframes-creative/references/design-picker.md +123 -123
  329. package/assets/.agent/skills/hyperframes-creative/references/design-spec.md +55 -55
  330. package/assets/.agent/skills/hyperframes-creative/references/house-style.md +73 -73
  331. package/assets/.agent/skills/hyperframes-creative/references/motion-principles.md +150 -150
  332. package/assets/.agent/skills/hyperframes-creative/references/narration.md +92 -92
  333. package/assets/.agent/skills/hyperframes-creative/references/prompt-expansion.md +68 -68
  334. package/assets/.agent/skills/hyperframes-creative/references/typography.md +218 -218
  335. package/assets/.agent/skills/hyperframes-creative/references/video-composition.md +63 -63
  336. package/assets/.agent/skills/hyperframes-creative/references/visual-styles.md +457 -457
  337. package/assets/.agent/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -353
  338. package/assets/.agent/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -188
  339. package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.mjs +288 -288
  340. package/assets/.agent/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -62
  341. package/assets/.agent/skills/hyperframes-creative/templates/design-picker.html +1432 -1432
  342. package/assets/.agent/skills/hyperframes-keyframes/SKILL.md +237 -237
  343. package/assets/.agent/skills/hyperframes-keyframes/agents/openai.yaml +4 -4
  344. package/assets/.agent/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -106
  345. package/assets/.agent/skills/hyperframes-media/SKILL.md +97 -97
  346. package/assets/.agent/skills/hyperframes-media/assets/sfx/CREDITS.md +35 -35
  347. package/assets/.agent/skills/hyperframes-media/assets/sfx/manifest.json +97 -97
  348. package/assets/.agent/skills/hyperframes-media/references/bgm.md +72 -72
  349. package/assets/.agent/skills/hyperframes-media/references/captions/authoring.md +159 -159
  350. package/assets/.agent/skills/hyperframes-media/references/captions/motion.md +87 -87
  351. package/assets/.agent/skills/hyperframes-media/references/captions/transcript-handling.md +97 -97
  352. package/assets/.agent/skills/hyperframes-media/references/remove-background.md +143 -143
  353. package/assets/.agent/skills/hyperframes-media/references/requirements.md +29 -29
  354. package/assets/.agent/skills/hyperframes-media/references/sfx.md +42 -42
  355. package/assets/.agent/skills/hyperframes-media/references/transcribe.md +52 -52
  356. package/assets/.agent/skills/hyperframes-media/references/tts-to-captions.md +24 -24
  357. package/assets/.agent/skills/hyperframes-media/references/tts.md +135 -135
  358. package/assets/.agent/skills/hyperframes-media/scripts/audio.mjs +293 -293
  359. package/assets/.agent/skills/hyperframes-media/scripts/heygen-tts.mjs +121 -121
  360. package/assets/.agent/skills/hyperframes-media/scripts/lib/bgm.mjs +235 -235
  361. package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.mjs +14 -14
  362. package/assets/.agent/skills/hyperframes-media/scripts/lib/concurrency.test.mjs +41 -41
  363. package/assets/.agent/skills/hyperframes-media/scripts/lib/heygen.mjs +131 -131
  364. package/assets/.agent/skills/hyperframes-media/scripts/lib/sfx.mjs +128 -128
  365. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.mjs +298 -298
  366. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.spawn.test.mjs +97 -97
  367. package/assets/.agent/skills/hyperframes-media/scripts/lib/tts.test.mjs +66 -66
  368. package/assets/.agent/skills/hyperframes-media/scripts/lyria-recipe.py +128 -128
  369. package/assets/.agent/skills/hyperframes-media/scripts/wait-bgm.mjs +167 -167
  370. package/assets/.agent/skills/hyperframes-registry/SKILL.md +101 -101
  371. package/assets/.agent/skills/hyperframes-registry/examples/add-block.md +51 -51
  372. package/assets/.agent/skills/hyperframes-registry/examples/add-component.md +73 -73
  373. package/assets/.agent/skills/hyperframes-registry/references/contributing.md +166 -166
  374. package/assets/.agent/skills/hyperframes-registry/references/demo-html-pattern.md +54 -54
  375. package/assets/.agent/skills/hyperframes-registry/references/discovery.md +215 -215
  376. package/assets/.agent/skills/hyperframes-registry/references/install-locations.md +45 -45
  377. package/assets/.agent/skills/hyperframes-registry/references/templates.md +417 -417
  378. package/assets/.agent/skills/hyperframes-registry/references/wiring-blocks.md +61 -61
  379. package/assets/.agent/skills/hyperframes-registry/references/wiring-components.md +39 -39
  380. package/assets/.agent/skills/media-use/SKILL.md +124 -124
  381. package/assets/.agent/skills/media-use/scripts/eval.mjs +369 -369
  382. package/assets/.agent/skills/media-use/scripts/lib/adopt.mjs +112 -112
  383. package/assets/.agent/skills/media-use/scripts/lib/bgm-provider.mjs +20 -20
  384. package/assets/.agent/skills/media-use/scripts/lib/brand-provider.mjs +59 -59
  385. package/assets/.agent/skills/media-use/scripts/lib/cache.mjs +114 -114
  386. package/assets/.agent/skills/media-use/scripts/lib/freeze.mjs +26 -26
  387. package/assets/.agent/skills/media-use/scripts/lib/heygen-search.mjs +51 -51
  388. package/assets/.agent/skills/media-use/scripts/lib/image-provider.mjs +44 -44
  389. package/assets/.agent/skills/media-use/scripts/lib/index-gen.mjs +63 -63
  390. package/assets/.agent/skills/media-use/scripts/lib/manifest.mjs +91 -91
  391. package/assets/.agent/skills/media-use/scripts/lib/manifest.test.mjs +293 -293
  392. package/assets/.agent/skills/media-use/scripts/lib/probe.mjs +39 -39
  393. package/assets/.agent/skills/media-use/scripts/lib/probe.test.mjs +31 -31
  394. package/assets/.agent/skills/media-use/scripts/lib/providers.mjs +29 -29
  395. package/assets/.agent/skills/media-use/scripts/lib/sfx-provider.mjs +23 -23
  396. package/assets/.agent/skills/media-use/scripts/resolve.mjs +247 -247
  397. package/assets/.agent/skills/media-use/scripts/resolve.test.mjs +247 -247
  398. package/assets/.agent/skills/motion-graphics/SKILL.md +172 -172
  399. package/assets/.agent/skills/motion-graphics/agents/builder.md +40 -40
  400. package/assets/.agent/skills/motion-graphics/agents/director.md +53 -53
  401. package/assets/.agent/skills/motion-graphics/agents/finalize.md +17 -17
  402. package/assets/.agent/skills/motion-graphics/catalog-map.md +40 -40
  403. package/assets/.agent/skills/motion-graphics/categories/asset-fusion/module.md +37 -37
  404. package/assets/.agent/skills/motion-graphics/categories/charts/module.md +21 -21
  405. package/assets/.agent/skills/motion-graphics/categories/kinetic-type/module.md +19 -19
  406. package/assets/.agent/skills/motion-graphics/categories/logo-reveal/module.md +17 -17
  407. package/assets/.agent/skills/motion-graphics/categories/lower-thirds/module.md +16 -16
  408. package/assets/.agent/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -273
  409. package/assets/.agent/skills/motion-graphics/categories/maps/module.md +61 -61
  410. package/assets/.agent/skills/motion-graphics/categories/news/module.md +56 -56
  411. package/assets/.agent/skills/motion-graphics/categories/stat/module.md +21 -21
  412. package/assets/.agent/skills/motion-graphics/categories/tweet/module.md +16 -16
  413. package/assets/.agent/skills/motion-graphics/categories/webpage/module.md +21 -21
  414. package/assets/.agent/skills/motion-graphics/grounding/PROTOCOL.md +64 -64
  415. package/assets/.agent/skills/motion-graphics/grounding/locate.mjs +227 -227
  416. package/assets/.agent/skills/motion-graphics/phases/source/guide.md +21 -21
  417. package/assets/.agent/skills/motion-graphics/references/builder-contract.md +38 -38
  418. package/assets/.agent/skills/motion-graphics/references/motion-vocabulary.md +43 -43
  419. package/assets/.agent/skills/motion-graphics/references/shot-plan-ir.md +54 -54
  420. package/assets/.agent/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -306
  421. package/assets/.agent/skills/music-to-video/SKILL.md +197 -197
  422. package/assets/.agent/skills/music-to-video/references/frame-skeleton.md +100 -100
  423. package/assets/.agent/skills/music-to-video/references/montage.md +58 -58
  424. package/assets/.agent/skills/music-to-video/references/motion-primitive-catalog.md +75 -75
  425. package/assets/.agent/skills/music-to-video/references/motion-primitives/3d-card-flip/index.html +154 -154
  426. package/assets/.agent/skills/music-to-video/references/motion-primitives/assets/gsap.min.js +11 -11
  427. package/assets/.agent/skills/music-to-video/references/motion-primitives/bg-flow-field/index.html +326 -326
  428. package/assets/.agent/skills/music-to-video/references/motion-primitives/binary-decrypt/index.html +120 -120
  429. package/assets/.agent/skills/music-to-video/references/motion-primitives/blur-resolve/index.html +95 -95
  430. package/assets/.agent/skills/music-to-video/references/motion-primitives/braam-punch/index.html +135 -135
  431. package/assets/.agent/skills/music-to-video/references/motion-primitives/chromatic-split/index.html +146 -146
  432. package/assets/.agent/skills/music-to-video/references/motion-primitives/chrome-sweep/index.html +103 -103
  433. package/assets/.agent/skills/music-to-video/references/motion-primitives/counting-punch/index.html +154 -154
  434. package/assets/.agent/skills/music-to-video/references/motion-primitives/crash-zoom-in/index.html +155 -155
  435. package/assets/.agent/skills/music-to-video/references/motion-primitives/datamosh-smear/index.html +166 -166
  436. package/assets/.agent/skills/music-to-video/references/motion-primitives/directional-fill/index.html +133 -133
  437. package/assets/.agent/skills/music-to-video/references/motion-primitives/dolly-zoom/index.html +137 -137
  438. package/assets/.agent/skills/music-to-video/references/motion-primitives/electric-arc/index.html +144 -144
  439. package/assets/.agent/skills/music-to-video/references/motion-primitives/flash-cut/index.html +132 -132
  440. package/assets/.agent/skills/music-to-video/references/motion-primitives/gooey-metaball/index.html +241 -241
  441. package/assets/.agent/skills/music-to-video/references/motion-primitives/hard-cut/index.html +117 -117
  442. package/assets/.agent/skills/music-to-video/references/motion-primitives/hypercut-whip/index.html +79 -79
  443. package/assets/.agent/skills/music-to-video/references/motion-primitives/iris-open/index.html +104 -104
  444. package/assets/.agent/skills/music-to-video/references/motion-primitives/kinetic-letter-in/index.html +92 -92
  445. package/assets/.agent/skills/music-to-video/references/motion-primitives/liquid-morph/index.html +131 -131
  446. package/assets/.agent/skills/music-to-video/references/motion-primitives/mask-reveal/index.html +109 -109
  447. package/assets/.agent/skills/music-to-video/references/motion-primitives/mosaic-pack/index.html +124 -124
  448. package/assets/.agent/skills/music-to-video/references/motion-primitives/neon-flicker/index.html +108 -108
  449. package/assets/.agent/skills/music-to-video/references/motion-primitives/outline-to-fill/index.html +117 -117
  450. package/assets/.agent/skills/music-to-video/references/motion-primitives/palette-flip/index.html +132 -132
  451. package/assets/.agent/skills/music-to-video/references/motion-primitives/particle-burst/index.html +141 -141
  452. package/assets/.agent/skills/music-to-video/references/motion-primitives/pixel-dissolve/index.html +121 -121
  453. package/assets/.agent/skills/music-to-video/references/motion-primitives/radial-burst-lines/index.html +160 -160
  454. package/assets/.agent/skills/music-to-video/references/motion-primitives/screen-shake/index.html +113 -113
  455. package/assets/.agent/skills/music-to-video/references/motion-primitives/slot-machine-reveal/index.html +130 -130
  456. package/assets/.agent/skills/music-to-video/references/motion-primitives/spotlight-sweep/index.html +137 -137
  457. package/assets/.agent/skills/music-to-video/references/motion-primitives/staggered-exit/index.html +117 -117
  458. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/USAGE.md +42 -42
  459. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-spectral-rays/index.html +313 -313
  460. package/assets/.agent/skills/music-to-video/references/motion-primitives/text-wave-distort/index.html +136 -136
  461. package/assets/.agent/skills/music-to-video/references/motion-primitives/tile-mosaic/index.html +144 -144
  462. package/assets/.agent/skills/music-to-video/references/motion-primitives/typewriter-reveal/index.html +122 -122
  463. package/assets/.agent/skills/music-to-video/references/motion-primitives/word-grid-burst/index.html +126 -126
  464. package/assets/.agent/skills/music-to-video/references/planning.md +104 -104
  465. package/assets/.agent/skills/music-to-video/references/storyboard-format.md +94 -94
  466. package/assets/.agent/skills/music-to-video/references/template-catalog.md +106 -106
  467. package/assets/.agent/skills/music-to-video/references/templates/card-flyby/index.html +527 -527
  468. package/assets/.agent/skills/music-to-video/references/templates/card-flyby/program.json +13 -13
  469. package/assets/.agent/skills/music-to-video/references/templates/held-message-living-field/index.html +485 -485
  470. package/assets/.agent/skills/music-to-video/references/templates/held-text-strobe-burst/index.html +302 -302
  471. package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/index.html +610 -610
  472. package/assets/.agent/skills/music-to-video/references/templates/intro-kinetic-cascade/program.json +41 -41
  473. package/assets/.agent/skills/music-to-video/references/templates/logo-split-lockup-pulse/index.html +596 -596
  474. package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/index.html +589 -589
  475. package/assets/.agent/skills/music-to-video/references/templates/poster-tile-mosaic/program.json +25 -25
  476. package/assets/.agent/skills/music-to-video/references/templates/roll-flipbook-word-cycle/index.html +267 -267
  477. package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/index.html +594 -594
  478. package/assets/.agent/skills/music-to-video/references/templates/split-anchor-word-slot/program.json +39 -39
  479. package/assets/.agent/skills/music-to-video/references/templates/typewriter-phrase-keyword-shuffle/index.html +238 -238
  480. package/assets/.agent/skills/music-to-video/scripts/analyze-beatgrid.py +531 -531
  481. package/assets/.agent/skills/music-to-video/scripts/assemble-index.mjs +218 -218
  482. package/assets/.agent/skills/music-to-video/scripts/lib/storyboard.mjs +249 -249
  483. package/assets/.agent/skills/music-to-video/scripts/stage-assets.mjs +58 -58
  484. package/assets/.agent/skills/music-to-video/scripts/validate-plan.mjs +161 -161
  485. package/assets/.agent/skills/music-to-video/sub-agents/frame-worker.md +75 -75
  486. package/assets/.agent/skills/pr-to-video/SKILL.md +240 -240
  487. package/assets/.agent/skills/pr-to-video/references/code-vocabulary.md +111 -111
  488. package/assets/.agent/skills/pr-to-video/references/cut-catalog.md +215 -215
  489. package/assets/.agent/skills/pr-to-video/references/motion-language.md +156 -156
  490. package/assets/.agent/skills/pr-to-video/references/story-design.md +211 -211
  491. package/assets/.agent/skills/pr-to-video/references/visual-design.md +164 -164
  492. package/assets/.agent/skills/pr-to-video/scripts/assemble-index.mjs +570 -570
  493. package/assets/.agent/skills/pr-to-video/scripts/audio.mjs +253 -253
  494. package/assets/.agent/skills/pr-to-video/scripts/build-frame.mjs +536 -536
  495. package/assets/.agent/skills/pr-to-video/scripts/captions.mjs +508 -508
  496. package/assets/.agent/skills/pr-to-video/scripts/fetch-people-avatars.mjs +157 -157
  497. package/assets/.agent/skills/pr-to-video/scripts/fetch-pr.mjs +164 -164
  498. package/assets/.agent/skills/pr-to-video/scripts/ingest.mjs +539 -539
  499. package/assets/.agent/skills/pr-to-video/scripts/lib/assets.mjs +55 -55
  500. package/assets/.agent/skills/pr-to-video/scripts/lib/dimensions.mjs +45 -45
  501. package/assets/.agent/skills/pr-to-video/scripts/lib/storyboard.mjs +249 -249
  502. package/assets/.agent/skills/pr-to-video/scripts/lib/tokens.mjs +204 -204
  503. package/assets/.agent/skills/pr-to-video/scripts/lib/transition-registry.mjs +38 -38
  504. package/assets/.agent/skills/pr-to-video/scripts/lib/transitions.json +71 -71
  505. package/assets/.agent/skills/pr-to-video/scripts/transitions.mjs +320 -320
  506. package/assets/.agent/skills/pr-to-video/sub-agents/frame-worker.md +95 -95
  507. package/assets/.agent/skills/product-launch-video/SKILL.md +208 -208
  508. package/assets/.agent/skills/product-launch-video/references/cut-catalog.md +220 -220
  509. package/assets/.agent/skills/product-launch-video/references/motion-language.md +156 -156
  510. package/assets/.agent/skills/product-launch-video/references/story-design.md +373 -373
  511. package/assets/.agent/skills/product-launch-video/references/visual-design.md +126 -126
  512. package/assets/.agent/skills/product-launch-video/scripts/assemble-index.mjs +570 -570
  513. package/assets/.agent/skills/product-launch-video/scripts/audio.mjs +253 -253
  514. package/assets/.agent/skills/product-launch-video/scripts/build-frame.mjs +536 -536
  515. package/assets/.agent/skills/product-launch-video/scripts/captions.mjs +508 -508
  516. package/assets/.agent/skills/product-launch-video/scripts/lib/assets.mjs +55 -55
  517. package/assets/.agent/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -45
  518. package/assets/.agent/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -249
  519. package/assets/.agent/skills/product-launch-video/scripts/lib/tokens.mjs +204 -204
  520. package/assets/.agent/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -38
  521. package/assets/.agent/skills/product-launch-video/scripts/lib/transitions.json +71 -71
  522. package/assets/.agent/skills/product-launch-video/scripts/stage-assets.mjs +39 -39
  523. package/assets/.agent/skills/product-launch-video/scripts/transitions.mjs +320 -320
  524. package/assets/.agent/skills/product-launch-video/sub-agents/frame-worker.md +75 -75
  525. package/assets/.agent/skills/remotion/SKILL.md +357 -38
  526. package/assets/.agent/skills/remotion/rules/3d.md +5 -5
  527. package/assets/.agent/skills/remotion/rules/assets/text-animations-word-highlight.tsx +1 -6
  528. package/assets/.agent/skills/remotion/rules/audio-visualization.md +198 -0
  529. package/assets/.agent/skills/remotion/rules/audio.md +1 -4
  530. package/assets/.agent/skills/remotion/rules/calculate-metadata.md +48 -18
  531. package/assets/.agent/skills/remotion/rules/compositions.md +16 -24
  532. package/assets/.agent/skills/remotion/rules/display-captions.md +79 -21
  533. package/assets/.agent/skills/remotion/rules/effects.md +235 -0
  534. package/assets/.agent/skills/remotion/rules/ffmpeg.md +34 -0
  535. package/assets/.agent/skills/remotion/rules/get-audio-duration.md +13 -13
  536. package/assets/.agent/skills/remotion/rules/get-video-dimensions.md +1 -1
  537. package/assets/.agent/skills/remotion/rules/get-video-duration.md +12 -10
  538. package/assets/.agent/skills/remotion/rules/gifs.md +21 -18
  539. package/assets/.agent/skills/remotion/rules/google-fonts.md +72 -0
  540. package/assets/.agent/skills/remotion/rules/html-in-canvas.md +122 -0
  541. package/assets/.agent/skills/remotion/rules/images.md +5 -64
  542. package/assets/.agent/skills/remotion/rules/import-srt-captions.md +9 -7
  543. package/assets/.agent/skills/remotion/rules/light-leaks.md +73 -0
  544. package/assets/.agent/skills/remotion/rules/local-fonts.md +65 -0
  545. package/assets/.agent/skills/remotion/rules/lottie.md +10 -8
  546. package/assets/.agent/skills/remotion/rules/maplibre.md +458 -0
  547. package/assets/.agent/skills/remotion/rules/measuring-dom-nodes.md +0 -1
  548. package/assets/.agent/skills/remotion/rules/measuring-text.md +2 -5
  549. package/assets/.agent/skills/remotion/rules/parameters.md +21 -10
  550. package/assets/.agent/skills/remotion/rules/sequencing.md +35 -9
  551. package/assets/.agent/skills/remotion/rules/sfx.md +51 -0
  552. package/assets/.agent/skills/remotion/rules/silence-detection.md +71 -0
  553. package/assets/.agent/skills/remotion/rules/subtitles.md +36 -0
  554. package/assets/.agent/skills/remotion/rules/tailwind.md +2 -2
  555. package/assets/.agent/skills/remotion/rules/timing.md +89 -106
  556. package/assets/.agent/skills/remotion/rules/transcribe-captions.md +58 -7
  557. package/assets/.agent/skills/remotion/rules/transitions.md +117 -42
  558. package/assets/.agent/skills/remotion/rules/transparent-videos.md +106 -0
  559. package/assets/.agent/skills/remotion/rules/trimming.md +1 -3
  560. package/assets/.agent/skills/remotion/rules/video-layout.md +68 -0
  561. package/assets/.agent/skills/remotion/rules/voiceover.md +99 -0
  562. package/assets/.agent/skills/remotion-real-ui-video/SKILL.md +264 -264
  563. package/assets/.agent/skills/remotion-real-ui-video/references/anti-patterns.md +114 -114
  564. package/assets/.agent/skills/remotion-real-ui-video/references/completion-checklist.md +75 -75
  565. package/assets/.agent/skills/remotion-real-ui-video/references/real-ui-bridge-example.md +93 -93
  566. package/assets/.agent/skills/remotion-to-hyperframes/SKILL.md +127 -127
  567. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/run.sh +249 -249
  568. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/README.md +41 -41
  569. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/expected.json +26 -26
  570. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/hf-src/index.html +61 -61
  571. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/package.json +14 -14
  572. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts +13 -13
  573. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx +13 -13
  574. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx +34 -34
  575. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts +4 -4
  576. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json +15 -15
  577. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/README.md +54 -54
  578. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/expected.json +29 -29
  579. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/hf-src/index.html +118 -118
  580. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/package.json +14 -14
  581. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/remotion.config.ts +13 -13
  582. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/MultiScene.tsx +105 -105
  583. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/Root.tsx +13 -13
  584. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/src/index.ts +4 -4
  585. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/remotion-src/tsconfig.json +15 -15
  586. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-2-multi-scene/setup.sh +34 -34
  587. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/README.md +85 -85
  588. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/expected.json +41 -41
  589. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/hf-src/index.html +269 -269
  590. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/package.json +15 -15
  591. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/remotion.config.ts +13 -13
  592. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Root.tsx +27 -27
  593. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/Stargazed.tsx +37 -37
  594. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/AnimatedNumber.tsx +23 -23
  595. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/StatCard.tsx +59 -59
  596. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/components/UnderlinedText.tsx +47 -47
  597. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/index.ts +4 -4
  598. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/OutroScene.tsx +18 -18
  599. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/StatsScene.tsx +34 -34
  600. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsx +55 -55
  601. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-3-data-driven/remotion-src/tsconfig.json +15 -15
  602. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/README.md +51 -51
  603. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/01-use-state.tsx +29 -29
  604. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/02-use-effect-deps.tsx +29 -29
  605. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/03-async-metadata.tsx +39 -39
  606. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/04-third-party-react.tsx +30 -30
  607. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/05-lambda-config.tsx +38 -38
  608. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/06-warnings-only.tsx +36 -36
  609. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/07-custom-hook.tsx +28 -28
  610. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/cases/08-mixed.tsx +41 -41
  611. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/expected.json +85 -85
  612. package/assets/.agent/skills/remotion-to-hyperframes/assets/test-corpus/tier-4-escape-hatch/validate.sh +110 -110
  613. package/assets/.agent/skills/remotion-to-hyperframes/references/api-map.md +142 -142
  614. package/assets/.agent/skills/remotion-to-hyperframes/references/escape-hatch.md +115 -115
  615. package/assets/.agent/skills/remotion-to-hyperframes/references/eval.md +140 -140
  616. package/assets/.agent/skills/remotion-to-hyperframes/references/fonts.md +112 -112
  617. package/assets/.agent/skills/remotion-to-hyperframes/references/limitations.md +136 -136
  618. package/assets/.agent/skills/remotion-to-hyperframes/references/lottie.md +121 -121
  619. package/assets/.agent/skills/remotion-to-hyperframes/references/media.md +149 -149
  620. package/assets/.agent/skills/remotion-to-hyperframes/references/parameters.md +167 -167
  621. package/assets/.agent/skills/remotion-to-hyperframes/references/sequencing.md +195 -195
  622. package/assets/.agent/skills/remotion-to-hyperframes/references/timing.md +165 -165
  623. package/assets/.agent/skills/remotion-to-hyperframes/references/transitions.md +114 -114
  624. package/assets/.agent/skills/remotion-to-hyperframes/scripts/frame_strip.sh +107 -107
  625. package/assets/.agent/skills/remotion-to-hyperframes/scripts/lint_source.py +358 -358
  626. package/assets/.agent/skills/remotion-to-hyperframes/scripts/render_diff.sh +103 -103
  627. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/blocker.tsx +50 -50
  628. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/fixtures/clean.tsx +46 -46
  629. package/assets/.agent/skills/remotion-to-hyperframes/scripts/tests/smoke.sh +90 -90
  630. package/assets/.agent/skills/shared-resend-portfolio/SKILL.md +124 -124
  631. package/assets/.agent/skills/slideshow/SKILL.md +550 -550
  632. package/assets/.agent/skills/slideshow/references/standalone-harness.md +1020 -1020
  633. package/assets/.agent/skills/talking-head-recut/NOTICE.md +39 -39
  634. package/assets/.agent/skills/talking-head-recut/SKILL.md +1191 -1191
  635. package/assets/.agent/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -10
  636. package/assets/.agent/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -145
  637. package/assets/.agent/skills/talking-head-recut/references/frames/clean.html +92 -92
  638. package/assets/.agent/skills/talking-head-recut/references/frames/hairline.html +171 -171
  639. package/assets/.agent/skills/talking-head-recut/references/frames/polaroid.html +131 -131
  640. package/assets/.agent/skills/talking-head-recut/references/layouts/overlay.html +164 -164
  641. package/assets/.agent/skills/talking-head-recut/references/layouts/pip.html +143 -143
  642. package/assets/.agent/skills/talking-head-recut/references/layouts/split.html +121 -121
  643. package/assets/.agent/skills/talking-head-recut/references/layouts/stack.html +109 -109
  644. package/assets/.agent/skills/talking-head-recut/references/styles/academic.html +172 -172
  645. package/assets/.agent/skills/talking-head-recut/references/styles/audit.html +170 -170
  646. package/assets/.agent/skills/talking-head-recut/references/styles/editorial.html +189 -189
  647. package/assets/.agent/skills/talking-head-recut/references/styles/geom.html +181 -181
  648. package/assets/.agent/skills/talking-head-recut/references/styles/minimal.html +130 -130
  649. package/assets/.agent/skills/talking-head-recut/references/styles/spotlight.html +142 -142
  650. package/assets/.agent/skills/talking-head-recut/references/styles/swiss.html +188 -188
  651. package/assets/.agent/skills/talking-head-recut/references/styles/terminal.html +196 -196
  652. package/assets/.agent/skills/talking-head-recut/references/styles/whiteboard.html +170 -170
  653. package/assets/.agent/skills/talking-head-recut/references/styles/xhs.html +206 -206
  654. package/assets/.agent/skills/website-to-video/SKILL.md +145 -145
  655. package/assets/.agent/skills/website-to-video/assets/sfx/CREDITS.md +35 -35
  656. package/assets/.agent/skills/website-to-video/assets/sfx/manifest.json +97 -97
  657. package/assets/.agent/skills/website-to-video/references/beat-builder-guide.md +263 -263
  658. package/assets/.agent/skills/website-to-video/references/capabilities.md +713 -713
  659. package/assets/.agent/skills/website-to-video/references/step-0-capture.md +55 -55
  660. package/assets/.agent/skills/website-to-video/references/step-1-design.md +333 -333
  661. package/assets/.agent/skills/website-to-video/references/step-2-brief.md +178 -178
  662. package/assets/.agent/skills/website-to-video/references/step-3-storyboard.md +572 -572
  663. package/assets/.agent/skills/website-to-video/references/step-4-vo.md +230 -230
  664. package/assets/.agent/skills/website-to-video/references/step-5-build.md +483 -483
  665. package/assets/.agent/skills/website-to-video/references/step-6-validate.md +341 -341
  666. package/assets/.agent/skills/website-to-video/scripts/w2h-verify.mjs +759 -759
  667. package/package.json +6 -5
  668. package/src/pi-takomi-core/orchestration.ts +39 -21
  669. package/src/pi-takomi-core/routing.ts +8 -8
  670. package/src/pi-takomi-core/types.ts +25 -5
  671. package/src/pi-takomi-core/workflows.ts +86 -86
  672. package/src/takomi-stats.js +5 -5
  673. package/assets/.agent/skills/remotion/rules/animations.md +0 -29
  674. package/assets/.agent/skills/remotion/rules/assets.md +0 -78
  675. package/assets/.agent/skills/remotion/rules/can-decode.md +0 -75
  676. package/assets/.agent/skills/remotion/rules/charts.md +0 -58
  677. package/assets/.agent/skills/remotion/rules/extract-frames.md +0 -229
  678. package/assets/.agent/skills/remotion/rules/fonts.md +0 -152
  679. package/assets/.agent/skills/remotion/rules/maps.md +0 -403
@@ -1,326 +1,326 @@
1
- <!doctype html>
2
- <html
3
- lang="en"
4
- data-composition-variables='[
5
- {"id":"bgColor", "type":"color", "label":"Page background", "default":"#050507"},
6
- {"id":"colorLow", "type":"color", "label":"Flow — shadow tone", "default":"#0a1430"},
7
- {"id":"colorMid", "type":"color", "label":"Flow — mid tone", "default":"#6a6f9e"},
8
- {"id":"colorHigh", "type":"color", "label":"Flow — highlight tone", "default":"#e8f0ff"},
9
- {"id":"accentColor","type":"color", "label":"Core / glow accent", "default":"#aee4ff"},
10
- {"id":"flowSpeed", "type":"number", "label":"Flow speed", "default":1, "min":0.1, "max":3, "step":0.1}
11
- ]'
12
- >
13
- <head>
14
- <meta charset="UTF-8" />
15
- <meta name="viewport" content="width=1920, height=1080" />
16
- <title>bg_flow_field</title>
17
- <script src="../assets/gsap.min.js"></script>
18
- <style>
19
- :root {
20
- --hg-violet: #7c3aed;
21
- --hg-violet-2: #a855f7;
22
- --hg-bg: #050507;
23
- --hg-fg: #f5f5fa;
24
- --hg-dim: #6b6b78;
25
- }
26
- * {
27
- margin: 0;
28
- padding: 0;
29
- box-sizing: border-box;
30
- }
31
- html,
32
- body {
33
- margin: 0;
34
- width: 1920px;
35
- height: 1080px;
36
- overflow: hidden;
37
- background: var(--hg-bg);
38
- font-family: "Inter", system-ui, sans-serif;
39
- color: var(--hg-fg);
40
- -webkit-font-smoothing: antialiased;
41
- }
42
- #scene {
43
- position: absolute;
44
- inset: 0;
45
- width: 1920px;
46
- height: 1080px;
47
- }
48
- .field {
49
- position: absolute;
50
- inset: 0;
51
- width: 1920px;
52
- height: 1080px;
53
- display: block;
54
- }
55
- .label {
56
- position: absolute;
57
- left: 48px;
58
- bottom: 40px;
59
- font-size: 22px;
60
- font-weight: 600;
61
- letter-spacing: 0.18em;
62
- text-transform: uppercase;
63
- color: rgba(255, 255, 255, 0.7);
64
- mix-blend-mode: screen;
65
- pointer-events: none;
66
- }
67
- </style>
68
- </head>
69
- <body>
70
- <div
71
- id="root"
72
- data-composition-id="main"
73
- data-start="0"
74
- data-duration="4"
75
- data-width="1920"
76
- data-height="1080"
77
- >
78
- <div id="scene" class="clip" data-start="0" data-duration="4" data-track-index="1">
79
- <canvas class="field" width="1920" height="1080"></canvas>
80
- <div class="label">bg_flow_field</div>
81
- </div>
82
- </div>
83
- <script>
84
- window.__timelines = window.__timelines || {};
85
- const tl = gsap.timeline({ paused: true });
86
-
87
- // ── Variables (palette + speed); falls back to defaults standalone ──
88
- const defaults = {
89
- bgColor: "#050507",
90
- colorLow: "#0a1430",
91
- colorMid: "#6a6f9e",
92
- colorHigh: "#e8f0ff",
93
- accentColor: "#aee4ff",
94
- flowSpeed: 1,
95
- };
96
- const vars = Object.assign(
97
- {},
98
- defaults,
99
- window.__hyperframes && window.__hyperframes.getVariables
100
- ? window.__hyperframes.getVariables()
101
- : {},
102
- );
103
-
104
- // sRGB hex -> linear-light [r,g,b] (shader works in linear, gamma-encodes at end)
105
- function hexLin(hex) {
106
- let h = String(hex).replace("#", "").trim();
107
- if (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
108
- const r = parseInt(h.substr(0, 2), 16) / 255;
109
- const g = parseInt(h.substr(2, 2), 16) / 255;
110
- const b = parseInt(h.substr(4, 2), 16) / 255;
111
- const lin = (c) => Math.pow(c, 2.2);
112
- return [lin(r), lin(g), lin(b)];
113
- }
114
-
115
- const canvas = document.querySelector(".field");
116
- const gl = canvas.getContext("webgl", {
117
- antialias: false,
118
- alpha: false,
119
- preserveDrawingBuffer: true,
120
- });
121
-
122
- const VERT = [
123
- "attribute vec2 position;",
124
- "varying vec2 vUv;",
125
- "void main(){",
126
- " vUv = position * 0.5 + 0.5;",
127
- " gl_Position = vec4(position, 0.0, 1.0);",
128
- "}",
129
- ].join("\n");
130
-
131
- // Curl-noise flow field — ported verbatim from the held-message-living-field
132
- // template's "living field" background. All visible state comes from uniforms.
133
- const FRAG = [
134
- "precision highp float;",
135
- "varying vec2 vUv;",
136
- "uniform float uTime;",
137
- "uniform float uPhase;",
138
- "uniform float uReveal;",
139
- "uniform float uChromAb;",
140
- "uniform float uVignette;",
141
- "uniform float uIntensity;",
142
- "uniform float uSpeed;",
143
- "uniform vec2 uResolution;",
144
- "uniform vec3 uColLow;",
145
- "uniform vec3 uColMid;",
146
- "uniform vec3 uColHigh;",
147
- "uniform vec3 uAccent;",
148
- "float hash21(vec2 p){",
149
- " p = fract(p * vec2(123.34, 456.21));",
150
- " p += dot(p, p + 45.32);",
151
- " return fract(p.x * p.y);",
152
- "}",
153
- "float noise2(vec2 p){",
154
- " vec2 i = floor(p);",
155
- " vec2 f = fract(p);",
156
- " vec2 u = f * f * (3.0 - 2.0 * f);",
157
- " float a = hash21(i);",
158
- " float b = hash21(i + vec2(1.0, 0.0));",
159
- " float c = hash21(i + vec2(0.0, 1.0));",
160
- " float d = hash21(i + vec2(1.0, 1.0));",
161
- " return mix(mix(a,b,u.x), mix(c,d,u.x), u.y);",
162
- "}",
163
- "float fbm(vec2 p){",
164
- " float v = 0.0;",
165
- " float a = 0.5;",
166
- " for(int i=0;i<5;i++){",
167
- " v += a * noise2(p);",
168
- " p *= 2.02;",
169
- " a *= 0.5;",
170
- " }",
171
- " return v;",
172
- "}",
173
- "vec2 curl(vec2 p, float t){",
174
- " float e = 0.6;",
175
- " float n1 = fbm(p + vec2(0.0, e) + t*0.18);",
176
- " float n2 = fbm(p + vec2(0.0, -e) + t*0.18);",
177
- " float n3 = fbm(p + vec2( e, 0.0) + t*0.18);",
178
- " float n4 = fbm(p + vec2(-e, 0.0) + t*0.18);",
179
- " return vec2(n1 - n2, -(n3 - n4));",
180
- "}",
181
- "vec3 palette(float t){",
182
- " t = clamp(t, 0.0, 1.0);",
183
- " vec3 lowMid = mix(uColLow, uColMid, smoothstep(0.0, 0.5, t));",
184
- " return mix(lowMid, uColHigh, smoothstep(0.5, 1.0, t));",
185
- "}",
186
- "vec3 sampleField(vec2 uv, float t, float energy){",
187
- " vec2 p = (uv - 0.5) * vec2(uResolution.x/uResolution.y, 1.0) * 2.4;",
188
- " vec2 c = curl(p * 0.9, t);",
189
- " vec2 q = p + c * (0.45 + 0.55 * energy);",
190
- " float flow = fbm(q * 1.6 + vec2(t * 0.11, -t * 0.07));",
191
- " float bands = sin(flow * 14.0 + t * 1.1);",
192
- " bands = smoothstep(0.0, 1.0, 0.5 + 0.5 * bands);",
193
- " float r = length(p);",
194
- " float core = smoothstep(1.5, 0.05, r) * (0.6 + 0.4 * energy);",
195
- " float glow = exp(-r * 1.6) * (0.55 + 0.45 * energy);",
196
- " float k = clamp(flow * 0.85 + 0.15 * bands + 0.25 * core + 0.6 * glow, 0.0, 1.4);",
197
- " vec3 col = palette(k * 0.9 + 0.1 * sin(t * 0.4));",
198
- " col *= 0.7 + 0.6 * energy;",
199
- " col += uAccent * core * 0.55;",
200
- " return col;",
201
- "}",
202
- "void main(){",
203
- " vec2 uv = vUv;",
204
- " float t = uTime * uSpeed;",
205
- " float e = uIntensity;",
206
- " vec2 dir = normalize(uv - 0.5 + 1e-6);",
207
- " float ca = uChromAb * (0.004 + 0.012 * length(uv - 0.5));",
208
- " vec3 cR = sampleField(uv + dir * ca, t, e);",
209
- " vec3 cG = sampleField(uv, t, e);",
210
- " vec3 cB = sampleField(uv - dir * ca, t, e);",
211
- " vec3 col = vec3(cR.r, cG.g, cB.b);",
212
- " float lum = dot(col, vec3(0.299, 0.587, 0.114));",
213
- " col = mix(vec3(lum), col, 1.05);",
214
- " float rev = uReveal;",
215
- " float sweep = smoothstep(0.0, 0.6, rev) * (1.0 - smoothstep(0.6, 1.0, rev));",
216
- " col += uColHigh * sweep * 0.35;",
217
- " vec3 phaseTint = mix(vec3(0.85, 0.92, 1.05), vec3(1.05, 0.95, 0.85), uPhase);",
218
- " col *= phaseTint;",
219
- " float v = length(uv - 0.5);",
220
- " col *= 1.0 - smoothstep(0.45, 0.95, v) * uVignette;",
221
- " col = col / (col + 1.0);",
222
- " col = pow(col, vec3(1.0/2.2));",
223
- " gl_FragColor = vec4(col, 1.0);",
224
- "}",
225
- ].join("\n");
226
-
227
- function compile(type, src) {
228
- const s = gl.createShader(type);
229
- gl.shaderSource(s, src);
230
- gl.compileShader(s);
231
- return s;
232
- }
233
- const prog = gl.createProgram();
234
- gl.attachShader(prog, compile(gl.VERTEX_SHADER, VERT));
235
- gl.attachShader(prog, compile(gl.FRAGMENT_SHADER, FRAG));
236
- gl.linkProgram(prog);
237
- gl.useProgram(prog);
238
-
239
- // full-screen triangle
240
- const buf = gl.createBuffer();
241
- gl.bindBuffer(gl.ARRAY_BUFFER, buf);
242
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 3, -1, -1, 3]), gl.STATIC_DRAW);
243
- const posLoc = gl.getAttribLocation(prog, "position");
244
- gl.enableVertexAttribArray(posLoc);
245
- gl.vertexAttribPointer(posLoc, 2, gl.FLOAT, false, 0, 0);
246
- gl.viewport(0, 0, 1920, 1080);
247
-
248
- const L = (n) => gl.getUniformLocation(prog, n);
249
- const uLoc = {
250
- uTime: L("uTime"),
251
- uPhase: L("uPhase"),
252
- uReveal: L("uReveal"),
253
- uChromAb: L("uChromAb"),
254
- uVignette: L("uVignette"),
255
- uIntensity: L("uIntensity"),
256
- uSpeed: L("uSpeed"),
257
- uResolution: L("uResolution"),
258
- uColLow: L("uColLow"),
259
- uColMid: L("uColMid"),
260
- uColHigh: L("uColHigh"),
261
- uAccent: L("uAccent"),
262
- };
263
-
264
- // animated uniform state (GSAP tweens these .value fields)
265
- const u = {
266
- uTime: { value: 0 },
267
- uPhase: { value: 0.1 },
268
- uReveal: { value: 0 },
269
- uChromAb: { value: 0 },
270
- uVignette: { value: 0 },
271
- uIntensity: { value: 0.3 },
272
- };
273
- const speed = Number(vars.flowSpeed) || 1;
274
- const cLow = hexLin(vars.colorLow);
275
- const cMid = hexLin(vars.colorMid);
276
- const cHigh = hexLin(vars.colorHigh);
277
- const cAcc = hexLin(vars.accentColor);
278
-
279
- function render() {
280
- gl.uniform1f(uLoc.uTime, u.uTime.value);
281
- gl.uniform1f(uLoc.uPhase, u.uPhase.value);
282
- gl.uniform1f(uLoc.uReveal, u.uReveal.value);
283
- gl.uniform1f(uLoc.uChromAb, u.uChromAb.value);
284
- gl.uniform1f(uLoc.uVignette, u.uVignette.value);
285
- gl.uniform1f(uLoc.uIntensity, u.uIntensity.value);
286
- gl.uniform1f(uLoc.uSpeed, speed);
287
- gl.uniform2f(uLoc.uResolution, 1920, 1080);
288
- gl.uniform3fv(uLoc.uColLow, cLow);
289
- gl.uniform3fv(uLoc.uColMid, cMid);
290
- gl.uniform3fv(uLoc.uColHigh, cHigh);
291
- gl.uniform3fv(uLoc.uAccent, cAcc);
292
- gl.drawArrays(gl.TRIANGLES, 0, 3);
293
- }
294
- render(); // initial frame so a seek to 0 / first paint is correct
295
-
296
- // ── Energy-envelope drive (the "living field" breath): all repaint is via
297
- // onUpdate, so the field is fully determined by the timeline position — no
298
- // requestAnimationFrame, seek-safe. ──
299
- tl.eventCallback("onUpdate", render);
300
-
301
- tl.to(u.uTime, { value: 4, duration: 4, ease: "none" }, 0);
302
-
303
- // energy: settle-in → breathe → SURGE → settle dark for the hold
304
- tl.to(u.uIntensity, { value: 0.6, duration: 1.2, ease: "sine.inOut" }, 0);
305
- tl.to(u.uIntensity, { value: 1.0, duration: 0.7, ease: "power2.in" }, 1.3);
306
- tl.to(u.uIntensity, { value: 0.35, duration: 2.0, ease: "power2.out" }, 2.0);
307
-
308
- // chromatic light-leak: light at entry, spikes on the surge, then settles
309
- tl.fromTo(u.uChromAb, { value: 0 }, { value: 0.4, duration: 1.2, ease: "sine.in" }, 0);
310
- tl.to(u.uChromAb, { value: 1.4, duration: 0.5, ease: "power3.in" }, 1.4);
311
- tl.to(u.uChromAb, { value: 0.2, duration: 1.6, ease: "power2.out" }, 1.9);
312
-
313
- // a brief highlight sweep across the surge
314
- tl.fromTo(u.uReveal, { value: 0 }, { value: 1, duration: 0.7, ease: "none" }, 1.3);
315
- tl.set(u.uReveal, { value: 0 }, 2.0);
316
-
317
- // colour-temperature drift
318
- tl.to(u.uPhase, { value: 0.6, duration: 2.2, ease: "sine.inOut" }, 0.6);
319
-
320
- // black mask settles the field to near-black + central glow for the hold
321
- tl.to(u.uVignette, { value: 0.85, duration: 1.6, ease: "power2.out" }, 1.9);
322
-
323
- window.__timelines["main"] = tl;
324
- </script>
325
- </body>
326
- </html>
1
+ <!doctype html>
2
+ <html
3
+ lang="en"
4
+ data-composition-variables='[
5
+ {"id":"bgColor", "type":"color", "label":"Page background", "default":"#050507"},
6
+ {"id":"colorLow", "type":"color", "label":"Flow — shadow tone", "default":"#0a1430"},
7
+ {"id":"colorMid", "type":"color", "label":"Flow — mid tone", "default":"#6a6f9e"},
8
+ {"id":"colorHigh", "type":"color", "label":"Flow — highlight tone", "default":"#e8f0ff"},
9
+ {"id":"accentColor","type":"color", "label":"Core / glow accent", "default":"#aee4ff"},
10
+ {"id":"flowSpeed", "type":"number", "label":"Flow speed", "default":1, "min":0.1, "max":3, "step":0.1}
11
+ ]'
12
+ >
13
+ <head>
14
+ <meta charset="UTF-8" />
15
+ <meta name="viewport" content="width=1920, height=1080" />
16
+ <title>bg_flow_field</title>
17
+ <script src="../assets/gsap.min.js"></script>
18
+ <style>
19
+ :root {
20
+ --hg-violet: #7c3aed;
21
+ --hg-violet-2: #a855f7;
22
+ --hg-bg: #050507;
23
+ --hg-fg: #f5f5fa;
24
+ --hg-dim: #6b6b78;
25
+ }
26
+ * {
27
+ margin: 0;
28
+ padding: 0;
29
+ box-sizing: border-box;
30
+ }
31
+ html,
32
+ body {
33
+ margin: 0;
34
+ width: 1920px;
35
+ height: 1080px;
36
+ overflow: hidden;
37
+ background: var(--hg-bg);
38
+ font-family: "Inter", system-ui, sans-serif;
39
+ color: var(--hg-fg);
40
+ -webkit-font-smoothing: antialiased;
41
+ }
42
+ #scene {
43
+ position: absolute;
44
+ inset: 0;
45
+ width: 1920px;
46
+ height: 1080px;
47
+ }
48
+ .field {
49
+ position: absolute;
50
+ inset: 0;
51
+ width: 1920px;
52
+ height: 1080px;
53
+ display: block;
54
+ }
55
+ .label {
56
+ position: absolute;
57
+ left: 48px;
58
+ bottom: 40px;
59
+ font-size: 22px;
60
+ font-weight: 600;
61
+ letter-spacing: 0.18em;
62
+ text-transform: uppercase;
63
+ color: rgba(255, 255, 255, 0.7);
64
+ mix-blend-mode: screen;
65
+ pointer-events: none;
66
+ }
67
+ </style>
68
+ </head>
69
+ <body>
70
+ <div
71
+ id="root"
72
+ data-composition-id="main"
73
+ data-start="0"
74
+ data-duration="4"
75
+ data-width="1920"
76
+ data-height="1080"
77
+ >
78
+ <div id="scene" class="clip" data-start="0" data-duration="4" data-track-index="1">
79
+ <canvas class="field" width="1920" height="1080"></canvas>
80
+ <div class="label">bg_flow_field</div>
81
+ </div>
82
+ </div>
83
+ <script>
84
+ window.__timelines = window.__timelines || {};
85
+ const tl = gsap.timeline({ paused: true });
86
+
87
+ // ── Variables (palette + speed); falls back to defaults standalone ──
88
+ const defaults = {
89
+ bgColor: "#050507",
90
+ colorLow: "#0a1430",
91
+ colorMid: "#6a6f9e",
92
+ colorHigh: "#e8f0ff",
93
+ accentColor: "#aee4ff",
94
+ flowSpeed: 1,
95
+ };
96
+ const vars = Object.assign(
97
+ {},
98
+ defaults,
99
+ window.__hyperframes && window.__hyperframes.getVariables
100
+ ? window.__hyperframes.getVariables()
101
+ : {},
102
+ );
103
+
104
+ // sRGB hex -> linear-light [r,g,b] (shader works in linear, gamma-encodes at end)
105
+ function hexLin(hex) {
106
+ let h = String(hex).replace("#", "").trim();
107
+ if (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
108
+ const r = parseInt(h.substr(0, 2), 16) / 255;
109
+ const g = parseInt(h.substr(2, 2), 16) / 255;
110
+ const b = parseInt(h.substr(4, 2), 16) / 255;
111
+ const lin = (c) => Math.pow(c, 2.2);
112
+ return [lin(r), lin(g), lin(b)];
113
+ }
114
+
115
+ const canvas = document.querySelector(".field");
116
+ const gl = canvas.getContext("webgl", {
117
+ antialias: false,
118
+ alpha: false,
119
+ preserveDrawingBuffer: true,
120
+ });
121
+
122
+ const VERT = [
123
+ "attribute vec2 position;",
124
+ "varying vec2 vUv;",
125
+ "void main(){",
126
+ " vUv = position * 0.5 + 0.5;",
127
+ " gl_Position = vec4(position, 0.0, 1.0);",
128
+ "}",
129
+ ].join("\n");
130
+
131
+ // Curl-noise flow field — ported verbatim from the held-message-living-field
132
+ // template's "living field" background. All visible state comes from uniforms.
133
+ const FRAG = [
134
+ "precision highp float;",
135
+ "varying vec2 vUv;",
136
+ "uniform float uTime;",
137
+ "uniform float uPhase;",
138
+ "uniform float uReveal;",
139
+ "uniform float uChromAb;",
140
+ "uniform float uVignette;",
141
+ "uniform float uIntensity;",
142
+ "uniform float uSpeed;",
143
+ "uniform vec2 uResolution;",
144
+ "uniform vec3 uColLow;",
145
+ "uniform vec3 uColMid;",
146
+ "uniform vec3 uColHigh;",
147
+ "uniform vec3 uAccent;",
148
+ "float hash21(vec2 p){",
149
+ " p = fract(p * vec2(123.34, 456.21));",
150
+ " p += dot(p, p + 45.32);",
151
+ " return fract(p.x * p.y);",
152
+ "}",
153
+ "float noise2(vec2 p){",
154
+ " vec2 i = floor(p);",
155
+ " vec2 f = fract(p);",
156
+ " vec2 u = f * f * (3.0 - 2.0 * f);",
157
+ " float a = hash21(i);",
158
+ " float b = hash21(i + vec2(1.0, 0.0));",
159
+ " float c = hash21(i + vec2(0.0, 1.0));",
160
+ " float d = hash21(i + vec2(1.0, 1.0));",
161
+ " return mix(mix(a,b,u.x), mix(c,d,u.x), u.y);",
162
+ "}",
163
+ "float fbm(vec2 p){",
164
+ " float v = 0.0;",
165
+ " float a = 0.5;",
166
+ " for(int i=0;i<5;i++){",
167
+ " v += a * noise2(p);",
168
+ " p *= 2.02;",
169
+ " a *= 0.5;",
170
+ " }",
171
+ " return v;",
172
+ "}",
173
+ "vec2 curl(vec2 p, float t){",
174
+ " float e = 0.6;",
175
+ " float n1 = fbm(p + vec2(0.0, e) + t*0.18);",
176
+ " float n2 = fbm(p + vec2(0.0, -e) + t*0.18);",
177
+ " float n3 = fbm(p + vec2( e, 0.0) + t*0.18);",
178
+ " float n4 = fbm(p + vec2(-e, 0.0) + t*0.18);",
179
+ " return vec2(n1 - n2, -(n3 - n4));",
180
+ "}",
181
+ "vec3 palette(float t){",
182
+ " t = clamp(t, 0.0, 1.0);",
183
+ " vec3 lowMid = mix(uColLow, uColMid, smoothstep(0.0, 0.5, t));",
184
+ " return mix(lowMid, uColHigh, smoothstep(0.5, 1.0, t));",
185
+ "}",
186
+ "vec3 sampleField(vec2 uv, float t, float energy){",
187
+ " vec2 p = (uv - 0.5) * vec2(uResolution.x/uResolution.y, 1.0) * 2.4;",
188
+ " vec2 c = curl(p * 0.9, t);",
189
+ " vec2 q = p + c * (0.45 + 0.55 * energy);",
190
+ " float flow = fbm(q * 1.6 + vec2(t * 0.11, -t * 0.07));",
191
+ " float bands = sin(flow * 14.0 + t * 1.1);",
192
+ " bands = smoothstep(0.0, 1.0, 0.5 + 0.5 * bands);",
193
+ " float r = length(p);",
194
+ " float core = smoothstep(1.5, 0.05, r) * (0.6 + 0.4 * energy);",
195
+ " float glow = exp(-r * 1.6) * (0.55 + 0.45 * energy);",
196
+ " float k = clamp(flow * 0.85 + 0.15 * bands + 0.25 * core + 0.6 * glow, 0.0, 1.4);",
197
+ " vec3 col = palette(k * 0.9 + 0.1 * sin(t * 0.4));",
198
+ " col *= 0.7 + 0.6 * energy;",
199
+ " col += uAccent * core * 0.55;",
200
+ " return col;",
201
+ "}",
202
+ "void main(){",
203
+ " vec2 uv = vUv;",
204
+ " float t = uTime * uSpeed;",
205
+ " float e = uIntensity;",
206
+ " vec2 dir = normalize(uv - 0.5 + 1e-6);",
207
+ " float ca = uChromAb * (0.004 + 0.012 * length(uv - 0.5));",
208
+ " vec3 cR = sampleField(uv + dir * ca, t, e);",
209
+ " vec3 cG = sampleField(uv, t, e);",
210
+ " vec3 cB = sampleField(uv - dir * ca, t, e);",
211
+ " vec3 col = vec3(cR.r, cG.g, cB.b);",
212
+ " float lum = dot(col, vec3(0.299, 0.587, 0.114));",
213
+ " col = mix(vec3(lum), col, 1.05);",
214
+ " float rev = uReveal;",
215
+ " float sweep = smoothstep(0.0, 0.6, rev) * (1.0 - smoothstep(0.6, 1.0, rev));",
216
+ " col += uColHigh * sweep * 0.35;",
217
+ " vec3 phaseTint = mix(vec3(0.85, 0.92, 1.05), vec3(1.05, 0.95, 0.85), uPhase);",
218
+ " col *= phaseTint;",
219
+ " float v = length(uv - 0.5);",
220
+ " col *= 1.0 - smoothstep(0.45, 0.95, v) * uVignette;",
221
+ " col = col / (col + 1.0);",
222
+ " col = pow(col, vec3(1.0/2.2));",
223
+ " gl_FragColor = vec4(col, 1.0);",
224
+ "}",
225
+ ].join("\n");
226
+
227
+ function compile(type, src) {
228
+ const s = gl.createShader(type);
229
+ gl.shaderSource(s, src);
230
+ gl.compileShader(s);
231
+ return s;
232
+ }
233
+ const prog = gl.createProgram();
234
+ gl.attachShader(prog, compile(gl.VERTEX_SHADER, VERT));
235
+ gl.attachShader(prog, compile(gl.FRAGMENT_SHADER, FRAG));
236
+ gl.linkProgram(prog);
237
+ gl.useProgram(prog);
238
+
239
+ // full-screen triangle
240
+ const buf = gl.createBuffer();
241
+ gl.bindBuffer(gl.ARRAY_BUFFER, buf);
242
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 3, -1, -1, 3]), gl.STATIC_DRAW);
243
+ const posLoc = gl.getAttribLocation(prog, "position");
244
+ gl.enableVertexAttribArray(posLoc);
245
+ gl.vertexAttribPointer(posLoc, 2, gl.FLOAT, false, 0, 0);
246
+ gl.viewport(0, 0, 1920, 1080);
247
+
248
+ const L = (n) => gl.getUniformLocation(prog, n);
249
+ const uLoc = {
250
+ uTime: L("uTime"),
251
+ uPhase: L("uPhase"),
252
+ uReveal: L("uReveal"),
253
+ uChromAb: L("uChromAb"),
254
+ uVignette: L("uVignette"),
255
+ uIntensity: L("uIntensity"),
256
+ uSpeed: L("uSpeed"),
257
+ uResolution: L("uResolution"),
258
+ uColLow: L("uColLow"),
259
+ uColMid: L("uColMid"),
260
+ uColHigh: L("uColHigh"),
261
+ uAccent: L("uAccent"),
262
+ };
263
+
264
+ // animated uniform state (GSAP tweens these .value fields)
265
+ const u = {
266
+ uTime: { value: 0 },
267
+ uPhase: { value: 0.1 },
268
+ uReveal: { value: 0 },
269
+ uChromAb: { value: 0 },
270
+ uVignette: { value: 0 },
271
+ uIntensity: { value: 0.3 },
272
+ };
273
+ const speed = Number(vars.flowSpeed) || 1;
274
+ const cLow = hexLin(vars.colorLow);
275
+ const cMid = hexLin(vars.colorMid);
276
+ const cHigh = hexLin(vars.colorHigh);
277
+ const cAcc = hexLin(vars.accentColor);
278
+
279
+ function render() {
280
+ gl.uniform1f(uLoc.uTime, u.uTime.value);
281
+ gl.uniform1f(uLoc.uPhase, u.uPhase.value);
282
+ gl.uniform1f(uLoc.uReveal, u.uReveal.value);
283
+ gl.uniform1f(uLoc.uChromAb, u.uChromAb.value);
284
+ gl.uniform1f(uLoc.uVignette, u.uVignette.value);
285
+ gl.uniform1f(uLoc.uIntensity, u.uIntensity.value);
286
+ gl.uniform1f(uLoc.uSpeed, speed);
287
+ gl.uniform2f(uLoc.uResolution, 1920, 1080);
288
+ gl.uniform3fv(uLoc.uColLow, cLow);
289
+ gl.uniform3fv(uLoc.uColMid, cMid);
290
+ gl.uniform3fv(uLoc.uColHigh, cHigh);
291
+ gl.uniform3fv(uLoc.uAccent, cAcc);
292
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
293
+ }
294
+ render(); // initial frame so a seek to 0 / first paint is correct
295
+
296
+ // ── Energy-envelope drive (the "living field" breath): all repaint is via
297
+ // onUpdate, so the field is fully determined by the timeline position — no
298
+ // requestAnimationFrame, seek-safe. ──
299
+ tl.eventCallback("onUpdate", render);
300
+
301
+ tl.to(u.uTime, { value: 4, duration: 4, ease: "none" }, 0);
302
+
303
+ // energy: settle-in → breathe → SURGE → settle dark for the hold
304
+ tl.to(u.uIntensity, { value: 0.6, duration: 1.2, ease: "sine.inOut" }, 0);
305
+ tl.to(u.uIntensity, { value: 1.0, duration: 0.7, ease: "power2.in" }, 1.3);
306
+ tl.to(u.uIntensity, { value: 0.35, duration: 2.0, ease: "power2.out" }, 2.0);
307
+
308
+ // chromatic light-leak: light at entry, spikes on the surge, then settles
309
+ tl.fromTo(u.uChromAb, { value: 0 }, { value: 0.4, duration: 1.2, ease: "sine.in" }, 0);
310
+ tl.to(u.uChromAb, { value: 1.4, duration: 0.5, ease: "power3.in" }, 1.4);
311
+ tl.to(u.uChromAb, { value: 0.2, duration: 1.6, ease: "power2.out" }, 1.9);
312
+
313
+ // a brief highlight sweep across the surge
314
+ tl.fromTo(u.uReveal, { value: 0 }, { value: 1, duration: 0.7, ease: "none" }, 1.3);
315
+ tl.set(u.uReveal, { value: 0 }, 2.0);
316
+
317
+ // colour-temperature drift
318
+ tl.to(u.uPhase, { value: 0.6, duration: 2.2, ease: "sine.inOut" }, 0.6);
319
+
320
+ // black mask settles the field to near-black + central glow for the hold
321
+ tl.to(u.uVignette, { value: 0.85, duration: 1.6, ease: "power2.out" }, 1.9);
322
+
323
+ window.__timelines["main"] = tl;
324
+ </script>
325
+ </body>
326
+ </html>