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
@@ -13,7 +13,7 @@
13
13
  <style>
14
14
  html, body { margin: 0; }
15
15
  #t1-ov-compare {
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
  }
@@ -36,7 +36,7 @@
36
36
 
37
37
  /* marker title spanning top */
38
38
  #t1-ov-compare .marker-title {
39
- position: absolute; top: 72px; left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
39
+ position: absolute; top: calc(var(--safe-t) + 18px); left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
40
40
  background: var(--yellow); padding: 10px 36px; z-index: 5;
41
41
  font-weight: var(--wt-black); font-size: var(--size-title);
42
42
  letter-spacing: var(--track-tight); text-transform: uppercase; white-space: nowrap;
@@ -50,10 +50,10 @@
50
50
 
51
51
  /* two panels */
52
52
  #t1-ov-compare .panel {
53
- position: absolute; top: 0; bottom: 0; width: 960px; overflow: hidden;
53
+ position: absolute; top: 0; bottom: 0; width: calc(var(--w) / 2); overflow: hidden;
54
54
  }
55
55
  #t1-ov-compare .panel.left { left: 0; background: var(--paper); }
56
- #t1-ov-compare .panel.right { left: 960px; background: var(--paper-2); }
56
+ #t1-ov-compare .panel.right { left: calc(var(--w) / 2); background: var(--paper-2); }
57
57
 
58
58
  /* column headers */
59
59
  #t1-ov-compare .col-header {
@@ -61,12 +61,12 @@
61
61
  padding: 0 80px;
62
62
  }
63
63
  #t1-ov-compare .panel.left .col-header { padding-left: 120px; }
64
- #t1-ov-compare .panel.right .col-header { padding-left: 80px; }
64
+ #t1-ov-compare .panel.right .col-header { padding-left: 80px; padding-right: var(--safe-r); }
65
65
 
66
66
  #t1-ov-compare .col-header-inner {
67
67
  display: inline-block; background: var(--ink);
68
68
  padding: 8px 28px; color: var(--paper);
69
- font-weight: var(--wt-black); font-size: 48px;
69
+ font-weight: var(--wt-black); font-size: calc(48px * var(--type));
70
70
  letter-spacing: var(--track-tight); text-transform: uppercase;
71
71
  }
72
72
  #t1-ov-compare .panel.right .col-header-inner {
@@ -79,7 +79,7 @@
79
79
  padding: 0 80px; list-style: none; margin: 0;
80
80
  }
81
81
  #t1-ov-compare .panel.left .items { padding-left: 120px; }
82
- #t1-ov-compare .panel.right .items { padding-left: 80px; }
82
+ #t1-ov-compare .panel.right .items { padding-left: 80px; padding-right: var(--safe-r); }
83
83
 
84
84
  #t1-ov-compare .item {
85
85
  display: flex; align-items: flex-start; gap: 22px;
@@ -92,16 +92,47 @@
92
92
  #t1-ov-compare .panel.right .dot { background: var(--red); }
93
93
  #t1-ov-compare .item-text {
94
94
  font-family: var(--font-label); font-weight: var(--wt-bold);
95
- font-size: 40px; line-height: 1.25; color: var(--ink);
95
+ font-size: calc(40px * var(--type)); line-height: 1.25; color: var(--ink);
96
96
  }
97
97
 
98
98
  /* source */
99
99
  #t1-ov-compare .source {
100
- position: absolute; bottom: 56px; left: 120px; z-index: 6;
100
+ position: absolute; bottom: calc(var(--safe-b) + 2px); left: calc(var(--safe-l) + 24px); z-index: 6;
101
101
  font-family: var(--font-label); font-weight: var(--wt-bold);
102
102
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
103
103
  text-transform: uppercase; color: var(--muted);
104
104
  }
