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,7 +14,7 @@
14
14
  <style>
15
15
  html, body { margin: 0; }
16
16
  #t1-ov-step {
17
- position: absolute; inset: 0; width: 1920px; height: 1080px;
17
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
18
18
  background: var(--paper); color: var(--ink);
19
19
  font-family: var(--font-display); overflow: hidden;
20
20
  }
@@ -35,7 +35,7 @@
35
35
 
36
36
  /* marker title */
37
37
  #t1-ov-step .title {
38
- position: absolute; top: 88px; left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
38
+ position: absolute; top: calc(var(--safe-t) + 34px); left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
39
39
  background: var(--yellow); padding: 8px 28px; z-index: 3;
40
40
  font-weight: var(--wt-black); font-size: var(--size-title); letter-spacing: var(--track-tight);
41
41
  text-transform: uppercase; white-space: nowrap;
@@ -43,7 +43,7 @@
43
43
 
44
44
  /* intro */
45
45
  #t1-ov-step .intro {
46
- position: absolute; top: 230px; left: 50%; transform: translateX(-50%);
46
+ position: absolute; top: calc(var(--safe-t) + 176px); left: 50%; transform: translateX(-50%);
47
47
  width: 1100px; text-align: center; z-index: 3;
48
48
  font-family: var(--font-label); font-weight: var(--wt-reg);
49
49
  font-size: var(--size-body); line-height: 1.4; color: var(--muted);
@@ -51,7 +51,7 @@
51
51
 
52
52
  /* stepper track */
53
53
  #t1-ov-step .track-wrap {
54
- position: absolute; left: 160px; right: 160px; top: 430px; height: 16px; z-index: 2;
54
+ position: absolute; left: calc(var(--safe-l) + 64px); right: calc(var(--safe-r) + 64px); top: 430px; height: 16px; z-index: 2;
55
55
  }
56
56
  #t1-ov-step .track-bg {
57
57
  position: absolute; inset: 0;
@@ -66,7 +66,7 @@
66
66
 
67
67
  /* step nodes */
68
68
  #t1-ov-step .nodes {
69
- position: absolute; left: 160px; right: 160px; top: 340px; z-index: 3;
69
+ position: absolute; left: calc(var(--safe-l) + 64px); right: calc(var(--safe-r) + 64px); top: 340px; z-index: 3;
70
70
  display: flex; justify-content: space-between; align-items: center;
71
71
  }
72
72
  #t1-ov-step .step {
@@ -76,7 +76,7 @@
76
76
  width: 120px; height: 120px; border-radius: 50%;
77
77
  background: var(--ink); color: var(--paper);
78
78
  display: flex; align-items: center; justify-content: center;
79
- font-weight: var(--wt-black); font-size: 64px; font-variant-numeric: tabular-nums;
79
+ font-weight: var(--wt-black); font-size: calc(64px * var(--type)); font-variant-numeric: tabular-nums;
80
80
  border: 6px solid var(--ink); box-shadow: 6px 8px 0 rgba(23,19,14,0.18);
81
81
  }
82
82
  #t1-ov-step .step-label {
@@ -95,11 +95,46 @@
95
95
 
96
96
  /* source */
97
97
  #t1-ov-step .source {
98
- position: absolute; left: 160px; bottom: 60px; z-index: 4;
98
+ position: absolute; left: calc(var(--safe-l) + 64px); bottom: calc(var(--safe-b) + 6px); z-index: 4;
99
99
  font-family: var(--font-label); font-weight: var(--wt-bold);
100
100
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
101
101
  text-transform: uppercase; color: var(--muted);
102
102
  }
103
+
104
+ /* Vertical: the four steps stack as rows (circle left, label right) with the track running
105
+ down through the circles; the horizontal fill segments are hidden. */
106
+ [data-format="vertical"] #t1-ov-step .title, [data-format="square"] #t1-ov-step .title,
107
+ [data-format="vertical"] #t1-ov-step .intro, [data-format="square"] #t1-ov-step .intro {
108
+ left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
109
+ }
110
+ [data-format="vertical"] #t1-ov-step .title, [data-format="square"] #t1-ov-step .title {
111
+ top: var(--safe-t); width: max-content; max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 56px);
112
+ white-space: normal; text-align: center;
113
+ }
114
+ [data-format="vertical"] #t1-ov-step .title { font-size: calc(64px * var(--type)); }
115
+ [data-format="vertical"] #t1-ov-step .intro, [data-format="square"] #t1-ov-step .intro { top: calc(var(--safe-t) + 116px); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); }
116
+ [data-format="square"] #t1-ov-step .intro { top: calc(var(--safe-t) + 150px); }
117
+ [data-format="vertical"] #t1-ov-step .nodes {
118
+ left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 270px);
119
+ flex-direction: column; align-items: stretch; gap: 36px;
120
+ }
121
+ [data-format="vertical"] #t1-ov-step .step { flex-direction: row; width: auto; }
122
+ [data-format="vertical"] #t1-ov-step .step-circle { flex: 0 0 auto; }
123
+ [data-format="vertical"] #t1-ov-step .step-dot { display: none; }
124
+ [data-format="vertical"] #t1-ov-step .step-label {
125
+ margin: 0 0 0 40px; text-align: left; max-width: none; font-size: calc(30px * var(--type));
126
+ }
127
+ [data-format="vertical"] #t1-ov-step .track-wrap {
128
+ left: calc(var(--safe-l) + 60px - 8px); right: auto; width: 16px;
129
+ top: calc(var(--safe-t) + 270px + 66px - 8px); height: 504px;
130
+ }
131
+ [data-format="vertical"] #t1-ov-step .seg { display: none; }
132
+ [data-format="vertical"] #t1-ov-step .source, [data-format="square"] #t1-ov-step .source { left: var(--safe-l); bottom: var(--safe-b); }
133
+ /* Square: same horizontal stepper with narrower steps, fitted to the safe width. */
134
+ [data-format="square"] #t1-ov-step .nodes { left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 290px); align-items: flex-start; }
135
+ [data-format="square"] #t1-ov-step .track-wrap { left: calc(var(--safe-l) + 110px); right: calc(var(--safe-r) + 110px); top: calc(var(--safe-t) + 290px + 66px - 8px); }
136
+ [data-format="square"] #t1-ov-step .step { width: 220px; }
137
+ [data-format="square"] #t1-ov-step .step-label { max-width: 210px; }
103
138
  </style>
