@mevdragon/vidfarm-devcli 0.14.0 → 0.15.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 (418) hide show
  1. package/.agents/skills/embedded-captions/CATALOG.md +93 -0
  2. package/.agents/skills/embedded-captions/SKILL.md +286 -0
  3. package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
  4. package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
  5. package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  6. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  7. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  8. package/.agents/skills/embedded-captions/dna/README.md +148 -0
  9. package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
  10. package/.agents/skills/embedded-captions/dna/cream.json +69 -0
  11. package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
  12. package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
  13. package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
  14. package/.agents/skills/embedded-captions/dna/ink.json +65 -0
  15. package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
  16. package/.agents/skills/embedded-captions/dna/loud.json +75 -0
  17. package/.agents/skills/embedded-captions/dna/neon.json +58 -0
  18. package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
  19. package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
  20. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  21. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  22. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  23. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  24. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  25. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  26. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  27. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  28. package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  29. package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  30. package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
  31. package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  32. package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  33. package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
  34. package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  35. package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
  36. package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
  37. package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
  38. package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
  39. package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  40. package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
  41. package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
  42. package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  43. package/.agents/skills/embedded-captions/references/rail.md +68 -0
  44. package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
  45. package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
  46. package/.agents/skills/embedded-captions/references/test-set.md +66 -0
  47. package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
  48. package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
  49. package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  50. package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  51. package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  52. package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  53. package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  54. package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  55. package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  56. package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
  57. package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  58. package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  59. package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
  60. package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
  61. package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
  62. package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
  63. package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  64. package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
  65. package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  66. package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
  67. package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
  68. package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  69. package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
  70. package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
  71. package/.agents/skills/embedded-captions/themes/README.md +244 -0
  72. package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
  73. package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
  74. package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
  75. package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
  76. package/.agents/skills/embedded-captions/themes/brush.json +74 -0
  77. package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
  78. package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
  79. package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
  80. package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
  81. package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
  82. package/.agents/skills/embedded-captions/themes/laser.json +46 -0
  83. package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
  84. package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
  85. package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
  86. package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
  87. package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
  88. package/.agents/skills/embedded-captions/themes/popup.json +46 -0
  89. package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
  90. package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
  91. package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
  92. package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
  93. package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
  94. package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
  95. package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
  96. package/.agents/skills/embedded-captions/themes/transit.json +44 -0
  97. package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
  98. package/.agents/skills/faceless-explainer/SKILL.md +209 -0
  99. package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
  100. package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
  101. package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
  102. package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
  103. package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
  104. package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
  105. package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
  106. package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
  107. package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
  108. package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  109. package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  110. package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
  111. package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  112. package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  113. package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
  114. package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
  115. package/.agents/skills/flockposter/LICENSE +17 -0
  116. package/.agents/skills/flockposter/README.md +72 -0
  117. package/.agents/skills/flockposter/SKILL.md +562 -0
  118. package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
  119. package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
  120. package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
  121. package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
  122. package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
  123. package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
  124. package/.agents/skills/general-video/SKILL.md +143 -0
  125. package/.agents/skills/hyperframes/SKILL.md +160 -0
  126. package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
  127. package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  128. package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
  129. package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  130. package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
  131. package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  132. package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
  133. package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
  134. package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  135. package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
  136. package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
  137. package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
  138. package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
  139. package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  140. package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
  141. package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
  142. package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
  143. package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
  144. package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
  145. package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
  146. package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
  147. package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
  148. package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
  149. package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  150. package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  151. package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
  152. package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  153. package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  154. package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
  155. package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
  156. package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
  157. package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
  158. package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
  159. package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
  160. package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  161. package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  162. package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  163. package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  164. package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  165. package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  166. package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  167. package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  168. package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  169. package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  170. package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  171. package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  172. package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  173. package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
  174. package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
  175. package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
  176. package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
  177. package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
  178. package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
  179. package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
  180. package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
  181. package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
  182. package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
  183. package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
  184. package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
  185. package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
  186. package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
  187. package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
  188. package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
  189. package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
  190. package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
  191. package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
  192. package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
  193. package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
  194. package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
  195. package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
  196. package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
  197. package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
  198. package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
  199. package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
  200. package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
  201. package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
  202. package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
  203. package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
  204. package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
  205. package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
  206. package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
  207. package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
  208. package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
  209. package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
  210. package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
  211. package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
  212. package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  213. package/.agents/skills/hyperframes-animation/techniques.md +507 -0
  214. package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
  215. package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
  216. package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  217. package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  218. package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  219. package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  220. package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  221. package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  222. package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  223. package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
  224. package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  225. package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
  226. package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
  227. package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  228. package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  229. package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
  230. package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
  231. package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
  232. package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
  233. package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
  234. package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
  235. package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
  236. package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
  237. package/.agents/skills/hyperframes-core/SKILL.md +78 -0
  238. package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
  239. package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
  240. package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
  241. package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
  242. package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
  243. package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
  244. package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
  245. package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
  246. package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
  247. package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
  248. package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
  249. package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
  250. package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
  251. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  252. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  253. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  254. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  255. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  256. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  257. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  258. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  259. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  260. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  261. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  262. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  263. package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  264. package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  265. package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  266. package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  267. package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  268. package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  269. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  270. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  271. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  272. package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
  273. package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
  274. package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
  275. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  276. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  277. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  278. package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  279. package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  280. package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  281. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  282. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  283. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  284. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  285. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  286. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  287. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  288. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  289. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  290. package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  291. package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  292. package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  293. package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  294. package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  295. package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  296. package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  297. package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  298. package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  299. package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  300. package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
  301. package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  302. package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  303. package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
  304. package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
  305. package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
  306. package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
  307. package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
  308. package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
  309. package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  310. package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
  311. package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
  312. package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
  313. package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
  314. package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
  315. package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
  316. package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  317. package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  318. package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
  319. package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  320. package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
  321. package/.agents/skills/motion-graphics/SKILL.md +172 -0
  322. package/.agents/skills/motion-graphics/agents/builder.md +40 -0
  323. package/.agents/skills/motion-graphics/agents/director.md +53 -0
  324. package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
  325. package/.agents/skills/motion-graphics/catalog-map.md +40 -0
  326. package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  327. package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
  328. package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  329. package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  330. package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  331. package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  332. package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
  333. package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
  334. package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
  335. package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
  336. package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
  337. package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  338. package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
  339. package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
  340. package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
  341. package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  342. package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  343. package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  344. package/.agents/skills/product-launch-video/SKILL.md +208 -0
  345. package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
  346. package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
  347. package/.agents/skills/product-launch-video/references/story-design.md +373 -0
  348. package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
  349. package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
  350. package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
  351. package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
  352. package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
  353. package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
  354. package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  355. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
  356. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
  357. package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  358. package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
  359. package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  360. package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  361. package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  362. package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
  363. package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
  364. package/.agents/skills/slideshow/SKILL.md +550 -0
  365. package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
  366. package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
  367. package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
  368. package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  369. package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  370. package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
  371. package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
  372. package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  373. package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  374. package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
  375. package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
  376. package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
  377. package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
  378. package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
  379. package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
  380. package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
  381. package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
  382. package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  383. package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
  384. package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
  385. package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  386. package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
  387. package/.agents/skills/vidfarm-media/SKILL.md +85 -0
  388. package/.agents/skills/vidfarm-media/references/tts.md +54 -0
  389. package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
  390. package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
  391. package/.agents/skills/website-to-video/SKILL.md +145 -0
  392. package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
  393. package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
  394. package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
  395. package/.agents/skills/website-to-video/references/capabilities.md +713 -0
  396. package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
  397. package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
  398. package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
  399. package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
  400. package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
  401. package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
  402. package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
  403. package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
  404. package/SKILL.director.md +37 -0
  405. package/SKILL.platform.md +6 -1
  406. package/demo/dist/app.js +295 -11
  407. package/dist/src/app.js +317 -133
  408. package/dist/src/cli.js +529 -12
  409. package/dist/src/composition-runtime.js +262 -3
  410. package/dist/src/devcli/doctor.js +192 -0
  411. package/dist/src/devcli/hyperframes-cli.js +118 -0
  412. package/dist/src/devcli/skills.js +476 -0
  413. package/dist/src/devcli/stills.js +249 -0
  414. package/dist/src/editor-chat.js +255 -0
  415. package/dist/src/hyperframes/composition.js +5 -5
  416. package/dist/src/services/composition-lint.js +199 -0
  417. package/dist/src/services/hyperframes.js +67 -13
  418. package/package.json +2 -1
