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
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-cutout {
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,33 +31,43 @@
31
31
  background: radial-gradient(130% 120% at 35% 50%, transparent 58%, rgba(23,19,14,0.16) 100%);
32
32
  }
33
33
  #t1-sec-cutout .kicker {
34
- position: absolute; left: 150px; top: 250px; z-index: 4;
34
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 196px); z-index: 4;
35
35
  font-family: var(--font-label); font-weight: var(--wt-bold);
36
36
  font-size: var(--size-label); letter-spacing: var(--track-wide);
37
37
  text-transform: uppercase; color: var(--ink); background: var(--yellow); padding: 5px 16px;
38
38
  transform: skewX(var(--marker-skew));
39
39
  }
40
40
  #t1-sec-cutout .headline {
41
- position: absolute; left: 150px; top: 330px; width: 880px; z-index: 4;
42
- font-weight: var(--wt-black); font-size: 124px; line-height: 0.95;
41
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 276px); width: 880px; z-index: 4;
42
+ font-weight: var(--wt-black); font-size: calc(124px * var(--type)); line-height: 0.95;
43
43
  letter-spacing: var(--track-tight); color: var(--ink);
44
44
  }
45
45
  #t1-sec-cutout .headline em { font-style: italic; font-weight: var(--wt-thin); }
46
46
  /* the masked subject cutout */
47
47
  #t1-sec-cutout .subject {
48
- position: absolute; right: 120px; top: 150px; width: 620px; height: 820px;
48
+ position: absolute; right: calc(var(--safe-r) + 24px); top: calc(var(--safe-t) + 96px); width: 620px; height: 820px;
49
49
  background-color: var(--paper-2); background-image: var(--tex-halftone);
50
50
  background-size: var(--tex-halftone-size); z-index: 2;
51
51
  outline: 12px solid var(--yellow); outline-offset: -12px; transform: rotate(1.5deg);
52
52
  box-shadow: -16px 20px 0 rgba(23,19,14,0.14);
53
53
  }
54
54
  #t1-sec-cutout .wordmark {
55
- position: absolute; left: 980px; top: 760px; width: 200px; height: 200px;
55
+ position: absolute; left: calc(var(--safe-l) + 884px); top: calc(var(--safe-t) + 706px); width: 200px; height: 200px;
56
56
  background: var(--yellow); border-radius: 50%; z-index: 5;
57
57
  display: flex; align-items: center; justify-content: center;
58
- font-weight: var(--wt-black); font-style: italic; font-size: 64px; color: var(--ink);
58
+ font-weight: var(--wt-black); font-style: italic; font-size: calc(64px * var(--type)); color: var(--ink);
59
59
  transform: rotate(-5deg);
60
- } </style>
60
+ }
61
+ /* Vertical: kicker and headline on top, the cutout below them at the safe bottom right with
62
+ the wordmark circle overlapping its left edge. Square: headline left, cutout right column. */
63
+ [data-format="vertical"] #t1-sec-cutout .kicker, [data-format="square"] #t1-sec-cutout .kicker { left: var(--safe-l); top: var(--safe-t); }
64
+ [data-format="vertical"] #t1-sec-cutout .headline { left: var(--safe-l); top: calc(var(--safe-t) + 70px); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); font-size: calc(96px * var(--type)); }
65
+ [data-format="square"] #t1-sec-cutout .headline { left: var(--safe-l); top: calc(var(--safe-t) + 70px); width: 540px; font-size: 96px; }
66
+ [data-format="vertical"] #t1-sec-cutout .subject { right: var(--safe-r); top: auto; bottom: var(--safe-b); width: 440px; height: 470px; }
67
+ [data-format="square"] #t1-sec-cutout .subject { right: var(--safe-r); top: calc(var(--safe-t) + 40px); width: 360px; height: 560px; }
68
+ [data-format="vertical"] #t1-sec-cutout .wordmark { left: calc(var(--safe-l) + 90px); top: auto; bottom: calc(var(--safe-b) + 60px); }
69
+ [data-format="square"] #t1-sec-cutout .wordmark { left: calc(var(--safe-l) + 380px); top: calc(var(--safe-t) + 500px); }
70
+ </style>
61
71
  </head>
62
72
  <body>
63
73
  <div id="t1-sec-cutout" data-composition-id="t1-sec-cutout" data-start="0" data-width="1920" data-height="1080">
@@ -11,7 +11,7 @@
11
11
  <style>
12
12
  html, body { margin: 0; }
13
13
  #t1-sec-fullbleed {
14
- position: absolute; inset: 0; width: 1920px; height: 1080px;
14
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
15
15
  background: #1a160f; color: var(--paper);
16
16
  font-family: var(--font-display); overflow: hidden;
17
17
  }
@@ -30,24 +30,37 @@
30
30
  }
31
31
  #t1-sec-fullbleed .stage { position: absolute; inset: 0; transform-origin: 50% 60%; }
32
32
  #t1-sec-fullbleed .kicker {
33
- position: absolute; left: 150px; bottom: 470px;
33
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 416px);
34
34
  font-family: var(--font-label); font-weight: var(--wt-bold);
