@hiai-gg/hiai-opencode 0.2.1 → 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 (477) hide show
  1. package/.env.example +4 -0
  2. package/AGENTS.md +34 -38
  3. package/ARCHITECTURE.md +4 -3
  4. package/LICENSE.md +14 -0
  5. package/README.md +52 -21
  6. package/config/hiai-opencode.schema.json +11 -13
  7. package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
  8. package/dist/agents/bob/core.d.ts +6 -0
  9. package/dist/agents/bob/gpt.d.ts +11 -0
  10. package/dist/agents/bob/index.d.ts +3 -0
  11. package/dist/agents/coder/core.d.ts +4 -0
  12. package/dist/agents/coder/gpt.d.ts +1 -4
  13. package/dist/agents/coder/index.d.ts +1 -0
  14. package/dist/agents/manager/agent.d.ts +1 -1
  15. package/dist/agents/manager/default-prompt-sections.d.ts +3 -3
  16. package/dist/agents/manager/guard-integration.d.ts +1 -0
  17. package/dist/agents/prompt-library/index.d.ts +0 -1
  18. package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
  19. package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
  20. package/dist/agents/strategist/identity-constraints.d.ts +1 -1
  21. package/dist/agents/strategist/plan-generation.d.ts +1 -1
  22. package/dist/agents/types.d.ts +2 -1
  23. package/dist/config/defaults.d.ts +1 -0
  24. package/dist/config/platform-schema.d.ts +26 -26
  25. package/dist/config/schema/agent-names.d.ts +6 -6
  26. package/dist/config/schema/agent-overrides.d.ts +0 -128
  27. package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
  28. package/dist/config/types.d.ts +2 -2
  29. package/dist/features/background-agent/manager-notifier.d.ts +46 -0
  30. package/dist/features/background-agent/manager-types.d.ts +40 -0
  31. package/dist/features/background-agent/manager.d.ts +3 -19
  32. package/dist/features/background-agent/polling-manager.d.ts +51 -0
  33. package/dist/features/boulder-state/storage.d.ts +1 -0
  34. package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
  35. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  36. package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
  37. package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
  38. package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
  39. package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
  40. package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
  41. package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
  42. package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
  43. package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
  44. package/dist/hooks/start-work/git-operations.d.ts +47 -0
  45. package/dist/hooks/token-budget.d.ts +30 -0
  46. package/dist/index.js +1185 -1078
  47. package/dist/mcp/rate-limiter.d.ts +68 -0
  48. package/dist/plugin/chat-message.d.ts +8 -0
  49. package/dist/plugin/command-execute-before.d.ts +1 -1
  50. package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
  51. package/dist/plugin/event-handlers/session-error.d.ts +2 -0
  52. package/dist/plugin/event-handlers/session-status.d.ts +2 -0
  53. package/dist/plugin/event-handlers/types.d.ts +62 -0
  54. package/dist/plugin/event-handlers/utils.d.ts +11 -0
  55. package/dist/plugin/event.d.ts +1 -1
  56. package/dist/shared/data-path.d.ts +1 -1
  57. package/dist/shared/errors.d.ts +70 -0
  58. package/dist/shared/extract-session-id.d.ts +8 -0
  59. package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
  60. package/dist/shared/index.d.ts +67 -68
  61. package/dist/shared/internal-initiator-marker.d.ts +1 -1
  62. package/dist/shared/logger.d.ts +5 -1
  63. package/dist/shared/reasoning-content-cache.d.ts +68 -0
  64. package/dist/shared/safe-create-hook.d.ts +4 -4
  65. package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
  66. package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
  67. package/dist/tools/look-at/constants.d.ts +1 -1
  68. package/docs/architecture/bob-manager-architecture.md +244 -0
  69. package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
  70. package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
  71. package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
  72. package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
  73. package/docs/hiai-opencode/api.md +305 -0
  74. package/docs/hiai-opencode/hooks-architecture.md +225 -0
  75. package/docs/hiai-opencode/migration.md +209 -0
  76. package/docs/skill-discovery.md +288 -0
  77. package/package.json +1 -1
  78. package/skills/agent-browser/SKILL.md +193 -0
  79. package/skills/apple-hig/SKILL.md +43 -0
  80. package/skills/article-magazine/SKILL.md +46 -0
  81. package/skills/article-magazine/example.html +81 -0
  82. package/skills/article-magazine/example.md +38 -0
  83. package/skills/canvas-design/SKILL.md +45 -0
  84. package/skills/design-templates/audio-jingle/SKILL.md +132 -0
  85. package/skills/design-templates/audio-jingle/example.html +128 -0
  86. package/skills/design-templates/blog-post/SKILL.md +80 -0
  87. package/skills/design-templates/blog-post/example.html +80 -0
  88. package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
  89. package/skills/design-templates/clinical-case-report/example.html +698 -0
  90. package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
  91. package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
  92. package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
  93. package/skills/design-templates/critique/SKILL.md +258 -0
  94. package/skills/design-templates/critique/example.html +671 -0
  95. package/skills/design-templates/dashboard/SKILL.md +76 -0
  96. package/skills/design-templates/dashboard/example.html +118 -0
  97. package/skills/design-templates/dating-web/SKILL.md +92 -0
  98. package/skills/design-templates/dating-web/example.html +265 -0
  99. package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
  100. package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
  101. package/skills/design-templates/digital-eguide/SKILL.md +94 -0
  102. package/skills/design-templates/digital-eguide/example.html +204 -0
  103. package/skills/design-templates/docs-page/SKILL.md +80 -0
  104. package/skills/design-templates/docs-page/example.html +122 -0
  105. package/skills/design-templates/email-marketing/SKILL.md +84 -0
  106. package/skills/design-templates/email-marketing/example.html +159 -0
  107. package/skills/design-templates/eng-runbook/SKILL.md +51 -0
  108. package/skills/design-templates/eng-runbook/example.html +250 -0
  109. package/skills/design-templates/finance-report/SKILL.md +61 -0
  110. package/skills/design-templates/finance-report/example.html +242 -0
  111. package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
  112. package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
  113. package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
  114. package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
  115. package/skills/design-templates/gamified-app/SKILL.md +108 -0
  116. package/skills/design-templates/gamified-app/example.html +292 -0
  117. package/skills/design-templates/github-dashboard/SKILL.md +130 -0
  118. package/skills/design-templates/github-dashboard/example.html +473 -0
  119. package/skills/design-templates/github-dashboard/references/README.md +10 -0
  120. package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
  121. package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
  122. package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
  123. package/skills/design-templates/github-dashboard/references/template.html +473 -0
  124. package/skills/design-templates/guizang-ppt/LICENSE +21 -0
  125. package/skills/design-templates/guizang-ppt/README.en.md +119 -0
  126. package/skills/design-templates/guizang-ppt/README.md +120 -0
  127. package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
  128. package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
  129. package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
  130. package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
  131. package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
  132. package/skills/design-templates/guizang-ppt/references/components.md +363 -0
  133. package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
  134. package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
  135. package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
  136. package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
  137. package/skills/design-templates/hr-onboarding/example.html +219 -0
  138. package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
  139. package/skills/design-templates/html-ppt/LICENSE +21 -0
  140. package/skills/design-templates/html-ppt/README.md +234 -0
  141. package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
  142. package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
  143. package/skills/design-templates/html-ppt/SKILL.md +250 -0
  144. package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
  145. package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
  146. package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
  147. package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
  148. package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
  149. package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
  150. package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
  151. package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
  152. package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
  153. package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
  154. package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
  155. package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
  156. package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
  157. package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
  158. package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
  159. package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
  160. package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
  161. package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
  162. package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
  163. package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
  164. package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
  165. package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
  166. package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
  167. package/skills/design-templates/html-ppt/assets/base.css +150 -0
  168. package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
  169. package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
  170. package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
  171. package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
  172. package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
  173. package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
  174. package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
  175. package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
  176. package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
  177. package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
  178. package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
  179. package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
  180. package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
  181. package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
  182. package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
  183. package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
  184. package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
  185. package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
  186. package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
  187. package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
  188. package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
  189. package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
  190. package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
  191. package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
  192. package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
  193. package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
  194. package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
  195. package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
  196. package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
  197. package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
  198. package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
  199. package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
  200. package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
  201. package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
  202. package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
  203. package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
  204. package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
  205. package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
  206. package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
  207. package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
  208. package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
  209. package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
  210. package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
  211. package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
  212. package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
  213. package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
  214. package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
  215. package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
  216. package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
  217. package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
  218. package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
  219. package/skills/design-templates/html-ppt/references/animations.md +147 -0
  220. package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
  221. package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
  222. package/skills/design-templates/html-ppt/references/layouts.md +103 -0
  223. package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
  224. package/skills/design-templates/html-ppt/references/themes.md +107 -0
  225. package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
  226. package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
  227. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
  228. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
  229. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
  230. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
  231. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
  232. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
  233. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
  234. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
  235. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
  236. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
  237. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
  238. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
  239. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
  240. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
  241. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
  242. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
  243. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
  244. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
  245. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
  246. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
  247. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
  248. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
  249. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
  250. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
  251. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
  252. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
  253. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
  254. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
  255. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
  256. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
  257. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
  258. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
  259. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
  260. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
  261. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
  262. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
  263. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
  264. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
  265. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
  266. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
  267. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
  268. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
  269. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
  270. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
  271. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
  272. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
  273. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
  274. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
  275. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
  276. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
  277. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
  278. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
  279. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
  280. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
  281. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
  282. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
  283. package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
  284. package/skills/design-templates/html-ppt/templates/deck.html +69 -0
  285. package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
  286. package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
  287. package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
  288. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
  289. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
  290. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
  291. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
  292. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
  293. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
  294. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
  295. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
  296. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
  297. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
  298. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
  299. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
  300. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
  301. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
  302. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
  303. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
  304. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
  305. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
  306. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
  307. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
  308. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
  309. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
  310. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
  311. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
  312. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
  313. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
  314. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
  315. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
  316. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
  317. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
  318. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
  319. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
  320. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
  321. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
  322. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
  323. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
  324. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
  325. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
  326. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
  327. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
  328. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
  329. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
  330. package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
  331. package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
  332. package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
  333. package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
  334. package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
  335. package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
  336. package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
  337. package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
  338. package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
  339. package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
  340. package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
  341. package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
  342. package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
  343. package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
  344. package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
  345. package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
  346. package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
  347. package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
  348. package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
  349. package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
  350. package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
  351. package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
  352. package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
  353. package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
  354. package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
  355. package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
  356. package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
  357. package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
  358. package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
  359. package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
  360. package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
  361. package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
  362. package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
  363. package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
  364. package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
  365. package/skills/design-templates/html-ppt-course-module/example.html +542 -0
  366. package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
  367. package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
  368. package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
  369. package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
  370. package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
  371. package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
  372. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
  373. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
  374. package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
  375. package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
  376. package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
  377. package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
  378. package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
  379. package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
  380. package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
  381. package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
  382. package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
  383. package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
  384. package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
  385. package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
  386. package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
  387. package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
  388. package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
  389. package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
  390. package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
  391. package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
  392. package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
  393. package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
  394. package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
  395. package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
  396. package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
  397. package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
  398. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
  399. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
  400. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
  401. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
  402. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
  403. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
  404. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
  405. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
  406. package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
  407. package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
  408. package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
  409. package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
  410. package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
  411. package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
  412. package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
  413. package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
  414. package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
  415. package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
  416. package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
  417. package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
  418. package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
  419. package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
  420. package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
  421. package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
  422. package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
  423. package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
  424. package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
  425. package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
  426. package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
  427. package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
  428. package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
  429. package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
  430. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
  431. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
  432. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
  433. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
  434. package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
  435. package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
  436. package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
  437. package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
  438. package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
  439. package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
  440. package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
  441. package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
  442. package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
  443. package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
  444. package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
  445. package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
  446. package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
  447. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
  448. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
  449. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
  450. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
  451. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
  452. package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
  453. package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
  454. package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
  455. package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
  456. package/skills/figma-code-connect-components/SKILL.md +42 -0
  457. package/skills/figma-create-design-system-rules/SKILL.md +42 -0
  458. package/skills/figma-create-new-file/SKILL.md +41 -0
  459. package/skills/figma-generate-design/SKILL.md +42 -0
  460. package/skills/figma-generate-library/SKILL.md +42 -0
  461. package/skills/figma-implement-design/SKILL.md +42 -0
  462. package/skills/figma-use/SKILL.md +42 -0
  463. package/skills/full-page-screenshot/SKILL.md +42 -0
  464. package/skills/interview-me/SKILL.md +64 -0
  465. package/skills/planning-and-task-breakdown/SKILL.md +52 -0
  466. package/skills/sora/SKILL.md +43 -0
  467. package/skills/theme-factory/SKILL.md +43 -0
  468. package/skills/web-design-guidelines/SKILL.md +42 -0
  469. package/dist/agents/prompt-library/orchestration.d.ts +0 -4
  470. package/skills/brainstorming/SKILL.md +0 -164
  471. package/skills/brainstorming/scripts/frame-template.html +0 -214
  472. package/skills/brainstorming/scripts/helper.js +0 -88
  473. package/skills/brainstorming/scripts/server.cjs +0 -354
  474. package/skills/brainstorming/scripts/start-server.sh +0 -148
  475. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  476. package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  477. package/skills/brainstorming/visual-companion.md +0 -287
