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
@@ -16,7 +16,7 @@
16
16
  html, body { margin: 0; }
17
17
 
18
18
  #t1-stat-meter {
19
- position: absolute; inset: 0; width: 1920px; height: 1080px;
19
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
20
20
  background: var(--canvas); color: var(--text);
21
21
  font-family: var(--font-display); overflow: hidden;
22
22
  }
@@ -53,7 +53,7 @@
53
53
  #t1-stat-meter .stat {
54
54
  font-family: var(--font-display);
55
55
  font-weight: var(--wt-black);
56
- font-size: 200px;
56
+ font-size: calc(200px * var(--type));
57
57
  line-height: 1;
58
58
  letter-spacing: var(--track-tight);
59
59
  background: linear-gradient(160deg, #ffffff 15%, rgba(var(--accent-rgb),0.85) 82%);
@@ -115,7 +115,7 @@
115
115
  width: 100%; padding: 0 4px;
116
116
  }
117
117
  #t1-stat-meter .tick {
118
- font-family: var(--font-mono); font-size: 18px;
118
+ font-family: var(--font-mono); font-size: calc(18px * var(--type));
119
119
  color: var(--text-faint); letter-spacing: 0.06em;
120
120
  }
121
121
 
@@ -134,7 +134,7 @@
134
134
  }
135
135
 
136
136
  #t1-stat-meter .source {
137
- position: absolute; left: var(--pad); bottom: 44px;
137
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
138
138
  font-family: var(--font-mono); font-size: var(--size-tiny);
139
139
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
140
140
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -149,6 +149,11 @@
149
149
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
150
150
  pointer-events: none; z-index: 7;
151
151
  }
152
+
153
+ /* Vertical and square: the stack centers inside the safe area; the meter takes the safe width. */
154
+ [data-format="vertical"] #t1-stat-meter .content, [data-format="square"] #t1-stat-meter .content { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 40px) var(--safe-l); padding-bottom: 0; }
155
+ [data-format="vertical"] #t1-stat-meter .kicker, [data-format="square"] #t1-stat-meter .kicker { text-align: center; }
156
+ [data-format="vertical"] #t1-stat-meter .meter-assembly, [data-format="square"] #t1-stat-meter .meter-assembly { width: calc(100% - 24px); }
152
157
  </style>
153
158
  </head>
154
159
  <body>
@@ -15,7 +15,7 @@
15
15
  html, body { margin: 0; }
16
16
 
17
17
  #t1-stat-mile {
18
- position: absolute; inset: 0; width: 1920px; height: 1080px;
18
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
19
19
  background: var(--canvas); color: var(--text);
20
20
  font-family: var(--font-display); overflow: hidden;
21
21
  }
@@ -94,7 +94,7 @@
94
94
  #t1-stat-mile .tick-label {
95
95
  position: absolute; top: calc(50% + 22px);
96
96
  transform: translateX(-50%);
97
- font-family: var(--font-mono); font-size: 18px;
97
+ font-family: var(--font-mono); font-size: calc(18px * var(--type));
98
98
  color: var(--text-faint); letter-spacing: 0.08em;
99
99
  }
100
100
 
@@ -131,7 +131,7 @@
131
131
  }
132
132
 
133
133
  #t1-stat-mile .source {
134
- position: absolute; left: var(--pad); bottom: 44px;
134
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
135
135
  font-family: var(--font-mono); font-size: var(--size-tiny);
136
136
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
137
137
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -146,6 +146,12 @@
146
146
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
147
147
  pointer-events: none; z-index: 7;
148
148
  }
149
+
150
+ /* Vertical and square: the stack centers inside the safe area; the track takes the safe width. */
151
+ [data-format="vertical"] #t1-stat-mile .content, [data-format="square"] #t1-stat-mile .content { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 40px) var(--safe-l); }
152
+ [data-format="vertical"] #t1-stat-mile .kicker, [data-format="square"] #t1-stat-mile .kicker { text-align: center; }
153
+ [data-format="vertical"] #t1-stat-mile .stat { font-size: calc(220px * var(--type)); }
154
+ [data-format="vertical"] #t1-stat-mile .track-wrap, [data-format="square"] #t1-stat-mile .track-wrap { width: calc(100% - 60px); }
149
155
  </style>
150
156
  </head>
151
157
  <body>
@@ -17,7 +17,7 @@
17
17
  html, body { margin: 0; }
18
18
 
19
19
  #t1-st-money {
20
- position: absolute; inset: 0; width: 1920px; height: 1080px;
20
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
21
21
  background: var(--canvas); color: var(--text);
22
22
  font-family: var(--font-display); overflow: hidden;
23
23
  }
@@ -76,7 +76,7 @@
76
76
  #t1-st-money .prefix {
77
77
  font-family: var(--font-display);