35
35
  font-size: var(--size-label); letter-spacing: var(--track-wide);
36
36
  text-transform: uppercase; color: var(--ink); background: var(--yellow); padding: 5px 16px;
37
37
  transform: skewX(var(--marker-skew));
38
38
  }
39
39
  #t1-sec-fullbleed .headline {
40
- position: absolute; left: 150px; bottom: 150px; width: 1500px;
41
- font-weight: var(--wt-black); font-size: 148px; line-height: 0.94;
40
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 96px); width: 1500px;
41
+ font-weight: var(--wt-black); font-size: calc(148px * var(--type)); line-height: 0.94;
42
42
  letter-spacing: var(--track-tight); color: var(--paper);
43
43
  }
44
44
  #t1-sec-fullbleed .headline em { font-style: normal; background: var(--yellow); color: var(--ink); padding: 0 14px; }
45
45
  #t1-sec-fullbleed .source {
46
- position: absolute; right: 150px; bottom: 96px;
46
+ position: absolute; right: calc(var(--safe-r) + 54px); bottom: calc(var(--safe-b) + 42px);
47
47
  font-family: var(--font-label); font-weight: var(--wt-bold);
48
48
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
49
49
  text-transform: uppercase; color: rgba(239,233,220,0.6);
50
50
  }
51
+
52
+ /* Vertical and square: headline across the safe width at the safe bottom, kicker above it,
53
+ source under it on the right; the scrim rises to cover the safe area. */
54
+ [data-format="vertical"] #t1-sec-fullbleed .stage { transform-origin: 46% 50%; }
55
+ [data-format="vertical"] #t1-sec-fullbleed .scrim { background: linear-gradient(0deg, rgba(12,9,6,0.92) 0%, rgba(12,9,6,0.85) 35%, rgba(12,9,6,0.3) 62%, rgba(12,9,6,0.0) 85%); }
56
+ [data-format="vertical"] #t1-sec-fullbleed .headline, [data-format="square"] #t1-sec-fullbleed .headline {
57
+ left: var(--safe-l); bottom: calc(var(--safe-b) + 60px); width: calc(var(--w) - var(--safe-l) - var(--safe-r));
58
+ }
59
+ [data-format="vertical"] #t1-sec-fullbleed .headline { font-size: calc(112px * var(--type)); }
60
+ [data-format="square"] #t1-sec-fullbleed .headline { font-size: 124px; }
61
+ [data-format="vertical"] #t1-sec-fullbleed .kicker { left: var(--safe-l); bottom: calc(var(--safe-b) + 370px); }
62
+ [data-format="square"] #t1-sec-fullbleed .kicker { left: var(--safe-l); bottom: calc(var(--safe-b) + 330px); }
63
+ [data-format="vertical"] #t1-sec-fullbleed .source, [data-format="square"] #t1-sec-fullbleed .source { right: var(--safe-r); bottom: var(--safe-b); }
51
64
  </style>
52
65
  </head>
53
66
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-hl {
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
  }
@@ -27,14 +27,14 @@
27
27
  background-size: 180px 180px; mix-blend-mode: multiply; opacity: 0.4; pointer-events: none; z-index: 5;
28
28
  }
29
29
  #t1-sec-hl .kicker {
30
- position: absolute; left: 150px; top: 340px;
30
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 286px);
31
31
  font-family: var(--font-label); font-weight: var(--wt-bold);
32
32
  font-size: var(--size-label); letter-spacing: var(--track-wide);
33
33
  text-transform: uppercase; color: var(--muted);
34
34
  }
35
35
  #t1-sec-hl .headline {
36
- position: absolute; left: 150px; top: 400px; width: 1500px;
37
- font-weight: var(--wt-thin); font-size: 144px; line-height: 1.04;
36
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 346px); width: 1500px;
37
+ font-weight: var(--wt-thin); font-size: calc(144px * var(--type)); line-height: 1.04;
38
38
  letter-spacing: var(--track-tight); color: var(--ink);
39
39
  }
40
40
  #t1-sec-hl .hl { position: relative; font-weight: var(--wt-black); white-space: nowrap; }
@@ -43,11 +43,21 @@
43
43
  background: var(--yellow); transform-origin: left center; z-index: -1;
44
44
  }
45
45
  #t1-sec-hl .source {
46
- position: absolute; left: 150px; bottom: 96px;
46
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 42px);
47
47
  font-family: var(--font-label); font-weight: var(--wt-bold);
48
48
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
49
49
  text-transform: uppercase; color: var(--muted);
50
50
  }
