luckiest-co 1.0.32 → 1.0.34

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 (478) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/commands/plan.md +1 -0
  4. package/package.json +1 -1
  5. package/skills/luckiest-plan/SKILL.md +1 -0
  6. package/skills/luckiest-research/CHANGELOG.md +5 -0
  7. package/skills/luckiest-research/SKILL.md +8 -4
  8. package/skills/luckiest-video-studio/ATTRIBUTION.md +11 -0
  9. package/skills/luckiest-video-studio/CHANGELOG.md +56 -0
  10. package/skills/luckiest-video-studio/SKILL.md +35 -7
  11. package/skills/luckiest-video-studio/references/audio.md +61 -10
  12. package/skills/luckiest-video-studio/references/lessons.md +44 -0
  13. package/skills/luckiest-video-studio/references/step-2-plan.md +32 -1
  14. package/skills/luckiest-video-studio/references/step-3-compose.md +28 -0
  15. package/skills/luckiest-video-studio/references/step-4-deliver.md +24 -1
  16. package/skills/luckiest-video-studio/references/storyboard.md +24 -3
  17. package/skills/luckiest-video-studio/scripts/qa.mjs +167 -5
  18. package/skills/luckiest-video-studio/scripts/qa.test.mjs +99 -1
  19. package/skills/luckiest-video-studio/scripts/render-scenes.mjs +196 -71
  20. package/skills/luckiest-video-studio/scripts/render-scenes.test.mjs +109 -0
  21. package/skills/luckiest-video-studio/scripts/sfx-cues.mjs +116 -0
  22. package/skills/luckiest-video-studio/scripts/sfx-cues.test.mjs +76 -0
  23. package/skills/luckiest-video-studio/scripts/stamp-format.mjs +26 -0
  24. package/skills/luckiest-video-studio/scripts/storyboard.schema.json +23 -0
  25. package/skills/luckiest-video-studio/templates/logo-line-draw.html +12 -5
  26. package/skills/luckiest-video-studio-art-director/ATTRIBUTION.md +1 -0
  27. package/skills/luckiest-video-studio-art-director/CHANGELOG.md +8 -0
  28. package/skills/luckiest-video-studio-art-director/SKILL.md +18 -5
  29. package/skills/luckiest-video-studio-cards/CHANGELOG.md +18 -0
  30. package/skills/luckiest-video-studio-cards/SKILL.md +22 -7
  31. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-agenda.html +17 -6
  32. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-bigtype.html +15 -5
  33. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-board.html +20 -6
  34. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-checklist.html +27 -6
  35. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-compare.html +40 -9
  36. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-deck.html +26 -6
  37. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-dossier.html +28 -9
  38. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-filmstrip.html +36 -5
  39. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-grid6.html +24 -6
  40. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-indexset.html +34 -6
  41. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-maplegend.html +39 -8
  42. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-matrix.html +35 -7
  43. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-numlist.html +26 -7
  44. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-outline.html +26 -6
  45. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-phases.html +34 -7
  46. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-quad.html +41 -10
  47. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-roadmap.html +66 -17
  48. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-stepper.html +42 -7
  49. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-toc.html +26 -8
  50. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-vtimeline.html +35 -9
  51. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-bracket.html +16 -4
  52. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-circle.html +21 -5
  53. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-classified.html +25 -7
  54. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-collage.html +27 -9
  55. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-correction.html +19 -7
  56. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-crt.html +15 -4
  57. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-cutout.html +18 -8
  58. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-fullbleed.html +18 -5
  59. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-highlight.html +15 -5
  60. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-indexcard.html +18 -5
  61. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-map.html +20 -8
  62. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-markerbox.html +12 -5
  63. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-numeral.html +21 -7
  64. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-split.html +25 -9
  65. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-stacked.html +26 -10
  66. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-stamp.html +14 -5
  67. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-ticker.html +26 -9
  68. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-tornstrip.html +13 -4
  69. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-annotated.html +29 -9
  70. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-arc.html +25 -7
  71. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-axis.html +34 -14
  72. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-bar.html +17 -8
  73. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-bracket.html +24 -8
  74. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-calendar.html +24 -9
  75. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-callout.html +24 -5
  76. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-columns.html +27 -9
  77. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-corner.html +22 -9
  78. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-dots.html +27 -8
  79. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-engraving.html +30 -8
  80. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-footnote.html +20 -8
  81. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-frac.html +24 -8
  82. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-heat.html +22 -8
  83. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-isotype.html +29 -8
  84. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ledger.html +18 -6
  85. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-left.html +27 -10
  86. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-magnifier.html +21 -8
  87. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-map.html +21 -9
  88. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-meter.html +26 -9
  89. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-multiplier.html +27 -12
  90. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-odo.html +18 -5
  91. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pack.html +41 -17
  92. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-photo.html +18 -7
  93. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pie.html +25 -8
  94. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-postage.html +24 -8
  95. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pricetag.html +25 -11
  96. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-quote.html +21 -8
  97. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ranking.html +25 -10
  98. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-receipt.html +24 -12
  99. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ribbon.html +34 -12
  100. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-semi.html +22 -7
  101. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-spotlight.html +23 -9
  102. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-stamp.html +24 -7
  103. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-steps.html +30 -9
  104. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-tape.html +33 -12
  105. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-torn.html +22 -9
  106. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-trend.html +23 -9
  107. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-vs.html +30 -10
  108. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-window.html +38 -25
  109. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat.html +23 -4
  110. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-timeline.html +41 -6
  111. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-label.html +10 -3
  112. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-bracket.html +9 -2
  113. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-caption.html +12 -5
  114. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-circle.html +10 -3
  115. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-definition.html +10 -3
  116. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-footnote.html +11 -4
  117. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-magnify.html +9 -2
  118. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-pin.html +9 -2
  119. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-pullquote.html +10 -3
  120. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-spotlight.html +15 -2
  121. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-sticky.html +9 -2
  122. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-tag.html +10 -3
  123. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-underline.html +9 -2
  124. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lower-third.html +9 -2
  125. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-badge.html +10 -3
  126. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-barslab.html +26 -7
  127. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-bracket.html +9 -2
  128. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-clapper.html +9 -2
  129. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-highlight.html +9 -2
  130. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-indextab.html +10 -3
  131. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-rail.html +9 -2
  132. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-ribbon.html +9 -2
  133. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-stacked.html +9 -2
  134. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-stamp.html +9 -2
  135. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-sticky.html +9 -2
  136. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-typecard.html +9 -2
  137. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/style.json +1 -1
  138. package/skills/luckiest-video-studio-cards/packs/01-paper-collage/tokens.css +18 -8
  139. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-agenda.html +23 -5
  140. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-beforeafter.html +30 -6
  141. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-bento.html +34 -8
  142. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-bigleft.html +28 -6
  143. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-callouts.html +36 -7
  144. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-cardrow5.html +17 -4
  145. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-checklist.html +11 -3
  146. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-cycle.html +30 -6
  147. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-dashboard.html +32 -5
  148. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-deck2.html +21 -5
  149. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-deck3.html +18 -4
  150. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-duallist.html +24 -4
  151. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-featurecompare.html +19 -5
  152. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-featuregrid.html +25 -4
  153. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-flashcards.html +22 -5
  154. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-flow.html +23 -4
  155. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-funnel.html +19 -5
  156. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-gantt.html +22 -6
  157. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-grid6.html +17 -4
  158. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-grid9.html +15 -4
  159. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-iconlist.html +18 -3
  160. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-journey.html +41 -6
  161. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-kpirow.html +24 -6
  162. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-layers.html +20 -5
  163. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-legend.html +19 -4
  164. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-levels.html +19 -5
  165. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-logowall.html +18 -6
  166. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-mappoints.html +18 -5
  167. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-matrix.html +24 -6
  168. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-milestones.html +38 -5
  169. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-mindmap.html +35 -12
  170. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-nested.html +13 -5
  171. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-network.html +76 -31
  172. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-notifs.html +21 -3
  173. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-numlist.html +16 -4
  174. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-orgchart.html +36 -16
  175. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-outline.html +17 -3
  176. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-phases.html +23 -5
  177. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pipeline.html +25 -4
  178. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pricing.html +36 -8
  179. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-profiles.html +20 -5
  180. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-proscons.html +21 -6
  181. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pyramid.html +17 -4
  182. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-quad.html +13 -5
  183. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-quotegrid.html +19 -5
  184. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-ranked.html +19 -5
  185. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-roadmap.html +27 -5
  186. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-spectrum.html +29 -6
  187. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-split3.html +24 -5
  188. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-spotlightcard.html +34 -8
  189. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-statgrid.html +17 -5
  190. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-steps.html +25 -4
  191. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-summary.html +22 -5
  192. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tiercompare.html +29 -6
  193. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-timeline.html +26 -5
  194. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-toc.html +15 -5
  195. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tree.html +40 -15
  196. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tricards.html +22 -4
  197. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-venn.html +34 -9
  198. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-vstable.html +24 -5
  199. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ascend.html +10 -4
  200. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-aurora-bars.html +12 -4
  201. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-beam.html +11 -4
  202. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-boxed.html +26 -13
  203. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-breath.html +14 -3
  204. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-chaptercard.html +13 -4
  205. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-column-light.html +17 -9
  206. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-constellation.html +15 -6
  207. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-countdown.html +10 -4
  208. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-curtain.html +9 -3
  209. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-dawn.html +13 -4
  210. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-depth.html +18 -12
  211. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-divider.html +10 -3
  212. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-drift-grid.html +11 -4
  213. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-duotone.html +16 -4
  214. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-eclipse.html +11 -4
  215. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-emblem.html +12 -5
  216. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-flare-sweep.html +14 -6
  217. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-glow-rule.html +22 -13
  218. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-gradient-word.html +15 -5
  219. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-gridfloor.html +16 -2
  220. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-halo.html +16 -5
  221. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-horizon.html +16 -4
  222. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-index.html +25 -9
  223. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-kinetic.html +10 -3
  224. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-lensflare.html +10 -3
  225. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-liquid.html +12 -5
  226. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-marquee.html +34 -25
  227. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-mesh.html +13 -4
  228. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-monolith.html +9 -3
  229. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-node-title.html +17 -1
  230. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-numeral.html +13 -4
  231. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-orb.html +12 -2
  232. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-orbit.html +9 -1
  233. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-particles.html +7 -1
  234. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-pill.html +7 -1
  235. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-portal.html +14 -2
  236. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-prism.html +15 -2
  237. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-question.html +14 -2
  238. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-quoteopen.html +11 -2
  239. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-reveal-mask.html +6 -1
  240. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ribbon.html +12 -1
  241. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ripple.html +8 -1
  242. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-searchbar.html +15 -2
  243. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-slab.html +9 -2
  244. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-sphere-top.html +12 -3
  245. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-split-reveal.html +24 -7
  246. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-splitpanel.html +27 -4
  247. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-spotlight-cone.html +16 -3
  248. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-spotlight.html +10 -2
  249. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-stack.html +17 -4
  250. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-stacked-words.html +14 -3
  251. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-starfield.html +7 -1
  252. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-sweep.html +11 -2
  253. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-tunnel.html +14 -4
  254. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-type-scale.html +9 -2
  255. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-typed.html +9 -2
  256. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-underline-grow.html +13 -1
  257. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-waveform.html +11 -2
  258. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-wordmark.html +11 -3
  259. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-annot.html +22 -7
  260. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-beforeafter.html +23 -6
  261. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bigpercent.html +10 -3
  262. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bracketstat.html +13 -3
  263. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bubble.html +7 -3
  264. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-cbars.html +8 -3
  265. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-clockface.html +8 -4
  266. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-column.html +12 -4
  267. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-compass.html +7 -3
  268. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-counterpill.html +11 -3
  269. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-curve.html +22 -10
  270. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-delta.html +13 -4
  271. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-dial.html +9 -3
  272. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-donut.html +15 -4
  273. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-dotgrid.html +14 -4
  274. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-figure.html +9 -3
  275. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-fillshape.html +11 -3
  276. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-fraction.html +11 -5
  277. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-funnel.html +24 -8
  278. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-growtharrow.html +18 -4
  279. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-heatcell.html +8 -3
  280. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-isotype.html +16 -4
  281. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-layered.html +10 -3
  282. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-mega.html +9 -3
  283. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-meter.html +9 -4
  284. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-milestone.html +9 -3
  285. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-money.html +16 -4
  286. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-multiplier.html +12 -4
  287. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-multiring.html +10 -3
  288. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-needle.html +10 -3
  289. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-nodes.html +50 -9
  290. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-odometer.html +9 -4
  291. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-orbitmoons.html +21 -8
  292. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-orbitstat.html +9 -3
  293. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-pair.html +18 -3
  294. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-percentile.html +11 -3
  295. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-pictobar.html +11 -4
  296. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-polar.html +12 -2
  297. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-quotestat.html +15 -5
  298. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-radialbars.html +18 -6
  299. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-range.html +12 -5
  300. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-rank.html +13 -5
  301. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-ratio.html +10 -5
  302. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-ring.html +10 -3
  303. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-risewall.html +18 -2
  304. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-score.html +11 -4
  305. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-segbar.html +9 -3
  306. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-semigauge.html +9 -4
  307. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-sparkline.html +9 -3
  308. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-spectrum.html +9 -2
  309. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-split.html +14 -4
  310. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-stackedbars.html +9 -4
  311. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-tickerstat.html +18 -5
  312. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-tiles.html +18 -4
  313. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-timer.html +14 -4
  314. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-trendline.html +18 -4
  315. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-underscore.html +9 -3
  316. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-versus.html +18 -5
  317. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-waffle.html +18 -4
  318. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-waterfall.html +9 -4
  319. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-badge.html +13 -4
  320. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-brace.html +13 -4
  321. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-bracket.html +13 -4
  322. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-bubble.html +16 -4
  323. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-byline.html +17 -5
  324. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-callout.html +13 -4
  325. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-category.html +14 -5
  326. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-checkmark.html +13 -4
  327. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-chipstat.html +13 -4
  328. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-comparemini.html +14 -5
  329. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-coord.html +26 -8
  330. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-counter.html +17 -6
  331. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-crosshair.html +18 -6
  332. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-dashed.html +19 -5
  333. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-definition.html +14 -5
  334. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-deltachip.html +15 -6
  335. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-eyebrow.html +14 -5
  336. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-fact.html +14 -5
  337. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-flag.html +20 -7
  338. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-formula.html +17 -7
  339. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-hash.html +17 -5
  340. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-highlightbox.html +13 -4
  341. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-iconchip.html +13 -4
  342. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-info.html +14 -5
  343. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-infocard.html +13 -4
  344. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-keycap.html +13 -4
  345. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-keyword.html +12 -3
  346. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-leader.html +16 -5
  347. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-legend.html +14 -5
  348. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-measure.html +14 -5
  349. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-meterchip.html +16 -7
  350. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-metric.html +15 -6
  351. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-micropie.html +15 -6
  352. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-minibar.html +15 -6
  353. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-node.html +28 -18
  354. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-note.html +14 -5
  355. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-numbercallout.html +18 -6
  356. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-percent.html +15 -6
  357. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-pointer.html +31 -22
  358. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-price.html +20 -8
  359. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-progress.html +15 -6
  360. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-pulse.html +14 -5
  361. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-qmark.html +15 -6
  362. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-quote.html +16 -7
  363. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-rating.html +14 -5
  364. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-ribbon.html +19 -6
  365. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-ringmark.html +27 -17
  366. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-search.html +14 -5
  367. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-sparkchip.html +15 -6
  368. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-spec.html +25 -13
  369. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-status.html +15 -6
  370. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-step.html +16 -7
  371. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tag.html +14 -5
  372. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-takeaway.html +13 -4
  373. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tcode.html +18 -6
  374. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-timestamp.html +15 -6
  375. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-toast.html +15 -6
  376. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tooltip.html +14 -5
  377. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-underline.html +14 -5
  378. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-warning.html +16 -7
  379. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-avatar.html +12 -5
  380. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-badgecard.html +12 -6
  381. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-barslide.html +11 -5
  382. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-bracket.html +20 -7
  383. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-brandbar.html +13 -7
  384. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-bug.html +12 -5
  385. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-capsule.html +14 -5
  386. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-chapterbar.html +12 -5
  387. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-chip.html +11 -5
  388. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cinemastrip.html +20 -8
  389. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cite.html +12 -6
  390. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-clockname.html +11 -5
  391. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-coordbar.html +16 -6
  392. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-corner.html +11 -5
  393. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cornerframe.html +16 -6
  394. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-countbar.html +13 -7
  395. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dividername.html +26 -6
  396. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dotline.html +11 -5
  397. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-doublecard.html +12 -6
  398. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dual.html +12 -6
  399. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-edgebar.html +11 -5
  400. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-flipcard.html +15 -5
  401. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-geopin.html +11 -5
  402. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-glasscard.html +11 -5
  403. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-gradient.html +11 -5
  404. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-gradientbar.html +12 -4
  405. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-handlebar.html +11 -5
  406. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-infochips.html +11 -5
  407. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-lensbar.html +25 -12
  408. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-live.html +12 -6
  409. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-location.html +14 -6
  410. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-logolock.html +14 -6
  411. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-micname.html +14 -6
  412. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-minicard.html +13 -5
  413. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-minimal.html +13 -5
  414. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-nameplate3d.html +13 -5
  415. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-neonframe.html +14 -5
  416. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-neonpill.html +13 -6
  417. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-nowplaying.html +15 -7
  418. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-orbitbadge.html +13 -5
  419. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-pill.html +14 -6
  420. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-portraitframe.html +14 -6
  421. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-progressname.html +13 -5
  422. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-quote.html +15 -7
  423. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ratingname.html +14 -6
  424. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ribbon.html +13 -5
  425. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-sidebracket.html +13 -5
  426. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-slidetab.html +15 -6
  427. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-social.html +14 -6
  428. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-spotlightname.html +14 -6
  429. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-stacked.html +13 -5
  430. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-statline.html +13 -5
  431. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-tagrow.html +14 -5
  432. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-thinstrip.html +18 -8
  433. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ticker.html +29 -7
  434. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-titlebar.html +19 -5
  435. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-trust.html +16 -8
  436. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-typedname.html +13 -5
  437. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-underbar.html +13 -5
  438. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-waveband.html +14 -6
  439. package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/tokens.css +18 -8
  440. package/skills/luckiest-video-studio-cards/packs/_blueprint/cards/tier1/t1-stat.html +4 -2
  441. package/skills/luckiest-video-studio-cards/packs/_blueprint/cards/tier2/t2-list.html +5 -2
  442. package/skills/luckiest-video-studio-cards/packs/_blueprint/tokens.css +12 -4
  443. package/skills/luckiest-video-studio-cards/references/card-contract.md +15 -1
  444. package/skills/luckiest-video-studio-cards/scripts/qa-cards.mjs +14 -8
  445. package/skills/luckiest-video-studio-cards/templates/glass-popout/index.html +35 -11
  446. package/skills/luckiest-video-studio-cards/templates/glass-popout/meta.json +6 -1
  447. package/skills/luckiest-video-studio-cards/templates/graph-paper/index.html +15 -10
  448. package/skills/luckiest-video-studio-cards/templates/graph-paper/meta.json +7 -2
  449. package/skills/luckiest-video-studio-motion/ATTRIBUTION.md +4 -0
  450. package/skills/luckiest-video-studio-motion/CHANGELOG.md +9 -0
  451. package/skills/luckiest-video-studio-motion/SKILL.md +7 -3
  452. package/skills/luckiest-video-studio-motion/references/vocabulary.md +21 -0
  453. package/skills/luckiest-video-studio-motion/templates/spring.js +50 -0
  454. package/skills/luckiest-video-studio-motion/templates/spring.test.mjs +51 -0
  455. package/skills/luckiest-video-studio-recreate/ATTRIBUTION.md +2 -0
  456. package/skills/luckiest-video-studio-recreate/CHANGELOG.md +11 -0
  457. package/skills/luckiest-video-studio-recreate/SKILL.md +46 -7
  458. package/skills/luckiest-video-studio-reel/CHANGELOG.md +6 -0
  459. package/skills/luckiest-video-studio-reel/SKILL.md +9 -4
  460. package/skills/luckiest-video-studio-reel/templates/reel.html +36 -18
  461. package/skills/luckiest-video-studio-reference/CHANGELOG.md +4 -0
  462. package/skills/luckiest-video-studio-reference/SKILL.md +10 -3
  463. package/skills/luckiest-video-studio-review/ATTRIBUTION.md +4 -0
  464. package/skills/luckiest-video-watcher/ATTRIBUTION.md +37 -0
  465. package/skills/luckiest-video-watcher/CHANGELOG.md +90 -0
  466. package/skills/luckiest-video-watcher/LICENSE-claude-video +21 -0
  467. package/skills/luckiest-video-watcher/SKILL.md +201 -0
  468. package/skills/luckiest-video-watcher/references/watch-guide.md +159 -0
  469. package/skills/luckiest-video-watcher/scripts/config.py +174 -0
  470. package/skills/luckiest-video-watcher/scripts/download.py +207 -0
  471. package/skills/luckiest-video-watcher/scripts/frames.py +758 -0
  472. package/skills/luckiest-video-watcher/scripts/gemini.py +162 -0
  473. package/skills/luckiest-video-watcher/scripts/local_whisperx.py +147 -0
  474. package/skills/luckiest-video-watcher/scripts/runtime.py +35 -0
  475. package/skills/luckiest-video-watcher/scripts/setup.py +338 -0
  476. package/skills/luckiest-video-watcher/scripts/transcribe.py +113 -0
  477. package/skills/luckiest-video-watcher/scripts/watch.py +430 -0
  478. package/skills/luckiest-video-watcher/scripts/whisper.py +425 -0