105
+
106
+ /* Vertical: the two sides stack, option A on top and option B below a horizontal seam, each
107
+ with its header and points inside the safe width. */
108
+ [data-format="vertical"] #t1-ov-compare .marker-title, [data-format="square"] #t1-ov-compare .marker-title {
109
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
110
+ width: max-content; max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 72px);
111
+ white-space: normal; text-align: center;
112
+ }
113
+ [data-format="vertical"] #t1-ov-compare .marker-title { font-size: calc(58px * var(--type)); }
114
+ [data-format="vertical"] #t1-ov-compare .panel { width: var(--w); left: 0; }
115
+ [data-format="vertical"] #t1-ov-compare .panel.left { bottom: auto; height: calc(var(--safe-t) + 502px); }
116
+ [data-format="vertical"] #t1-ov-compare .panel.right { top: calc(var(--safe-t) + 502px); }
117
+ [data-format="vertical"] #t1-ov-compare .seam { left: 0; right: 0; width: auto; margin: 0; top: calc(var(--safe-t) + 499px); bottom: auto; height: 6px; }
118
+ [data-format="vertical"] #t1-ov-compare .panel .col-header, [data-format="vertical"] #t1-ov-compare .panel .items { padding-left: var(--safe-l); padding-right: var(--safe-r); }
119
+ [data-format="vertical"] #t1-ov-compare .panel.left .col-header { top: calc(var(--safe-t) + 136px); }
120
+ [data-format="vertical"] #t1-ov-compare .panel.left .items { top: calc(var(--safe-t) + 230px); }
121
+ [data-format="vertical"] #t1-ov-compare .panel.right .col-header { top: 34px; }
122
+ [data-format="vertical"] #t1-ov-compare .panel.right .items { top: 124px; }
123
+ [data-format="vertical"] #t1-ov-compare .item { margin-bottom: 30px; }
124
+ [data-format="vertical"] #t1-ov-compare .item-text { font-size: calc(36px * var(--type)); }
125
+ [data-format="vertical"] #t1-ov-compare .dot { margin-top: 15px; }
126
+ [data-format="vertical"] #t1-ov-compare .source, [data-format="square"] #t1-ov-compare .source { left: var(--safe-l); bottom: var(--safe-b); }
127
+ /* Square: side by side as landscape, columns padded to the safe box. */
128
+ [data-format="square"] #t1-ov-compare .marker-title { font-size: 72px; }
129
+ [data-format="square"] #t1-ov-compare .col-header { top: calc(var(--safe-t) + 150px); }
130
+ [data-format="square"] #t1-ov-compare .items { top: calc(var(--safe-t) + 250px); }
131
+ [data-format="square"] #t1-ov-compare .panel.left .col-header, [data-format="square"] #t1-ov-compare .panel.left .items { padding-left: var(--safe-l); padding-right: 40px; }
132
+ [data-format="square"] #t1-ov-compare .panel.right .col-header, [data-format="square"] #t1-ov-compare .panel.right .items { padding-left: 40px; padding-right: var(--safe-r); }
133
+ [data-format="square"] #t1-ov-compare .item { margin-bottom: 36px; gap: 18px; }
134
+ [data-format="square"] #t1-ov-compare .item-text { font-size: 34px; }
135
+ [data-format="square"] #t1-ov-compare .dot { margin-top: 11px; }
105
136
  </style>
106
137
  </head>
107
138
  <body>
@@ -14,7 +14,7 @@
14
14
  <style>
15
15
  html, body { margin: 0; }
16
16
  #t1-ov-deck {
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,14 +35,14 @@
35
35
  }
36
36
  /* marker title */
37
37
  #t1-ov-deck .title {
38
- position: absolute; top: 62px; left: 50%;
38
+ position: absolute; top: calc(var(--safe-t) + 8px); left: 50%;
39
39
  transform: translateX(-50%) skewX(var(--marker-skew));
40
40
  background: var(--yellow); padding: 8px 28px; z-index: 10;
41
41
  font-weight: var(--wt-black); font-size: var(--size-title);
42
42
  letter-spacing: var(--track-tight); text-transform: uppercase; white-space: nowrap;
43
43
  }
44
44
  #t1-ov-deck .intro {
45
- position: absolute; top: 218px; left: 50%; transform: translateX(-50%);
45
+ position: absolute; top: calc(var(--safe-t) + 164px); left: 50%; transform: translateX(-50%);
46
46
  width: 900px; text-align: center; z-index: 10;
47
47
  font-family: var(--font-label); font-weight: var(--wt-reg);
48
48
  font-size: var(--size-body); line-height: 1.4; color: var(--muted);
@@ -101,10 +101,10 @@
101
101
  }
102
102
  #t1-ov-deck .card-1 .card-num { color: var(--ink); }
103
103
  #t1-ov-deck .card-topic {
104
- font-weight: var(--wt-black); font-size: 52px;
104
+ font-weight: var(--wt-black); font-size: calc(52px * var(--type));
105
105
  line-height: 1.1; letter-spacing: var(--track-tight); color: var(--ink);
106
106
  }
107
- #t1-ov-deck .card-1 .card-topic { font-size: 58px; }
107
+ #t1-ov-deck .card-1 .card-topic { font-size: calc(58px * var(--type)); }
108
108
  /* ruled lines on the card bodies */
109
109
  #t1-ov-deck .card-lines {
110
110
  position: absolute; left: 30px; right: 30px; top: 80px; bottom: 120px;
@@ -114,11 +114,31 @@
114
114
  }
115
115
  /* source */
116
116
  #t1-ov-deck .source {
117
- position: absolute; left: 130px; bottom: 60px; z-index: 10;
117
+ position: absolute; left: calc(var(--safe-l) + 34px); bottom: calc(var(--safe-b) + 6px); z-index: 10;
118
118
  font-family: var(--font-label); font-weight: var(--wt-bold);
119
119
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
120
120
  text-transform: uppercase; color: var(--muted);
