@hiai-gg/hiai-opencode 0.2.0 → 0.2.2

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 (490) hide show
  1. package/.env.example +4 -0
  2. package/AGENTS.md +40 -44
  3. package/ARCHITECTURE.md +4 -3
  4. package/LICENSE.md +14 -0
  5. package/README.md +61 -30
  6. package/assets/cli/hiai-opencode.mjs +4 -4
  7. package/config/hiai-opencode.schema.json +11 -13
  8. package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
  9. package/dist/agents/bob/core.d.ts +6 -0
  10. package/dist/agents/bob/gpt.d.ts +11 -0
  11. package/dist/agents/bob/index.d.ts +3 -0
  12. package/dist/agents/coder/core.d.ts +4 -0
  13. package/dist/agents/coder/gpt.d.ts +1 -4
  14. package/dist/agents/coder/index.d.ts +1 -0
  15. package/dist/agents/manager/agent.d.ts +1 -1
  16. package/dist/agents/manager/default-prompt-sections.d.ts +4 -4
  17. package/dist/agents/manager/guard-integration.d.ts +1 -0
  18. package/dist/agents/prompt-library/index.d.ts +0 -1
  19. package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
  20. package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
  21. package/dist/agents/strategist/identity-constraints.d.ts +1 -1
  22. package/dist/agents/strategist/plan-generation.d.ts +1 -1
  23. package/dist/agents/types.d.ts +2 -1
  24. package/dist/config/defaults.d.ts +1 -0
  25. package/dist/config/platform-schema.d.ts +26 -26
  26. package/dist/config/schema/agent-names.d.ts +6 -6
  27. package/dist/config/schema/agent-overrides.d.ts +0 -128
  28. package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
  29. package/dist/config/types.d.ts +2 -2
  30. package/dist/features/background-agent/error-classifier.d.ts +1 -0
  31. package/dist/features/background-agent/manager-notifier.d.ts +46 -0
  32. package/dist/features/background-agent/manager-types.d.ts +40 -0
  33. package/dist/features/background-agent/manager.d.ts +3 -19
  34. package/dist/features/background-agent/polling-manager.d.ts +51 -0
  35. package/dist/features/boulder-state/constants.d.ts +3 -0
  36. package/dist/features/boulder-state/storage.d.ts +95 -0
  37. package/dist/features/boulder-state/types.d.ts +17 -0
  38. package/dist/features/builtin-commands/templates/doctor.d.ts +1 -1
  39. package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
  40. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  41. package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
  42. package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
  43. package/dist/hooks/manager/resolve-active-boulder-session.d.ts +5 -0
  44. package/dist/hooks/manager/system-reminder-templates.d.ts +2 -2
  45. package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
  46. package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
  47. package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
  48. package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
  49. package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
  50. package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
  51. package/dist/hooks/start-work/context-info-builder.d.ts +2 -0
  52. package/dist/hooks/start-work/git-operations.d.ts +47 -0
  53. package/dist/hooks/start-work/worktree-block.d.ts +2 -1
  54. package/dist/hooks/start-work/worktree-detector.d.ts +45 -0
  55. package/dist/hooks/strategist-md-only/agent-resolution.d.ts +1 -1
  56. package/dist/hooks/strategist-md-only/constants.d.ts +6 -0
  57. package/dist/hooks/token-budget.d.ts +30 -0
  58. package/dist/index.js +1275 -1132
  59. package/dist/mcp/rate-limiter.d.ts +68 -0
  60. package/dist/plugin/chat-message.d.ts +8 -0
  61. package/dist/plugin/command-execute-before.d.ts +1 -1
  62. package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
  63. package/dist/plugin/event-handlers/session-error.d.ts +2 -0
  64. package/dist/plugin/event-handlers/session-status.d.ts +2 -0
  65. package/dist/plugin/event-handlers/types.d.ts +62 -0
  66. package/dist/plugin/event-handlers/utils.d.ts +11 -0
  67. package/dist/plugin/event.d.ts +1 -1
  68. package/dist/shared/data-path.d.ts +1 -1
  69. package/dist/shared/errors.d.ts +70 -0
  70. package/dist/shared/extract-session-id.d.ts +8 -0
  71. package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
  72. package/dist/shared/index.d.ts +67 -68
  73. package/dist/shared/internal-initiator-marker.d.ts +1 -1
  74. package/dist/shared/logger.d.ts +5 -1
  75. package/dist/shared/reasoning-content-cache.d.ts +68 -0
  76. package/dist/shared/safe-create-hook.d.ts +4 -4
  77. package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
  78. package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
  79. package/dist/tools/look-at/constants.d.ts +1 -1
  80. package/docs/architecture/bob-manager-architecture.md +244 -0
  81. package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
  82. package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
  83. package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
  84. package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
  85. package/docs/hiai-opencode/api.md +305 -0
  86. package/docs/hiai-opencode/hooks-architecture.md +225 -0
  87. package/docs/hiai-opencode/migration.md +209 -0
  88. package/docs/quickstart.md +1 -1
  89. package/docs/skill-discovery.md +288 -0
  90. package/package.json +2 -2
  91. package/skills/agent-browser/SKILL.md +193 -0
  92. package/skills/apple-hig/SKILL.md +43 -0
  93. package/skills/article-magazine/SKILL.md +46 -0
  94. package/skills/article-magazine/example.html +81 -0
  95. package/skills/article-magazine/example.md +38 -0
  96. package/skills/canvas-design/SKILL.md +45 -0
  97. package/skills/design-templates/audio-jingle/SKILL.md +132 -0
  98. package/skills/design-templates/audio-jingle/example.html +128 -0
  99. package/skills/design-templates/blog-post/SKILL.md +80 -0
  100. package/skills/design-templates/blog-post/example.html +80 -0
  101. package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
  102. package/skills/design-templates/clinical-case-report/example.html +698 -0
  103. package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
  104. package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
  105. package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
  106. package/skills/design-templates/critique/SKILL.md +258 -0
  107. package/skills/design-templates/critique/example.html +671 -0
  108. package/skills/design-templates/dashboard/SKILL.md +76 -0
  109. package/skills/design-templates/dashboard/example.html +118 -0
  110. package/skills/design-templates/dating-web/SKILL.md +92 -0
  111. package/skills/design-templates/dating-web/example.html +265 -0
  112. package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
  113. package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
  114. package/skills/design-templates/digital-eguide/SKILL.md +94 -0
  115. package/skills/design-templates/digital-eguide/example.html +204 -0
  116. package/skills/design-templates/docs-page/SKILL.md +80 -0
  117. package/skills/design-templates/docs-page/example.html +122 -0
  118. package/skills/design-templates/email-marketing/SKILL.md +84 -0
  119. package/skills/design-templates/email-marketing/example.html +159 -0
  120. package/skills/design-templates/eng-runbook/SKILL.md +51 -0
  121. package/skills/design-templates/eng-runbook/example.html +250 -0
  122. package/skills/design-templates/finance-report/SKILL.md +61 -0
  123. package/skills/design-templates/finance-report/example.html +242 -0
  124. package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
  125. package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
  126. package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
  127. package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
  128. package/skills/design-templates/gamified-app/SKILL.md +108 -0
  129. package/skills/design-templates/gamified-app/example.html +292 -0
  130. package/skills/design-templates/github-dashboard/SKILL.md +130 -0
  131. package/skills/design-templates/github-dashboard/example.html +473 -0
  132. package/skills/design-templates/github-dashboard/references/README.md +10 -0
  133. package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
  134. package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
  135. package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
  136. package/skills/design-templates/github-dashboard/references/template.html +473 -0
  137. package/skills/design-templates/guizang-ppt/LICENSE +21 -0
  138. package/skills/design-templates/guizang-ppt/README.en.md +119 -0
  139. package/skills/design-templates/guizang-ppt/README.md +120 -0
  140. package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
  141. package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
  142. package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
  143. package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
  144. package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
  145. package/skills/design-templates/guizang-ppt/references/components.md +363 -0
  146. package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
  147. package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
  148. package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
  149. package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
  150. package/skills/design-templates/hr-onboarding/example.html +219 -0
  151. package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
  152. package/skills/design-templates/html-ppt/LICENSE +21 -0
  153. package/skills/design-templates/html-ppt/README.md +234 -0
  154. package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
  155. package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
  156. package/skills/design-templates/html-ppt/SKILL.md +250 -0
  157. package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
  158. package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
  159. package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
  160. package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
  161. package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
  162. package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
  163. package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
  164. package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
  165. package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
  166. package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
  167. package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
  168. package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
  169. package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
  170. package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
  171. package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
  172. package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
  173. package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
  174. package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
  175. package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
  176. package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
  177. package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
  178. package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
  179. package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
  180. package/skills/design-templates/html-ppt/assets/base.css +150 -0
  181. package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
  182. package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
  183. package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
  184. package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
  185. package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
  186. package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
  187. package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
  188. package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
  189. package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
  190. package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
  191. package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
  192. package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
  193. package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
  194. package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
  195. package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
  196. package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
  197. package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
  198. package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
  199. package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
  200. package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
  201. package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
  202. package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
  203. package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
  204. package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
  205. package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
  206. package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
  207. package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
  208. package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
  209. package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
  210. package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
  211. package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
  212. package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
  213. package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
  214. package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
  215. package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
  216. package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
  217. package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
  218. package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
  219. package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
  220. package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
  221. package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
  222. package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
  223. package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
  224. package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
  225. package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
  226. package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
  227. package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
  228. package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
  229. package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
  230. package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
  231. package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
  232. package/skills/design-templates/html-ppt/references/animations.md +147 -0
  233. package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
  234. package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
  235. package/skills/design-templates/html-ppt/references/layouts.md +103 -0
  236. package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
  237. package/skills/design-templates/html-ppt/references/themes.md +107 -0
  238. package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
  239. package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
  240. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
  241. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
  242. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
  243. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
  244. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
  245. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
  246. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
  247. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
  248. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
  249. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
  250. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
  251. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
  252. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
  253. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
  254. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
  255. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
  256. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
  257. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
  258. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
  259. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
  260. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
  261. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
  262. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
  263. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
  264. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
  265. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
  266. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
  267. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
  268. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
  269. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
  270. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
  271. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
  272. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
  273. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
  274. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
  275. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
  276. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
  277. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
  278. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
  279. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
  280. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
  281. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
  282. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
  283. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
  284. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
  285. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
  286. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
  287. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
  288. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
  289. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
  290. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
  291. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
  292. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
  293. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
  294. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
  295. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
  296. package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
  297. package/skills/design-templates/html-ppt/templates/deck.html +69 -0
  298. package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
  299. package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
  300. package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
  301. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
  302. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
  303. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
  304. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
  305. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
  306. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
  307. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
  308. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
  309. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
  310. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
  311. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
  312. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
  313. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
  314. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
  315. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
  316. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
  317. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
  318. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
  319. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
  320. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
  321. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
  322. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
  323. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
  324. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
  325. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
  326. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
  327. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
  328. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
  329. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
  330. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
  331. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
  332. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
  333. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
  334. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
  335. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
  336. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
  337. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
  338. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
  339. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
  340. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
  341. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
  342. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
  343. package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
  344. package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
  345. package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
  346. package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
  347. package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
  348. package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
  349. package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
  350. package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
  351. package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
  352. package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
  353. package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
  354. package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
  355. package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
  356. package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
  357. package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
  358. package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
  359. package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
  360. package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
  361. package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
  362. package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
  363. package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
  364. package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
  365. package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
  366. package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
  367. package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
  368. package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
  369. package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
  370. package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
  371. package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
  372. package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
  373. package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
  374. package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
  375. package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
  376. package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
  377. package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
  378. package/skills/design-templates/html-ppt-course-module/example.html +542 -0
  379. package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
  380. package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
  381. package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
  382. package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
  383. package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
  384. package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
  385. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
  386. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
  387. package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
  388. package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
  389. package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
  390. package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
  391. package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
  392. package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
  393. package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
  394. package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
  395. package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
  396. package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
  397. package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
  398. package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
  399. package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
  400. package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
  401. package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
  402. package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
  403. package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
  404. package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
  405. package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
  406. package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
  407. package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
  408. package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
  409. package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
  410. package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
  411. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
  412. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
  413. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
  414. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
  415. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
  416. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
  417. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
  418. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
  419. package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
  420. package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
  421. package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
  422. package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
  423. package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
  424. package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
  425. package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
  426. package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
  427. package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
  428. package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
  429. package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
  430. package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
  431. package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
  432. package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
  433. package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
  434. package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
  435. package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
  436. package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
  437. package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
  438. package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
  439. package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
  440. package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
  441. package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
  442. package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
  443. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
  444. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
  445. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
  446. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
  447. package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
  448. package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
  449. package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
  450. package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
  451. package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
  452. package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
  453. package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
  454. package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
  455. package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
  456. package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
  457. package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
  458. package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
  459. package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
  460. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
  461. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
  462. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
  463. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
  464. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
  465. package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
  466. package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
  467. package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
  468. package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
  469. package/skills/figma-code-connect-components/SKILL.md +42 -0
  470. package/skills/figma-create-design-system-rules/SKILL.md +42 -0
  471. package/skills/figma-create-new-file/SKILL.md +41 -0
  472. package/skills/figma-generate-design/SKILL.md +42 -0
  473. package/skills/figma-generate-library/SKILL.md +42 -0
  474. package/skills/figma-implement-design/SKILL.md +42 -0
  475. package/skills/figma-use/SKILL.md +42 -0
  476. package/skills/full-page-screenshot/SKILL.md +42 -0
  477. package/skills/interview-me/SKILL.md +64 -0
  478. package/skills/planning-and-task-breakdown/SKILL.md +52 -0
  479. package/skills/sora/SKILL.md +43 -0
  480. package/skills/theme-factory/SKILL.md +43 -0
  481. package/skills/web-design-guidelines/SKILL.md +42 -0
  482. package/dist/agents/prompt-library/orchestration.d.ts +0 -4
  483. package/skills/brainstorming/SKILL.md +0 -164
  484. package/skills/brainstorming/scripts/frame-template.html +0 -214
  485. package/skills/brainstorming/scripts/helper.js +0 -88
  486. package/skills/brainstorming/scripts/server.cjs +0 -354
  487. package/skills/brainstorming/scripts/start-server.sh +0 -148
  488. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  489. package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  490. package/skills/brainstorming/visual-companion.md +0 -287