51
+
52
+ /* Vertical and square: kicker and headline across the safe width (the highlighted phrase
53
+ stays on one line, so the type shrinks to fit), source at the safe bottom. */
54
+ [data-format="vertical"] #t1-sec-hl .kicker, [data-format="square"] #t1-sec-hl .kicker { left: var(--safe-l); }
55
+ [data-format="vertical"] #t1-sec-hl .headline, [data-format="square"] #t1-sec-hl .headline { left: var(--safe-l); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); }
56
+ [data-format="vertical"] #t1-sec-hl .kicker { top: calc(var(--safe-t) + 330px); }
57
+ [data-format="vertical"] #t1-sec-hl .headline { top: calc(var(--safe-t) + 390px); font-size: calc(96px * var(--type)); }
58
+ [data-format="square"] #t1-sec-hl .kicker { top: calc(var(--safe-t) + 200px); }
59
+ [data-format="square"] #t1-sec-hl .headline { top: calc(var(--safe-t) + 260px); font-size: 120px; }
60
+ [data-format="vertical"] #t1-sec-hl .source, [data-format="square"] #t1-sec-hl .source { left: var(--safe-l); bottom: var(--safe-b); }
51
61
  </style>
52
62
  </head>
53
63
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-index {
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
  display: flex; align-items: center; justify-content: center;
@@ -36,22 +36,35 @@
36
36
  #t1-sec-index .tab {
37
37
  position: absolute; left: 90px; top: -54px; height: 54px; display: flex; align-items: center; padding: 0 28px;
38
38
  background: var(--red); color: var(--paper);
39
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 26px;
39
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(26px * var(--type));
40
40
  letter-spacing: 0.14em; text-transform: uppercase;
41
41
  }
42
42
  #t1-sec-index .code {
43
43
  position: absolute; left: 56px; top: 44px;
44
- font-family: var(--font-label); font-weight: var(--wt-bold); font-size: 26px;
44
+ font-family: var(--font-label); font-weight: var(--wt-bold); font-size: calc(26px * var(--type));
45
45
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted);
46
46
  }
47
47
  #t1-sec-index .title {
48
48
  position: absolute; left: 160px; top: 220px; width: 1080px;
49
- font-weight: var(--wt-black); font-size: 130px; line-height: 0.96; letter-spacing: var(--track-tight);
49
+ font-weight: var(--wt-black); font-size: calc(130px * var(--type)); line-height: 0.96; letter-spacing: var(--track-tight);
50
50
  }
51
51
  #t1-sec-index .sub {
52
52
  position: absolute; left: 160px; top: 470px; width: 1040px;
53
- font-family: var(--font-label); font-weight: var(--wt-reg); font-size: 30px; line-height: 1.5; color: var(--ink);
53
+ font-family: var(--font-label); font-weight: var(--wt-reg); font-size: calc(30px * var(--type)); line-height: 1.5; color: var(--ink);
54
54
  }
55
+
56
+ /* Vertical and square: the card fits the safe width and is centered on the safe box (not the
57
+ frame); red margin line, title and note move in to match the narrower card. */
58
+ [data-format="vertical"] #t1-sec-index .card { top: calc((var(--safe-t) - var(--safe-b)) / 2); left: calc((var(--safe-l) - var(--safe-r)) / 2); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); height: 720px; }
59
+ [data-format="square"] #t1-sec-index .card { top: 27px; width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 40px); height: 640px; }
60
+ [data-format="vertical"] #t1-sec-index .redline { left: 76px; }
61
+ [data-format="square"] #t1-sec-index .redline { left: 96px; }
62
+ [data-format="vertical"] #t1-sec-index .tab { left: 50px; }
63
+ [data-format="vertical"] #t1-sec-index .code { left: 40px; }
64
+ [data-format="vertical"] #t1-sec-index .title { left: 110px; top: 200px; width: 610px; font-size: calc(96px * var(--type)); }
65
+ [data-format="square"] #t1-sec-index .title { left: 136px; top: 190px; width: 700px; font-size: 112px; }
66
+ [data-format="vertical"] #t1-sec-index .sub { left: 110px; top: 480px; width: 610px; }
67
+ [data-format="square"] #t1-sec-index .sub { left: 136px; top: 440px; width: 700px; }
55
68
  </style>
56
69
  </head>
57
70
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-map {
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
  }
@@ -35,36 +35,48 @@
35
35
  background: radial-gradient(130% 120% at 40% 45%, transparent 52%, rgba(23,19,14,0.24) 100%);
36
36
  }
37
37
  /* location marker (yellow dot + ink crosshair) */
38
- #t1-sec-map .marker { position: absolute; right: 430px; top: 300px; z-index: 4; }
38
+ #t1-sec-map .marker { position: absolute; right: calc(var(--safe-r) + 334px); top: calc(var(--safe-t) + 246px); z-index: 4; }
39
39
  #t1-sec-map .marker .ring { width: 120px; height: 120px; border: 4px solid var(--ink); border-radius: 50%; }
40
40
  #t1-sec-map .marker .dot { position: absolute; left: 36px; top: 36px; width: 48px; height: 48px; background: var(--yellow); border: 4px solid var(--ink); border-radius: 50%; }
41
41
  #t1-sec-map .marker .cx, #t1-sec-map .marker .cy { position: absolute; background: var(--ink); }
42
42
  #t1-sec-map .marker .cx { left: -30px; right: -30px; top: 58px; height: 3px; }
43
43
  #t1-sec-map .marker .cy { top: -30px; bottom: -30px; left: 58px; width: 3px; }
44
44
  #t1-sec-map .place {