104
139
  </head>
105
140
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-ov-toc {
15
- position: absolute; inset: 0; width: 1920px; height: 1080px;
15
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
16
16
  background: var(--paper); color: var(--ink);
17
17
  font-family: var(--font-display); overflow: hidden;
18
18
  }
@@ -34,7 +34,7 @@
34
34
 
35
35
  /* chapter heading - big Fraunces italic, top left */
36
36
  #t1-ov-toc .title-wrap {
37
- position: absolute; top: 64px; left: 130px; right: 130px; z-index: 3;
37
+ position: absolute; top: calc(var(--safe-t) + 10px); left: calc(var(--safe-l) + 34px); right: calc(var(--safe-r) + 34px); z-index: 3;
38
38
  border-bottom: 6px double var(--ink); padding-bottom: 24px;
39
39
  }
40
40
  #t1-ov-toc .chapter-label {
@@ -43,7 +43,7 @@
43
43
  text-transform: uppercase; color: var(--muted); margin-bottom: 6px;
44
44
  }
45
45
  #t1-ov-toc .title {
46
- font-weight: var(--wt-black); font-size: 100px; font-style: italic;
46
+ font-weight: var(--wt-black); font-size: calc(100px * var(--type)); font-style: italic;
47
47
  letter-spacing: var(--track-tight); line-height: 0.95; color: var(--ink);
48
48
  }
49
49
  /* small yellow dot accent after title */
@@ -55,7 +55,7 @@
55
55
 
56
56
  /* contents entries */
57
57
  #t1-ov-toc .entries {
58
- position: absolute; top: 260px; left: 130px; right: 130px;
58
+ position: absolute; top: calc(var(--safe-t) + 206px); left: calc(var(--safe-l) + 34px); right: calc(var(--safe-r) + 34px);
59
59
  display: flex; flex-direction: column; gap: 0; z-index: 3;
60
60
  }
61
61
  #t1-ov-toc .entry {
@@ -74,7 +74,7 @@
74
74
  }
75
75
  #t1-ov-toc .entry-topic {
76
76
  flex: 0 0 auto;
77
- font-weight: var(--wt-black); font-size: 56px;
77
+ font-weight: var(--wt-black); font-size: calc(56px * var(--type));
78
78
  letter-spacing: var(--track-tight); line-height: 1.0; color: var(--ink);
79
79
  }
80
80
  /* leader dots - overflow clip trick */
@@ -82,13 +82,13 @@
82
82
  flex: 1 1 auto; overflow: hidden; align-self: flex-end;
83
83
  margin: 0 24px 10px 24px;
84
84
  font-family: var(--font-label); font-weight: var(--wt-reg);
85
- font-size: 22px; letter-spacing: 0.3em; color: rgba(23,19,14,0.3);
85
+ font-size: calc(22px * var(--type)); letter-spacing: 0.3em; color: rgba(23,19,14,0.3);
86
86
  white-space: nowrap;
87
87
  /* repeated dot string */
88
88
  }
89
89
  #t1-ov-toc .entry-page {
90
90
  flex: 0 0 140px; text-align: right;
91
- font-weight: var(--wt-black); font-size: 56px;
91
+ font-weight: var(--wt-black); font-size: calc(56px * var(--type));
92
92
  letter-spacing: var(--track-tight); line-height: 1.0; color: var(--ink);
93
93
  font-variant-numeric: tabular-nums;
94
94
  }
@@ -98,11 +98,29 @@
98
98
  }
99
99
 
100
100
  #t1-ov-toc .source {
101
- position: absolute; left: 130px; bottom: 88px;
101
+ position: absolute; left: calc(var(--safe-l) + 34px); bottom: calc(var(--safe-b) + 34px);
102
102
  font-family: var(--font-label); font-weight: var(--wt-bold);
103
103
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
104
104
  text-transform: uppercase; color: var(--muted); z-index: 3;
105
105
  }
106
+
107
+ /* Vertical and square: heading and contents span the safe box, smaller heading and entries,
108
+ long topics may wrap, source at the bottom left of the safe area. */
109
+ [data-format="vertical"] #t1-ov-toc .title-wrap, [data-format="square"] #t1-ov-toc .title-wrap { top: var(--safe-t); left: var(--safe-l); right: var(--safe-r); }
110
+ [data-format="vertical"] #t1-ov-toc .title { font-size: calc(80px * var(--type)); }
111
+ [data-format="square"] #t1-ov-toc .title { font-size: 80px; }
112
+ [data-format="vertical"] #t1-ov-toc .entries, [data-format="square"] #t1-ov-toc .entries { left: var(--safe-l); right: var(--safe-r); }
113
+ [data-format="vertical"] #t1-ov-toc .entries { top: calc(var(--safe-t) + 300px); }
114
+ [data-format="square"] #t1-ov-toc .entries { top: calc(var(--safe-t) + 200px); }
115
+ [data-format="vertical"] #t1-ov-toc .entry { padding: 30px 0; }
116
+ [data-format="square"] #t1-ov-toc .entry { padding: 30px 0; }
117
+ [data-format="vertical"] #t1-ov-toc .entry-topic { flex: 0 1 auto; font-size: calc(52px * var(--type)); }
118
+ [data-format="vertical"] #t1-ov-toc .entry-page { flex-basis: 100px; font-size: calc(52px * var(--type)); }
119
+ [data-format="vertical"] #t1-ov-toc .dots { margin: 0 16px 10px 16px; }
120
+ [data-format="vertical"] #t1-ov-toc .dots, [data-format="square"] #t1-ov-toc .dots { flex: 1 1 0; }
121
+ [data-format="square"] #t1-ov-toc .entry-topic { flex: 0 1 auto; }
122
+ [data-format="square"] #t1-ov-toc .entry-page { flex-basis: 110px; }
123
+ [data-format="vertical"] #t1-ov-toc .source, [data-format="square"] #t1-ov-toc .source { left: var(--safe-l); bottom: var(--safe-b); }
106
124
  </style>