121
121
  }
122
+
123
+ /* Vertical and square: title, intro and the card fan stack top to bottom, centred on the
124
+ safe box; source at the bottom left of the safe area. */
125
+ [data-format="vertical"] #t1-ov-deck .title, [data-format="square"] #t1-ov-deck .title {
126
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
127
+ width: max-content; max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 56px);
128
+ white-space: normal; text-align: center;
129
+ }
130
+ [data-format="vertical"] #t1-ov-deck .title { font-size: calc(62px * var(--type)); }
131
+ [data-format="square"] #t1-ov-deck .title { font-size: 80px; }
132
+ [data-format="vertical"] #t1-ov-deck .intro, [data-format="square"] #t1-ov-deck .intro {
133
+ top: calc(var(--safe-t) + 124px); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
134
+ width: calc(var(--w) - var(--safe-l) - var(--safe-r));
135
+ }
136
+ [data-format="vertical"] #t1-ov-deck .fan, [data-format="square"] #t1-ov-deck .fan {
137
+ left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2 + 40px); transform: translateX(-50%);
138
+ }
139
+ [data-format="vertical"] #t1-ov-deck .fan { top: calc(var(--safe-t) + 300px); margin-left: 20px; }
140
+ [data-format="square"] #t1-ov-deck .fan { top: calc(var(--safe-t) + 230px); }
141
+ [data-format="vertical"] #t1-ov-deck .source, [data-format="square"] #t1-ov-deck .source { left: var(--safe-l); bottom: var(--safe-b); }
122
142
  </style>
123
143
  </head>
124
144
  <body>
@@ -15,7 +15,7 @@
15
15
  <style>
16
16
  html, body { margin: 0; }
17
17
  #t1-ov-dossier {
18
- position: absolute; inset: 0; width: 1920px; height: 1080px;
18
+ position: absolute; inset: 0; width: var(--w); height: var(--h);
19
19
  background: var(--paper-2); color: var(--ink);
20
20
  font-family: var(--font-display); overflow: hidden;
21
21
  }
@@ -38,7 +38,7 @@
38
38
 
39
39
  /* dossier label - marker title */
40
40
  #t1-ov-dossier .dossier-label {
41
- position: absolute; top: 72px; left: 50%;
41
+ position: absolute; top: calc(var(--safe-t) + 18px); left: 50%;
42
42
  transform: translateX(-50%) skewX(var(--marker-skew));
43
43
  background: var(--red); color: var(--paper); padding: 10px 36px; z-index: 5;
44
44
  font-weight: var(--wt-black); font-size: var(--size-title);
@@ -48,8 +48,8 @@
48
48
 
49
49
  /* file stack - centered vertically */
50
50
  #t1-ov-dossier .file-stack {
51
- position: absolute; left: 160px; right: 160px;
52
- top: 230px; bottom: 110px;
51
+ position: absolute; left: calc(var(--safe-l) + 64px); right: calc(var(--safe-r) + 64px);
52
+ top: calc(var(--safe-t) + 176px); bottom: calc(var(--safe-b) + 56px);
53
53
  display: flex; flex-direction: column; justify-content: space-between;
54
54
  z-index: 3;
55
55
  }
@@ -83,7 +83,7 @@
83
83
  }
84
84
  #t1-ov-dossier .tab-code {
85
85
  font-family: var(--font-label); font-weight: var(--wt-black);
86
- font-size: 22px; letter-spacing: var(--track-wide);
86
+ font-size: calc(22px * var(--type)); letter-spacing: var(--track-wide);
87
87
  text-transform: uppercase; color: var(--ink); text-align: center;
88
88
  line-height: 1.1; word-break: break-all;
89
89
  }
@@ -107,7 +107,7 @@
107
107
 
108
108
  #t1-ov-dossier .file-title {
109
109
  font-family: var(--font-label); font-weight: var(--wt-bold);
110
- font-size: 44px; line-height: 1.15; color: var(--ink);
110
+ font-size: calc(44px * var(--type)); line-height: 1.15; color: var(--ink);
111
111
  position: relative; z-index: 1;
112
112
  }
113
113
 
@@ -115,7 +115,7 @@
115
115
  #t1-ov-dossier .stamp {
116
116
  position: absolute; right: 70px; top: 50%; transform: translateY(-50%) rotate(-8deg);
117
117
  font-family: var(--font-label); font-weight: var(--wt-black);
118
- font-size: 26px; letter-spacing: 0.25em; text-transform: uppercase;
118
+ font-size: calc(26px * var(--type)); letter-spacing: 0.25em; text-transform: uppercase;
119
119
  color: var(--red); opacity: 0.18;
120
120
  border: 4px solid var(--red); padding: 6px 16px;
121
121
  pointer-events: none;
@@ -123,7 +123,7 @@
123
123
 