45
- position: absolute; right: 320px; top: 330px; z-index: 5;
46
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 30px;
45
+ position: absolute; right: calc(var(--safe-r) + 224px); top: calc(var(--safe-t) + 276px); z-index: 5;
46
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(30px * var(--type));
47
47
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink);
48
48
  background: var(--yellow); padding: 4px 14px; transform: rotate(-2deg);
49
49
  }
50
50
  #t1-sec-map .kicker {
51
- position: absolute; left: 150px; bottom: 430px; z-index: 4;
51
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 376px); z-index: 4;
52
52
  font-family: var(--font-label); font-weight: var(--wt-bold);
53
53
  font-size: var(--size-label); letter-spacing: var(--track-wide);
54
54
  text-transform: uppercase; color: var(--ink); background: var(--paper); padding: 5px 14px;
55
55
  }
56
56
  #t1-sec-map .headline {
57
- position: absolute; left: 150px; bottom: 150px; width: 1300px; z-index: 4;
58
- font-weight: var(--wt-black); font-size: 138px; line-height: 0.94;
57
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 96px); width: 1300px; z-index: 4;
58
+ font-weight: var(--wt-black); font-size: calc(138px * var(--type)); line-height: 0.94;
59
59
  letter-spacing: var(--track-tight); color: var(--ink);
60
60
  }
61
61
  #t1-sec-map .headline em { font-style: normal; background: var(--yellow); padding: 0 14px; }
62
+
63
+ /* Vertical and square: marker and place tag near the top right of the safe area, kicker and
64
+ headline across the safe width at the safe bottom. */
65
+ [data-format="vertical"] #t1-sec-map .marker { right: calc(var(--safe-r) + 230px); top: calc(var(--safe-t) + 80px); }
66
+ [data-format="vertical"] #t1-sec-map .place { right: calc(var(--safe-r) + 90px); top: calc(var(--safe-t) + 110px); }
67
+ [data-format="square"] #t1-sec-map .marker { right: calc(var(--safe-r) + 230px); top: calc(var(--safe-t) + 80px); }
68
+ [data-format="square"] #t1-sec-map .place { right: calc(var(--safe-r) + 100px); top: calc(var(--safe-t) + 110px); }
69
+ [data-format="vertical"] #t1-sec-map .headline, [data-format="square"] #t1-sec-map .headline { left: var(--safe-l); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); }
70
+ [data-format="vertical"] #t1-sec-map .headline { bottom: calc(var(--safe-b) + 40px); font-size: calc(112px * var(--type)); }
71
+ [data-format="square"] #t1-sec-map .headline { bottom: var(--safe-b); font-size: 120px; }
72
+ [data-format="vertical"] #t1-sec-map .kicker { left: var(--safe-l); bottom: calc(var(--safe-b) + 340px); }
73
+ [data-format="square"] #t1-sec-map .kicker { left: var(--safe-l); bottom: calc(var(--safe-b) + 290px); }
62
74
  </style>
63
75
  </head>
64
76
  <body>
65
77
  <div id="t1-sec-map" data-composition-id="t1-sec-map" data-start="0" data-width="1920" data-height="1080">
66
78
  <div class="geo"></div>
67
- <svg class="routes" viewBox="0 0 1920 1080" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
79
+ <svg class="routes" viewBox="0 0 1920 1080" preserveAspectRatio="xMidYMid slice" xmlns="http://www.w3.org/2000/svg">
68
80
  <path class="river" d="M-20 240 C 360 300, 520 140, 900 260 S 1500 360, 1960 250" />
69
81
  <path d="M200 700 C 500 640, 760 820, 1100 720 S 1700 700, 1960 780" />
70
82
  <path d="M1300 80 C 1260 280, 1480 440, 1380 640" />
@@ -11,7 +11,7 @@
11
11
  <style>
12
12
  html, body { margin: 0; }
13
13
  #t1-sec-marker {
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
  }
@@ -29,14 +29,14 @@
29
29
  position: absolute; inset: 0; pointer-events: none;
30
30
  background: radial-gradient(130% 120% at 40% 50%, transparent 58%, rgba(23,19,14,0.15) 100%);
31
31
  }
32
- #t1-sec-marker .stage { position: absolute; left: 150px; top: 300px; transform-origin: left top; }
32
+ #t1-sec-marker .stage { position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 246px); transform-origin: left top; }
33
33
  #t1-sec-marker .kicker {
34
34
  font-family: var(--font-label); font-weight: var(--wt-bold);
35
35
  font-size: var(--size-label); letter-spacing: var(--track-wide);
36
36
  text-transform: uppercase; color: var(--ink); margin-bottom: 26px;
37
37
  }
38
38
  #t1-sec-marker .line {
39
- display: inline-block; font-weight: var(--wt-black); font-size: 132px;
39
+ display: inline-block; font-weight: var(--wt-black); font-size: calc(132px * var(--type));
40
40
  line-height: 1.0; letter-spacing: var(--track-tight); color: var(--ink);
41
41
  background: var(--yellow); padding: 2px 26px; margin: 0 0 18px; clear: both; float: left;