78
78
  font-weight: var(--wt-black);
79
- font-size: 100px;
79
+ font-size: calc(100px * var(--type));
80
80
  line-height: 1;
81
81
  letter-spacing: var(--track-tight);
82
82
  align-self: flex-start;
@@ -104,7 +104,7 @@
104
104
  #t1-st-money .suffix {
105
105
  font-family: var(--font-display);
106
106
  font-weight: var(--wt-black);
107
- font-size: 140px;
107
+ font-size: calc(140px * var(--type));
108
108
  line-height: 1;
109
109
  letter-spacing: var(--track-tight);
110
110
  align-self: flex-end;
@@ -128,7 +128,7 @@
128
128
  }
129
129
 
130
130
  #t1-st-money .source {
131
- position: absolute; left: var(--pad); bottom: 44px;
131
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
132
132
  font-family: var(--font-mono); font-size: var(--size-tiny);
133
133
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
134
134
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -143,6 +143,18 @@
143
143
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
144
144
  pointer-events: none; z-index: 7;
145
145
  }
146
+
147
+ /* Vertical and square: the stack centers inside the safe area; the plate and its figures shrink to the width. */
148
+ [data-format="vertical"] #t1-st-money .content, [data-format="square"] #t1-st-money .content { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 40px) var(--safe-l); padding-bottom: 0; }
149
+ [data-format="vertical"] #t1-st-money .kicker, [data-format="square"] #t1-st-money .kicker { text-align: center; }
150
+ [data-format="vertical"] #t1-st-money .stat-plate { padding: 36px 48px 40px; }
151
+ [data-format="vertical"] #t1-st-money .prefix { font-size: calc(64px * var(--type)); margin-top: 20px; }
152
+ [data-format="vertical"] #t1-st-money .stat { font-size: calc(190px * var(--type)); }
153
+ [data-format="vertical"] #t1-st-money .suffix { font-size: calc(90px * var(--type)); margin-bottom: 10px; }
154
+ [data-format="square"] #t1-st-money .stat-plate { padding: 40px 64px 44px; }
155
+ [data-format="square"] #t1-st-money .prefix { font-size: 84px; }
156
+ [data-format="square"] #t1-st-money .stat { font-size: 240px; }
157
+ [data-format="square"] #t1-st-money .suffix { font-size: 110px; }
146
158
  </style>
147
159
  </head>
148
160
  <body>
@@ -14,7 +14,7 @@
14
14
  html, body { margin: 0; }
15
15
 
16
16
  #t1-stat-mult {
17
- position: absolute; inset: 0; width: 1920px; height: 1080px;
17
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
18
18
  background: var(--canvas); color: var(--text);
19
19
  font-family: var(--font-display); overflow: hidden;
20
20
  }
@@ -67,7 +67,7 @@
67
67
  #t1-stat-mult .stat-num {
68
68
  font-family: var(--font-display);
69
69
  font-weight: var(--wt-black);
70
- font-size: 280px;
70
+ font-size: calc(280px * var(--type));
71
71
  line-height: 1;
72
72
  letter-spacing: var(--track-tight);
73
73
  background: linear-gradient(160deg, #ffffff 12%, rgba(var(--accent-rgb),0.85) 80%);
@@ -80,7 +80,7 @@
80
80
  #t1-stat-mult .stat-x {
81
81
  font-family: var(--font-display);
82
82
  font-weight: var(--wt-black);
83
- font-size: 160px;
83
+ font-size: calc(160px * var(--type));
84
84
  line-height: 1;
85
85
  letter-spacing: -0.02em;
86
86
  color: var(--accent);
@@ -102,7 +102,7 @@
102
102
  }
103
103
 
104
104
  #t1-stat-mult .source {
105
- position: absolute; left: var(--pad); bottom: 44px;
105
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
106
106
  font-family: var(--font-mono); font-size: var(--size-tiny);
107
107
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
108
108
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -117,6 +117,14 @@
117
117
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
118
118
  pointer-events: none; z-index: 7;
119
119
  }
120
+
121
+ /* Vertical and square: the stack and its halo center inside the safe area; vertical figures sized to the width. */
122
+ [data-format="vertical"] #t1-stat-mult .content, [data-format="square"] #t1-stat-mult .content { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 40px) var(--safe-l); padding-bottom: 0; }
123
+ [data-format="vertical"] #t1-stat-mult .kicker, [data-format="square"] #t1-stat-mult .kicker { text-align: center; }
124
+ [data-format="vertical"] #t1-stat-mult .halo, [data-format="square"] #t1-stat-mult .halo { top: calc(var(--safe-t) + (var(--h) - var(--safe-t) - var(--safe-b)) / 2); }
125
+ [data-format="vertical"] #t1-stat-mult .halo { width: 760px; height: 760px; }
126
+ [data-format="vertical"] #t1-stat-mult .stat-num { font-size: calc(220px * var(--type)); }
127
+ [data-format="vertical"] #t1-stat-mult .stat-x { font-size: calc(130px * var(--type)); padding-bottom: 14px; }
120
128
  </style>
