luckiest-co 1.0.19 → 1.0.21

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 (769) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/commands/status.md +10 -0
  4. package/hooks/hooks.json +11 -1
  5. package/hooks/update-notice.mjs +56 -0
  6. package/package.json +1 -1
  7. package/skills/luckiest-status/SKILL.md +10 -0
  8. package/skills/luckiest-video-studio/ATTRIBUTION.md +47 -0
  9. package/skills/luckiest-video-studio/CHANGELOG.md +64 -0
  10. package/skills/luckiest-video-studio/LICENSE-brag +21 -0
  11. package/skills/luckiest-video-studio/LICENSE-diagram-design +21 -0
  12. package/skills/luckiest-video-studio/LICENSE-motion-graphics +25 -0
  13. package/skills/luckiest-video-studio/LICENSE-student-kit +32 -0
  14. package/skills/luckiest-video-studio/LICENSE-student-kit-pipeline +15 -0
  15. package/skills/luckiest-video-studio/SECURITY.md +74 -0
  16. package/skills/luckiest-video-studio/SKILL.md +257 -0
  17. package/skills/luckiest-video-studio/assets/sfx/casino/card-fan-1.ogg +0 -0
  18. package/skills/luckiest-video-studio/assets/sfx/casino/card-fan-2.ogg +0 -0
  19. package/skills/luckiest-video-studio/assets/sfx/casino/card-place-1.ogg +0 -0
  20. package/skills/luckiest-video-studio/assets/sfx/casino/card-place-2.ogg +0 -0
  21. package/skills/luckiest-video-studio/assets/sfx/casino/card-place-3.ogg +0 -0
  22. package/skills/luckiest-video-studio/assets/sfx/casino/card-place-4.ogg +0 -0
  23. package/skills/luckiest-video-studio/assets/sfx/casino/card-shove-1.ogg +0 -0
  24. package/skills/luckiest-video-studio/assets/sfx/casino/card-shove-2.ogg +0 -0
  25. package/skills/luckiest-video-studio/assets/sfx/casino/card-shove-3.ogg +0 -0
  26. package/skills/luckiest-video-studio/assets/sfx/casino/card-shove-4.ogg +0 -0
  27. package/skills/luckiest-video-studio/assets/sfx/casino/card-shuffle.ogg +0 -0
  28. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-1.ogg +0 -0
  29. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-2.ogg +0 -0
  30. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-3.ogg +0 -0
  31. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-4.ogg +0 -0
  32. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-5.ogg +0 -0
  33. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-6.ogg +0 -0
  34. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-7.ogg +0 -0
  35. package/skills/luckiest-video-studio/assets/sfx/casino/card-slide-8.ogg +0 -0
  36. package/skills/luckiest-video-studio/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
  37. package/skills/luckiest-video-studio/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
  38. package/skills/luckiest-video-studio/assets/sfx/casino/chip-lay-1.ogg +0 -0
  39. package/skills/luckiest-video-studio/assets/sfx/casino/chip-lay-2.ogg +0 -0
  40. package/skills/luckiest-video-studio/assets/sfx/casino/chip-lay-3.ogg +0 -0
  41. package/skills/luckiest-video-studio/assets/sfx/casino/chips-collide-1.ogg +0 -0
  42. package/skills/luckiest-video-studio/assets/sfx/casino/chips-collide-2.ogg +0 -0
  43. package/skills/luckiest-video-studio/assets/sfx/casino/chips-collide-3.ogg +0 -0
  44. package/skills/luckiest-video-studio/assets/sfx/casino/chips-collide-4.ogg +0 -0
  45. package/skills/luckiest-video-studio/assets/sfx/casino/chips-handle-1.ogg +0 -0
  46. package/skills/luckiest-video-studio/assets/sfx/casino/chips-handle-2.ogg +0 -0
  47. package/skills/luckiest-video-studio/assets/sfx/casino/chips-handle-3.ogg +0 -0
  48. package/skills/luckiest-video-studio/assets/sfx/casino/chips-handle-4.ogg +0 -0
  49. package/skills/luckiest-video-studio/assets/sfx/casino/chips-handle-6.ogg +0 -0
  50. package/skills/luckiest-video-studio/assets/sfx/casino/chips-stack-1.ogg +0 -0
  51. package/skills/luckiest-video-studio/assets/sfx/casino/chips-stack-2.ogg +0 -0
  52. package/skills/luckiest-video-studio/assets/sfx/casino/chips-stack-3.ogg +0 -0
  53. package/skills/luckiest-video-studio/assets/sfx/casino/chips-stack-4.ogg +0 -0
  54. package/skills/luckiest-video-studio/assets/sfx/casino/chips-stack-5.ogg +0 -0
  55. package/skills/luckiest-video-studio/assets/sfx/casino/chips-stack-6.ogg +0 -0
  56. package/skills/luckiest-video-studio/assets/sfx/casino/dice-grab-1.ogg +0 -0
  57. package/skills/luckiest-video-studio/assets/sfx/casino/dice-grab-2.ogg +0 -0
  58. package/skills/luckiest-video-studio/assets/sfx/casino/dice-shake-1.ogg +0 -0
  59. package/skills/luckiest-video-studio/assets/sfx/casino/dice-shake-2.ogg +0 -0
  60. package/skills/luckiest-video-studio/assets/sfx/casino/dice-shake-3.ogg +0 -0
  61. package/skills/luckiest-video-studio/assets/sfx/casino/dice-throw-1.ogg +0 -0
  62. package/skills/luckiest-video-studio/assets/sfx/casino/dice-throw-2.ogg +0 -0
  63. package/skills/luckiest-video-studio/assets/sfx/casino/dice-throw-3.ogg +0 -0
  64. package/skills/luckiest-video-studio/assets/sfx/casino/die-throw-1.ogg +0 -0
  65. package/skills/luckiest-video-studio/assets/sfx/casino/die-throw-2.ogg +0 -0
  66. package/skills/luckiest-video-studio/assets/sfx/casino/die-throw-3.ogg +0 -0
  67. package/skills/luckiest-video-studio/assets/sfx/casino/die-throw-4.ogg +0 -0
  68. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
  69. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
  70. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
  71. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
  72. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
  73. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
  74. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
  75. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
  76. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_grass_000.ogg +0 -0
  77. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_grass_001.ogg +0 -0
  78. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_grass_002.ogg +0 -0
  79. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_grass_003.ogg +0 -0
  80. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_grass_004.ogg +0 -0
  81. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_snow_000.ogg +0 -0
  82. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_snow_001.ogg +0 -0
  83. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_snow_002.ogg +0 -0
  84. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_snow_003.ogg +0 -0
  85. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_snow_004.ogg +0 -0
  86. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_wood_000.ogg +0 -0
  87. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_wood_001.ogg +0 -0
  88. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_wood_002.ogg +0 -0
  89. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_wood_003.ogg +0 -0
  90. package/skills/luckiest-video-studio/assets/sfx/impact/footstep_wood_004.ogg +0 -0
  91. package/skills/luckiest-video-studio/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
  92. package/skills/luckiest-video-studio/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
  93. package/skills/luckiest-video-studio/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
  94. package/skills/luckiest-video-studio/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
  95. package/skills/luckiest-video-studio/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
  96. package/skills/luckiest-video-studio/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
  97. package/skills/luckiest-video-studio/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
  98. package/skills/luckiest-video-studio/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
  99. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
  100. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
  101. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
  102. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
  103. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
  104. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
  105. package/skills/luckiest-video-studio/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
  106. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
  107. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
  108. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
  109. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
  110. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
  111. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
  112. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
  113. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
  114. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
  115. package/skills/luckiest-video-studio/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
  116. package/skills/luckiest-video-studio/assets/sfx/impact/impactMining_001.ogg +0 -0
  117. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
  118. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
  119. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
  120. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
  121. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
  122. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
  123. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
  124. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
  125. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
  126. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
  127. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
  128. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
  129. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
  130. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
  131. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
  132. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
  133. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
  134. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
  135. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
  136. package/skills/luckiest-video-studio/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
  137. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
  138. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
  139. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
  140. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
  141. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
  142. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
  143. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
  144. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
  145. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
  146. package/skills/luckiest-video-studio/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
  147. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
  148. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
  149. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
  150. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
  151. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
  152. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
  153. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
  154. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
  155. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
  156. package/skills/luckiest-video-studio/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
  157. package/skills/luckiest-video-studio/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
  158. package/skills/luckiest-video-studio/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
  159. package/skills/luckiest-video-studio/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
  160. package/skills/luckiest-video-studio/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
  161. package/skills/luckiest-video-studio/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
  162. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
  163. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
  164. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
  165. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
  166. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
  167. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_light_000.ogg +0 -0
  168. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_light_001.ogg +0 -0
  169. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_light_002.ogg +0 -0
  170. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_light_003.ogg +0 -0
  171. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_light_004.ogg +0 -0
  172. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
  173. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
  174. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
  175. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
  176. package/skills/luckiest-video-studio/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
  177. package/skills/luckiest-video-studio/assets/sfx/interface/bong_001.ogg +0 -0
  178. package/skills/luckiest-video-studio/assets/sfx/interface/click_001.ogg +0 -0
  179. package/skills/luckiest-video-studio/assets/sfx/interface/click_002.ogg +0 -0
  180. package/skills/luckiest-video-studio/assets/sfx/interface/click_003.ogg +0 -0
  181. package/skills/luckiest-video-studio/assets/sfx/interface/click_004.ogg +0 -0
  182. package/skills/luckiest-video-studio/assets/sfx/interface/click_005.ogg +0 -0
  183. package/skills/luckiest-video-studio/assets/sfx/interface/drop_001.ogg +0 -0
  184. package/skills/luckiest-video-studio/assets/sfx/interface/drop_002.ogg +0 -0
  185. package/skills/luckiest-video-studio/assets/sfx/interface/drop_003.ogg +0 -0
  186. package/skills/luckiest-video-studio/assets/sfx/interface/error_005.ogg +0 -0
  187. package/skills/luckiest-video-studio/assets/sfx/interface/error_006.ogg +0 -0
  188. package/skills/luckiest-video-studio/assets/sfx/interface/glitch_002.ogg +0 -0
  189. package/skills/luckiest-video-studio/assets/sfx/interface/glitch_004.ogg +0 -0
  190. package/skills/luckiest-video-studio/assets/sfx/interface/select_008.ogg +0 -0
  191. package/skills/luckiest-video-studio/assets/sfx/interface/switch_001.ogg +0 -0
  192. package/skills/luckiest-video-studio/assets/sfx/interface/switch_002.ogg +0 -0
  193. package/skills/luckiest-video-studio/assets/sfx/interface/switch_004.ogg +0 -0
  194. package/skills/luckiest-video-studio/assets/sfx/interface/switch_005.ogg +0 -0
  195. package/skills/luckiest-video-studio/assets/sfx/interface/switch_006.ogg +0 -0
  196. package/skills/luckiest-video-studio/assets/sfx/interface/switch_007.ogg +0 -0
  197. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-001.wav +0 -0
  198. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-002.wav +0 -0
  199. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-003.wav +0 -0
  200. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-004.wav +0 -0
  201. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-005.wav +0 -0
  202. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-006.wav +0 -0
  203. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-007.wav +0 -0
  204. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-008.wav +0 -0
  205. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-009.wav +0 -0
  206. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-010.wav +0 -0
  207. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-011.wav +0 -0
  208. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-012.wav +0 -0
  209. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-013.wav +0 -0
  210. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-014.wav +0 -0
  211. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-015.wav +0 -0
  212. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-016.wav +0 -0
  213. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-017.wav +0 -0
  214. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-018.wav +0 -0
  215. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-019.wav +0 -0
  216. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-020.wav +0 -0
  217. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-021.wav +0 -0
  218. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-022.wav +0 -0
  219. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-023.wav +0 -0
  220. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-024.wav +0 -0
  221. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-025.wav +0 -0
  222. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-026.wav +0 -0
  223. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-027.wav +0 -0
  224. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-028.wav +0 -0
  225. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-029.wav +0 -0
  226. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-030.wav +0 -0
  227. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-031.wav +0 -0
  228. package/skills/luckiest-video-studio/assets/sfx/keyboard/keypress-032.wav +0 -0
  229. package/skills/luckiest-video-studio/assets/sfx/sfx-analysis.json +15584 -0
  230. package/skills/luckiest-video-studio/assets/sfx/sfx-analysis.md +75 -0
  231. package/skills/luckiest-video-studio/assets/sfx/ui/click1.ogg +0 -0
  232. package/skills/luckiest-video-studio/assets/sfx/ui/click2.ogg +0 -0
  233. package/skills/luckiest-video-studio/assets/sfx/ui/click3.ogg +0 -0
  234. package/skills/luckiest-video-studio/assets/sfx/ui/click4.ogg +0 -0
  235. package/skills/luckiest-video-studio/assets/sfx/ui/click5.ogg +0 -0
  236. package/skills/luckiest-video-studio/assets/sfx/ui/mouseclick1.ogg +0 -0
  237. package/skills/luckiest-video-studio/assets/sfx/ui/rollover1.ogg +0 -0
  238. package/skills/luckiest-video-studio/assets/sfx/ui/rollover2.ogg +0 -0
  239. package/skills/luckiest-video-studio/assets/sfx/ui/rollover4.ogg +0 -0
  240. package/skills/luckiest-video-studio/assets/sfx/ui/rollover5.ogg +0 -0
  241. package/skills/luckiest-video-studio/assets/sfx/ui/switch1.ogg +0 -0
  242. package/skills/luckiest-video-studio/assets/sfx/ui/switch10.ogg +0 -0
  243. package/skills/luckiest-video-studio/assets/sfx/ui/switch11.ogg +0 -0
  244. package/skills/luckiest-video-studio/assets/sfx/ui/switch12.ogg +0 -0
  245. package/skills/luckiest-video-studio/assets/sfx/ui/switch13.ogg +0 -0
  246. package/skills/luckiest-video-studio/assets/sfx/ui/switch14.ogg +0 -0
  247. package/skills/luckiest-video-studio/assets/sfx/ui/switch15.ogg +0 -0
  248. package/skills/luckiest-video-studio/assets/sfx/ui/switch16.ogg +0 -0
  249. package/skills/luckiest-video-studio/assets/sfx/ui/switch17.ogg +0 -0
  250. package/skills/luckiest-video-studio/assets/sfx/ui/switch18.ogg +0 -0
  251. package/skills/luckiest-video-studio/assets/sfx/ui/switch19.ogg +0 -0
  252. package/skills/luckiest-video-studio/assets/sfx/ui/switch2.ogg +0 -0
  253. package/skills/luckiest-video-studio/assets/sfx/ui/switch20.ogg +0 -0
  254. package/skills/luckiest-video-studio/assets/sfx/ui/switch21.ogg +0 -0
  255. package/skills/luckiest-video-studio/assets/sfx/ui/switch22.ogg +0 -0
  256. package/skills/luckiest-video-studio/assets/sfx/ui/switch23.ogg +0 -0
  257. package/skills/luckiest-video-studio/assets/sfx/ui/switch24.ogg +0 -0
  258. package/skills/luckiest-video-studio/assets/sfx/ui/switch25.ogg +0 -0
  259. package/skills/luckiest-video-studio/assets/sfx/ui/switch26.ogg +0 -0
  260. package/skills/luckiest-video-studio/assets/sfx/ui/switch27.ogg +0 -0
  261. package/skills/luckiest-video-studio/assets/sfx/ui/switch28.ogg +0 -0
  262. package/skills/luckiest-video-studio/assets/sfx/ui/switch29.ogg +0 -0
  263. package/skills/luckiest-video-studio/assets/sfx/ui/switch3.ogg +0 -0
  264. package/skills/luckiest-video-studio/assets/sfx/ui/switch30.ogg +0 -0
  265. package/skills/luckiest-video-studio/assets/sfx/ui/switch31.ogg +0 -0
  266. package/skills/luckiest-video-studio/assets/sfx/ui/switch32.ogg +0 -0
  267. package/skills/luckiest-video-studio/assets/sfx/ui/switch33.ogg +0 -0
  268. package/skills/luckiest-video-studio/assets/sfx/ui/switch34.ogg +0 -0
  269. package/skills/luckiest-video-studio/assets/sfx/ui/switch35.ogg +0 -0
  270. package/skills/luckiest-video-studio/assets/sfx/ui/switch36.ogg +0 -0
  271. package/skills/luckiest-video-studio/assets/sfx/ui/switch37.ogg +0 -0
  272. package/skills/luckiest-video-studio/assets/sfx/ui/switch38.ogg +0 -0
  273. package/skills/luckiest-video-studio/assets/sfx/ui/switch4.ogg +0 -0
  274. package/skills/luckiest-video-studio/assets/sfx/ui/switch5.ogg +0 -0
  275. package/skills/luckiest-video-studio/assets/sfx/ui/switch6.ogg +0 -0
  276. package/skills/luckiest-video-studio/assets/sfx/ui/switch7.ogg +0 -0
  277. package/skills/luckiest-video-studio/assets/sfx/ui/switch8.ogg +0 -0
  278. package/skills/luckiest-video-studio/assets/sfx/ui/switch9.ogg +0 -0
  279. package/skills/luckiest-video-studio/references/audio.md +285 -0
  280. package/skills/luckiest-video-studio/references/brand.md +55 -0
  281. package/skills/luckiest-video-studio/references/diffusion.md +75 -0
  282. package/skills/luckiest-video-studio/references/logo-recipes.md +77 -0
  283. package/skills/luckiest-video-studio/references/openscreen.md +60 -0
  284. package/skills/luckiest-video-studio/references/step-1-inspect.md +133 -0
  285. package/skills/luckiest-video-studio/references/step-2-plan.md +234 -0
  286. package/skills/luckiest-video-studio/references/step-3-compose.md +210 -0
  287. package/skills/luckiest-video-studio/references/step-4-deliver.md +168 -0
  288. package/skills/luckiest-video-studio/references/storyboard.md +78 -0
  289. package/skills/luckiest-video-studio/references/tones.md +231 -0
  290. package/skills/luckiest-video-studio/scripts/analyze_music_cues.py +309 -0
  291. package/skills/luckiest-video-studio/scripts/assemble-diffusion.mjs +161 -0
  292. package/skills/luckiest-video-studio/scripts/assemble-openscreen.mjs +74 -0
  293. package/skills/luckiest-video-studio/scripts/pyproject.toml +14 -0
  294. package/skills/luckiest-video-studio/scripts/qa.mjs +313 -0
  295. package/skills/luckiest-video-studio/scripts/qa.test.mjs +135 -0
  296. package/skills/luckiest-video-studio/scripts/render-scenes.mjs +125 -0
  297. package/skills/luckiest-video-studio/scripts/storyboard.schema.json +52 -0
  298. package/skills/luckiest-video-studio/scripts/uv.lock +819 -0
  299. package/skills/luckiest-video-studio/templates/diffusion/line-draw.tsx +132 -0
  300. package/skills/luckiest-video-studio/templates/logo-line-draw.html +38 -0
  301. package/skills/luckiest-video-studio-ae/ATTRIBUTION.md +9 -0
  302. package/skills/luckiest-video-studio-ae/CHANGELOG.md +7 -0
  303. package/skills/luckiest-video-studio-ae/SKILL.md +133 -0
  304. package/skills/luckiest-video-studio-cards/ATTRIBUTION.md +22 -0
  305. package/skills/luckiest-video-studio-cards/CHANGELOG.md +8 -0
  306. package/skills/luckiest-video-studio-cards/SKILL.md +114 -0
  307. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/DESIGN.md +50 -0
  308. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-agenda.html +180 -0
  309. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-bigtype.html +156 -0
  310. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-board.html +238 -0
  311. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-checklist.html +158 -0
  312. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-compare.html +205 -0
  313. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-deck.html +193 -0
  314. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-dossier.html +234 -0
  315. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-filmstrip.html +211 -0
  316. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-grid6.html +157 -0
  317. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-indexset.html +194 -0
  318. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-maplegend.html +243 -0
  319. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-matrix.html +198 -0
  320. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-numlist.html +180 -0
  321. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-outline.html +194 -0
  322. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-phases.html +208 -0
  323. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-quad.html +163 -0
  324. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-roadmap.html +197 -0
  325. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-stepper.html +193 -0
  326. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-toc.html +192 -0
  327. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-vtimeline.html +166 -0
  328. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-bracket.html +88 -0
  329. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-circle.html +103 -0
  330. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-classified.html +112 -0
  331. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-collage.html +93 -0
  332. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-correction.html +93 -0
  333. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-crt.html +111 -0
  334. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-cutout.html +87 -0
  335. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-fullbleed.html +78 -0
  336. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-highlight.html +80 -0
  337. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-indexcard.html +85 -0
  338. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-map.html +96 -0
  339. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-markerbox.html +84 -0
  340. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-numeral.html +74 -0
  341. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-split.html +88 -0
  342. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-stacked.html +94 -0
  343. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-stamp.html +83 -0
  344. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-ticker.html +88 -0
  345. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-tornstrip.html +92 -0
  346. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-annotated.html +182 -0
  347. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-arc.html +105 -0
  348. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-axis.html +165 -0
  349. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-bar.html +111 -0
  350. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-bracket.html +124 -0
  351. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-calendar.html +219 -0
  352. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-callout.html +100 -0
  353. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-columns.html +171 -0
  354. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-corner.html +182 -0
  355. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-dots.html +102 -0
  356. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-engraving.html +160 -0
  357. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-footnote.html +125 -0
  358. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-frac.html +101 -0
  359. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-heat.html +179 -0
  360. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-isotype.html +133 -0
  361. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ledger.html +106 -0
  362. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-left.html +109 -0
  363. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-magnifier.html +199 -0
  364. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-map.html +326 -0
  365. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-meter.html +153 -0
  366. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-multiplier.html +133 -0
  367. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-odo.html +93 -0
  368. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pack.html +189 -0
  369. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-photo.html +93 -0
  370. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pie.html +188 -0
  371. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-postage.html +191 -0
  372. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pricetag.html +189 -0
  373. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-quote.html +113 -0
  374. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ranking.html +171 -0
  375. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-receipt.html +182 -0
  376. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ribbon.html +179 -0
  377. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-semi.html +171 -0
  378. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-spotlight.html +263 -0
  379. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-stamp.html +149 -0
  380. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-steps.html +123 -0
  381. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-tape.html +217 -0
  382. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-torn.html +240 -0
  383. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-trend.html +160 -0
  384. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-vs.html +101 -0
  385. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-window.html +191 -0
  386. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat.html +97 -0
  387. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-timeline.html +131 -0
  388. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-label.html +51 -0
  389. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-bracket.html +104 -0
  390. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-caption.html +129 -0
  391. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-circle.html +114 -0
  392. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-definition.html +152 -0
  393. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-footnote.html +113 -0
  394. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-magnify.html +157 -0
  395. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-pin.html +95 -0
  396. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-pullquote.html +135 -0
  397. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-spotlight.html +114 -0
  398. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-sticky.html +95 -0
  399. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-tag.html +129 -0
  400. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-underline.html +94 -0
  401. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lower-third.html +66 -0
  402. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-badge.html +133 -0
  403. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-barslab.html +126 -0
  404. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-bracket.html +146 -0
  405. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-clapper.html +144 -0
  406. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-highlight.html +128 -0
  407. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-indextab.html +134 -0
  408. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-rail.html +116 -0
  409. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-ribbon.html +140 -0
  410. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-stacked.html +143 -0
  411. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-stamp.html +133 -0
  412. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-sticky.html +154 -0
  413. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-typecard.html +137 -0
  414. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/style.json +4463 -0
  415. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/tokens.css +81 -0
  416. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/DESIGN.md +51 -0
  417. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-agenda.html +277 -0
  418. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-beforeafter.html +252 -0
  419. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-bento.html +269 -0
  420. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-bigleft.html +221 -0
  421. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-callouts.html +350 -0
  422. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-cardrow5.html +217 -0
  423. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-checklist.html +193 -0
  424. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-cycle.html +312 -0
  425. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-dashboard.html +414 -0
  426. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-deck2.html +223 -0
  427. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-deck3.html +200 -0
  428. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-duallist.html +323 -0
  429. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-featurecompare.html +244 -0
  430. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-featuregrid.html +235 -0
  431. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-flashcards.html +215 -0
  432. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-flow.html +287 -0
  433. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-funnel.html +246 -0
  434. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-gantt.html +290 -0
  435. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-grid6.html +193 -0
  436. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-grid9.html +217 -0
  437. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-iconlist.html +240 -0
  438. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-journey.html +305 -0
  439. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-kpirow.html +275 -0
  440. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-layers.html +199 -0
  441. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-legend.html +258 -0
  442. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-levels.html +199 -0
  443. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-logowall.html +278 -0
  444. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-mappoints.html +303 -0
  445. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-matrix.html +256 -0
  446. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-milestones.html +275 -0
  447. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-mindmap.html +247 -0
  448. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-nested.html +222 -0
  449. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-network.html +353 -0
  450. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-notifs.html +224 -0
  451. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-numlist.html +188 -0
  452. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-orgchart.html +240 -0
  453. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-outline.html +263 -0
  454. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-phases.html +250 -0
  455. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pipeline.html +250 -0
  456. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pricing.html +277 -0
  457. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-profiles.html +247 -0
  458. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-proscons.html +283 -0
  459. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pyramid.html +181 -0
  460. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-quad.html +226 -0
  461. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-quotegrid.html +222 -0
  462. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-ranked.html +257 -0
  463. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-roadmap.html +251 -0
  464. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-spectrum.html +289 -0
  465. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-split3.html +209 -0
  466. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-spotlightcard.html +257 -0
  467. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-statgrid.html +252 -0
  468. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-steps.html +251 -0
  469. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-summary.html +231 -0
  470. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tiercompare.html +295 -0
  471. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-timeline.html +229 -0
  472. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-toc.html +233 -0
  473. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tree.html +250 -0
  474. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tricards.html +217 -0
  475. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-venn.html +197 -0
  476. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-vstable.html +273 -0
  477. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ascend.html +180 -0
  478. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-aurora-bars.html +195 -0
  479. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-beam.html +197 -0
  480. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-boxed.html +172 -0
  481. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-breath.html +151 -0
  482. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-chaptercard.html +180 -0
  483. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-column-light.html +177 -0
  484. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-constellation.html +220 -0
  485. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-countdown.html +195 -0
  486. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-curtain.html +194 -0
  487. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-dawn.html +196 -0
  488. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-depth.html +186 -0
  489. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-divider.html +192 -0
  490. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-drift-grid.html +209 -0
  491. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-duotone.html +165 -0
  492. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-eclipse.html +209 -0
  493. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-emblem.html +222 -0
  494. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-flare-sweep.html +191 -0
  495. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-glow-rule.html +216 -0
  496. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-gradient-word.html +190 -0
  497. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-gridfloor.html +199 -0
  498. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-halo.html +173 -0
  499. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-horizon.html +217 -0
  500. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-index.html +202 -0
  501. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-kinetic.html +159 -0
  502. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-lensflare.html +231 -0
  503. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-liquid.html +181 -0
  504. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-marquee.html +177 -0
  505. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-mesh.html +225 -0
  506. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-monolith.html +204 -0
  507. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-node-title.html +208 -0
  508. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-numeral.html +174 -0
  509. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-orb.html +146 -0
  510. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-orbit.html +250 -0
  511. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-particles.html +188 -0
  512. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-pill.html +196 -0
  513. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-portal.html +222 -0
  514. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-prism.html +265 -0
  515. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-question.html +169 -0
  516. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-quoteopen.html +171 -0
  517. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-reveal-mask.html +174 -0
  518. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ribbon.html +204 -0
  519. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ripple.html +202 -0
  520. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-searchbar.html +208 -0
  521. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-slab.html +179 -0
  522. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-sphere-top.html +209 -0
  523. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-split-reveal.html +218 -0
  524. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-splitpanel.html +229 -0
  525. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-spotlight-cone.html +245 -0
  526. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-spotlight.html +179 -0
  527. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-stack.html +173 -0
  528. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-stacked-words.html +178 -0
  529. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-starfield.html +213 -0
  530. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-sweep.html +177 -0
  531. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-tunnel.html +193 -0
  532. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-type-scale.html +170 -0
  533. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-typed.html +177 -0
  534. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-underline-grow.html +209 -0
  535. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-waveform.html +242 -0
  536. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-wordmark.html +172 -0
  537. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-annot.html +248 -0
  538. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-beforeafter.html +293 -0
  539. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bigpercent.html +228 -0
  540. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bracketstat.html +210 -0
  541. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bubble.html +256 -0
  542. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-cbars.html +313 -0
  543. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-clockface.html +296 -0
  544. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-column.html +382 -0
  545. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-compass.html +305 -0
  546. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-counterpill.html +216 -0
  547. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-curve.html +318 -0
  548. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-delta.html +300 -0
  549. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-dial.html +288 -0
  550. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-donut.html +307 -0
  551. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-dotgrid.html +241 -0
  552. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-figure.html +212 -0
  553. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-fillshape.html +232 -0
  554. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-fraction.html +263 -0
  555. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-funnel.html +285 -0
  556. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-growtharrow.html +242 -0
  557. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-heatcell.html +242 -0
  558. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-isotype.html +248 -0
  559. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-layered.html +198 -0
  560. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-mega.html +217 -0
  561. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-meter.html +263 -0
  562. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-milestone.html +260 -0
  563. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-money.html +253 -0
  564. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-multiplier.html +209 -0
  565. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-multiring.html +336 -0
  566. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-needle.html +253 -0
  567. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-nodes.html +259 -0
  568. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-odometer.html +301 -0
  569. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-orbitmoons.html +229 -0
  570. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-orbitstat.html +319 -0
  571. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-pair.html +244 -0
  572. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-percentile.html +287 -0
  573. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-pictobar.html +223 -0
  574. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-polar.html +256 -0
  575. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-quotestat.html +190 -0
  576. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-radialbars.html +387 -0
  577. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-range.html +300 -0
  578. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-rank.html +264 -0
  579. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-ratio.html +264 -0
  580. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-ring.html +274 -0
  581. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-risewall.html +234 -0
  582. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-score.html +273 -0
  583. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-segbar.html +262 -0
  584. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-semigauge.html +327 -0
  585. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-sparkline.html +291 -0
  586. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-spectrum.html +245 -0
  587. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-split.html +242 -0
  588. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-stackedbars.html +304 -0
  589. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-tickerstat.html +310 -0
  590. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-tiles.html +232 -0
  591. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-timer.html +248 -0
  592. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-trendline.html +343 -0
  593. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-underscore.html +236 -0
  594. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-versus.html +315 -0
  595. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-waffle.html +250 -0
  596. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-waterfall.html +273 -0
  597. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-badge.html +170 -0
  598. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-brace.html +239 -0
  599. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-bracket.html +195 -0
  600. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-bubble.html +179 -0
  601. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-byline.html +204 -0
  602. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-callout.html +137 -0
  603. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-category.html +178 -0
  604. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-checkmark.html +195 -0
  605. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-chipstat.html +150 -0
  606. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-comparemini.html +202 -0
  607. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-coord.html +271 -0
  608. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-counter.html +168 -0
  609. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-crosshair.html +243 -0
  610. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-dashed.html +168 -0
  611. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-definition.html +165 -0
  612. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-deltachip.html +184 -0
  613. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-eyebrow.html +186 -0
  614. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-fact.html +160 -0
  615. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-flag.html +232 -0
  616. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-formula.html +212 -0
  617. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-hash.html +175 -0
  618. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-highlightbox.html +176 -0
  619. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-iconchip.html +199 -0
  620. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-info.html +186 -0
  621. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-infocard.html +239 -0
  622. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-keycap.html +194 -0
  623. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-keyword.html +140 -0
  624. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-leader.html +201 -0
  625. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-legend.html +212 -0
  626. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-measure.html +201 -0
  627. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-meterchip.html +238 -0
  628. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-metric.html +149 -0
  629. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-micropie.html +233 -0
  630. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-minibar.html +190 -0
  631. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-node.html +225 -0
  632. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-note.html +183 -0
  633. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-numbercallout.html +175 -0
  634. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-percent.html +176 -0
  635. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-pointer.html +173 -0
  636. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-price.html +209 -0
  637. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-progress.html +233 -0
  638. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-pulse.html +206 -0
  639. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-qmark.html +164 -0
  640. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-quote.html +150 -0
  641. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-rating.html +252 -0
  642. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-ribbon.html +178 -0
  643. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-ringmark.html +229 -0
  644. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-search.html +174 -0
  645. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-sparkchip.html +243 -0
  646. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-spec.html +229 -0
  647. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-status.html +190 -0
  648. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-step.html +180 -0
  649. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tag.html +134 -0
  650. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-takeaway.html +154 -0
  651. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tcode.html +175 -0
  652. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-timestamp.html +185 -0
  653. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-toast.html +206 -0
  654. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tooltip.html +175 -0
  655. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-underline.html +168 -0
  656. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-warning.html +193 -0
  657. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-avatar.html +202 -0
  658. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-badgecard.html +219 -0
  659. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-barslide.html +177 -0
  660. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-bracket.html +177 -0
  661. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-brandbar.html +229 -0
  662. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-bug.html +177 -0
  663. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-capsule.html +193 -0
  664. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-chapterbar.html +196 -0
  665. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-chip.html +162 -0
  666. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cinemastrip.html +190 -0
  667. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cite.html +179 -0
  668. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-clockname.html +192 -0
  669. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-coordbar.html +262 -0
  670. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-corner.html +206 -0
  671. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cornerframe.html +251 -0
  672. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-countbar.html +209 -0
  673. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dividername.html +211 -0
  674. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dotline.html +209 -0
  675. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-doublecard.html +225 -0
  676. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dual.html +233 -0
  677. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-edgebar.html +160 -0
  678. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-flipcard.html +198 -0
  679. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-geopin.html +198 -0
  680. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-glasscard.html +152 -0
  681. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-gradient.html +151 -0
  682. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-gradientbar.html +197 -0
  683. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-handlebar.html +192 -0
  684. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-infochips.html +182 -0
  685. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-lensbar.html +213 -0
  686. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-live.html +232 -0
  687. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-location.html +222 -0
  688. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-logolock.html +214 -0
  689. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-micname.html +208 -0
  690. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-minicard.html +176 -0
  691. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-minimal.html +149 -0
  692. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-nameplate3d.html +208 -0
  693. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-neonframe.html +208 -0
  694. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-neonpill.html +222 -0
  695. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-nowplaying.html +257 -0
  696. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-orbitbadge.html +232 -0
  697. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-pill.html +168 -0
  698. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-portraitframe.html +220 -0
  699. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-progressname.html +234 -0
  700. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-quote.html +202 -0
  701. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ratingname.html +226 -0
  702. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ribbon.html +198 -0
  703. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-sidebracket.html +195 -0
  704. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-slidetab.html +191 -0
  705. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-social.html +180 -0
  706. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-spotlightname.html +150 -0
  707. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-stacked.html +158 -0
  708. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-statline.html +223 -0
  709. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-tagrow.html +191 -0
  710. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-thinstrip.html +185 -0
  711. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ticker.html +216 -0
  712. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-titlebar.html +188 -0
  713. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-trust.html +247 -0
  714. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-typedname.html +195 -0
  715. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-underbar.html +189 -0
  716. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-waveband.html +235 -0
  717. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/style.json +8608 -0
  718. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/tokens.css +134 -0
  719. package/skills/luckiest-video-studio-cards/packs/_blueprint/DESIGN.md +41 -0
  720. package/skills/luckiest-video-studio-cards/packs/_blueprint/cards/tier1/t1-stat.html +57 -0
  721. package/skills/luckiest-video-studio-cards/packs/_blueprint/cards/tier2/t2-list.html +58 -0
  722. package/skills/luckiest-video-studio-cards/packs/_blueprint/style.json +88 -0
  723. package/skills/luckiest-video-studio-cards/packs/_blueprint/tokens.css +32 -0
  724. package/skills/luckiest-video-studio-cards/packs/registry.json +7789 -0
  725. package/skills/luckiest-video-studio-cards/references/card-contract.md +77 -0
  726. package/skills/luckiest-video-studio-cards/references/palette-leftovers.md +28 -0
  727. package/skills/luckiest-video-studio-cards/scripts/apply-brand.mjs +90 -0
  728. package/skills/luckiest-video-studio-cards/scripts/apply-brand.test.mjs +62 -0
  729. package/skills/luckiest-video-studio-cards/scripts/build-registry.mjs +54 -0
  730. package/skills/luckiest-video-studio-cards/scripts/new-pack.mjs +42 -0
  731. package/skills/luckiest-video-studio-cards/scripts/qa-cards.mjs +126 -0
  732. package/skills/luckiest-video-studio-cards/templates/glass-popout/DESIGN.md +24 -0
  733. package/skills/luckiest-video-studio-cards/templates/glass-popout/hyperframes.json +8 -0
  734. package/skills/luckiest-video-studio-cards/templates/glass-popout/index.html +349 -0
  735. package/skills/luckiest-video-studio-cards/templates/glass-popout/meta.json +8 -0
  736. package/skills/luckiest-video-studio-cards/templates/graph-paper/DESIGN.md +25 -0
  737. package/skills/luckiest-video-studio-cards/templates/graph-paper/hyperframes.json +8 -0
  738. package/skills/luckiest-video-studio-cards/templates/graph-paper/index.html +207 -0
  739. package/skills/luckiest-video-studio-cards/templates/graph-paper/meta.json +5 -0
  740. package/skills/luckiest-video-studio-cards/templates/graph-paper/package.json +10 -0
  741. package/skills/luckiest-video-studio-cuts/ATTRIBUTION.md +19 -0
  742. package/skills/luckiest-video-studio-cuts/CHANGELOG.md +6 -0
  743. package/skills/luckiest-video-studio-cuts/SKILL.md +129 -0
  744. package/skills/luckiest-video-studio-cuts/scripts/apply-cuts.mjs +174 -0
  745. package/skills/luckiest-video-studio-cuts/scripts/build-edl-review.mjs +114 -0
  746. package/skills/luckiest-video-studio-cuts/scripts/cut-silences.mjs +300 -0
  747. package/skills/luckiest-video-studio-cuts/scripts/find-cut-candidates.mjs +182 -0
  748. package/skills/luckiest-video-studio-reel/ATTRIBUTION.md +21 -0
  749. package/skills/luckiest-video-studio-reel/CHANGELOG.md +10 -0
  750. package/skills/luckiest-video-studio-reel/SKILL.md +177 -0
  751. package/skills/luckiest-video-studio-reel/references/chapters.md +64 -0
  752. package/skills/luckiest-video-studio-reel/scripts/beatgrid.mjs +39 -0
  753. package/skills/luckiest-video-studio-reel/scripts/mix.mjs +42 -0
  754. package/skills/luckiest-video-studio-reel/scripts/splice-music.mjs +38 -0
  755. package/skills/luckiest-video-studio-reel/templates/reel.html +116 -0
  756. package/skills/luckiest-video-studio-reference/ATTRIBUTION.md +7 -0
  757. package/skills/luckiest-video-studio-reference/CHANGELOG.md +8 -0
  758. package/skills/luckiest-video-studio-reference/SKILL.md +108 -0
  759. package/skills/luckiest-video-studio-reference/scripts/shots.mjs +58 -0
  760. package/skills/luckiest-video-studio-talk/ATTRIBUTION.md +19 -0
  761. package/skills/luckiest-video-studio-talk/CHANGELOG.md +18 -0
  762. package/skills/luckiest-video-studio-talk/SKILL.md +161 -0
  763. package/skills/luckiest-video-studio-talk/references/long-form.md +91 -0
  764. package/skills/luckiest-video-studio-talk/references/plan-schema.md +54 -0
  765. package/skills/luckiest-video-studio-talk/references/short-form.md +76 -0
  766. package/skills/luckiest-video-studio-talk/scripts/grab-evidence.mjs +38 -0
  767. package/skills/luckiest-video-studio-talk/scripts/validate-footage.mjs +25 -0
  768. package/skills/luckiest-video-studio-talk/scripts/validate-plan.mjs +49 -0
  769. package/skills/luckiest-video-studio-talk/templates/talk-overlay.html +40 -0