42
42
  box-shadow: 7px 7px 0 rgba(23,19,14,0.14);
@@ -44,12 +44,19 @@
44
44
  #t1-sec-marker .l1 { transform: skewX(-1.6deg) rotate(-0.6deg); }
45
45
  #t1-sec-marker .l2 { transform: skewX(1.2deg) rotate(0.5deg); background: var(--ink); color: var(--paper); }
46
46
  #t1-sec-marker .l3 { transform: skewX(-0.8deg) rotate(-0.3deg); } #t1-sec-marker .badge {
47
- position: absolute; right: 150px; bottom: 130px; width: 150px; height: 150px;
47
+ position: absolute; right: calc(var(--safe-r) + 54px); bottom: calc(var(--safe-b) + 76px); width: 150px; height: 150px;
48
48
  background: var(--red); color: var(--paper); border-radius: 50%;
49
49
  display: flex; align-items: center; justify-content: center; text-align: center;
50
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 26px;
50
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(26px * var(--type));
51
51
  letter-spacing: 0.04em; transform: rotate(-8deg); line-height: 1.0;
52
52
  }
53
+
54
+ /* Vertical and square: the marker stack starts higher in the safe area at a smaller size,
55
+ badge at the safe bottom right. */
56
+ [data-format="vertical"] #t1-sec-marker .stage, [data-format="square"] #t1-sec-marker .stage { left: var(--safe-l); top: calc(var(--safe-t) + 100px); }
57
+ [data-format="vertical"] #t1-sec-marker .line { font-size: calc(118px * var(--type)); }
58
+ [data-format="square"] #t1-sec-marker .line { font-size: 120px; }
59
+ [data-format="vertical"] #t1-sec-marker .badge, [data-format="square"] #t1-sec-marker .badge { right: var(--safe-r); bottom: var(--safe-b); }
53
60
  </style>
54
61
  </head>
55
62
  <body>
@@ -11,7 +11,7 @@
11
11
  <style>
12
12
  html, body { margin: 0; }
13
13
  #t1-sec-num {
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
  }
@@ -26,25 +26,39 @@
26
26
  background-size: 180px 180px; mix-blend-mode: multiply; opacity: 0.4; pointer-events: none; z-index: 5;
27
27
  }
28
28
  #t1-sec-num .ghost {
29
- position: absolute; right: -40px; top: 50%; transform: translateY(-50%);
30
- font-weight: var(--wt-black); font-style: italic; font-size: 1280px; line-height: 0.7;
29
+ position: absolute; right: calc(var(--safe-r) + 130px); top: 50%; transform: translateY(-50%);
30
+ font-weight: var(--wt-black); font-style: italic; font-size: calc(1280px * var(--type)); line-height: 0.7;
31
31
  color: transparent; -webkit-text-stroke: 5px rgba(23,19,14,0.16);
32
32
  z-index: 1; user-select: none;
33
33
  }
34
34
  #t1-sec-num .kicker {
35
- position: absolute; left: 150px; top: 360px; z-index: 3;
35
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 306px); z-index: 3;
36
36
  font-family: var(--font-label); font-weight: var(--wt-bold);
37
37
  font-size: var(--size-label); letter-spacing: var(--track-wide);
38
38
  text-transform: uppercase; color: var(--ink);
39
39
  }
40
40
  #t1-sec-num .kicker::before { content: ""; display: inline-block; width: 56px; height: 3px; background: var(--red); margin-right: 16px; vertical-align: middle; }
41
41
  #t1-sec-num .headline {
42
- position: absolute; left: 150px; top: 410px; width: 1180px; z-index: 3;
43
- font-weight: var(--wt-black); font-size: 138px; line-height: 0.95;
42
+ position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 356px); width: 1180px; z-index: 3;
43
+ font-weight: var(--wt-black); font-size: calc(138px * var(--type)); line-height: 0.95;
44
44
  letter-spacing: var(--track-tight); color: var(--ink);
45
45
  }
46
46
  #t1-sec-num .headline em { font-style: italic; font-weight: var(--wt-thin); }