124
124
  /* cabinet drawer pull - decorative bar above stack */
125
125
  #t1-ov-dossier .drawer-pull {
126
- position: absolute; left: 160px; right: 160px; top: 195px;
126
+ position: absolute; left: calc(var(--safe-l) + 64px); right: calc(var(--safe-r) + 64px); top: calc(var(--safe-t) + 141px);
127
127
  height: 28px; background: var(--ink); z-index: 3;
128
128
  }
129
129
  #t1-ov-dossier .drawer-pull::after {
@@ -136,11 +136,30 @@
136
136
 
137
137
  /* source */
138
138
  #t1-ov-dossier .source {
139
- position: absolute; left: 160px; bottom: 46px; z-index: 6;
139
+ position: absolute; left: calc(var(--safe-l) + 64px); bottom: var(--safe-b); z-index: 6;
140
140
  font-family: var(--font-label); font-weight: var(--wt-bold);
141
141
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
142
142
  text-transform: uppercase; color: var(--muted);
143
143
  }
144
+
145
+ /* Vertical and square: label, drawer pull and file stack span the safe box; file titles get
146
+ smaller and may wrap; source at the bottom left of the safe area. */
147
+ [data-format="vertical"] #t1-ov-dossier .dossier-label, [data-format="square"] #t1-ov-dossier .dossier-label {
148
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
149
+ width: max-content; max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 72px);
150
+ white-space: normal; text-align: center;
151
+ }
152
+ [data-format="vertical"] #t1-ov-dossier .dossier-label { font-size: calc(72px * var(--type)); }
153
+ [data-format="vertical"] #t1-ov-dossier .drawer-pull, [data-format="square"] #t1-ov-dossier .drawer-pull { left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 124px); }
154
+ [data-format="vertical"] #t1-ov-dossier .file-stack, [data-format="square"] #t1-ov-dossier .file-stack {
155
+ left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 160px); bottom: calc(var(--safe-b) + 44px);
156
+ }
157
+ [data-format="vertical"] #t1-ov-dossier .file-body, [data-format="square"] #t1-ov-dossier .file-body { padding: 20px 30px; }
158
+ /* the narrower rows leave no clear space for the CONFIDENTIAL stamp, so it would sit on the titles */
159
+ [data-format="vertical"] #t1-ov-dossier .stamp, [data-format="square"] #t1-ov-dossier .stamp { display: none; }
160
+ [data-format="vertical"] #t1-ov-dossier .file-title { font-size: calc(36px * var(--type)); }
161
+ [data-format="square"] #t1-ov-dossier .file-title { font-size: 40px; }
162
+ [data-format="vertical"] #t1-ov-dossier .source, [data-format="square"] #t1-ov-dossier .source { left: var(--safe-l); bottom: var(--safe-b); }
144
163
  </style>
145
164
  </head>
146
165
  <body>
@@ -14,7 +14,7 @@
14
14
  <style>
15
15
  html, body { margin: 0; }
16
16
  #t1-ov-film {
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-film .title {
38
- position: absolute; top: 62px; left: 50%;
38
+ position: absolute; top: calc(var(--safe-t) + 8px); left: 50%;
39
39
  transform: translateX(-50%) skewX(var(--marker-skew));
40
40
  background: var(--yellow); padding: 8px 28px; z-index: 10;
41
41
  font-weight: var(--wt-black); font-size: var(--size-title);
@@ -92,13 +92,13 @@
92
92
  #t1-ov-film .frame-num {
93
93
  position: absolute; top: 6px; left: 8px;
94
94
  font-family: var(--font-label); font-weight: var(--wt-bold);
95
- font-size: 16px; letter-spacing: 0.1em;
95
+ font-size: calc(16px * var(--type)); letter-spacing: 0.1em;
96
96
  color: var(--paper); opacity: 0.6;
97
97
  font-variant-numeric: tabular-nums;
98
98
  }
99
99
  /* captions - sit below the strip band */
100
100
  #t1-ov-film .captions {
101
- position: absolute; left: 100px; right: 100px; top: 716px;
101
+ position: absolute; left: calc(var(--safe-l) + 4px); right: calc(var(--safe-r) + 4px); top: 716px;
102
102
  display: flex; gap: 28px; z-index: 3;
103
103
  }
104
104
  #t1-ov-film .cap {
@@ -114,11 +114,42 @@
114
114
  }
115
115
  /* source */
116
116
  #t1-ov-film .source {
117
- position: absolute; left: 130px; bottom: 60px; z-index: 10;
117
+ position: absolute; left: calc(var(--safe-l) + 34px); bottom: calc(var(--safe-b) + 6px); z-index: 10;
118
118
  font-family: var(--font-label); font-weight: var(--wt-bold);
119
119
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
120
120
  text-transform: uppercase; color: var(--muted);
121
121
  }