121
129
  </head>
122
130
  <body>
@@ -17,7 +17,7 @@
17
17
  html, body { margin: 0; }
18
18
 
19
19
  #t1-stat-mring {
20
- position: absolute; inset: 0; width: 1920px; height: 1080px;
20
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
21
21
  background: var(--canvas); color: var(--text);
22
22
  font-family: var(--font-display); overflow: hidden;
23
23
  }
@@ -82,7 +82,7 @@
82
82
  #t1-stat-mring .stat {
83
83
  font-family: var(--font-display);
84
84
  font-weight: var(--wt-black);
85
- font-size: 100px;
85
+ font-size: calc(100px * var(--type));
86
86
  line-height: 1;
87
87
  letter-spacing: var(--track-tight);
88
88
  background: linear-gradient(150deg, #ffffff 15%, rgba(var(--accent-rgb), 0.85) 80%);
@@ -136,7 +136,7 @@
136
136
  }
137
137
 
138
138
  #t1-stat-mring .source {
139
- position: absolute; left: var(--pad); bottom: 44px;
139
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
140
140
  font-family: var(--font-mono); font-size: var(--size-tiny);
141
141
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
142
142
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -151,6 +151,13 @@
151
151
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
152
152
  pointer-events: none; z-index: 7;
153
153
  }
154
+
155
+ /* Vertical and square: the stack centers inside the safe area; smaller rings, and the legend wraps in vertical. */
156
+ [data-format="vertical"] #t1-stat-mring .stage, [data-format="square"] #t1-stat-mring .stage { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 40px) var(--safe-l); gap: 36px; padding-bottom: 0; }
157
+ [data-format="vertical"] #t1-stat-mring .kicker, [data-format="square"] #t1-stat-mring .kicker { text-align: center; }
158
+ [data-format="vertical"] #t1-stat-mring .rings-container, [data-format="vertical"] #t1-stat-mring .rings-svg { width: 480px; height: 480px; }
159
+ [data-format="square"] #t1-stat-mring .rings-container, [data-format="square"] #t1-stat-mring .rings-svg { width: 500px; height: 500px; }
160
+ [data-format="vertical"] #t1-stat-mring .legend { flex-wrap: wrap; justify-content: center; gap: 16px 32px; }
154
161
  </style>
155
162
  </head>
156
163
  <body>
@@ -16,7 +16,7 @@
16
16
  html, body { margin: 0; }
17
17
 
18
18
  #t1-stat-needle {
19
- position: absolute; inset: 0; width: 1920px; height: 1080px;
19
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
20
20
  background: var(--canvas); color: var(--text);
21
21
  font-family: var(--font-display); overflow: hidden;
22
22
  }
@@ -61,7 +61,7 @@
61
61
  }
62
62
  #t1-stat-needle .unit {
63
63
  font-family: var(--font-display); font-weight: var(--wt-bold);
64
- font-size: 96px; line-height: 1; letter-spacing: var(--track-tight);
64
+ font-size: calc(96px * var(--type)); line-height: 1; letter-spacing: var(--track-tight);
65
65
  color: rgba(var(--accent-rgb), 0.75); text-shadow: var(--textglow-accent);
66
66
  margin-left: 12px; align-self: flex-start; padding-top: 28px;
67
67
  }
@@ -82,7 +82,7 @@
82
82
  }
83
83
 
84
84
  #t1-stat-needle .source {
85
- position: absolute; left: var(--pad); bottom: 44px;
85
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
86
86
  font-family: var(--font-mono); font-size: var(--size-tiny);
87
87
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
88
88
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -97,6 +97,13 @@
97
97
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
98
98
  pointer-events: none; z-index: 7;
99
99
  }
100
+
101
+ /* Vertical and square: the stack centers inside the safe area; the gauge takes the safe width. */
102
+ [data-format="vertical"] #t1-stat-needle .content, [data-format="square"] #t1-stat-needle .content { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 40px) var(--safe-l); padding-bottom: 0; }
103
+ [data-format="vertical"] #t1-stat-needle .kicker, [data-format="square"] #t1-stat-needle .kicker { text-align: center; }
104
+ [data-format="vertical"] #t1-stat-needle .gauge-svg, [data-format="square"] #t1-stat-needle .gauge-svg { width: 100%; height: auto; aspect-ratio: 1500 / 180; }
105
+ [data-format="vertical"] #t1-stat-needle .stat-wrap, [data-format="square"] #t1-stat-needle .stat-wrap { margin-bottom: 48px; }
106
+ [data-format="vertical"] #t1-stat-needle .label, [data-format="square"] #t1-stat-needle .label { margin-top: 40px; }
100
107
  </style>