107
125
  </head>
108
126
  <body>
@@ -13,7 +13,7 @@
13
13
  <style>
14
14
  html, body { margin: 0; }
15
15
  #t1-ov-vtime {
16
- position: absolute; inset: 0; width: 1920px; height: 1080px;
16
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
17
17
  background: var(--paper); color: var(--ink);
18
18
  font-family: var(--font-display); overflow: hidden;
19
19
  }
@@ -34,7 +34,7 @@
34
34
 
35
35
  /* marker title */
36
36
  #t1-ov-vtime .title {
37
- position: absolute; top: 88px; left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
37
+ position: absolute; top: calc(var(--safe-t) + 34px); left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
38
38
  background: var(--yellow); padding: 8px 28px; z-index: 3;
39
39
  font-weight: var(--wt-black); font-size: var(--size-title); letter-spacing: var(--track-tight);
40
40
  text-transform: uppercase; white-space: nowrap;
@@ -42,16 +42,16 @@
42
42
 
43
43
  /* vertical spine */
44
44
  #t1-ov-vtime .spine {
45
- position: absolute; left: 680px; top: 240px; width: 8px; height: 700px;
45
+ position: absolute; left: 680px; top: 280px; width: 8px; height: 680px;
46
46
  background: var(--ink); transform-origin: top center; z-index: 2;
47
47
  }
48
48
 
49
49
  /* node rows */
50
50
  #t1-ov-vtime .nodes {
51
- position: absolute; left: 0; top: 240px; width: 1920px; z-index: 3;
51
+ position: absolute; left: 0; top: calc(280px - 55px); width: var(--w); z-index: 3;
52
52
  }
53
53
  #t1-ov-vtime .node {
54
- position: absolute; left: 0; width: 1920px; display: flex; align-items: center;
54
+ position: absolute; left: 0; width: var(--w); display: flex; align-items: center;
55
55
  }
56
56
  /* diamond node at spine center (left:680px, 8px wide → center=684px) */
57
57
  #t1-ov-vtime .node-diamond {
@@ -61,7 +61,7 @@
61
61
  }
62
62
  #t1-ov-vtime .node-year {
63
63
  position: absolute; left: 280px; top: 50%; transform: translateY(-50%);
64
- font-weight: var(--wt-black); font-size: 90px; line-height: 1;
64
+ font-weight: var(--wt-black); font-size: calc(90px * var(--type)); line-height: 1;
65
65
  letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--ink);
66
66
  }
67
67
  #t1-ov-vtime .node-label {
@@ -74,11 +74,37 @@
74
74
 
75
75
  /* source */
76
76
  #t1-ov-vtime .source {
77
- position: absolute; right: 130px; bottom: 60px; z-index: 4;
77
+ position: absolute; right: calc(var(--safe-r) + 34px); bottom: calc(var(--safe-b) + 6px); z-index: 4;
78
78
  font-family: var(--font-label); font-weight: var(--wt-bold);
79
79
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
80
80
  text-transform: uppercase; color: var(--muted);
81
81
  }
82
+
83
+ /* Node rows are centred on the spine (row height 110, so .nodes sits 55px above the spine top).
84
+ Vertical: spine down the left of the safe box, year stacked above its event to the right.
85
+ Square: same left-year / right-event layout as landscape, compressed to the safe width. */
86
+ [data-format="vertical"] #t1-ov-vtime .title, [data-format="square"] #t1-ov-vtime .title {
87
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
88
+ }
89
+ [data-format="vertical"] #t1-ov-vtime .title { font-size: calc(70px * var(--type)); }
90
+ [data-format="vertical"] #t1-ov-vtime .spine { left: calc(var(--safe-l) + 28px); top: calc(var(--safe-t) + 215px); height: 625px; }
91
+ [data-format="vertical"] #t1-ov-vtime .nodes { top: calc(var(--safe-t) + 215px - 55px); }
92
+ [data-format="vertical"] #t1-ov-vtime .node-diamond { left: var(--safe-l); }
93
+ [data-format="vertical"] #t1-ov-vtime .node-year { left: calc(var(--safe-l) + 100px); top: calc(50% - 56px); font-size: calc(64px * var(--type)); }
94
+ [data-format="vertical"] #t1-ov-vtime .node-label {
95
+ /* a fixed two-line box, so its first line always starts just under the year */
96
+ left: calc(var(--safe-l) + 100px); top: calc(50% - 10px + 1.2em); height: 2.4em; font-size: calc(36px * var(--type));
97
+ max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 100px);
98
+ }
99
+ [data-format="square"] #t1-ov-vtime .spine { left: calc(var(--safe-l) + 260px); top: calc(var(--safe-t) + 190px); height: 620px; }
100
+ [data-format="square"] #t1-ov-vtime .nodes { top: calc(var(--safe-t) + 190px - 55px); }
101
+ [data-format="square"] #t1-ov-vtime .node-diamond { left: calc(var(--safe-l) + 232px); }
102
+ [data-format="square"] #t1-ov-vtime .node-year { left: var(--safe-l); font-size: 76px; }
103
+ [data-format="square"] #t1-ov-vtime .node-label {
104
+ left: calc(var(--safe-l) + 340px); font-size: 44px;
105
+ max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 340px);
106
+ }
107
+ [data-format="vertical"] #t1-ov-vtime .source, [data-format="square"] #t1-ov-vtime .source { right: var(--safe-r); bottom: var(--safe-b); }
82
108
  </style>