122
+
123
+ /* Vertical: the strip turns upright under the title and runs off the bottom edge, frames
124
+ stacked; captions sit in a column to the right, one beside each frame. */
125
+ [data-format="vertical"] #t1-ov-film .title, [data-format="square"] #t1-ov-film .title {
126
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
127
+ }
128
+ [data-format="vertical"] #t1-ov-film .title { font-size: calc(64px * var(--type)); }
129
+ [data-format="vertical"] #t1-ov-film .strip-band { left: var(--safe-l); right: auto; width: 400px; top: calc(var(--safe-t) + 140px); height: auto; bottom: -40px; }
130
+ [data-format="vertical"] #t1-ov-film .sprockets-top, [data-format="vertical"] #t1-ov-film .sprockets-bottom {
131
+ top: 0; bottom: 0; height: auto; width: 32px;
132
+ background-image: repeating-linear-gradient(180deg, transparent 0px, transparent 32px,
133
+ var(--paper-2) 32px, var(--paper-2) 56px, transparent 56px, transparent 88px);
134
+ }
135
+ [data-format="vertical"] #t1-ov-film .sprockets-top { left: 14px; right: auto; }
136
+ [data-format="vertical"] #t1-ov-film .sprockets-bottom { right: 14px; left: auto; }
137
+ [data-format="vertical"] #t1-ov-film .frames {
138
+ left: 60px; right: 60px; top: 30px; bottom: auto; height: 790px;
139
+ flex-direction: column;
140
+ }
141
+ [data-format="vertical"] #t1-ov-film .captions {
142
+ left: calc(var(--safe-l) + 440px); right: var(--safe-r); top: calc(var(--safe-t) + 170px); height: 790px;
143
+ flex-direction: column;
144
+ }
145
+ [data-format="vertical"] #t1-ov-film .cap { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; text-align: left; }
146
+ [data-format="vertical"] #t1-ov-film .cap-1::after { margin: 10px 0 0; }
147
+ [data-format="vertical"] #t1-ov-film .source { left: calc(var(--safe-l) + 440px); bottom: var(--safe-b); }
148
+ [data-format="square"] #t1-ov-film .source { left: var(--safe-l); bottom: var(--safe-b); }
149
+ /* Square: same horizontal strip, frames and captions aligned to the safe width. */
150
+ [data-format="square"] #t1-ov-film .strip-band { top: calc(var(--safe-t) + 170px); }
151
+ [data-format="square"] #t1-ov-film .frames { left: calc(var(--safe-l) + 40px); right: calc(var(--safe-r) + 40px); gap: 20px; }
152
+ [data-format="square"] #t1-ov-film .captions { left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 600px); gap: 20px; }
122
153
  </style>
123
154
  </head>
124
155
  <body>
@@ -13,7 +13,7 @@
13
13
  <style>
14
14
  html, body { margin: 0; }
15
15
  #t1-ov-grid6 {
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-grid6 .title {
37
- position: absolute; top: 62px; left: 130px;
37
+ position: absolute; top: calc(var(--safe-t) + 8px); left: calc(var(--safe-l) + 34px);
38
38
  background: var(--ink); color: var(--paper);
39
39
  padding: 10px 30px; z-index: 3;
40
40
  font-weight: var(--wt-black); font-size: var(--size-title);
@@ -43,7 +43,7 @@
43
43
  }
44
44
  /* 3x2 tile grid */
45
45
  #t1-ov-grid6 .tiles {
46
- position: absolute; left: 110px; right: 110px; top: 230px; bottom: 110px;
46
+ position: absolute; left: calc(var(--safe-l) + 14px); right: calc(var(--safe-r) + 14px); top: calc(var(--safe-t) + 176px); bottom: calc(var(--safe-b) + 56px);
47
47
  display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr);
48
48
  gap: 24px; z-index: 2;
49
49
  }
@@ -61,23 +61,41 @@
61
61
  /* big number sits in corner */
62
62
  #t1-ov-grid6 .num {
63
63
  position: absolute; top: 24px; left: 32px;
64
- font-weight: var(--wt-black); font-size: 100px; line-height: 1;
64
+ font-weight: var(--wt-black); font-size: calc(100px * var(--type)); line-height: 1;
65
65
  letter-spacing: -0.04em; font-variant-numeric: tabular-nums;
66
66
  color: var(--ink); opacity: 0.12;
67
67
  }
68
68
  #t1-ov-grid6 .tile.hero .num { opacity: 0.25; }
69
69
  #t1-ov-grid6 .label {
70
- font-weight: var(--wt-black); font-size: 50px;
70
+ font-weight: var(--wt-black); font-size: calc(50px * var(--type));
71
71
  line-height: 1.1; letter-spacing: var(--track-tight);
72
72
  color: var(--ink); position: relative; z-index: 1;
73
73
  }
74
74
  /* source */
75
75
  #t1-ov-grid6 .source {