@@ -0,0 +1,833 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>Biennale Yellow — Slide Template</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Archivo:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
10
+ <style>
11
+ :root {
12
+ --paper: #E9E5DB; /* warm parchment ground */
13
+ --paper-deep: #DCD6C4; /* slightly darker for shadows */
14
+ --sun: #F1EE2E; /* signature solar yellow */
15
+ --sun-soft: #F8F39B;
16
+ --ink: #1B2566; /* deep indigo navy */
17
+ --ember: #E26B4A; /* warm peach accent */
18
+ --haze: #F0DA7C;
19
+ --line: #1B2566;
20
+ }
21
+
22
+ * { box-sizing: border-box; }
23
+ html, body { margin: 0; padding: 0; height: 100%; background: #0a0a0a; }
24
+ body {
25
+ font-family: 'Archivo', 'Helvetica Neue', sans-serif;
26
+ color: var(--ink);
27
+ overflow: hidden;
28
+ }
29
+
30
+ /* deck wrapper — fills the viewport, centers a stage */
31
+ .deck { position: fixed; inset: 0; display: grid; place-items: center; }
32
+ .stage {
33
+ position: relative;
34
+ width: 100vw; height: 100vh;
35
+ overflow: hidden;
36
+ background: var(--paper);
37
+ }
38
+
39
+ /* one slide at a time, soft cross-fade */
40
+ .slide {
41
+ position: absolute; inset: 0;
42
+ opacity: 0; pointer-events: none;
43
+ transition: opacity 280ms ease;
44
+ }
45
+ .slide.active { opacity: 1; pointer-events: auto; }
46
+
47
+ /* Type system — kept on a small set of utility classes */
48
+ .display { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; line-height: 0.9; letter-spacing: -0.012em; }
49
+ .display-it { font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-weight: 400; line-height: 1.04; letter-spacing: -0.005em; }
50
+ .micro-label { font-family: 'Archivo', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em; }
51
+ .body-text { font-family: 'Archivo', sans-serif; font-weight: 400; line-height: 1.5; }
52
+ .mono-tab { font-family: 'JetBrains Mono', ui-monospace, monospace; font-weight: 400; }
53
+
54
+ /* Page number — single, bottom-right, on every slide */
55
+ .pagenum {
56
+ position: absolute;
57
+ right: clamp(24px, 2.4vw, 48px);
58
+ bottom: clamp(22px, 2.4vh, 42px);
59
+ font-family: 'JetBrains Mono', ui-monospace, monospace;
60
+ font-size: clamp(11px, 0.85vw, 13px);
61
+ color: var(--ink);
62
+ letter-spacing: 0.08em;
63
+ z-index: 8;
64
+ opacity: 0.75;
65
+ }
66
+
67
+ /* Persistent navigation hint — bottom-left, single appearance */
68
+ .nav-hint {
69
+ position: fixed;
70
+ left: clamp(20px, 2vw, 36px);
71
+ bottom: clamp(16px, 2vh, 28px);
72
+ font-family: 'JetBrains Mono', ui-monospace, monospace;
73
+ font-size: clamp(10px, 0.75vw, 12px);
74
+ color: var(--ink);
75
+ letter-spacing: 0.08em;
76
+ opacity: 0.4;
77
+ z-index: 10;
78
+ pointer-events: none;
79
+ }
80
+
81
+ /* ──────────────────────────────────────────────────────────────────
82
+ SLIDE 1 — COVER (poster echo)
83
+ ────────────────────────────────────────────────────────────────── */
84
+ .s-cover { background: var(--paper); }
85
+ /* abstract block grid behind, gives the layered yellow feeling */
86
+ .s-cover .blocks {
87
+ position: absolute; inset: 0;
88
+ pointer-events: none;
89
+ display: grid;
90
+ grid-template-columns: 1fr 1fr 1fr 1fr;
91
+ grid-template-rows: repeat(8, 1fr);
92
+ }
93
+ .s-cover .blocks div { background: transparent; }
94
+ .s-cover .blocks .b1 { background: rgba(241,238,46,0.55); grid-column: 1; grid-row: 3 / 6; }
95
+ .s-cover .blocks .b2 { background: rgba(241,238,46,0.4); grid-column: 4; grid-row: 1 / 4; }
96
+ .s-cover .blocks .b3 { background: rgba(241,238,46,0.7); grid-column: 1 / 3; grid-row: 6 / 9; }
97
+ .s-cover .blocks .b4 { background: rgba(241,238,46,0.45); grid-column: 3 / 5; grid-row: 6 / 8; }
98
+
99
+ /* central sun-bloom + corner peach edge */
100
+ .s-cover .sunglow {
101
+ position: absolute; inset: 0; pointer-events: none;
102
+ background:
103
+ radial-gradient(ellipse 42% 38% at 52% 42%, rgba(241,238,46,0.95) 0%, rgba(241,238,46,0.65) 38%, rgba(240,218,124,0.22) 65%, rgba(233,229,219,0) 88%),
104
+ radial-gradient(ellipse 28% 30% at 88% 16%, rgba(226,107,74,0.22) 0%, rgba(226,107,74,0) 70%);
105
+ }
106
+
107
+ .s-cover .date-rail {
108
+ position: absolute;
109
+ top: clamp(28px, 3.2vh, 56px);
110
+ right: clamp(40px, 4vw, 76px);
111
+ font-family: 'Instrument Serif', Georgia, serif;
112
+ font-size: clamp(48px, min(5.2vw, 9vh), 96px);
113
+ color: var(--ink);
114
+ line-height: 0.96;
115
+ text-align: right;
116
+ letter-spacing: -0.005em;
117
+ z-index: 5;
118
+ }
119
+
120
+ .s-cover .titlewrap {
121
+ position: absolute;
122
+ left: clamp(40px, 4vw, 76px);
123
+ bottom: clamp(132px, 16vh, 220px);
124
+ z-index: 5;
125
+ max-width: 88%;
126
+ }
127
+ .s-cover .title {
128
+ font-family: 'Instrument Serif', Georgia, serif;
129
+ font-size: clamp(120px, min(14.6vw, 22vh), 240px);
130
+ line-height: 0.86;
131
+ color: var(--ink);
132
+ letter-spacing: -0.018em;
133
+ }
134
+ .s-cover .title em { font-style: italic; }
135
+ .s-cover .subline {
136
+ margin-top: clamp(8px, 1vh, 18px);
137
+ font-family: 'Archivo', sans-serif;
138
+ font-weight: 600;
139
+ text-transform: uppercase;
140
+ letter-spacing: 0.18em;
141
+ font-size: clamp(11px, 0.85vw, 13px);
142
+ color: var(--ink);
143
+ }
144
+
145
+ .s-cover .footer-row {
146
+ position: absolute;
147
+ left: clamp(40px, 4vw, 76px);
148
+ right: clamp(40px, 4vw, 76px);
149
+ bottom: clamp(28px, 3vh, 52px);
150
+ display: grid;
151
+ grid-template-columns: 1.1fr 1fr 1.4fr 2fr;
152
+ gap: clamp(20px, 2.4vw, 44px);
153
+ z-index: 5;
154
+ }
155
+ .s-cover .footer-row > div {
156
+ border-top: 1px solid var(--ink);
157
+ padding-top: clamp(10px, 1.2vh, 16px);
158
+ }
159
+ .s-cover .footer-row .ftag {
160
+ text-transform: uppercase; letter-spacing: 0.16em; font-weight: 600;
161
+ font-size: clamp(10px, 0.72vw, 12px);
162
+ margin-bottom: 6px;
163
+ }
164
+ .s-cover .footer-row .ftxt {
165
+ font-family: 'Archivo', sans-serif;
166
+ font-size: clamp(11px, 0.78vw, 13px);
167
+ line-height: 1.45;
168
+ }
169
+ .s-cover .footer-row .fdesc {
170
+ font-family: 'Archivo', sans-serif;
171
+ font-size: clamp(11px, 0.74vw, 12px);
172
+ line-height: 1.5;
173
+ color: var(--ink);
174
+ }
175
+
176
+ /* ──────────────────────────────────────────────────────────────────
177
+ SLIDE 2 — MANIFESTO (single italic statement, atmospheric)
178
+ ────────────────────────────────────────────────────────────────── */
179
+ .s-manifesto { background: var(--paper); display: flex; align-items: center; justify-content: center; }
180
+ .s-manifesto .haze {
181
+ position: absolute; inset: 0; pointer-events: none;
182
+ background:
183
+ radial-gradient(ellipse 70% 60% at 50% 50%, rgba(241,238,46,0.7) 0%, rgba(248,243,155,0.42) 32%, rgba(240,218,124,0.18) 56%, rgba(233,229,219,0) 80%),
184
+ radial-gradient(circle 600px at 12% 88%, rgba(226,107,74,0.15) 0%, rgba(226,107,74,0) 70%);
185
+ }
186
+ .s-manifesto .quote {
187
+ position: relative; z-index: 4;
188
+ max-width: min(86%, 1480px);
189
+ padding: 0 clamp(40px, 6vw, 120px);
190
+ font-family: 'Instrument Serif', Georgia, serif;
191
+ font-style: italic;
192
+ font-weight: 400;
193
+ font-size: clamp(56px, min(7vw, 11vh), 120px);
194
+ line-height: 1.04;
195
+ color: var(--ink);
196
+ letter-spacing: -0.005em;
197
+ text-align: left;
198
+ }
199
+ .s-manifesto .attr {
200
+ position: absolute;
201
+ left: clamp(40px, 4vw, 76px);
202
+ bottom: clamp(56px, 6vh, 96px);
203
+ font-family: 'Archivo', sans-serif;
204
+ font-weight: 600;
205
+ text-transform: uppercase;
206
+ letter-spacing: 0.2em;
207
+ font-size: clamp(11px, 0.85vw, 13px);
208
+ color: var(--ink);
209
+ z-index: 4;
210
+ }
211
+
212
+ /* ──────────────────────────────────────────────────────────────────
213
+ SLIDE 3 — PROGRAMME (split editorial spread)
214
+ ────────────────────────────────────────────────────────────────── */
215
+ .s-programme { background: var(--paper); display: grid; grid-template-columns: 1fr 1fr; }
216
+ .s-programme .left {
217
+ background: var(--sun);
218
+ position: relative;
219
+ padding: clamp(40px, 4.2vw, 80px);
220
+ display: flex; flex-direction: column; justify-content: space-between;
221
+ }
222
+ .s-programme .left .kicker {
223
+ font-family: 'Archivo', sans-serif;
224
+ font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em;
225
+ font-size: clamp(11px, 0.85vw, 14px);
226
+ color: var(--ink);
227
+ }
228
+ .s-programme .left .word {
229
+ font-family: 'Instrument Serif', Georgia, serif;
230
+ font-size: clamp(110px, min(11vw, 18vh), 200px);
231
+ line-height: 0.86;
232
+ color: var(--ink);
233
+ letter-spacing: -0.018em;
234
+ }
235
+ .s-programme .left .meta {
236
+ font-family: 'Archivo', sans-serif;
237
+ font-size: clamp(13px, 0.95vw, 16px);
238
+ line-height: 1.5;
239
+ max-width: 88%;
240
+ color: var(--ink);
241
+ }
242
+ .s-programme .right {
243
+ background: var(--paper);
244
+ position: relative;
245
+ padding: clamp(40px, 4.2vw, 80px) clamp(40px, 4.2vw, 80px) clamp(56px, 5vh, 88px);
246
+ display: flex; flex-direction: column; gap: clamp(18px, 2.2vh, 32px);
247
+ }
248
+ .s-programme .right .head {
249
+ font-family: 'Archivo', sans-serif;
250
+ font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em;
251
+ font-size: clamp(11px, 0.85vw, 14px);
252
+ border-bottom: 1px solid var(--ink);
253
+ padding-bottom: 14px;
254
+ }
255
+ .s-programme .strands {
256
+ display: flex; flex-direction: column;
257
+ gap: clamp(14px, 1.8vh, 22px);
258
+ }
259
+ .s-programme .strand {
260
+ display: grid;
261
+ grid-template-columns: 56px 1fr;
262
+ gap: clamp(14px, 1.4vw, 24px);
263
+ border-bottom: 1px solid rgba(27,37,102,0.18);
264
+ padding-bottom: clamp(12px, 1.6vh, 22px);
265
+ }
266
+ .s-programme .strand .num {
267
+ font-family: 'Instrument Serif', Georgia, serif;
268
+ font-size: clamp(28px, 2vw, 38px);
269
+ color: var(--ink);
270
+ line-height: 1;
271
+ }
272
+ .s-programme .strand h3 {
273
+ margin: 0 0 4px 0;
274
+ font-family: 'Instrument Serif', Georgia, serif;
275
+ font-weight: 400;
276
+ font-size: clamp(22px, 1.7vw, 32px);
277
+ line-height: 1.1;
278
+ color: var(--ink);
279
+ }
280
+ .s-programme .strand p {
281
+ margin: 0;
282
+ font-family: 'Archivo', sans-serif;
283
+ font-size: clamp(14px, 0.95vw, 15px);
284
+ line-height: 1.5;
285
+ color: var(--ink);
286
+ max-width: 92%;
287
+ }
288
+
289
+ /* ──────────────────────────────────────────────────────────────────
290
+ SLIDE 4 — CHAPTER DIVIDER (huge serif numeral)
291
+ ────────────────────────────────────────────────────────────────── */
292
+ .s-chapter { background: var(--paper); }
293
+ .s-chapter .glow {
294
+ position: absolute; inset: 0; pointer-events: none;
295
+ background:
296
+ radial-gradient(circle 720px at -10% -10%, rgba(241,238,46,0.7) 0%, rgba(241,238,46,0) 65%),
297
+ radial-gradient(circle 540px at 110% 110%, rgba(226,107,74,0.18) 0%, rgba(226,107,74,0) 70%);
298
+ }
299
+ .s-chapter .vrail {
300
+ position: absolute;
301
+ left: clamp(40px, 4vw, 76px);
302
+ top: 50%;
303
+ transform: translateY(-50%) rotate(-90deg);
304
+ transform-origin: 0 50%;
305
+ font-family: 'Archivo', sans-serif;
306
+ font-weight: 600;
307
+ text-transform: uppercase;
308
+ letter-spacing: 0.32em;
309
+ font-size: clamp(11px, 0.85vw, 13px);
310
+ color: var(--ink);
311
+ white-space: nowrap;
312
+ z-index: 4;
313
+ }
314
+ .s-chapter .stack {
315
+ position: absolute;
316
+ left: clamp(120px, 12vw, 220px);
317
+ top: clamp(40px, 5vh, 96px);
318
+ bottom: clamp(80px, 9vh, 130px);
319
+ right: clamp(40px, 4vw, 76px);
320
+ display: flex; flex-direction: column; justify-content: center;
321
+ z-index: 4;
322
+ }
323
+ .s-chapter .nm {
324
+ font-family: 'Instrument Serif', Georgia, serif;
325
+ font-size: clamp(220px, min(28vw, 64vh), 720px);
326
+ line-height: 0.84;
327
+ color: var(--ink);
328
+ letter-spacing: -0.04em;
329
+ }
330
+ .s-chapter .ttl {
331
+ margin-top: clamp(12px, 1.6vh, 28px);
332
+ font-family: 'Instrument Serif', Georgia, serif;
333
+ font-style: italic;
334
+ font-size: clamp(40px, min(4.4vw, 7vh), 90px);
335
+ line-height: 1.05;
336
+ color: var(--ink);
337
+ max-width: 78%;
338
+ }
339
+ .s-chapter .lede {
340
+ margin-top: clamp(18px, 2.2vh, 36px);
341
+ font-family: 'Archivo', sans-serif;
342
+ font-size: clamp(15px, 1.05vw, 18px);
343
+ line-height: 1.55;
344
+ color: var(--ink);
345
+ max-width: 56ch;
346
+ }
347
+
348
+ /* ──────────────────────────────────────────────────────────────────
349
+ SLIDE 5 — DATA: ATTENDANCE BARS
350
+ ────────────────────────────────────────────────────────────────── */
351
+ .s-data { background: var(--paper); }
352
+ .s-data .glow {
353
+ position: absolute; inset: 0; pointer-events: none;
354
+ background: radial-gradient(ellipse 50% 40% at 92% 8%, rgba(241,238,46,0.55) 0%, rgba(241,238,46,0) 70%);
355
+ }
356
+ .s-data .frame {
357
+ position: absolute; inset: clamp(40px, 4vw, 76px) clamp(40px, 4vw, 76px) clamp(70px, 7vh, 120px);
358
+ display: grid;
359
+ grid-template-columns: 1fr 1.4fr;
360
+ grid-template-rows: auto 1fr;
361
+ gap: clamp(20px, 2.5vw, 48px);
362
+ z-index: 4;
363
+ }
364
+ .s-data .head { grid-column: 1 / 3; display: flex; align-items: end; justify-content: space-between; gap: 32px; border-bottom: 1px solid var(--ink); padding-bottom: clamp(14px, 1.6vh, 24px); }
365
+ .s-data .head .lab { font-family: 'Archivo', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; font-size: clamp(11px, 0.85vw, 13px); color: var(--ink); }
366
+ .s-data .head .h { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(32px, min(3.6vw, 6vh), 56px); line-height: 1; color: var(--ink); }
367
+
368
+ .s-data .col-a { display: flex; flex-direction: column; justify-content: center; gap: clamp(18px, 2vh, 32px); }
369
+ .s-data .stat { display: flex; flex-direction: column; gap: 4px; }
370
+ .s-data .stat .v { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(72px, min(7vw, 12vh), 144px); line-height: 0.92; color: var(--ink); letter-spacing: -0.01em; }
371
+ .s-data .stat .v sup { font-size: 0.42em; vertical-align: super; opacity: 0.7; font-style: italic; }
372
+ .s-data .stat .lab2 { font-family: 'Archivo', sans-serif; font-weight: 500; text-transform: uppercase; letter-spacing: 0.18em; font-size: clamp(11px, 0.8vw, 13px); color: var(--ink); }
373
+ .s-data .stat .desc { font-family: 'Archivo', sans-serif; font-size: clamp(14px, 0.95vw, 15px); line-height: 1.45; color: var(--ink); max-width: 32ch; margin-top: 4px; }
374
+
375
+ .s-data .chart { display: flex; flex-direction: column; gap: clamp(8px, 1vh, 14px); justify-content: center; }
376
+ .s-data .row { display: grid; grid-template-columns: 64px 1fr 80px; align-items: center; gap: clamp(12px, 1vw, 22px); }
377
+ .s-data .row .yr { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: clamp(12px, 0.85vw, 14px); color: var(--ink); letter-spacing: 0.04em; }
378
+ .s-data .row .val { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: clamp(12px, 0.85vw, 14px); color: var(--ink); text-align: right; letter-spacing: 0.02em; }
379
+ .s-data .bar { height: clamp(14px, 1.6vh, 22px); background: var(--ink); position: relative; }
380
+ .s-data .bar.lit { background: var(--sun); border: 1px solid var(--ink); }
381
+
382
+ /* ──────────────────────────────────────────────────────────────────
383
+ SLIDE 6 — QUOTE SPREAD
384
+ ────────────────────────────────────────────────────────────────── */
385
+ .s-quote { background: var(--paper); }
386
+ .s-quote .yblock {
387
+ position: absolute;
388
+ right: 0; top: 0; bottom: 0;
389
+ width: 32%;
390
+ background: var(--sun);
391
+ }
392
+ .s-quote .glow {
393
+ position: absolute; inset: 0; pointer-events: none;
394
+ background: radial-gradient(circle 600px at 8% 92%, rgba(241,238,46,0.4) 0%, rgba(241,238,46,0) 70%);
395
+ }
396
+ .s-quote .qwrap {
397
+ position: absolute;
398
+ left: clamp(40px, 4vw, 76px);
399
+ right: 36%;
400
+ top: 50%;
401
+ transform: translateY(-50%);
402
+ z-index: 4;
403
+ }
404
+ .s-quote .qkicker {
405
+ font-family: 'Archivo', sans-serif; font-weight: 600;
406
+ text-transform: uppercase; letter-spacing: 0.22em;
407
+ font-size: clamp(11px, 0.82vw, 13px);
408
+ color: var(--ink);
409
+ margin-bottom: clamp(14px, 1.8vh, 26px);
410
+ }
411
+ .s-quote .qbody {
412
+ font-family: 'Instrument Serif', Georgia, serif;
413
+ font-style: italic;
414
+ font-size: clamp(40px, min(4.6vw, 7vh), 88px);
415
+ line-height: 1.06;
416
+ color: var(--ink);
417
+ letter-spacing: -0.005em;
418
+ }
419
+ .s-quote .qattr {
420
+ margin-top: clamp(20px, 2.4vh, 36px);
421
+ display: grid;
422
+ grid-template-columns: auto 1fr;
423
+ gap: clamp(14px, 1.4vw, 24px);
424
+ align-items: end;
425
+ border-top: 1px solid var(--ink);
426
+ padding-top: clamp(10px, 1.4vh, 18px);
427
+ }
428
+ .s-quote .qattr .who { font-family: 'Archivo', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.16em; font-size: clamp(11px, 0.85vw, 13px); color: var(--ink); }
429
+ .s-quote .qattr .role { font-family: 'Archivo', sans-serif; font-size: clamp(11px, 0.78vw, 13px); color: var(--ink); opacity: 0.75; }
430
+ .s-quote .y-mark {
431
+ position: absolute;
432
+ right: clamp(40px, 4vw, 76px);
433
+ bottom: clamp(70px, 8vh, 130px);
434
+ font-family: 'Instrument Serif', Georgia, serif;
435
+ font-size: clamp(120px, min(15vw, 22vh), 280px);
436
+ line-height: 0.9;
437
+ color: var(--ink);
438
+ letter-spacing: -0.04em;
439
+ z-index: 4;
440
+ }
441
+
442
+ /* ──────────────────────────────────────────────────────────────────
443
+ SLIDE 7 — CALENDAR (dense tabular)
444
+ ────────────────────────────────────────────────────────────────── */
445
+ .s-cal { background: var(--paper); }
446
+ .s-cal .glow {
447
+ position: absolute; inset: 0; pointer-events: none;
448
+ background: radial-gradient(circle 700px at 105% 0%, rgba(241,238,46,0.45) 0%, rgba(241,238,46,0) 65%);
449
+ }
450
+ .s-cal .frame {
451
+ position: absolute;
452
+ inset: clamp(40px, 4vw, 76px) clamp(40px, 4vw, 76px) clamp(70px, 7vh, 120px);
453
+ display: flex; flex-direction: column;
454
+ z-index: 4;
455
+ }
456
+ .s-cal .frame .topbar {
457
+ display: flex; align-items: end; justify-content: space-between;
458
+ border-bottom: 1px solid var(--ink);
459
+ padding-bottom: clamp(12px, 1.4vh, 22px);
460
+ margin-bottom: clamp(16px, 1.8vh, 26px);
461
+ }
462
+ .s-cal .frame .topbar .h {
463
+ font-family: 'Instrument Serif', Georgia, serif;
464
+ font-size: clamp(40px, min(4.4vw, 7vh), 80px);
465
+ line-height: 1;
466
+ color: var(--ink);
467
+ }
468
+ .s-cal .frame .topbar .lab { font-family: 'Archivo', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; font-size: clamp(11px, 0.82vw, 13px); color: var(--ink); }
469
+ .s-cal .ledger { flex: 1; display: flex; flex-direction: column; gap: 0; }
470
+ .s-cal .row {
471
+ display: grid;
472
+ grid-template-columns: 92px 1.6fr 0.9fr 80px;
473
+ gap: clamp(14px, 1.4vw, 28px);
474
+ align-items: center;
475
+ padding: clamp(10px, 1.3vh, 18px) 0;
476
+ border-bottom: 1px solid rgba(27,37,102,0.2);
477
+ }
478
+ .s-cal .row .date { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: clamp(13px, 0.95vw, 16px); color: var(--ink); letter-spacing: 0.02em; }
479
+ .s-cal .row .ttl { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(20px, 1.6vw, 30px); line-height: 1.15; color: var(--ink); }
480
+ .s-cal .row .ttl em { font-style: italic; }
481
+ .s-cal .row .ven { font-family: 'Archivo', sans-serif; font-size: clamp(14px, 0.92vw, 15px); color: var(--ink); }
482
+ .s-cal .row .dur { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: clamp(12px, 0.84vw, 14px); color: var(--ink); text-align: right; letter-spacing: 0.04em; opacity: 0.78; }
483
+ .s-cal .row.headrow { border-bottom: 1px solid var(--ink); padding-bottom: 8px; }
484
+ .s-cal .row.headrow > div { font-family: 'Archivo', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em; font-size: clamp(10px, 0.7vw, 12px); color: var(--ink); }
485
+
486
+ /* ──────────────────────────────────────────────────────────────────
487
+ SLIDE 8 — COLOPHON (mirror of cover, inverted)
488
+ ────────────────────────────────────────────────────────────────── */
489
+ .s-colophon { background: var(--paper); }
490
+ .s-colophon .glow {
491
+ position: absolute; inset: 0; pointer-events: none;
492
+ background:
493
+ radial-gradient(ellipse 55% 50% at 50% 110%, rgba(241,238,46,0.85) 0%, rgba(241,238,46,0.5) 35%, rgba(240,218,124,0.18) 60%, rgba(233,229,219,0) 84%),
494
+ radial-gradient(ellipse 30% 30% at 12% 18%, rgba(226,107,74,0.18) 0%, rgba(226,107,74,0) 70%);
495
+ }
496
+ .s-colophon .blocks {
497
+ position: absolute; inset: 0;
498
+ pointer-events: none;
499
+ display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: repeat(8, 1fr);
500
+ }
501
+ .s-colophon .blocks .b1 { background: rgba(241,238,46,0.55); grid-column: 1 / 3; grid-row: 1 / 3; }
502
+ .s-colophon .blocks .b2 { background: rgba(241,238,46,0.4); grid-column: 4; grid-row: 5 / 8; }
503
+ .s-colophon .titlewrap {
504
+ position: absolute;
505
+ left: clamp(40px, 4vw, 76px);
506
+ top: clamp(36px, 4vh, 72px);
507
+ z-index: 5;
508
+ max-width: 92%;
509
+ }
510
+ .s-colophon .ktag {
511
+ font-family: 'Archivo', sans-serif; font-weight: 600; text-transform: uppercase;
512
+ letter-spacing: 0.22em; font-size: clamp(11px, 0.82vw, 13px); color: var(--ink); margin-bottom: clamp(12px, 1.4vh, 22px);
513
+ }
514
+ .s-colophon .ttl {
515
+ font-family: 'Instrument Serif', Georgia, serif;
516
+ font-size: clamp(80px, min(10vw, 16vh), 200px);
517
+ line-height: 0.86;
518
+ color: var(--ink);
519
+ letter-spacing: -0.018em;
520
+ }
521
+ .s-colophon .ttl em { font-style: italic; }
522
+
523
+ .s-colophon .colofo {
524
+ position: absolute;
525
+ left: clamp(40px, 4vw, 76px);
526
+ bottom: clamp(70px, 8vh, 120px);
527
+ right: clamp(40px, 4vw, 76px);
528
+ display: grid;
529
+ grid-template-columns: 1.2fr 1.1fr 1fr 1.4fr;
530
+ gap: clamp(20px, 2.4vw, 44px);
531
+ z-index: 5;
532
+ }
533
+ .s-colophon .colofo > div {
534
+ border-top: 1px solid var(--ink);
535
+ padding-top: clamp(10px, 1.2vh, 16px);
536
+ }
537
+ .s-colophon .colofo .ftag { text-transform: uppercase; letter-spacing: 0.16em; font-weight: 600; font-size: clamp(10px, 0.72vw, 12px); margin-bottom: 6px; color: var(--ink); }
538
+ .s-colophon .colofo .ftxt { font-family: 'Archivo', sans-serif; font-size: clamp(11px, 0.78vw, 13px); line-height: 1.5; color: var(--ink); }
539
+ </style>
540
+ </head>
541
+ <body>
542
+
543
+ <div class="deck">
544
+ <div class="stage">
545
+
546
+ <!-- 1. COVER ──────────────────────────────────────────────────── -->
547
+ <section class="slide s-cover active">
548
+ <div class="blocks" aria-hidden="true">
549
+ <div class="b1"></div><div class="b2"></div><div class="b3"></div><div class="b4"></div>
550
+ </div>
551
+ <div class="sunglow" aria-hidden="true"></div>
552
+
553
+ <div class="date-rail">02.05—<br/>11.10.2026</div>
554
+
555
+ <div class="titlewrap">
556
+ <h1 class="title">Aurora<br/><em>Programme</em></h1>
557
+ <div class="caption subline">Annual Survey · Issue No. 04</div>
558
+ </div>
559
+
560
+ <div class="footer-row">
561
+ <div>
562
+ <div class="caption ftag">Hosted by</div>
563
+ <div class="caption ftxt">Aurora Institute<br/>for Public Form</div>
564
+ </div>
565
+ <div>
566
+ <div class="caption ftag">Edition</div>
567
+ <div class="caption ftxt">Fourth annual<br/>open programme</div>
568
+ </div>
569
+ <div>
570
+ <div class="caption ftag">Reading</div>
571
+ <div class="caption ftxt">A field study of light,<br/>matter and atmosphere</div>
572
+ </div>
573
+ <div>
574
+ <div class="caption ftag">Notes</div>
575
+ <div class="caption fdesc">Six months of exhibitions, residencies and public lectures across three pavilions, mapped against a slow-changing palette of yellow.</div>
576
+ </div>
577
+ </div>
578
+
579
+ <div class="pagenum">01 / 08</div>
580
+ </section>
581
+
582
+ <!-- 2. MANIFESTO ──────────────────────────────────────────────── -->
583
+ <section class="slide s-manifesto">
584
+ <div class="haze" aria-hidden="true"></div>
585
+ <p class="quote">A room is a slow argument with the sun. We have spent four years listening for what it answers.</p>
586
+ <div class="attr">From the Aurora Charter, 2023</div>
587
+ <div class="pagenum">02 / 08</div>
588
+ </section>
589
+
590
+ <!-- 3. PROGRAMME ──────────────────────────────────────────────── -->
591
+ <section class="slide s-programme">
592
+ <div class="left">
593
+ <div class="kicker">Strands · 2026</div>
594
+ <div>
595
+ <div class="word">Programme</div>
596
+ </div>
597
+ <div class="meta">Six interlocking strands run across the year. Each is independently curated, but every strand answers to the same question: what does light know that we don't?</div>
598
+ </div>
599
+ <div class="right">
600
+ <div class="head caption">Strand · Title · Anchor</div>
601
+ <div class="strands">
602
+ <div class="strand">
603
+ <div class="num">01</div>
604
+ <div>
605
+ <h3>Slow Atmospheres</h3>
606
+ <p>A reading room of long-form essays, drawings and weather notebooks, organised around the changing yellow of late afternoon.</p>
607
+ </div>
608
+ </div>
609
+ <div class="strand">
610
+ <div class="num">02</div>
611
+ <div>
612
+ <h3>Public Form</h3>
613
+ <p>Three commissions in three pavilions, each examining how a public square wears its own light over the course of a season.</p>
614
+ </div>
615
+ </div>
616
+ <div class="strand">
617
+ <div class="num">03</div>
618
+ <div>
619
+ <h3>Field Notes</h3>
620
+ <p>A residency programme drawing artists, architects and meteorologists together for a hundred days of recording, drawing and arguing.</p>
621
+ </div>
622
+ </div>
623
+ <div class="strand">
624
+ <div class="num">04</div>
625
+ <div>
626
+ <h3>Quiet Editions</h3>
627
+ <p>A typographic publishing strand committed to printing only what asks to be read in daylight, on warm paper, slowly.</p>
628
+ </div>
629
+ </div>
630
+ <div class="strand">
631
+ <div class="num">05</div>
632
+ <div>
633
+ <h3>Open Conversations</h3>
634
+ <p>Twelve evenings of public talks, paired with a meal and a question: what is the weather like in your work?</p>
635
+ </div>
636
+ </div>
637
+ </div>
638
+ </div>
639
+ <div class="pagenum">03 / 08</div>
640
+ </section>
641
+
642
+ <!-- 4. CHAPTER DIVIDER ────────────────────────────────────────── -->
643
+ <section class="slide s-chapter">
644
+ <div class="glow" aria-hidden="true"></div>
645
+ <div class="caption vrail">First Chapter — Slow Atmospheres</div>
646
+ <div class="stack">
647
+ <div class="nm">01</div>
648
+ <div class="ttl">A reading of the season's quietest hours</div>
649
+ <p class="lede">In its first chapter the Aurora Programme convenes around the slowest light of the year: the long minutes after the sun has gone but before the room has admitted it. We open the year in March, in three rooms, in three cities, with three lamps left burning past closing.</p>
650
+ </div>
651
+ <div class="pagenum">04 / 08</div>
652
+ </section>
653
+
654
+ <!-- 5. DATA ──────────────────────────────────────────────────── -->
655
+ <section class="slide s-data">
656
+ <div class="glow" aria-hidden="true"></div>
657
+ <div class="frame">
658
+ <div class="head">
659
+ <div class="h">Public attendance</div>
660
+ <div class="caption lab">Open programme · 2022—2026</div>
661
+ </div>
662
+ <div class="col-a">
663
+ <div class="stat">
664
+ <div class="v">182<sup>k</sup></div>
665
+ <div class="caption lab2">Visitors · Year four</div>
666
+ <div class="desc">A 2.4× rise on the inaugural year, drawn from a programme that grew slower than the audience.</div>
667
+ </div>
668
+ <div class="stat">
669
+ <div class="v">7<sup>4%</sup></div>
670
+ <div class="caption lab2">Returning audience</div>
671
+ <div class="desc">Three quarters of last year's visitors came back; nearly half came back twice.</div>
672
+ </div>
673
+ </div>
674
+ <div class="chart">
675
+ <div class="row"><div class="caption yr">2022</div><div class="bar" style="width: 32%"></div><div class="caption val">76,400</div></div>
676
+ <div class="row"><div class="caption yr">2023</div><div class="bar" style="width: 48%"></div><div class="caption val">112,800</div></div>
677
+ <div class="row"><div class="caption yr">2024</div><div class="bar" style="width: 62%"></div><div class="caption val">141,200</div></div>
678
+ <div class="row"><div class="caption yr">2025</div><div class="bar" style="width: 72%"></div><div class="caption val">164,900</div></div>
679
+ <div class="row"><div class="caption yr">2026</div><div class="bar lit" style="width: 86%"></div><div class="caption val">182,300</div></div>
680
+ </div>
681
+ </div>
682
+ <div class="pagenum">05 / 08</div>
683
+ </section>
684
+
685
+ <!-- 6. QUOTE ──────────────────────────────────────────────────── -->
686
+ <section class="slide s-quote">
687
+ <div class="yblock" aria-hidden="true"></div>
688
+ <div class="glow" aria-hidden="true"></div>
689
+ <div class="qwrap">
690
+ <div class="caption qkicker">A note from the curator</div>
691
+ <p class="qbody">The yellow we use is not the yellow we mean. It is the yellow that arrives ten minutes after we leave the building.</p>
692
+ <div class="qattr">
693
+ <div class="caption who">Idun Reijners</div>
694
+ <div class="caption role">Curator-at-large, Aurora Institute · letter to the editorial board, January 2026</div>
695
+ </div>
696
+ </div>
697
+ <div class="y-mark" aria-hidden="true">¨</div>
698
+ <div class="pagenum">06 / 08</div>
699
+ </section>
700
+
701
+ <!-- 7. CALENDAR ──────────────────────────────────────────────── -->
702
+ <section class="slide s-cal">
703
+ <div class="glow" aria-hidden="true"></div>
704
+ <div class="frame">
705
+ <div class="topbar">
706
+ <div class="h">Public calendar</div>
707
+ <div class="caption lab">Selected dates · May—October</div>
708
+ </div>
709
+ <div class="ledger">
710
+ <div class="row headrow"><div class="caption">Date</div><div class="caption">Title</div><div class="caption">Venue</div><div class="caption">Length</div></div>
711
+ <div class="row">
712
+ <div class="caption date">02.05</div>
713
+ <div class="ttl"><em>The Long Yellow</em>, opening lecture</div>
714
+ <div class="ven">Pavilion of Quiet Form, Rotterdam</div>
715
+ <div class="caption dur">90 min</div>
716
+ </div>
717
+ <div class="row">
718
+ <div class="caption date">17.05</div>
719
+ <div class="ttl">A walk through the season's first room</div>
720
+ <div class="ven">Reading Garden, Pavilion North</div>
721
+ <div class="caption dur">2 hr</div>
722
+ </div>
723
+ <div class="row">
724
+ <div class="caption date">06.06</div>
725
+ <div class="ttl"><em>Public Form 01</em> — opening</div>
726
+ <div class="ven">Square of the Slow Sun, Antwerp</div>
727
+ <div class="caption dur">All day</div>
728
+ </div>
729
+ <div class="row">
730
+ <div class="caption date">28.06</div>
731
+ <div class="ttl">Field Notes residency, week one supper</div>
732
+ <div class="ven">House of the Half Window</div>
733
+ <div class="caption dur">3 hr</div>
734
+ </div>
735
+ <div class="row">
736
+ <div class="caption date">19.07</div>
737
+ <div class="ttl"><em>A Letter to the Sun</em>, evening reading</div>
738
+ <div class="ven">Aurora Library, room 3</div>
739
+ <div class="caption dur">75 min</div>
740
+ </div>
741
+ <div class="row">
742
+ <div class="caption date">14.08</div>
743
+ <div class="ttl">Quiet Editions — print fair &amp; book launch</div>
744
+ <div class="ven">Type Garden, Pavilion South</div>
745
+ <div class="caption dur">2 days</div>
746
+ </div>
747
+ <div class="row">
748
+ <div class="caption date">22.09</div>
749
+ <div class="ttl">Open Conversations · meteorology &amp; drawing</div>
750
+ <div class="ven">Reading Room, ground floor</div>
751
+ <div class="caption dur">2 hr</div>
752
+ </div>
753
+ <div class="row">
754
+ <div class="caption date">11.10</div>
755
+ <div class="ttl"><em>The Last Window</em>, closing performance</div>
756
+ <div class="ven">Pavilion of Quiet Form, Rotterdam</div>
757
+ <div class="caption dur">60 min</div>
758
+ </div>
759
+ </div>
760
+ </div>
761
+ <div class="pagenum">07 / 08</div>
762
+ </section>
763
+
764
+ <!-- 8. COLOPHON ──────────────────────────────────────────────── -->
765
+ <section class="slide s-colophon">
766
+ <div class="blocks" aria-hidden="true">
767
+ <div class="b1"></div><div class="b2"></div>
768
+ </div>
769
+ <div class="glow" aria-hidden="true"></div>
770
+
771
+ <div class="titlewrap">
772
+ <div class="caption ktag">Colophon · Programme 04</div>
773
+ <h2 class="ttl">With thanks<br/>to the slow<br/><em>readers.</em></h2>
774
+ </div>
775
+
776
+ <div class="colofo">
777
+ <div>
778
+ <div class="caption ftag">Curated by</div>
779
+ <div class="caption ftxt">Idun Reijners<br/>with the editorial board</div>
780
+ </div>
781
+ <div>
782
+ <div class="caption ftag">Designed</div>
783
+ <div class="caption ftxt">In daylight, on warm paper,<br/>over fourteen weeks</div>
784
+ </div>
785
+ <div>
786
+ <div class="caption ftag">Hosts</div>
787
+ <div class="caption ftxt">Aurora Institute<br/>Pavilion of Quiet Form<br/>Reading Garden</div>
788
+ </div>
789
+ <div>
790
+ <div class="caption ftag">Until next year</div>
791
+ <div class="caption ftxt">The fifth programme opens in May 2027. Look for the yellow on the door.</div>
792
+ </div>
793
+ </div>
794
+
795
+ <div class="pagenum">08 / 08</div>
796
+ </section>
797
+
798
+ </div>
799
+ </div>
800
+
801
+ <div class="caption nav-hint">← / → · space</div>
802
+
803
+ <script>
804
+ // Plain vanilla navigation: arrows, space, home/end, swipe.
805
+ // Show only the active slide via class toggle.
806
+ const slides = Array.from(document.querySelectorAll('.slide'));
807
+ let current = 0;
808
+ function show(i) {
809
+ if (i < 0) i = 0;
810
+ if (i > slides.length - 1) i = slides.length - 1;
811
+ slides[current].classList.remove('active');
812
+ slides[i].classList.add('active');
813
+ current = i;
814
+ }
815
+ document.addEventListener('keydown', (e) => {
816
+ if (e.key === 'ArrowRight' || e.key === 'PageDown' || e.key === ' ') { e.preventDefault(); show(current + 1); }
817
+ else if (e.key === 'ArrowLeft' || e.key === 'PageUp') { e.preventDefault(); show(current - 1); }
818
+ else if (e.key === 'Home') { e.preventDefault(); show(0); }
819
+ else if (e.key === 'End') { e.preventDefault(); show(slides.length - 1); }
820
+ });
821
+ // Touch swipe — basic horizontal recogniser
822
+ let tx = null;
823
+ document.addEventListener('touchstart', (e) => { tx = e.touches[0].clientX; }, { passive: true });
824
+ document.addEventListener('touchend', (e) => {
825
+ if (tx == null) return;
826
+ const dx = e.changedTouches[0].clientX - tx;
827
+ if (Math.abs(dx) > 40) show(current + (dx < 0 ? 1 : -1));
828
+ tx = null;
829
+ });
830
+ </script>
831
+
832
+ </body>
833
+ </html>