83
109
  </head>
84
110
  <body>
@@ -105,8 +131,8 @@
105
131
  ];
106
132
 
107
133
  const SPINE_TOP = 240; // px from top of comp (matches CSS)
108
- const SPINE_H = 700;
109
- const STEP = SPINE_H / (nodes.length - 1); // 233px between nodes
134
+ const SPINE_H = document.querySelector("#t1-ov-vtime .spine").offsetHeight; // 680 in landscape, set per format in CSS
135
+ const STEP = SPINE_H / (nodes.length - 1); // 227px between nodes in landscape
110
136
 
111
137
  const container = document.getElementById("vtime-nodes");
112
138
  nodes.forEach((n, i) => {
@@ -11,7 +11,7 @@
11
11
  <style>
12
12
  html, body { margin: 0; }
13
13
  #t1-sec-bracket {
14
- position: absolute; inset: 0; width: 1920px; height: 1080px;
14
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
15
15
  background: var(--paper); color: var(--ink);
16
16
  font-family: var(--font-display); overflow: hidden;
17
17
  display: flex; align-items: center; justify-content: center;
@@ -32,7 +32,7 @@
32
32
  background: radial-gradient(120% 120% at 50% 50%, transparent 56%, rgba(23,19,14,0.14) 100%);
33
33
  }
34
34
  #t1-sec-bracket .wrap { position: relative; z-index: 3; display: flex; align-items: center; gap: 50px; }
35
- #t1-sec-bracket .br { font-weight: var(--wt-thin); font-size: 540px; line-height: 0.7; color: var(--ink); }
35
+ #t1-sec-bracket .br { font-weight: var(--wt-thin); font-size: calc(540px * var(--type)); line-height: 0.7; color: var(--ink); }
36
36
  #t1-sec-bracket .center { text-align: center; max-width: 960px; }
37
37
  #t1-sec-bracket .kicker {
38
38
  font-family: var(--font-label); font-weight: var(--wt-bold);
@@ -40,16 +40,28 @@
40
40
  text-transform: uppercase; color: var(--muted); margin-bottom: 22px;
41
41
  }
42
42
  #t1-sec-bracket .headline {
43
- font-weight: var(--wt-black); font-size: 116px; line-height: 0.98; letter-spacing: var(--track-tight);
43
+ font-weight: var(--wt-black); font-size: calc(116px * var(--type)); line-height: 0.98; letter-spacing: var(--track-tight);
44
44
  }
45
45
  #t1-sec-bracket .headline em { font-style: italic; font-weight: var(--wt-thin); }
46
46
  #t1-sec-bracket .underline { margin: 26px auto 0; width: 0; height: 8px; background: var(--yellow); }
47
47
  #t1-sec-bracket .source {
48
- position: absolute; bottom: 96px; left: 50%; transform: translateX(-50%); z-index: 3;
48
+ position: absolute; bottom: calc(var(--safe-b) + 42px); left: 50%; transform: translateX(-50%); z-index: 3;
49
49
  font-family: var(--font-label); font-weight: var(--wt-bold);
50
50
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
51
51
  text-transform: uppercase; color: var(--muted);
52
52
  }
53
+
54
+ /* Vertical and square: smaller brackets and a narrower headline column so the bracketed
55
+ block fits the safe width; the block is centered on the safe box, not the frame. */
56
+ [data-format="vertical"] #t1-sec-bracket .wrap { top: calc((var(--safe-t) - var(--safe-b)) / 2); left: calc((var(--safe-l) - var(--safe-r)) / 2); gap: 24px; }
57
+ [data-format="square"] #t1-sec-bracket .wrap { gap: 30px; }
58
+ [data-format="vertical"] #t1-sec-bracket .br { font-size: calc(380px * var(--type)); }
59
+ [data-format="square"] #t1-sec-bracket .br { font-size: 420px; }
60
+ [data-format="vertical"] #t1-sec-bracket .center { max-width: 520px; }
61
+ [data-format="square"] #t1-sec-bracket .center { max-width: 640px; }
62
+ [data-format="vertical"] #t1-sec-bracket .headline { font-size: calc(84px * var(--type)); }
63
+ [data-format="square"] #t1-sec-bracket .headline { font-size: 100px; }
64
+ [data-format="vertical"] #t1-sec-bracket .source, [data-format="square"] #t1-sec-bracket .source { bottom: var(--safe-b); }
53
65
  </style>
54
66
  </head>
55
67
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-circle {
15
- position: absolute; inset: 0; width: 1920px; height: 1080px;
15
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
16
16
  background: var(--paper); color: var(--ink);
17
17
  font-family: var(--font-display); overflow: hidden;
18
18
  }
@@ -36,7 +36,7 @@
36
36
  border-radius: 50%; background: var(--yellow); z-index: 1;
37
37
  }
38
38
  #t1-sec-circle .kicker {
39
- position: absolute; left: 150px; top: 300px; z-index: 3;
39
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 246px); z-index: 3;
40
40
  font-family: var(--font-label); font-weight: var(--wt-bold);
41
41
  font-size: var(--size-label); letter-spacing: var(--track-wide);
42
42
  text-transform: uppercase; color: var(--ink);
@@ -46,13 +46,13 @@
46
46
  background: var(--red); margin-right: 18px; vertical-align: middle;
47
47
  }
48
48
  #t1-sec-circle .headline {
49
- position: absolute; left: 150px; top: 360px; width: 1160px; z-index: 3;
49
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 306px); width: 1160px; z-index: 3;
50
50
  font-weight: var(--wt-thin); font-size: var(--size-display);
