@mevdragon/vidfarm-devcli 0.13.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 (427) 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 +60 -4
  405. package/SKILL.platform.md +7 -2
  406. package/demo/dist/app.css +1 -1
  407. package/demo/dist/app.js +485 -86
  408. package/dist/src/account-pages-legacy.js +9 -14
  409. package/dist/src/app.js +659 -159
  410. package/dist/src/cli.js +618 -17
  411. package/dist/src/composition-runtime.js +286 -6
  412. package/dist/src/devcli/composition-edit.js +176 -8
  413. package/dist/src/devcli/doctor.js +192 -0
  414. package/dist/src/devcli/hyperframes-cli.js +118 -0
  415. package/dist/src/devcli/skills.js +476 -0
  416. package/dist/src/devcli/stills.js +249 -0
  417. package/dist/src/devcli/transitions.js +205 -0
  418. package/dist/src/editor-chat.js +260 -4
  419. package/dist/src/frontend/template-editor-chat.js +6 -5
  420. package/dist/src/homepage.js +2 -48
  421. package/dist/src/hyperframes/composition.js +188 -7
  422. package/dist/src/services/composition-lint.js +199 -0
  423. package/dist/src/services/hyperframes.js +127 -28
  424. package/dist/src/services/serverless-records.js +7 -0
  425. package/dist/src/template-editor-shell.js +87 -48
  426. package/package.json +2 -1
  427. package/public/assets/page-runtime-client-app.js +31 -31