76
- position: absolute; right: 130px; bottom: 50px; z-index: 4;
76
+ position: absolute; right: calc(var(--safe-r) + 34px); bottom: var(--safe-b); z-index: 4;
77
77
  font-family: var(--font-label); font-weight: var(--wt-bold);
78
78
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
79
79
  text-transform: uppercase; color: var(--muted);
80
80
  }
81
+
82
+ /* Vertical: tiles regrid to 2 columns x 3 rows inside the safe box with smaller labels.
83
+ Square: keeps 3 x 2, fitted to the safe box. Title may wrap; source at bottom right. */
84
+ [data-format="vertical"] #t1-ov-grid6 .title, [data-format="square"] #t1-ov-grid6 .title {
85
+ top: var(--safe-t); left: var(--safe-l); white-space: normal;
86
+ max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 60px);
87
+ }
88
+ [data-format="vertical"] #t1-ov-grid6 .title { font-size: calc(54px * var(--type)); }
89
+ [data-format="square"] #t1-ov-grid6 .title { font-size: 68px; }
90
+ [data-format="vertical"] #t1-ov-grid6 .tiles, [data-format="square"] #t1-ov-grid6 .tiles { left: var(--safe-l); right: var(--safe-r); bottom: calc(var(--safe-b) + 40px); gap: 18px; }
91
+ [data-format="vertical"] #t1-ov-grid6 .tiles { top: calc(var(--safe-t) + 120px); grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 1fr); }
92
+ [data-format="square"] #t1-ov-grid6 .tiles { top: calc(var(--safe-t) + 130px); }
93
+ [data-format="vertical"] #t1-ov-grid6 .tile, [data-format="square"] #t1-ov-grid6 .tile { padding: 24px 26px; }
94
+ [data-format="vertical"] #t1-ov-grid6 .num { top: 16px; left: 22px; font-size: calc(60px * var(--type)); }
95
+ [data-format="square"] #t1-ov-grid6 .num { top: 18px; left: 24px; font-size: 84px; }
96
+ [data-format="vertical"] #t1-ov-grid6 .label { font-size: calc(34px * var(--type)); }
97
+ [data-format="square"] #t1-ov-grid6 .label { font-size: 38px; }
98
+ [data-format="vertical"] #t1-ov-grid6 .source, [data-format="square"] #t1-ov-grid6 .source { right: var(--safe-r); bottom: var(--safe-b); }
81
99
  </style>
82
100
  </head>
83
101
  <body>
@@ -13,7 +13,7 @@
13
13
  <style>
14
14
  html, body { margin: 0; }
15
15
  #t1-ov-index {
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-index .title {
37
- position: absolute; top: 62px; left: 50%;
37
+ position: absolute; top: calc(var(--safe-t) + 8px); left: 50%;
38
38
  transform: translateX(-50%) skewX(var(--marker-skew));
39
39
  background: var(--yellow); padding: 8px 28px; z-index: 10;
40
40
  font-weight: var(--wt-black); font-size: var(--size-title);
@@ -42,7 +42,7 @@
42
42
  }
43
43
  /* card deck area - centered horizontally */
44
44
  #t1-ov-index .cards-wrap {
45
- position: absolute; left: 0; right: 0; top: 220px; bottom: 140px;
45
+ position: absolute; left: 0; right: 0; top: calc(var(--safe-t) + 166px); bottom: calc(var(--safe-b) + 86px);
46
46
  display: flex; align-items: center; justify-content: center;
47
47
  z-index: 3;
48
48
  }
@@ -101,22 +101,50 @@
101
101
  /* topic text on the card */
102
102
  #t1-ov-index .card-topic {
103
103
  position: absolute; left: 80px; right: 30px; top: 60px;
104
- font-weight: var(--wt-black); font-size: 58px;
104
+ font-weight: var(--wt-black); font-size: calc(58px * var(--type));
105
105
  line-height: 1.1; letter-spacing: var(--track-tight); color: var(--ink);
106
106
  }
107
107
  /* handwritten note style sub at bottom of card */
108
108
  #t1-ov-index .card-note {
109
109
  position: absolute; left: 80px; right: 30px; bottom: 40px;
110
110
  font-family: var(--font-hand); font-weight: var(--wt-bold);
111
- font-size: 32px; color: var(--muted); line-height: 1.3;
111
+ font-size: calc(32px * var(--type)); color: var(--muted); line-height: 1.3;
112
112
  }
113
113
  /* source */
114
114
  #t1-ov-index .source {
115
- position: absolute; left: 130px; bottom: 60px; z-index: 10;
115
+ position: absolute; left: calc(var(--safe-l) + 34px); bottom: calc(var(--safe-b) + 6px); z-index: 10;
116
116
  font-family: var(--font-label); font-weight: var(--wt-bold);
117
117
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
118
118
  text-transform: uppercase; color: var(--muted);
