voxflow 1.15.6 → 1.17.0

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 (595) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +1 -1
  3. package/dist/remotion-bundle/bundle.js +0 -1
  4. package/dist/remotion-bundle/bundle.js.map +1 -1
  5. package/lib/commands/_registry.js +1 -0
  6. package/lib/commands/card-render.js +520 -0
  7. package/lib/commands/card.js +57 -0
  8. package/lib/commands/skills.js +3 -3
  9. package/lib/commands/slice-fork.js +4 -4
  10. package/lib/commands/slice.js +1 -1
  11. package/lib/core/ffmpeg.js +74 -11
  12. package/package.json +5 -2
  13. package/skills/.claude-plugin/marketplace.json +2 -2
  14. package/skills/.claude-plugin/plugin.json +3 -2
  15. package/skills/README.md +9 -7
  16. package/skills/card/SKILL.md +486 -0
  17. package/skills/card/assets/fonts/MANIFEST.md +29 -0
  18. package/skills/card/assets/fonts/css/cabinet-grotesk.css +2 -0
  19. package/skills/card/assets/fonts/css/geist-mono.css +29 -0
  20. package/skills/card/assets/fonts/css/geist.css +29 -0
  21. package/skills/card/assets/fonts/css/general-sans.css +2 -0
  22. package/skills/card/assets/fonts/css/ibm-plex-mono-500.css +49 -0
  23. package/skills/card/assets/fonts/css/ibm-plex-mono-600.css +49 -0
  24. package/skills/card/assets/fonts/css/ibm-plex-mono.css +49 -0
  25. package/skills/card/assets/fonts/css/libre-caslon-display.css +19 -0
  26. package/skills/card/assets/fonts/css/newsreader.css +29 -0
  27. package/skills/card/assets/fonts/css/noto-sans-sc.css +1009 -0
  28. package/skills/card/assets/fonts/css/noto-serif-sc.css +1009 -0
  29. package/skills/card/assets/fonts/css/satoshi.css +2 -0
  30. package/skills/card/assets/fonts/css/source-serif-4.css +59 -0
  31. package/skills/card/assets/fonts/css/space-grotesk.css +29 -0
  32. package/skills/card/assets/fonts/css/spectral-600.css +49 -0
  33. package/skills/card/assets/fonts/css/spectral-800.css +49 -0
  34. package/skills/card/assets/fonts/css/spectral.css +49 -0
  35. package/skills/card/assets/fonts/fonts.css +25 -0
  36. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-100.woff2 +0 -0
  37. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-101.woff2 +0 -0
  38. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-102.woff2 +0 -0
  39. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-103.woff2 +0 -0
  40. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-104.woff2 +0 -0
  41. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-105.woff2 +0 -0
  42. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-106.woff2 +0 -0
  43. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-107.woff2 +0 -0
  44. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-108.woff2 +0 -0
  45. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-109.woff2 +0 -0
  46. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-110.woff2 +0 -0
  47. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-111.woff2 +0 -0
  48. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-112.woff2 +0 -0
  49. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-113.woff2 +0 -0
  50. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-114.woff2 +0 -0
  51. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-115.woff2 +0 -0
  52. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-116.woff2 +0 -0
  53. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-117.woff2 +0 -0
  54. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-118.woff2 +0 -0
  55. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-119.woff2 +0 -0
  56. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-21.woff2 +0 -0
  57. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-22.woff2 +0 -0
  58. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-23.woff2 +0 -0
  59. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-24.woff2 +0 -0
  60. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-25.woff2 +0 -0
  61. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-26.woff2 +0 -0
  62. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-27.woff2 +0 -0
  63. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-28.woff2 +0 -0
  64. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-29.woff2 +0 -0
  65. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-30.woff2 +0 -0
  66. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-31.woff2 +0 -0
  67. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-32.woff2 +0 -0
  68. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-33.woff2 +0 -0
  69. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-34.woff2 +0 -0
  70. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-35.woff2 +0 -0
  71. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-36.woff2 +0 -0
  72. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-37.woff2 +0 -0
  73. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-38.woff2 +0 -0
  74. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-39.woff2 +0 -0
  75. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-4.woff2 +0 -0
  76. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-40.woff2 +0 -0
  77. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-41.woff2 +0 -0
  78. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-42.woff2 +0 -0
  79. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-43.woff2 +0 -0
  80. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-44.woff2 +0 -0
  81. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-45.woff2 +0 -0
  82. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-46.woff2 +0 -0
  83. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-47.woff2 +0 -0
  84. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-48.woff2 +0 -0
  85. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-49.woff2 +0 -0
  86. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-5.woff2 +0 -0
  87. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-50.woff2 +0 -0
  88. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-51.woff2 +0 -0
  89. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-52.woff2 +0 -0
  90. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-53.woff2 +0 -0
  91. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-54.woff2 +0 -0
  92. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-55.woff2 +0 -0
  93. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-56.woff2 +0 -0
  94. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-57.woff2 +0 -0
  95. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-58.woff2 +0 -0
  96. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-59.woff2 +0 -0
  97. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-6.woff2 +0 -0
  98. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-60.woff2 +0 -0
  99. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-61.woff2 +0 -0
  100. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-62.woff2 +0 -0
  101. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-63.woff2 +0 -0
  102. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-64.woff2 +0 -0
  103. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-65.woff2 +0 -0
  104. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-66.woff2 +0 -0
  105. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-67.woff2 +0 -0
  106. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-68.woff2 +0 -0
  107. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-69.woff2 +0 -0
  108. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-70.woff2 +0 -0
  109. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-71.woff2 +0 -0
  110. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-72.woff2 +0 -0
  111. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-73.woff2 +0 -0
  112. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-74.woff2 +0 -0
  113. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-75.woff2 +0 -0
  114. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-76.woff2 +0 -0
  115. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-77.woff2 +0 -0
  116. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-78.woff2 +0 -0
  117. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-79.woff2 +0 -0
  118. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-80.woff2 +0 -0
  119. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-81.woff2 +0 -0
  120. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-82.woff2 +0 -0
  121. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-83.woff2 +0 -0
  122. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-84.woff2 +0 -0
  123. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-85.woff2 +0 -0
  124. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-86.woff2 +0 -0
  125. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-87.woff2 +0 -0
  126. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-88.woff2 +0 -0
  127. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-89.woff2 +0 -0
  128. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-90.woff2 +0 -0
  129. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-91.woff2 +0 -0
  130. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-97.woff2 +0 -0
  131. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-98.woff2 +0 -0
  132. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-bold-subset-99.woff2 +0 -0
  133. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-100.woff2 +0 -0
  134. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-101.woff2 +0 -0
  135. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-102.woff2 +0 -0
  136. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-103.woff2 +0 -0
  137. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-104.woff2 +0 -0
  138. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-105.woff2 +0 -0
  139. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-106.woff2 +0 -0
  140. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-107.woff2 +0 -0
  141. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-108.woff2 +0 -0
  142. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-109.woff2 +0 -0
  143. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-110.woff2 +0 -0
  144. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-111.woff2 +0 -0
  145. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-112.woff2 +0 -0
  146. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-113.woff2 +0 -0
  147. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-114.woff2 +0 -0
  148. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-115.woff2 +0 -0
  149. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-116.woff2 +0 -0
  150. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-117.woff2 +0 -0
  151. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-118.woff2 +0 -0
  152. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-119.woff2 +0 -0
  153. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-21.woff2 +0 -0
  154. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-22.woff2 +0 -0
  155. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-23.woff2 +0 -0
  156. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-24.woff2 +0 -0
  157. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-25.woff2 +0 -0
  158. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-26.woff2 +0 -0
  159. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-27.woff2 +0 -0
  160. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-28.woff2 +0 -0
  161. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-29.woff2 +0 -0
  162. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-30.woff2 +0 -0
  163. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-31.woff2 +0 -0
  164. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-32.woff2 +0 -0
  165. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-33.woff2 +0 -0
  166. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-34.woff2 +0 -0
  167. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-35.woff2 +0 -0
  168. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-36.woff2 +0 -0
  169. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-37.woff2 +0 -0
  170. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-38.woff2 +0 -0
  171. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-39.woff2 +0 -0
  172. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-4.woff2 +0 -0
  173. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-40.woff2 +0 -0
  174. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-41.woff2 +0 -0
  175. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-42.woff2 +0 -0
  176. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-43.woff2 +0 -0
  177. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-44.woff2 +0 -0
  178. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-45.woff2 +0 -0
  179. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-46.woff2 +0 -0
  180. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-47.woff2 +0 -0
  181. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-48.woff2 +0 -0
  182. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-49.woff2 +0 -0
  183. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-5.woff2 +0 -0
  184. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-50.woff2 +0 -0
  185. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-51.woff2 +0 -0
  186. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-52.woff2 +0 -0
  187. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-53.woff2 +0 -0
  188. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-54.woff2 +0 -0
  189. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-55.woff2 +0 -0
  190. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-56.woff2 +0 -0
  191. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-57.woff2 +0 -0
  192. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-58.woff2 +0 -0
  193. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-59.woff2 +0 -0
  194. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-6.woff2 +0 -0
  195. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-60.woff2 +0 -0
  196. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-61.woff2 +0 -0
  197. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-62.woff2 +0 -0
  198. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-63.woff2 +0 -0
  199. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-64.woff2 +0 -0
  200. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-65.woff2 +0 -0
  201. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-66.woff2 +0 -0
  202. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-67.woff2 +0 -0
  203. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-68.woff2 +0 -0
  204. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-69.woff2 +0 -0
  205. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-70.woff2 +0 -0
  206. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-71.woff2 +0 -0
  207. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-72.woff2 +0 -0
  208. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-73.woff2 +0 -0
  209. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-74.woff2 +0 -0
  210. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-75.woff2 +0 -0
  211. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-76.woff2 +0 -0
  212. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-77.woff2 +0 -0
  213. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-78.woff2 +0 -0
  214. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-79.woff2 +0 -0
  215. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-80.woff2 +0 -0
  216. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-81.woff2 +0 -0
  217. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-82.woff2 +0 -0
  218. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-83.woff2 +0 -0
  219. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-84.woff2 +0 -0
  220. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-85.woff2 +0 -0
  221. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-86.woff2 +0 -0
  222. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-87.woff2 +0 -0
  223. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-88.woff2 +0 -0
  224. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-89.woff2 +0 -0
  225. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-90.woff2 +0 -0
  226. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-91.woff2 +0 -0
  227. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-97.woff2 +0 -0
  228. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-98.woff2 +0 -0
  229. package/skills/card/assets/fonts/packages/lxgw-wenkai/files/lxgwwenkailite-regular-subset-99.woff2 +0 -0
  230. package/skills/card/assets/fonts/packages/lxgw-wenkai/lxgwwenkailite-bold.css +873 -0
  231. package/skills/card/assets/fonts/packages/lxgw-wenkai/lxgwwenkailite-regular.css +873 -0
  232. package/skills/card/assets/fonts/packages/lxgw-wenkai/style.css +2 -0
  233. package/skills/card/assets/fonts/packages/smiley-sans/L1_4e00_192.woff2 +0 -0
  234. package/skills/card/assets/fonts/packages/smiley-sans/L1_4fea_192.woff2 +0 -0
  235. package/skills/card/assets/fonts/packages/smiley-sans/L1_5268_192.woff2 +0 -0
  236. package/skills/card/assets/fonts/packages/smiley-sans/L1_543c_192.woff2 +0 -0
  237. package/skills/card/assets/fonts/packages/smiley-sans/L1_5784_192.woff2 +0 -0
  238. package/skills/card/assets/fonts/packages/smiley-sans/L1_5b6c_192.woff2 +0 -0
  239. package/skills/card/assets/fonts/packages/smiley-sans/L1_5e37_192.woff2 +0 -0
  240. package/skills/card/assets/fonts/packages/smiley-sans/L1_60d2_192.woff2 +0 -0
  241. package/skills/card/assets/fonts/packages/smiley-sans/L1_6326_192.woff2 +0 -0
  242. package/skills/card/assets/fonts/packages/smiley-sans/L1_65b1_192.woff2 +0 -0
  243. package/skills/card/assets/fonts/packages/smiley-sans/L1_68a8_192.woff2 +0 -0
  244. package/skills/card/assets/fonts/packages/smiley-sans/L1_6cba_192.woff2 +0 -0
  245. package/skills/card/assets/fonts/packages/smiley-sans/L1_6fa2_192.woff2 +0 -0
  246. package/skills/card/assets/fonts/packages/smiley-sans/L1_73ce_192.woff2 +0 -0
  247. package/skills/card/assets/fonts/packages/smiley-sans/L1_77e4_192.woff2 +0 -0
  248. package/skills/card/assets/fonts/packages/smiley-sans/L1_7b78_192.woff2 +0 -0
  249. package/skills/card/assets/fonts/packages/smiley-sans/L1_7eee_192.woff2 +0 -0
  250. package/skills/card/assets/fonts/packages/smiley-sans/L1_81c1_192.woff2 +0 -0
  251. package/skills/card/assets/fonts/packages/smiley-sans/L1_8608_192.woff2 +0 -0
  252. package/skills/card/assets/fonts/packages/smiley-sans/L1_8aa4_192.woff2 +0 -0
  253. package/skills/card/assets/fonts/packages/smiley-sans/L1_8d20_192.woff2 +0 -0
  254. package/skills/card/assets/fonts/packages/smiley-sans/L1_8feb_192.woff2 +0 -0
  255. package/skills/card/assets/fonts/packages/smiley-sans/L1_94aa_192.woff2 +0 -0
  256. package/skills/card/assets/fonts/packages/smiley-sans/L1_97cd_266.woff2 +0 -0
  257. package/skills/card/assets/fonts/packages/smiley-sans/L2_3918_96.woff2 +0 -0
  258. package/skills/card/assets/fonts/packages/smiley-sans/L2_5081_96.woff2 +0 -0
  259. package/skills/card/assets/fonts/packages/smiley-sans/L2_5467_96.woff2 +0 -0
  260. package/skills/card/assets/fonts/packages/smiley-sans/L2_55ed_96.woff2 +0 -0
  261. package/skills/card/assets/fonts/packages/smiley-sans/L2_57f0_96.woff2 +0 -0
  262. package/skills/card/assets/fonts/packages/smiley-sans/L2_5ae4_96.woff2 +0 -0
  263. package/skills/card/assets/fonts/packages/smiley-sans/L2_5e15_96.woff2 +0 -0
  264. package/skills/card/assets/fonts/packages/smiley-sans/L2_609b_96.woff2 +0 -0
  265. package/skills/card/assets/fonts/packages/smiley-sans/L2_63e1_96.woff2 +0 -0
  266. package/skills/card/assets/fonts/packages/smiley-sans/L2_66dd_96.woff2 +0 -0
  267. package/skills/card/assets/fonts/packages/smiley-sans/L2_696c_96.woff2 +0 -0
  268. package/skills/card/assets/fonts/packages/smiley-sans/L2_6c75_96.woff2 +0 -0
  269. package/skills/card/assets/fonts/packages/smiley-sans/L2_6e73_96.woff2 +0 -0
  270. package/skills/card/assets/fonts/packages/smiley-sans/L2_7114_96.woff2 +0 -0
  271. package/skills/card/assets/fonts/packages/smiley-sans/L2_7392_96.woff2 +0 -0
  272. package/skills/card/assets/fonts/packages/smiley-sans/L2_7580_96.woff2 +0 -0
  273. package/skills/card/assets/fonts/packages/smiley-sans/L2_7769_96.woff2 +0 -0
  274. package/skills/card/assets/fonts/packages/smiley-sans/L2_7a71_96.woff2 +0 -0
  275. package/skills/card/assets/fonts/packages/smiley-sans/L2_7e21_96.woff2 +0 -0
  276. package/skills/card/assets/fonts/packages/smiley-sans/L2_7fcd_96.woff2 +0 -0
  277. package/skills/card/assets/fonts/packages/smiley-sans/L2_8203_96.woff2 +0 -0
  278. package/skills/card/assets/fonts/packages/smiley-sans/L2_8393_96.woff2 +0 -0
  279. package/skills/card/assets/fonts/packages/smiley-sans/L2_85b8_96.woff2 +0 -0
  280. package/skills/card/assets/fonts/packages/smiley-sans/L2_87cb_96.woff2 +0 -0
  281. package/skills/card/assets/fonts/packages/smiley-sans/L2_8bb5_96.woff2 +0 -0
  282. package/skills/card/assets/fonts/packages/smiley-sans/L2_8db6_96.woff2 +0 -0
  283. package/skills/card/assets/fonts/packages/smiley-sans/L2_9022_96.woff2 +0 -0
  284. package/skills/card/assets/fonts/packages/smiley-sans/L2_91ea_96.woff2 +0 -0
  285. package/skills/card/assets/fonts/packages/smiley-sans/L2_9504_96.woff2 +0 -0
  286. package/skills/card/assets/fonts/packages/smiley-sans/L2_9655_96.woff2 +0 -0
  287. package/skills/card/assets/fonts/packages/smiley-sans/L2_996a_96.woff2 +0 -0
  288. package/skills/card/assets/fonts/packages/smiley-sans/L2_9c95_133.woff2 +0 -0
  289. package/skills/card/assets/fonts/packages/smiley-sans/L3_101_64.woff2 +0 -0
  290. package/skills/card/assets/fonts/packages/smiley-sans/L3_148_64.woff2 +0 -0
  291. package/skills/card/assets/fonts/packages/smiley-sans/L3_1d4_64.woff2 +0 -0
  292. package/skills/card/assets/fonts/packages/smiley-sans/L3_1e86_64.woff2 +0 -0
  293. package/skills/card/assets/fonts/packages/smiley-sans/L3_1edf_64.woff2 +0 -0
  294. package/skills/card/assets/fonts/packages/smiley-sans/L3_20_64.woff2 +0 -0
  295. package/skills/card/assets/fonts/packages/smiley-sans/L3_2172_64.woff2 +0 -0
  296. package/skills/card/assets/fonts/packages/smiley-sans/L3_2495_64.woff2 +0 -0
  297. package/skills/card/assets/fonts/packages/smiley-sans/L3_3067_64.woff2 +0 -0
  298. package/skills/card/assets/fonts/packages/smiley-sans/L3_30b3_64.woff2 +0 -0
  299. package/skills/card/assets/fonts/packages/smiley-sans/L3_30f3_64.woff2 +0 -0
  300. package/skills/card/assets/fonts/packages/smiley-sans/L3_3a9_64.woff2 +0 -0
  301. package/skills/card/assets/fonts/packages/smiley-sans/L3_421_64.woff2 +0 -0
  302. package/skills/card/assets/fonts/packages/smiley-sans/L3_536a_64.woff2 +0 -0
  303. package/skills/card/assets/fonts/packages/smiley-sans/L3_60_64.woff2 +0 -0
  304. package/skills/card/assets/fonts/packages/smiley-sans/L3_61b8_64.woff2 +0 -0
  305. package/skills/card/assets/fonts/packages/smiley-sans/L3_706d_64.woff2 +0 -0
  306. package/skills/card/assets/fonts/packages/smiley-sans/L3_7b7c_64.woff2 +0 -0
  307. package/skills/card/assets/fonts/packages/smiley-sans/L3_836e_64.woff2 +0 -0
  308. package/skills/card/assets/fonts/packages/smiley-sans/L3_9124_64.woff2 +0 -0
  309. package/skills/card/assets/fonts/packages/smiley-sans/L3_9795_64.woff2 +0 -0
  310. package/skills/card/assets/fonts/packages/smiley-sans/L3_c1_64.woff2 +0 -0
  311. package/skills/card/assets/fonts/packages/smiley-sans/L3_fe3a_64.woff2 +0 -0
  312. package/skills/card/assets/fonts/packages/smiley-sans/L3_ff16_79.woff2 +0 -0
  313. package/skills/card/assets/fonts/packages/smiley-sans/font.css +80 -0
  314. package/skills/card/assets/fonts/woff2/fontshare/cabinet-grotesk.woff2 +0 -0
  315. package/skills/card/assets/fonts/woff2/fontshare/general-sans.woff2 +0 -0
  316. package/skills/card/assets/fonts/woff2/fontshare/satoshi.woff2 +0 -0
  317. package/skills/card/assets/fonts/woff2/geist/geist-cyrillic-wght-normal.woff2 +0 -0
  318. package/skills/card/assets/fonts/woff2/geist/geist-latin-ext-wght-normal.woff2 +0 -0
  319. package/skills/card/assets/fonts/woff2/geist/geist-latin-wght-normal.woff2 +0 -0
  320. package/skills/card/assets/fonts/woff2/geist-mono/geist-mono-cyrillic-wght-normal.woff2 +0 -0
  321. package/skills/card/assets/fonts/woff2/geist-mono/geist-mono-latin-ext-wght-normal.woff2 +0 -0
  322. package/skills/card/assets/fonts/woff2/geist-mono/geist-mono-latin-wght-normal.woff2 +0 -0
  323. package/skills/card/assets/fonts/woff2/ibm-plex-mono/ibm-plex-mono-cyrillic-400-normal.woff2 +0 -0
  324. package/skills/card/assets/fonts/woff2/ibm-plex-mono/ibm-plex-mono-cyrillic-ext-400-normal.woff2 +0 -0
  325. package/skills/card/assets/fonts/woff2/ibm-plex-mono/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  326. package/skills/card/assets/fonts/woff2/ibm-plex-mono/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
  327. package/skills/card/assets/fonts/woff2/ibm-plex-mono/ibm-plex-mono-vietnamese-400-normal.woff2 +0 -0
  328. package/skills/card/assets/fonts/woff2/ibm-plex-mono-500/ibm-plex-mono-cyrillic-500-normal.woff2 +0 -0
  329. package/skills/card/assets/fonts/woff2/ibm-plex-mono-500/ibm-plex-mono-cyrillic-ext-500-normal.woff2 +0 -0
  330. package/skills/card/assets/fonts/woff2/ibm-plex-mono-500/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  331. package/skills/card/assets/fonts/woff2/ibm-plex-mono-500/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
  332. package/skills/card/assets/fonts/woff2/ibm-plex-mono-500/ibm-plex-mono-vietnamese-500-normal.woff2 +0 -0
  333. package/skills/card/assets/fonts/woff2/ibm-plex-mono-600/ibm-plex-mono-cyrillic-600-normal.woff2 +0 -0
  334. package/skills/card/assets/fonts/woff2/ibm-plex-mono-600/ibm-plex-mono-cyrillic-ext-600-normal.woff2 +0 -0
  335. package/skills/card/assets/fonts/woff2/ibm-plex-mono-600/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  336. package/skills/card/assets/fonts/woff2/ibm-plex-mono-600/ibm-plex-mono-latin-ext-600-normal.woff2 +0 -0
  337. package/skills/card/assets/fonts/woff2/ibm-plex-mono-600/ibm-plex-mono-vietnamese-600-normal.woff2 +0 -0
  338. package/skills/card/assets/fonts/woff2/libre-caslon-display/libre-caslon-display-latin-400-normal.woff2 +0 -0
  339. package/skills/card/assets/fonts/woff2/libre-caslon-display/libre-caslon-display-latin-ext-400-normal.woff2 +0 -0
  340. package/skills/card/assets/fonts/woff2/newsreader/newsreader-latin-ext-wght-normal.woff2 +0 -0
  341. package/skills/card/assets/fonts/woff2/newsreader/newsreader-latin-wght-normal.woff2 +0 -0
  342. package/skills/card/assets/fonts/woff2/newsreader/newsreader-vietnamese-wght-normal.woff2 +0 -0
  343. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-100-wght-normal.woff2 +0 -0
  344. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-101-wght-normal.woff2 +0 -0
  345. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-102-wght-normal.woff2 +0 -0
  346. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-103-wght-normal.woff2 +0 -0
  347. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-104-wght-normal.woff2 +0 -0
  348. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-105-wght-normal.woff2 +0 -0
  349. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-106-wght-normal.woff2 +0 -0
  350. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-107-wght-normal.woff2 +0 -0
  351. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-108-wght-normal.woff2 +0 -0
  352. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-109-wght-normal.woff2 +0 -0
  353. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-110-wght-normal.woff2 +0 -0
  354. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-111-wght-normal.woff2 +0 -0
  355. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-112-wght-normal.woff2 +0 -0
  356. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-113-wght-normal.woff2 +0 -0
  357. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-114-wght-normal.woff2 +0 -0
  358. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-115-wght-normal.woff2 +0 -0
  359. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-116-wght-normal.woff2 +0 -0
  360. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-117-wght-normal.woff2 +0 -0
  361. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-118-wght-normal.woff2 +0 -0
  362. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-119-wght-normal.woff2 +0 -0
  363. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-21-wght-normal.woff2 +0 -0
  364. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-22-wght-normal.woff2 +0 -0
  365. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-23-wght-normal.woff2 +0 -0
  366. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-24-wght-normal.woff2 +0 -0
  367. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-25-wght-normal.woff2 +0 -0
  368. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-26-wght-normal.woff2 +0 -0
  369. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-27-wght-normal.woff2 +0 -0
  370. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-28-wght-normal.woff2 +0 -0
  371. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-29-wght-normal.woff2 +0 -0
  372. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-30-wght-normal.woff2 +0 -0
  373. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-31-wght-normal.woff2 +0 -0
  374. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-32-wght-normal.woff2 +0 -0
  375. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-33-wght-normal.woff2 +0 -0
  376. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-34-wght-normal.woff2 +0 -0
  377. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-35-wght-normal.woff2 +0 -0
  378. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-36-wght-normal.woff2 +0 -0
  379. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-37-wght-normal.woff2 +0 -0
  380. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-38-wght-normal.woff2 +0 -0
  381. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-39-wght-normal.woff2 +0 -0
  382. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-4-wght-normal.woff2 +0 -0
  383. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-40-wght-normal.woff2 +0 -0
  384. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-41-wght-normal.woff2 +0 -0
  385. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-42-wght-normal.woff2 +0 -0
  386. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-43-wght-normal.woff2 +0 -0
  387. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-44-wght-normal.woff2 +0 -0
  388. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-45-wght-normal.woff2 +0 -0
  389. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-46-wght-normal.woff2 +0 -0
  390. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-47-wght-normal.woff2 +0 -0
  391. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-48-wght-normal.woff2 +0 -0
  392. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-49-wght-normal.woff2 +0 -0
  393. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-5-wght-normal.woff2 +0 -0
  394. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-50-wght-normal.woff2 +0 -0
  395. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-51-wght-normal.woff2 +0 -0
  396. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-52-wght-normal.woff2 +0 -0
  397. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-53-wght-normal.woff2 +0 -0
  398. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-54-wght-normal.woff2 +0 -0
  399. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-55-wght-normal.woff2 +0 -0
  400. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-56-wght-normal.woff2 +0 -0
  401. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-57-wght-normal.woff2 +0 -0
  402. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-58-wght-normal.woff2 +0 -0
  403. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-59-wght-normal.woff2 +0 -0
  404. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-6-wght-normal.woff2 +0 -0
  405. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-60-wght-normal.woff2 +0 -0
  406. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-61-wght-normal.woff2 +0 -0
  407. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-62-wght-normal.woff2 +0 -0
  408. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-63-wght-normal.woff2 +0 -0
  409. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-64-wght-normal.woff2 +0 -0
  410. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-65-wght-normal.woff2 +0 -0
  411. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-66-wght-normal.woff2 +0 -0
  412. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-67-wght-normal.woff2 +0 -0
  413. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-68-wght-normal.woff2 +0 -0
  414. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-69-wght-normal.woff2 +0 -0
  415. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-70-wght-normal.woff2 +0 -0
  416. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-71-wght-normal.woff2 +0 -0
  417. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-72-wght-normal.woff2 +0 -0
  418. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-73-wght-normal.woff2 +0 -0
  419. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-74-wght-normal.woff2 +0 -0
  420. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-75-wght-normal.woff2 +0 -0
  421. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-76-wght-normal.woff2 +0 -0
  422. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-77-wght-normal.woff2 +0 -0
  423. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-78-wght-normal.woff2 +0 -0
  424. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-79-wght-normal.woff2 +0 -0
  425. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-80-wght-normal.woff2 +0 -0
  426. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-81-wght-normal.woff2 +0 -0
  427. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-82-wght-normal.woff2 +0 -0
  428. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-83-wght-normal.woff2 +0 -0
  429. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-84-wght-normal.woff2 +0 -0
  430. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-85-wght-normal.woff2 +0 -0
  431. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-86-wght-normal.woff2 +0 -0
  432. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-87-wght-normal.woff2 +0 -0
  433. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-88-wght-normal.woff2 +0 -0
  434. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-89-wght-normal.woff2 +0 -0
  435. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-90-wght-normal.woff2 +0 -0
  436. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-91-wght-normal.woff2 +0 -0
  437. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-97-wght-normal.woff2 +0 -0
  438. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-98-wght-normal.woff2 +0 -0
  439. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-99-wght-normal.woff2 +0 -0
  440. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-cyrillic-wght-normal.woff2 +0 -0
  441. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-latin-ext-wght-normal.woff2 +0 -0
  442. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-latin-wght-normal.woff2 +0 -0
  443. package/skills/card/assets/fonts/woff2/noto-sans-sc/noto-sans-sc-vietnamese-wght-normal.woff2 +0 -0
  444. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-100-wght-normal.woff2 +0 -0
  445. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-101-wght-normal.woff2 +0 -0
  446. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-102-wght-normal.woff2 +0 -0
  447. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-103-wght-normal.woff2 +0 -0
  448. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-104-wght-normal.woff2 +0 -0
  449. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-105-wght-normal.woff2 +0 -0
  450. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-106-wght-normal.woff2 +0 -0
  451. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-107-wght-normal.woff2 +0 -0
  452. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-108-wght-normal.woff2 +0 -0
  453. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-109-wght-normal.woff2 +0 -0
  454. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-110-wght-normal.woff2 +0 -0
  455. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-111-wght-normal.woff2 +0 -0
  456. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-112-wght-normal.woff2 +0 -0
  457. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-113-wght-normal.woff2 +0 -0
  458. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-114-wght-normal.woff2 +0 -0
  459. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-115-wght-normal.woff2 +0 -0
  460. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-116-wght-normal.woff2 +0 -0
  461. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-117-wght-normal.woff2 +0 -0
  462. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-118-wght-normal.woff2 +0 -0
  463. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-119-wght-normal.woff2 +0 -0
  464. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-21-wght-normal.woff2 +0 -0
  465. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-22-wght-normal.woff2 +0 -0
  466. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-23-wght-normal.woff2 +0 -0
  467. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-24-wght-normal.woff2 +0 -0
  468. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-25-wght-normal.woff2 +0 -0
  469. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-26-wght-normal.woff2 +0 -0
  470. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-27-wght-normal.woff2 +0 -0
  471. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-28-wght-normal.woff2 +0 -0
  472. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-29-wght-normal.woff2 +0 -0
  473. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-30-wght-normal.woff2 +0 -0
  474. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-31-wght-normal.woff2 +0 -0
  475. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-32-wght-normal.woff2 +0 -0
  476. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-33-wght-normal.woff2 +0 -0
  477. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-34-wght-normal.woff2 +0 -0
  478. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-35-wght-normal.woff2 +0 -0
  479. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-36-wght-normal.woff2 +0 -0
  480. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-37-wght-normal.woff2 +0 -0
  481. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-38-wght-normal.woff2 +0 -0
  482. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-39-wght-normal.woff2 +0 -0
  483. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-4-wght-normal.woff2 +0 -0
  484. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-40-wght-normal.woff2 +0 -0
  485. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-41-wght-normal.woff2 +0 -0
  486. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-42-wght-normal.woff2 +0 -0
  487. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-43-wght-normal.woff2 +0 -0
  488. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-44-wght-normal.woff2 +0 -0
  489. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-45-wght-normal.woff2 +0 -0
  490. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-46-wght-normal.woff2 +0 -0
  491. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-47-wght-normal.woff2 +0 -0
  492. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-48-wght-normal.woff2 +0 -0
  493. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-49-wght-normal.woff2 +0 -0
  494. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-5-wght-normal.woff2 +0 -0
  495. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-50-wght-normal.woff2 +0 -0
  496. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-51-wght-normal.woff2 +0 -0
  497. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-52-wght-normal.woff2 +0 -0
  498. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-53-wght-normal.woff2 +0 -0
  499. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-54-wght-normal.woff2 +0 -0
  500. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-55-wght-normal.woff2 +0 -0
  501. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-56-wght-normal.woff2 +0 -0
  502. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-57-wght-normal.woff2 +0 -0
  503. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-58-wght-normal.woff2 +0 -0
  504. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-59-wght-normal.woff2 +0 -0
  505. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-6-wght-normal.woff2 +0 -0
  506. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-60-wght-normal.woff2 +0 -0
  507. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-61-wght-normal.woff2 +0 -0
  508. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-62-wght-normal.woff2 +0 -0
  509. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-63-wght-normal.woff2 +0 -0
  510. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-64-wght-normal.woff2 +0 -0
  511. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-65-wght-normal.woff2 +0 -0
  512. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-66-wght-normal.woff2 +0 -0
  513. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-67-wght-normal.woff2 +0 -0
  514. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-68-wght-normal.woff2 +0 -0
  515. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-69-wght-normal.woff2 +0 -0
  516. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-70-wght-normal.woff2 +0 -0
  517. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-71-wght-normal.woff2 +0 -0
  518. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-72-wght-normal.woff2 +0 -0
  519. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-73-wght-normal.woff2 +0 -0
  520. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-74-wght-normal.woff2 +0 -0
  521. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-75-wght-normal.woff2 +0 -0
  522. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-76-wght-normal.woff2 +0 -0
  523. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-77-wght-normal.woff2 +0 -0
  524. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-78-wght-normal.woff2 +0 -0
  525. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-79-wght-normal.woff2 +0 -0
  526. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-80-wght-normal.woff2 +0 -0
  527. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-81-wght-normal.woff2 +0 -0
  528. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-82-wght-normal.woff2 +0 -0
  529. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-83-wght-normal.woff2 +0 -0
  530. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-84-wght-normal.woff2 +0 -0
  531. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-85-wght-normal.woff2 +0 -0
  532. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-86-wght-normal.woff2 +0 -0
  533. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-87-wght-normal.woff2 +0 -0
  534. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-88-wght-normal.woff2 +0 -0
  535. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-89-wght-normal.woff2 +0 -0
  536. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-90-wght-normal.woff2 +0 -0
  537. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-91-wght-normal.woff2 +0 -0
  538. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-97-wght-normal.woff2 +0 -0
  539. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-98-wght-normal.woff2 +0 -0
  540. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-99-wght-normal.woff2 +0 -0
  541. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-cyrillic-wght-normal.woff2 +0 -0
  542. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-latin-ext-wght-normal.woff2 +0 -0
  543. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-latin-wght-normal.woff2 +0 -0
  544. package/skills/card/assets/fonts/woff2/noto-serif-sc/noto-serif-sc-vietnamese-wght-normal.woff2 +0 -0
  545. package/skills/card/assets/fonts/woff2/source-serif-4/source-serif-4-cyrillic-ext-wght-normal.woff2 +0 -0
  546. package/skills/card/assets/fonts/woff2/source-serif-4/source-serif-4-cyrillic-wght-normal.woff2 +0 -0
  547. package/skills/card/assets/fonts/woff2/source-serif-4/source-serif-4-greek-wght-normal.woff2 +0 -0
  548. package/skills/card/assets/fonts/woff2/source-serif-4/source-serif-4-latin-ext-wght-normal.woff2 +0 -0
  549. package/skills/card/assets/fonts/woff2/source-serif-4/source-serif-4-latin-wght-normal.woff2 +0 -0
  550. package/skills/card/assets/fonts/woff2/source-serif-4/source-serif-4-vietnamese-wght-normal.woff2 +0 -0
  551. package/skills/card/assets/fonts/woff2/space-grotesk/space-grotesk-latin-ext-wght-normal.woff2 +0 -0
  552. package/skills/card/assets/fonts/woff2/space-grotesk/space-grotesk-latin-wght-normal.woff2 +0 -0
  553. package/skills/card/assets/fonts/woff2/space-grotesk/space-grotesk-vietnamese-wght-normal.woff2 +0 -0
  554. package/skills/card/assets/fonts/woff2/spectral/spectral-cyrillic-400-normal.woff2 +0 -0
  555. package/skills/card/assets/fonts/woff2/spectral/spectral-cyrillic-ext-400-normal.woff2 +0 -0
  556. package/skills/card/assets/fonts/woff2/spectral/spectral-latin-400-normal.woff2 +0 -0
  557. package/skills/card/assets/fonts/woff2/spectral/spectral-latin-ext-400-normal.woff2 +0 -0
  558. package/skills/card/assets/fonts/woff2/spectral/spectral-vietnamese-400-normal.woff2 +0 -0
  559. package/skills/card/assets/fonts/woff2/spectral-600/spectral-cyrillic-600-normal.woff2 +0 -0
  560. package/skills/card/assets/fonts/woff2/spectral-600/spectral-cyrillic-ext-600-normal.woff2 +0 -0
  561. package/skills/card/assets/fonts/woff2/spectral-600/spectral-latin-600-normal.woff2 +0 -0
  562. package/skills/card/assets/fonts/woff2/spectral-600/spectral-latin-ext-600-normal.woff2 +0 -0
  563. package/skills/card/assets/fonts/woff2/spectral-600/spectral-vietnamese-600-normal.woff2 +0 -0
  564. package/skills/card/assets/fonts/woff2/spectral-800/spectral-cyrillic-800-normal.woff2 +0 -0
  565. package/skills/card/assets/fonts/woff2/spectral-800/spectral-cyrillic-ext-800-normal.woff2 +0 -0
  566. package/skills/card/assets/fonts/woff2/spectral-800/spectral-latin-800-normal.woff2 +0 -0
  567. package/skills/card/assets/fonts/woff2/spectral-800/spectral-latin-ext-800-normal.woff2 +0 -0
  568. package/skills/card/assets/fonts/woff2/spectral-800/spectral-vietnamese-800-normal.woff2 +0 -0
  569. package/skills/card/references/design-languages/cinematic-still.md +57 -0
  570. package/skills/card/references/design-languages/data-poster.md +57 -0
  571. package/skills/card/references/design-languages/editorial-artifact.md +58 -0
  572. package/skills/card/references/design-languages/field-notes.md +58 -0
  573. package/skills/card/references/design-languages/image-led-magazine.md +57 -0
  574. package/skills/card/references/design-languages/newsroom-poster.md +58 -0
  575. package/skills/card/references/design-languages/product-catalog.md +57 -0
  576. package/skills/card/references/design-languages/swiss-poster.md +60 -0
  577. package/skills/card/references/design-languages.md +168 -0
  578. package/skills/card/references/fonts-preview.html +450 -0
  579. package/skills/card/references/fonts.md +151 -0
  580. package/skills/card/references/layouts/card-layouts.md +268 -0
  581. package/skills/card/references/magazine-card-adaptations.md +154 -0
  582. package/skills/card/references/taste.md +121 -0
  583. package/skills/card/references/themes/presets.md +314 -0
  584. package/skills/card/scripts/download-fonts.sh +240 -0
  585. package/skills/card/scripts/render-cards.mjs +219 -0
  586. package/skills/voxflow-slice/SKILL.md +0 -415
  587. package/skills/voxflow-slice/examples/article.md +0 -13
  588. package/skills/voxflow-slice/examples/expected-deck.json +0 -39
  589. package/skills/voxflow-slice/examples/validate.mjs +0 -46
  590. /package/skills/{voxflow-slice → slice}/templates/data-finding/deck.json +0 -0
  591. /package/skills/{voxflow-slice → slice}/templates/founder-lesson/deck.json +0 -0
  592. /package/skills/{voxflow-slice → slice}/templates/incident-review/deck.json +0 -0
  593. /package/skills/{voxflow-slice → slice}/templates/manifest.json +0 -0
  594. /package/skills/{voxflow-slice → slice}/templates/product-launch/deck.json +0 -0
  595. /package/skills/{voxflow-slice → slice}/templates/quiet-essay/deck.json +0 -0