@@ -0,0 +1,1268 @@
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>Coral</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=Bebas+Neue&family=Inter:wght@300;400;600;700&display=swap"
11
+ rel="stylesheet"
12
+ />
13
+ <style id="ds-tokens">
14
+ :root {
15
+ --coral: #e85d5d;
16
+ --coral-dark: #d44a4a;
17
+ --cream: #f5f0e8;
18
+ --cream-dark: #e8e0d4;
19
+ --ink: #1a1a1a;
20
+ --gray: #6b6b6b;
21
+ --light-gray: #b0b0b0;
22
+ --white: #ffffff;
23
+ --display: "Bebas Neue", sans-serif;
24
+ --body: "Inter", sans-serif;
25
+ --hatch: repeating-linear-gradient(
26
+ 45deg,
27
+ transparent,
28
+ transparent 20px,
29
+ rgba(0, 0, 0, 0.06) 20px,
30
+ rgba(0, 0, 0, 0.06) 40px
31
+ );
32
+ }
33
+ * {
34
+ margin: 0;
35
+ padding: 0;
36
+ box-sizing: border-box;
37
+ }
38
+ html {
39
+ background: #0e0e0e;
40
+ }
41
+ body {
42
+ background: var(--cream);
43
+ color: var(--ink);
44
+ font-family: var(--body);
45
+ -webkit-font-smoothing: antialiased;
46
+ }
47
+ .beb {
48
+ font-family: var(--display);
49
+ text-transform: uppercase;
50
+ }
51
+ .eyebrow {
52
+ font-family: var(--body);
53
+ font-weight: 700;
54
+ text-transform: uppercase;
55
+ letter-spacing: 4px;
56
+ font-size: 13px;
57
+ color: var(--coral);
58
+ }
59
+
60
+ /* doc rhythm */
61
+ section {
62
+ padding: 120px 100px;
63
+ position: relative;
64
+ }
65
+ .sec-head {
66
+ display: flex;
67
+ align-items: flex-end;
68
+ gap: 24px;
69
+ margin-bottom: 64px;
70
+ border-bottom: 3px solid rgba(26, 26, 26, 0.15);
71
+ padding-bottom: 24px;
72
+ }
73
+ .sec-head .num {
74
+ font-family: var(--display);
75
+ font-size: 64px;
76
+ line-height: 0.8;
77
+ color: var(--coral);
78
+ }
79
+ .sec-head h2 {
80
+ font-family: var(--display);
81
+ font-size: 64px;
82
+ line-height: 0.8;
83
+ letter-spacing: 2px;
84
+ }
85
+ .sec-head .sp {
86
+ flex: 1;
87
+ }
88
+ .sec-head .tag {
89
+ font-family: var(--body);
90
+ font-weight: 600;
91
+ text-transform: uppercase;
92
+ letter-spacing: 3px;
93
+ font-size: 12px;
94
+ color: var(--gray);
95
+ }
96
+
97
+ /* COVER — region split */
98
+ .cover {
99
+ min-height: 100vh;
100
+ display: grid;
101
+ grid-template-rows: 38% 62%;
102
+ }
103
+ .cover .top {
104
+ background: var(--coral);
105
+ position: relative;
106
+ overflow: hidden;
107
+ padding: 56px 64px;
108
+ display: flex;
109
+ justify-content: space-between;
110
+ align-items: flex-start;
111
+ }
112
+ .cover .top::before {
113
+ content: "";
114
+ position: absolute;
115
+ inset: 0;
116
+ background: var(--hatch);
117
+ pointer-events: none;
118
+ }
119
+ .cover .top .brand {
120
+ font-family: var(--display);
121
+ font-size: 40px;
122
+ letter-spacing: 6px;
123
+ color: var(--ink);
124
+ position: relative;
125
+ z-index: 2;
126
+ }
127
+ .cover .top .meta {
128
+ text-align: right;
129
+ position: relative;
130
+ z-index: 2;
131
+ }
132
+ .cover .top .meta .ml {
133
+ font-family: var(--body);
134
+ font-weight: 600;
135
+ text-transform: uppercase;
136
+ letter-spacing: 3px;
137
+ font-size: 12px;
138
+ color: var(--ink);
139
+ opacity: 0.7;
140
+ }
141
+ .cover .top .meta .mf {
142
+ font-family: var(--display);
143
+ font-size: 38px;
144
+ letter-spacing: 2px;
145
+ color: var(--ink);
146
+ margin-top: 4px;
147
+ }
148
+ .cover .top .bignum {
149
+ position: absolute;
150
+ right: 48px;
151
+ bottom: -70px;
152
+ font-family: var(--display);
153
+ font-size: 340px;
154
+ line-height: 0.7;
155
+ color: rgba(0, 0, 0, 0.12);
156
+ z-index: 1;
157
+ }
158
+ .cover .bot {
159
+ background: var(--cream);
160
+ padding: 64px;
161
+ display: flex;
162
+ flex-direction: column;
163
+ justify-content: center;
164
+ }
165
+ .cover h1 {
166
+ font-family: var(--display);
167
+ font-size: clamp(80px, 13vw, 190px);
168
+ line-height: 0.88;
169
+ letter-spacing: 4px;
170
+ color: var(--ink);
171
+ }
172
+ .cover h1 em {
173
+ font-style: normal;
174
+ color: var(--coral);
175
+ }
176
+ .cover .rule {
177
+ height: 3px;
178
+ background: rgba(26, 26, 26, 0.15);
179
+ margin: 40px 0 28px;
180
+ max-width: 900px;
181
+ }
182
+ .cover .strap {
183
+ font-family: var(--body);
184
+ font-weight: 300;
185
+ font-size: 24px;
186
+ line-height: 1.5;
187
+ color: var(--gray);
188
+ max-width: 760px;
189
+ }
190
+ .cover .strap b {
191
+ font-weight: 600;
192
+ color: var(--ink);
193
+ }
194
+
195
+ /* PALETTE */
196
+ .swatches {
197
+ display: grid;
198
+ grid-template-columns: repeat(4, 1fr);
199
+ gap: 0;
200
+ border: 1px solid rgba(26, 26, 26, 0.12);
201
+ }
202
+ .sw {
203
+ padding: 0;
204
+ }
205
+ .sw .chip {
206
+ height: 160px;
207
+ border-bottom: 1px solid rgba(26, 26, 26, 0.12);
208
+ }
209
+ .sw:not(:last-child) {
210
+ border-right: 1px solid rgba(26, 26, 26, 0.12);
211
+ }
212
+ .sw .meta {
213
+ padding: 22px 24px;
214
+ }
215
+ .sw .name {
216
+ font-family: var(--display);
217
+ font-size: 30px;
218
+ letter-spacing: 2px;
219
+ }
220
+ .sw .hex {
221
+ font-family: var(--body);
222
+ font-size: 13px;
223
+ letter-spacing: 1px;
224
+ color: var(--gray);
225
+ margin-top: 4px;
226
+ }
227
+ .sw .role {
228
+ font-size: 13px;
229
+ line-height: 1.5;
230
+ color: var(--gray);
231
+ margin-top: 12px;
232
+ }
233
+ .palette-row {
234
+ display: grid;
235
+ grid-template-columns: repeat(4, 1fr);
236
+ }
237
+ .palette-row + .palette-row .sw .chip {
238
+ border-top: 0;
239
+ }
240
+
241
+ /* TYPE */
242
+ .type-row {
243
+ display: grid;
244
+ grid-template-columns: 260px 1fr;
245
+ border-bottom: 1px solid rgba(26, 26, 26, 0.12);
246
+ align-items: center;
247
+ }
248
+ .type-row .lbl {
249
+ padding: 28px 0;
250
+ }
251
+ .type-row .tok {
252
+ font-family: var(--body);
253
+ font-weight: 600;
254
+ text-transform: uppercase;
255
+ letter-spacing: 2px;
256
+ font-size: 13px;
257
+ }
258
+ .type-row .meta {
259
+ font-size: 12px;
260
+ color: var(--gray);
261
+ margin-top: 8px;
262
+ line-height: 1.6;
263
+ }
264
+ .type-row .spec {
265
+ padding: 28px 0 28px 40px;
266
+ border-left: 1px solid rgba(26, 26, 26, 0.12);
267
+ overflow: hidden;
268
+ }
269
+
270
+ /* COMPONENTS */
271
+ .comp-note {
272
+ font-family: var(--body);
273
+ font-weight: 600;
274
+ text-transform: uppercase;
275
+ letter-spacing: 2px;
276
+ font-size: 12px;
277
+ color: var(--gray);
278
+ margin-bottom: 18px;
279
+ }
280
+ .comp-grid {
281
+ display: grid;
282
+ grid-template-columns: repeat(12, 1fr);
283
+ gap: 28px;
284
+ margin-bottom: 56px;
285
+ }
286
+ .span3 {
287
+ grid-column: span 3;
288
+ }
289
+ .span4 {
290
+ grid-column: span 4;
291
+ }
292
+ .span6 {
293
+ grid-column: span 6;
294
+ }
295
+ .c-card {
296
+ background: var(--white);
297
+ border-top: 5px solid var(--coral);
298
+ padding: 32px;
299
+ height: 100%;
300
+ }
301
+ .c-card .ico {
302
+ width: 48px;
303
+ height: 48px;
304
+ background: var(--coral);
305
+ color: var(--white);
306
+ font-family: var(--display);
307
+ font-size: 24px;
308
+ display: grid;
309
+ place-items: center;
310
+ margin-bottom: 24px;
311
+ }
312
+ .c-card .t {
313
+ font-family: var(--display);
314
+ font-size: 34px;
315
+ letter-spacing: 1px;
316
+ line-height: 1.05;
317
+ }
318
+ .c-card .x {
319
+ font-size: 14px;
320
+ line-height: 1.6;
321
+ color: var(--gray);
322
+ margin-top: 14px;
323
+ }
324
+ .c-card .stat {
325
+ font-family: var(--display);
326
+ font-size: 48px;
327
+ color: var(--coral);
328
+ margin-top: 24px;
329
+ line-height: 1;
330
+ }
331
+ .c-side {
332
+ background: var(--white);
333
+ border-left: 4px solid var(--coral);
334
+ padding: 20px 24px;
335
+ margin-bottom: 18px;
336
+ }
337
+ .c-side .v {
338
+ font-family: var(--display);
339
+ font-size: 44px;
340
+ letter-spacing: 1px;
341
+ line-height: 1;
342
+ }
343
+ .c-side .l {
344
+ font-family: var(--body);
345
+ font-size: 12px;
346
+ letter-spacing: 1px;
347
+ color: var(--gray);
348
+ margin-top: 6px;
349
+ }
350
+ .c-accent {
351
+ width: 80px;
352
+ height: 4px;
353
+ background: var(--coral);
354
+ }
355
+ .timeline {
356
+ position: relative;
357
+ height: 120px;
358
+ margin-top: 20px;
359
+ }
360
+ .timeline .line {
361
+ position: absolute;
362
+ top: 20px;
363
+ left: 0;
364
+ right: 0;
365
+ height: 4px;
366
+ background: var(--ink);
367
+ }
368
+ .timeline .pt {
369
+ position: absolute;
370
+ top: 12px;
371
+ width: 20px;
372
+ height: 20px;
373
+ border-radius: 50%;
374
+ background: var(--coral);
375
+ border: 4px solid var(--cream);
376
+ }
377
+ .timeline .lab {
378
+ position: absolute;
379
+ top: 44px;
380
+ font-family: var(--display);
381
+ font-size: 22px;
382
+ letter-spacing: 1px;
383
+ transform: translateX(-50%);
384
+ }
385
+ .infobar {
386
+ background: var(--cream-dark);
387
+ display: flex;
388
+ justify-content: space-between;
389
+ align-items: center;
390
+ padding: 28px 36px;
391
+ }
392
+ .infobar .bt {
393
+ font-family: var(--display);
394
+ font-size: 44px;
395
+ letter-spacing: 2px;
396
+ }
397
+ .infobar .bm {
398
+ font-family: var(--body);
399
+ font-size: 12px;
400
+ letter-spacing: 2px;
401
+ text-transform: uppercase;
402
+ color: var(--gray);
403
+ }
404
+
405
+ /* COMPOSITIONS */
406
+ .gallery {
407
+ display: grid;
408
+ grid-template-columns: 1fr 1fr;
409
+ gap: 48px;
410
+ }
411
+ .fw .flabel {
412
+ display: flex;
413
+ gap: 14px;
414
+ align-items: baseline;
415
+ margin-bottom: 16px;
416
+ font-family: var(--body);
417
+ font-weight: 600;
418
+ text-transform: uppercase;
419
+ letter-spacing: 2px;
420
+ font-size: 12px;
421
+ color: var(--gray);
422
+ }
423
+ .fw .flabel b {
424
+ color: var(--ink);
425
+ letter-spacing: 1px;
426
+ }
427
+ .frame {
428
+ aspect-ratio: 16/9;
429
+ container-type: size;
430
+ position: relative;
431
+ overflow: hidden;
432
+ background: var(--cream);
433
+ box-shadow: 0 2px 0 rgba(26, 26, 26, 0.1);
434
+ }
435
+ .frame .hatch {
436
+ position: absolute;
437
+ inset: 0;
438
+ background: var(--hatch);
439
+ pointer-events: none;
440
+ z-index: 1;
441
+ }
442
+ .frame .z {
443
+ position: relative;
444
+ z-index: 2;
445
+ }
446
+
447
+ /* f1 cover region split */
448
+ .f1 {
449
+ display: grid;
450
+ grid-template-rows: 36% 64%;
451
+ }
452
+ .f1 .t {
453
+ background: var(--coral);
454
+ position: relative;
455
+ overflow: hidden;
456
+ display: flex;
457
+ justify-content: space-between;
458
+ align-items: flex-start;
459
+ padding: 2.6cqw 3cqw;
460
+ }
461
+ .f1 .t .brand {
462
+ font-family: var(--display);
463
+ font-size: 2cqw;
464
+ letter-spacing: 0.4cqw;
465
+ color: var(--ink);
466
+ }
467
+ .f1 .t .mf {
468
+ font-family: var(--display);
469
+ font-size: 1.9cqw;
470
+ letter-spacing: 0.1cqw;
471
+ color: var(--ink);
472
+ }
473
+ .f1 .t .bn {
474
+ position: absolute;
475
+ right: 2cqw;
476
+ bottom: -3cqw;
477
+ font-family: var(--display);
478
+ font-size: 16cqw;
479
+ line-height: 0.7;
480
+ color: rgba(0, 0, 0, 0.12);
481
+ }
482
+ .f1 .b {
483
+ background: var(--cream);
484
+ padding: 0 3cqw;
485
+ display: flex;
486
+ flex-direction: column;
487
+ justify-content: center;
488
+ }
489
+ .f1 .b h3 {
490
+ font-family: var(--display);
491
+ font-size: 8.5cqw;
492
+ line-height: 0.86;
493
+ letter-spacing: 0.3cqw;
494
+ color: var(--ink);
495
+ }
496
+ .f1 .b h3 em {
497
+ font-style: normal;
498
+ color: var(--coral);
499
+ }
500
+ .f1 .b .ey {
501
+ font-family: var(--body);
502
+ font-weight: 700;
503
+ text-transform: uppercase;
504
+ letter-spacing: 0.3cqw;
505
+ font-size: 0.95cqw;
506
+ color: var(--coral);
507
+ margin-bottom: 1.2cqw;
508
+ }
509
+
510
+ /* f2 feature stat — coral full + giant numeral */
511
+ .f2 {
512
+ background: var(--coral);
513
+ position: relative;
514
+ overflow: hidden;
515
+ display: flex;
516
+ flex-direction: column;
517
+ justify-content: center;
518
+ padding: 0 7cqw;
519
+ }
520
+ .f2 .bn {
521
+ position: absolute;
522
+ right: 3cqw;
523
+ top: -2cqw;
524
+ font-family: var(--display);
525
+ font-size: 34cqw;
526
+ line-height: 0.8;
527
+ color: rgba(0, 0, 0, 0.12);
528
+ z-index: 1;
529
+ }
530
+ .f2 .ey {
531
+ font-family: var(--body);
532
+ font-weight: 700;
533
+ text-transform: uppercase;
534
+ letter-spacing: 0.3cqw;
535
+ font-size: 1cqw;
536
+ color: var(--ink);
537
+ margin-bottom: 1.4cqw;
538
+ }
539
+ .f2 h3 {
540
+ font-family: var(--display);
541
+ font-size: 7cqw;
542
+ line-height: 0.9;
543
+ letter-spacing: 0.2cqw;
544
+ color: var(--ink);
545
+ }
546
+ .f2 .x {
547
+ font-family: var(--body);
548
+ font-weight: 300;
549
+ font-size: 1.5cqw;
550
+ line-height: 1.5;
551
+ color: var(--ink);
552
+ max-width: 44cqw;
553
+ margin-top: 1.6cqw;
554
+ }
555
+
556
+ /* f3 quote — coral panel + ink panel */
557
+ .f3 {
558
+ display: grid;
559
+ grid-template-columns: 40% 60%;
560
+ }
561
+ .f3 .l {
562
+ background: var(--coral);
563
+ position: relative;
564
+ overflow: hidden;
565
+ display: flex;
566
+ align-items: flex-start;
567
+ padding: 3cqw;
568
+ }
569
+ .f3 .l .mark {
570
+ font-family: var(--display);
571
+ font-size: 24cqw;
572
+ line-height: 0.6;
573
+ color: rgba(0, 0, 0, 0.35);
574
+ }
575
+ .f3 .r {
576
+ background: var(--ink);
577
+ display: flex;
578
+ flex-direction: column;
579
+ justify-content: center;
580
+ padding: 0 5cqw;
581
+ }
582
+ .f3 .r .q {
583
+ font-family: var(--body);
584
+ font-weight: 300;
585
+ font-size: 2.6cqw;
586
+ line-height: 1.35;
587
+ color: var(--cream);
588
+ }
589
+ .f3 .r .acc {
590
+ width: 4cqw;
591
+ height: 0.25cqw;
592
+ background: var(--coral);
593
+ margin: 2.4cqw 0 1.4cqw;
594
+ }
595
+ .f3 .r .at {
596
+ font-family: var(--body);
597
+ font-weight: 600;
598
+ text-transform: uppercase;
599
+ letter-spacing: 0.25cqw;
600
+ font-size: 0.95cqw;
601
+ color: var(--cream);
602
+ }
603
+ .f3 .r .ro {
604
+ font-family: var(--body);
605
+ font-size: 0.85cqw;
606
+ letter-spacing: 0.05cqw;
607
+ color: var(--light-gray);
608
+ margin-top: 0.4cqw;
609
+ }
610
+
611
+ /* f4 closing — cream + coral band */
612
+ .f4 {
613
+ background: var(--cream);
614
+ display: flex;
615
+ flex-direction: column;
616
+ justify-content: center;
617
+ align-items: center;
618
+ text-align: center;
619
+ position: relative;
620
+ }
621
+ .f4 .ey {
622
+ font-family: var(--body);
623
+ font-weight: 700;
624
+ text-transform: uppercase;
625
+ letter-spacing: 0.4cqw;
626
+ font-size: 1cqw;
627
+ color: var(--coral);
628
+ margin-bottom: 1.6cqw;
629
+ }
630
+ .f4 h3 {
631
+ font-family: var(--display);
632
+ font-size: 9cqw;
633
+ line-height: 0.86;
634
+ letter-spacing: 0.3cqw;
635
+ color: var(--ink);
636
+ }
637
+ .f4 .acc {
638
+ width: 5cqw;
639
+ height: 0.25cqw;
640
+ background: var(--coral);
641
+ margin-top: 2.4cqw;
642
+ }
643
+ .f4 .band {
644
+ position: absolute;
645
+ left: 0;
646
+ right: 0;
647
+ bottom: 0;
648
+ height: 8cqw;
649
+ background: var(--coral);
650
+ overflow: hidden;
651
+ display: flex;
652
+ align-items: center;
653
+ justify-content: space-between;
654
+ padding: 0 4cqw;
655
+ }
656
+ .f4 .band::before {
657
+ content: "";
658
+ position: absolute;
659
+ inset: 0;
660
+ background: var(--hatch);
661
+ }
662
+ .f4 .band span {
663
+ position: relative;
664
+ font-family: var(--display);
665
+ font-size: 2.2cqw;
666
+ letter-spacing: 0.2cqw;
667
+ color: var(--ink);
668
+ }
669
+
670
+ /* PRINCIPLES */
671
+ .dos {
672
+ display: grid;
673
+ grid-template-columns: 1fr 1fr;
674
+ gap: 40px;
675
+ }
676
+ .do-card {
677
+ padding: 40px;
678
+ }
679
+ .do-card.do {
680
+ background: var(--ink);
681
+ color: var(--cream);
682
+ }
683
+ .do-card.dont {
684
+ background: var(--white);
685
+ border-top: 5px solid var(--coral);
686
+ }
687
+ .do-card h4 {
688
+ font-family: var(--display);
689
+ font-size: 40px;
690
+ letter-spacing: 2px;
691
+ margin-bottom: 24px;
692
+ }
693
+ .do-card.do h4 {
694
+ color: var(--coral);
695
+ }
696
+ .do-card ul {
697
+ list-style: none;
698
+ }
699
+ .do-card li {
700
+ font-size: 16px;
701
+ line-height: 1.55;
702
+ padding-left: 26px;
703
+ position: relative;
704
+ margin-bottom: 14px;
705
+ }
706
+ .do-card li::before {
707
+ position: absolute;
708
+ left: 0;
709
+ font-family: var(--display);
710
+ font-size: 18px;
711
+ }
712
+ .do-card.do li::before {
713
+ content: "+";
714
+ color: var(--coral);
715
+ }
716
+ .do-card.dont li::before {
717
+ content: "\2715";
718
+ color: var(--coral);
719
+ }
720
+ .do-card.dont li {
721
+ color: var(--gray);
722
+ }
723
+
724
+ .foot {
725
+ padding: 64px 100px;
726
+ background: var(--ink);
727
+ color: var(--cream);
728
+ display: flex;
729
+ justify-content: space-between;
730
+ align-items: center;
731
+ }
732
+ .foot .l {
733
+ font-family: var(--display);
734
+ font-size: 30px;
735
+ letter-spacing: 3px;
736
+ }
737
+ .foot .r {
738
+ font-family: var(--body);
739
+ font-weight: 600;
740
+ text-transform: uppercase;
741
+ letter-spacing: 3px;
742
+ font-size: 12px;
743
+ color: var(--light-gray);
744
+ }
745
+ @media (max-width: 1100px) {
746
+ .gallery {
747
+ grid-template-columns: 1fr;
748
+ }
749
+ .swatches,
750
+ .palette-row {
751
+ grid-template-columns: 1fr 1fr;
752
+ }
753
+ }
754
+ </style>
755
+ <link
756
+ rel="stylesheet"
757
+ href="https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap"
758
+ />
759
+ <link
760
+ rel="stylesheet"
761
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
762
+ />
763
+ <style id="ft-override">
764
+ :root {
765
+ --primary: #f5f0e8 !important;
766
+ --secondary: #1a1a1a !important;
767
+ --tertiary: #6b6b6b !important;
768
+ --accent: #e85d5d !important;
769
+ --f-disp: "Bebas Neue", sans-serif !important;
770
+ --f-body: "Inter", sans-serif !important;
771
+ --coral: #e85d5d !important;
772
+ --cream: #f5f0e8 !important;
773
+ --ink: #1a1a1a !important;
774
+ --gray: #6b6b6b !important;
775
+ --display: "Bebas Neue", sans-serif !important;
776
+ --body: "Inter", sans-serif !important;
777
+ --coral-dark: #d44a4a !important;
778
+ --cream-dark: #e8e0d4 !important;
779
+ --light-gray: #b0b0b0 !important;
780
+ --white: #ffffff !important;
781
+ }
782
+ </style>
783
+ </head>
784
+ <body>
785
+ <!-- COVER -->
786
+ <section class="cover" style="padding: 0">
787
+ <div class="top">
788
+ <div class="brand">Coral</div>
789
+ <div class="meta">
790
+ <div class="ml">Frame System</div>
791
+ <div class="mf">Vol. 01 / 1920×1080</div>
792
+ </div>
793
+ <div class="bignum">01</div>
794
+ </div>
795
+ <div class="bot">
796
+ <h1>Solid planes,<br /><em>hard edges.</em></h1>
797
+ <div class="rule"></div>
798
+ <div class="strap">
799
+ <b>A bold magazine-poster system in motion.</b> Three surfaces — coral fire, ink black,
800
+ warm cream — meeting at hard color edges, animated by Bebas Neue caps and a constant 45°
801
+ hatch.
802
+ </div>
803
+ </div>
804
+ </section>
805
+
806
+ <!-- PALETTE -->
807
+ <section>
808
+ <div class="sec-head">
809
+ <span class="num">01</span>
810
+ <h2>Palette</h2>
811
+ <span class="sp"></span><span class="tag">Three surfaces + ink + neutrals</span>
812
+ </div>
813
+ <div class="swatches palette-row">
814
+ <div class="sw">
815
+ <div class="chip" style="background: var(--coral)"></div>
816
+ <div class="meta">
817
+ <div class="name">Coral</div>
818
+ <div class="hex">#E85D5D</div>
819
+ <div class="role">The signature — accent and full-region environment.</div>
820
+ </div>
821
+ </div>
822
+ <div class="sw">
823
+ <div class="chip" style="background: var(--coral-dark)"></div>
824
+ <div class="meta">
825
+ <div class="name">Coral Dark</div>
826
+ <div class="hex">#D44A4A</div>
827
+ <div class="role">Gradient stop + chart comparison series.</div>
828
+ </div>
829
+ </div>
830
+ <div class="sw">
831
+ <div class="chip" style="background: var(--cream)"></div>
832
+ <div class="meta">
833
+ <div class="name">Cream</div>
834
+ <div class="hex">#F5F0E8</div>
835
+ <div class="role">The warm canvas — magazine paper.</div>
836
+ </div>
837
+ </div>
838
+ <div class="sw">
839
+ <div class="chip" style="background: var(--ink)"></div>
840
+ <div class="meta">
841
+ <div class="name">Black</div>
842
+ <div class="hex">#1A1A1A</div>
843
+ <div class="role">Strongest surface; quote + statement grounds.</div>
844
+ </div>
845
+ </div>
846
+ </div>
847
+ <div class="swatches palette-row" style="border-top: 0">
848
+ <div class="sw">
849
+ <div class="chip" style="background: var(--cream-dark)"></div>
850
+ <div class="meta">
851
+ <div class="name">Cream Dark</div>
852
+ <div class="hex">#E8E0D4</div>
853
+ <div class="role">Subtle region differentiation; info bars.</div>
854
+ </div>
855
+ </div>
856
+ <div class="sw">
857
+ <div class="chip" style="background: var(--gray)"></div>
858
+ <div class="meta">
859
+ <div class="name">Gray</div>
860
+ <div class="hex">#6B6B6B</div>
861
+ <div class="role">Body paragraphs, labels, meta.</div>
862
+ </div>
863
+ </div>
864
+ <div class="sw">
865
+ <div class="chip" style="background: var(--light-gray)"></div>
866
+ <div class="meta">
867
+ <div class="name">Light Gray</div>
868
+ <div class="hex">#B0B0B0</div>
869
+ <div class="role">Tertiary text on ink surfaces.</div>
870
+ </div>
871
+ </div>
872
+ <div class="sw">
873
+ <div
874
+ class="chip"
875
+ style="background: var(--white); box-shadow: inset 0 0 0 1px rgba(26, 26, 26, 0.12)"
876
+ ></div>
877
+ <div class="meta">
878
+ <div class="name">White</div>
879
+ <div class="hex">#FFFFFF</div>
880
+ <div class="role">Card fills against coral or cream.</div>
881
+ </div>
882
+ </div>
883
+ </div>
884
+ </section>
885
+
886
+ <!-- TYPOGRAPHY -->
887
+ <section style="background: var(--cream-dark)">
888
+ <div class="sec-head">
889
+ <span class="num">02</span>
890
+ <h2>Typography</h2>
891
+ <span class="sp"></span><span class="tag">Bebas Neue + Inter</span>
892
+ </div>
893
+ <div class="type-row">
894
+ <div class="lbl">
895
+ <div class="tok">hero-title</div>
896
+ <div class="meta">Bebas Neue · 120px · 4px track<br />uppercase always · line 0.9</div>
897
+ </div>
898
+ <div class="spec">
899
+ <span class="beb" style="font-size: 104px; letter-spacing: 4px; line-height: 0.9"
900
+ >Coral Fire</span
901
+ >
902
+ </div>
903
+ </div>
904
+ <div class="type-row">
905
+ <div class="lbl">
906
+ <div class="tok">jumbo-feature</div>
907
+ <div class="meta">Bebas Neue · up to 200px · 12px track</div>
908
+ </div>
909
+ <div class="spec">
910
+ <span class="beb" style="font-size: 120px; letter-spacing: 12px; color: var(--coral)"
911
+ >2026</span
912
+ >
913
+ </div>
914
+ </div>
915
+ <div class="type-row">
916
+ <div class="lbl">
917
+ <div class="tok">section-headline</div>
918
+ <div class="meta">Bebas Neue · 80px · 2px track</div>
919
+ </div>
920
+ <div class="spec">
921
+ <span class="beb" style="font-size: 72px; letter-spacing: 2px">Hard Color Edges</span>
922
+ </div>
923
+ </div>
924
+ <div class="type-row">
925
+ <div class="lbl">
926
+ <div class="tok">body-light</div>
927
+ <div class="meta">Inter · weight 300 · pull-quote voice</div>
928
+ </div>
929
+ <div class="spec">
930
+ <p style="font-weight: 300; font-size: 28px; line-height: 1.5; max-width: 760px">
931
+ The voice break — Inter Light takes over when content needs to feel personal rather than
932
+ declarative.
933
+ </p>
934
+ </div>
935
+ </div>
936
+ <div class="type-row" style="border-bottom: 0">
937
+ <div class="lbl">
938
+ <div class="tok">section-label</div>
939
+ <div class="meta">Inter · 700 · 4px track · uppercase</div>
940
+ </div>
941
+ <div class="spec"><span class="eyebrow">Fig. 02 — Type Specimen</span></div>
942
+ </div>
943
+ </section>
944
+
945
+ <!-- COMPONENTS -->
946
+ <section>
947
+ <div class="sec-head">
948
+ <span class="num">03</span>
949
+ <h2>Components</h2>
950
+ <span class="sp"></span><span class="tag">Flat · hard edges · coral borders</span>
951
+ </div>
952
+
953
+ <div class="comp-note">Column cards — white fill, 5px coral top border, 48px icon square</div>
954
+ <div class="comp-grid">
955
+ <div class="span4">
956
+ <div class="c-card">
957
+ <div class="ico">A</div>
958
+ <div class="t">Region Split</div>
959
+ <div class="x">Solid color planes meet at a hard edge. The boundary is the layout.</div>
960
+ <div class="stat">01</div>
961
+ </div>
962
+ </div>
963
+ <div class="span4">
964
+ <div class="c-card">
965
+ <div class="ico">B</div>
966
+ <div class="t">Diagonal Hatch</div>
967
+ <div class="x">A 45° 6%-opacity overlay gives coral regions texture without depth.</div>
968
+ <div class="stat">45°</div>
969
+ </div>
970
+ </div>
971
+ <div class="span4">
972
+ <div class="c-card">
973
+ <div class="ico">C</div>
974
+ <div class="t">Wallpaper Numeral</div>
975
+ <div class="x">Oversized Bebas at 12% opacity sits behind a region's title.</div>
976
+ <div class="stat">12%</div>
977
+ </div>
978
+ </div>
979
+ </div>
980
+
981
+ <div class="comp-grid">
982
+ <div class="span4">
983
+ <div class="comp-note">Sidebar tiles — 4px coral left border</div>
984
+ <div class="c-side">
985
+ <div class="v">240%</div>
986
+ <div class="l">Output Lift</div>
987
+ </div>
988
+ <div class="c-side">
989
+ <div class="v">3.4×</div>
990
+ <div class="l">Faster Cuts</div>
991
+ </div>
992
+ <div class="c-side" style="margin-bottom: 0">
993
+ <div class="v">12K</div>
994
+ <div class="l">Frames Shipped</div>
995
+ </div>
996
+ </div>
997
+ <div class="span4">
998
+ <div class="comp-note">Accent rule + info bar</div>
999
+ <div class="c-accent" style="margin-bottom: 28px"></div>
1000
+ <div class="infobar">
1001
+ <span class="bt">Coverage</span><span class="bm">Coral · Ink · Cream</span>
1002
+ </div>
1003
+ <div style="margin-top: 28px" class="comp-note">Card icon</div>
1004
+ <div
1005
+ class="ico"
1006
+ style="
1007
+ width: 48px;
1008
+ height: 48px;
1009
+ background: var(--coral);
1010
+ color: #fff;
1011
+ font-family: var(--display);
1012
+ font-size: 24px;
1013
+ display: grid;
1014
+ place-items: center;
1015
+ "
1016
+ >
1017
+
1018
+ </div>
1019
+ </div>
1020
+ <div class="span4">
1021
+ <div class="comp-note">Timeline — ink line, coral nodes, cream halo</div>
1022
+ <div class="timeline">
1023
+ <div class="line"></div>
1024
+ <div class="pt" style="left: 4%"></div>
1025
+ <div class="lab" style="left: 6%">Plan</div>
1026
+ <div class="pt" style="left: 34%"></div>
1027
+ <div class="lab" style="left: 36%">Block</div>
1028
+ <div class="pt" style="left: 64%"></div>
1029
+ <div class="lab" style="left: 66%">Set</div>
1030
+ <div class="pt" style="left: 92%"></div>
1031
+ <div class="lab" style="left: 90%">Ship</div>
1032
+ </div>
1033
+ </div>
1034
+ </div>
1035
+ </section>
1036
+
1037
+ <!-- COMPOSITIONS -->
1038
+ <section style="background: var(--cream-dark)">
1039
+ <div class="sec-head">
1040
+ <span class="num">04</span>
1041
+ <h2>Frame Compositions</h2>
1042
+ <span class="sp"></span><span class="tag">True 16:9 · cqw scaled</span>
1043
+ </div>
1044
+ <div class="gallery">
1045
+ <div class="fw">
1046
+ <div class="flabel"><b>Region-Split Cover</b><span>· identity · coral / cream</span></div>
1047
+ <div class="frame f1">
1048
+ <div class="t">
1049
+ <div class="brand">Coral</div>
1050
+ <div class="mf">Vol. 01</div>
1051
+ <div class="bn">01</div>
1052
+ </div>
1053
+ <div class="b">
1054
+ <div class="ey">Frame System</div>
1055
+ <h3>Solid planes,<br /><em>hard edges.</em></h3>
1056
+ </div>
1057
+ </div>
1058
+ </div>
1059
+
1060
+ <div class="fw">
1061
+ <div class="flabel">
1062
+ <b>Feature Stat</b><span>· coral environment · wallpaper numeral</span>
1063
+ </div>
1064
+ <div class="frame f2">
1065
+ <div class="bn">240</div>
1066
+ <div class="z">
1067
+ <div class="ey">By The Numbers</div>
1068
+ <h3>Two hundred<br />forty percent.</h3>
1069
+ <p class="x">
1070
+ Output lift across the system — the figure carries the region while the hatch gives
1071
+ it texture.
1072
+ </p>
1073
+ </div>
1074
+ </div>
1075
+ </div>
1076
+
1077
+ <div class="fw">
1078
+ <div class="flabel">
1079
+ <b>Quote Layout</b><span>· coral panel + ink panel · giant mark</span>
1080
+ </div>
1081
+ <div class="frame f3">
1082
+ <div class="l"><div class="mark">&ldquo;</div></div>
1083
+ <div class="r">
1084
+ <div class="q">Bebas declares.<br />Inter explains.</div>
1085
+ <div class="acc"></div>
1086
+ <div class="at">The System Voice</div>
1087
+ <div class="ro">Typographic Principle</div>
1088
+ </div>
1089
+ </div>
1090
+ </div>
1091
+
1092
+ <div class="fw">
1093
+ <div class="flabel">
1094
+ <b>Closing Plate</b><span>· closer · cream + coral band · centered</span>
1095
+ </div>
1096
+ <div class="frame f4">
1097
+ <div class="ey">Coral — Frame System</div>
1098
+ <h3>Meet at<br />the edge.</h3>
1099
+ <div class="acc"></div>
1100
+ <div class="band"><span>Thank You</span><span>2026</span></div>
1101
+ </div>
1102
+ </div>
1103
+ </div>
1104
+ </section>
1105
+
1106
+ <!-- PRINCIPLES -->
1107
+ <section>
1108
+ <div class="sec-head">
1109
+ <span class="num">05</span>
1110
+ <h2>Frame Rules</h2>
1111
+ <span class="sp"></span><span class="tag">Flat · hard-edge · coral</span>
1112
+ </div>
1113
+ <div class="dos">
1114
+ <div class="do-card do">
1115
+ <h4>Do</h4>
1116
+ <ul>
1117
+ <li>Compose as multi-surface region splits — coral, ink, cream at hard edges.</li>
1118
+ <li>Set every Bebas element uppercase with 1–12px letter-spacing.</li>
1119
+ <li>Render eyebrows in coral on cream/ink, in ink on coral.</li>
1120
+ <li>Apply the 45° hatch at 6% opacity on coral regions.</li>
1121
+ <li>Fill underweight coral regions with a 12%-opacity wallpaper numeral.</li>
1122
+ </ul>
1123
+ </div>
1124
+ <div class="do-card dont">
1125
+ <h4>Don't</h4>
1126
+ <ul>
1127
+ <li>Never render Bebas in sentence case or without tracking.</li>
1128
+ <li>No fourth surface; no drop shadows, elevations, or rounded rectangles.</li>
1129
+ <li>No white headlines on coral — Bebas on coral is always ink.</li>
1130
+ <li>No gray headlines; gray is body and meta only.</li>
1131
+ <li>Don't pair Bebas with a different body sans than Inter.</li>
1132
+ </ul>
1133
+ </div>
1134
+ </div>
1135
+ </section>
1136
+
1137
+ <!-- CAPTIONS — preview of caption-skin.html (the preset's lower-third karaoke look) -->
1138
+ <style>
1139
+ /* mirrors caption-skin.html; the skin's --cap-* vocab mapped to this preset's tokens */
1140
+ .capdemo {
1141
+ --cap-ink: var(--ink);
1142
+ --cap-canvas: var(--cream);
1143
+ --cap-accent: var(--coral);
1144
+ --cap-accent-2: var(--coral-dark);
1145
+ }
1146
+ .capdemo .stage {
1147
+ position: absolute;
1148
+ left: 0;
1149
+ right: 0;
1150
+ bottom: 0;
1151
+ height: 16.67cqh;
1152
+ display: flex;
1153
+ align-items: center;
1154
+ justify-content: center;
1155
+ z-index: 4;
1156
+ }
1157
+ .capdemo .pill {
1158
+ max-width: 80cqw;
1159
+ padding: 1.4cqw 3cqw 1.6cqw;
1160
+ background: var(--cap-canvas);
1161
+ border: 1px solid var(--cap-ink);
1162
+ border-radius: 0;
1163
+ }
1164
+ .capdemo .line {
1165
+ display: flex;
1166
+ flex-wrap: wrap;
1167
+ justify-content: center;
1168
+ gap: 0.1em 0.3em;
1169
+ font-family: var(--display);
1170
+ font-weight: 400;
1171
+ text-transform: uppercase;
1172
+ font-size: 3.6cqw;
1173
+ line-height: 1.04;
1174
+ letter-spacing: 0.06em;
1175
+ }
1176
+ .capdemo .w {
1177
+ display: inline-block;
1178
+ padding: 0 0.12em;
1179
+ color: color-mix(in srgb, var(--cap-ink) 40%, var(--cap-canvas));
1180
+ }
1181
+ .capdemo .w.spoken {
1182
+ color: var(--cap-ink);
1183
+ }
1184
+ .capdemo .w.active {
1185
+ color: var(--cap-ink);
1186
+ background: var(--cap-accent);
1187
+ box-shadow: 0 0 0 0.1em var(--cap-accent);
1188
+ }
1189
+ .capdemo .bandline {
1190
+ position: absolute;
1191
+ left: 0;
1192
+ right: 0;
1193
+ bottom: 16.67cqh;
1194
+ border-top: 1px dashed rgba(26, 26, 26, 0.28);
1195
+ z-index: 3;
1196
+ }
1197
+ .capdemo .bandtag {
1198
+ position: absolute;
1199
+ right: 3cqw;
1200
+ bottom: calc(16.67cqh + 0.7cqw);
1201
+ font-family: var(--body);
1202
+ font-weight: 600;
1203
+ text-transform: uppercase;
1204
+ font-size: 0.85cqw;
1205
+ letter-spacing: 0.1cqw;
1206
+ color: var(--gray);
1207
+ z-index: 4;
1208
+ }
1209
+ </style>
1210
+ <section>
1211
+ <div class="sec-head">
1212
+ <span class="num">06</span>
1213
+ <h2>Captions</h2>
1214
+ <span class="sp"></span><span class="tag">Lower-third · Karaoke</span>
1215
+ </div>
1216
+ <div class="gallery">
1217
+ <div class="fw">
1218
+ <div class="flabel"><b>Active line</b><span>· spoken · current · upcoming</span></div>
1219
+ <div class="frame capdemo">
1220
+ <div class="hatch" style="background: var(--hatch); opacity: 0.5"></div>
1221
+ <div class="bandline"></div>
1222
+ <div class="bandtag">caption band · 16.7%</div>
1223
+ <div class="stage">
1224
+ <div class="pill">
1225
+ <div class="line">
1226
+ <span class="w spoken">Built</span>
1227
+ <span class="w spoken">for</span>
1228
+ <span class="w active">teams</span>
1229
+ <span class="w">who</span>
1230
+ <span class="w">ship.</span>
1231
+ </div>
1232
+ </div>
1233
+ </div>
1234
+ </div>
1235
+ </div>
1236
+
1237
+ <div class="fw">
1238
+ <div class="flabel"><b>Settled line</b><span>· all spoken · fill cleared</span></div>
1239
+ <div class="frame capdemo">
1240
+ <div class="stage">
1241
+ <div class="pill">
1242
+ <div class="line">
1243
+ <span class="w spoken">Ship</span>
1244
+ <span class="w spoken">faster</span>
1245
+ <span class="w spoken">today.</span>
1246
+ </div>
1247
+ </div>
1248
+ </div>
1249
+ </div>
1250
+ </div>
1251
+ </div>
1252
+ </section>
1253
+
1254
+ <div class="foot">
1255
+ <span class="l">Coral</span>
1256
+ <span class="r">Frame Showcase · Atoms Sacred · Composition Free</span>
1257
+ </div>
1258
+
1259
+ <template id="__bundler_thumbnail">
1260
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
1261
+ <rect width="100" height="100" fill="#F5F0E8" />
1262
+ <rect width="100" height="42" fill="#E85D5D" />
1263
+ <rect x="20" y="60" width="60" height="9" fill="#1A1A1A" />
1264
+ <rect x="20" y="74" width="38" height="9" fill="#E85D5D" />
1265
+ </svg>
1266
+ </template>
1267
+ </body>
1268
+ </html>