101
108
  </head>
102
109
  <body>
@@ -14,7 +14,7 @@
14
14
  html, body { margin: 0; }
15
15
 
16
16
  #t1-stat-nodes {
17
- position: absolute; inset: 0; width: 1920px; height: 1080px;
17
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
18
18
  background: var(--canvas); color: var(--text);
19
19
  font-family: var(--font-display); overflow: hidden;
20
20
  }
@@ -32,7 +32,7 @@
32
32
 
33
33
  /* ── SVG graph layer ── */
34
34
  #t1-stat-nodes .node-svg {
35
- position: absolute; inset: 0; width: 1920px; height: 1080px; z-index: 3;
35
+ position: absolute; inset: 0; width: var(--w); height: var(--h); z-index: 3;
36
36
  overflow: visible;
37
37
  }
38
38
 
@@ -75,14 +75,14 @@
75
75
 
76
76
  /* node-label chips (positioned absolutely via inline style) */
77
77
  #t1-stat-nodes .node-label {
78
- position: absolute; font-family: var(--font-mono); font-size: 20px;
78
+ position: absolute; font-family: var(--font-mono); font-size: calc(20px * var(--type));
79
79
  font-weight: var(--wt-bold); letter-spacing: 0.10em;
80
80
  text-transform: uppercase; color: var(--text-dim);
81
81
  white-space: nowrap;
82
82
  }
83
83
 
84
84
  #t1-stat-nodes .source {
85
- position: absolute; left: var(--pad); bottom: 44px;
85
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
86
86
  font-family: var(--font-mono); font-size: var(--size-tiny);
87
87
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
88
88
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -97,6 +97,47 @@
97
97
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
98
98
  pointer-events: none; z-index: 7;
99
99
  }
100
+ /* Vertical and square: content centers in the safe box; the graph stays at scale 1 with the
101
+ hub behind the stat, and the five nodes move into the safe box corners (CSS cx/cy/d). */
102
+ [data-format="vertical"] #t1-stat-nodes .content, [data-format="square"] #t1-stat-nodes .content {
103
+ inset: var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l); padding-bottom: 0; gap: 36px;
104
+ }
105
+ [data-format="vertical"] #t1-stat-nodes .kicker, [data-format="square"] #t1-stat-nodes .kicker { text-align: center; }
106
+ [data-format="vertical"] #t1-stat-nodes .label, [data-format="square"] #t1-stat-nodes .label { max-width: 100%; }
107
+ [data-format="vertical"] #t1-stat-nodes .stat { font-size: calc(250px * var(--type)); }
108
+ [data-format="vertical"] #t1-stat-nodes .content { top: calc(var(--safe-t) + 110px); bottom: calc(var(--safe-b) + 110px); }
109
+ [data-format="vertical"] #t1-stat-nodes .node-svg { inset: auto; left: -420px; top: 228px; width: 1920px; height: 1080px; }
110
+ [data-format="square"] #t1-stat-nodes .node-svg { inset: auto; left: -420px; top: 0; width: 1920px; height: 1080px; }
111
+ [data-format="vertical"] #t1-stat-nodes #nd-l1 { d: path("M610 92 L960 540"); }
112
+ [data-format="vertical"] #t1-stat-nodes #nd-l2 { d: path("M610 942 L960 540"); }
113
+ [data-format="vertical"] #t1-stat-nodes #nd-l3 { d: path("M960 72 L960 540"); }
114
+ [data-format="vertical"] #t1-stat-nodes #nd-l4 { d: path("M1270 92 L960 540"); }
115
+ [data-format="vertical"] #t1-stat-nodes #nd-l5 { d: path("M1270 942 L960 540"); }
116
+ [data-format="vertical"] #t1-stat-nodes #nd-n1 { cx: 610px; cy: 92px; }
117
+ [data-format="vertical"] #t1-stat-nodes #nd-n2 { cx: 610px; cy: 942px; }
118
+ [data-format="vertical"] #t1-stat-nodes #nd-n3 { cx: 960px; cy: 72px; }
119
+ [data-format="vertical"] #t1-stat-nodes #nd-n4 { cx: 1270px; cy: 92px; }
120
+ [data-format="vertical"] #t1-stat-nodes #nd-n5 { cx: 1270px; cy: 942px; }
121
+ [data-format="vertical"] #t1-stat-nodes #nd-lbl1 { left: 150px !important; top: 352px !important; }
122
+ [data-format="vertical"] #t1-stat-nodes #nd-lbl2 { left: 224px !important; top: 1158px !important; }
123
+ [data-format="vertical"] #t1-stat-nodes #nd-lbl3 { left: 580px !important; top: 290px !important; }
124
+ [data-format="vertical"] #t1-stat-nodes #nd-lbl4 { left: 790px !important; top: 352px !important; }
125
+ [data-format="vertical"] #t1-stat-nodes #nd-lbl5 { left: 740px !important; top: 1158px !important; }
126
+ [data-format="square"] #t1-stat-nodes #nd-l1 { d: path("M580 170 L960 540"); }
127
+ [data-format="square"] #t1-stat-nodes #nd-l2 { d: path("M580 920 L960 540"); }
128
+ [data-format="square"] #t1-stat-nodes #nd-l3 { d: path("M960 110 L960 540"); }
129
+ [data-format="square"] #t1-stat-nodes #nd-l4 { d: path("M1340 170 L960 540"); }
130
+ [data-format="square"] #t1-stat-nodes #nd-l5 { d: path("M1340 920 L960 540"); }
131
+ [data-format="square"] #t1-stat-nodes #nd-n1 { cx: 580px; cy: 170px; }
132
+ [data-format="square"] #t1-stat-nodes #nd-n2 { cx: 580px; cy: 920px; }
133
+ [data-format="square"] #t1-stat-nodes #nd-n3 { cx: 960px; cy: 110px; }
134
+ [data-format="square"] #t1-stat-nodes #nd-n4 { cx: 1340px; cy: 170px; }
135
+ [data-format="square"] #t1-stat-nodes #nd-n5 { cx: 1340px; cy: 920px; }
136
+ [data-format="square"] #t1-stat-nodes #nd-lbl1 { left: 120px !important; top: 202px !important; }
137
+ [data-format="square"] #t1-stat-nodes #nd-lbl2 { left: 192px !important; top: 908px !important; }
138
+ [data-format="square"] #t1-stat-nodes #nd-lbl3 { left: 580px !important; top: 98px !important; }
139
+ [data-format="square"] #t1-stat-nodes #nd-lbl4 { left: 880px !important; top: 202px !important; }
140
+ [data-format="square"] #t1-stat-nodes #nd-lbl5 { left: 820px !important; top: 908px !important; }
100
141
  </style>