@@ -0,0 +1,77 @@
1
+ # Card contract
2
+
3
+ Every card in `packs/` follows these rules. A new card that breaks one is not
4
+ added to a pack.
5
+
6
+ ## Layout of a pack
7
+
8
+ ```
9
+ packs/NN-slug/
10
+ style.json manifest: id, name, palette, fonts, motion, and every card with its slots
11
+ DESIGN.md the look: palette meanings, type voices, motion rules, what not to do
12
+ tokens.css CSS variables for colors, fonts, easings; cards read only these
13
+ cards/tier1/ full-frame takeovers
14
+ cards/tier2/ overlays that keep the speaker visible
15
+ ```
16
+
17
+ `packs/registry.json` is generated from every `style.json` by
18
+ `scripts/build-registry.mjs`. Never edit it by hand.
19
+
20
+ ## Ids
21
+
22
+ - Pack folder `NN-slug` (for example `02-aurora-glass`), pack id `slug`.
23
+ - Card id `<pack>.<tier>.<purpose>[.<treatment>]`, for example
24
+ `aurora-glass.t1.stat.dotgrid`. Stable and unique.
25
+
26
+ ## Each card
27
+
28
+ 1. A standalone HyperFrames composition: a root `<div>` with `id`,
29
+ `data-composition-id`, `data-start="0"`, `data-width="1920"`,
30
+ `data-height="1080"`, directly in `<body>`, with its own pinned GSAP script tag.
31
+ 2. Exactly one paused GSAP timeline, registered on
32
+ `window.__timelines["<data-composition-id>"]`.
33
+ 3. Colors, fonts, and easings come from `tokens.css` variables, linked as
34
+ `<link rel="stylesheet" href="cards/<pack-id>/tokens.css" />`. Paths are
35
+ relative to the run's `composition/` folder; HyperFrames lint rejects `../`
36
+ paths because Studio preview resolves them against the project root. A card that still
37
+ holds a literal color is listed in `references/palette-leftovers.md`.
38
+ 4. Background by tier: `tier1` is opaque edge to edge; `tier2` is transparent
39
+ everywhere except the card itself and never covers the speaker's face.
40
+ 5. All text sits in elements with `data-slot="<name>"`, and every slot is declared
41
+ in `style.json` with its name and type.
42
+ 6. Deterministic: no `Math.random()`, no `Date.now()`, no network calls.
43
+
44
+ ## Mounting a card inside another scene
45
+
46
+ Cards are written standalone so they preview and render alone. To place a tier2
47
+ card over a talk scene, wrap the card's root `<div>` in
48
+ `<template id="<id>-template">`, drop its GSAP tag (the parent loads GSAP), and
49
+ mount it from the scene:
50
+
51
+ ```html
52
+ <div id="lt-1" data-composition-id="<card-composition-id>"
53
+ data-composition-src="compositions/cards/<card>.html"
54
+ data-start="3.2" data-duration="12" data-track-index="3"></div>
55
+ ```
56
+
57
+ ## QA status
58
+
59
+ `style.json` cards carry a `qa` field that `scripts/qa-cards.mjs` sets:
60
+ `lint-ok` (HyperFrames lint clean), `render-ok` (also rendered and inspected), or
61
+ `broken` (lint errors; do not use until fixed). New cards start `unchecked`.
62
+
63
+ At 1.0.0: 396 `lint-ok` and 10 `render-ok`, none `broken`. The 57 cards the kit
64
+ shipped with lint errors were fixed:
65
+
66
+ - Starting transforms moved from CSS into a `gsap.set` right after the timeline is
67
+ created, so GSAP owns the whole transform (`gsap_css_transform_conflict`).
68
+ - Template-literal selectors became plain strings (`template_literal_selector`).
69
+ - Tweens on `left` and `top` became `x` or percent centering, and one
70
+ `letterSpacing` tween was dropped (`gsap_non_transform_motion`).
71
+
72
+ Rendered before and after, 14 of 15 sampled fixes match within encoding noise.
73
+ The kinetic section card changed on purpose: its entrance no longer reflows onto
74
+ two lines and jumps back.
75
+
76
+ Keep new cards to the same rules: no CSS `transform` on anything GSAP tweens,
77
+ plain-string selectors, and motion through transforms only.
@@ -0,0 +1,28 @@
1
+ # Palette leftovers
2
+
3
+ Cards that still hold literal colors after the palette colors were moved to
4
+ `tokens.css` variables. These colors do not follow `brand.json`. Most are shades
5
+ of the pack palette inside scripts or gradients. Check them on a branded render,
6
+ and move a color to a variable when it clashes with the brand.
7
+
8
+ White (`#ffffff`) is left as a neutral highlight in every pack and is not listed.
9
+
10
+ | Card | Colors |
11
+ |---|---|
12
+ | `01-paper-collage/cards/tier1/t1-overview-board.html` | `#1f1a12` |
13
+ | `01-paper-collage/cards/tier1/t1-section-crt.html` | `#120f0a` x3, `#efe7d4`, `#2a2317`, `#3a3120`, `#1c1810`, `#1b2620`, `#0c1310`, `#060a08`, `#f3ecda` |
14
+ | `01-paper-collage/cards/tier1/t1-section-fullbleed.html` | `#1a160f`, `#2a241a` |
15
+ | `01-paper-collage/cards/tier1/t1-stat-heat.html` | `#e6dcc4`, `#4f8cff`, `#f26a1b`, `#e23b2e` |
16
+ | `01-paper-collage/cards/tier1/t1-stat-isotype.html` | `#4f8cff`, `#17130e` |
17
+ | `01-paper-collage/cards/tier1/t1-stat-photo.html` | `#7d756a` |
18
+ | `01-paper-collage/cards/tier1/t1-stat-spotlight.html` | `#2a231a`, `#0d0b08` |
19
+ | `02-aurora-glass/cards/tier1/t1-overview-dashboard.html` | `#4f8cff` |
20
+ | `02-aurora-glass/cards/tier1/t1-overview-kpirow.html` | `#4ade80` |
21
+ | `02-aurora-glass/cards/tier1/t1-overview-legend.html` | `#4f8cff`, `#ff8a5c`, `#f5d82a`, `#ff3b30` |
22
+ | `02-aurora-glass/cards/tier1/t1-section-eclipse.html` | `#0e1620`, `#050c14` |
23
+ | `02-aurora-glass/cards/tier1/t1-section-kinetic.html` | `#a8e6ff` |
24
+ | `02-aurora-glass/cards/tier1/t1-stat-beforeafter.html` | `#37e68c` |
25
+ | `02-aurora-glass/cards/tier1/t1-stat-pictobar.html` | `#4f8cff` |
26
+ | `02-aurora-glass/cards/tier1/t1-stat-tickerstat.html` | `#37e68c` x2 |
27
+ | `02-aurora-glass/cards/tier2/t2-lt-gradient.html` | `#d0effe` |
28
+ | `02-aurora-glass/cards/tier2/t2-lt-micname.html` | `#ff5f58` |
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+ // Copy a card pack into a run and rewrite its tokens.css from the run's brand.json.
3
+ //
4
+ // Usage: node apply-brand.mjs <run-dir> <pack-id> [--accent-only]
5
+ // Writes <run-dir>/composition/cards/<pack-id>/ (tokens.css, style.json, DESIGN.md, cards/).
6
+ // --accent-only keeps the pack's own surfaces and text colors and takes only the
7
+ // accent and fonts from brand.json (use it when the brand's paper is light and the
8
+ // pack is dark, or the other way round).
9
+ //
10
+ // Which brand role feeds which variable lives in the pack's style.json "brandMap":
11
+ // "paper" | "paper2" | "ink" | "muted" | "accent" | "rule" -> the color
12
+ // "rgb:<role>" -> "r, g, b" of that color
13
+ // "font:display" | "font:text" | "font:mono" -> a font-family stack
14
+ // Fonts found in <run-dir>/composition/assets/fonts/ get @font-face rules; nothing loads remotely.
15
+
16
+ import { cpSync, existsSync, readFileSync, readdirSync, writeFileSync, mkdirSync } from "node:fs";
17
+ import { join, resolve, dirname, extname, basename } from "node:path";
18
+ import { fileURLToPath } from "node:url";
19
+
20
+ const PACKS = resolve(dirname(fileURLToPath(import.meta.url)), "../packs");
21
+ const ACCENT_ONLY = new Set(["accent", "rgb:accent", "font:display", "font:text", "font:mono"]);
22
+ const FALLBACK = { display: "system-ui, sans-serif", text: "system-ui, sans-serif", mono: "ui-monospace, monospace" };
23
+ const FONT_EXT = new Set([".woff2", ".woff", ".ttf", ".otf"]);
24
+
25
+ export function hexToRgb(color) {
26
+ const m = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(String(color).trim());
27
+ if (!m) return null;
28
+ const h = m[1].length === 3 ? [...m[1]].map((c) => c + c).join("") : m[1];
29
+ return [0, 2, 4].map((i) => parseInt(h.slice(i, i + 2), 16)).join(", ");
30
+ }
31
+
32
+ // Pure: returns the new tokens.css text and what changed.
33
+ export function brandTokens(css, brandMap, brand, { accentOnly = false, fonts = [] } = {}) {
34
+ const changed = [], skipped = [];
35
+ for (const [varName, role] of Object.entries(brandMap)) {
36
+ if (accentOnly && !ACCENT_ONLY.has(role)) continue;
37
+ let value;
38
+ if (role.startsWith("rgb:")) value = hexToRgb(brand[role.slice(4)] ?? "");
39
+ else if (role.startsWith("font:")) {
40
+ const key = role.slice(5), fam = brand[key];
41
+ value = fam ? `"${fam}", ${FALLBACK[key]}` : null;
42
+ } else value = brand[role] ?? null;
43
+ if (!value) { skipped.push(varName); continue; }
44
+ const re = new RegExp(`(^\\s*${varName.replace(/-/g, "\\-")}\\s*:)[^;]*;`, "m");
45
+ if (!re.test(css)) { skipped.push(varName); continue; }
46
+ css = css.replace(re, `$1 ${value};`);
47
+ changed.push(varName);
48
+ }
49
+ const faces = fonts.map(({ family, file }) =>
50
+ `@font-face { font-family: "${family}"; src: url("../../assets/fonts/${file}"); font-display: block; }`);
51
+ if (faces.length) css = `/* Brand fonts, local files only. */\n${faces.join("\n")}\n\n${css}`;
52
+ return { css, changed, skipped };
53
+ }
54
+
55
+ // Match font files to brand families by name: "Instrument Serif" -> InstrumentSerif-Regular.woff2.
56
+ export function matchFonts(files, brand) {
57
+ const norm = (s) => s.toLowerCase().replace(/[^a-z0-9]/g, "");
58
+ const out = [];
59
+ for (const key of ["display", "text", "mono"]) {
60
+ const fam = brand[key];
61
+ if (!fam) continue;
62
+ for (const f of files) if (FONT_EXT.has(extname(f).toLowerCase()) && norm(basename(f)).startsWith(norm(fam))) out.push({ family: fam, file: f });
63
+ }
64
+ return out.filter((x, i) => out.findIndex((y) => y.file === x.file) === i);
65
+ }
66
+
67
+ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
68
+ const [runArg, packId, ...flags] = process.argv.slice(2);
69
+ if (!runArg || !packId) { console.error("Usage: apply-brand.mjs <run-dir> <pack-id> [--accent-only]"); process.exit(1); }
70
+ const run = resolve(runArg);
71
+ const folder = readdirSync(PACKS).find((d) => d === packId || d.replace(/^\d\d-/, "") === packId);
72
+ if (!folder) { console.error(`no pack ${packId} in ${PACKS}`); process.exit(1); }
73
+ const brandPath = join(run, "brand.json");
74
+ if (!existsSync(brandPath)) { console.error(`missing ${brandPath}; write it first (references/brand.md)`); process.exit(1); }
75
+ const brand = JSON.parse(readFileSync(brandPath, "utf8"));
76
+ const manifest = JSON.parse(readFileSync(join(PACKS, folder, "style.json"), "utf8"));
77
+ if (!manifest.brandMap) { console.error(`${folder}/style.json has no brandMap`); process.exit(1); }
78
+
79
+ const id = folder.replace(/^\d\d-/, "");
80
+ const dest = join(run, "composition", "cards", id);
81
+ mkdirSync(dirname(dest), { recursive: true });
82
+ cpSync(join(PACKS, folder), dest, { recursive: true });
83
+
84
+ const fontDir = join(run, "composition", "assets", "fonts");
85
+ const fonts = existsSync(fontDir) ? matchFonts(readdirSync(fontDir), brand) : [];
86
+ const tokensPath = join(dest, "tokens.css");
87
+ const result = brandTokens(readFileSync(tokensPath, "utf8"), manifest.brandMap, brand, { accentOnly: flags.includes("--accent-only"), fonts });
88
+ writeFileSync(tokensPath, result.css);
89
+ console.log(JSON.stringify({ pack: id, dest, changed: result.changed, skipped: result.skipped, fonts: fonts.map((f) => f.file) }, null, 2));
90
+ }
@@ -0,0 +1,62 @@
1
+ import test from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { mkdtempSync, mkdirSync, writeFileSync, readFileSync } from "node:fs";
4
+ import { tmpdir } from "node:os";
5
+ import { join } from "node:path";
6
+ import { spawnSync } from "node:child_process";
7
+ import { brandTokens, hexToRgb, matchFonts } from "./apply-brand.mjs";
8
+
9
+ const brand = { paper: "#101010", paper2: "#181818", ink: "#F7F4EE", muted: "#9A9A9A",
10
+ accent: "#FF4D00", display: "Instrument Serif", text: "Geist", mono: "Geist Mono" };
11
+
12
+ test("hexToRgb handles long, short, and bad input", () => {
13
+ assert.equal(hexToRgb("#FF4D00"), "255, 77, 0");
14
+ assert.equal(hexToRgb("#fff"), "255, 255, 255");
15
+ assert.equal(hexToRgb("rgba(1,2,3,1)"), null);
16
+ });
17
+
18
+ test("brandTokens rewrites mapped variables and leaves the rest", () => {
19
+ const css = ":root {\n --accent: #4F8CFF;\n --accent-rgb: 79, 140, 255;\n --canvas: #0A0E14;\n --radius: 28px;\n}\n";
20
+ const map = { "--accent": "accent", "--accent-rgb": "rgb:accent", "--canvas": "paper", "--missing": "ink" };
21
+ const out = brandTokens(css, map, brand);
22
+ assert.match(out.css, /--accent: #FF4D00;/);
23
+ assert.match(out.css, /--accent-rgb: 255, 77, 0;/);
24
+ assert.match(out.css, /--canvas: #101010;/);
25
+ assert.match(out.css, /--radius: 28px;/);
26
+ assert.deepEqual(out.skipped, ["--missing"]);
27
+ });
28
+
29
+ test("accent-only keeps the pack surfaces", () => {
30
+ const css = ":root {\n --accent: #4F8CFF;\n --canvas: #0A0E14;\n}\n";
31
+ const out = brandTokens(css, { "--accent": "accent", "--canvas": "paper" }, brand, { accentOnly: true });
32
+ assert.match(out.css, /--accent: #FF4D00;/);
33
+ assert.match(out.css, /--canvas: #0A0E14;/);
34
+ });
35
+
36
+ test("fonts become a family stack and local @font-face rules", () => {
37
+ const fonts = matchFonts(["InstrumentSerif-Regular.woff2", "Geist-Variable.ttf", "notes.txt"], brand);
38
+ assert.deepEqual(fonts.map((f) => f.file), ["InstrumentSerif-Regular.woff2", "Geist-Variable.ttf"]);
39
+ const out = brandTokens(":root {\n --font-display: \"Fraunces\", serif;\n}\n", { "--font-display": "font:display" }, brand, { fonts });
40
+ assert.match(out.css, /--font-display: "Instrument Serif", system-ui, sans-serif;/);
41
+ assert.match(out.css, /@font-face \{ font-family: "Instrument Serif"; src: url\("\.\.\/\.\.\/assets\/fonts\/InstrumentSerif-Regular\.woff2"\)/);
42
+ assert.doesNotMatch(out.css, /https?:\/\//);
43
+ });
44
+
45
+ test("CLI brands every shipped pack from a run's brand.json", () => {
46
+ const run = mkdtempSync(join(tmpdir(), "cards-brand-"));
47
+ writeFileSync(join(run, "brand.json"), JSON.stringify(brand));
48
+ for (const pack of ["paper-collage", "aurora-glass"]) {
49
+ const r = spawnSync(process.execPath, [join(import.meta.dirname, "apply-brand.mjs"), run, pack], { encoding: "utf8" });
50
+ assert.equal(r.status, 0, r.stderr);
51
+ const tokens = readFileSync(join(run, "composition/cards", pack, "tokens.css"), "utf8");
52
+ assert.match(tokens, /#FF4D00/, `${pack} did not take the brand accent`);
53
+ assert.doesNotMatch(tokens, /#4F8CFF/i, `${pack} still holds the default accent`);
54
+ }
55
+ });
56
+
57
+ test("CLI fails without brand.json", () => {
58
+ const run = mkdtempSync(join(tmpdir(), "cards-brand-"));
59
+ mkdirSync(join(run, "composition"));
60
+ const r = spawnSync(process.execPath, [join(import.meta.dirname, "apply-brand.mjs"), run, "aurora-glass"], { encoding: "utf8" });
61
+ assert.equal(r.status, 1);
62
+ });
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ // Scan packs/ for NN-slug pack folders, read each style.json, and write
3
+ // packs/registry.json: the index luckiest-video-studio reads to pick cards.
4
+ // Usage: node scripts/build-registry.mjs
5
+
6
+ import { readdirSync, statSync, readFileSync, writeFileSync, existsSync } from "node:fs";
7
+ import { join, resolve, dirname } from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+
10
+ const LIB = resolve(dirname(fileURLToPath(import.meta.url)), "../packs");
11
+
12
+ const packDirs = readdirSync(LIB)
13
+ .filter((d) => /^\d\d-/.test(d) && statSync(join(LIB, d)).isDirectory())
14
+ .sort();
15
+
16
+ const packs = [];
17
+ const warnings = [];
18
+ for (const dir of packDirs) {
19
+ const manifestPath = join(LIB, dir, "style.json");
20
+ if (!existsSync(manifestPath)) { warnings.push(`${dir}: no style.json`); continue; }
21
+ let m;
22
+ try { m = JSON.parse(readFileSync(manifestPath, "utf8")); }
23
+ catch (e) { warnings.push(`${dir}: invalid style.json (${e.message})`); continue; }
24
+
25
+ const cards = (m.cards ?? []).map((c) => {
26
+ if (c.file && !existsSync(join(LIB, dir, c.file))) warnings.push(`${dir}: card file missing: ${c.file}`);
27
+ return {
28
+ id: c.id, pack: m.id, tier: c.tier, purpose: c.purpose, treatment: c.treatment ?? null,
29
+ file: `${dir}/${c.file}`,
30
+ slots: (c.slots ?? []).map((s) => s.name),
31
+ duration: c.duration ?? null,
32
+ qa: c.qa ?? "unchecked",
33
+ };
34
+ });
35
+
36
+ packs.push({
37
+ id: m.id, number: m.number, name: m.name, status: m.status ?? "draft",
38
+ folder: dir, summary: m.inspiration ?? null,
39
+ palette: m.palette ?? null, fonts: m.fonts ?? null,
40
+ cardCount: cards.length,
41
+ cards,
42
+ });
43
+ }
44
+
45
+ const registry = {
46
+ generated_by: "scripts/build-registry.mjs",
47
+ packCount: packs.length,
48
+ cardCount: packs.reduce((n, p) => n + p.cardCount, 0),
49
+ tiers: ["tier1", "tier2", "custom"],
50
+ packs,
51
+ warnings,
52
+ };
53
+ writeFileSync(join(LIB, "registry.json"), JSON.stringify(registry, null, 2) + "\n");
54
+ console.log(JSON.stringify({ packs: packs.length, cards: registry.cardCount, warnings }, null, 2));
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ // Scaffold a new card pack by cloning packs/_blueprint/ and substituting the id.
3
+ // Usage: node scripts/new-pack.mjs <NN> <slug> ["Human Name"]
4
+ // e.g. node scripts/new-pack.mjs 03 ink-grid "Ink Grid"
5
+
6
+ import { cpSync, existsSync, readFileSync, writeFileSync, renameSync, readdirSync, statSync } from "node:fs";
7
+ import { join, resolve, dirname } from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+ import { argv, exit } from "node:process";
10
+
11
+ const LIB = resolve(dirname(fileURLToPath(import.meta.url)), "../packs");
12
+ const [, , numRaw, slug, ...nameParts] = argv;
13
+ if (!numRaw || !slug) { console.error('Usage: new-pack.mjs <NN> <slug> ["Human Name"]'); exit(1); }
14
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(slug)) { console.error("slug must be kebab-case"); exit(1); }
15
+
16
+ const num = String(numRaw).padStart(2, "0");
17
+ const id = slug;
18
+ const name = nameParts.join(" ") || slug.replace(/-/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
19
+ const dest = join(LIB, `${num}-${slug}`);
20
+ if (existsSync(dest)) { console.error(`already exists: ${dest}`); exit(1); }
21
+
22
+ cpSync(join(LIB, "_blueprint"), dest, { recursive: true });
23
+
24
+ // substitute STYLE_ID / NN / name placeholders in text files
25
+ function walk(dir) {
26
+ for (const entry of readdirSync(dir)) {
27
+ const p = join(dir, entry);
28
+ if (statSync(p).isDirectory()) { walk(p); continue; }
29
+ if (!/\.(json|css|md|html)$/.test(entry)) continue;
30
+ let txt = readFileSync(p, "utf8");
31
+ const next = txt.replaceAll("STYLE_ID", id).replaceAll('"number": "NN"', `"number": "${num}"`).replaceAll("Human Readable Style Name", name);
32
+ if (next !== txt) writeFileSync(p, next);
33
+ }
34
+ }
35
+ walk(dest);
36
+
37
+ // rename the example card files to be style-scoped (optional convenience)
38
+ console.log(JSON.stringify({ created: dest, id, number: num, name, next: [
39
+ `1. fill DESIGN.md, tokens.css, and style.json identity fields`,
40
+ `2. build cards under packs/${num}-${slug}/cards/`,
41
+ `3. node scripts/build-registry.mjs`,
42
+ ] }, null, 2));
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env node
2
+ // Record a QA status on every card in packs/*/style.json, then rebuild the registry.
3
+ //
4
+ // node qa-cards.mjs lint [--pack <id>] [--jobs 6] [--bin <hyperframes>]
5
+ // Lints each card on its own with `hyperframes lint --json`. Sets qa to "lint-ok",
6
+ // or "broken" when lint reports errors. Never downgrades a "render-ok" card that
7
+ // still lints clean. Uses `hyperframes` on PATH, else the cached
8
+ // `npx --no-install hyperframes@0.8.84` (it never downloads).
9
+ // node qa-cards.mjs mark <status> <card-id>...
10
+ // Sets qa by hand, for example "render-ok" after a rendered card was inspected.
11
+ // node qa-cards.mjs sample <run-dir> [--pack <id>]
12
+ // Writes a run folder with one tier1 and one tier2 card per purpose per pack as
13
+ // motion scenes, ready for render-scenes.mjs.
14
+
15
+ import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
16
+ import { tmpdir } from "node:os";
17
+ import { join, resolve, dirname } from "node:path";
18
+ import { fileURLToPath } from "node:url";
19
+ import { spawn, spawnSync } from "node:child_process";
20
+
21
+ const HERE = dirname(fileURLToPath(import.meta.url));
22
+ const PACKS = resolve(HERE, "../packs");
23
+ const HF_VERSION = "0.8.84";
24
+ const args = process.argv.slice(2);
25
+ const flag = (n, d) => { const i = args.indexOf(n); return i >= 0 ? args[i + 1] : d; };
26
+ const packDirs = () => readdirSync(PACKS).filter((d) => /^\d\d-/.test(d)).filter((d) => !flag("--pack") || d.endsWith(flag("--pack")));
27
+ const readManifest = (d) => JSON.parse(readFileSync(join(PACKS, d, "style.json"), "utf8"));
28
+ const writeManifest = (d, m) => writeFileSync(join(PACKS, d, "style.json"), JSON.stringify(m, null, 2) + "\n");
29
+ const rebuild = () => spawnSync(process.execPath, [join(HERE, "build-registry.mjs")], { stdio: "inherit" });
30
+
31
+ function hfCommand() {
32
+ const bin = flag("--bin");
33
+ if (bin) return [bin];
34
+ return spawnSync("hyperframes", ["--version"], { encoding: "utf8" }).status === 0
35
+ ? ["hyperframes"] : ["npx", "--no-install", `hyperframes@${HF_VERSION}`];
36
+ }
37
+
38
+ // Lint one card as the root index.html of a scratch project, with the pack's tokens at
39
+ // cards/<pack-id>/tokens.css, the same root-relative path a run uses.
40
+ function lintCard(hf, packDir, file) {
41
+ return new Promise((done) => {
42
+ const proj = mkdtempSync(join(tmpdir(), "card-lint-"));
43
+ mkdirSync(join(proj, "cards", packDir.replace(/^\d\d-/, "")), { recursive: true });
44
+ cpSync(join(PACKS, packDir, "tokens.css"), join(proj, "cards", packDir.replace(/^\d\d-/, ""), "tokens.css"));
45
+ writeFileSync(join(proj, "index.html"), readFileSync(join(PACKS, packDir, file), "utf8"));
46
+ const p = spawn(hf[0], [...hf.slice(1), "lint", "--json", proj], { stdio: ["ignore", "pipe", "pipe"] });
47
+ let out = "", err = "";
48
+ p.stdout.on("data", (b) => (out += b));
49
+ p.stderr.on("data", (b) => (err += b));
50
+ p.on("close", (code) => {
51
+ rmSync(proj, { recursive: true, force: true });
52
+ let errors = null;
53
+ try {
54
+ const j = JSON.parse(out.slice(out.indexOf("{")));
55
+ const findings = j.findings ?? j.results ?? j.issues ?? [];
56
+ errors = typeof j.errorCount === "number" ? j.errorCount : findings.filter((f) => (f.severity ?? f.level) === "error").length;
57
+ } catch { errors = code === 0 ? 0 : null; }
58
+ done({ errors, code, detail: errors ? out.slice(0, 400) : err.slice(0, 200) });
59
+ });
60
+ });
61
+ }
62
+
63
+ async function lintAll() {
64
+ const hf = hfCommand(), jobs = Number(flag("--jobs", 6));
65
+ const summary = { "lint-ok": 0, broken: 0, "render-ok": 0, unknown: 0 };
66
+ const broken = [];
67
+ for (const d of packDirs()) {
68
+ const m = readManifest(d);
69
+ const queue = [...m.cards];
70
+ const worker = async () => {
71
+ for (let c = queue.shift(); c; c = queue.shift()) {
72
+ const r = await lintCard(hf, d, c.file);
73
+ if (r.errors === null) { summary.unknown++; continue; }
74
+ if (r.errors > 0) { c.qa = "broken"; broken.push({ id: c.id, errors: r.errors }); }
75
+ else if (c.qa !== "render-ok") c.qa = "lint-ok";
76
+ summary[c.qa]++;
77
+ }
78
+ };
79
+ await Promise.all(Array.from({ length: jobs }, worker));
80
+ writeManifest(d, m);
81
+ }
82
+ rebuild();
83
+ console.log(JSON.stringify({ summary, broken }, null, 2));
84
+ process.exitCode = summary.unknown ? 2 : 0;
85
+ }
86
+
87
+ function mark(status, ids) {
88
+ let n = 0;
89
+ for (const d of packDirs()) {
90
+ const m = readManifest(d);
91
+ for (const c of m.cards) if (ids.includes(c.id)) { c.qa = status; n++; }
92
+ writeManifest(d, m);
93
+ }
94
+ rebuild();
95
+ console.log(`marked ${n} card(s) ${status}`);
96
+ }
97
+
98
+ function sample(runDir) {
99
+ const run = resolve(runDir), comp = join(run, "composition");
100
+ mkdirSync(join(comp, "compositions"), { recursive: true });
101
+ const scenes = [];
102
+ for (const d of packDirs()) {
103
+ const m = readManifest(d), id = m.id;
104
+ cpSync(join(PACKS, d), join(comp, "cards", id), { recursive: true });
105
+ const seen = new Set();
106
+ for (const c of m.cards) {
107
+ const key = `${c.tier}.${c.purpose}`;
108
+ if (seen.has(key) || c.qa === "broken") continue;
109
+ seen.add(key);
110
+ const sceneId = c.id.replace(/\./g, "-");
111
+ const dur = c.duration?.min ?? 5;
112
+ const html = readFileSync(join(PACKS, d, c.file), "utf8");
113
+ writeFileSync(join(comp, "compositions", `${sceneId}.html`), html);
114
+ scenes.push({ id: sceneId, kind: "motion", duration: dur, composition: `compositions/${sceneId}.html`, line: c.id });
115
+ }
116
+ }
117
+ writeFileSync(join(run, "storyboard.json"), JSON.stringify({ version: 1, title: "Card QA sample", mode: "launch",
118
+ hyperframes: HF_VERSION, format: { width: 1920, height: 1080, fps: 30 }, scenes }, null, 2) + "\n");
119
+ console.log(JSON.stringify({ run, scenes: scenes.map((s) => s.line) }, null, 2));
120
+ }
121
+
122
+ const [cmd, ...rest] = args;
123
+ if (cmd === "lint") await lintAll();
124
+ else if (cmd === "mark" && rest.length > 1) mark(rest[0], rest.slice(1));
125
+ else if (cmd === "sample" && rest[0]) sample(rest[0]);
126
+ else { console.error("Usage: qa-cards.mjs lint [--pack id] [--jobs n] [--bin path] | mark <status> <id>... | sample <run-dir>"); process.exit(1); }
@@ -0,0 +1,24 @@
1
+ ## Style Prompt
2
+
3
+ Use The original edited-video glassmorphism look: crisp face-cam video, restrained dark frosted panels, white editorial text, rounded card edges, visible border highlights, and a heavy soft shadow. The motion should feel like a left-side information panel entering over a camera reframe, not like a full-screen takeover.
4
+
5
+ ## Colors
6
+
7
+ - Canvas black: `#000000`
8
+ - Glass base: `rgba(8, 14, 26, 0.62)`
9
+ - Glass dim: `rgba(10, 18, 32, 0.58)`
10
+ - Border highlight: `rgba(125, 211, 252, 0.18)`
11
+ - Text: `#ffffff`
12
+ - Accent: `#7dd3fc`
13
+
14
+ ## Typography
15
+
16
+ - Primary: `sans-serif`
17
+ - Label: `monospace`
18
+
19
+ ## What Not To Do
20
+
21
+ - Do not cover the face in the center of the source frame.
22
+ - Do not use a full-screen dark overlay.
23
+ - Do not use decorative gradients behind the video.
24
+ - Do not truncate the source video for this prototype.
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://hyperframes.heygen.com/schema/hyperframes.json",
3
+ "paths": {
4
+ "blocks": "compositions",
5
+ "components": "compositions/components",
6
+ "assets": "assets"
7
+ }
8
+ }