51
51
  line-height: 0.96; letter-spacing: var(--track-tight); color: var(--ink);
52
52
  }
53
53
  #t1-sec-circle .headline em { font-style: italic; font-weight: var(--wt-black); }
54
54
  #t1-sec-circle .scrap {
55
- position: absolute; right: 150px; top: 250px; width: 470px; height: 560px;
55
+ position: absolute; right: calc(var(--safe-r) + 54px); top: calc(var(--safe-t) + 196px); width: 470px; height: 560px;
56
56
  background-color: var(--paper-2); background-image: var(--tex-halftone);
57
57
  background-size: var(--tex-halftone-size);
58
58
  outline: 10px solid var(--orange); outline-offset: -10px;
@@ -64,11 +64,27 @@
64
64
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
65
65
  color: var(--muted); background: var(--yellow); padding: 2px 10px;
66
66
  } #t1-sec-circle .source {
67
- position: absolute; left: 150px; bottom: 96px; z-index: 3;
67
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 42px); z-index: 3;
68
68
  font-family: var(--font-label); font-weight: var(--wt-bold);
69
69
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
70
70
  text-transform: uppercase; color: var(--muted);
71
71
  }
72
+
73
+ /* Vertical and square: kicker and headline stacked from the top of the safe area, the
74
+ circle behind "rewired", the scrap tucked lower right, source at the safe bottom. */
75
+ [data-format="vertical"] #t1-sec-circle .stage { transform-origin: 46% 40%; }
76
+ /* text keeps ~40px clear of the safe edges because the stage zooms 6% toward its origin */
77
+ [data-format="vertical"] #t1-sec-circle .kicker, [data-format="square"] #t1-sec-circle .kicker { left: calc(var(--safe-l) + 40px); top: calc(var(--safe-t) + 36px); }
78
+ [data-format="vertical"] #t1-sec-circle .headline, [data-format="square"] #t1-sec-circle .headline {
79
+ left: calc(var(--safe-l) + 40px); top: calc(var(--safe-t) + 96px); width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 80px);
80
+ }
81
+ [data-format="vertical"] #t1-sec-circle .headline { font-size: calc(120px * var(--type)); }
82
+ [data-format="square"] #t1-sec-circle .headline { font-size: 116px; width: 560px; }
83
+ [data-format="vertical"] #t1-sec-circle .circle { left: calc(var(--safe-l) + 170px); top: calc(var(--safe-t) + 340px); width: 290px; height: 290px; }
84
+ [data-format="square"] #t1-sec-circle .circle { left: calc(var(--safe-l) + 150px); top: calc(var(--safe-t) + 270px); width: 260px; height: 260px; }
85
+ [data-format="vertical"] #t1-sec-circle .scrap { right: calc(var(--safe-r) + 30px); top: auto; bottom: calc(var(--safe-b) + 84px); width: 280px; height: 240px; }
86
+ [data-format="square"] #t1-sec-circle .scrap { right: calc(var(--safe-r) + 30px); top: calc(var(--safe-t) + 200px); width: 300px; height: 400px; }
87
+ [data-format="vertical"] #t1-sec-circle .source, [data-format="square"] #t1-sec-circle .source { left: calc(var(--safe-l) + 40px); bottom: calc(var(--safe-b) + 34px); }
72
88
  </style>
73
89
  </head>
74
90
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-classified {
15
- position: absolute; inset: 0; width: 1920px; height: 1080px;
15
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
16
16
  background: var(--paper-2); color: var(--ink);
17
17
  font-family: var(--font-display); overflow: hidden;
18
18
  }
@@ -32,7 +32,7 @@
32
32
  }
33
33
  /* the pinned paper card */
34
34
  #t1-sec-classified .card {
35
- position: absolute; left: 360px; top: 300px; width: 1200px; height: 470px;
35
+ position: absolute; left: calc(var(--safe-l) + 264px); top: calc(var(--safe-t) + 246px); width: 1200px; height: 470px;
36
36
  background: var(--paper); z-index: 2; transform: rotate(-1.6deg);
37
37
  box-shadow: 0 24px 50px rgba(23,19,14,0.32);
38
38
  display: flex; flex-direction: column; align-items: center; justify-content: center;
@@ -43,7 +43,7 @@
43
43
  text-transform: uppercase; color: var(--muted); margin-bottom: 18px;
44
44
  }
45
45
  #t1-sec-classified .card .title {
46
- font-weight: var(--wt-black); font-size: 116px; line-height: 0.96;
46
+ font-weight: var(--wt-black); font-size: calc(116px * var(--type)); line-height: 0.96;
47
47
  letter-spacing: var(--track-tight); text-align: center; max-width: 1040px;
48
48
  }
49
49
  /* tape pieces */
@@ -59,19 +59,37 @@
59
59
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--red);
60
60
  border: 6px solid var(--red); padding: 10px 22px; border-radius: 6px; opacity: 0.92;
61
61
  }
62
- #t1-sec-classified .stamp.main { right: 300px; top: 600px; font-size: 60px; transform: rotate(-12deg); }
63
- #t1-sec-classified .stamp.sub { left: 380px; top: 250px; font-size: 30px; transform: rotate(8deg); }
62
+ #t1-sec-classified .stamp.main { right: calc(var(--safe-r) + 204px); top: calc(var(--safe-t) + 546px); font-size: calc(60px * var(--type)); transform: rotate(-12deg); }
63
+ #t1-sec-classified .stamp.sub { left: calc(var(--safe-l) + 284px); top: calc(var(--safe-t) + 196px); font-size: calc(30px * var(--type)); transform: rotate(8deg); }
64
64
  /* magnifier */
65
65
  #t1-sec-classified .mag { position: absolute; left: 210px; bottom: 150px; z-index: 6; transform: rotate(12deg); }