47
- #t1-sec-num .underline { position: absolute; left: 154px; top: 720px; width: 0; height: 8px; background: var(--yellow); z-index: 2; }
47
+ #t1-sec-num .underline { position: absolute; left: calc(var(--safe-l) + 58px); top: calc(var(--safe-t) + 666px); width: 0; height: 8px; background: var(--yellow); z-index: 2; }
48
+
49
+ /* Vertical and square: the ghost numeral fills the safe box behind the text (vertical) or
50
+ its right side (square); kicker, headline and underline stack on the left. */
51
+ [data-format="vertical"] #t1-sec-num .ghost { right: calc(var(--safe-r) + 110px); top: calc((var(--h) + var(--safe-t) - var(--safe-b)) / 2); font-size: calc(900px * var(--type)); }
52
+ [data-format="square"] #t1-sec-num .ghost { right: calc(var(--safe-r) + 100px); font-size: 1000px; }
53
+ [data-format="vertical"] #t1-sec-num .kicker, [data-format="square"] #t1-sec-num .kicker { left: var(--safe-l); }
54
+ [data-format="vertical"] #t1-sec-num .headline, [data-format="square"] #t1-sec-num .headline { left: var(--safe-l); width: calc(var(--w) - var(--safe-l) - var(--safe-r)); }
55
+ [data-format="vertical"] #t1-sec-num .underline, [data-format="square"] #t1-sec-num .underline { left: calc(var(--safe-l) + 4px); }
56
+ [data-format="vertical"] #t1-sec-num .kicker { top: calc(var(--safe-t) + 330px); }
57
+ [data-format="vertical"] #t1-sec-num .headline { top: calc(var(--safe-t) + 380px); font-size: calc(110px * var(--type)); }
58
+ [data-format="vertical"] #t1-sec-num .underline { top: calc(var(--safe-t) + 800px); }
59
+ [data-format="square"] #t1-sec-num .kicker { top: calc(var(--safe-t) + 230px); }
60
+ [data-format="square"] #t1-sec-num .headline { top: calc(var(--safe-t) + 280px); width: 640px; font-size: 116px; }
61
+ [data-format="square"] #t1-sec-num .underline { top: calc(var(--safe-t) + 640px); }
48
62
  </style>
49
63
  </head>
50
64
  <body>
@@ -11,12 +11,12 @@
11
11
  <style>
12
12
  html, body { margin: 0; }
13
13
  #t1-sec-split {
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
  }
18
18
  #t1-sec-split .grid {
19
- position: absolute; left: 0; top: 0; width: 1100px; height: 1080px;
19
+ position: absolute; left: 0; top: 0; width: 1100px; height: var(--h);
20
20
  background-image:
21
21
  repeating-linear-gradient(0deg, var(--grid-line) 0 1px, transparent 1px var(--grid-size)),
22
22
  repeating-linear-gradient(90deg, var(--grid-line) 0 1px, transparent 1px var(--grid-size));
@@ -27,36 +27,52 @@
27
27
  }
28
28
  /* right image panel */
29
29
  #t1-sec-split .panel {
30
- position: absolute; right: 0; top: 0; width: 760px; height: 1080px;
30
+ position: absolute; right: 0; top: 0; width: 760px; height: var(--h);
31
31
  background-color: var(--paper-2); background-image: var(--tex-halftone);
32
32
  background-size: var(--tex-halftone-size); z-index: 2;
33
33
  }
34
34
  #t1-sec-split .panel::after {
35
- content: "ARCHIVE"; position: absolute; left: 24px; bottom: 24px;
35
+ content: "ARCHIVE"; position: absolute; left: 24px; bottom: var(--safe-b);
36
36
  font-family: var(--font-label); font-weight: var(--wt-bold);
37
37
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
38
38
  color: var(--ink); background: var(--yellow); padding: 3px 12px;
39
39
  }
40
- #t1-sec-split .rule { position: absolute; right: 760px; top: 0; width: 10px; height: 1080px; background: var(--ink); z-index: 3; transform-origin: top center; }
40
+ #t1-sec-split .rule { position: absolute; right: 760px; top: 0; width: 10px; height: var(--h); background: var(--ink); z-index: 3; transform-origin: top center; }
41
41
  #t1-sec-split .kicker {
42
- position: absolute; left: 130px; top: 360px; z-index: 4;
42
+ position: absolute; left: calc(var(--safe-l) + 34px); top: calc(var(--safe-t) + 306px); z-index: 4;
43
43
  font-family: var(--font-label); font-weight: var(--wt-bold);
44
44
  font-size: var(--size-label); letter-spacing: var(--track-wide);
45
45
  text-transform: uppercase; color: var(--ink);
46
46
  }
47
47
  #t1-sec-split .kicker::before { content: ""; display: inline-block; width: 50px; height: 3px; background: var(--red); margin-right: 16px; vertical-align: middle; }
48
48
  #t1-sec-split .headline {
49
- position: absolute; left: 130px; top: 410px; width: 900px; z-index: 4;
50
- font-weight: var(--wt-black); font-size: 124px; line-height: 0.95;
49
+ position: absolute; left: calc(var(--safe-l) + 34px); top: calc(var(--safe-t) + 356px); width: 900px; z-index: 4;
50
+ font-weight: var(--wt-black); font-size: calc(124px * var(--type)); line-height: 0.95;
51
51
  letter-spacing: var(--track-tight); color: var(--ink);
52
52
  }
53
53
  #t1-sec-split .headline em { font-style: italic; font-weight: var(--wt-thin); }
54
54
  #t1-sec-split .source {
55
- position: absolute; left: 130px; bottom: 110px; z-index: 4;
55
+ position: absolute; left: calc(var(--safe-l) + 34px); bottom: calc(var(--safe-b) + 56px); z-index: 4;
56
56
  font-family: var(--font-label); font-weight: var(--wt-bold);
57
57
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
58
58
  text-transform: uppercase; color: var(--muted);
59
59
  }