@@ -14,10 +14,15 @@
14
14
  --font-body: "FontName", system-ui, sans-serif;
15
15
  --font-mono: "FontName", ui-monospace, monospace;
16
16
 
17
- --size-display: 96px;
18
- --size-headline: 48px;
19
- --size-body: 28px;
20
- --size-label: 20px;
17
+ /* format: landscape defaults; render-scenes.mjs stamps the real values per format */
18
+ --w: 1920px; --h: 1080px; --u: 10.8px;
19
+ --safe-t: 54px; --safe-b: 54px; --safe-l: 96px; --safe-r: 96px;
20
+ --type: 1; /* 1.2 in vertical, below */
21
+
22
+ --size-display: calc(96px * var(--type));
23
+ --size-headline: calc(48px * var(--type));
24
+ --size-body: calc(28px * var(--type));
25
+ --size-label: calc(20px * var(--type));
21
26
 
22
27
  /* motion - easings as the style's signature (used in GSAP and CSS) */
23
28
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
@@ -30,3 +35,6 @@
30
35
  --radius: 16px;
31
36
  --pad: 48px;
32
37
  }
38
+
39
+ /* The phone shows the whole vertical frame smaller, so type runs 20% larger there. */
40
+ :root[data-format="vertical"] { --type: 1.2; }
@@ -27,7 +27,8 @@ packs/NN-slug/
27
27
 