66
66
  #t1-sec-classified .mag .lens { width: 190px; height: 190px; border: 14px solid var(--ink); border-radius: 50%; background: rgba(255,255,255,0.12); }
67
67
  #t1-sec-classified .mag .handle { position: absolute; right: -64px; bottom: -54px; width: 96px; height: 22px; background: var(--ink); border-radius: 11px; transform: rotate(45deg); }
68
68
  /* sticky note */
69
69
  #t1-sec-classified .note {
70
- position: absolute; right: 180px; top: 250px; z-index: 6; width: 230px; height: 200px;
70
+ position: absolute; right: calc(var(--safe-r) + 84px); top: calc(var(--safe-t) + 196px); z-index: 6; width: 230px; height: 200px;
71
71
  background: var(--yellow); transform: rotate(7deg); box-shadow: 0 10px 22px rgba(23,19,14,0.22);
72
72
  display: flex; align-items: center; justify-content: center; text-align: center;
73
- font-family: var(--font-hand); font-size: 50px; color: var(--ink); padding: 16px;
73
+ font-family: var(--font-hand); font-size: calc(50px * var(--type)); color: var(--ink); padding: 16px;
74
74
  }
75
+
76
+ /* Vertical and square: the card spans the safe width, sticky note above it on the right,
77
+ stamps pinned to its top-left and bottom-right edges, magnifier below. */
78
+ [data-format="vertical"] #t1-sec-classified .card { left: var(--safe-l); top: calc(var(--safe-t) + 190px); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); height: 480px; }
79
+ [data-format="square"] #t1-sec-classified .card { left: calc(var(--safe-l) + 20px); top: calc(var(--safe-t) + 230px); width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 40px); height: 420px; }
80
+ [data-format="vertical"] #t1-sec-classified .card .title { max-width: 640px; }
81
+ [data-format="square"] #t1-sec-classified .card .title { max-width: 760px; font-size: 104px; }
82
+ [data-format="vertical"] #t1-sec-classified .tape.tl { left: calc(var(--safe-l) - 40px); top: calc(var(--safe-t) + 170px); }
83
+ [data-format="vertical"] #t1-sec-classified .tape.br { right: calc(var(--safe-r) - 40px); bottom: auto; top: calc(var(--safe-t) + 640px); }
84
+ [data-format="square"] #t1-sec-classified .tape.tl { left: calc(var(--safe-l) - 20px); top: calc(var(--safe-t) + 210px); }
85
+ [data-format="square"] #t1-sec-classified .tape.br { right: calc(var(--safe-r) - 20px); bottom: auto; top: calc(var(--safe-t) + 630px); }
86
+ [data-format="vertical"] #t1-sec-classified .stamp.sub { left: calc(var(--safe-l) + 30px); top: calc(var(--safe-t) + 150px); }
87
+ [data-format="square"] #t1-sec-classified .stamp.sub { left: calc(var(--safe-l) + 40px); top: calc(var(--safe-t) + 190px); }
88
+ [data-format="vertical"] #t1-sec-classified .stamp.main { right: calc(var(--safe-r) + 20px); top: calc(var(--safe-t) + 600px); }
89
+ [data-format="square"] #t1-sec-classified .stamp.main { right: calc(var(--safe-r) + 30px); top: calc(var(--safe-t) + 580px); }
90
+ [data-format="vertical"] #t1-sec-classified .note, [data-format="square"] #t1-sec-classified .note { right: calc(var(--safe-r) + 10px); top: calc(var(--safe-t) + 10px); }
91
+ [data-format="vertical"] #t1-sec-classified .mag { left: calc(var(--safe-l) + 20px); bottom: calc(var(--safe-b) + 10px); }
92
+ [data-format="square"] #t1-sec-classified .mag { left: calc(var(--safe-l) + 10px); bottom: calc(var(--safe-b) + 50px); }
75
93
  </style>
76
94
  </head>
77
95
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-collage {
15
- position: absolute; inset: 0; width: 1920px; height: 1080px;
15
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
16
16
  background: var(--paper); color: var(--ink);
17
17
  font-family: var(--font-display); overflow: hidden;
18
18
  }
@@ -36,14 +36,14 @@
36
36
  background-image: var(--tex-halftone); background-size: var(--tex-halftone-size);
37
37
  box-shadow: 8px 12px 0 rgba(23,19,14,0.12);
38
38
  }
39
- #t1-sec-collage .s1 { left: 120px; top: 150px; width: 300px; height: 220px; outline: 8px solid var(--ink); outline-offset: -8px; transform: rotate(-5deg); }
40
- #t1-sec-collage .s2 { right: 130px; top: 120px; width: 360px; height: 250px; outline: 8px solid var(--yellow); outline-offset: -8px; transform: rotate(4deg); }
41
- #t1-sec-collage .s3 { right: 200px; bottom: 130px; width: 280px; height: 330px; outline: 8px solid var(--orange); outline-offset: -8px; transform: rotate(-3deg); }
39
+ #t1-sec-collage .s1 { left: calc(var(--safe-l) + 24px); top: calc(var(--safe-t) + 96px); width: 300px; height: 220px; outline: 8px solid var(--ink); outline-offset: -8px; transform: rotate(-5deg); }
40
+ #t1-sec-collage .s2 { right: calc(var(--safe-r) + 34px); top: calc(var(--safe-t) + 66px); width: 360px; height: 250px; outline: 8px solid var(--yellow); outline-offset: -8px; transform: rotate(4deg); }
41
+ #t1-sec-collage .s3 { right: calc(var(--safe-r) + 104px); bottom: calc(var(--safe-b) + 76px); width: 280px; height: 330px; outline: 8px solid var(--orange); outline-offset: -8px; transform: rotate(-3deg); }
42
42
  /* shapes */