@@ -0,0 +1,1347 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width,initial-scale=1" />
6
+ <title>BlockFrame</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link
10
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;800;900&family=Space+Grotesk:wght@500;600;700&display=swap"
11
+ rel="stylesheet"
12
+ />
13
+ <style id="ds-tokens">
14
+ :root {
15
+ --black: #000000;
16
+ --white: #ffffff;
17
+ --offwhite: #fffdf5;
18
+ --pink: #fe90e8;
19
+ --blue: #c0f7fe;
20
+ --green: #99e885;
21
+ --yellow: #f7cb46;
22
+ --cream: #ffdc8b;
23
+ --disp: "Inter", sans-serif;
24
+ --mono: "Space Grotesk", monospace;
25
+ }
26
+ * {
27
+ margin: 0;
28
+ padding: 0;
29
+ box-sizing: border-box;
30
+ }
31
+ html {
32
+ background: #111;
33
+ }
34
+ body {
35
+ background: var(--offwhite);
36
+ color: var(--black);
37
+ font-family: var(--disp);
38
+ -webkit-font-smoothing: antialiased;
39
+ }
40
+ .disp {
41
+ font-family: var(--disp);
42
+ text-transform: uppercase;
43
+ letter-spacing: -0.03em;
44
+ line-height: 0.95;
45
+ font-weight: 900;
46
+ }
47
+ .pill {
48
+ display: inline-block;
49
+ border: 3px solid var(--black);
50
+ background: var(--white);
51
+ box-shadow: 4px 4px 0 var(--black);
52
+ padding: 6px 16px;
53
+ font-family: var(--mono);
54
+ font-weight: 600;
55
+ text-transform: uppercase;
56
+ letter-spacing: 0.08em;
57
+ font-size: 13px;
58
+ }
59
+ .dotgrid {
60
+ background-image: radial-gradient(circle, var(--black) 1.2px, transparent 1.2px);
61
+ background-size: 24px 24px;
62
+ }
63
+
64
+ section {
65
+ padding: 90px 60px;
66
+ position: relative;
67
+ border-bottom: 4px solid var(--black);
68
+ }
69
+ .sec-head {
70
+ display: flex;
71
+ align-items: center;
72
+ gap: 20px;
73
+ margin-bottom: 48px;
74
+ }
75
+ .sec-head h2 {
76
+ font-family: var(--disp);
77
+ font-weight: 900;
78
+ text-transform: uppercase;
79
+ letter-spacing: -0.03em;
80
+ font-size: 46px;
81
+ line-height: 1;
82
+ }
83
+ .sec-head .sp {
84
+ flex: 1;
85
+ height: 4px;
86
+ background: var(--black);
87
+ }
88
+
89
+ /* COVER */
90
+ .cover {
91
+ min-height: 100vh;
92
+ background: var(--offwhite);
93
+ padding: 60px;
94
+ display: flex;
95
+ flex-direction: column;
96
+ justify-content: center;
97
+ position: relative;
98
+ overflow: hidden;
99
+ }
100
+ .cover .dg {
101
+ position: absolute;
102
+ inset: 0;
103
+ opacity: 0.4;
104
+ background-image: radial-gradient(circle, var(--black) 1.2px, transparent 1.2px);
105
+ background-size: 24px 24px;
106
+ pointer-events: none;
107
+ }
108
+ .cover .inner {
109
+ position: relative;
110
+ z-index: 3;
111
+ max-width: 72%;
112
+ }
113
+ .cover .pill {
114
+ margin-bottom: 28px;
115
+ }
116
+ .cover h1 {
117
+ font-family: var(--disp);
118
+ font-weight: 900;
119
+ text-transform: uppercase;
120
+ letter-spacing: -0.04em;
121
+ line-height: 0.9;
122
+ font-size: clamp(64px, 9vw, 150px);
123
+ }
124
+ .cover .sub {
125
+ font-family: var(--mono);
126
+ font-weight: 500;
127
+ font-size: 18px;
128
+ line-height: 1.5;
129
+ color: var(--black);
130
+ margin-top: 24px;
131
+ max-width: 540px;
132
+ }
133
+ .cover .deco-rect {
134
+ position: absolute;
135
+ top: 18%;
136
+ right: 8%;
137
+ width: 200px;
138
+ height: 130px;
139
+ background: var(--pink);
140
+ border: 4px solid var(--black);
141
+ box-shadow: 8px 8px 0 var(--black);
142
+ transform: rotate(8deg);
143
+ z-index: 2;
144
+ }
145
+ .cover .deco-rect2 {
146
+ position: absolute;
147
+ bottom: 16%;
148
+ right: 18%;
149
+ width: 120px;
150
+ height: 120px;
151
+ background: var(--blue);
152
+ border: 4px solid var(--black);
153
+ box-shadow: 8px 8px 0 var(--black);
154
+ transform: rotate(-6deg);
155
+ z-index: 1;
156
+ }
157
+ .cover .star {
158
+ position: absolute;
159
+ top: 30%;
160
+ right: 30%;
161
+ width: 90px;
162
+ height: 90px;
163
+ background: var(--yellow);
164
+ border: 3px solid var(--black);
165
+ clip-path: polygon(
166
+ 50% 0%,
167
+ 61% 35%,
168
+ 98% 35%,
169
+ 68% 57%,
170
+ 79% 91%,
171
+ 50% 70%,
172
+ 21% 91%,
173
+ 32% 57%,
174
+ 2% 35%,
175
+ 39% 35%
176
+ );
177
+ z-index: 4;
178
+ }
179
+ .cover .counter {
180
+ position: absolute;
181
+ bottom: 30px;
182
+ left: 60px;
183
+ border: 3px solid var(--black);
184
+ background: var(--white);
185
+ box-shadow: 4px 4px 0 var(--black);
186
+ padding: 10px 18px;
187
+ font-family: var(--mono);
188
+ font-weight: 700;
189
+ text-transform: uppercase;
190
+ letter-spacing: 0.1em;
191
+ font-size: 14px;
192
+ }
193
+
194
+ /* PALETTE */
195
+ .swatches {
196
+ display: grid;
197
+ grid-template-columns: repeat(4, 1fr);
198
+ gap: 28px;
199
+ }
200
+ .sw {
201
+ border: 4px solid var(--black);
202
+ background: var(--white);
203
+ box-shadow: 8px 8px 0 var(--black);
204
+ }
205
+ .sw .chip {
206
+ height: 120px;
207
+ border-bottom: 4px solid var(--black);
208
+ }
209
+ .sw .meta {
210
+ padding: 16px 18px;
211
+ }
212
+ .sw .name {
213
+ font-family: var(--disp);
214
+ font-weight: 800;
215
+ text-transform: uppercase;
216
+ letter-spacing: -0.01em;
217
+ font-size: 18px;
218
+ }
219
+ .sw .hex {
220
+ font-family: var(--mono);
221
+ font-weight: 500;
222
+ font-size: 12px;
223
+ letter-spacing: 0.04em;
224
+ margin-top: 6px;
225
+ }
226
+
227
+ /* TYPE */
228
+ .type-row {
229
+ display: grid;
230
+ grid-template-columns: 220px 1fr;
231
+ align-items: center;
232
+ padding: 24px 0;
233
+ border-bottom: 4px solid var(--black);
234
+ }
235
+ .type-row .tok {
236
+ font-family: var(--mono);
237
+ font-weight: 600;
238
+ text-transform: uppercase;
239
+ letter-spacing: 0.08em;
240
+ font-size: 12px;
241
+ }
242
+ .type-row .m {
243
+ font-family: var(--mono);
244
+ font-weight: 500;
245
+ font-size: 11px;
246
+ color: #444;
247
+ margin-top: 8px;
248
+ line-height: 1.5;
249
+ }
250
+ .type-row .spec {
251
+ overflow: hidden;
252
+ }
253
+
254
+ /* COMPONENTS */
255
+ .cnote {
256
+ font-family: var(--mono);
257
+ font-weight: 600;
258
+ text-transform: uppercase;
259
+ letter-spacing: 0.08em;
260
+ font-size: 12px;
261
+ margin-bottom: 20px;
262
+ }
263
+ .cgrid {
264
+ display: grid;
265
+ grid-template-columns: repeat(12, 1fr);
266
+ gap: 32px;
267
+ margin-bottom: 48px;
268
+ }
269
+ .s3 {
270
+ grid-column: span 3;
271
+ }
272
+ .s4 {
273
+ grid-column: span 4;
274
+ }
275
+ .s6 {
276
+ grid-column: span 6;
277
+ }
278
+ .s8 {
279
+ grid-column: span 8;
280
+ }
281
+ .fcard {
282
+ border: 4px solid var(--black);
283
+ background: var(--white);
284
+ box-shadow: 8px 8px 0 var(--black);
285
+ padding: 32px;
286
+ position: relative;
287
+ height: 100%;
288
+ }
289
+ .fcard .notch {
290
+ position: absolute;
291
+ top: -12px;
292
+ right: 24px;
293
+ width: 44px;
294
+ height: 44px;
295
+ background: var(--yellow);
296
+ border: 3px solid var(--black);
297
+ }
298
+ .fcard .ic {
299
+ width: 60px;
300
+ height: 60px;
301
+ border: 3px solid var(--black);
302
+ background: var(--blue);
303
+ display: grid;
304
+ place-items: center;
305
+ font-family: var(--disp);
306
+ font-weight: 700;
307
+ font-size: 26px;
308
+ margin-bottom: 20px;
309
+ }
310
+ .fcard .t {
311
+ font-family: var(--disp);
312
+ font-weight: 700;
313
+ text-transform: uppercase;
314
+ font-size: 21px;
315
+ line-height: 1.2;
316
+ }
317
+ .fcard .bd {
318
+ font-family: var(--disp);
319
+ font-weight: 500;
320
+ font-size: 14px;
321
+ line-height: 1.6;
322
+ color: #222;
323
+ margin-top: 10px;
324
+ }
325
+ .statcard {
326
+ border: 3px solid var(--black);
327
+ background: var(--white);
328
+ box-shadow: 4px 4px 0 var(--black);
329
+ padding: 24px;
330
+ position: relative;
331
+ }
332
+ .statcard .dot {
333
+ position: absolute;
334
+ top: 14px;
335
+ right: 14px;
336
+ width: 12px;
337
+ height: 12px;
338
+ border-radius: 50%;
339
+ border: 2px solid var(--black);
340
+ }
341
+ .statcard .n {
342
+ font-family: var(--disp);
343
+ font-weight: 900;
344
+ font-size: 48px;
345
+ line-height: 1;
346
+ }
347
+ .statcard .l {
348
+ font-family: var(--mono);
349
+ font-weight: 600;
350
+ text-transform: uppercase;
351
+ letter-spacing: 0.08em;
352
+ font-size: 12px;
353
+ margin-top: 8px;
354
+ }
355
+ .btn {
356
+ display: inline-block;
357
+ border: 3px solid var(--black);
358
+ background: var(--yellow);
359
+ box-shadow: 4px 4px 0 var(--black);
360
+ padding: 14px 32px;
361
+ font-family: var(--disp);
362
+ font-weight: 700;
363
+ font-size: 16px;
364
+ }
365
+ .stripe {
366
+ height: 80px;
367
+ border: 3px solid var(--black);
368
+ background: repeating-linear-gradient(
369
+ 45deg,
370
+ var(--black),
371
+ var(--black) 4px,
372
+ var(--green) 4px,
373
+ var(--green) 12px
374
+ );
375
+ }
376
+ .listnum {
377
+ display: inline-grid;
378
+ place-items: center;
379
+ width: 36px;
380
+ height: 36px;
381
+ border: 3px solid var(--black);
382
+ background: var(--yellow);
383
+ font-family: var(--mono);
384
+ font-weight: 700;
385
+ font-size: 14px;
386
+ }
387
+
388
+ /* COMPOSITIONS */
389
+ .gallery {
390
+ display: grid;
391
+ grid-template-columns: 1fr 1fr;
392
+ gap: 48px;
393
+ }
394
+ .fw .flabel {
395
+ display: flex;
396
+ gap: 14px;
397
+ align-items: baseline;
398
+ margin-bottom: 16px;
399
+ font-family: var(--mono);
400
+ font-weight: 600;
401
+ text-transform: uppercase;
402
+ letter-spacing: 0.08em;
403
+ font-size: 12px;
404
+ color: #555;
405
+ }
406
+ .fw .flabel b {
407
+ color: var(--black);
408
+ }
409
+ .frame {
410
+ aspect-ratio: 16/9;
411
+ container-type: size;
412
+ position: relative;
413
+ overflow: hidden;
414
+ background: var(--offwhite);
415
+ border: 4px solid var(--black);
416
+ }
417
+ .frame > .body {
418
+ position: absolute;
419
+ inset: 0;
420
+ z-index: 3;
421
+ }
422
+
423
+ /* f1 cover */
424
+ .bf1 {
425
+ background: var(--cream);
426
+ }
427
+ .bf1 .dg {
428
+ position: absolute;
429
+ inset: 0;
430
+ opacity: 0.35;
431
+ background-image: radial-gradient(circle, var(--black) 0.15cqw, transparent 0.15cqw);
432
+ background-size: 3cqw 3cqw;
433
+ z-index: 1;
434
+ }
435
+ .bf1 .body {
436
+ display: flex;
437
+ flex-direction: column;
438
+ justify-content: center;
439
+ padding: 0 5cqw;
440
+ }
441
+ .bf1 .pill {
442
+ display: inline-block;
443
+ border: 0.25cqw solid var(--black);
444
+ background: var(--white);
445
+ box-shadow: 0.4cqw 0.4cqw 0 var(--black);
446
+ padding: 0.5cqw 1.2cqw;
447
+ font-family: var(--mono);
448
+ font-weight: 600;
449
+ text-transform: uppercase;
450
+ letter-spacing: 0.08em;
451
+ font-size: 1cqw;
452
+ margin-bottom: 2cqw;
453
+ align-self: flex-start;
454
+ }
455
+ .bf1 h3 {
456
+ font-family: var(--disp);
457
+ font-weight: 900;
458
+ text-transform: uppercase;
459
+ letter-spacing: -0.04em;
460
+ line-height: 0.9;
461
+ font-size: 9.5cqw;
462
+ max-width: 60cqw;
463
+ }
464
+ .bf1 .star {
465
+ position: absolute;
466
+ top: 18%;
467
+ right: 8%;
468
+ width: 14cqw;
469
+ height: 14cqw;
470
+ background: var(--pink);
471
+ border: 0.3cqw solid var(--black);
472
+ clip-path: polygon(
473
+ 50% 0%,
474
+ 61% 35%,
475
+ 98% 35%,
476
+ 68% 57%,
477
+ 79% 91%,
478
+ 50% 70%,
479
+ 21% 91%,
480
+ 32% 57%,
481
+ 2% 35%,
482
+ 39% 35%
483
+ );
484
+ z-index: 2;
485
+ }
486
+ .bf1 .rect {
487
+ position: absolute;
488
+ bottom: 16%;
489
+ right: 16%;
490
+ width: 16cqw;
491
+ height: 9cqw;
492
+ background: var(--blue);
493
+ border: 0.3cqw solid var(--black);
494
+ box-shadow: 0.6cqw 0.6cqw 0 var(--black);
495
+ transform: rotate(-6deg);
496
+ z-index: 1;
497
+ }
498
+
499
+ /* f2 feature cards */
500
+ .bf2 {
501
+ background: var(--blue);
502
+ }
503
+ .bf2 .body {
504
+ padding: 5cqw;
505
+ display: flex;
506
+ flex-direction: column;
507
+ }
508
+ .bf2 .pill {
509
+ align-self: flex-start;
510
+ border: 0.2cqw solid var(--black);
511
+ background: var(--white);
512
+ box-shadow: 0.3cqw 0.3cqw 0 var(--black);
513
+ padding: 0.4cqw 1cqw;
514
+ font-family: var(--mono);
515
+ font-weight: 600;
516
+ text-transform: uppercase;
517
+ letter-spacing: 0.08em;
518
+ font-size: 0.85cqw;
519
+ margin-bottom: 1.4cqw;
520
+ }
521
+ .bf2 h3 {
522
+ font-family: var(--disp);
523
+ font-weight: 800;
524
+ text-transform: uppercase;
525
+ letter-spacing: -0.02em;
526
+ font-size: 3.6cqw;
527
+ margin-bottom: 2cqw;
528
+ }
529
+ .bf2 .row {
530
+ display: grid;
531
+ grid-template-columns: repeat(3, 1fr);
532
+ gap: 1.6cqw;
533
+ flex: 1;
534
+ }
535
+ .bf2 .c {
536
+ border: 0.3cqw solid var(--black);
537
+ background: var(--white);
538
+ box-shadow: 0.6cqw 0.6cqw 0 var(--black);
539
+ padding: 1.8cqw;
540
+ }
541
+ .bf2 .c .ic {
542
+ width: 4cqw;
543
+ height: 4cqw;
544
+ border: 0.2cqw solid var(--black);
545
+ display: grid;
546
+ place-items: center;
547
+ font-family: var(--disp);
548
+ font-weight: 700;
549
+ font-size: 1.8cqw;
550
+ margin-bottom: 1.2cqw;
551
+ }
552
+ .bf2 .c .t {
553
+ font-family: var(--disp);
554
+ font-weight: 700;
555
+ text-transform: uppercase;
556
+ font-size: 1.5cqw;
557
+ line-height: 1.15;
558
+ }
559
+ .bf2 .c .bd {
560
+ font-family: var(--disp);
561
+ font-weight: 500;
562
+ font-size: 0.95cqw;
563
+ line-height: 1.5;
564
+ color: #222;
565
+ margin-top: 0.6cqw;
566
+ }
567
+
568
+ /* f3 stat grid (tilted) */
569
+ .bf3 {
570
+ background: var(--green);
571
+ }
572
+ .bf3 .body {
573
+ padding: 5cqw;
574
+ display: flex;
575
+ flex-direction: column;
576
+ }
577
+ .bf3 .pill {
578
+ align-self: flex-start;
579
+ border: 0.2cqw solid var(--black);
580
+ background: var(--white);
581
+ box-shadow: 0.3cqw 0.3cqw 0 var(--black);
582
+ padding: 0.4cqw 1cqw;
583
+ font-family: var(--mono);
584
+ font-weight: 600;
585
+ text-transform: uppercase;
586
+ letter-spacing: 0.08em;
587
+ font-size: 0.85cqw;
588
+ margin-bottom: 1.4cqw;
589
+ }
590
+ .bf3 h3 {
591
+ font-family: var(--disp);
592
+ font-weight: 800;
593
+ text-transform: uppercase;
594
+ letter-spacing: -0.02em;
595
+ font-size: 3.6cqw;
596
+ margin-bottom: 2.4cqw;
597
+ }
598
+ .bf3 .row {
599
+ display: grid;
600
+ grid-template-columns: repeat(3, 1fr);
601
+ gap: 2cqw;
602
+ }
603
+ .bf3 .sc {
604
+ border: 0.25cqw solid var(--black);
605
+ background: var(--white);
606
+ box-shadow: 0.4cqw 0.4cqw 0 var(--black);
607
+ padding: 1.8cqw;
608
+ position: relative;
609
+ }
610
+ .bf3 .sc:nth-child(odd) {
611
+ transform: rotate(-2deg);
612
+ }
613
+ .bf3 .sc:nth-child(even) {
614
+ transform: rotate(2deg);
615
+ }
616
+ .bf3 .sc .dot {
617
+ position: absolute;
618
+ top: 1cqw;
619
+ right: 1cqw;
620
+ width: 1cqw;
621
+ height: 1cqw;
622
+ border-radius: 50%;
623
+ border: 0.15cqw solid var(--black);
624
+ }
625
+ .bf3 .sc .n {
626
+ font-family: var(--disp);
627
+ font-weight: 900;
628
+ font-size: 4.6cqw;
629
+ line-height: 1;
630
+ }
631
+ .bf3 .sc .l {
632
+ font-family: var(--mono);
633
+ font-weight: 600;
634
+ text-transform: uppercase;
635
+ letter-spacing: 0.08em;
636
+ font-size: 0.85cqw;
637
+ margin-top: 0.6cqw;
638
+ }
639
+
640
+ /* f4 close (black) */
641
+ .bf4 {
642
+ background: var(--black);
643
+ }
644
+ .bf4 .body {
645
+ display: flex;
646
+ flex-direction: column;
647
+ justify-content: center;
648
+ align-items: center;
649
+ text-align: center;
650
+ }
651
+ .bf4 .cardf {
652
+ border: 0.3cqw solid var(--white);
653
+ box-shadow: 1.2cqw 1.2cqw 0 var(--yellow);
654
+ padding: 4cqw 6cqw;
655
+ position: relative;
656
+ }
657
+ .bf4 .pill {
658
+ border: 0.25cqw solid var(--white);
659
+ background: var(--black);
660
+ color: var(--white);
661
+ box-shadow: 0.5cqw 0.5cqw 0 var(--white);
662
+ padding: 0.5cqw 1.2cqw;
663
+ font-family: var(--mono);
664
+ font-weight: 600;
665
+ text-transform: uppercase;
666
+ letter-spacing: 0.08em;
667
+ font-size: 1cqw;
668
+ margin-bottom: 1.6cqw;
669
+ display: inline-block;
670
+ }
671
+ .bf4 h3 {
672
+ font-family: var(--disp);
673
+ font-weight: 900;
674
+ text-transform: uppercase;
675
+ letter-spacing: -0.03em;
676
+ font-size: 7cqw;
677
+ line-height: 0.95;
678
+ color: var(--white);
679
+ }
680
+ .bf4 .star {
681
+ position: absolute;
682
+ top: -3cqw;
683
+ right: -3cqw;
684
+ width: 9cqw;
685
+ height: 9cqw;
686
+ background: var(--pink);
687
+ border: 0.3cqw solid var(--white);
688
+ clip-path: polygon(
689
+ 50% 0%,
690
+ 61% 35%,
691
+ 98% 35%,
692
+ 68% 57%,
693
+ 79% 91%,
694
+ 50% 70%,
695
+ 21% 91%,
696
+ 32% 57%,
697
+ 2% 35%,
698
+ 39% 35%
699
+ );
700
+ }
701
+
702
+ /* PRINCIPLES */
703
+ .dos {
704
+ display: grid;
705
+ grid-template-columns: 1fr 1fr;
706
+ gap: 32px;
707
+ }
708
+ .do-card {
709
+ border: 4px solid var(--black);
710
+ box-shadow: 8px 8px 0 var(--black);
711
+ padding: 36px;
712
+ }
713
+ .do-card.do {
714
+ background: var(--green);
715
+ }
716
+ .do-card.dont {
717
+ background: var(--white);
718
+ }
719
+ .do-card h4 {
720
+ font-family: var(--disp);
721
+ font-weight: 900;
722
+ text-transform: uppercase;
723
+ letter-spacing: -0.02em;
724
+ font-size: 30px;
725
+ margin-bottom: 20px;
726
+ }
727
+ .do-card ul {
728
+ list-style: none;
729
+ }
730
+ .do-card li {
731
+ font-family: var(--disp);
732
+ font-weight: 500;
733
+ font-size: 15px;
734
+ line-height: 1.55;
735
+ padding-left: 26px;
736
+ position: relative;
737
+ margin-bottom: 13px;
738
+ }
739
+ .do-card li::before {
740
+ position: absolute;
741
+ left: 0;
742
+ font-family: var(--disp);
743
+ font-weight: 900;
744
+ }
745
+ .do-card.do li::before {
746
+ content: "+";
747
+ }
748
+ .do-card.dont li::before {
749
+ content: "\00d7";
750
+ }
751
+
752
+ .foot {
753
+ padding: 48px 60px;
754
+ background: var(--black);
755
+ color: var(--white);
756
+ display: flex;
757
+ justify-content: space-between;
758
+ align-items: center;
759
+ }
760
+ .foot .l {
761
+ font-family: var(--disp);
762
+ font-weight: 900;
763
+ text-transform: uppercase;
764
+ letter-spacing: -0.03em;
765
+ font-size: 28px;
766
+ }
767
+ .foot .r {
768
+ font-family: var(--mono);
769
+ font-weight: 600;
770
+ text-transform: uppercase;
771
+ letter-spacing: 0.08em;
772
+ font-size: 11px;
773
+ color: #aaa;
774
+ }
775
+ @media (max-width: 1100px) {
776
+ .gallery {
777
+ grid-template-columns: 1fr;
778
+ }
779
+ .swatches {
780
+ grid-template-columns: 1fr 1fr;
781
+ }
782
+ }
783
+ </style>
784
+ <link
785
+ rel="stylesheet"
786
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap"
787
+ />
788
+ <link
789
+ rel="stylesheet"
790
+ href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap"
791
+ />
792
+ <style id="ft-override">
793
+ :root {
794
+ --primary: #fffdf5 !important;
795
+ --secondary: #000000 !important;
796
+ --tertiary: #ffdc8b !important;
797
+ --accent: #fe90e8 !important;
798
+ --f-disp: "Inter", sans-serif !important;
799
+ --f-body: "Space Grotesk", sans-serif !important;
800
+ --black: #000000 !important;
801
+ --offwhite: #fffdf5 !important;
802
+ --pink: #fe90e8 !important;
803
+ --cream: #ffdc8b !important;
804
+ --disp: "Inter", sans-serif !important;
805
+ --mono: "Space Grotesk", sans-serif !important;
806
+ --white: #ffffff !important;
807
+ --blue: #c0f7fe !important;
808
+ --green: #99e885 !important;
809
+ --yellow: #f7cb46 !important;
810
+ }
811
+ </style>
812
+ </head>
813
+ <body>
814
+ <!-- COVER -->
815
+ <section class="cover">
816
+ <div class="dg"></div>
817
+ <div class="star"></div>
818
+ <div class="deco-rect"></div>
819
+ <div class="deco-rect2"></div>
820
+ <div class="inner">
821
+ <span class="pill">Frame System · Vol. 01</span>
822
+ <h1>Loud,<br />bordered,<br />a little crooked.</h1>
823
+ <div class="sub">
824
+ A maximalist neobrutalist frame system — 4px ink borders, 8px hard shadows, five candy
825
+ pastels, and tilted decorations that puncture the grid.
826
+ </div>
827
+ </div>
828
+ <div class="counter">01 / 06</div>
829
+ </section>
830
+
831
+ <!-- PALETTE -->
832
+ <section>
833
+ <div class="sec-head">
834
+ <span class="pill">Palette</span>
835
+ <h2>Five Candy Pastels</h2>
836
+ <span class="sp"></span>
837
+ </div>
838
+ <div class="swatches">
839
+ <div class="sw">
840
+ <div class="chip" style="background: var(--pink)"></div>
841
+ <div class="meta">
842
+ <div class="name">Pink</div>
843
+ <div class="hex">#FE90E8</div>
844
+ </div>
845
+ </div>
846
+ <div class="sw">
847
+ <div class="chip" style="background: var(--blue)"></div>
848
+ <div class="meta">
849
+ <div class="name">Blue</div>
850
+ <div class="hex">#C0F7FE</div>
851
+ </div>
852
+ </div>
853
+ <div class="sw">
854
+ <div class="chip" style="background: var(--green)"></div>
855
+ <div class="meta">
856
+ <div class="name">Green</div>
857
+ <div class="hex">#99E885</div>
858
+ </div>
859
+ </div>
860
+ <div class="sw">
861
+ <div class="chip" style="background: var(--yellow)"></div>
862
+ <div class="meta">
863
+ <div class="name">Yellow</div>
864
+ <div class="hex">#F7CB46 · CTA</div>
865
+ </div>
866
+ </div>
867
+ <div class="sw">
868
+ <div class="chip" style="background: var(--cream)"></div>
869
+ <div class="meta">
870
+ <div class="name">Cream</div>
871
+ <div class="hex">#FFDC8B</div>
872
+ </div>
873
+ </div>
874
+ <div class="sw">
875
+ <div
876
+ class="chip"
877
+ style="background: var(--offwhite); border-bottom: 4px solid var(--black)"
878
+ ></div>
879
+ <div class="meta">
880
+ <div class="name">Off-White</div>
881
+ <div class="hex">#FFFDF5 · canvas</div>
882
+ </div>
883
+ </div>
884
+ <div class="sw">
885
+ <div
886
+ class="chip"
887
+ style="background: var(--white); border-bottom: 4px solid var(--black)"
888
+ ></div>
889
+ <div class="meta">
890
+ <div class="name">White</div>
891
+ <div class="hex">#FFFFFF · cards</div>
892
+ </div>
893
+ </div>
894
+ <div class="sw">
895
+ <div class="chip" style="background: var(--black)"></div>
896
+ <div class="meta">
897
+ <div class="name">Black</div>
898
+ <div class="hex">#000000 · all borders</div>
899
+ </div>
900
+ </div>
901
+ </div>
902
+ </section>
903
+
904
+ <!-- TYPOGRAPHY -->
905
+ <section>
906
+ <div class="sec-head">
907
+ <span class="pill" style="background: var(--pink)">Type</span>
908
+ <h2>Inter × Space Grotesk</h2>
909
+ <span class="sp"></span>
910
+ </div>
911
+ <div class="type-row">
912
+ <div>
913
+ <div class="tok">heading-xl</div>
914
+ <div class="m">Inter 900 · uppercase · −0.03em</div>
915
+ </div>
916
+ <div class="spec"><span class="disp" style="font-size: 80px">Maximal.</span></div>
917
+ </div>
918
+ <div class="type-row">
919
+ <div>
920
+ <div class="tok">heading-lg</div>
921
+ <div class="m">Inter 800 · uppercase · −0.02em</div>
922
+ </div>
923
+ <div class="spec">
924
+ <span class="disp" style="font-weight: 800; font-size: 50px">Bordered & Bold</span>
925
+ </div>
926
+ </div>
927
+ <div class="type-row">
928
+ <div>
929
+ <div class="tok">stat-number</div>
930
+ <div class="m">Inter 900 · line 1</div>
931
+ </div>
932
+ <div class="spec">
933
+ <span class="disp" style="font-size: 64px; letter-spacing: -0.02em">240</span>
934
+ </div>
935
+ </div>
936
+ <div class="type-row">
937
+ <div>
938
+ <div class="tok">body</div>
939
+ <div class="m">Inter 500 · sentence case · line 1.6</div>
940
+ </div>
941
+ <div class="spec">
942
+ <p style="font-weight: 500; font-size: 18px; line-height: 1.6; max-width: 640px">
943
+ Body runs Inter at weight 500, sentence case — the calm against the heavy uppercase
944
+ display.
945
+ </p>
946
+ </div>
947
+ </div>
948
+ <div class="type-row" style="border-bottom: 0">
949
+ <div>
950
+ <div class="tok">label</div>
951
+ <div class="m">Space Grotesk 600 · uppercase · 0.08em</div>
952
+ </div>
953
+ <div class="spec"><span class="pill">Section Eyebrow</span></div>
954
+ </div>
955
+ </section>
956
+
957
+ <!-- COMPONENTS -->
958
+ <section>
959
+ <div class="sec-head">
960
+ <span class="pill" style="background: var(--blue)">Components</span>
961
+ <h2>Borders & Hard Shadows</h2>
962
+ <span class="sp"></span>
963
+ </div>
964
+
965
+ <div class="cgrid">
966
+ <div class="s4">
967
+ <div class="cnote">Feature card + notch + icon</div>
968
+ <div class="fcard">
969
+ <div class="notch"></div>
970
+ <div class="ic" style="background: var(--pink)">A</div>
971
+ <div class="t">Bordered Block</div>
972
+ <div class="bd">4px ink border + 8px hard offset shadow, square corners.</div>
973
+ </div>
974
+ </div>
975
+ <div class="s4">
976
+ <div class="cnote">Stat cards (tilted) + deco dot</div>
977
+ <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 24px">
978
+ <div class="statcard" style="transform: rotate(-2deg)">
979
+ <div class="dot" style="background: var(--pink)"></div>
980
+ <div class="n">240</div>
981
+ <div class="l">Output</div>
982
+ </div>
983
+ <div class="statcard" style="transform: rotate(2deg)">
984
+ <div class="dot" style="background: var(--blue)"></div>
985
+ <div class="n">3.4×</div>
986
+ <div class="l">Faster</div>
987
+ </div>
988
+ </div>
989
+ </div>
990
+ <div class="s4">
991
+ <div class="cnote">CTA · list number · stripe</div>
992
+ <span class="btn">Click Here →</span>
993
+ <div style="display: flex; align-items: center; gap: 14px; margin-top: 24px">
994
+ <span class="listnum">01</span
995
+ ><span style="font-family: var(--disp); font-weight: 500; font-size: 15px"
996
+ >Numbered list bullet</span
997
+ >
998
+ </div>
999
+ <div class="stripe" style="margin-top: 24px"></div>
1000
+ </div>
1001
+ </div>
1002
+
1003
+ <div class="cgrid" style="margin-bottom: 0">
1004
+ <div class="s6">
1005
+ <div class="cnote">Label pills — pastel variants</div>
1006
+ <div style="display: flex; gap: 16px; flex-wrap: wrap">
1007
+ <span class="pill" style="background: var(--pink)">Pink</span
1008
+ ><span class="pill" style="background: var(--blue)">Blue</span
1009
+ ><span class="pill" style="background: var(--green)">Green</span
1010
+ ><span class="pill" style="background: var(--yellow)">Yellow</span
1011
+ ><span class="pill" style="background: var(--cream)">Cream</span>
1012
+ </div>
1013
+ </div>
1014
+ <div class="s6">
1015
+ <div class="cnote">Icon squares + star burst</div>
1016
+ <div style="display: flex; align-items: center; gap: 20px">
1017
+ <span
1018
+ style="
1019
+ width: 64px;
1020
+ height: 64px;
1021
+ border: 3px solid var(--black);
1022
+ background: var(--green);
1023
+ display: grid;
1024
+ place-items: center;
1025
+ font-family: var(--disp);
1026
+ font-weight: 700;
1027
+ font-size: 26px;
1028
+ "
1029
+ >B</span
1030
+ >
1031
+ <span
1032
+ style="
1033
+ width: 64px;
1034
+ height: 64px;
1035
+ border: 3px solid var(--black);
1036
+ background: var(--yellow);
1037
+ display: grid;
1038
+ place-items: center;
1039
+ font-family: var(--disp);
1040
+ font-weight: 700;
1041
+ font-size: 26px;
1042
+ "
1043
+ >C</span
1044
+ >
1045
+ <span
1046
+ style="
1047
+ width: 64px;
1048
+ height: 64px;
1049
+ background: var(--pink);
1050
+ border: 3px solid var(--black);
1051
+ clip-path: polygon(
1052
+ 50% 0%,
1053
+ 61% 35%,
1054
+ 98% 35%,
1055
+ 68% 57%,
1056
+ 79% 91%,
1057
+ 50% 70%,
1058
+ 21% 91%,
1059
+ 32% 57%,
1060
+ 2% 35%,
1061
+ 39% 35%
1062
+ );
1063
+ "
1064
+ ></span>
1065
+ </div>
1066
+ </div>
1067
+ </div>
1068
+ </section>
1069
+
1070
+ <!-- COMPOSITIONS -->
1071
+ <section>
1072
+ <div class="sec-head">
1073
+ <span class="pill" style="background: var(--yellow)">Frames</span>
1074
+ <h2>Frame Compositions</h2>
1075
+ <span class="sp"></span>
1076
+ </div>
1077
+ <div class="gallery">
1078
+ <div class="fw">
1079
+ <div class="flabel"><b>Cover</b><span>· identity · cream · decorations · left</span></div>
1080
+ <div class="frame bf1">
1081
+ <div class="dg"></div>
1082
+ <div class="star"></div>
1083
+ <div class="rect"></div>
1084
+ <div class="body">
1085
+ <span class="pill">Frame System</span>
1086
+ <h3>Loud, bordered, crooked.</h3>
1087
+ </div>
1088
+ </div>
1089
+ </div>
1090
+
1091
+ <div class="fw">
1092
+ <div class="flabel"><b>Feature Cards</b><span>· catalog · blue ground · 3-up</span></div>
1093
+ <div class="frame bf2">
1094
+ <div class="body">
1095
+ <span class="pill">Three Laws</span>
1096
+ <h3>Cards on Grounds</h3>
1097
+ <div class="row">
1098
+ <div class="c">
1099
+ <div class="ic" style="background: var(--pink)">A</div>
1100
+ <div class="t">Border</div>
1101
+ <div class="bd">4px ink on all.</div>
1102
+ </div>
1103
+ <div class="c">
1104
+ <div class="ic" style="background: var(--green)">B</div>
1105
+ <div class="t">Shadow</div>
1106
+ <div class="bd">8px hard offset.</div>
1107
+ </div>
1108
+ <div class="c">
1109
+ <div class="ic" style="background: var(--yellow)">C</div>
1110
+ <div class="t">Tilt</div>
1111
+ <div class="bd">A little crooked.</div>
1112
+ </div>
1113
+ </div>
1114
+ </div>
1115
+ </div>
1116
+ </div>
1117
+
1118
+ <div class="fw">
1119
+ <div class="flabel">
1120
+ <b>Stat Grid</b><span>· data · green ground · tilted · the dense frame</span>
1121
+ </div>
1122
+ <div class="frame bf3">
1123
+ <div class="body">
1124
+ <span class="pill">By The Numbers</span>
1125
+ <h3>The Tally</h3>
1126
+ <div class="row">
1127
+ <div class="sc">
1128
+ <div class="dot" style="background: var(--pink)"></div>
1129
+ <div class="n">240</div>
1130
+ <div class="l">Output</div>
1131
+ </div>
1132
+ <div class="sc">
1133
+ <div class="dot" style="background: var(--blue)"></div>
1134
+ <div class="n">3.4×</div>
1135
+ <div class="l">Faster</div>
1136
+ </div>
1137
+ <div class="sc">
1138
+ <div class="dot" style="background: var(--yellow)"></div>
1139
+ <div class="n">12K</div>
1140
+ <div class="l">Shipped</div>
1141
+ </div>
1142
+ </div>
1143
+ </div>
1144
+ </div>
1145
+ </div>
1146
+
1147
+ <div class="fw">
1148
+ <div class="flabel">
1149
+ <b>Closing Plate</b><span>· closer · black ground · yellow shadow</span>
1150
+ </div>
1151
+ <div class="frame bf4">
1152
+ <div class="body">
1153
+ <div class="cardf">
1154
+ <div class="star"></div>
1155
+ <span class="pill">The End</span>
1156
+ <h3>Stay loud.</h3>
1157
+ </div>
1158
+ </div>
1159
+ </div>
1160
+ </div>
1161
+ </div>
1162
+ </section>
1163
+
1164
+ <!-- PRINCIPLES -->
1165
+ <section style="border-bottom: none">
1166
+ <div class="sec-head">
1167
+ <span class="pill" style="background: var(--green)">Rules</span>
1168
+ <h2>Frame Rules</h2>
1169
+ <span class="sp"></span>
1170
+ </div>
1171
+ <div class="dos">
1172
+ <div class="do-card do">
1173
+ <h4>Do</h4>
1174
+ <ul>
1175
+ <li>4px borders + 8px shadows on primary cards; 3px + 4px on chrome.</li>
1176
+ <li>Cycle pastel grounds across frames; keep the rhythm.</li>
1177
+ <li>Inter 800–900 uppercase, negative tracking, for all display.</li>
1178
+ <li>Open every region with a label-pill eyebrow.</li>
1179
+ <li>Tilt decorations ±2°–12°; add one to every frame.</li>
1180
+ </ul>
1181
+ </div>
1182
+ <div class="do-card dont">
1183
+ <h4>Don't</h4>
1184
+ <ul>
1185
+ <li>No rounded corners (save the stat-deco dot); no blurred shadows.</li>
1186
+ <li>No colored borders (black only, save the close-frame white).</li>
1187
+ <li>No sentence-case Inter display; no sixth pastel.</li>
1188
+ <li>No label rendered as plain text — pill or nothing.</li>
1189
+ <li>Don't blow a headline edge-to-edge — fit to measure.</li>
1190
+ </ul>
1191
+ </div>
1192
+ </div>
1193
+ </section>
1194
+
1195
+ <!-- CAPTIONS — preview of caption-skin.html (the preset's lower-third karaoke look) -->
1196
+ <style>
1197
+ /* mirrors caption-skin.html; the skin's --cap-* vocab mapped to this preset's tokens */
1198
+ .capdemo {
1199
+ --cap-ink: var(--black);
1200
+ --cap-canvas: var(--white);
1201
+ --cap-accent: var(--yellow);
1202
+ --cap-accent-2: var(--cream);
1203
+ }
1204
+ .capdemo .stage {
1205
+ position: absolute;
1206
+ left: 0;
1207
+ right: 0;
1208
+ bottom: 0;
1209
+ height: 16.67cqh;
1210
+ display: flex;
1211
+ align-items: center;
1212
+ justify-content: center;
1213
+ z-index: 4;
1214
+ }
1215
+ .capdemo .pill {
1216
+ max-width: 80cqw;
1217
+ padding: 1.4cqw 3cqw 1.7cqw;
1218
+ background: var(--cap-canvas);
1219
+ border: 0.4cqw solid var(--cap-ink);
1220
+ border-radius: 0;
1221
+ box-shadow: 0.8cqw 0.8cqw 0 var(--cap-ink);
1222
+ }
1223
+ .capdemo .line {
1224
+ display: flex;
1225
+ flex-wrap: wrap;
1226
+ justify-content: center;
1227
+ gap: 0.12em 0.32em;
1228
+ font-family: var(--disp);
1229
+ font-weight: 900;
1230
+ text-transform: uppercase;
1231
+ font-size: 3.2cqw;
1232
+ line-height: 1.12;
1233
+ letter-spacing: -0.02em;
1234
+ }
1235
+ .capdemo .w {
1236
+ display: inline-block;
1237
+ padding: 0 0.1em;
1238
+ color: color-mix(in srgb, var(--cap-ink) 40%, var(--cap-canvas));
1239
+ }
1240
+ .capdemo .w.spoken {
1241
+ color: var(--cap-ink);
1242
+ }
1243
+ .capdemo .w.active {
1244
+ color: var(--cap-ink);
1245
+ background: var(--cap-accent);
1246
+ box-shadow: 0 0 0 0.08em var(--cap-accent);
1247
+ }
1248
+ .capdemo .bandline {
1249
+ position: absolute;
1250
+ left: 0;
1251
+ right: 0;
1252
+ bottom: 16.67cqh;
1253
+ border-top: 0.15cqw dashed rgba(0, 0, 0, 0.4);
1254
+ z-index: 3;
1255
+ }
1256
+ .capdemo .bandtag {
1257
+ position: absolute;
1258
+ right: 3cqw;
1259
+ bottom: calc(16.67cqh + 0.7cqw);
1260
+ font-family: var(--mono);
1261
+ font-weight: 600;
1262
+ text-transform: uppercase;
1263
+ font-size: 0.9cqw;
1264
+ letter-spacing: 0.08em;
1265
+ color: var(--black);
1266
+ opacity: 0.55;
1267
+ z-index: 4;
1268
+ }
1269
+ </style>
1270
+ <section>
1271
+ <div class="sec-head">
1272
+ <span class="pill" style="background: var(--yellow)">Captions</span>
1273
+ <h2>Lower-Third Karaoke</h2>
1274
+ <span class="sp"></span>
1275
+ </div>
1276
+ <div class="gallery">
1277
+ <div class="fw">
1278
+ <div class="flabel"><b>Active line</b><span>· spoken · current · upcoming</span></div>
1279
+ <div class="frame capdemo" style="background: var(--cream)">
1280
+ <div
1281
+ class="dg"
1282
+ style="
1283
+ position: absolute;
1284
+ inset: 0;
1285
+ opacity: 0.3;
1286
+ background-image: radial-gradient(
1287
+ circle,
1288
+ var(--black) 0.15cqw,
1289
+ transparent 0.15cqw
1290
+ );
1291
+ background-size: 3cqw 3cqw;
1292
+ z-index: 1;
1293
+ "
1294
+ ></div>
1295
+ <div class="bandline"></div>
1296
+ <div class="bandtag">caption band · 16.7%</div>
1297
+ <div class="stage">
1298
+ <div class="pill">
1299
+ <div class="line">
1300
+ <span class="w spoken">Built</span>
1301
+ <span class="w spoken">for</span>
1302
+ <span class="w active">teams</span>
1303
+ <span class="w">who</span>
1304
+ <span class="w">ship.</span>
1305
+ </div>
1306
+ </div>
1307
+ </div>
1308
+ </div>
1309
+ </div>
1310
+
1311
+ <div class="fw">
1312
+ <div class="flabel"><b>Settled line</b><span>· all spoken · stamp cleared</span></div>
1313
+ <div class="frame capdemo" style="background: var(--blue)">
1314
+ <div class="stage">
1315
+ <div class="pill">
1316
+ <div class="line">
1317
+ <span class="w spoken">Ship</span>
1318
+ <span class="w spoken">faster</span>
1319
+ <span class="w spoken">today.</span>
1320
+ </div>
1321
+ </div>
1322
+ </div>
1323
+ </div>
1324
+ </div>
1325
+ </div>
1326
+ </section>
1327
+
1328
+ <div class="foot">
1329
+ <span class="l">BlockFrame</span>
1330
+ <span class="r">Frame Showcase · Atoms Sacred · Composition Free</span>
1331
+ </div>
1332
+
1333
+ <template id="__bundler_thumbnail">
1334
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
1335
+ <rect width="100" height="100" fill="#FFFDF5" />
1336
+ <rect x="16" y="34" width="46" height="32" fill="#FE90E8" stroke="#000" stroke-width="4" />
1337
+ <rect x="22" y="40" width="46" height="32" fill="#C0F7FE" stroke="#000" stroke-width="4" />
1338
+ <path
1339
+ d="M74 16l4 11h12l-9 7 3 11-10-6-10 6 3-11-9-7h12z"
1340
+ fill="#F7CB46"
1341
+ stroke="#000"
1342
+ stroke-width="2"
1343
+ />
1344
+ </svg>
1345
+ </template>
1346
+ </body>
1347
+ </html>