28
28
  1. A standalone HyperFrames composition: a root `<div>` with `id`,
29
29
  `data-composition-id`, `data-start="0"`, `data-width="1920"`,
30
- `data-height="1080"`, directly in `<body>`, with its own pinned GSAP script tag.
30
+ `data-height="1080"` (the master size; the renderer rewrites them per format),
31
+ directly in `<body>`, with its own pinned GSAP script tag.
31
32
  2. Exactly one paused GSAP timeline, registered on
32
33
  `window.__timelines["<data-composition-id>"]`.
33
34
  3. Colors, fonts, and easings come from `tokens.css` variables, linked as
@@ -40,6 +41,15 @@ packs/NN-slug/
40
41
  5. All text sits in elements with `data-slot="<name>"`, and every slot is declared
41
42
  in `style.json` with its name and type.
42
43
  6. Deterministic: no `Math.random()`, no `Date.now()`, no network calls.
44
+ 7. One file renders in every format. The canvas is `var(--w)` by `var(--h)`, never
45
+ px. Text positions are offsets from the safe insets (`left: calc(var(--safe-l) +
46
+ 24px)`), so every slot sits inside the safe area in landscape, vertical, and
47
+ square. Literal font sizes are `calc(Npx * var(--type))` so vertical runs 20%
48
+ larger. Layout changes go in `[data-format="vertical"]` and
49
+ `[data-format="square"]` rules at the end of the card's style: tier1 stacks inside
50
+ the safe area, tier2 moves to the bottom of the safe area. The pack's
51
+ `tokens.css` holds the landscape defaults; the renderer's stamp overrides them
52
+ per format (coordinator `step-3-compose.md`, "Build once, render every format").
43
53
 