43
- #t1-sec-collage .ycirc { position: absolute; left: 150px; bottom: 160px; width: 220px; height: 220px; background: var(--yellow); border-radius: 50%; }
43
+ #t1-sec-collage .ycirc { position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 106px); width: 220px; height: 220px; background: var(--yellow); border-radius: 50%; }
44
44
  #t1-sec-collage .wordmark {
45
- position: absolute; left: 188px; bottom: 198px; width: 150px; text-align: center; z-index: 4;
46
- font-style: italic; font-weight: var(--wt-black); font-size: 70px; color: var(--ink);
45
+ position: absolute; left: calc(var(--safe-l) + 92px); bottom: calc(var(--safe-b) + 144px); width: 150px; text-align: center; z-index: 4;
46
+ font-style: italic; font-weight: var(--wt-black); font-size: calc(70px * var(--type)); color: var(--ink);
47
47
  }
48
48
  /* title */
49
49
  #t1-sec-collage .title { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 1100px; text-align: center; z-index: 3; }
@@ -52,8 +52,26 @@
52
52
  font-size: var(--size-label); letter-spacing: var(--track-wide);
53
53
  text-transform: uppercase; color: var(--muted); margin-bottom: 18px;
54
54
  }
55
- #t1-sec-collage .l1 { display: block; font-weight: var(--wt-black); font-size: 128px; line-height: 0.96; letter-spacing: var(--track-tight); }
56
- #t1-sec-collage .l2 { display: inline-block; margin-top: 10px; font-weight: var(--wt-black); font-style: italic; font-size: 128px; line-height: 1.0; letter-spacing: var(--track-tight); background: var(--yellow); padding: 0 22px; transform: skewX(var(--marker-skew)); } </style>
55
+ #t1-sec-collage .l1 { display: block; font-weight: var(--wt-black); font-size: calc(128px * var(--type)); line-height: 0.96; letter-spacing: var(--track-tight); }
56
+ #t1-sec-collage .l2 { display: inline-block; margin-top: 10px; font-weight: var(--wt-black); font-style: italic; font-size: calc(128px * var(--type)); line-height: 1.0; letter-spacing: var(--track-tight); background: var(--yellow); padding: 0 22px; transform: skewX(var(--marker-skew)); }
57
+ /* Vertical and square: scraps pinned to the safe corners, title centered across the safe
58
+ width between them, wordmark circle at the safe bottom left. */
59
+ [data-format="vertical"] #t1-sec-collage .title, [data-format="square"] #t1-sec-collage .title {
60
+ left: var(--safe-l); transform: none; width: calc(var(--w) - var(--safe-l) - var(--safe-r));
61
+ }
62
+ [data-format="vertical"] #t1-sec-collage .title { top: calc(var(--safe-t) + 250px); }
63
+ [data-format="square"] #t1-sec-collage .title { top: calc(var(--safe-t) + 230px); }
64
+ [data-format="vertical"] #t1-sec-collage .l1, [data-format="vertical"] #t1-sec-collage .l2 { font-size: calc(90px * var(--type)); }
65
+ [data-format="square"] #t1-sec-collage .l1, [data-format="square"] #t1-sec-collage .l2 { font-size: 96px; }
66
+ [data-format="vertical"] #t1-sec-collage .s1 { left: var(--safe-l); top: var(--safe-t); width: 250px; height: 180px; }
67
+ [data-format="vertical"] #t1-sec-collage .s2 { right: var(--safe-r); top: calc(var(--safe-t) + 30px); width: 290px; height: 200px; }
68
+ [data-format="vertical"] #t1-sec-collage .s3 { right: var(--safe-r); bottom: var(--safe-b); width: 230px; height: 260px; }
69
+ [data-format="square"] #t1-sec-collage .s1 { left: var(--safe-l); top: var(--safe-t); width: 230px; height: 160px; }
70
+ [data-format="square"] #t1-sec-collage .s2 { right: var(--safe-r); top: var(--safe-t); width: 270px; height: 180px; }
71
+ [data-format="square"] #t1-sec-collage .s3 { right: var(--safe-r); bottom: var(--safe-b); width: 200px; height: 230px; }
72
+ [data-format="vertical"] #t1-sec-collage .ycirc, [data-format="square"] #t1-sec-collage .ycirc { left: calc(var(--safe-l) + 10px); bottom: var(--safe-b); width: 210px; height: 210px; }
73
+ [data-format="vertical"] #t1-sec-collage .wordmark, [data-format="square"] #t1-sec-collage .wordmark { left: calc(var(--safe-l) - 10px); bottom: calc(var(--safe-b) + 60px); width: 250px; }
74
+ </style>
57
75
  </head>
58
76
  <body>
59
77
  <div id="t1-sec-collage" data-composition-id="t1-sec-collage" data-start="0" data-width="1920" data-height="1080">
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-correction {
15
- position: absolute; inset: 0; width: 1920px; height: 1080px;
15
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
16
16
  background: var(--paper); color: var(--ink);
17
17
  font-family: var(--font-display); overflow: hidden;
18
18
  }
@@ -31,8 +31,8 @@
31
31
  background: radial-gradient(120% 120% at 45% 50%, transparent 58%, rgba(23,19,14,0.15) 100%);
32
32
  }
33
33
  #t1-sec-correction .headline {
34
- position: absolute; left: 150px; top: 430px; width: 1050px; z-index: 3;
35
- font-weight: var(--wt-thin); font-size: 132px; line-height: 1.05;
34
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 376px); width: 1050px; z-index: 3;
35
+ font-weight: var(--wt-thin); font-size: calc(132px * var(--type)); line-height: 1.05;
36
36
  letter-spacing: var(--track-tight); color: var(--ink);
37
37
  }
38
38
  #t1-sec-correction .struck { position: relative; font-weight: var(--wt-black); }
@@ -42,22 +42,34 @@
42
42
  }
43
43
  #t1-sec-correction .correction {