101
142
  </head>
102
143
  <body>
@@ -123,15 +164,15 @@
123
164
 
124
165
  <!-- 5 spoke lines from satellite nodes to center (960,540) -->
125
166
  <!-- each given a unique id for dash-draw animation -->
126
- <line id="nd-l1" x1="310" y1="260" x2="960" y2="540"
167
+ <path id="nd-l1" d="M310 260 L960 540"
127
168
  stroke="url(#lineGrad)" stroke-width="1.5" stroke-dasharray="0 800"/>
128
- <line id="nd-l2" x1="310" y1="820" x2="960" y2="540"
169
+ <path id="nd-l2" d="M310 820 L960 540"
129
170
  stroke="url(#lineGrad)" stroke-width="1.5" stroke-dasharray="0 800"/>
130
- <line id="nd-l3" x1="680" y1="150" x2="960" y2="540"
171
+ <path id="nd-l3" d="M680 150 L960 540"
131
172
  stroke="url(#lineGrad)" stroke-width="1.5" stroke-dasharray="0 800"/>
132
- <line id="nd-l4" x1="1610" y1="260" x2="960" y2="540"
173
+ <path id="nd-l4" d="M1610 260 L960 540"
133
174
  stroke="url(#lineGrad)" stroke-width="1.5" stroke-dasharray="0 800"/>
134
- <line id="nd-l5" x1="1610" y1="820" x2="960" y2="540"
175
+ <path id="nd-l5" d="M1610 820 L960 540"
135
176
  stroke="url(#lineGrad)" stroke-width="1.5" stroke-dasharray="0 800"/>
136
177
 
137
178
  <!-- satellite node circles -->
@@ -16,7 +16,7 @@
16
16
  html, body { margin: 0; }
17
17
 
18
18
  #t1-st-odo {
19
- position: absolute; inset: 0; width: 1920px; height: 1080px;
19
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
20
20
  background: var(--canvas); color: var(--text);
21
21
  font-family: var(--font-display); overflow: hidden;
22
22
  }
@@ -93,7 +93,7 @@
93
93
  #t1-st-odo .sep-char {
94
94
  font-family: var(--font-display);
95
95
  font-weight: var(--wt-black);
96
- font-size: 120px;
96
+ font-size: calc(120px * var(--type));
97
97
  line-height: 1;
98
98
  color: rgba(255,255,255,0.55);
99
99
  padding-bottom: 6px;
@@ -112,7 +112,7 @@
112
112
  line-height: 180px;
113
113
  font-family: var(--font-display);
114
114
  font-weight: var(--wt-black);