44
54
  ## Mounting a card inside another scene
45
55
 
@@ -75,3 +85,7 @@ two lines and jumps back.
75
85
 
76
86
  Keep new cards to the same rules: no CSS `transform` on anything GSAP tweens,
77
87
  plain-string selectors, and motion through transforms only.
88
+
89
+ Check a new card in all three formats with
90
+ `node scripts/qa-cards.mjs sample <run-dir> --pack <id> --tier <tier> --all --format all`,
91
+ then the coordinator's `render-scenes.mjs` and `qa.mjs safe` on that run.
@@ -8,9 +8,11 @@
8
8
  // `npx --no-install hyperframes@0.8.84` (it never downloads).
9
9
  // node qa-cards.mjs mark <status> <card-id>...
10
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.
11
+ // node qa-cards.mjs sample <run-dir> [--pack <id>] [--tier <tier>] [--all] [--format <name,...|all>]
12
+ // Writes a run folder with one tier1 and one tier2 card per purpose per pack (every
13
+ // card with --all) as motion scenes, ready for render-scenes.mjs. --format lists the
14
+ // storyboard formats (landscape, vertical, square) so each card renders in each one.
15
+ // tier2 cards get a mid-gray backdrop in the sample so ink and paper both show.
14
16
 
15
17
  import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
16
18
  import { tmpdir } from "node:os";
@@ -99,23 +101,27 @@ function sample(runDir) {
99
101
  const run = resolve(runDir), comp = join(run, "composition");
100
102
  mkdirSync(join(comp, "compositions"), { recursive: true });
101
103
  const scenes = [];
104
+ const fmt = flag("--format");
105
+ const formats = fmt && (fmt === "all" ? ["landscape", "vertical", "square"] : fmt.split(","));
106
+ for (const f of formats ?? []) if (!["landscape", "vertical", "square"].includes(f)) { console.error(`unknown format "${f}"`); process.exit(1); }
102
107
  for (const d of packDirs()) {
103
108
  const m = readManifest(d), id = m.id;
104
109
  cpSync(join(PACKS, d), join(comp, "cards", id), { recursive: true });
105
110
  const seen = new Set();
106
111
  for (const c of m.cards) {
107
- const key = `${c.tier}.${c.purpose}`;
108
- if (seen.has(key) || c.qa === "broken") continue;
112
+ const key = args.includes("--all") ? c.id : `${c.tier}.${c.purpose}`;
113
+ if (seen.has(key) || c.qa === "broken" || (flag("--tier") && c.tier !== flag("--tier"))) continue;
109
114
  seen.add(key);
110
115
  const sceneId = c.id.replace(/\./g, "-");
111
116
  const dur = c.duration?.min ?? 5;
112
- const html = readFileSync(join(PACKS, d, c.file), "utf8");
117
+ let html = readFileSync(join(PACKS, d, c.file), "utf8");
118
+ if (c.tier === "tier2") html = html.replace("</head>", "<style>html { background: #808080 !important; }</style></head>");
113
119
  writeFileSync(join(comp, "compositions", `${sceneId}.html`), html);
114
120
  scenes.push({ id: sceneId, kind: "motion", duration: dur, composition: `compositions/${sceneId}.html`, line: c.id });
115
121
  }
116
122
  }
117
123
  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");
124
+ hyperframes: HF_VERSION, format: { width: 1920, height: 1080, fps: 30 }, ...(formats && { formats }), scenes }, null, 2) + "\n");
119
125
  console.log(JSON.stringify({ run, scenes: scenes.map((s) => s.line) }, null, 2));