44
44
  position: absolute; left: 0; top: -64px;
45
- font-family: var(--font-hand); font-size: 64px; font-weight: 700; color: var(--red);
45
+ font-family: var(--font-hand); font-size: calc(64px * var(--type)); font-weight: 700; color: var(--red);
46
46
  transform: rotate(-3deg); white-space: nowrap;
47
47
  }
48
48
  /* yellow wordmark circle on the right */
49
49
  #t1-sec-correction .circle {
50
- position: absolute; right: 200px; top: 430px; width: 300px; height: 300px;
50
+ position: absolute; right: calc(var(--safe-r) + 104px); top: calc(var(--safe-t) + 376px); width: 300px; height: 300px;
51
51
  background: var(--yellow); border-radius: 50%; z-index: 2;
52
52
  display: flex; align-items: center; justify-content: center;
53
- font-weight: var(--wt-black); font-style: italic; font-size: 110px; color: var(--ink);
53
+ font-weight: var(--wt-black); font-style: italic; font-size: calc(110px * var(--type)); color: var(--ink);
54
54
  }
55
55
  #t1-sec-correction .kicker {
56
- position: absolute; left: 150px; top: 320px; z-index: 3;
56
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 266px); z-index: 3;
57
57
  font-family: var(--font-label); font-weight: var(--wt-bold);
58
58
  font-size: var(--size-label); letter-spacing: var(--track-wide);
59
59
  text-transform: uppercase; color: var(--muted);
60
60
  }
61
+
62
+ /* Vertical and square: kicker and headline across the safe width, the wordmark circle
63
+ drops below them to the safe bottom right. */
64
+ [data-format="vertical"] #t1-sec-correction .kicker, [data-format="square"] #t1-sec-correction .kicker { left: var(--safe-l); top: calc(var(--safe-t) + 60px); }
65
+ [data-format="vertical"] #t1-sec-correction .headline, [data-format="square"] #t1-sec-correction .headline { left: var(--safe-l); top: calc(var(--safe-t) + 200px); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); }
66
+ [data-format="vertical"] #t1-sec-correction .headline { font-size: calc(94px * var(--type)); }
67
+ [data-format="square"] #t1-sec-correction .headline { font-size: 116px; }
68
+ [data-format="vertical"] #t1-sec-correction .circle, [data-format="square"] #t1-sec-correction .circle { right: var(--safe-r); top: auto; bottom: var(--safe-b); }
69
+ [data-format="square"] #t1-sec-correction .circle { width: 270px; height: 270px; font-size: 100px; }
70
+ [data-format="vertical"] #t1-sec-correction .kicker { top: calc(var(--safe-t) + 160px); }
71
+ [data-format="vertical"] #t1-sec-correction .headline { top: calc(var(--safe-t) + 300px); }
72
+ [data-format="vertical"] #t1-sec-correction .circle { width: 340px; height: 340px; font-size: calc(90px * var(--type)); }
61
73
  </style>
62
74
  </head>
63
75
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-crt {
15
- position: absolute; inset: 0; width: 1920px; height: 1080px;
15
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
16
16
  background: #120f0a; color: #efe7d4; /* dark screen register (not pure black) */
17
17
  font-family: var(--font-display); overflow: hidden;
18
18
  }
@@ -42,16 +42,16 @@
42
42
  }
43
43
  #t1-sec-crt .wordmark {
44
44
  font-family: var(--font-display); font-style: italic; font-weight: var(--wt-black);
45
- font-size: 44px; color: var(--yellow); margin-bottom: 16px;
45
+ font-size: calc(44px * var(--type)); color: var(--yellow); margin-bottom: 16px;
46
46
  }
47
47
  #t1-sec-crt .title {
48
- font-weight: var(--wt-black); font-size: 140px; line-height: 0.95;
48
+ font-weight: var(--wt-black); font-size: calc(140px * var(--type)); line-height: 0.95;
49
49
  letter-spacing: var(--track-tight); color: #f3ecda; max-width: 980px;
50
50
  text-shadow: -3px 0 rgba(226,59,46,0.75), 3px 0 rgba(80,170,224,0.75);
51
51
  }
52
52
  #t1-sec-crt .label {
53
53
  display: inline-block; margin-top: 30px; background: var(--yellow); color: #120f0a; padding: 8px 22px;
54
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 30px;
54
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(30px * var(--type));
55
55
  letter-spacing: 0.1em; text-transform: uppercase; box-shadow: 0 0 28px rgba(79, 140, 255,0.55);
56
56
  }
57
57
  /* scanlines + flicker + power-on */
@@ -68,6 +68,17 @@
68
68
  background: #fff; z-index: 8; box-shadow: 0 0 40px #fff;
69
69
  }
70
70
  #t1-sec-crt .content { position: relative; z-index: 4; width: 100%; }
71
+
72
+ /* Vertical and square: the TV set fills the safe area (sits high in vertical), title smaller
73
+ so the longest word fits the screen. */
74
+ [data-format="vertical"] #t1-sec-crt .tv, [data-format="square"] #t1-sec-crt .tv {
75
+ left: var(--safe-l); top: var(--safe-t); margin: 0;
76
+ width: calc(var(--w) - var(--safe-l) - var(--safe-r)); height: calc(var(--h) - var(--safe-t) - var(--safe-b));
77
+ }
78
+ [data-format="vertical"] #t1-sec-crt .tv { padding: 44px; border-radius: 56px; }
79
+ [data-format="square"] #t1-sec-crt .tv { padding: 56px; border-radius: 60px; }
80
+ [data-format="vertical"] #t1-sec-crt .title { font-size: calc(86px * var(--type)); max-width: 640px; margin: 0 auto; }
81
+ [data-format="square"] #t1-sec-crt .title { font-size: 112px; max-width: 760px; margin: 0 auto; }
71
82
  </style>
72
83
  </head>
73
84
  <body>