119
119
  }
120
+
121
+ /* Vertical: the three index cards become wide cards stacked down the safe box, each tab
122
+ clear of the card above. Square: three narrower cards side by side without covering
123
+ each other's topic. Source at the bottom left of the safe area. */
124
+ [data-format="vertical"] #t1-ov-index .title, [data-format="square"] #t1-ov-index .title {
125
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
126
+ width: max-content; max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 56px);
127
+ white-space: normal; text-align: center;
128
+ }
129
+ [data-format="vertical"] #t1-ov-index .title { font-size: calc(58px * var(--type)); }
130
+ [data-format="square"] #t1-ov-index .title { font-size: 76px; }
131
+ [data-format="vertical"] #t1-ov-index .cards-wrap { left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 130px); bottom: var(--safe-b); }
132
+ [data-format="vertical"] #t1-ov-index .icard { width: calc(100% - 30px); height: 210px; left: 15px; }
133
+ [data-format="vertical"] #t1-ov-index .icard-1 { top: 54px; }
134
+ [data-format="vertical"] #t1-ov-index .icard-2 { top: 312px; }
135
+ [data-format="vertical"] #t1-ov-index .icard-3 { top: 570px; }
136
+ [data-format="vertical"] #t1-ov-index .card-topic { top: 44px; }
137
+ [data-format="vertical"] #t1-ov-index .card-note { bottom: 26px; }
138
+ [data-format="square"] #t1-ov-index .cards-wrap { left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 150px); bottom: calc(var(--safe-b) + 40px); }
139
+ [data-format="square"] #t1-ov-index .icard { width: 296px; height: 520px; }
140
+ [data-format="square"] #t1-ov-index .icard-1 { left: 0; }
141
+ [data-format="square"] #t1-ov-index .icard-2 { left: 316px; }
142
+ [data-format="square"] #t1-ov-index .icard-3 { left: 632px; }
143
+ [data-format="square"] #t1-ov-index .margin-line { left: 36px; }
144
+ [data-format="square"] #t1-ov-index .card-topic, [data-format="square"] #t1-ov-index .card-note { left: 50px; right: 20px; }
145
+ [data-format="square"] #t1-ov-index .card-topic { font-size: 44px; }
146
+ [data-format="square"] #t1-ov-index .card-note { font-size: 28px; }
147
+ [data-format="vertical"] #t1-ov-index .source, [data-format="square"] #t1-ov-index .source { left: var(--safe-l); bottom: var(--safe-b); }
120
148
  </style>
121
149
  </head>
122
150
  <body>
@@ -14,7 +14,7 @@
14
14
  <style>
15
15
  html, body { margin: 0; }
16
16
  #t1-ov-maplegend {
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
  }
@@ -36,7 +36,7 @@
36
36
 
37
37
  /* marker title */
38
38
  #t1-ov-maplegend .marker-title {
39
- position: absolute; top: 72px; left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
39
+ position: absolute; top: calc(var(--safe-t) + 18px); left: 50%; transform: translateX(-50%) skewX(var(--marker-skew));
40
40
  background: var(--yellow); padding: 10px 36px; z-index: 5;
41
41
  font-weight: var(--wt-black); font-size: var(--size-title);
42
42
  letter-spacing: var(--track-tight); text-transform: uppercase; white-space: nowrap;
@@ -74,7 +74,7 @@
74
74
  width: 56px; height: 56px;
75
75
  background: var(--yellow); border: 3px solid var(--ink);
76
76
  display: flex; align-items: center; justify-content: center;
77
- font-weight: var(--wt-black); font-size: 32px;
77
+ font-weight: var(--wt-black); font-size: calc(32px * var(--type));
78
78
  box-shadow: 4px 4px 0 rgba(23,19,14,0.25);
79
79
  transform: rotate(-4deg);
80
80
  }
@@ -99,8 +99,8 @@
99
99
 
100
100
  /* legend panel: right 40% */
101
101
  #t1-ov-maplegend .legend {
102
- position: absolute; left: 1165px; top: 200px; right: 40px;
103
- bottom: 80px; z-index: 3;
102
+ position: absolute; left: 1165px; top: calc(var(--safe-t) + 146px); right: var(--safe-r);
103
+ bottom: calc(var(--safe-b) + 26px); z-index: 3;
104
104
  display: flex; flex-direction: column; justify-content: center;
105
105
  gap: 0;
106
106
  }
@@ -120,22 +120,53 @@
120
120
  width: 52px; height: 52px;
121
121
  background: var(--yellow); border: 3px solid var(--ink);
122
122
  display: flex; align-items: center; justify-content: center;
123
- font-weight: var(--wt-black); font-size: 30px;
123
+ font-weight: var(--wt-black); font-size: calc(30px * var(--type));
124
124
  box-shadow: 3px 3px 0 rgba(23,19,14,0.2);