60
+
61
+ /* Vertical and square: side-by-side becomes stacked. The image panel is a full-width band
62
+ on top with the rule along its bottom edge; kicker, headline and source sit below it. */
63
+ [data-format="vertical"] #t1-sec-split .grid, [data-format="square"] #t1-sec-split .grid { width: var(--w); }
64
+ [data-format="vertical"] #t1-sec-split .panel, [data-format="square"] #t1-sec-split .panel { width: var(--w); }
65
+ [data-format="vertical"] #t1-sec-split .panel { height: 640px; }
66
+ [data-format="square"] #t1-sec-split .panel { height: 400px; }
67
+ [data-format="vertical"] #t1-sec-split .panel::after, [data-format="square"] #t1-sec-split .panel::after { left: var(--safe-l); bottom: 24px; }
68
+ [data-format="vertical"] #t1-sec-split .rule, [data-format="square"] #t1-sec-split .rule { right: 0; width: var(--w); height: 10px; transform-origin: center top; }
69
+ [data-format="vertical"] #t1-sec-split .rule { top: 640px; }
70
+ [data-format="square"] #t1-sec-split .rule { top: 400px; }
71
+ [data-format="vertical"] #t1-sec-split .kicker { left: var(--safe-l); top: 710px; }
72
+ [data-format="vertical"] #t1-sec-split .headline { left: var(--safe-l); top: 760px; width: calc(var(--w) - var(--safe-l) - var(--safe-r)); font-size: calc(100px * var(--type)); }
73
+ [data-format="square"] #t1-sec-split .kicker { left: var(--safe-l); top: 450px; }
74
+ [data-format="square"] #t1-sec-split .headline { left: var(--safe-l); top: 500px; width: calc(var(--w) - var(--safe-l) - var(--safe-r)); font-size: 100px; }
75
+ [data-format="vertical"] #t1-sec-split .source, [data-format="square"] #t1-sec-split .source { left: var(--safe-l); bottom: var(--safe-b); }
60
76
  </style>
61
77
  </head>
62
78
  <body>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  html, body { margin: 0; }
14
14
  #t1-sec-stacked {
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
  }
@@ -32,28 +32,44 @@
32
32
  background: radial-gradient(120% 120% at 50% 50%, transparent 56%, rgba(23,19,14,0.15) 100%);
33
33
  }
34
34
  #t1-sec-stacked .stage { position: absolute; inset: 0; transform-origin: 50% 50%; }
35
- #t1-sec-stacked .title { position: absolute; left: 150px; top: 250px; width: 1620px; }
35
+ #t1-sec-stacked .title { position: absolute; left: calc(var(--safe-l) + 54px); top: calc(var(--safe-t) + 196px); width: 1620px; }
36
36
  #t1-sec-stacked .line { display: block; line-height: 0.94; letter-spacing: var(--track-tight); overflow: hidden; }
37
- #t1-sec-stacked .l1 { font-weight: var(--wt-thin); font-size: 150px; }
38
- #t1-sec-stacked .l2 { font-weight: var(--wt-black); font-style: italic; font-size: 176px; }
39
- #t1-sec-stacked .l3 { font-weight: var(--wt-thin); font-size: 150px; }
37
+ #t1-sec-stacked .l1 { font-weight: var(--wt-thin); font-size: calc(150px * var(--type)); }
38
+ #t1-sec-stacked .l2 { font-weight: var(--wt-black); font-style: italic; font-size: calc(176px * var(--type)); }
39
+ #t1-sec-stacked .l3 { font-weight: var(--wt-thin); font-size: calc(150px * var(--type)); }
40
40
  #t1-sec-stacked .l1 span, #t1-sec-stacked .l2 span, #t1-sec-stacked .l3 span { display: inline-block; }
41
41
  /* keyword over a circle */
42
42
  #t1-sec-stacked .key {
43
- position: absolute; left: 1130px; top: 470px; z-index: 3;
44
- font-weight: var(--wt-black); font-style: italic; font-size: 176px; color: var(--ink);
43
+ position: absolute; left: calc(var(--safe-l) + 1034px); top: calc(var(--safe-t) + 416px); z-index: 3;
44
+ font-weight: var(--wt-black); font-style: italic; font-size: calc(176px * var(--type)); color: var(--ink);
45
45
  }
46
46
  #t1-sec-stacked .circle {
47
- position: absolute; left: 1090px; top: 430px; width: 340px; height: 340px;
47
+ position: absolute; left: calc(var(--safe-l) + 994px); top: calc(var(--safe-t) + 376px); width: 340px; height: 340px;
48
48
  background: var(--yellow); border-radius: 50%; z-index: 1;
49
49
  }
50
50
  #t1-sec-stacked .source {
51
- position: absolute; left: 150px; bottom: 96px; z-index: 3;
51
+ position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 42px); z-index: 3;
52
52
  font-family: var(--font-label); font-weight: var(--wt-bold);
53
53
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
54
54
  text-transform: uppercase; color: var(--muted);
55
55
  }