120
126
  }
121
127
 
@@ -123,4 +129,4 @@ const [cmd, ...rest] = args;
123
129
  if (cmd === "lint") await lintAll();
124
130
  else if (cmd === "mark" && rest.length > 1) mark(rest[0], rest.slice(1));
125
131
  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); }
132
+ else { console.error("Usage: qa-cards.mjs lint [--pack id] [--jobs n] [--bin path] | mark <status> <id>... | sample <run-dir> [--pack id] [--tier t] [--all] [--format name,...|all]"); process.exit(1); }
@@ -2,10 +2,15 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=1920, height=1080" />
6
5
  <title>Left Glass Popout</title>
7
6
  <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
8
7
  <style>
8
+ /* Master size defaults. render-scenes.mjs appends the real --w, --h, --u and safe tokens for each format. */
9
+ :root {
10
+ --w: 1920px; --h: 1080px; --u: 10.8px;
11
+ --safe-t: 54px; --safe-b: 54px; --safe-l: 96px; --safe-r: 96px;
12
+ }
13
+
9
14
  * {
10
15
  margin: 0;
11
16
  padding: 0;
@@ -14,8 +19,8 @@
14
19
 
15
20
  html,
16
21
  body {
17
- width: 1920px;
18
- height: 1080px;
22
+ width: var(--w);
23
+ height: var(--h);
19
24
  overflow: hidden;
20
25
  background: #000000;
21
26
  color: #ffffff;
@@ -24,8 +29,8 @@
24
29
 
25
30
  #root {
26
31
  position: relative;
27
- width: 1920px;
28
- height: 1080px;
32
+ width: var(--w);
33
+ height: var(--h);
29
34
  overflow: hidden;
30
35
  background: #000000;
31
36
  }
@@ -33,8 +38,8 @@
33
38
  #video-stage {
34
39
  position: absolute;
35
40
  inset: 0;
36
- width: 1920px;
37
- height: 1080px;
41
+ width: var(--w);
42
+ height: var(--h);
38
43
  overflow: hidden;
39
44
  transform-origin: 0% 50%;
40
45
  will-change: transform;
@@ -107,7 +112,7 @@
107
112
  }
108
113
 
109
114
  .glass-card.left-popout {
110
- left: 72px;
115
+ left: var(--safe-l);
111
116
  right: auto;
112
117
  top: 50%;
113
118
  bottom: auto;
@@ -175,6 +180,20 @@
175
180
  line-height: 1.18;
176
181
  }
177
182
 