125
125
  transform: rotate(-2deg); margin-top: 4px;
126
126
  }
127
127
  #t1-ov-maplegend .leg-text {
128
128
  font-family: var(--font-label); font-weight: var(--wt-bold);
129
- font-size: 40px; line-height: 1.2; color: var(--ink);
129
+ font-size: calc(40px * var(--type)); line-height: 1.2; color: var(--ink);
130
130
  }
131
131
 
132
132
  /* source */
133
133
  #t1-ov-maplegend .source {
134
- position: absolute; left: 120px; bottom: 36px; z-index: 6;
134
+ position: absolute; left: calc(var(--safe-l) + 24px); bottom: var(--safe-b); z-index: 6;
135
135
  font-family: var(--font-label); font-weight: var(--wt-bold);
136
136
  font-size: var(--size-tiny); letter-spacing: var(--track-wide);
137
137
  text-transform: uppercase; color: var(--muted);
138
138
  }
139
+
140
+ /* Vertical: map strip on top, a horizontal divider, then the legend across the safe width;
141
+ pins move inside the shorter map. Square: map left and legend right as landscape, narrowed. */
142
+ [data-format="vertical"] #t1-ov-maplegend .marker-title, [data-format="square"] #t1-ov-maplegend .marker-title {
143
+ top: var(--safe-t); left: calc(var(--safe-l) + (var(--w) - var(--safe-l) - var(--safe-r)) / 2);
144
+ width: max-content; max-width: calc(var(--w) - var(--safe-l) - var(--safe-r) - 72px);
145
+ white-space: normal; text-align: center;
146
+ }
147
+ [data-format="vertical"] #t1-ov-maplegend .marker-title { font-size: calc(64px * var(--type)); }
148
+ [data-format="square"] #t1-ov-maplegend .marker-title { font-size: 80px; }
149
+ [data-format="vertical"] #t1-ov-maplegend .map-area { width: var(--w); top: calc(var(--safe-t) + 110px); bottom: auto; height: 330px; }
150
+ [data-format="vertical"] #t1-ov-maplegend .pin1 { left: 230px; top: 120px; }
151
+ [data-format="vertical"] #t1-ov-maplegend .pin2 { left: 600px; top: 60px; }
152
+ [data-format="vertical"] #t1-ov-maplegend .pin3 { left: 420px; top: 230px; }
153
+ [data-format="vertical"] #t1-ov-maplegend .pin4 { left: 760px; top: 200px; }
154
+ [data-format="vertical"] #t1-ov-maplegend .divider { left: var(--safe-l); right: var(--safe-r); width: auto; top: calc(var(--safe-t) + 450px); bottom: auto; height: 5px; }
155
+ [data-format="vertical"] #t1-ov-maplegend .legend { left: var(--safe-l); right: var(--safe-r); top: calc(var(--safe-t) + 480px); bottom: calc(var(--safe-b) + 34px); justify-content: flex-start; }
156
+ [data-format="vertical"] #t1-ov-maplegend .legend-header { margin-bottom: 6px; padding-bottom: 10px; }
157
+ [data-format="vertical"] #t1-ov-maplegend .leg-row { padding: 16px 0; gap: 26px; }
158
+ [data-format="vertical"] #t1-ov-maplegend .leg-text { font-size: calc(30px * var(--type)); }
159
+ [data-format="square"] #t1-ov-maplegend .map-area { width: 570px; top: calc(var(--safe-t) + 140px); bottom: calc(var(--safe-b) + 30px); }
160
+ [data-format="square"] #t1-ov-maplegend .pin1 { left: 150px; top: 170px; }
161
+ [data-format="square"] #t1-ov-maplegend .pin2 { left: 400px; top: 110px; }
162
+ [data-format="square"] #t1-ov-maplegend .pin3 { left: 270px; top: 380px; }
163
+ [data-format="square"] #t1-ov-maplegend .pin4 { left: 440px; top: 330px; }
164
+ [data-format="square"] #t1-ov-maplegend .divider { left: 570px; top: calc(var(--safe-t) + 140px); bottom: calc(var(--safe-b) + 30px); }
165
+ [data-format="square"] #t1-ov-maplegend .legend { left: 600px; top: calc(var(--safe-t) + 140px); bottom: calc(var(--safe-b) + 30px); }
166
+ [data-format="square"] #t1-ov-maplegend .legend-header { margin-bottom: 16px; }
167
+ [data-format="square"] #t1-ov-maplegend .leg-row { padding: 20px 0; gap: 22px; }
168
+ [data-format="square"] #t1-ov-maplegend .leg-text { font-size: 30px; }
169
+ [data-format="vertical"] #t1-ov-maplegend .source, [data-format="square"] #t1-ov-maplegend .source { left: var(--safe-l); bottom: var(--safe-b); }
139
170
  </style>
140
171
  </head>
141
172
  <body>