115
- font-size: 120px;
115
+ font-size: calc(120px * var(--type));
116
116
  letter-spacing: var(--track-tight);
117
117
  color: var(--white);
118
118
  text-align: center;
@@ -151,7 +151,7 @@
151
151
  }
152
152
 
153
153
  #t1-st-odo .source {
154
- position: absolute; left: var(--pad); bottom: 44px;
154
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
155
155
  font-family: var(--font-mono); font-size: var(--size-tiny);
156
156
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
157
157
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -166,6 +166,11 @@
166
166
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
167
167
  pointer-events: none; z-index: 7;
168
168
  }
169
+
170
+ /* Vertical and square: the stack centers in the safe box and the label wraps to its width. */
171
+ [data-format="vertical"] #t1-st-odo .content, [data-format="square"] #t1-st-odo .content { inset: var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l); padding-bottom: 0; }
172
+ [data-format="vertical"] #t1-st-odo .kicker, [data-format="square"] #t1-st-odo .kicker { text-align: center; }
173
+ [data-format="vertical"] #t1-st-odo .label, [data-format="square"] #t1-st-odo .label { max-width: 100%; }
169
174
  </style>
170
175
  </head>
171
176
  <body>
@@ -15,7 +15,7 @@
15
15
  html, body { margin: 0; }
16
16
 
17
17
  #t1-stat-moons {
18
- position: absolute; inset: 0; width: 1920px; height: 1080px;
18
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
19
19
  background: var(--canvas); color: var(--text);
20
20
  font-family: var(--font-display); overflow: hidden;
21
21
  }
@@ -33,7 +33,7 @@
33
33
 
34
34
  /* ── orbit SVG (decorative ellipse rings) ── */
35
35
  #t1-stat-moons .orbit-svg {
36
- position: absolute; inset: 0; width: 1920px; height: 1080px; z-index: 2;
36
+ position: absolute; inset: 0; width: var(--w); height: var(--h); z-index: 2;
37
37
  }
38
38
 
39
39
  /* ── central hub ── */
@@ -62,7 +62,7 @@
62
62
  position: relative; z-index: 2;
63
63
  }
64
64
  #t1-stat-moons .stat-sub {
65
- font-family: var(--font-mono); font-size: 22px; letter-spacing: 0.14em;
65
+ font-family: var(--font-mono); font-size: calc(22px * var(--type)); letter-spacing: 0.14em;
66
66
  text-transform: uppercase; color: var(--accent);
67
67
  text-shadow: var(--textglow-accent); margin-top: 10px; position: relative; z-index: 2;
68
68
  }
@@ -82,11 +82,11 @@
82
82
  }
83
83
  #t1-stat-moons .moon-val {
84
84
  font-family: var(--font-display); font-weight: var(--wt-black);
85
- font-size: 64px; line-height: 1; letter-spacing: var(--track-tight);
85
+ font-size: calc(64px * var(--type)); line-height: 1; letter-spacing: var(--track-tight);
86
86
  color: var(--white); text-shadow: var(--textglow);
87
87
  }
88
88
  #t1-stat-moons .moon-lbl {
89
- font-family: var(--font-mono); font-size: 18px; letter-spacing: 0.12em;
89
+ font-family: var(--font-mono); font-size: calc(18px * var(--type)); letter-spacing: 0.12em;
90
90
  text-transform: uppercase; color: var(--text-dim);
91
91
  }
92
92
 
@@ -96,7 +96,7 @@
96
96
  #t1-stat-moons .moon2 { left: 280px; top: 640px; }
97
97
 
98
98
  #t1-stat-moons .source {
99
- position: absolute; left: var(--pad); bottom: 44px;
99
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
100
100
  font-family: var(--font-mono); font-size: var(--size-tiny);
101
101
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
102
102
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -111,6 +111,19 @@
111
111
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
112
112
  pointer-events: none; z-index: 7;
113
113
  }
114
+
115
+ /* Vertical and square: the hub centers in the safe box (orbit art at scale 1 behind it),
116
+ moon 1 pins to the top right and moon 2 to the bottom left of the safe area. */
117
+ [data-format="vertical"] #t1-stat-moons .orbit-svg { inset: auto; left: -420px; top: 228px; width: 1920px; height: 1080px; }
118
+ [data-format="square"] #t1-stat-moons .orbit-svg { inset: auto; left: -420px; top: 0; width: 1920px; height: 1080px; }
119
+ [data-format="vertical"] #t1-stat-moons .hub { top: calc(var(--safe-t) + 480px); }
120
+ [data-format="vertical"] #t1-stat-moons .stat { font-size: calc(250px * var(--type)); }
121
+ [data-format="vertical"] #t1-stat-moons .moon1, [data-format="square"] #t1-stat-moons .moon1 { left: auto; right: calc(var(--safe-r) + 24px); top: calc(var(--safe-t) + 24px); }
122
+ [data-format="vertical"] #t1-stat-moons .moon2, [data-format="square"] #t1-stat-moons .moon2 { left: calc(var(--safe-l) + 24px); top: auto; bottom: calc(var(--safe-b) + 70px); }
123
+ [data-format="vertical"] #t1-stat-moons #mn-conn1 { d: path("M1129 142 L960 540"); }
124
+ [data-format="vertical"] #t1-stat-moons #mn-conn2 { d: path("M739 880 L960 540"); }
125
+ [data-format="square"] #t1-stat-moons #mn-conn1 { d: path("M1250 170 L960 540"); }
126
+ [data-format="square"] #t1-stat-moons #mn-conn2 { d: path("M690 870 L960 540"); }
114
127
  </style>