@@ -0,0 +1,1453 @@
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.0">
6
+ <title>BlockFrame — Neobrutalist Presentation Template</title>
7
+ <style>
8
+ @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800;900&display=swap');
9
+
10
+ :root {
11
+ --pink: #FE90E8;
12
+ --blue: #C0F7FE;
13
+ --green: #99E885;
14
+ --yellow: #F7CB46;
15
+ --cream: #FFDC8B;
16
+ --black: #000000;
17
+ --white: #FFFFFF;
18
+ --offwhite: #FFFDF5;
19
+ --border: 4px solid var(--black);
20
+ --shadow: 8px 8px 0px var(--black);
21
+ --shadow-sm: 4px 4px 0px var(--black);
22
+ --radius: 0px;
23
+ --radius-sm: 4px;
24
+ }
25
+
26
+ * {
27
+ margin: 0;
28
+ padding: 0;
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ html, body {
33
+ height: 100%;
34
+ overflow: hidden;
35
+ font-family: 'Inter', sans-serif;
36
+ background: var(--offwhite);
37
+ color: var(--black);
38
+ }
39
+
40
+ /* Slide container */
41
+ .slides-container {
42
+ position: relative;
43
+ width: 100vw;
44
+ height: 100vh;
45
+ }
46
+
47
+ .slide {
48
+ position: absolute;
49
+ top: 0;
50
+ left: 0;
51
+ width: 100vw;
52
+ height: 100vh;
53
+ display: none;
54
+ padding: 60px;
55
+ overflow: hidden;
56
+ }
57
+
58
+ .slide.active {
59
+ display: flex;
60
+ }
61
+
62
+ /* Dot grid background pattern */
63
+ .dot-grid {
64
+ background-image: radial-gradient(circle, var(--black) 1.2px, transparent 1.2px);
65
+ background-size: 24px 24px;
66
+ }
67
+
68
+ /* Navigation */
69
+ .nav-controls {
70
+ position: fixed;
71
+ bottom: 24px;
72
+ right: 24px;
73
+ display: flex;
74
+ gap: 12px;
75
+ z-index: 1000;
76
+ }
77
+
78
+ .nav-btn {
79
+ width: 48px;
80
+ height: 48px;
81
+ border: 3px solid var(--black);
82
+ background: var(--white);
83
+ cursor: pointer;
84
+ font-family: 'Inter', sans-serif;
85
+ font-weight: 700;
86
+ font-size: 18px;
87
+ display: flex;
88
+ align-items: center;
89
+ justify-content: center;
90
+ transition: all 0.15s ease;
91
+ box-shadow: var(--shadow-sm);
92
+ }
93
+
94
+ .nav-btn:hover {
95
+ transform: translate(-2px, -2px);
96
+ box-shadow: 6px 6px 0px var(--black);
97
+ }
98
+
99
+ .nav-btn:active {
100
+ transform: translate(2px, 2px);
101
+ box-shadow: 2px 2px 0px var(--black);
102
+ }
103
+
104
+ .slide-counter {
105
+ position: fixed;
106
+ bottom: 24px;
107
+ left: 24px;
108
+ z-index: 1000;
109
+ font-family: 'Space Grotesk', monospace;
110
+ font-weight: 700;
111
+ font-size: 14px;
112
+ letter-spacing: 0.1em;
113
+ text-transform: uppercase;
114
+ border: 3px solid var(--black);
115
+ background: var(--white);
116
+ padding: 10px 18px;
117
+ box-shadow: var(--shadow-sm);
118
+ }
119
+
120
+ /* ============ UTILITY COMPONENTS ============ */
121
+
122
+ .nb-card {
123
+ border: var(--border);
124
+ background: var(--white);
125
+ box-shadow: var(--shadow);
126
+ }
127
+
128
+ .nb-card-flat {
129
+ border: var(--border);
130
+ background: var(--white);
131
+ }
132
+
133
+ .nb-label {
134
+ display: inline-block;
135
+ border: 3px solid var(--black);
136
+ padding: 6px 16px;
137
+ font-family: 'Space Grotesk', monospace;
138
+ font-size: 13px;
139
+ font-weight: 600;
140
+ letter-spacing: 0.08em;
141
+ text-transform: uppercase;
142
+ background: var(--white);
143
+ box-shadow: var(--shadow-sm);
144
+ }
145
+
146
+ .nb-label-pink { background: var(--pink); }
147
+ .nb-label-blue { background: var(--blue); }
148
+ .nb-label-green { background: var(--green); }
149
+ .nb-label-yellow { background: var(--yellow); }
150
+ .nb-label-cream { background: var(--cream); }
151
+
152
+ .nb-btn {
153
+ display: inline-block;
154
+ border: 3px solid var(--black);
155
+ padding: 14px 32px;
156
+ font-family: 'Inter', sans-serif;
157
+ font-weight: 700;
158
+ font-size: 16px;
159
+ text-decoration: none;
160
+ color: var(--black);
161
+ background: var(--yellow);
162
+ box-shadow: var(--shadow-sm);
163
+ cursor: pointer;
164
+ transition: all 0.15s ease;
165
+ }
166
+
167
+ .nb-btn:hover {
168
+ transform: translate(-2px, -2px);
169
+ box-shadow: 6px 6px 0px var(--black);
170
+ }
171
+
172
+ .nb-heading-xl {
173
+ font-family: 'Inter', sans-serif;
174
+ font-weight: 900;
175
+ font-size: clamp(48px, 6vw, 96px);
176
+ line-height: 0.95;
177
+ letter-spacing: -0.03em;
178
+ text-transform: uppercase;
179
+ }
180
+
181
+ .nb-heading-lg {
182
+ font-family: 'Inter', sans-serif;
183
+ font-weight: 800;
184
+ font-size: clamp(32px, 4vw, 64px);
185
+ line-height: 1.0;
186
+ letter-spacing: -0.02em;
187
+ text-transform: uppercase;
188
+ }
189
+
190
+ .nb-heading-md {
191
+ font-family: 'Inter', sans-serif;
192
+ font-weight: 700;
193
+ font-size: clamp(24px, 2.5vw, 40px);
194
+ line-height: 1.1;
195
+ letter-spacing: -0.01em;
196
+ }
197
+
198
+ .nb-body {
199
+ font-family: 'Inter', sans-serif;
200
+ font-size: clamp(16px, 1.2vw, 20px);
201
+ line-height: 1.6;
202
+ font-weight: 500;
203
+ }
204
+
205
+ .nb-mono {
206
+ font-family: 'Space Grotesk', monospace;
207
+ font-weight: 500;
208
+ font-size: 15px;
209
+ letter-spacing: 0.02em;
210
+ }
211
+
212
+ /* Decorative elements */
213
+ .deco-circle {
214
+ border-radius: 50%;
215
+ border: var(--border);
216
+ }
217
+
218
+ .deco-square {
219
+ border: var(--border);
220
+ }
221
+
222
+ .tilt-left { transform: rotate(-8deg); }
223
+ .tilt-right { transform: rotate(8deg); }
224
+
225
+ .corner-bracket {
226
+ position: absolute;
227
+ width: 24px;
228
+ height: 24px;
229
+ border: 3px solid var(--black);
230
+ }
231
+ .corner-bracket.tl { border-right: none; border-bottom: none; top: 0; left: 0; }
232
+ .corner-bracket.tr { border-left: none; border-bottom: none; top: 0; right: 0; }
233
+ .corner-bracket.bl { border-right: none; border-top: none; bottom: 0; left: 0; }
234
+ .corner-bracket.br { border-left: none; border-top: none; bottom: 0; right: 0; }
235
+
236
+ /* ============ SLIDE 1: TITLE HERO ============ */
237
+ .slide-1 {
238
+ flex-direction: column;
239
+ justify-content: center;
240
+ align-items: center;
241
+ background: var(--cream);
242
+ position: relative;
243
+ }
244
+
245
+ .slide-1 .hero-frame {
246
+ position: relative;
247
+ width: 100%;
248
+ max-width: 900px;
249
+ border: var(--border);
250
+ background: var(--offwhite);
251
+ padding: 60px;
252
+ box-shadow: var(--shadow);
253
+ }
254
+
255
+ .slide-1 .hero-label {
256
+ margin-bottom: 24px;
257
+ }
258
+
259
+ .slide-1 .hero-title {
260
+ margin-bottom: 32px;
261
+ }
262
+
263
+ .slide-1 .hero-subtitle {
264
+ font-family: 'Space Grotesk', monospace;
265
+ font-size: 18px;
266
+ font-weight: 500;
267
+ max-width: 500px;
268
+ }
269
+
270
+ .slide-1 .deco-pink-rect {
271
+ position: absolute;
272
+ top: -30px;
273
+ right: 80px;
274
+ width: 100px;
275
+ height: 100px;
276
+ background: var(--pink);
277
+ border: var(--border);
278
+ box-shadow: var(--shadow-sm);
279
+ transform: rotate(12deg);
280
+ }
281
+
282
+ .slide-1 .deco-green-circle {
283
+ position: absolute;
284
+ bottom: 60px;
285
+ right: 120px;
286
+ width: 60px;
287
+ height: 60px;
288
+ background: var(--green);
289
+ border: var(--border);
290
+ border-radius: 50%;
291
+ }
292
+
293
+ .slide-1 .deco-yellow-bar {
294
+ /* Sits as a tab on the bottom edge of the hero-frame, OUTSIDE
295
+ the content area so it never collides with the subtitle. */
296
+ position: absolute;
297
+ bottom: -18px;
298
+ left: 80px;
299
+ width: 140px;
300
+ height: 36px;
301
+ background: var(--yellow);
302
+ border: var(--border);
303
+ box-shadow: var(--shadow-sm);
304
+ transform: rotate(-3deg);
305
+ display: flex;
306
+ align-items: center;
307
+ justify-content: center;
308
+ font-family: 'Space Grotesk', monospace;
309
+ font-size: 13px;
310
+ font-weight: 600;
311
+ z-index: 5;
312
+ }
313
+
314
+ .slide-1 .deco-dots {
315
+ position: absolute;
316
+ top: 60px;
317
+ left: 60px;
318
+ width: 120px;
319
+ height: 80px;
320
+ background-image: radial-gradient(circle, var(--black) 2px, transparent 2px);
321
+ background-size: 20px 20px;
322
+ opacity: 0.4;
323
+ }
324
+
325
+ /* ============ SLIDE 2: TWO COLUMN INTRO ============ */
326
+ .slide-2 {
327
+ background: var(--blue);
328
+ flex-direction: row;
329
+ gap: 48px;
330
+ align-items: center;
331
+ }
332
+
333
+ .slide-2 .col-left {
334
+ flex: 1;
335
+ display: flex;
336
+ flex-direction: column;
337
+ gap: 24px;
338
+ }
339
+
340
+ .slide-2 .col-right {
341
+ flex: 1;
342
+ display: flex;
343
+ flex-direction: column;
344
+ gap: 20px;
345
+ }
346
+
347
+ .slide-2 .intro-card {
348
+ border: var(--border);
349
+ background: var(--white);
350
+ padding: 28px;
351
+ box-shadow: var(--shadow-sm);
352
+ }
353
+
354
+ .slide-2 .intro-card h3 {
355
+ font-family: 'Inter', sans-serif;
356
+ font-weight: 700;
357
+ font-size: 20px;
358
+ margin-bottom: 12px;
359
+ text-transform: uppercase;
360
+ }
361
+
362
+ .slide-2 .intro-card p {
363
+ font-size: 15px;
364
+ line-height: 1.6;
365
+ font-weight: 500;
366
+ }
367
+
368
+ .slide-2 .stat-pill {
369
+ display: inline-flex;
370
+ align-items: center;
371
+ gap: 8px;
372
+ border: 3px solid var(--black);
373
+ padding: 10px 20px;
374
+ background: var(--yellow);
375
+ font-family: 'Space Grotesk', monospace;
376
+ font-size: 14px;
377
+ font-weight: 600;
378
+ }
379
+
380
+ /* ============ SLIDE 3: THREE FEATURE CARDS ============ */
381
+ .slide-3 {
382
+ background: var(--offwhite);
383
+ flex-direction: column;
384
+ justify-content: center;
385
+ }
386
+
387
+ .slide-3 .slide-header {
388
+ margin-bottom: 48px;
389
+ }
390
+
391
+ .slide-3 .cards-row {
392
+ display: flex;
393
+ gap: 32px;
394
+ width: 100%;
395
+ }
396
+
397
+ .slide-3 .feature-card {
398
+ flex: 1;
399
+ border: var(--border);
400
+ background: var(--white);
401
+ padding: 36px;
402
+ box-shadow: var(--shadow);
403
+ position: relative;
404
+ }
405
+
406
+ .slide-3 .feature-icon {
407
+ width: 64px;
408
+ height: 64px;
409
+ border: 3px solid var(--black);
410
+ margin-bottom: 24px;
411
+ display: flex;
412
+ align-items: center;
413
+ justify-content: center;
414
+ font-size: 28px;
415
+ font-weight: 700;
416
+ }
417
+
418
+ .slide-3 .icon-pink { background: var(--pink); }
419
+ .slide-3 .icon-blue { background: var(--blue); }
420
+ .slide-3 .icon-green { background: var(--green); }
421
+
422
+ .slide-3 .feature-card h3 {
423
+ font-family: 'Inter', sans-serif;
424
+ font-weight: 700;
425
+ font-size: 22px;
426
+ margin-bottom: 14px;
427
+ text-transform: uppercase;
428
+ }
429
+
430
+ .slide-3 .feature-card p {
431
+ font-size: 15px;
432
+ line-height: 1.6;
433
+ font-weight: 500;
434
+ }
435
+
436
+ .slide-3 .card-deco {
437
+ position: absolute;
438
+ top: -12px;
439
+ right: 24px;
440
+ width: 48px;
441
+ height: 48px;
442
+ border: 3px solid var(--black);
443
+ background: var(--yellow);
444
+ }
445
+
446
+ /* ============ SLIDE 4: CHART / DATA ============ */
447
+ .slide-4 {
448
+ background: var(--green);
449
+ flex-direction: column;
450
+ justify-content: center;
451
+ /* Reserve space for the shadow + the bottom-fixed nav chrome
452
+ so the chart-frame never butts up against the slide edge. */
453
+ padding-bottom: 110px;
454
+ }
455
+
456
+ .slide-4 .chart-frame {
457
+ border: var(--border);
458
+ background: var(--white);
459
+ box-shadow: var(--shadow);
460
+ padding: 32px 40px;
461
+ width: calc(100% - 16px);
462
+ max-width: 1200px;
463
+ margin: 0 auto;
464
+ /* Cap the frame so it always fits inside the slide content area
465
+ (slide is 100vh - 60 top - 110 bottom = ~70vh available). */
466
+ max-height: 70vh;
467
+ display: flex;
468
+ flex-direction: column;
469
+ gap: 20px;
470
+ overflow: hidden;
471
+ }
472
+
473
+ .slide-4 .chart-header {
474
+ display: flex;
475
+ justify-content: space-between;
476
+ align-items: flex-start;
477
+ flex-shrink: 0;
478
+ }
479
+
480
+ .slide-4 .chart-legend {
481
+ display: flex;
482
+ gap: 16px;
483
+ }
484
+
485
+ .slide-4 .legend-item {
486
+ display: flex;
487
+ align-items: center;
488
+ gap: 6px;
489
+ font-family: 'Space Grotesk', monospace;
490
+ font-size: 13px;
491
+ font-weight: 600;
492
+ }
493
+
494
+ .slide-4 .legend-swatch {
495
+ width: 16px;
496
+ height: 16px;
497
+ border: 2px solid var(--black);
498
+ }
499
+
500
+ /* Chart body — chart on the left, stat boxes stacked on the right.
501
+ This is a flex row that fills the remaining space below the header. */
502
+ .slide-4 .chart-body {
503
+ display: flex;
504
+ gap: 32px;
505
+ flex: 1 1 auto;
506
+ min-height: 0;
507
+ align-items: stretch;
508
+ width: 100%;
509
+ }
510
+
511
+ /* SVG Chart — fills the left side of chart-body. Width auto-derives
512
+ from viewBox aspect; flex-1 lets it claim available width. */
513
+ .chart-svg {
514
+ display: block;
515
+ flex: 1 1 auto;
516
+ min-width: 0;
517
+ min-height: 0;
518
+ width: 100%;
519
+ height: 100%;
520
+ max-width: 100%;
521
+ max-height: 100%;
522
+ }
523
+
524
+ /* Data column — vertical stack of stat boxes on the right. */
525
+ .slide-4 .data-column {
526
+ display: flex;
527
+ flex-direction: column;
528
+ gap: 16px;
529
+ flex: 0 0 240px;
530
+ width: 240px;
531
+ min-width: 0;
532
+ }
533
+
534
+ .slide-4 .data-box {
535
+ flex: 1 1 0;
536
+ min-height: 0;
537
+ border: 3px solid var(--black);
538
+ background: var(--cream);
539
+ padding: 18px 20px;
540
+ text-align: center;
541
+ display: flex;
542
+ flex-direction: column;
543
+ justify-content: center;
544
+ gap: 6px;
545
+ }
546
+
547
+ .slide-4 .data-box .data-num {
548
+ font-family: 'Inter', sans-serif;
549
+ font-weight: 900;
550
+ font-size: 36px;
551
+ display: block;
552
+ margin-bottom: 4px;
553
+ }
554
+
555
+ .slide-4 .data-box .data-label {
556
+ font-family: 'Space Grotesk', monospace;
557
+ font-size: 13px;
558
+ font-weight: 600;
559
+ text-transform: uppercase;
560
+ }
561
+
562
+ /* ============ SLIDE 5: BIG STATEMENT / QUOTE ============ */
563
+ .slide-5 {
564
+ background: var(--pink);
565
+ flex-direction: column;
566
+ justify-content: center;
567
+ align-items: center;
568
+ text-align: center;
569
+ position: relative;
570
+ }
571
+
572
+ .slide-5 .quote-frame {
573
+ border: var(--border);
574
+ background: var(--white);
575
+ padding: 60px 80px;
576
+ box-shadow: var(--shadow);
577
+ max-width: 1000px;
578
+ position: relative;
579
+ }
580
+
581
+ .slide-5 .quote-text {
582
+ font-family: 'Inter', sans-serif;
583
+ font-weight: 900;
584
+ font-size: clamp(28px, 3.5vw, 52px);
585
+ line-height: 1.15;
586
+ letter-spacing: -0.02em;
587
+ text-transform: uppercase;
588
+ margin-bottom: 32px;
589
+ }
590
+
591
+ .slide-5 .quote-author {
592
+ font-family: 'Space Grotesk', monospace;
593
+ font-size: 15px;
594
+ font-weight: 600;
595
+ letter-spacing: 0.05em;
596
+ text-transform: uppercase;
597
+ }
598
+
599
+ .slide-5 .deco-quote-marks {
600
+ position: absolute;
601
+ top: -30px;
602
+ left: 40px;
603
+ font-size: 120px;
604
+ font-weight: 900;
605
+ line-height: 1;
606
+ color: var(--yellow);
607
+ -webkit-text-stroke: 3px var(--black);
608
+ }
609
+
610
+ .slide-5 .deco-stripes {
611
+ position: absolute;
612
+ bottom: 60px;
613
+ right: 60px;
614
+ width: 80px;
615
+ height: 80px;
616
+ background: repeating-linear-gradient(
617
+ 45deg,
618
+ var(--black),
619
+ var(--black) 4px,
620
+ var(--green) 4px,
621
+ var(--green) 12px
622
+ );
623
+ border: 3px solid var(--black);
624
+ }
625
+
626
+ /* ============ SLIDE 6: SPLIT IMAGE + TEXT ============ */
627
+ .slide-6 {
628
+ background: var(--yellow);
629
+ flex-direction: row;
630
+ gap: 0;
631
+ padding: 0;
632
+ }
633
+
634
+ .slide-6 .split-visual {
635
+ flex: 1;
636
+ background: var(--black);
637
+ display: flex;
638
+ flex-direction: column;
639
+ align-items: center;
640
+ justify-content: center;
641
+ padding: 60px;
642
+ position: relative;
643
+ overflow: hidden;
644
+ }
645
+
646
+ .slide-6 .split-visual .visual-box {
647
+ width: 100%;
648
+ max-width: 400px;
649
+ aspect-ratio: 1;
650
+ border: 4px solid var(--white);
651
+ background: var(--pink);
652
+ display: flex;
653
+ align-items: center;
654
+ justify-content: center;
655
+ position: relative;
656
+ }
657
+
658
+ .slide-6 .split-visual .visual-box::after {
659
+ content: '';
660
+ position: absolute;
661
+ top: 20px;
662
+ left: 20px;
663
+ width: 100%;
664
+ height: 100%;
665
+ background: var(--blue);
666
+ border: 4px solid var(--white);
667
+ z-index: -1;
668
+ }
669
+
670
+ .slide-6 .split-visual .visual-label {
671
+ /* Top-right of the dark panel so it never collides with the
672
+ fixed slide-counter pill at bottom-left of the viewport. */
673
+ position: absolute;
674
+ top: 40px;
675
+ right: 40px;
676
+ border: 3px solid var(--white);
677
+ background: var(--green);
678
+ color: var(--black);
679
+ padding: 8px 16px;
680
+ font-family: 'Space Grotesk', monospace;
681
+ font-size: 13px;
682
+ font-weight: 600;
683
+ transform: rotate(-4deg);
684
+ }
685
+
686
+ .slide-6 .split-content {
687
+ flex: 1;
688
+ padding: 60px;
689
+ display: flex;
690
+ flex-direction: column;
691
+ justify-content: center;
692
+ gap: 28px;
693
+ background: var(--offwhite);
694
+ border-left: var(--border);
695
+ }
696
+
697
+ .slide-6 .content-list {
698
+ list-style: none;
699
+ display: flex;
700
+ flex-direction: column;
701
+ gap: 16px;
702
+ }
703
+
704
+ .slide-6 .content-list li {
705
+ display: flex;
706
+ align-items: flex-start;
707
+ gap: 14px;
708
+ font-size: 16px;
709
+ line-height: 1.5;
710
+ font-weight: 500;
711
+ }
712
+
713
+ .slide-6 .content-list .list-num {
714
+ flex-shrink: 0;
715
+ width: 36px;
716
+ height: 36px;
717
+ border: 3px solid var(--black);
718
+ background: var(--yellow);
719
+ display: flex;
720
+ align-items: center;
721
+ justify-content: center;
722
+ font-family: 'Space Grotesk', monospace;
723
+ font-weight: 700;
724
+ font-size: 14px;
725
+ }
726
+
727
+ /* ============ SLIDE 7: TIMELINE / PROCESS ============ */
728
+ .slide-7 {
729
+ background: var(--offwhite);
730
+ flex-direction: column;
731
+ justify-content: center;
732
+ }
733
+
734
+ .slide-7 .slide-header {
735
+ margin-bottom: 48px;
736
+ }
737
+
738
+ .slide-7 .timeline {
739
+ display: flex;
740
+ gap: 0;
741
+ width: 100%;
742
+ }
743
+
744
+ .slide-7 .timeline-step {
745
+ flex: 1;
746
+ border: var(--border);
747
+ background: var(--white);
748
+ padding: 32px;
749
+ box-shadow: var(--shadow-sm);
750
+ position: relative;
751
+ margin-right: -4px;
752
+ }
753
+
754
+ .slide-7 .timeline-step:first-child {
755
+ background: var(--blue);
756
+ }
757
+
758
+ .slide-7 .timeline-step:nth-child(2) {
759
+ background: var(--pink);
760
+ }
761
+
762
+ .slide-7 .timeline-step:nth-child(3) {
763
+ background: var(--green);
764
+ }
765
+
766
+ .slide-7 .timeline-step:nth-child(4) {
767
+ background: var(--yellow);
768
+ margin-right: 0;
769
+ }
770
+
771
+ .slide-7 .step-num {
772
+ font-family: 'Inter', sans-serif;
773
+ font-weight: 900;
774
+ font-size: 48px;
775
+ line-height: 1;
776
+ margin-bottom: 16px;
777
+ opacity: 0.6;
778
+ }
779
+
780
+ .slide-7 .step-title {
781
+ font-family: 'Inter', sans-serif;
782
+ font-weight: 700;
783
+ font-size: 20px;
784
+ text-transform: uppercase;
785
+ margin-bottom: 10px;
786
+ }
787
+
788
+ .slide-7 .step-desc {
789
+ font-size: 14px;
790
+ line-height: 1.5;
791
+ font-weight: 500;
792
+ }
793
+
794
+ .slide-7 .step-connector {
795
+ position: absolute;
796
+ top: 50%;
797
+ right: -28px;
798
+ width: 28px;
799
+ height: 4px;
800
+ background: var(--black);
801
+ z-index: 10;
802
+ transform: translateY(-50%);
803
+ }
804
+
805
+ /* ============ SLIDE 8: STATISTICS / NUMBERS ============ */
806
+ .slide-8 {
807
+ background: var(--blue);
808
+ flex-direction: column;
809
+ justify-content: center;
810
+ }
811
+
812
+ .slide-8 .slide-header {
813
+ margin-bottom: 48px;
814
+ }
815
+
816
+ .slide-8 .stats-grid {
817
+ display: grid;
818
+ grid-template-columns: repeat(4, 1fr);
819
+ gap: 24px;
820
+ width: 100%;
821
+ }
822
+
823
+ .slide-8 .stat-card {
824
+ border: var(--border);
825
+ background: var(--white);
826
+ padding: 32px;
827
+ box-shadow: var(--shadow-sm);
828
+ text-align: center;
829
+ position: relative;
830
+ }
831
+
832
+ .slide-8 .stat-card:nth-child(odd) {
833
+ transform: rotate(-2deg);
834
+ }
835
+
836
+ .slide-8 .stat-card:nth-child(even) {
837
+ transform: rotate(2deg);
838
+ }
839
+
840
+ .slide-8 .stat-number {
841
+ font-family: 'Inter', sans-serif;
842
+ font-weight: 900;
843
+ font-size: clamp(36px, 4vw, 64px);
844
+ line-height: 1;
845
+ margin-bottom: 12px;
846
+ }
847
+
848
+ .slide-8 .stat-label {
849
+ font-family: 'Space Grotesk', monospace;
850
+ font-size: 13px;
851
+ font-weight: 600;
852
+ text-transform: uppercase;
853
+ letter-spacing: 0.05em;
854
+ }
855
+
856
+ .slide-8 .stat-deco {
857
+ position: absolute;
858
+ top: 8px;
859
+ right: 8px;
860
+ width: 12px;
861
+ height: 12px;
862
+ border-radius: 50%;
863
+ border: 2px solid var(--black);
864
+ }
865
+
866
+ /* ============ SLIDE 9: TEAM / GRID ============ */
867
+ .slide-9 {
868
+ background: var(--cream);
869
+ flex-direction: column;
870
+ justify-content: center;
871
+ /* Extra bottom padding so the second card row clears the fixed
872
+ slide-counter (bottom-left) and nav-controls (bottom-right). */
873
+ padding-bottom: 110px;
874
+ }
875
+
876
+ .slide-9 .slide-header {
877
+ margin-bottom: 32px;
878
+ }
879
+
880
+ .slide-9 .team-grid {
881
+ display: grid;
882
+ grid-template-columns: repeat(3, 1fr);
883
+ gap: 20px;
884
+ width: 100%;
885
+ }
886
+
887
+ .slide-9 .team-card {
888
+ border: var(--border);
889
+ background: var(--white);
890
+ padding: 22px;
891
+ box-shadow: var(--shadow-sm);
892
+ display: flex;
893
+ flex-direction: column;
894
+ gap: 10px;
895
+ min-width: 0;
896
+ }
897
+
898
+ .slide-9 .team-avatar {
899
+ width: 72px;
900
+ height: 72px;
901
+ border: 3px solid var(--black);
902
+ background: var(--pink);
903
+ display: flex;
904
+ align-items: center;
905
+ justify-content: center;
906
+ font-family: 'Inter', sans-serif;
907
+ font-weight: 900;
908
+ font-size: 28px;
909
+ text-transform: uppercase;
910
+ }
911
+
912
+ .slide-9 .team-card:nth-child(2) .team-avatar { background: var(--blue); }
913
+ .slide-9 .team-card:nth-child(3) .team-avatar { background: var(--green); }
914
+ .slide-9 .team-card:nth-child(4) .team-avatar { background: var(--yellow); }
915
+ .slide-9 .team-card:nth-child(5) .team-avatar { background: var(--pink); }
916
+ .slide-9 .team-card:nth-child(6) .team-avatar { background: var(--blue); }
917
+
918
+ .slide-9 .team-name {
919
+ font-family: 'Inter', sans-serif;
920
+ font-weight: 700;
921
+ font-size: 20px;
922
+ text-transform: uppercase;
923
+ }
924
+
925
+ .slide-9 .team-role {
926
+ font-family: 'Space Grotesk', monospace;
927
+ font-size: 14px;
928
+ font-weight: 500;
929
+ text-transform: uppercase;
930
+ letter-spacing: 0.05em;
931
+ }
932
+
933
+ .slide-9 .team-bio {
934
+ font-size: 13px;
935
+ line-height: 1.45;
936
+ font-weight: 500;
937
+ }
938
+
939
+ /* ============ SLIDE 10: CLOSING ============ */
940
+ .slide-10 {
941
+ background: var(--black);
942
+ flex-direction: column;
943
+ justify-content: center;
944
+ align-items: center;
945
+ text-align: center;
946
+ color: var(--white);
947
+ }
948
+
949
+ .slide-10 .close-frame {
950
+ border: 4px solid var(--white);
951
+ background: var(--black);
952
+ padding: 60px 80px;
953
+ box-shadow: 12px 12px 0px var(--yellow);
954
+ position: relative;
955
+ }
956
+
957
+ .slide-10 .close-title {
958
+ font-family: 'Inter', sans-serif;
959
+ font-weight: 900;
960
+ font-size: clamp(40px, 5vw, 80px);
961
+ line-height: 0.95;
962
+ letter-spacing: -0.03em;
963
+ text-transform: uppercase;
964
+ color: var(--white);
965
+ margin-bottom: 24px;
966
+ }
967
+
968
+ .slide-10 .close-subtitle {
969
+ font-family: 'Space Grotesk', monospace;
970
+ font-size: 18px;
971
+ font-weight: 500;
972
+ color: var(--cream);
973
+ margin-bottom: 40px;
974
+ }
975
+
976
+ .slide-10 .close-btn {
977
+ display: inline-block;
978
+ border: 3px solid var(--white);
979
+ padding: 16px 40px;
980
+ font-family: 'Inter', sans-serif;
981
+ font-weight: 700;
982
+ font-size: 16px;
983
+ text-decoration: none;
984
+ color: var(--black);
985
+ background: var(--yellow);
986
+ box-shadow: 6px 6px 0px var(--white);
987
+ cursor: pointer;
988
+ transition: all 0.15s ease;
989
+ }
990
+
991
+ .slide-10 .close-btn:hover {
992
+ transform: translate(-2px, -2px);
993
+ box-shadow: 8px 8px 0px var(--white);
994
+ }
995
+
996
+ .slide-10 .deco-star {
997
+ position: absolute;
998
+ top: -20px;
999
+ right: 60px;
1000
+ width: 50px;
1001
+ height: 50px;
1002
+ background: var(--pink);
1003
+ border: 3px solid var(--white);
1004
+ clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
1005
+ }
1006
+
1007
+ .slide-10 .deco-dots-bottom {
1008
+ position: absolute;
1009
+ bottom: 40px;
1010
+ left: 40px;
1011
+ width: 100px;
1012
+ height: 100px;
1013
+ background-image: radial-gradient(circle, var(--white) 2px, transparent 2px);
1014
+ background-size: 16px 16px;
1015
+ opacity: 0.3;
1016
+ }
1017
+
1018
+ /* Responsive adjustments */
1019
+ @media (max-width: 1024px) {
1020
+ .slide {
1021
+ padding: 40px;
1022
+ }
1023
+ .slide-2 {
1024
+ flex-direction: column;
1025
+ }
1026
+ .slide-6 {
1027
+ flex-direction: column;
1028
+ }
1029
+ .slide-6 .split-content {
1030
+ border-left: none;
1031
+ border-top: var(--border);
1032
+ }
1033
+ .slide-3 .cards-row {
1034
+ flex-direction: column;
1035
+ }
1036
+ .slide-7 .timeline {
1037
+ flex-direction: column;
1038
+ }
1039
+ .slide-7 .timeline-step {
1040
+ margin-right: 0;
1041
+ margin-bottom: -4px;
1042
+ }
1043
+ .slide-7 .step-connector {
1044
+ display: none;
1045
+ }
1046
+ .slide-8 .stats-grid {
1047
+ grid-template-columns: repeat(2, 1fr);
1048
+ }
1049
+ .slide-9 .team-grid {
1050
+ grid-template-columns: repeat(2, 1fr);
1051
+ }
1052
+ }
1053
+
1054
+ @media (max-width: 640px) {
1055
+ .slide-8 .stats-grid {
1056
+ grid-template-columns: 1fr;
1057
+ }
1058
+ .slide-9 .team-grid {
1059
+ grid-template-columns: 1fr;
1060
+ }
1061
+ .slide-1 .hero-frame {
1062
+ padding: 32px;
1063
+ }
1064
+ .slide-5 .quote-frame {
1065
+ padding: 32px;
1066
+ }
1067
+ }
1068
+ </style>
1069
+ </head>
1070
+ <body>
1071
+
1072
+ <div class="slide-counter" id="slideCounter">01 / 10</div>
1073
+
1074
+ <div class="nav-controls">
1075
+ <button class="nav-btn" onclick="prevSlide()">&#8592;</button>
1076
+ <button class="nav-btn" onclick="nextSlide()">&#8594;</button>
1077
+ </div>
1078
+
1079
+ <div class="slides-container">
1080
+
1081
+ <!-- SLIDE 1: Title Hero -->
1082
+ <section class="slide slide-1 active">
1083
+ <div class="deco-dots"></div>
1084
+ <div class="hero-frame">
1085
+ <div class="corner-bracket tl"></div>
1086
+ <div class="corner-bracket tr"></div>
1087
+ <div class="corner-bracket bl"></div>
1088
+ <div class="corner-bracket br"></div>
1089
+ <div class="nb-label hero-label">Presentation Template</div>
1090
+ <h1 class="nb-heading-xl hero-title">NEO-<br>BRUTALISM<br>STYLE</h1>
1091
+ <p class="hero-subtitle">A bold, high-contrast template designed for maximum visual impact and uncompromising clarity.</p>
1092
+ <div class="deco-pink-rect"></div>
1093
+ <div class="deco-green-circle"></div>
1094
+ <div class="deco-yellow-bar">Get Started</div>
1095
+ </div>
1096
+ </section>
1097
+
1098
+ <!-- SLIDE 2: Two Column Intro -->
1099
+ <section class="slide slide-2">
1100
+ <div class="col-left">
1101
+ <div class="nb-label nb-label-yellow">Overview</div>
1102
+ <h2 class="nb-heading-lg">What We<br>Deliver</h2>
1103
+ <p class="nb-body" style="max-width: 480px;">Every project follows a rigorous process that balances creative exploration with systematic execution. The result is work that stands out while remaining fully functional.</p>
1104
+ <div style="display: flex; gap: 12px; flex-wrap: wrap;">
1105
+ <span class="stat-pill">12+ Years</span>
1106
+ <span class="stat-pill">500+ Projects</span>
1107
+ </div>
1108
+ </div>
1109
+ <div class="col-right">
1110
+ <div class="intro-card">
1111
+ <h3>Strategy First</h3>
1112
+ <p>We begin with deep research and stakeholder alignment to ensure every decision is grounded in clear objectives.</p>
1113
+ </div>
1114
+ <div class="intro-card">
1115
+ <h3>Design System</h3>
1116
+ <p>A modular approach to visuals ensures consistency across all touchpoints while allowing room for expression.</p>
1117
+ </div>
1118
+ <div class="intro-card">
1119
+ <h3>Launch Ready</h3>
1120
+ <p>Final deliverables are production-tested, documented, and handed off with a comprehensive usage guide.</p>
1121
+ </div>
1122
+ </div>
1123
+ </section>
1124
+
1125
+ <!-- SLIDE 3: Three Feature Cards -->
1126
+ <section class="slide slide-3">
1127
+ <div class="slide-header">
1128
+ <div class="nb-label nb-label-pink">Core Features</div>
1129
+ </div>
1130
+ <div class="cards-row">
1131
+ <div class="feature-card">
1132
+ <div class="card-deco"></div>
1133
+ <div class="feature-icon icon-pink">A</div>
1134
+ <h3>Modular Layouts</h3>
1135
+ <p>Mix and match components to build unique presentations without starting from scratch each time.</p>
1136
+ </div>
1137
+ <div class="feature-card">
1138
+ <div class="card-deco"></div>
1139
+ <div class="feature-icon icon-blue">B</div>
1140
+ <h3>Responsive Ready</h3>
1141
+ <p>Adapts seamlessly to different screen sizes while maintaining the bold visual character.</p>
1142
+ </div>
1143
+ <div class="feature-card">
1144
+ <div class="card-deco"></div>
1145
+ <div class="feature-icon icon-green">C</div>
1146
+ <h3>Data Friendly</h3>
1147
+ <p>Built-in styles for charts, statistics, and information-dense slides that remain readable.</p>
1148
+ </div>
1149
+ </div>
1150
+ </section>
1151
+
1152
+ <!-- SLIDE 4: Chart / Data -->
1153
+ <section class="slide slide-4">
1154
+ <div class="slide-header">
1155
+ <div class="nb-label nb-label-blue">Performance Data</div>
1156
+ </div>
1157
+ <div class="chart-frame">
1158
+ <div class="chart-header">
1159
+ <h2 class="nb-heading-md">Quarterly Growth Metrics</h2>
1160
+ <div class="chart-legend">
1161
+ <div class="legend-item"><div class="legend-swatch" style="background: var(--pink);"></div>Revenue</div>
1162
+ <div class="legend-item"><div class="legend-swatch" style="background: var(--blue);"></div>Users</div>
1163
+ <div class="legend-item"><div class="legend-swatch" style="background: var(--green);"></div>Retention</div>
1164
+ </div>
1165
+ </div>
1166
+ <div class="chart-body">
1167
+ <svg class="chart-svg" viewBox="0 0 800 360" xmlns="http://www.w3.org/2000/svg">
1168
+ <!-- Axes (baseline at y=280, leaving room for X labels at y=320) -->
1169
+ <line x1="60" y1="20" x2="60" y2="280" stroke="#000" stroke-width="3"/>
1170
+ <line x1="60" y1="280" x2="780" y2="280" stroke="#000" stroke-width="3"/>
1171
+
1172
+ <!-- Horizontal grid (33 / 66 / 100) -->
1173
+ <line x1="60" y1="80" x2="780" y2="80" stroke="#000" stroke-width="1" stroke-dasharray="4,4" opacity="0.3"/>
1174
+ <line x1="60" y1="150" x2="780" y2="150" stroke="#000" stroke-width="1" stroke-dasharray="4,4" opacity="0.3"/>
1175
+ <line x1="60" y1="215" x2="780" y2="215" stroke="#000" stroke-width="1" stroke-dasharray="4,4" opacity="0.3"/>
1176
+
1177
+ <!-- Y labels -->
1178
+ <text x="48" y="285" text-anchor="end" font-family="Space Grotesk, monospace" font-size="14" font-weight="600">0</text>
1179
+ <text x="48" y="220" text-anchor="end" font-family="Space Grotesk, monospace" font-size="14" font-weight="600">33</text>
1180
+ <text x="48" y="155" text-anchor="end" font-family="Space Grotesk, monospace" font-size="14" font-weight="600">66</text>
1181
+ <text x="48" y="85" text-anchor="end" font-family="Space Grotesk, monospace" font-size="14" font-weight="600">100</text>
1182
+
1183
+ <!-- Bars: Revenue (pink) — three series per quarter, 5 quarters -->
1184
+ <rect x="80" y="200" width="32" height="80" fill="#FE90E8" stroke="#000" stroke-width="2"/>
1185
+ <rect x="224" y="160" width="32" height="120" fill="#FE90E8" stroke="#000" stroke-width="2"/>
1186
+ <rect x="368" y="120" width="32" height="160" fill="#FE90E8" stroke="#000" stroke-width="2"/>
1187
+ <rect x="512" y="80" width="32" height="200" fill="#FE90E8" stroke="#000" stroke-width="2"/>
1188
+ <rect x="656" y="60" width="32" height="220" fill="#FE90E8" stroke="#000" stroke-width="2"/>
1189
+
1190
+ <!-- Bars: Users (blue) -->
1191
+ <rect x="118" y="220" width="32" height="60" fill="#C0F7FE" stroke="#000" stroke-width="2"/>
1192
+ <rect x="262" y="190" width="32" height="90" fill="#C0F7FE" stroke="#000" stroke-width="2"/>
1193
+ <rect x="406" y="150" width="32" height="130" fill="#C0F7FE" stroke="#000" stroke-width="2"/>
1194
+ <rect x="550" y="110" width="32" height="170" fill="#C0F7FE" stroke="#000" stroke-width="2"/>
1195
+ <rect x="694" y="90" width="32" height="190" fill="#C0F7FE" stroke="#000" stroke-width="2"/>
1196
+
1197
+ <!-- Bars: Retention (green) -->
1198
+ <rect x="156" y="180" width="32" height="100" fill="#99E885" stroke="#000" stroke-width="2"/>
1199
+ <rect x="300" y="160" width="32" height="120" fill="#99E885" stroke="#000" stroke-width="2"/>
1200
+ <rect x="444" y="130" width="32" height="150" fill="#99E885" stroke="#000" stroke-width="2"/>
1201
+ <rect x="588" y="110" width="32" height="170" fill="#99E885" stroke="#000" stroke-width="2"/>
1202
+ <rect x="732" y="92" width="32" height="188" fill="#99E885" stroke="#000" stroke-width="2"/>
1203
+
1204
+ <!-- X labels — bigger, sit comfortably below the baseline -->
1205
+ <text x="134" y="320" text-anchor="middle" font-family="Space Grotesk, monospace" font-size="18" font-weight="700">Q1</text>
1206
+ <text x="278" y="320" text-anchor="middle" font-family="Space Grotesk, monospace" font-size="18" font-weight="700">Q2</text>
1207
+ <text x="422" y="320" text-anchor="middle" font-family="Space Grotesk, monospace" font-size="18" font-weight="700">Q3</text>
1208
+ <text x="566" y="320" text-anchor="middle" font-family="Space Grotesk, monospace" font-size="18" font-weight="700">Q4</text>
1209
+ <text x="710" y="320" text-anchor="middle" font-family="Space Grotesk, monospace" font-size="18" font-weight="700">Q5</text>
1210
+ </svg>
1211
+ <div class="data-column">
1212
+ <div class="data-box">
1213
+ <span class="data-num">+142%</span>
1214
+ <span class="data-label">Revenue Growth</span>
1215
+ </div>
1216
+ <div class="data-box">
1217
+ <span class="data-num">2.4M</span>
1218
+ <span class="data-label">Active Users</span>
1219
+ </div>
1220
+ <div class="data-box">
1221
+ <span class="data-num">94%</span>
1222
+ <span class="data-label">Retention Rate</span>
1223
+ </div>
1224
+ </div>
1225
+ </div>
1226
+ </div>
1227
+ </section>
1228
+
1229
+ <!-- SLIDE 5: Big Statement / Quote -->
1230
+ <section class="slide slide-5">
1231
+ <div class="quote-frame">
1232
+ <div class="deco-quote-marks">"</div>
1233
+ <div class="corner-bracket tl"></div>
1234
+ <div class="corner-bracket tr"></div>
1235
+ <div class="corner-bracket bl"></div>
1236
+ <div class="corner-bracket br"></div>
1237
+ <p class="quote-text">Design is not just what it looks like. Design is how it works, how it feels, and how it lasts.</p>
1238
+ <p class="quote-author">— Core Principle, Version 4.0</p>
1239
+ </div>
1240
+ <div class="deco-stripes"></div>
1241
+ </section>
1242
+
1243
+ <!-- SLIDE 6: Split Image + Text -->
1244
+ <section class="slide slide-6">
1245
+ <div class="split-visual">
1246
+ <div class="visual-box">
1247
+ <span style="color: var(--black); font-family: Inter, sans-serif; font-weight: 700; font-size: 22px; text-transform: uppercase; letter-spacing: 0.06em; text-align: center; padding: 0 24px;">Image Placeholder</span>
1248
+ </div>
1249
+ <div class="visual-label">Visual System</div>
1250
+ </div>
1251
+ <div class="split-content">
1252
+ <div class="nb-label nb-label-green">Methodology</div>
1253
+ <h2 class="nb-heading-md">How We Structure<br>Every Project</h2>
1254
+ <ul class="content-list">
1255
+ <li>
1256
+ <span class="list-num">01</span>
1257
+ <span>Discovery phase to map stakeholder needs and technical constraints before any visual work begins.</span>
1258
+ </li>
1259
+ <li>
1260
+ <span class="list-num">02</span>
1261
+ <span>Iterative wireframing with rapid feedback loops to validate information architecture early.</span>
1262
+ </li>
1263
+ <li>
1264
+ <span class="list-num">03</span>
1265
+ <span>High-fidelity prototyping with real content to test readability and visual hierarchy.</span>
1266
+ </li>
1267
+ <li>
1268
+ <span class="list-num">04</span>
1269
+ <span>Production handoff with annotated specifications and a living style guide.</span>
1270
+ </li>
1271
+ </ul>
1272
+ <div><a class="nb-btn" href="#">View Process</a></div>
1273
+ </div>
1274
+ </section>
1275
+
1276
+ <!-- SLIDE 7: Timeline / Process -->
1277
+ <section class="slide slide-7">
1278
+ <div class="slide-header">
1279
+ <div class="nb-label nb-label-cream">Roadmap</div>
1280
+ <h2 class="nb-heading-lg" style="margin-top: 16px;">Project Timeline</h2>
1281
+ </div>
1282
+ <div class="timeline">
1283
+ <div class="timeline-step">
1284
+ <div class="step-connector"></div>
1285
+ <div class="step-num">01</div>
1286
+ <div class="step-title">Research</div>
1287
+ <div class="step-desc">Market analysis, user interviews, and competitive audits to establish a foundation.</div>
1288
+ </div>
1289
+ <div class="timeline-step">
1290
+ <div class="step-connector"></div>
1291
+ <div class="step-num">02</div>
1292
+ <div class="step-title">Concept</div>
1293
+ <div class="step-desc">Mood boards, sketches, and directional explorations to define the visual language.</div>
1294
+ </div>
1295
+ <div class="timeline-step">
1296
+ <div class="step-connector"></div>
1297
+ <div class="step-num">03</div>
1298
+ <div class="step-title">Build</div>
1299
+ <div class="step-desc">Detailed execution with weekly reviews and continuous stakeholder alignment.</div>
1300
+ </div>
1301
+ <div class="timeline-step">
1302
+ <div class="step-num">04</div>
1303
+ <div class="step-title">Launch</div>
1304
+ <div class="step-desc">Deployment support, performance monitoring, and post-launch optimization.</div>
1305
+ </div>
1306
+ </div>
1307
+ </section>
1308
+
1309
+ <!-- SLIDE 8: Statistics / Numbers -->
1310
+ <section class="slide slide-8">
1311
+ <div class="slide-header">
1312
+ <div class="nb-label nb-label-green">By The Numbers</div>
1313
+ <h2 class="nb-heading-lg" style="margin-top: 16px;">Impact at a Glance</h2>
1314
+ </div>
1315
+ <div class="stats-grid">
1316
+ <div class="stat-card">
1317
+ <div class="stat-deco" style="background: var(--pink);"></div>
1318
+ <div class="stat-number">98%</div>
1319
+ <div class="stat-label">Client Satisfaction</div>
1320
+ </div>
1321
+ <div class="stat-card">
1322
+ <div class="stat-deco" style="background: var(--blue);"></div>
1323
+ <div class="stat-number">14</div>
1324
+ <div class="stat-label">Industry Awards</div>
1325
+ </div>
1326
+ <div class="stat-card">
1327
+ <div class="stat-deco" style="background: var(--green);"></div>
1328
+ <div class="stat-number">3.2x</div>
1329
+ <div class="stat-label">Avg. ROI Increase</div>
1330
+ </div>
1331
+ <div class="stat-card">
1332
+ <div class="stat-deco" style="background: var(--yellow);"></div>
1333
+ <div class="stat-number">50+</div>
1334
+ <div class="stat-label">Team Members</div>
1335
+ </div>
1336
+ </div>
1337
+ </section>
1338
+
1339
+ <!-- SLIDE 9: Team / Grid -->
1340
+ <section class="slide slide-9">
1341
+ <div class="slide-header">
1342
+ <div class="nb-label nb-label-pink">The Team</div>
1343
+ <h2 class="nb-heading-lg" style="margin-top: 16px;">Meet the Crew</h2>
1344
+ </div>
1345
+ <div class="team-grid">
1346
+ <div class="team-card">
1347
+ <div class="team-avatar">JD</div>
1348
+ <div class="team-name">J. Doe</div>
1349
+ <div class="team-role">Creative Lead</div>
1350
+ <div class="team-bio">Oversees visual direction and ensures every project maintains a coherent narrative.</div>
1351
+ </div>
1352
+ <div class="team-card">
1353
+ <div class="team-avatar">AS</div>
1354
+ <div class="team-name">A. Smith</div>
1355
+ <div class="team-role">Tech Director</div>
1356
+ <div class="team-bio">Translates design systems into scalable technical architectures and workflows.</div>
1357
+ </div>
1358
+ <div class="team-card">
1359
+ <div class="team-avatar">MK</div>
1360
+ <div class="team-name">M. Kim</div>
1361
+ <div class="team-role">Strategist</div>
1362
+ <div class="team-bio">Connects business objectives to user needs through research and analysis.</div>
1363
+ </div>
1364
+ <div class="team-card">
1365
+ <div class="team-avatar">RL</div>
1366
+ <div class="team-name">R. Lee</div>
1367
+ <div class="team-role">Producer</div>
1368
+ <div class="team-bio">Manages timelines, budgets, and cross-functional coordination for smooth delivery.</div>
1369
+ </div>
1370
+ <div class="team-card">
1371
+ <div class="team-avatar">TP</div>
1372
+ <div class="team-name">T. Patel</div>
1373
+ <div class="team-role">Designer</div>
1374
+ <div class="team-bio">Crafts interfaces and interactions with obsessive attention to detail.</div>
1375
+ </div>
1376
+ <div class="team-card">
1377
+ <div class="team-avatar">SC</div>
1378
+ <div class="team-name">S. Chen</div>
1379
+ <div class="team-role">Developer</div>
1380
+ <div class="team-bio">Builds robust front-end systems that bring static designs to life.</div>
1381
+ </div>
1382
+ </div>
1383
+ </section>
1384
+
1385
+ <!-- SLIDE 10: Closing -->
1386
+ <section class="slide slide-10">
1387
+ <div class="deco-dots-bottom"></div>
1388
+ <div class="close-frame">
1389
+ <div class="deco-star"></div>
1390
+ <h2 class="close-title">Let's Build<br>Something Bold</h2>
1391
+ <p class="close-subtitle">Ready to start your next project?</p>
1392
+ <a class="close-btn" href="#">Get In Touch</a>
1393
+ </div>
1394
+ </section>
1395
+
1396
+ </div>
1397
+
1398
+ <script>
1399
+ let currentSlide = 0;
1400
+ const slides = document.querySelectorAll('.slide');
1401
+ const counter = document.getElementById('slideCounter');
1402
+ const totalSlides = slides.length;
1403
+
1404
+ function updateSlide() {
1405
+ slides.forEach((slide, index) => {
1406
+ slide.classList.toggle('active', index === currentSlide);
1407
+ });
1408
+ counter.textContent = String(currentSlide + 1).padStart(2, '0') + ' / ' + String(totalSlides).padStart(2, '0');
1409
+ }
1410
+
1411
+ function nextSlide() {
1412
+ currentSlide = (currentSlide + 1) % totalSlides;
1413
+ updateSlide();
1414
+ }
1415
+
1416
+ function prevSlide() {
1417
+ currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
1418
+ updateSlide();
1419
+ }
1420
+
1421
+ // Keyboard navigation
1422
+ document.addEventListener('keydown', (e) => {
1423
+ if (e.key === 'ArrowRight' || e.key === ' ') {
1424
+ e.preventDefault();
1425
+ nextSlide();
1426
+ } else if (e.key === 'ArrowLeft') {
1427
+ e.preventDefault();
1428
+ prevSlide();
1429
+ }
1430
+ });
1431
+
1432
+ // Touch / swipe support
1433
+ let touchStartX = 0;
1434
+ let touchEndX = 0;
1435
+
1436
+ document.addEventListener('touchstart', (e) => {
1437
+ touchStartX = e.changedTouches[0].screenX;
1438
+ });
1439
+
1440
+ document.addEventListener('touchend', (e) => {
1441
+ touchEndX = e.changedTouches[0].screenX;
1442
+ if (touchStartX - touchEndX > 50) {
1443
+ nextSlide();
1444
+ } else if (touchEndX - touchStartX > 50) {
1445
+ prevSlide();
1446
+ }
1447
+ });
1448
+
1449
+ updateSlide();
1450
+ </script>
1451
+
1452
+ </body>
1453
+ </html>