@@ -0,0 +1,486 @@
1
+ ---
2
+ name: card
3
+ description: "Use when the user wants to turn text content into a set of polished, shareable visual CARD IMAGES or narrated card VIDEOS — knowledge cards, quote cards, 小红书图文, carousel cards, poster cards — rendered as HTML/CSS and exported via Playwright at ratios like 1:1 / 3:4 / 9:16; optionally produces narrated MP4 video from those cards via `voxflow card render` (Ken Burns + TTS). Triggers: card / 卡片 / 知识卡 / 文字卡片 / 金句卡 / 图文卡片 / 卡片生成 / make cards / card video / 卡片视频. For article → Slice-themed card VIDEO use voxflow:slice; for short videos / AI clips use voxflow:video; for podcasts use voxflow:podcast."
4
+ ---
5
+
6
+ # VoxFlow Skill — Card
7
+
8
+ Turn a piece of text into a set of distinctive, consistent visual card
9
+ images. Each card is its own webpage; all cards share one size and style
10
+ system; they render with Playwright and export as PNGs.
11
+
12
+ This is the **static card-image** skill. For other surfaces switch to:
13
+
14
+ - **Article → vertical card VIDEO (Slice)** — 1080×1920 reel, 13 themes → `voxflow:slice`
15
+ - **Short videos / AI clips / knowledge-card videos** → `voxflow:video`
16
+ - **Multi-speaker podcasts** → `voxflow:podcast`
17
+ - **TTS / voices / install / auth / quota** → `voxflow:hub`
18
+
19
+ <CRITICAL-AUTO-UPGRADE>
20
+ If ANY `voxflow` command prints a `<voxflow-hint ... type="cli-outdated" ...>` line to stderr, IMMEDIATELY run `voxflow upgrade -y` before continuing — do not ask, do not summarize first. If `voxflow upgrade` errors with `Unknown command` (CLI predates 1.12.0), fall back to `npm i -g voxflow@latest`.
21
+ </CRITICAL-AUTO-UPGRADE>
22
+
23
+ ## Step 0 · Sign-in gate (required, do this first)
24
+
25
+ This skill is part of VoxFlow and **requires a signed-in account**. Before
26
+ anything else — before asking questions, before research, before design —
27
+ verify login:
28
+
29
+ ```bash
30
+ voxflow status
31
+ ```
32
+
33
+ - Prints the account + remaining quota → signed in, continue to the workflow.
34
+ - Errors / shows "not logged in" → **STOP**. Run `voxflow login` (opens the
35
+ browser — Google or email OTP), wait for the user to finish, then re-run
36
+ `voxflow status`. Do not collect parameters or generate any cards until
37
+ login succeeds.
38
+ - `voxflow: command not found` → `npm install -g voxflow` first, then
39
+ `voxflow login`.
40
+
41
+ Never skip this gate, never generate cards for an unauthenticated user, and
42
+ never invent a token. The cached token lives at `~/.config/voxflow/token.json`;
43
+ for CI, `VOXFLOW_TOKEN` is honored.
44
+
45
+ ## Overview
46
+
47
+ Create a set of shareable visual cards from source content. Treat each card as its own webpage, keep all cards the same size and style system, render them with Playwright, export images, and iterate on weak cards.
48
+
49
+ ## Taste Baseline
50
+
51
+ `references/taste.md` is a constraint checklist that bounds every card mold, theme, layout, and design language. Treat it as a floor that bites at design time, not an opening ritual to be recited at workflow start.
52
+
53
+ - Load `references/taste.md` at two moments only, not at the start of the workflow:
54
+ - When picking the theme preset and design language (Workflow step 4), so the choice does not violate hard constraints.
55
+ - During QA scoring (Workflow step 7), as one explicit verification dimension.
56
+ - Other steps (parameter collection, research, copy planning) do not need to reload `references/taste.md`; the constraints flow into them through the preset and language already chosen.
57
+ - The core goal is to remove obvious AI-generated design traces.
58
+ - Hard constraints include: no default Inter font, no pure black, no default centered hero, no three equal-card composition, no generic AI-copy voice, and no fake-looking data.
59
+ - Taste does not mean empty. Use the density rules in `references/taste.md` so real card sets include at least one useful information card unless the user explicitly asks for a poster-only or cinematic-only set.
60
+ - If a theme preset or design language conflicts with `references/taste.md`, the taste baseline wins unless the user explicitly asks for the banned style.
61
+
62
+ ## Inputs
63
+
64
+ Collect or infer:
65
+
66
+ - `content`: source text, outline, notes, URL, topic, or brief.
67
+ - `ratio`: default to `1:1` unless the user requests `3:4`, `9:16`, or another ratio.
68
+ - `count`: default to an automatic count based on content density; accept explicit quantities.
69
+ - `style`: accept explicit style directions, brand constraints, audience, mood, and platform.
70
+ - `content-language`: zh / en / mixed. Infer from the source; ask only when ambiguous and it would change font selection. Drives the language override in `references/fonts.md`.
71
+ - `output`: choose a clear local folder such as `cards/<slug>/` unless the user specifies one.
72
+
73
+ If important facts may be current or disputed, search or verify before planning. Keep source attribution available for the user when research affects the content. See the Research & Fact Confirmation section for when this becomes a full deep-research pass instead of a quick check.
74
+
75
+ ## Research & Fact Confirmation
76
+
77
+ Insert this between parameter collection and design work, but only when the input cannot stand on its own as the content of the cards.
78
+
79
+ - Trigger deep research when `content` is any of: a topic phrase, a single sentence brief, a URL whose body has not been read yet, a tweet-length idea, a question, or a request to "explain X / cover X / make cards about X".
80
+ - Skip deep research when `content` is already a self-contained article, transcript, set of structured notes, a fully drafted outline, or any text the user clearly wants cards built *from* rather than *about*.
81
+ - When triggered, produce a fact outline before any visual planning:
82
+ - Core claim or thesis.
83
+ - 3-7 supporting points with concrete numbers, names, dates, or mechanisms.
84
+ - Sources for each non-trivial fact, with URLs or document references that will land in `sources.md`.
85
+ - Open questions or contested points the user should resolve.
86
+ - Present the fact outline to the user and ask for confirmation, additions, or corrections before moving into theme/design-language selection. This is a separate confirmation from the later concept/visual confirmation.
87
+ - The output of this step is the "bones" — claims and evidence — not finished card copy. Card-level hooks, explainers, and takeaways are written later during content structuring (step 5) on top of the confirmed bones.
88
+ - Record sources gathered here into `sources.md` inside the output folder as soon as the fact outline is confirmed.
89
+
90
+ ### Trigger Examples
91
+
92
+ Run deep research when:
93
+
94
+ - "做一组讲 MCP 协议的卡片" — bare topic, no body.
95
+ - "把这篇文章做成卡片:https://example.com/post" — URL whose contents have not been read in this conversation.
96
+ - "想做一组讲 RAG 优化技巧的卡片,重点放在 chunking 上" — topic + angle, no concrete points or data.
97
+ - "Cloudflare Durable Objects 适合什么场景?做几张卡片" — question or "explain X / cover X" framing.
98
+ - A single tweet, headline, or one-line brief that names a subject but supplies no evidence.
99
+
100
+ Skip deep research when:
101
+
102
+ - The user pastes a full article, blog post, transcript, or interview body (anything roughly 500+ words of self-contained source content).
103
+ - The user provides structured notes, meeting minutes, course notes, or a finished outline where each card's title and 2-4 points are already listed.
104
+ - The user provides their own finished copy and asks for visual treatment only ("把这段话排成卡片", "美化一下这段文案").
105
+ - The user explicitly says "不要查资料 / 直接基于这段写 / 不要扩展", regardless of input length.
106
+
107
+ ### Borderline Inputs
108
+
109
+ - Short brief + ambition mismatch — e.g., 200-word summary plus "展开成 7 张卡". The brief is too thin to fill the target count, so trigger research and surface that the brief lacks evidence before expanding.
110
+ - Article + "再补点最新数据 / 加点案例" — run a scoped research pass only on the requested additions; do not re-research the parts the user already wrote.
111
+ - Bullet list with titles but no evidence — e.g., "1. 性能更好 2. 更便宜 3. 更安全". Trigger research to attach concrete numbers or examples; otherwise the cards will read as AI filler.
112
+ - Article + the user's own opinion or take — skip research on the source, but confirm with the user whether the opinion should be preserved verbatim or restructured.
113
+ - URL whose body has already been fetched and discussed earlier in this conversation — treat as pasted content, skip research, but still write the URL into `sources.md`.
114
+
115
+ When the input is ambiguous, ask one clarifying question ("这段内容是要直接做成卡片,还是希望我先查资料再展开?") instead of guessing — a wrong research decision wastes either the user's time or the model's research budget.
116
+
117
+ ## Ask User Questions
118
+
119
+ Ask for missing generation parameters once near the start, before concept planning. Treat "Ask User Questions" as a portable decision policy, not a requirement to call a specific tool. Different coding agents expose different interaction primitives, so the skill must work when structured question tools are present, absent, or discouraged by the agent's operating mode.
120
+
121
+ - First extract known values for `content`, `ratio`, `count`, `theme/style`, `platform/audience`, and `output/constraints`.
122
+ - Ask the user to confirm generation parameters before planning whenever any meaningful choice is still missing. Do this even when the user says "帮我做 / 生成 / 制作 / 直接出图 / quickly export"; those phrases request execution, not silent parameter inference.
123
+ - Ask when the answer materially changes the output. Priority order: `content/source intent`, `ratio`, `count`, `theme/style`, `platform/audience`, `output/constraints`.
124
+ - Ask at most 3 concise questions by default. Use up to 5 only when the user explicitly wants configuration choices or the output is high-stakes.
125
+ - Do not ask again for parameters that are already explicit in the user's original request.
126
+ - Skip the question step only when the user explicitly says not to ask questions or explicitly approves default parameters. In that case, use defaults and state the assumptions briefly before or during execution.
127
+
128
+ ### Compatibility Strategy
129
+
130
+ Use the current environment's best available question mechanism:
131
+
132
+ - If the environment supports `ask_user_question`, `ask question`, or an equivalent native clarification capability, use that native interaction to clarify blocking questions.
133
+ - If the environment does not support a native question capability, ask directly in normal conversation.
134
+ - Ask at most 2-5 questions at a time.
135
+ - If missing information does not block the task, still ask once for confirmation of the parameters that affect the final output. If the user has already approved defaults or asked for no questions, make reasonable assumptions and continue.
136
+ - Explicitly list important assumptions in the final response, `sources.md`, or `credits.md`.
137
+
138
+ ### Stop Conditions
139
+
140
+ Stop and ask before generation only when one of these is true:
141
+
142
+ - There is no usable `content`, topic, URL, or source material.
143
+ - The source intent is ambiguous and choosing wrong would waste the work, for example "use this text as-is" versus "research and expand this topic".
144
+ - The requested ratio/platform is contradictory or impossible to satisfy with a single export.
145
+ - The visual direction is governed by brand, legal, accessibility, or exact-copy constraints that are missing.
146
+ - Research finds contested facts that would change the core claim.
147
+
148
+ Otherwise, ask once for confirmation of meaningful generation parameters, then proceed with documented assumptions and record them in `sources.md` or the final response.
149
+
150
+ ### Ratio Question
151
+
152
+ Use these default choices:
153
+
154
+ - `1:1` square card for general social sharing.
155
+ - `3:4` vertical graphic card for richer text/image posts.
156
+ - `9:16` story, reel, short-video cover, or mobile-first card.
157
+
158
+ Accept free-form ratios such as `4:5`, `16:9`, or exact pixel sizes when the user provides them.
159
+
160
+ ### Count Question
161
+
162
+ Use these default choices:
163
+
164
+ - Auto-recommend based on the content.
165
+ - `3` cards for a compact narrative.
166
+ - `5` cards for a standard explainer.
167
+ - `7` cards for a fuller carousel.
168
+
169
+ When auto-recommending, choose the smallest set that covers the idea without crowding. Prefer 3-7 cards for explainers and 1-3 cards for announcements.
170
+
171
+ ### Theme Question
172
+
173
+ Do not expose the full preset catalog directly to the user. Load `references/themes/presets.md` and, when visual direction matters, `references/design-languages.md`; then recommend 3-5 scenario-based style options based on the content, platform, audience, and sharing goal. Map the user's chosen scenario to the final theme preset and design-language combination internally.
174
+
175
+ When asking the user to choose a style, do not present only one recommendation plus a vague "or change it?" question. Give 3-5 concrete options, each with:
176
+
177
+ - a short user-facing style name;
178
+ - the situation where it works best;
179
+ - a one-line visual description;
180
+ - the internal theme preset and design-language mapping.
181
+
182
+ Use a two-layer selection logic so outputs stay appropriate without collapsing into the same few looks:
183
+
184
+ 1. Default recommendation layer:
185
+ - Offer 3-5 high-fit styles based on content type, platform, audience, and sharing goal.
186
+ - Keep the recommended set close enough to the user's task that any option can succeed without heavy rework.
187
+ - Prefer options that differ in visible outcome, not just token names. For example: conservative report, data poster, social notebook, magazine explainer, bold opinion.
188
+
189
+ 2. Variant perturbation layer:
190
+ - When the user has not strongly specified an exact style, rotate within the compatible family instead of always selecting the top default.
191
+ - Vary at least two of these dimensions across similar tasks: theme preset, primary design language, modifiers, layout recipes, visual anchors, surface metaphor, or title composition.
192
+ - Keep perturbations semantically compatible with the content. Do not use random novelty that fights the topic, platform, accessibility, or factual clarity.
193
+ - Record the final selected combination in the concept plan or `sources.md` / `credits.md` so the variation is inspectable.
194
+
195
+ Use user-facing scenario labels such as:
196
+
197
+ - Engineering infographic: map to `engineering-paper`, `product-manual`, or `porcelain-research`.
198
+ - Business briefing: map to `quiet-report`, `product-manual`, or `porcelain-research`.
199
+ - Bold opinion: map to `bold-editorial`, `magazine-eink`, or `newsroom-paper`.
200
+ - Social product note: map to `social-notebook`, `magazine-eink`, or `bold-editorial`.
201
+ - Editorial / magazine: map to `magazine-eink`, `dune-gallery`, `field-notes`, or `kraft-editorial`.
202
+
203
+ For design-language choices, use user-facing scenario labels such as:
204
+
205
+ - Technical but designed: map to `editorial-artifact + cutaway + annotation`.
206
+ - Magazine explainer: map to `image-led-magazine + edge-crop + asymmetric-space`.
207
+ - Bold thesis: map to `swiss-poster + scale-contrast + split-field`.
208
+ - News incident: map to `newsroom-poster + stamp-label + big-number`.
209
+ - Archive dossier: map to `field-notes + layered-depth + receipt-form`.
210
+ - Product specimen: map to `product-catalog + edge-crop + annotation`.
211
+ - Data poster: map to `data-poster + scale-contrast + big-number`.
212
+
213
+ After the user chooses, state the selected theme direction, final preset, design-language combination, and why it fits before moving into the concept plan.
214
+
215
+ ## Design Context
216
+
217
+ Prefer existing design context over inventing a new visual system.
218
+
219
+ - Always load `references/taste.md` before choosing visual direction. Carry its anti-AI-trace rules into the visual DNA summary.
220
+ - Before planning the cards, look for any user-provided or local brand assets, previous card sets, screenshots, Figma/UI kit references, project design systems, existing webpages, or code styles that should influence the result.
221
+ - When the user asks for an editorial, magazine, e-ink, presentation-inspired, or image-heavy card style, load `references/magazine-card-adaptations.md` and apply only the card-suitable parts: editorial shell, compact layout archetypes, restrained ink/paper palettes, and image slot workflow.
222
+ - When the card set needs stronger design, or when the style is not explicitly minimal, load `references/layouts/card-layouts.md` and use it as the layout contract before writing HTML.
223
+ - When the card set needs stronger design, style variation, or user-selectable visual directions, load `references/design-languages.md` and choose a primary design language plus 1-2 modifiers.
224
+ - Extract a compact visual DNA summary: palette, typography feel, information density, border radius, shadow/depth, image or illustration treatment, layout rhythm, and copy tone.
225
+ - If no reliable design context is available, derive the visual direction from the content, audience, platform, and requested mood, and state that assumption in the plan.
226
+
227
+ ## Theme Presets
228
+
229
+ Use theme presets as starting points, not as copied CSS. Define a fresh token block for each card set and adapt the palette to the content.
230
+
231
+ - Apply `references/taste.md` before theme selection. A preset can suggest palette and mood, but it cannot reintroduce Inter, pure black, centered hero defaults, three equal cards, AI purple-blue gradients, neon glows, fake data, or AI-copy voice.
232
+ - Load `references/themes/presets.md` when the user asks for style options, when the style is ambiguous, or when the card set needs a clear visual direction.
233
+ - Use 3-5 scenario-based theme options before coding when appropriate. Do not list the full preset catalog to the user.
234
+ - Convert the selected scenario direction into a final preset from the catalog, then adapt it with fresh local tokens.
235
+ - Do not copy external theme CSS wholesale. Recreate the needed palette and behavior in the local card style.
236
+
237
+ Default recommendation rules:
238
+
239
+ - Technical, API, architecture, or infrastructure content: prefer `engineering-paper`; alternatives are `product-manual` and `porcelain-research`.
240
+ - News, releases, product updates, changelogs, or incidents: prefer `newsroom-paper`; alternatives are `quiet-report` and `engineering-paper`.
241
+ - Business, fundraising, growth, or product narrative: prefer `quiet-report`; alternatives are `product-manual` and `porcelain-research`.
242
+ - Opinion, commentary, or strong shareable hook: prefer `bold-editorial`; alternatives are `magazine-eink` and `newsroom-paper`.
243
+ - Xiaohongshu, lifestyle, or consumer product content: prefer `social-notebook`; alternatives are `magazine-eink` and `bold-editorial`.
244
+ - Editorial, talk-summary, longform, culture, essay, or premium carousel content: prefer `magazine-eink`; alternatives are `dune-gallery`, `field-notes`, and `kraft-editorial` based on topic.
245
+ - CLI, security, or terminal tools: prefer `engineering-paper`, `product-manual`, or `newsroom-paper`; use `terminal-green` only when the user explicitly asks for a terminal look.
246
+ - Do not default to neon, cyberpunk, terminal, glowing dark dashboards, or blue-purple AI gradients unless the user explicitly asks for that visual language.
247
+
248
+ ## Editorial Magazine Mode
249
+
250
+ Use `references/magazine-card-adaptations.md` when the card set should borrow from presentation or magazine design. This mode is inspired by `op7418/guizang-ppt-skill`, but adapted for static card exports.
251
+
252
+ - Reuse only card-appropriate ideas: editorial chrome, footer metadata, visible page numbers, serif/display title hierarchy, monospace metadata, restrained ink/paper palettes, and compact layout archetypes.
253
+ - Do not reuse slide-specific behavior: horizontal navigation, WebGL backgrounds, Motion One reveal systems, `vh`-driven slide sizing, or PPT-only class names.
254
+ - Before coding, choose the archetype for each card: editorial cover, section divider, big numbers, left narrative + right visual, image proof grid, pipeline/process, question closer, big quote, before/after, or lead image + sidebar.
255
+ - Treat `chrome` and `kicker` as different content roles. `chrome` is stable metadata or series navigation; `kicker` is the unique hook for that card. They must not repeat the same idea.
256
+ - If images are involved, define the image slot and ratio before sourcing or generating the asset. Generated images are card assets only; they must not include titles, page numbers, watermarks, captions, or card borders.
257
+
258
+ ## Layout Contract
259
+
260
+ Use `references/layouts/card-layouts.md` whenever the output should have visible design quality, not just readable information.
261
+
262
+ - Apply `references/taste.md` as the first layout filter. Reject centered hero defaults and three equal-card layouts unless the user explicitly asks for them and the choice is justified.
263
+ - Before writing HTML, create a one-row-per-card layout plan with: card role, layout recipe, visual anchor, text density, asset slot, and layout risk.
264
+ - Plan information density at the set level. A real explainer set should not have every card at low density; include at least one mechanism, proof, checklist, comparison, or takeaway card with 2-4 concrete points.
265
+ - A visual anchor is mandatory for every card. It can be typography, a number, image, artifact, diagram, form, stamp, map, screenshot, or custom CSS object. If the anchor is "none", redesign the card concept.
266
+ - For 1-3 cards, use at least 2 layout recipes. For 4-7 cards, use at least 3. For 8+ cards, use at least 4 and add reset cards every 3-4 cards.
267
+ - Avoid repeating `headline + equal grid + footer` across the set. Shared style is good; repeated composition is not.
268
+ - Avoid making fine lines, coordinate grids, and boxed panels the default design language. Use them only as support for a stronger visual anchor.
269
+ - Prefer composition moves such as crop, overlap, diagonal placement, scale contrast, cutaway shapes, stamps, labels, tapes, large image/object anchors, and asymmetric whitespace.
270
+ - During concept planning, present the layout plan when layout/design quality is a concern. During final QA, name the actual layout used for each rendered card.
271
+
272
+ ## Design Language System
273
+
274
+ Use `references/design-languages.md` to define the card set's visual grammar independently from the theme preset.
275
+
276
+ - A theme preset controls palette and type tone; a design language controls composition, focal devices, visual metaphors, texture, and pacing.
277
+ - Choose 1 primary design language and optionally 1-2 modifiers. Do not combine more than 3 languages/modifiers unless the user asks for eclectic variation.
278
+ - After choosing a primary design language, load its individual spec file from `references/design-languages/<name>.md` and follow its `Must Use`, `Must Not Use`, typography, layout, density, asset, and QA rules.
279
+ - Supported primary languages include `editorial-artifact`, `swiss-poster`, `image-led-magazine`, `field-notes`, `newsroom-poster`, `product-catalog`, `cinematic-still`, and `data-poster`.
280
+ - Supported modifiers include `scale-contrast`, `edge-crop`, `diagonal-tension`, `layered-depth`, `split-field`, `asymmetric-space`, `cutaway`, `stamp-label`, `receipt-form`, `annotation`, `big-number`, `paper-cut`, and `map-route`.
281
+ - Users may choose a preset combination such as Technical but designed, Magazine explainer, Bold thesis, News incident, Archive dossier, Product specimen, or Data poster.
282
+ - Keep the design-language combination stable across the set, but vary layout recipes and visual anchors per card.
283
+ - When a card set mixes multiple primary languages, designate one primary language for the whole set and use other languages only as card-level accents.
284
+
285
+ ## Workflow
286
+
287
+ 1. Collect parameters and ask user questions when needed.
288
+ - Extract known parameters from the original request and do not repeat them.
289
+ - Apply the Ask User Questions policy: infer low-risk defaults, ask only for true blockers, and adapt to the current agent's interaction mode.
290
+ - Do not read `references/taste.md` at this step; it is loaded later in step 4 (theme/language selection) and step 7 (QA).
291
+ - Skip the question step only when the user explicitly asked for no questions or explicitly approved defaults. Direct generation, quick export, or "帮我做" requests still require one early parameter confirmation when meaningful choices are missing.
292
+
293
+ 2. Conditional deep research and fact outline confirmation.
294
+ - Apply the trigger rules in Research & Fact Confirmation: run a research pass when the input is a topic, URL, brief, question, or "make cards about X" request; skip when the input is already a full article, transcript, structured notes, or finished outline.
295
+ - When triggered, produce the fact outline (core claim, 3-7 supporting points with concrete data, sources, open questions). Present it to the user and wait when the facts, framing, or scope may change the card narrative; otherwise record clear and uncontested facts with sources after the initial parameter confirmation.
296
+ - Treat this confirmation as separate from the later visual/concept confirmation in step 6 when the workflow is confirmation-led. In execution-first workflows, turn it into a short progress update instead of a blocking gate unless Stop Conditions apply.
297
+ - Save confirmed sources into `sources.md` in the output folder.
298
+ - Skip entirely when not triggered, or when the user explicitly asked to proceed without research.
299
+
300
+ 3. Expand and structure the content.
301
+ - Extract the core message, audience, emotional hook, claims, and supporting points from the confirmed bones (or directly from the input if step 2 was skipped).
302
+ - If `count` is missing, choose the smallest number of cards that covers the idea without crowding; prefer 3-7 cards for explainers and 1-3 cards for announcements.
303
+ - Decide a title, subtitle, and key visual idea for every card.
304
+ - Decide the set-level density arc before writing final copy. For 3 cards, default to `hook / explain / takeaway`; for 5 cards, default to `hook / context / mechanism / evidence / takeaway`; for 7 cards, default to `hook / context / mechanism / evidence / contrast / action / closer`.
305
+ - Unless the user wants poster-only cards, include at least one card with a concrete claim plus 2-4 supporting points, labels, observations, steps, or callouts.
306
+ - Remove AI-copy phrases, generic placeholder brands/names, and fake-looking numbers during copy planning.
307
+
308
+ 4. Pick the theme preset and design language, then build the layout plan.
309
+ - Load `references/taste.md` now and read it as an active checklist; the hard constraints apply to every subsequent design decision in this step.
310
+ - Confirm or revisit the theme preset chosen in step 1 against the taste baseline; if a preset would violate a hard constraint, swap it before continuing.
311
+ - Apply the two-layer style selection logic: first choose from the high-fit recommendation set, then apply a compatible variant perturbation when the user did not specify an exact style.
312
+ - The perturbation must affect the visible result, not only metadata. Rotate layout recipes, visual anchors, surface metaphors, and composition moves alongside theme / design-language tokens.
313
+ - Assign one concrete layout recipe per card. For stronger design work, use `references/layouts/card-layouts.md`; for magazine/editorial cards, also use `references/magazine-card-adaptations.md`.
314
+ - Assign a design-language combination when the style is open or the user wants more design variation. Load the individual spec file for the selected primary language from `references/design-languages/<name>.md`.
315
+ - Load `references/fonts.md` and run its font-selection algorithm: from the chosen preset × design-language × content-language, take the per-role candidate pools, apply hard-constraint filtering, then weighted-random pick one font per role for the whole set (seed the randomness with the output slug so a given set is reproducible but different topics vary). Record the selected display/serif/sans/mono families in `sources.md`.
316
+ - For each card, identify the visual anchor and composition move before writing body copy. If the card is only text blocks, equal boxes, or a background grid, either choose a stronger layout or deliberately mark it as a low-design utility card.
317
+ - Respect low-density primary language limits by moving detail to another card in the set, not by overloading `swiss-poster`, `cinematic-still`, quote, cover, or closer cards.
318
+
319
+ 5. Plan concepts and request confirmation.
320
+ - Present the resolved ratio, card count, selected theme direction and preset, selected design language/modifiers, content outline, and first-card concept.
321
+ - When layout quality matters, include the layout plan: card role, layout recipe, visual anchor, composition move, text density, and asset slot.
322
+ - State which card carries the useful detail when the cover or primary language is intentionally low-density.
323
+ - Make card 1 a precise high-impact cover: it must communicate the topic instantly, create curiosity, and feel worth opening and sharing.
324
+ - Concept confirmation covers only the cover concept, content outline, and visual direction. Do not repeat questions about already-resolved ratio, count, theme, platform, or output constraints.
325
+ - When the task is high-impact or the style is ambiguous after the question step, offer 3-5 visual directions before coding. Cover distinct options such as brand-aligned/conservative, structured/information-graphic, social-friendly, magazine/editorial, and bolder/shareable.
326
+ - For each direction, describe the cover concept, overall visual language, and the situation where it works best.
327
+ - Skip concept variations when the user already specified the visual style, explicitly asked to proceed without confirmation, or needs a fast direct export.
328
+ - Ask the user to confirm before coding when Stop Conditions apply or when the concept direction may materially change the output. If the user already confirmed parameters and the concept follows those choices, state the concept briefly as a progress update and continue into implementation.
329
+
330
+ 6. Build the card webpages.
331
+ - Create one HTML page per card, named predictably such as `card-01.html`, `card-02.html`.
332
+ - Use one shared CSS file or shared design tokens so size, typography, spacing, palette, border radius, and component styling stay consistent.
333
+ - Choose fonts via the `references/fonts.md` selection algorithm decided in step 4; embed them locally by importing `assets/fonts/fonts.css` (or copying the used fonts into `cards/<slug>/assets/fonts/` and referencing them with local `@font-face`). Never load fonts from a CDN. Choose colors that satisfy `references/taste.md`: do not default to Inter, do not use pure black, and avoid generic AI purple-blue gradients or neon glow effects.
334
+ - Set an explicit fixed canvas size derived from the ratio. Recommended bases:
335
+ - `1:1`: `1080x1080`
336
+ - `3:4`: `1080x1440`
337
+ - `9:16`: `1080x1920`
338
+ - Custom `a:b`: use width `1080` and height `round(1080*b/a)` unless the user requests exact pixels.
339
+ - Keep every card inside a single fixed-size `.card` root. Do not allow body scrolling.
340
+ - Use real HTML/CSS text instead of baking text into images.
341
+ - Use the same style language across cards; vary composition only enough to fit content.
342
+ - Define shared layout primitives in CSS for the selected recipes before implementing individual cards. Each card should have a recognizable layout parent class such as `.layout-cover`, `.layout-split`, `.layout-artifact`, `.layout-rail`, `.layout-compare`, `.layout-quote`, or `.layout-checklist`.
343
+ - For editorial magazine mode, build the shell with card-native classes in the local CSS. Do not paste PPT layout classes unless they are defined and adapted in the card set's CSS.
344
+
345
+ 7. Score and regenerate each card.
346
+ - Reload `references/taste.md` and read it as the QA acceptance checklist before scoring; do not score from memory.
347
+ - Render and screenshot every card before judging it.
348
+ - Score each card on:
349
+ - Boundary: no obvious clipping, unintended scrollbars, text outside the canvas, or important elements touching edges.
350
+ - Color: palette is legible, attractive, intentional, and consistent with the requested style.
351
+ - Layout: hierarchy is clear, whitespace is balanced, and content density fits the ratio.
352
+ - Information value: the set has at least one card with actionable or concrete detail, not only atmospheric headlines; any low-density card is justified by role or primary language.
353
+ - Layout contract: the planned visual anchor is present and dominant enough, the recipe can be recognized from the screenshot, and the set does not repeat the same composition card after card.
354
+ - Design expression: the card does not rely mainly on fine lines, grids, and boxed panels; those elements must be secondary to the visual anchor.
355
+ - Design language: the selected primary language and modifiers are recognizable from the screenshot, and the relevant spec file's `Must Use` / `Must Not Use` rules are satisfied.
356
+ - Taste baseline: every hard constraint in `references/taste.md` is satisfied — no Inter default, no pure black, no default centered hero, no three equal-card main layout, no AI-copy voice, no fake-looking data, no neon/glow AI aesthetics.
357
+ - Editorial discipline when applicable: chrome and kicker are not redundant, image frames share consistent crop rules, and generated assets do not contain their own slide/card chrome.
358
+ - If any category fails, revise that card and rerender. Limit each card to 3 repair rounds.
359
+ - If a card still fails after 3 rounds, report the remaining risk and keep the best version.
360
+
361
+ 8. Export final images.
362
+ - Use Playwright screenshots, not browser manual screenshots.
363
+ - Export one PNG per card with stable names such as `card-01.png`.
364
+ - Default to 2x screenshot exports for sharpness. A `1080x1080` card should export as a `2160x2160` PNG unless the user explicitly asks for smaller files or `--scale 1`.
365
+ - Provide the user with the output paths and a concise summary of the final ratio, count, and style.
366
+
367
+ 9. Write `deck.json` for video export (required when the user asks for video/narration).
368
+ - After all HTML cards are finalized and PNGs exported, write a `deck.json` in the output directory.
369
+ - This file drives TTS narration synthesis and video rendering in the next step.
370
+ - Format:
371
+
372
+ ```json
373
+ {
374
+ "meta": {
375
+ "title": "<Series title>",
376
+ "ratio": "<ratio used: 9:16 | 1:1 | 3:4>",
377
+ "language": "<zh | en>"
378
+ },
379
+ "cards": [
380
+ { "file": "card-01.html", "title": "...", "narration": "1-3 sentence spoken caption." },
381
+ { "file": "card-02.html", "title": "...", "narration": "..." }
382
+ ]
383
+ }
384
+ ```
385
+
386
+ - Narration rules:
387
+ - Write narration in the same language as the card copy.
388
+ - 1-3 sentences per card. Natural spoken rhythm — avoid lists, avoid bullet-speak.
389
+ - Don't restate the visual; add context, interpretation, or the key takeaway.
390
+ - Each card's narration should be understandable when heard without the image.
391
+ - Also add `data-narration="..."` to the `.card` element in every HTML file for transparency.
392
+ - Skip this step when the user explicitly asked for images only (no video).
393
+
394
+ 10. Render video (optional — only when user asked for video/narration output).
395
+ - After PNGs exist in `exports/` and `deck.json` is written:
396
+
397
+ ```bash
398
+ voxflow card render <output-dir>/
399
+ ```
400
+
401
+ - **Output directory structure** after render:
402
+ ```
403
+ cards/my-topic/
404
+ ├── card-01.html … card-N.html (source HTML)
405
+ ├── deck.json (narration + metadata)
406
+ ├── exports/card-01.png … (PNG exports)
407
+ ├── sources.md (attribution)
408
+ └── my-topic.mp4 (final video — default output here)
409
+ ```
410
+
411
+ - **Key parameters** (pick based on user preference):
412
+ - `--voice <id>` — TTS voice. Suggest `voxflow voices` to browse.
413
+ - `--speed <n>` — narration speed 0.5-2.0 (default: 1.0)
414
+ - `--pause <sec>` — silence after each card's narration for reading time (default: 2.5)
415
+ - `--hold <sec>` — card duration in `--no-audio` mode (default: 5)
416
+ - `--bgm <path>` — background music file (loops at low volume)
417
+ - `--no-audio` — skip TTS, produce silent video
418
+ - `--no-intro` / `--no-outro` — skip title/branding cards
419
+ - `-o <path>` — custom output path
420
+
421
+ - Default output: `<dir>/<deck title>.mp4` (next to the cards).
422
+ - No external dependencies beyond FFmpeg (auto-detected; `ffmpeg-static` as fallback).
423
+ - Intermediate files (WAVs, clips) stored in `<dir>/.card-render-work/` — auto-cleaned on success, preserved on failure for debugging.
424
+ - For article-to-card VIDEO with Slice themes (paper-slide, editorial-mag, etc.), prefer `voxflow:slice` instead.
425
+
426
+ ## Asset and Source Discipline
427
+
428
+ - Keep generated files contained in the requested output folder.
429
+ - Place any local images, logos, screenshots, textures, icons, or other assets used by the cards in `cards/<slug>/assets/` unless the user specifies another output path.
430
+ - Record research sources, external asset sources, and important factual references in `sources.md` or `credits.md` inside the output folder.
431
+ - Do not rely on external hotlinked assets for final exports. External URLs may be used during research or temporary preview only.
432
+ - Copy only the minimum assets actually used by the card set; do not bulk-copy unrelated asset folders.
433
+ - For generated or redesigned card images, record the prompt intent, model/tool if known, and whether the asset is synthetic in `sources.md` or `credits.md`.
434
+
435
+ ## Rendering Helper
436
+
437
+ Use `scripts/render-cards.mjs` when a project does not already have an equivalent Playwright export script.
438
+
439
+ ```bash
440
+ node /path/to/card/scripts/render-cards.mjs \
441
+ --input ./cards/my-set \
442
+ --output ./cards/my-set/exports \
443
+ --ratio 9:16
444
+ ```
445
+
446
+ The helper defaults to `--scale 2` for sharper PNG output. Use `--scale 1` only when file size matters more than edge sharpness.
447
+
448
+ The script:
449
+
450
+ - Scans the input folder for `.html` files.
451
+ - Sets the viewport from `--ratio` or `--size`.
452
+ - Screenshots `.card` when present, otherwise the viewport.
453
+ - Writes PNG files to the output folder.
454
+ - Writes `audit.json` with DOM overflow and out-of-bounds signals.
455
+
456
+ If Playwright is missing in the target project, install or use it with the local package manager, then install Chromium as needed:
457
+
458
+ ```bash
459
+ npm install -D playwright
460
+ npx playwright install chromium
461
+ ```
462
+
463
+ ## Implementation Rules
464
+
465
+ - Keep all cards visually siblings: shared tokens, shared base layout, shared type scale, shared image treatment.
466
+ - Apply `references/taste.md` as the binding floor during the design step (Workflow step 4) and the QA step (Workflow step 7), including tests and demos. Do not skip these two loads even on fast paths.
467
+ - Prefer existing design context over inventing a new visual system.
468
+ - Use concept variations before coding when style is ambiguous or the card set is high-impact.
469
+ - Define theme tokens first: background, surface levels, border levels, text levels, accent trio, semantic colors, gradients, radius, shadow, and fonts.
470
+ - Use tokens in component CSS. Avoid scattering literal colors outside the token block unless a one-off asset or data visualization genuinely requires it.
471
+ - Do not use Inter as the default card font. Select concrete fonts via the weighted-random algorithm in `references/fonts.md` (preset × design-language × content-language → per-role pick). Do not hardcode a font list here; `references/fonts.md` is the single source of truth. Avenir Next and other paid/system fonts are disallowed because every font must be locally embeddable.
472
+ - Do not use pure black. Use off-black, charcoal, zinc-like darks, or ink colors.
473
+ - Do not copy external theme CSS wholesale. Recreate the needed palette and behavior in the local card style, and keep source inspiration in `sources.md` or `credits.md` when relevant.
474
+ - Avoid one-note palettes unless the user explicitly asks for a monochrome look.
475
+ - Fit text by editing, grouping, or changing layout before shrinking everything.
476
+ - Do not make every card low-density. For real explainers, at least one card should carry structured information: 2-4 points, labels, observations, steps, callouts, or decision criteria.
477
+ - Do not add density by shrinking text everywhere. Add structure first: grouping, hierarchy, labels, side notes, checklists, captions, or object-attached callouts.
478
+ - Replace AI-copy voice with concrete language. Avoid "赋能", "无缝", "释放", "下一代", "智能化", "重塑", and similar filler unless quoted from source material.
479
+ - Do not invent fake data. Use verified facts with sources, clearly synthetic demo values, or no numbers.
480
+ - Use responsive CSS only for development preview; the export canvas must remain fixed.
481
+ - Prefer semantic HTML and CSS over canvas for card content unless the visual requires custom drawing.
482
+ - Keep assets and source attribution inside the output folder.
483
+ - Keep letter spacing at `0` unless the file's existing design system clearly requires uppercase tracking; do not use negative letter spacing.
484
+ - For technical or dense cards, keep body copy in sans-serif and reserve serif/display type for headlines, quotes, and numbers. Editorial/literary presets (`magazine-eink`, `field-notes`, `kraft-editorial`) may use serif or kai (楷体) body per `references/fonts.md`. For editorial layouts, manually control long Chinese title breaks regardless of the body typeface.
485
+ - For image-heavy cards, standardize image ratios or frame heights inside each group, crop from the bottom when using `cover`, and use `contain` for diagrams or text-bearing screenshots.
486
+ - Do not skip visual verification. The final answer must state whether rendering and export succeeded.
@@ -0,0 +1,29 @@
1
+ # Font bundle manifest (download-fonts.sh)
2
+
3
+ | family | path | files | size | license |
4
+ |---|---|---|---|---|
5
+ | Geist | geist | 3 | 57KB | OFL/ITF |
6
+ | Geist Mono | geist-mono | 3 | 56KB | OFL/ITF |
7
+ | Space Grotesk | space-grotesk | 3 | 47KB | OFL/ITF |
8
+ | Newsreader | newsreader | 3 | 104KB | OFL/ITF |
9
+ | Source Serif 4 | source-serif-4 | 6 | 177KB | OFL/ITF |
10
+ | Spectral | spectral | 5 | 70KB | OFL/ITF |
11
+ | Spectral | spectral-600 | 5 | 74KB | OFL/ITF |
12
+ | Spectral | spectral-800 | 5 | 71KB | OFL/ITF |
13
+ | IBM Plex Mono | ibm-plex-mono | 5 | 48KB | OFL/ITF |
14
+ | IBM Plex Mono | ibm-plex-mono-500 | 5 | 49KB | OFL/ITF |
15
+ | IBM Plex Mono | ibm-plex-mono-600 | 5 | 53KB | OFL/ITF |
16
+ | Libre Caslon Display | libre-caslon-display | 2 | 40KB | OFL/ITF |
17
+ | Noto Sans SC | noto-sans-sc | 101 | 4MB | OFL/ITF |
18
+ | Noto Serif SC | noto-serif-sc | 101 | 6MB | OFL/ITF |
19
+ | lxgw-wenkai | packages/lxgw-wenkai | 194 | 8MB | OFL |
20
+ | smiley-sans | packages/smiley-sans | 80 | 1MB | OFL |
21
+ | Satoshi | fontshare/satoshi | 1 | 42KB | ITF-FFL |
22
+ | General Sans | fontshare/general-sans | 1 | 37KB | ITF-FFL |
23
+ | Cabinet Grotesk | fontshare/cabinet-grotesk | 1 | 41KB | ITF-FFL |
24
+
25
+ **Total bundle: 20MB**
26
+
27
+ Not bundled (license forbids repo redistribution; system-font fallback only):
28
+ HarmonyOS Sans SC, Alibaba PuHuiTi 3.0, KingHwa OldSong, Zhuque Fangsong, Sarasa Mono SC.
29
+ Sarasa Mono SC / Zhuque Fangsong are OFL but lack a clean woff2 source; add manually if needed.
@@ -0,0 +1,2 @@
1
+ /* Cabinet Grotesk — Fontshare, ITF Free Font License */
2
+ @font-face{font-family:'Cabinet Grotesk';font-style:normal;font-display:swap;font-weight:100 900;src:url(../woff2/fontshare/cabinet-grotesk.woff2) format('woff2');}
@@ -0,0 +1,29 @@
1
+ /* geist-mono-cyrillic-wght-normal */
2
+ @font-face {
3
+ font-family: 'Geist Mono';
4
+ font-style: normal;
5
+ font-display: swap;
6
+ font-weight: 100 900;
7
+ src: url(../woff2/geist-mono/geist-mono-cyrillic-wght-normal.woff2) format('woff2-variations');
8
+ unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
9
+ }
10
+
11
+ /* geist-mono-latin-ext-wght-normal */
12
+ @font-face {
13
+ font-family: 'Geist Mono';
14
+ font-style: normal;
15
+ font-display: swap;
16
+ font-weight: 100 900;
17
+ src: url(../woff2/geist-mono/geist-mono-latin-ext-wght-normal.woff2) format('woff2-variations');
18
+ unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
19
+ }
20
+
21
+ /* geist-mono-latin-wght-normal */
22
+ @font-face {
23
+ font-family: 'Geist Mono';
24
+ font-style: normal;
25
+ font-display: swap;
26
+ font-weight: 100 900;
27
+ src: url(../woff2/geist-mono/geist-mono-latin-wght-normal.woff2) format('woff2-variations');
28
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
29
+ }
@@ -0,0 +1,29 @@
1
+ /* geist-cyrillic-wght-normal */
2
+ @font-face {
3
+ font-family: 'Geist';
4
+ font-style: normal;
5
+ font-display: swap;
6
+ font-weight: 100 900;
7
+ src: url(../woff2/geist/geist-cyrillic-wght-normal.woff2) format('woff2-variations');
8
+ unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
9
+ }
10
+
11
+ /* geist-latin-ext-wght-normal */
12
+ @font-face {
13
+ font-family: 'Geist';
14
+ font-style: normal;
15
+ font-display: swap;
16
+ font-weight: 100 900;
17
+ src: url(../woff2/geist/geist-latin-ext-wght-normal.woff2) format('woff2-variations');
18
+ unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
19
+ }
20
+
21
+ /* geist-latin-wght-normal */
22
+ @font-face {
23
+ font-family: 'Geist';
24
+ font-style: normal;
25
+ font-display: swap;
26
+ font-weight: 100 900;
27
+ src: url(../woff2/geist/geist-latin-wght-normal.woff2) format('woff2-variations');
28
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
29
+ }
@@ -0,0 +1,2 @@
1
+ /* General Sans — Fontshare, ITF Free Font License */
2
+ @font-face{font-family:'General Sans';font-style:normal;font-display:swap;font-weight:200 700;src:url(../woff2/fontshare/general-sans.woff2) format('woff2');}