115
128
  </head>
116
129
  <body>
@@ -135,10 +148,10 @@
135
148
  stroke="rgba(79,140,255,0.08)" stroke-width="1"
136
149
  stroke-dasharray="4 10" opacity="0"/>
137
150
  <!-- orbit dot connectors (dashes from moon to center) -->
138
- <line id="mn-conn1" x1="1290" y1="310" x2="960" y2="540"
151
+ <path id="mn-conn1" d="M1290 310 L960 540"
139
152
  stroke="rgba(79,140,255,0.22)" stroke-width="1"
140
153
  stroke-dasharray="6 8" opacity="0"/>
141
- <line id="mn-conn2" x1="380" y1="700" x2="960" y2="540"
154
+ <path id="mn-conn2" d="M380 700 L960 540"
142
155
  stroke="rgba(79,140,255,0.22)" stroke-width="1"
143
156
  stroke-dasharray="6 8" opacity="0"/>
144
157
  </svg>
@@ -15,7 +15,7 @@
15
15
  html, body { margin: 0; }
16
16
 
17
17
  #t1-stat-orbit {
18
- position: absolute; inset: 0; width: 1920px; height: 1080px;
18
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
19
19
  background: var(--canvas); color: var(--text);
20
20
  font-family: var(--font-display); overflow: hidden;
21
21
  }
@@ -81,7 +81,7 @@
81
81
  #t1-stat-orbit .stat {
82
82
  font-family: var(--font-display);
83
83
  font-weight: var(--wt-black);
84
- font-size: 140px;
84
+ font-size: calc(140px * var(--type));
85
85
  line-height: 1;
86
86
  letter-spacing: var(--track-tight);
87
87
  background: linear-gradient(155deg, #ffffff 8%, rgba(var(--accent-rgb), 0.82) 88%);
@@ -113,7 +113,7 @@
113
113
  }
114
114
 
115
115
  #t1-stat-orbit .source {
116
- position: absolute; left: var(--pad); bottom: 44px;
116
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
117
117
  font-family: var(--font-mono); font-size: var(--size-tiny);
118
118
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
119
119
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -128,6 +128,12 @@
128
128
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
129
129
  pointer-events: none; z-index: 7;
130
130
  }
131
+
132
+ /* Vertical and square: the stack centers in the safe box; square uses a smaller orbit. */
133
+ [data-format="vertical"] #t1-stat-orbit .content, [data-format="square"] #t1-stat-orbit .content { inset: var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l); padding-bottom: 0; gap: 36px; }
134
+ [data-format="vertical"] #t1-stat-orbit .kicker, [data-format="square"] #t1-stat-orbit .kicker { text-align: center; }
135
+ [data-format="vertical"] #t1-stat-orbit .label, [data-format="square"] #t1-stat-orbit .label { max-width: 100%; }
136
+ [data-format="square"] #t1-stat-orbit .orbit-wrap, [data-format="square"] #t1-stat-orbit .orbit-svg { width: 460px; height: 460px; }
131
137
  </style>
132
138
  </head>
133
139
  <body>
@@ -13,7 +13,7 @@
13
13
  html, body { margin: 0; }
14
14
 
15
15
  #t1-stat-pair {
16
- position: absolute; inset: 0; width: 1920px; height: 1080px;
16
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
17
17
  background: var(--canvas); color: var(--text);
18
18
  font-family: var(--font-display); overflow: hidden;
19
19
  }
@@ -108,7 +108,7 @@
108
108
 
109
109
  #t1-stat-pair .bottom-label {
110
110
  font-family: var(--font-body);
111
- font-size: 28px;
111
+ font-size: calc(28px * var(--type));
112
112
  font-weight: var(--wt-med);
113
113
  color: var(--text-faint);
114
114
  text-align: center;
@@ -120,7 +120,7 @@
120
120
  }
121
121
 
122
122
  #t1-stat-pair .source {