56
- #t1-sec-stacked .rule { position: absolute; left: 150px; bottom: 150px; width: 0; height: 6px; background: var(--red); z-index: 3; }
56
+ #t1-sec-stacked .rule { position: absolute; left: calc(var(--safe-l) + 54px); bottom: calc(var(--safe-b) + 96px); width: 0; height: 6px; background: var(--red); z-index: 3; }
57
+
58
+ /* Vertical and square: the three lines stack from the top of the safe area, the keyword
59
+ circle sits under them (right of center), rule and source at the safe bottom. */
60
+ [data-format="vertical"] #t1-sec-stacked .stage { transform-origin: 46% 40%; }
61
+ /* text keeps ~28px clear of the safe edges because the stage zooms 4% toward its origin */
62
+ [data-format="vertical"] #t1-sec-stacked .title, [data-format="square"] #t1-sec-stacked .title { left: calc(var(--safe-l) + 28px); top: calc(var(--safe-t) + 24px); width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 56px); }
63
+ [data-format="vertical"] #t1-sec-stacked .l1, [data-format="vertical"] #t1-sec-stacked .l3 { font-size: calc(124px * var(--type)); }
64
+ [data-format="vertical"] #t1-sec-stacked .l2 { font-size: calc(128px * var(--type)); }
65
+ [data-format="square"] #t1-sec-stacked .l1, [data-format="square"] #t1-sec-stacked .l3 { font-size: 124px; }
66
+ [data-format="square"] #t1-sec-stacked .l2 { font-size: 144px; }
67
+ [data-format="vertical"] #t1-sec-stacked .circle { left: calc(var(--safe-l) + 330px); top: calc(var(--safe-t) + 500px); }
68
+ [data-format="vertical"] #t1-sec-stacked .key { left: calc(var(--safe-l) + 370px); top: calc(var(--safe-t) + 540px); font-size: calc(146px * var(--type)); }
69
+ [data-format="square"] #t1-sec-stacked .circle { left: calc(var(--safe-l) + 540px); top: calc(var(--safe-t) + 420px); width: 300px; height: 300px; }
70
+ [data-format="square"] #t1-sec-stacked .key { left: calc(var(--safe-l) + 570px); top: calc(var(--safe-t) + 450px); font-size: 150px; }
71
+ [data-format="vertical"] #t1-sec-stacked .source, [data-format="square"] #t1-sec-stacked .source { left: calc(var(--safe-l) + 28px); bottom: calc(var(--safe-b) + 28px); }
72
+ [data-format="vertical"] #t1-sec-stacked .rule, [data-format="square"] #t1-sec-stacked .rule { left: calc(var(--safe-l) + 28px); bottom: calc(var(--safe-b) + 82px); }
57
73
  </style>
58
74
  </head>
59
75
  <body>
@@ -11,7 +11,7 @@
11
11
  <style>
12
12
  html, body { margin: 0; }
13
13
  #t1-sec-stamp {
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;
@@ -41,19 +41,28 @@
41
41
  #t1-sec-stamp .stamp::before { top: 14px; }
42
42
  #t1-sec-stamp .stamp::after { bottom: 14px; }
43
43
  #t1-sec-stamp .kick {
44
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 30px;
44
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(30px * var(--type));
45
45
  letter-spacing: 0.3em; text-transform: uppercase; margin-bottom: 10px;
46
46
  }
47
47
  #t1-sec-stamp .title {
48
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 150px;
48
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(150px * var(--type));
49
49
  letter-spacing: 0.02em; text-transform: uppercase; line-height: 0.92;
50
50
  }
51
51
  #t1-sec-stamp .date {
52
- position: absolute; z-index: 3; right: 320px; bottom: 250px;
52
+ position: absolute; z-index: 3; right: calc(var(--safe-r) + 224px); bottom: calc(var(--safe-b) + 196px);
53
53
  border: 5px solid var(--ink); color: var(--ink); padding: 8px 18px; opacity: 0.78;
54
- font-family: var(--font-label); font-weight: var(--wt-black); font-size: 34px;
54
+ font-family: var(--font-label); font-weight: var(--wt-black); font-size: calc(34px * var(--type));
55
55
  letter-spacing: 0.12em; text-transform: uppercase; transform: rotate(5deg);
56
56
  }
57
+
58
+ /* Vertical and square: the stamp is centered on the safe box (not the frame) at a size that
59
+ fits its width; the date stamp sits under it on the right. */
60
+ [data-format="vertical"] #t1-sec-stamp .stamp { top: calc((var(--safe-t) - var(--safe-b)) / 2); left: calc((var(--safe-l) - var(--safe-r)) / 2); padding: 26px 44px; }
61
+ [data-format="vertical"] #t1-sec-stamp .title { font-size: calc(80px * var(--type)); }
62
+ [data-format="square"] #t1-sec-stamp .stamp { padding: 26px 48px; }
63
+ [data-format="square"] #t1-sec-stamp .title { font-size: 112px; }
64
+ [data-format="vertical"] #t1-sec-stamp .date { right: calc(var(--safe-r) + 20px); bottom: calc(var(--safe-b) + 150px); }
65
+ [data-format="square"] #t1-sec-stamp .date { right: calc(var(--safe-r) + 40px); bottom: calc(var(--safe-b) + 120px); }
57
66
  </style>
58
67
  </head>
59
68
  <body>