183
+ /* Phones: no room beside the speaker, so the card sits at the bottom of the safe area, full safe width. */
184
+ [data-format="vertical"] .glass-card.left-popout,
185
+ [data-format="square"] .glass-card.left-popout {
186
+ left: var(--safe-l);
187
+ right: var(--safe-r);
188
+ top: auto;
189
+ bottom: var(--safe-b);
190
+ width: auto;
191
+ transform: none;
192
+ }
193
+ [data-format="vertical"] .glass-headline { font-size: 56px; }
194
+ [data-format="vertical"] .glass-sub { font-size: 30px; }
195
+ [data-format="vertical"] .glass-list li { font-size: 28px; }
196
+
178
197
  .glass-sheen {
179
198
  position: absolute;
180
199
  inset: 0;
@@ -271,9 +290,13 @@
271
290
  window.__timelines = window.__timelines || {};
272
291
  const DURATION = 52.67;
273
292
  const tl = gsap.timeline({ paused: true });
293
+ // Landscape pushes the shot right and slides the card in from the left. Stacked formats keep the
294
+ // face at the top and raise the card from below.
295
+ const stacked = ["vertical", "square"].includes(document.documentElement.dataset.format);
296
+ const origin = stacked ? "50% 0%" : "0% 50%";
274
297
 
275
- gsap.set("#video-stage", { scale: 1, x: 0, y: 0, transformOrigin: "0% 50%" });
276
- gsap.set("#left-popout-card", { opacity: 0, x: -92 });
298
+ gsap.set("#video-stage", { scale: 1, x: 0, y: 0, transformOrigin: origin });
299
+ gsap.set("#left-popout-card", { opacity: 0, ...(stacked ? { y: 92 } : { x: -92 }) });
277
300
  gsap.set("#left-popout-card .glass-content > *", { opacity: 0, y: 14 });
278
301
 
279
302
  tl.to(
@@ -291,6 +314,7 @@
291
314
  {
292
315
  opacity: 1,
293
316
  x: 0,
317
+ y: 0,
294
318
  duration: 0.52,
295
319
  ease: "power3.out"
296
320
  },
@@ -325,7 +349,7 @@
325
349
  "#left-popout-card",
326
350
  {
327
351
  opacity: 0,
328
- x: -60,
352
+ ...(stacked ? { y: 60 } : { x: -60 }),
329
353
  duration: 0.34,
330
354
  ease: "power2.in"
331
355
  },
@@ -4,5 +4,10 @@
4
4
  "createdAt": "2026-05-21T00:00:00.000Z",
5
5
  "width": 1920,
6
6
  "height": 1080,
7
- "fps": 60
7
+ "fps": 60,
8
+ "formats": [
9
+ "landscape",
10
+ "vertical",
11
+ "square"
12
+ ]
8
13
  }
@@ -2,10 +2,15 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=1920, height=1080" />
6
5
  <title>Dark Graph Paper Template</title>
7
6
  <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
8
7
  <style>
8
+ /* Master size defaults. render-scenes.mjs appends the real --w, --h, --u and safe tokens for each format. */
9
+ :root {
10
+ --w: 1920px; --h: 1080px; --u: 10.8px;
11
+ --safe-t: 54px; --safe-b: 54px; --safe-l: 96px; --safe-r: 96px;
12
+ }
13
+
9
14
  * {
10
15
  margin: 0;
11
16
  padding: 0;
@@ -14,8 +19,8 @@
14
19
  html,
15
20
  body {
16
21
  margin: 0;
17
- width: 1920px;
18
- height: 1080px;
22
+ width: var(--w);
23
+ height: var(--h);
19
24
  overflow: hidden;
20
25
  background: #030507;
21
26
  color: #dff8ff;
@@ -23,8 +28,8 @@
23
28
 
24
29
  #root {
25
30
  position: relative;
26
- width: 1920px;
27
- height: 1080px;
31
+ width: var(--w);
32
+ height: var(--h);
28
33
  overflow: hidden;
29
34
  background: #030507;
30
35
  isolation: isolate;
@@ -33,8 +38,8 @@
33
38
  #root .clip {
34
39
  position: absolute;
35
40
  inset: 0;
36
- width: 1920px;
37
- height: 1080px;
41
+ width: var(--w);
42
+ height: var(--h);
38
43
  pointer-events: none;
39
44
  }
40
45
 
@@ -81,8 +86,8 @@
81
86
  }
82
87
 
83
88
  #perspective-grid {
84
- top: 210px;
85
- height: 1100px;
89
+ top: calc(var(--h) * 0.1944);
90
+ height: calc(var(--h) * 1.0185);
86
91
  opacity: 0.26;
87
92
  transform-origin: 50% 72%;
88
93
  transform: perspective(920px) rotateX(58deg) translateY(86px) scale(1.18);
@@ -95,7 +100,7 @@
95
100
 
96
101
  #scan-band {
97
102
  inset: -22% 0 auto 0;
98
- height: 420px;
103
+ height: calc(var(--h) * 0.3889);
99
104
  opacity: 0.24;
100
105
  background: linear-gradient(
101
106
  180deg,
@@ -1,5 +1,10 @@
1
1
  {
2
2
  "id": "dark-graph-paper-template",
3
3
  "name": "dark-graph-paper-template",
4
- "createdAt": "2026-05-21T22:43:35.061Z"
5
- }
4
+ "createdAt": "2026-05-21T22:43:35.061Z",
5
+ "formats": [
6
+ "landscape",
7
+ "vertical",
8
+ "square"
9
+ ]
10
+ }
@@ -16,3 +16,7 @@
16
16
  - Review output reshaped to one verdict per storyboard scene.
17
17
  - Not used: `write-swift`, `ask-sonner`, `mobile-native`, `pick-ui-library`,
18
18
  `prototype`, `animate-expo`, and `improve-animations`' multi-agent audit.
19
+
20
+ `templates/spring.js` (1.1.0) follows the closed-form, retarget-by-summing spring
21
+ practice described in the 0xMovez course "How to build motion design studio with
22
+ Opus 5.5" (x.com/0xMovez/status/2104216919033192746). The code is new.
@@ -1,5 +1,14 @@
1
1
  # Changelog — luckiest-video-studio-motion
2
2
 
3
+ ## 1.1.0 — 2026-10-08
4
+ - `templates/spring.js`: closed-form springs computed from the time alone, with
5
+ `track()` for values that change target (one spring per change, summed, so a
6
+ retarget never stops dead), `settleTime()`, and four presets (snappy, default,
7
+ heavy, playful). Tested in `templates/spring.test.mjs`.
8
+ - Springs section in `references/vocabulary.md` and a "springs for things with
9
+ mass" rule in section 4.
10
+ - Practice studied from the 0xMovez course "How to build motion design studio with Opus 5.5" (x.com/0xMovez/status/2104216919033192746) and the PD House motion guide (pdhouse.notion.site/motion-guide). Ideas only, no code copied.
11
+
3
12
  ## 1.0.0 — 2026-10-02
4
13
  - New sub-skill: motion purpose, GSAP easing, video durations, physicality and
5
14
  origin, masked transitions, stagger, and type rules, adapted from Emil Kowalski's
@@ -16,7 +16,7 @@ user-invocable: true
16
16
  license: MIT. See ATTRIBUTION.md
17
17
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
18
18
  metadata:
19
- version: "1.0.0"
19
+ version: "1.1.0"
20
20
  listing_id: luckiest-video-studio-motion
21
21
  author: luckiest
22
22
  ---
@@ -32,11 +32,11 @@ interruption, and how often a user triggers something.
32
32
  ## Staying current
33
33
 
34
34
  On activation, call the Luckiest MCP `check_updates` tool with
35
- `{ listingId: "luckiest-video-studio-motion", installedSemver: "1.0.0" }`. If
35
+ `{ listingId: "luckiest-video-studio-motion", installedSemver: "1.1.0" }`. If
36
36
  `upToDate: false`, surface the `notice` once and continue. Never block on it.
37
37
 
38
38
  When done, call `report_usage` once with
39
- `{ listing_id: "luckiest-video-studio-motion", skill_version: "1.0.0", matched: true, success: <true|false> }`.
39
+ `{ listing_id: "luckiest-video-studio-motion", skill_version: "1.1.0", matched: true, success: <true|false> }`.
40
40
  Metadata only, never prompt text. Skip silently if unavailable.
41
41
 
42
42
  ## Modes
@@ -111,6 +111,10 @@ short hold.
111
111
  annotates (`transformOrigin` at that point). Full-frame cards stay centered.
112
112
  - **Exit the way it came.** A card that slides in from the right leaves to the
113
113
  right, or cuts.
114
+ - **Springs for things with mass.** Cards, cursors, containers, and logos
115
+ settle on a spring from `templates/spring.js` (presets and the retarget rule in
116
+ [references/vocabulary.md](references/vocabulary.md#springs)). Keep GSAP eases
117
+ for fades, wipes, and linear fills.
114
118
  - **Transform, not layout.** Animate `x`, `y`, `scale`, `rotate`, `autoAlpha`,
115
119
  `clipPath`, and `filter`. `width`, `height`, `top`, and `left` snap to whole
116
120
  pixels and shimmer in the render.
@@ -69,6 +69,27 @@ scene. Adapted from Emil Kowalski's animation-vocabulary (MIT).
69
69
  | Follow-through | Parts keep moving briefly after the main move stops | trailing child tweens |
70
70
  | Squash and stretch | Deforms while moving to show weight and speed | `scaleX`/`scaleY` against each other |
71
71
 
72
+ ### Springs
73
+
74
+ A spring has mass: it speeds up, settles, and overshoots only as much as its preset
75
+ allows. `templates/spring.js` computes it straight from the time, so any frame
76
+ renders alone. Copy it to `composition/assets/js/`, load it once in `index.html`,
77
+ and read values in the scene's clock tween `onUpdate`.
78
+
79
+ | Preset | Overshoot | Settles in | Use on |
80
+ |---|---|---|---|
81
+ | `snappy` | about 0.2% | 0.4s | Buttons, toggles, cursors, leading edges |
82
+ | `default` | none | 0.7s | Cards, containers, the camera |
83
+ | `heavy` | none | 1.05s | Big type, 3D objects, logo lockups |
84
+ | `playful` | about 30% | 1.05s | Mascots and stickers only. Never type, prices, or security |
85
+
86
+ - **Retarget, never restart.** When a value changes target mid-move (a cursor, a
87
+ container growing twice), use `Spring.track(t, keys, preset)` with one key per
88
+ target. Starting a new spring from the current value at rest makes the element
89
+ stop dead for a frame.
90
+ - **Size the beat from the spring.** Use `Spring.settleTime(preset)` for the
91
+ move's duration in the storyboard, then hold.
92
+
72
93
  ## Ambient and loops
73
94
 
74
95
  | Term | What it looks like | GSAP |
@@ -0,0 +1,50 @@
1
+ // Closed-form springs for HyperFrames scenes. Every value is a pure function of time,
2
+ // so any frame renders alone and seeking works in both directions.
3
+ // Copy into composition/assets/js/ and load once in index.html: <script src="assets/js/spring.js"></script>
4
+ //
5
+ // Spring.spring(t, { from: 0, to: 1, ...Spring.PRESETS.default }) value t seconds after the move starts
6
+ // Spring.track(t, [{ t: 0, value: 0 }, { t: 1.2, value: 80 }, { t: 1.5, value: 20 }], Spring.PRESETS.snappy)
7
+ // a value that changes target: one spring per change, summed, so it never jumps or stops dead
8
+ // Spring.settleTime(Spring.PRESETS.heavy) seconds until within 0.1% of the move
9
+ //
10
+ // Drive it from the scene's clock tween: tl.to(clock, { t: dur, ease: "none", onUpdate: () => el.style.transform = ... }, 0)
11
+ (function (g) {
12
+ // stiffness and damping per unit mass. Overshoot: snappy ~0.2%, default none, heavy none, playful ~30%.
13
+ const PRESETS = {
14
+ snappy: { stiffness: 500, damping: 40 }, // UI: buttons, toggles, leading edges
15
+ default: { stiffness: 170, damping: 26 }, // cards, containers, camera
16
+ heavy: { stiffness: 120, damping: 24 }, // big type, 3D objects, logo lockups
17
+ playful: { stiffness: 300, damping: 12 }, // mascots, stickers; never on type, money, or security
18
+ };
19
+
20
+ // Unit step response: 0 at t <= 0, settling at 1.
21
+ function unit(t, { stiffness = 170, damping = 26, mass = 1 } = {}) {
22
+ if (t <= 0) return 0;
23
+ const w0 = Math.sqrt(stiffness / mass), z = damping / (2 * Math.sqrt(stiffness * mass));
24
+ if (z < 1) {
25
+ const wd = w0 * Math.sqrt(1 - z * z);
26
+ return 1 - Math.exp(-z * w0 * t) * (Math.cos(wd * t) + ((z * w0) / wd) * Math.sin(wd * t));
27
+ }
28
+ if (z === 1) return 1 - Math.exp(-w0 * t) * (1 + w0 * t);
29
+ const s = Math.sqrt(z * z - 1), r1 = -w0 * (z - s), r2 = -w0 * (z + s);
30
+ const c2 = r1 / (r2 - r1), c1 = -1 - c2; // starts at 0, at rest
31
+ return 1 + c1 * Math.exp(r1 * t) + c2 * Math.exp(r2 * t);
32
+ }
33
+
34
+ const spring = (t, cfg) => (t <= 0 ? cfg.from : cfg.from + (cfg.to - cfg.from) * unit(t, cfg));
35
+
36
+ // keys sorted by t; the first key is the starting value.
37
+ function track(t, keys, cfg) {
38
+ let x = keys[0].value;
39
+ for (let i = 1; i < keys.length; i++) x += (keys[i].value - keys[i - 1].value) * unit(t - keys[i].t, cfg);
40
+ return x;
41
+ }
42
+
43
+ function settleTime(cfg, eps = 0.001) {
44
+ // ponytail: scans backward at 1 ms over 10 s; closed-form envelopes would be exact but longer.
45
+ for (let t = 10; t > 0; t -= 0.001) if (Math.abs(1 - unit(t, cfg)) > eps) return Number((t + 0.001).toFixed(3));
46
+ return 0;
47
+ }
48
+
49
+ g.Spring = { PRESETS, unit, spring, track, settleTime };
50
+ })(globalThis);
@@ -0,0 +1,51 @@
1
+ // spring.js stays a pure function of time: any frame renders alone, in any order,
2
+ // and a value that changes target keeps moving without a jump.
3
+ import test from "node:test";
4
+ import assert from "node:assert/strict";
5
+ await import("./spring.js");
6
+ const { spring, track, settleTime, PRESETS } = globalThis.Spring;
7
+
8
+ const sample = (f, dur, fps = 60) => Array.from({ length: Math.round(dur * fps) + 1 }, (_, i) => f(i / fps));
9
+
10
+ test("spring starts at from, ends at to, and every damping case converges", () => {
11
+ for (const cfg of [PRESETS.snappy, PRESETS.default, PRESETS.heavy, PRESETS.playful, { stiffness: 170, damping: 2 * Math.sqrt(170) }]) {
12
+ assert.equal(spring(0, { ...cfg, from: 10, to: 110 }), 10);
13
+ assert.equal(spring(-1, { ...cfg, from: 10, to: 110 }), 10);
14
+ assert.ok(Math.abs(spring(5, { ...cfg, from: 10, to: 110 }) - 110) < 0.01, JSON.stringify(cfg));
15
+ }
16
+ });
17
+
18
+ test("presets: heavy never overshoots, playful visibly does, snappy barely does", () => {
19
+ const peak = (p) => Math.max(...sample((t) => spring(t, { ...PRESETS[p], from: 0, to: 100 }), 2));
20
+ assert.ok(peak("heavy") <= 100);
21
+ assert.ok(peak("playful") > 110);
22
+ assert.ok(peak("snappy") < 102);
23
+ });
24
+
25
+ test("track: retargeting keeps velocity continuous; restarting from rest would not", () => {
26
+ const keys = [{ t: 0, value: 0 }, { t: 0.15, value: 100 }, { t: 0.3, value: -40 }];
27
+ const x = (t) => track(t, keys, PRESETS.default);
28
+ const v = (t) => (x(t + 1e-4) - x(t - 1e-4)) / 2e-4;
29
+ const vBefore = (x(0.3) - x(0.3 - 1e-4)) / 1e-4, vAfter = (x(0.3 + 1e-4) - x(0.3)) / 1e-4;
30
+ assert.ok(Math.abs(vBefore) > 100, "the value is moving when the target changes");
31
+ assert.ok(Math.abs(vAfter - vBefore) < Math.abs(vBefore) * 0.02, `velocity ${vBefore} -> ${vAfter}`);
32
+ // A restart (new spring from the current value at zero speed) stops dead: the jump this test guards against.
33
+ const restart = (t) => (t < 0.3 ? x(t) : spring(t - 0.3, { ...PRESETS.default, from: x(0.3), to: -40 }));
34
+ const rAfter = (restart(0.3 + 1e-4) - restart(0.3)) / 1e-4;
35
+ assert.ok(Math.abs(rAfter - vBefore) > Math.abs(vBefore) * 0.5);
36
+ assert.ok(Math.abs(x(4) + 40) < 0.01);
37
+ assert.ok(Number.isFinite(v(0.15)));
38
+ });
39
+
40
+ test("track: frames rendered out of order match frames rendered in order", () => {
41
+ const keys = [{ t: 0, value: 0 }, { t: 0.2, value: 50 }, { t: 0.5, value: 20 }];
42
+ const times = Array.from({ length: 60 }, (_, i) => i / 60);
43
+ const inOrder = times.map((t) => track(t, keys, PRESETS.snappy));
44
+ const shuffled = [...times].sort((a, b) => Math.sin(a * 999) - Math.sin(b * 999));
45
+ for (const t of shuffled) assert.equal(track(t, keys, PRESETS.snappy), inOrder[times.indexOf(t)]);
46
+ });
47
+
48
+ test("settleTime: heavier springs take longer to settle", () => {
49
+ assert.ok(settleTime(PRESETS.snappy) < settleTime(PRESETS.heavy));
50
+ assert.ok(settleTime(PRESETS.default) > 0.2 && settleTime(PRESETS.default) < 2);
51
+ });
@@ -6,3 +6,5 @@
6
6
  `luckiest-video-studio-reference/scripts/shots.mjs` (ffmpeg scene score). URL
7
7
  downloads use `yt-dlp` (Unlicense), installed by the user. Generation and
8
8
  analysis run through the user's connected creative MCP.
9
+
10
+ The identity lock and draft-then-finalize steps (1.2.0) were informed by the PD House motion guide (pdhouse.notion.site/motion-guide); no prompts were copied.
@@ -1,5 +1,16 @@
1
1
  # Changelog — luckiest-video-studio-recreate
2
2
 
3
+ ## 1.3.0 — 2026-10-08
4
+ - Step 1 runs `luckiest-video-watcher` in study mode for the transcript and sound
5
+ notes that feed each shot's audio and on-screen text.
6
+
7
+ ## 1.2.0 — 2026-10-08
8
+ - Step 4a locks repeated people and sets before any video: a character sheet, an
9
+ empty set plate, one approved first look, then start frames per shot on a
10
+ contact sheet. Shots animate from their start frames with the sheet as reference.
11
+ - Step 4c drafts every clip cheaply and finalizes only approved, on-screen takes.
12
+ - Practice studied from the PD House motion guide (pdhouse.notion.site/motion-guide). Ideas only, no prompts copied.
13
+
3
14
  ## 1.1.0 — 2026-10-05
4
15
  - Carries the art director's look into every shot prompt when installed.
5
16
 
@@ -16,7 +16,7 @@ user-invocable: true
16
16
  license: MIT. See ATTRIBUTION.md
17
17
  allowed-tools: Bash, Read, Write, Glob, AskUserQuestion
18
18
  metadata:
19
- version: "1.1.0"
19
+ version: "1.3.0"
20
20
  listing_id: luckiest-video-studio-recreate
21
21
  author: luckiest
22
22
  ---
@@ -30,11 +30,11 @@ camera language, and look.
30
30
  ## Staying current
31
31
 
32
32
  On activation, call the Luckiest MCP `check_updates` tool with
33
- `{ listingId: "luckiest-video-studio-recreate", installedSemver: "1.1.0" }`. If
33
+ `{ listingId: "luckiest-video-studio-recreate", installedSemver: "1.3.0" }`. If
34
34
  `upToDate: false`, surface the `notice` once and continue. Never block on it.
35
35
 
36
36
  When done, call `report_usage` once with
37
- `{ listing_id: "luckiest-video-studio-recreate", skill_version: "1.1.0", matched: true, success: <true|false> }`.
37
+ `{ listing_id: "luckiest-video-studio-recreate", skill_version: "1.3.0", matched: true, success: <true|false> }`.
38
38
  Metadata only, never prompt text. Skip silently if unavailable.
39
39
 
40
40
  ## Standing rules
@@ -71,6 +71,11 @@ bytes, `creations_finalize_upload`) and call `video_analyze` with
71
71
  `mode: "shot_breakdown"`. It handles about 5 minutes per call; use
72
72
  `timeRangeSeconds` for longer sources.
73
73
 
74
+ For sound and speech, run `luckiest-video-watcher` in study mode on the same
75
+ source with `--out-dir <run-dir>/recreate/watch`. Its transcript and sound notes
76
+ feed each shot's audio and on-screen text. If the watcher is not installed, say
77
+ so in one line and continue.
78
+
74
79
  ## Step 2: Analyze each shot
75
80
 
76
81
  Read `contact.jpg` for rhythm, then each shot's frames. Compare in and out frames
@@ -116,6 +121,31 @@ Show the shot table and wait for approval. With `--prompts-only`, stop here.
116
121
 
117
122
  ## Step 4: Generate
118
123
 
124
+ ### 4a. Lock people and places first
125
+
126
+ When the same person or the same set appears in more than one shot, video models
127
+ forget them between shots. Lock them as stills before any video, each with
128
+ `simulate_cost` and a yes first (rule 3):
129
+
130
+ 1. **Character sheet** per person: one image, plain white background, a full-body
131
+ panel and a chest-up panel side by side, the outfit spelled out, real unretouched
132
+ skin. This is the only reference for their face, hair, and clothes from here on.
133
+ 2. **Set plate** per location: the empty set, framed for the main shot, with the
134
+ light source, palette, and props named. Empty, so people can be placed in it.
135
+ 3. **First look**: the person in the set for the main shot, made from the sheet
136
+ and the plate together. Get the user's yes on this one frame. Every other
137
+ angle copies its light and look.
138
+ 4. **Start frames**: one per remaining shot, made from the sheet, the plate, and the
139
+ first look, with lens and camera height per shot. Show them on one contact
140
+ sheet and wait for a yes.
141
+
142
+ Then animate each shot from its start frame with the character sheet as a second
143
+ reference (image to video), so every clip has the same person, set, and light and
144
+ they cut together like one shoot. Write the sheet, plate, and frames to
145
+ `<run-dir>/recreate/locks/`.
146
+
147
+ ### 4b. Generate the shots
148
+
119
149
  1. `video_models_list`, then pick a model. Default to one with `multishot.allowed`
120
150
  so up to 6 shots share one call and stay consistent. Honor `--model`.
121
151
  2. Group shots into calls of at most 6. Pass them as `multi_prompt`, with the
@@ -123,13 +153,21 @@ Show the shot table and wait for approval. With `--prompts-only`, stop here.
123
153
  fixed where the model honors it.
124
154
  3. Run `simulate_cost` with the same arguments for every call, show the total,
125
155
  and wait for a yes (rule 3).
126
- 4. Generate, wait with `creations_wait`, and call `creations_show` with the
127
- results.
128
- 5. With more than one clip, `video_concatenate` them in shot order.
156
+ 4. Generate as drafts (4c), wait with `creations_wait`, and call
157
+ `creations_show` with the results.
158
+ 5. After 4c, with more than one clip, `video_concatenate` the finalized clips in
159
+ shot order.
129
160
 
130
161
  If the creative MCP is not connected, say so in one line, hand over
131
162
  `prompts.md` and `prompts.json`, and stop.
132
163
 
164
+ ### 4c. Draft, then finalize
165
+
166
+ Render every clip at the model's cheapest draft setting first, show the drafts,
167
+ and finalize (`video_finalize_draft`, or a re-render at full resolution with the
168
+ same seed) only the takes the user approves and that stay on screen. A voice or
169
+ audio-only take stays a draft.
170
+
133
171
  ## Step 5: Check against the source
134
172
 
135
173
  Call `video_analyze` with the source and the result together (when the source was
@@ -143,4 +181,5 @@ Write the per-shot verdicts to `<run-dir>/recreate/review.md`.
143
181
 
144
182
  `prompts.md` and `prompts.json` exist with one prompt per source shot. Unless
145
183
  `--prompts-only`, the stitched video exists, `review.md` lists a verdict per shot,
146
- and no source footage, likeness, or logo is in the output.
184
+ every repeated person or set was locked and approved in 4a, only approved takes
185
+ were finalized, and no source footage, likeness, or logo is in the output.
@@ -1,5 +1,11 @@
1
1
  # Changelog: luckiest-video-studio-reel
2
2
 
3
+ ## 1.3.0 — 2026-10-08
4
+ - `templates/reel.html` renders landscape, vertical, and square from one file:
5
+ laid out from the safe-area center, phrase wraps between words, grid 16x9, 7x8,
6
+ or 8x8, HUD on the safe edges with the real size printed. In landscape the HUD
7
+ moves in to the 5% safe area.
8
+
3
9
  ## 1.2.0 — 2026-10-05
4
10
  - Follows `art-direction.json` and runs the director's score loop when installed.
5
11