123
- position: absolute; left: var(--pad); bottom: 44px;
123
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
124
124
  font-family: var(--font-mono); font-size: var(--size-tiny);
125
125
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
126
126
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -135,6 +135,21 @@
135
135
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
136
136
  pointer-events: none; z-index: 7;
137
137
  }
138
+
139
+
140
+ /* Vertical: the two metrics stack with a horizontal divider. Square: they stay side by side, smaller. */
141
+ [data-format="vertical"] #t1-stat-pair .content, [data-format="square"] #t1-stat-pair .content { inset: var(--safe-t) var(--safe-r) calc(var(--safe-b) + 48px) var(--safe-l); gap: 28px; }
142
+ [data-format="vertical"] #t1-stat-pair .kicker, [data-format="square"] #t1-stat-pair .kicker { text-align: center; }
143
+ [data-format="vertical"] #t1-stat-pair .pair-row { flex-direction: column; }
144
+ [data-format="vertical"] #t1-stat-pair .metric { width: auto; padding: 20px 0; gap: 12px; }
145
+ [data-format="vertical"] #t1-stat-pair .stat { font-size: calc(160px * var(--type)); }
146
+ [data-format="vertical"] #t1-stat-pair .metric-label { max-width: 100%; }
147
+ [data-format="vertical"] #t1-stat-pair .divider { width: 340px; height: 2px; background: linear-gradient(to right, transparent 0%, rgba(var(--accent-rgb), 0.6) 20%, rgba(255,255,255,0.7) 50%, rgba(var(--accent-rgb), 0.6) 80%, transparent 100%); }
148
+ [data-format="vertical"] #t1-stat-pair .bottom-label, [data-format="square"] #t1-stat-pair .bottom-label { max-width: 100%; }
149
+ [data-format="square"] #t1-stat-pair .metric { width: 463px; padding: 0 24px; box-sizing: border-box; }
150
+ [data-format="square"] #t1-stat-pair .stat { font-size: 170px; }
151
+ [data-format="square"] #t1-stat-pair .metric-label { max-width: 100%; }
152
+ [data-format="square"] #t1-stat-pair .divider { height: 260px; }
138
153
  </style>
139
154
  </head>
140
155
  <body>
@@ -15,7 +15,7 @@
15
15
  html, body { margin: 0; }
16
16
 
17
17
  #t1-stat-pctile {
18
- position: absolute; inset: 0; width: 1920px; height: 1080px;
18
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
19
19
  background: var(--canvas); color: var(--text);
20
20
  font-family: var(--font-display); overflow: hidden;
21
21
  }
@@ -52,7 +52,7 @@
52
52
  #t1-stat-pctile .stat {
53
53
  font-family: var(--font-display);
54
54
  font-weight: var(--wt-black);
55
- font-size: 160px;
55
+ font-size: calc(160px * var(--type));
56
56
  line-height: 1;
57
57
  letter-spacing: var(--track-tight);
58
58
  background: linear-gradient(155deg, #ffffff 0%, rgba(var(--accent-rgb), 0.85) 90%);
@@ -99,7 +99,7 @@
99
99
  }
100
100
 
101
101
  #t1-stat-pctile .source {
102
- position: absolute; left: var(--pad); bottom: 44px;
102
+ position: absolute; left: var(--safe-l); bottom: var(--safe-b);
103
103
  font-family: var(--font-mono); font-size: var(--size-tiny);
104
104
  font-weight: var(--wt-reg); letter-spacing: 0.12em;
105
105
  text-transform: uppercase; color: var(--text-faint); z-index: 5;
@@ -114,6 +114,14 @@
114
114
  background-size: 200px 200px; mix-blend-mode: overlay; opacity: 0.10;
115
115
  pointer-events: none; z-index: 7;
116
116
  }
117
+
118
+ /* Vertical and square: the stack centers in the safe box and the curve scales to its width. */
119
+ [data-format="vertical"] #t1-stat-pctile .content, [data-format="square"] #t1-stat-pctile .content { inset: var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l); padding-bottom: 0; }
120
+ [data-format="vertical"] #t1-stat-pctile .kicker, [data-format="square"] #t1-stat-pctile .kicker { text-align: center; }
121
+ [data-format="vertical"] #t1-stat-pctile .label, [data-format="square"] #t1-stat-pctile .label { max-width: 100%; }
122
+ [data-format="vertical"] #t1-stat-pctile .dist-wrap { width: 100%; height: 140px; }
123
+ [data-format="square"] #t1-stat-pctile .dist-wrap { width: 100%; height: 169px; }
124
+ [data-format="vertical"] #t1-stat-pctile .dist-svg, [data-format="square"] #t1-stat-pctile .dist-svg { width: 100%; height: 100%; }
117
125
  </style>
118
126
  </head>
119
127
  <body>