@hybridlabor-api/aos 4.6.6 → 4.7.1

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 (503) hide show
  1. package/.agents/agents.md +9 -3
  2. package/.agents/nodes.json +7 -2
  3. package/.agents/state.schema.json +26 -1
  4. package/.agents/vendor-manifest.json +56 -0
  5. package/.agents/workflows/startcycle-graph.md +2 -2
  6. package/.claude/agents/architect.md +7 -2
  7. package/.claude/agents/security-reviewer.md +1 -1
  8. package/.claude/agents/techlead.md +2 -0
  9. package/.claude/hooks/memb-inject.mjs +257 -135
  10. package/.claude/hooks/trail-relay.mjs +18 -0
  11. package/.claude/settings.json +70 -0
  12. package/.claude/workflows/startcycle-dispatch.mjs +203 -17
  13. package/.opencode/agents/architect.md +7 -2
  14. package/.opencode/agents/techlead.md +2 -0
  15. package/.opencode/plugins/bdb-aos.js +75 -0
  16. package/THIRD_PARTY_NOTICES.md +57 -1
  17. package/bin/aos-doctor.mjs +366 -0
  18. package/bin/aos-store.mjs +167 -0
  19. package/bin/aos-uninstall.mjs +55 -1
  20. package/docs/AUDIT_BRIEF_ECC_STORE.md +122 -0
  21. package/docs/PLAN_AOS_STORE_PHASE1.md +190 -0
  22. package/docs/handover/agenttrail-for-ao.md +58 -0
  23. package/docs/handover/deja-for-ao.md +51 -0
  24. package/installer.js +182 -38
  25. package/lib/aos-archify-contract.mjs +277 -0
  26. package/lib/ecc-store-index.json +1 -0
  27. package/mcp_config.json +8 -0
  28. package/mcps/mcsc/README.md +24 -0
  29. package/mcps/mcsc/package-lock.json +1234 -0
  30. package/mcps/mcsc/package.json +14 -0
  31. package/mcps/mcsc/packages/core/bin/mcsc.js +162 -0
  32. package/mcps/mcsc/packages/core/rulebook.default.yaml +49 -0
  33. package/mcps/mcsc/packages/core/schema/rulebook.schema.json +56 -0
  34. package/mcps/mcsc/packages/core/src/adapters/agy.js +107 -0
  35. package/mcps/mcsc/packages/core/src/adapters/codex.js +179 -0
  36. package/mcps/mcsc/packages/core/src/adapters/native.js +14 -0
  37. package/mcps/mcsc/packages/core/src/adapters/opencode.js +183 -0
  38. package/mcps/mcsc/packages/core/src/adapters/types.js +21 -0
  39. package/mcps/mcsc/packages/core/src/capabilities/buildOfferTable.js +34 -0
  40. package/mcps/mcsc/packages/core/src/capabilities/registry.js +99 -0
  41. package/mcps/mcsc/packages/core/src/capabilities/types.js +24 -0
  42. package/mcps/mcsc/packages/core/src/detect/cache.js +47 -0
  43. package/mcps/mcsc/packages/core/src/detect/inventory.js +73 -0
  44. package/mcps/mcsc/packages/core/src/detect/probes.js +158 -0
  45. package/mcps/mcsc/packages/core/src/detect/types.js +26 -0
  46. package/mcps/mcsc/packages/core/src/rulebook/load.js +53 -0
  47. package/mcps/mcsc/packages/core/src/rulebook/resolve.js +227 -0
  48. package/mcps/mcsc/packages/core/src/rulebook/rulebook.types.js +89 -0
  49. package/mcps/mcsc/packages/core/src/trail.js +17 -0
  50. package/mcps/mcsc/packages/mcp/server.js +302 -0
  51. package/mcps/mcsc/server.js +2 -0
  52. package/package.json +8 -2
  53. package/scripts/build-ecc-store-index.mjs +147 -0
  54. package/skills/basic/bdbmediastorm/SKILL.md +1 -1
  55. package/skills/basic/godmode-ui-ux/SKILL.md +2 -2
  56. package/skills/basic/godmode-ui-ux/references/anti-slop-rules.md +44 -40
  57. package/skills/basic/godmode-ui-ux/references/taste-archetypes.md +49 -0
  58. package/skills/basic/startcycle/SKILL.md +7 -0
  59. package/skills/basic/startcycle-graph/SKILL.md +25 -0
  60. package/skills/basic/startcycle-graph-user/SKILL.md +3 -0
  61. package/skills/basic/teamwork-preview/SKILL.md +2 -0
  62. package/skills/bdbrainstorm/SKILL.md +1 -0
  63. package/skills/global_config/agenttrail/LICENSE +21 -0
  64. package/skills/global_config/agenttrail/SKILL.md +48 -0
  65. package/skills/global_config/agenttrail/bin/agenttrail.mjs +1113 -0
  66. package/skills/global_config/agenttrail/public/index.html +662 -0
  67. package/skills/global_config/aos-project-init/SKILL.md +25 -5
  68. package/skills/global_config/aos-setup/SKILL.md +34 -1
  69. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +115 -1
  70. package/skills/global_config/archify/LICENSE +22 -0
  71. package/skills/global_config/archify/SKILL.md +140 -0
  72. package/skills/global_config/archify/THIRD_PARTY_NOTICES.md +69 -0
  73. package/skills/global_config/archify/assets/JetBrainsMono-OFL.txt +93 -0
  74. package/skills/global_config/archify/assets/template.html +14937 -0
  75. package/skills/global_config/archify/bin/archify.mjs +2139 -0
  76. package/skills/global_config/archify/bin/open-artifact.mjs +86 -0
  77. package/skills/global_config/archify/bin/preview.mjs +653 -0
  78. package/skills/global_config/archify/bin/visual-check.mjs +829 -0
  79. package/skills/global_config/archify/brand-marks/README.md +31 -0
  80. package/skills/global_config/archify/brand-marks/catalog.json +131 -0
  81. package/skills/global_config/archify/delta/architecture-delta.mjs +1232 -0
  82. package/skills/global_config/archify/examples/agent-run.lifecycle.json +60 -0
  83. package/skills/global_config/archify/examples/agent-tool-call.workflow.json +94 -0
  84. package/skills/global_config/archify/examples/async-job-roundtrip.sequence.json +61 -0
  85. package/skills/global_config/archify/examples/brand-aware-delivery.architecture.json +47 -0
  86. package/skills/global_config/archify/examples/cache-miss-request.sequence.json +82 -0
  87. package/skills/global_config/archify/examples/checkout-platform.base.architecture.json +31 -0
  88. package/skills/global_config/archify/examples/checkout-platform.head.architecture.json +31 -0
  89. package/skills/global_config/archify/examples/dataflow-product-analytics.html +15048 -0
  90. package/skills/global_config/archify/examples/deployment-release.lifecycle.json +49 -0
  91. package/skills/global_config/archify/examples/event-stream.dataflow.json +57 -0
  92. package/skills/global_config/archify/examples/incident-response.workflow.json +64 -0
  93. package/skills/global_config/archify/examples/lifecycle-agent-run.html +14983 -0
  94. package/skills/global_config/archify/examples/product-analytics.dataflow.json +76 -0
  95. package/skills/global_config/archify/examples/production-deployment.architecture.json +71 -0
  96. package/skills/global_config/archify/examples/release-delivery.workflow.json +62 -0
  97. package/skills/global_config/archify/examples/sequence-cache-miss-request.html +15063 -0
  98. package/skills/global_config/archify/examples/web-app-rendered.html +15012 -0
  99. package/skills/global_config/archify/examples/web-app.architecture.json +46 -0
  100. package/skills/global_config/archify/examples/workflow-agent-tool-call-rendered.html +15054 -0
  101. package/skills/global_config/archify/migrations/workflow-v2.mjs +279 -0
  102. package/skills/global_config/archify/package.json +39 -0
  103. package/skills/global_config/archify/recipes/scenarios.mjs +391 -0
  104. package/skills/global_config/archify/references/authoring-contract.md +247 -0
  105. package/skills/global_config/archify/references/brand-marks.md +65 -0
  106. package/skills/global_config/archify/references/delivery-contract.md +138 -0
  107. package/skills/global_config/archify/references/viewer-runtime.md +45 -0
  108. package/skills/global_config/archify/renderers/architecture/grid.mjs +62 -0
  109. package/skills/global_config/archify/renderers/architecture/render-architecture.mjs +1078 -0
  110. package/skills/global_config/archify/renderers/dataflow/README.md +104 -0
  111. package/skills/global_config/archify/renderers/dataflow/render-dataflow.mjs +483 -0
  112. package/skills/global_config/archify/renderers/lifecycle/README.md +115 -0
  113. package/skills/global_config/archify/renderers/lifecycle/render-lifecycle.mjs +561 -0
  114. package/skills/global_config/archify/renderers/sequence/README.md +114 -0
  115. package/skills/global_config/archify/renderers/sequence/render-sequence.mjs +464 -0
  116. package/skills/global_config/archify/renderers/shared/brand-marks.mjs +563 -0
  117. package/skills/global_config/archify/renderers/shared/cli.mjs +218 -0
  118. package/skills/global_config/archify/renderers/shared/desktop-readability.mjs +26 -0
  119. package/skills/global_config/archify/renderers/shared/diagnostics.mjs +160 -0
  120. package/skills/global_config/archify/renderers/shared/engineering-profiles.mjs +157 -0
  121. package/skills/global_config/archify/renderers/shared/generated-brand-marks.mjs +2003 -0
  122. package/skills/global_config/archify/renderers/shared/generated-validators.mjs +13 -0
  123. package/skills/global_config/archify/renderers/shared/geometry.mjs +1423 -0
  124. package/skills/global_config/archify/renderers/shared/i18n.mjs +595 -0
  125. package/skills/global_config/archify/renderers/shared/layout-report.mjs +40 -0
  126. package/skills/global_config/archify/renderers/shared/legend.mjs +217 -0
  127. package/skills/global_config/archify/renderers/shared/output-path.mjs +340 -0
  128. package/skills/global_config/archify/renderers/shared/repository-evidence.mjs +239 -0
  129. package/skills/global_config/archify/renderers/shared/repository-location.mjs +58 -0
  130. package/skills/global_config/archify/renderers/shared/text-fit.mjs +49 -0
  131. package/skills/global_config/archify/renderers/shared/utils.mjs +232 -0
  132. package/skills/global_config/archify/renderers/shared/validator.mjs +86 -0
  133. package/skills/global_config/archify/renderers/workflow/README.md +223 -0
  134. package/skills/global_config/archify/renderers/workflow/render-workflow.mjs +35 -0
  135. package/skills/global_config/archify/renderers/workflow/workflow-compiler.mjs +4400 -0
  136. package/skills/global_config/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
  137. package/skills/global_config/archify/schemas/README.md +211 -0
  138. package/skills/global_config/archify/schemas/architecture.schema.json +178 -0
  139. package/skills/global_config/archify/schemas/common.schema.json +115 -0
  140. package/skills/global_config/archify/schemas/dataflow.schema.json +243 -0
  141. package/skills/global_config/archify/schemas/lifecycle.schema.json +266 -0
  142. package/skills/global_config/archify/schemas/sequence.schema.json +223 -0
  143. package/skills/global_config/archify/schemas/workflow.schema.json +428 -0
  144. package/skills/global_config/archify/scripts/check-render-output.mjs +916 -0
  145. package/skills/global_config/archify/scripts/generate-brand-marks.mjs +141 -0
  146. package/skills/global_config/archify/scripts/generate-validators.mjs +66 -0
  147. package/skills/global_config/archify/scripts/render-examples.mjs +26 -0
  148. package/skills/global_config/archify/skill-release.json +10 -0
  149. package/skills/global_config/ask-tim/SKILL.md +10 -0
  150. package/skills/global_config/bdb-security-audit/SKILL.md +109 -0
  151. package/skills/global_config/bdb-security-audit/references/audit-checklists.md +172 -0
  152. package/skills/global_config/bdb-security-audit/references/skylos-guide.md +139 -0
  153. package/skills/global_config/bdb-security-audit/references/xalgorix-bridge.md +110 -0
  154. package/skills/global_config/bdbdesignpro/SKILL.md +4 -4
  155. package/skills/global_config/bdbdesignpro/references/bdb-motion-tokens.md +52 -31
  156. package/skills/global_config/bdbresilience/SKILL.md +10 -0
  157. package/skills/global_config/brag/SKILL.md +179 -0
  158. package/skills/global_config/brag/assets/music/README.md +20 -0
  159. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
  160. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
  161. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
  162. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
  163. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
  164. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
  165. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
  166. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
  167. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
  168. package/skills/global_config/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
  169. package/skills/global_config/brag/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
  170. package/skills/global_config/brag/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
  171. package/skills/global_config/brag/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
  172. package/skills/global_config/brag/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
  173. package/skills/global_config/brag/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
  174. package/skills/global_config/brag/assets/sfx/casino/card-fan-1.ogg +0 -0
  175. package/skills/global_config/brag/assets/sfx/casino/card-fan-2.ogg +0 -0
  176. package/skills/global_config/brag/assets/sfx/casino/card-place-1.ogg +0 -0
  177. package/skills/global_config/brag/assets/sfx/casino/card-place-2.ogg +0 -0
  178. package/skills/global_config/brag/assets/sfx/casino/card-place-3.ogg +0 -0
  179. package/skills/global_config/brag/assets/sfx/casino/card-place-4.ogg +0 -0
  180. package/skills/global_config/brag/assets/sfx/casino/card-shove-1.ogg +0 -0
  181. package/skills/global_config/brag/assets/sfx/casino/card-shove-2.ogg +0 -0
  182. package/skills/global_config/brag/assets/sfx/casino/card-shove-3.ogg +0 -0
  183. package/skills/global_config/brag/assets/sfx/casino/card-shove-4.ogg +0 -0
  184. package/skills/global_config/brag/assets/sfx/casino/card-shuffle.ogg +0 -0
  185. package/skills/global_config/brag/assets/sfx/casino/card-slide-1.ogg +0 -0
  186. package/skills/global_config/brag/assets/sfx/casino/card-slide-2.ogg +0 -0
  187. package/skills/global_config/brag/assets/sfx/casino/card-slide-3.ogg +0 -0
  188. package/skills/global_config/brag/assets/sfx/casino/card-slide-4.ogg +0 -0
  189. package/skills/global_config/brag/assets/sfx/casino/card-slide-5.ogg +0 -0
  190. package/skills/global_config/brag/assets/sfx/casino/card-slide-6.ogg +0 -0
  191. package/skills/global_config/brag/assets/sfx/casino/card-slide-7.ogg +0 -0
  192. package/skills/global_config/brag/assets/sfx/casino/card-slide-8.ogg +0 -0
  193. package/skills/global_config/brag/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
  194. package/skills/global_config/brag/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
  195. package/skills/global_config/brag/assets/sfx/casino/chip-lay-1.ogg +0 -0
  196. package/skills/global_config/brag/assets/sfx/casino/chip-lay-2.ogg +0 -0
  197. package/skills/global_config/brag/assets/sfx/casino/chip-lay-3.ogg +0 -0
  198. package/skills/global_config/brag/assets/sfx/casino/chips-collide-1.ogg +0 -0
  199. package/skills/global_config/brag/assets/sfx/casino/chips-collide-2.ogg +0 -0
  200. package/skills/global_config/brag/assets/sfx/casino/chips-collide-3.ogg +0 -0
  201. package/skills/global_config/brag/assets/sfx/casino/chips-collide-4.ogg +0 -0
  202. package/skills/global_config/brag/assets/sfx/casino/chips-handle-1.ogg +0 -0
  203. package/skills/global_config/brag/assets/sfx/casino/chips-handle-2.ogg +0 -0
  204. package/skills/global_config/brag/assets/sfx/casino/chips-handle-3.ogg +0 -0
  205. package/skills/global_config/brag/assets/sfx/casino/chips-handle-4.ogg +0 -0
  206. package/skills/global_config/brag/assets/sfx/casino/chips-handle-6.ogg +0 -0
  207. package/skills/global_config/brag/assets/sfx/casino/chips-stack-1.ogg +0 -0
  208. package/skills/global_config/brag/assets/sfx/casino/chips-stack-2.ogg +0 -0
  209. package/skills/global_config/brag/assets/sfx/casino/chips-stack-3.ogg +0 -0
  210. package/skills/global_config/brag/assets/sfx/casino/chips-stack-4.ogg +0 -0
  211. package/skills/global_config/brag/assets/sfx/casino/chips-stack-5.ogg +0 -0
  212. package/skills/global_config/brag/assets/sfx/casino/chips-stack-6.ogg +0 -0
  213. package/skills/global_config/brag/assets/sfx/casino/dice-grab-1.ogg +0 -0
  214. package/skills/global_config/brag/assets/sfx/casino/dice-grab-2.ogg +0 -0
  215. package/skills/global_config/brag/assets/sfx/casino/dice-shake-1.ogg +0 -0
  216. package/skills/global_config/brag/assets/sfx/casino/dice-shake-2.ogg +0 -0
  217. package/skills/global_config/brag/assets/sfx/casino/dice-shake-3.ogg +0 -0
  218. package/skills/global_config/brag/assets/sfx/casino/dice-throw-1.ogg +0 -0
  219. package/skills/global_config/brag/assets/sfx/casino/dice-throw-2.ogg +0 -0
  220. package/skills/global_config/brag/assets/sfx/casino/dice-throw-3.ogg +0 -0
  221. package/skills/global_config/brag/assets/sfx/casino/die-throw-1.ogg +0 -0
  222. package/skills/global_config/brag/assets/sfx/casino/die-throw-2.ogg +0 -0
  223. package/skills/global_config/brag/assets/sfx/casino/die-throw-3.ogg +0 -0
  224. package/skills/global_config/brag/assets/sfx/casino/die-throw-4.ogg +0 -0
  225. package/skills/global_config/brag/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
  226. package/skills/global_config/brag/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
  227. package/skills/global_config/brag/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
  228. package/skills/global_config/brag/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
  229. package/skills/global_config/brag/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
  230. package/skills/global_config/brag/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
  231. package/skills/global_config/brag/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
  232. package/skills/global_config/brag/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
  233. package/skills/global_config/brag/assets/sfx/impact/footstep_grass_000.ogg +0 -0
  234. package/skills/global_config/brag/assets/sfx/impact/footstep_grass_001.ogg +0 -0
  235. package/skills/global_config/brag/assets/sfx/impact/footstep_grass_002.ogg +0 -0
  236. package/skills/global_config/brag/assets/sfx/impact/footstep_grass_003.ogg +0 -0
  237. package/skills/global_config/brag/assets/sfx/impact/footstep_grass_004.ogg +0 -0
  238. package/skills/global_config/brag/assets/sfx/impact/footstep_snow_000.ogg +0 -0
  239. package/skills/global_config/brag/assets/sfx/impact/footstep_snow_001.ogg +0 -0
  240. package/skills/global_config/brag/assets/sfx/impact/footstep_snow_002.ogg +0 -0
  241. package/skills/global_config/brag/assets/sfx/impact/footstep_snow_003.ogg +0 -0
  242. package/skills/global_config/brag/assets/sfx/impact/footstep_snow_004.ogg +0 -0
  243. package/skills/global_config/brag/assets/sfx/impact/footstep_wood_000.ogg +0 -0
  244. package/skills/global_config/brag/assets/sfx/impact/footstep_wood_001.ogg +0 -0
  245. package/skills/global_config/brag/assets/sfx/impact/footstep_wood_002.ogg +0 -0
  246. package/skills/global_config/brag/assets/sfx/impact/footstep_wood_003.ogg +0 -0
  247. package/skills/global_config/brag/assets/sfx/impact/footstep_wood_004.ogg +0 -0
  248. package/skills/global_config/brag/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
  249. package/skills/global_config/brag/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
  250. package/skills/global_config/brag/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
  251. package/skills/global_config/brag/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
  252. package/skills/global_config/brag/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
  253. package/skills/global_config/brag/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
  254. package/skills/global_config/brag/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
  255. package/skills/global_config/brag/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
  256. package/skills/global_config/brag/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
  257. package/skills/global_config/brag/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
  258. package/skills/global_config/brag/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
  259. package/skills/global_config/brag/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
  260. package/skills/global_config/brag/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
  261. package/skills/global_config/brag/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
  262. package/skills/global_config/brag/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
  263. package/skills/global_config/brag/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
  264. package/skills/global_config/brag/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
  265. package/skills/global_config/brag/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
  266. package/skills/global_config/brag/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
  267. package/skills/global_config/brag/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
  268. package/skills/global_config/brag/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
  269. package/skills/global_config/brag/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
  270. package/skills/global_config/brag/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
  271. package/skills/global_config/brag/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
  272. package/skills/global_config/brag/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
  273. package/skills/global_config/brag/assets/sfx/impact/impactMining_001.ogg +0 -0
  274. package/skills/global_config/brag/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
  275. package/skills/global_config/brag/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
  276. package/skills/global_config/brag/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
  277. package/skills/global_config/brag/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
  278. package/skills/global_config/brag/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
  279. package/skills/global_config/brag/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
  280. package/skills/global_config/brag/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
  281. package/skills/global_config/brag/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
  282. package/skills/global_config/brag/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
  283. package/skills/global_config/brag/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
  284. package/skills/global_config/brag/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
  285. package/skills/global_config/brag/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
  286. package/skills/global_config/brag/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
  287. package/skills/global_config/brag/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
  288. package/skills/global_config/brag/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
  289. package/skills/global_config/brag/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
  290. package/skills/global_config/brag/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
  291. package/skills/global_config/brag/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
  292. package/skills/global_config/brag/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
  293. package/skills/global_config/brag/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
  294. package/skills/global_config/brag/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
  295. package/skills/global_config/brag/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
  296. package/skills/global_config/brag/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
  297. package/skills/global_config/brag/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
  298. package/skills/global_config/brag/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
  299. package/skills/global_config/brag/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
  300. package/skills/global_config/brag/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
  301. package/skills/global_config/brag/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
  302. package/skills/global_config/brag/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
  303. package/skills/global_config/brag/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
  304. package/skills/global_config/brag/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
  305. package/skills/global_config/brag/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
  306. package/skills/global_config/brag/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
  307. package/skills/global_config/brag/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
  308. package/skills/global_config/brag/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
  309. package/skills/global_config/brag/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
  310. package/skills/global_config/brag/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
  311. package/skills/global_config/brag/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
  312. package/skills/global_config/brag/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
  313. package/skills/global_config/brag/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
  314. package/skills/global_config/brag/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
  315. package/skills/global_config/brag/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
  316. package/skills/global_config/brag/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
  317. package/skills/global_config/brag/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
  318. package/skills/global_config/brag/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
  319. package/skills/global_config/brag/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
  320. package/skills/global_config/brag/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
  321. package/skills/global_config/brag/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
  322. package/skills/global_config/brag/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
  323. package/skills/global_config/brag/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
  324. package/skills/global_config/brag/assets/sfx/impact/impactWood_light_000.ogg +0 -0
  325. package/skills/global_config/brag/assets/sfx/impact/impactWood_light_001.ogg +0 -0
  326. package/skills/global_config/brag/assets/sfx/impact/impactWood_light_002.ogg +0 -0
  327. package/skills/global_config/brag/assets/sfx/impact/impactWood_light_003.ogg +0 -0
  328. package/skills/global_config/brag/assets/sfx/impact/impactWood_light_004.ogg +0 -0
  329. package/skills/global_config/brag/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
  330. package/skills/global_config/brag/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
  331. package/skills/global_config/brag/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
  332. package/skills/global_config/brag/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
  333. package/skills/global_config/brag/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
  334. package/skills/global_config/brag/assets/sfx/interface/bong_001.ogg +0 -0
  335. package/skills/global_config/brag/assets/sfx/interface/click_001.ogg +0 -0
  336. package/skills/global_config/brag/assets/sfx/interface/click_002.ogg +0 -0
  337. package/skills/global_config/brag/assets/sfx/interface/click_003.ogg +0 -0
  338. package/skills/global_config/brag/assets/sfx/interface/click_004.ogg +0 -0
  339. package/skills/global_config/brag/assets/sfx/interface/click_005.ogg +0 -0
  340. package/skills/global_config/brag/assets/sfx/interface/drop_001.ogg +0 -0
  341. package/skills/global_config/brag/assets/sfx/interface/drop_002.ogg +0 -0
  342. package/skills/global_config/brag/assets/sfx/interface/drop_003.ogg +0 -0
  343. package/skills/global_config/brag/assets/sfx/interface/error_005.ogg +0 -0
  344. package/skills/global_config/brag/assets/sfx/interface/error_006.ogg +0 -0
  345. package/skills/global_config/brag/assets/sfx/interface/glitch_002.ogg +0 -0
  346. package/skills/global_config/brag/assets/sfx/interface/glitch_004.ogg +0 -0
  347. package/skills/global_config/brag/assets/sfx/interface/select_008.ogg +0 -0
  348. package/skills/global_config/brag/assets/sfx/interface/switch_001.ogg +0 -0
  349. package/skills/global_config/brag/assets/sfx/interface/switch_002.ogg +0 -0
  350. package/skills/global_config/brag/assets/sfx/interface/switch_004.ogg +0 -0
  351. package/skills/global_config/brag/assets/sfx/interface/switch_005.ogg +0 -0
  352. package/skills/global_config/brag/assets/sfx/interface/switch_006.ogg +0 -0
  353. package/skills/global_config/brag/assets/sfx/interface/switch_007.ogg +0 -0
  354. package/skills/global_config/brag/assets/sfx/keyboard/keypress-001.wav +0 -0
  355. package/skills/global_config/brag/assets/sfx/keyboard/keypress-002.wav +0 -0
  356. package/skills/global_config/brag/assets/sfx/keyboard/keypress-003.wav +0 -0
  357. package/skills/global_config/brag/assets/sfx/keyboard/keypress-004.wav +0 -0
  358. package/skills/global_config/brag/assets/sfx/keyboard/keypress-005.wav +0 -0
  359. package/skills/global_config/brag/assets/sfx/keyboard/keypress-006.wav +0 -0
  360. package/skills/global_config/brag/assets/sfx/keyboard/keypress-007.wav +0 -0
  361. package/skills/global_config/brag/assets/sfx/keyboard/keypress-008.wav +0 -0
  362. package/skills/global_config/brag/assets/sfx/keyboard/keypress-009.wav +0 -0
  363. package/skills/global_config/brag/assets/sfx/keyboard/keypress-010.wav +0 -0
  364. package/skills/global_config/brag/assets/sfx/keyboard/keypress-011.wav +0 -0
  365. package/skills/global_config/brag/assets/sfx/keyboard/keypress-012.wav +0 -0
  366. package/skills/global_config/brag/assets/sfx/keyboard/keypress-013.wav +0 -0
  367. package/skills/global_config/brag/assets/sfx/keyboard/keypress-014.wav +0 -0
  368. package/skills/global_config/brag/assets/sfx/keyboard/keypress-015.wav +0 -0
  369. package/skills/global_config/brag/assets/sfx/keyboard/keypress-016.wav +0 -0
  370. package/skills/global_config/brag/assets/sfx/keyboard/keypress-017.wav +0 -0
  371. package/skills/global_config/brag/assets/sfx/keyboard/keypress-018.wav +0 -0
  372. package/skills/global_config/brag/assets/sfx/keyboard/keypress-019.wav +0 -0
  373. package/skills/global_config/brag/assets/sfx/keyboard/keypress-020.wav +0 -0
  374. package/skills/global_config/brag/assets/sfx/keyboard/keypress-021.wav +0 -0
  375. package/skills/global_config/brag/assets/sfx/keyboard/keypress-022.wav +0 -0
  376. package/skills/global_config/brag/assets/sfx/keyboard/keypress-023.wav +0 -0
  377. package/skills/global_config/brag/assets/sfx/keyboard/keypress-024.wav +0 -0
  378. package/skills/global_config/brag/assets/sfx/keyboard/keypress-025.wav +0 -0
  379. package/skills/global_config/brag/assets/sfx/keyboard/keypress-026.wav +0 -0
  380. package/skills/global_config/brag/assets/sfx/keyboard/keypress-027.wav +0 -0
  381. package/skills/global_config/brag/assets/sfx/keyboard/keypress-028.wav +0 -0
  382. package/skills/global_config/brag/assets/sfx/keyboard/keypress-029.wav +0 -0
  383. package/skills/global_config/brag/assets/sfx/keyboard/keypress-030.wav +0 -0
  384. package/skills/global_config/brag/assets/sfx/keyboard/keypress-031.wav +0 -0
  385. package/skills/global_config/brag/assets/sfx/keyboard/keypress-032.wav +0 -0
  386. package/skills/global_config/brag/assets/sfx/sfx-analysis.json +15584 -0
  387. package/skills/global_config/brag/assets/sfx/sfx-analysis.md +75 -0
  388. package/skills/global_config/brag/assets/sfx/ui/click1.ogg +0 -0
  389. package/skills/global_config/brag/assets/sfx/ui/click2.ogg +0 -0
  390. package/skills/global_config/brag/assets/sfx/ui/click3.ogg +0 -0
  391. package/skills/global_config/brag/assets/sfx/ui/click4.ogg +0 -0
  392. package/skills/global_config/brag/assets/sfx/ui/click5.ogg +0 -0
  393. package/skills/global_config/brag/assets/sfx/ui/mouseclick1.ogg +0 -0
  394. package/skills/global_config/brag/assets/sfx/ui/rollover1.ogg +0 -0
  395. package/skills/global_config/brag/assets/sfx/ui/rollover2.ogg +0 -0
  396. package/skills/global_config/brag/assets/sfx/ui/rollover4.ogg +0 -0
  397. package/skills/global_config/brag/assets/sfx/ui/rollover5.ogg +0 -0
  398. package/skills/global_config/brag/assets/sfx/ui/switch1.ogg +0 -0
  399. package/skills/global_config/brag/assets/sfx/ui/switch10.ogg +0 -0
  400. package/skills/global_config/brag/assets/sfx/ui/switch11.ogg +0 -0
  401. package/skills/global_config/brag/assets/sfx/ui/switch12.ogg +0 -0
  402. package/skills/global_config/brag/assets/sfx/ui/switch13.ogg +0 -0
  403. package/skills/global_config/brag/assets/sfx/ui/switch14.ogg +0 -0
  404. package/skills/global_config/brag/assets/sfx/ui/switch15.ogg +0 -0
  405. package/skills/global_config/brag/assets/sfx/ui/switch16.ogg +0 -0
  406. package/skills/global_config/brag/assets/sfx/ui/switch17.ogg +0 -0
  407. package/skills/global_config/brag/assets/sfx/ui/switch18.ogg +0 -0
  408. package/skills/global_config/brag/assets/sfx/ui/switch19.ogg +0 -0
  409. package/skills/global_config/brag/assets/sfx/ui/switch2.ogg +0 -0
  410. package/skills/global_config/brag/assets/sfx/ui/switch20.ogg +0 -0
  411. package/skills/global_config/brag/assets/sfx/ui/switch21.ogg +0 -0
  412. package/skills/global_config/brag/assets/sfx/ui/switch22.ogg +0 -0
  413. package/skills/global_config/brag/assets/sfx/ui/switch23.ogg +0 -0
  414. package/skills/global_config/brag/assets/sfx/ui/switch24.ogg +0 -0
  415. package/skills/global_config/brag/assets/sfx/ui/switch25.ogg +0 -0
  416. package/skills/global_config/brag/assets/sfx/ui/switch26.ogg +0 -0
  417. package/skills/global_config/brag/assets/sfx/ui/switch27.ogg +0 -0
  418. package/skills/global_config/brag/assets/sfx/ui/switch28.ogg +0 -0
  419. package/skills/global_config/brag/assets/sfx/ui/switch29.ogg +0 -0
  420. package/skills/global_config/brag/assets/sfx/ui/switch3.ogg +0 -0
  421. package/skills/global_config/brag/assets/sfx/ui/switch30.ogg +0 -0
  422. package/skills/global_config/brag/assets/sfx/ui/switch31.ogg +0 -0
  423. package/skills/global_config/brag/assets/sfx/ui/switch32.ogg +0 -0
  424. package/skills/global_config/brag/assets/sfx/ui/switch33.ogg +0 -0
  425. package/skills/global_config/brag/assets/sfx/ui/switch34.ogg +0 -0
  426. package/skills/global_config/brag/assets/sfx/ui/switch35.ogg +0 -0
  427. package/skills/global_config/brag/assets/sfx/ui/switch36.ogg +0 -0
  428. package/skills/global_config/brag/assets/sfx/ui/switch37.ogg +0 -0
  429. package/skills/global_config/brag/assets/sfx/ui/switch38.ogg +0 -0
  430. package/skills/global_config/brag/assets/sfx/ui/switch4.ogg +0 -0
  431. package/skills/global_config/brag/assets/sfx/ui/switch5.ogg +0 -0
  432. package/skills/global_config/brag/assets/sfx/ui/switch6.ogg +0 -0
  433. package/skills/global_config/brag/assets/sfx/ui/switch7.ogg +0 -0
  434. package/skills/global_config/brag/assets/sfx/ui/switch8.ogg +0 -0
  435. package/skills/global_config/brag/assets/sfx/ui/switch9.ogg +0 -0
  436. package/skills/global_config/brag/references/audio.md +307 -0
  437. package/skills/global_config/brag/references/step-1-inspect.md +133 -0
  438. package/skills/global_config/brag/references/step-2-plan.md +234 -0
  439. package/skills/global_config/brag/references/step-3-compose.md +210 -0
  440. package/skills/global_config/brag/references/step-4-deliver.md +168 -0
  441. package/skills/global_config/brag/references/tones.md +231 -0
  442. package/skills/global_config/brag/scripts/analyze_music_cues.py +309 -0
  443. package/skills/global_config/brag/scripts/pyproject.toml +14 -0
  444. package/skills/global_config/brag/scripts/uv.lock +819 -0
  445. package/skills/global_config/deja-memory/SKILL.md +42 -0
  446. package/skills/global_config/editable-design/LICENSE +202 -0
  447. package/skills/global_config/editable-design/README.md +34 -0
  448. package/skills/global_config/editable-design/SKILL.md +630 -0
  449. package/skills/global_config/editable-design/THIRD_PARTY_NOTICES.md +10 -0
  450. package/skills/global_config/editable-design/agents/openai.yaml +4 -0
  451. package/skills/global_config/editable-design/assets/editor/layer-editor.css +262 -0
  452. package/skills/global_config/editable-design/assets/editor/layer-editor.js +1929 -0
  453. package/skills/global_config/editable-design/assets/poster-starter/README.md +92 -0
  454. package/skills/global_config/editable-design/assets/poster-starter/assets/.gitkeep +0 -0
  455. package/skills/global_config/editable-design/assets/poster-starter/index.html +91 -0
  456. package/skills/global_config/editable-design/assets/poster-starter/poster.json +6 -0
  457. package/skills/global_config/editable-design/assets/poster-starter/reference/.gitkeep +1 -0
  458. package/skills/global_config/editable-design/assets/replay/icons/assets.png +0 -0
  459. package/skills/global_config/editable-design/assets/replay/icons/html.png +0 -0
  460. package/skills/global_config/editable-design/assets/replay/icons/input.png +0 -0
  461. package/skills/global_config/editable-design/assets/replay/icons/layers.png +0 -0
  462. package/skills/global_config/editable-design/assets/replay/icons/plan.png +0 -0
  463. package/skills/global_config/editable-design/assets/replay/icons/reference.png +0 -0
  464. package/skills/global_config/editable-design/assets/replay/icons/review.png +0 -0
  465. package/skills/global_config/editable-design/assets/replay/index.html +59 -0
  466. package/skills/global_config/editable-design/assets/replay/replay-motion.js +410 -0
  467. package/skills/global_config/editable-design/assets/replay/replay.css +380 -0
  468. package/skills/global_config/editable-design/assets/replay/replay.js +374 -0
  469. package/skills/global_config/editable-design/font-kit/package-lock.json +115 -0
  470. package/skills/global_config/editable-design/font-kit/package.json +19 -0
  471. package/skills/global_config/editable-design/pack.sh +20 -0
  472. package/skills/global_config/editable-design/references/asset-architecture.md +72 -0
  473. package/skills/global_config/editable-design/references/editor-pitfalls.md +70 -0
  474. package/skills/global_config/editable-design/references/editor-runtime.md +131 -0
  475. package/skills/global_config/editable-design/references/font-system.md +89 -0
  476. package/skills/global_config/editable-design/references/imagery.md +145 -0
  477. package/skills/global_config/editable-design/references/layout-typography.md +116 -0
  478. package/skills/global_config/editable-design/references/replay-contract.md +169 -0
  479. package/skills/global_config/editable-design/scripts/_browser.mjs +247 -0
  480. package/skills/global_config/editable-design/scripts/bake.mjs +87 -0
  481. package/skills/global_config/editable-design/scripts/build-replay.mjs +316 -0
  482. package/skills/global_config/editable-design/scripts/check-contract.mjs +293 -0
  483. package/skills/global_config/editable-design/scripts/check-fonts.sh +252 -0
  484. package/skills/global_config/editable-design/scripts/check-poster.sh +70 -0
  485. package/skills/global_config/editable-design/scripts/doctor.sh +78 -0
  486. package/skills/global_config/editable-design/scripts/explode.mjs +115 -0
  487. package/skills/global_config/editable-design/scripts/font-kit.mjs +187 -0
  488. package/skills/global_config/editable-design/scripts/import-asset.sh +23 -0
  489. package/skills/global_config/editable-design/scripts/init-poster.sh +64 -0
  490. package/skills/global_config/editable-design/scripts/install-font-kit.sh +13 -0
  491. package/skills/global_config/editable-design/scripts/package-lock.json +334 -0
  492. package/skills/global_config/editable-design/scripts/package.json +14 -0
  493. package/skills/global_config/editable-design/scripts/remove-chroma-key.py +201 -0
  494. package/skills/global_config/editable-design/scripts/render-poster.sh +202 -0
  495. package/skills/global_config/editable-design/scripts/trace.sh +159 -0
  496. package/skills/global_config/editable-design/scripts/verify-replay.mjs +97 -0
  497. package/skills/global_config/editable-design/scripts/verify.mjs +782 -0
  498. package/skills/global_config/editable-design/scripts/wire-editor.mjs +104 -0
  499. package/skills/global_config/editable-design/tests/fixtures/small-explode/index.html +86 -0
  500. package/skills/global_config/mcsc/SKILL.md +60 -0
  501. package/skills/global_config/plan-canvas/SKILL.md +8 -0
  502. package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/server.js +31 -6
  503. package/skills/global_config/plan-canvas/scripts/plan-canvas.js +4 -2
@@ -0,0 +1,380 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --paper: #f7f6f2;
4
+ --surface: #ffffff;
5
+ --ink: #25231f;
6
+ --muted: #77736a;
7
+ --line: #dedbd3;
8
+ --think: #567bc9;
9
+ --think-soft: #eef3ff;
10
+ --make: #cf7626;
11
+ --make-soft: #fff3e6;
12
+ --prove: #53856b;
13
+ --prove-soft: #edf7f1;
14
+ --repair: #df7058;
15
+ }
16
+
17
+ * { box-sizing: border-box; }
18
+
19
+ html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
20
+
21
+ body {
22
+ background: var(--paper);
23
+ color: var(--ink);
24
+ font-family: Inter, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
25
+ }
26
+
27
+ button { font: inherit; }
28
+
29
+ .replay-header {
30
+ position: relative;
31
+ z-index: 20;
32
+ display: flex;
33
+ align-items: center;
34
+ height: 74px;
35
+ padding: 0 24px;
36
+ border-bottom: 1px solid #ddd9d0;
37
+ background: rgba(255,255,255,.96);
38
+ box-shadow: 0 2px 18px rgba(55,48,37,.05);
39
+ }
40
+
41
+ .brand-mark { position: relative; width: 38px; height: 38px; margin-right: 14px; }
42
+ .brand-mark span { position: absolute; width: 14px; height: 14px; border: 3px solid var(--think); border-radius: 50%; }
43
+ .brand-mark span:nth-child(1) { left: 1px; top: 11px; }
44
+ .brand-mark span:nth-child(2) { right: 1px; top: 2px; }
45
+ .brand-mark span:nth-child(3) { right: 2px; bottom: 1px; border-color: var(--make); }
46
+
47
+ .replay-title { display: flex; align-items: center; gap: 12px; min-width: 0; }
48
+ .replay-title strong { overflow: hidden; font-size: 20px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
49
+ .replay-title span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; background: #eaf4ee; color: var(--prove); font-size: 11px; font-weight: 700; }
50
+ .replay-title span::before { width: 7px; height: 7px; border-radius: 50%; background: #b8b9b5; box-shadow: 0 0 0 0 rgba(83,133,107,0); content: ""; transition: background .24s ease, box-shadow .4s ease; }
51
+ .replay-title span.is-lit::before { background: var(--prove); box-shadow: 0 0 0 5px rgba(83,133,107,.13), 0 0 14px rgba(83,133,107,.46); }
52
+
53
+ .view-controls { display: flex; align-items: center; gap: 6px; margin-left: auto; }
54
+ .view-controls button, .view-controls output {
55
+ display: grid;
56
+ place-items: center;
57
+ min-width: 42px;
58
+ height: 38px;
59
+ padding: 0 12px;
60
+ border: 1px solid #d9d5cd;
61
+ border-radius: 10px;
62
+ background: #fff;
63
+ color: #625e56;
64
+ font-size: 13px;
65
+ font-weight: 650;
66
+ }
67
+ .view-controls button { cursor: pointer; }
68
+ .view-controls button:hover { border-color: #b7b0a5; background: #faf9f6; }
69
+ .view-controls button:disabled { cursor: default; opacity: .5; }
70
+ .view-controls output { min-width: 64px; border-color: transparent; background: transparent; }
71
+ .view-controls .play-replay { display: flex; gap: 7px; min-width: 108px; border-color: #c9d7cd; color: var(--prove); }
72
+ .play-replay span { font-size: 10px; }
73
+ .play-replay b { font-size: 12px; font-weight: 750; }
74
+ .play-replay.is-playing { border-color: #92b29f; background: var(--prove-soft); }
75
+
76
+ .replay-shell { position: relative; height: calc(100% - 74px); }
77
+ .phase-nav {
78
+ position: absolute;
79
+ z-index: 24;
80
+ top: 28px;
81
+ bottom: 28px;
82
+ left: 18px;
83
+ display: grid;
84
+ grid-template-rows: repeat(3, 1fr);
85
+ align-items: center;
86
+ width: 220px;
87
+ pointer-events: none;
88
+ }
89
+ .phase-nav::before { position: absolute; z-index: -1; top: 10%; bottom: 10%; left: 104px; width: 2px; background: #d1cec7; content: ""; }
90
+ .phase-nav button {
91
+ position: relative;
92
+ display: grid;
93
+ justify-items: center;
94
+ width: 210px;
95
+ min-height: 210px;
96
+ padding: 18px 16px 20px;
97
+ overflow: hidden;
98
+ border: 1px solid #d8d4cc;
99
+ border-radius: 18px;
100
+ background: rgba(255,255,255,.94);
101
+ box-shadow: 0 12px 30px rgba(61,53,41,.10);
102
+ color: var(--phase-color);
103
+ cursor: pointer;
104
+ pointer-events: auto;
105
+ transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
106
+ }
107
+ .phase-nav button::before { position: absolute; top: 0; right: 34px; left: 34px; height: 5px; border-radius: 0 0 99px 99px; background: var(--phase-color); content: ""; }
108
+ .phase-nav button[data-phase="think"] { --phase-color: var(--think); --phase-soft: var(--think-soft); }
109
+ .phase-nav button[data-phase="make"] { --phase-color: var(--make); --phase-soft: var(--make-soft); }
110
+ .phase-nav button[data-phase="prove"] { --phase-color: var(--prove); --phase-soft: var(--prove-soft); }
111
+ .phase-nav button:hover { border-color: var(--phase-color); transform: translateY(-2px); }
112
+ .phase-nav button.is-active { border-color: var(--phase-color); background: var(--phase-soft); box-shadow: 0 14px 34px color-mix(in srgb, var(--phase-color) 18%, transparent); }
113
+ .phase-nav img { width: 56px; height: 56px; object-fit: contain; filter: drop-shadow(0 5px 7px rgba(45,49,54,.14)); transition: transform .18s ease; }
114
+ .phase-nav button.is-active img { transform: scale(1.06); }
115
+ .phase-nav span { font: 800 14px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .12em; }
116
+ .phase-nav strong { align-self: center; max-width: 160px; font-size: 19px; line-height: 1.28; text-align: center; }
117
+ .phase-nav small { align-self: end; font: 800 13px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
118
+ .canvas-viewport {
119
+ position: absolute;
120
+ inset: 0;
121
+ overflow: hidden;
122
+ cursor: grab;
123
+ background-color: #faf9f6;
124
+ background-image: radial-gradient(circle, rgba(99,93,82,.20) 1.4px, transparent 1.6px), linear-gradient(rgba(110,104,93,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(110,104,93,.055) 1px, transparent 1px);
125
+ background-position: 0 0;
126
+ background-size: 28px 28px, 140px 140px, 140px 140px;
127
+ }
128
+ .canvas-viewport.is-panning { cursor: grabbing; }
129
+ .canvas-world { position: absolute; left: 0; top: 0; width: 2540px; height: 1780px; transform-origin: 0 0; will-change: transform, opacity; }
130
+ .flow-lines { position: absolute; inset: 0; width: 2540px; height: 1780px; overflow: visible; pointer-events: none; }
131
+
132
+ .flow-main { fill: none; stroke-width: 7.5; stroke-linecap: round; stroke-linejoin: round; opacity: .9; }
133
+ .flow-main.think { stroke: var(--think); }
134
+ .flow-main.make { stroke: var(--make); }
135
+ .flow-main.prove { stroke: var(--prove); }
136
+ .flow-artifact { fill: none; stroke: #8aa1cf; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 9 9; opacity: .75; }
137
+ .flow-artifact.make { stroke: #d7a16c; }
138
+ .flow-repair { fill: none; stroke: var(--repair); stroke-width: 5.5; stroke-linecap: round; stroke-linejoin: round; }
139
+ .flow-path { transition: opacity .2s ease, filter .2s ease; }
140
+ .flow-path.think { --flow-color: var(--think); }
141
+ .flow-path.make { --flow-color: var(--make); }
142
+ .flow-path.prove { --flow-color: var(--prove); }
143
+ .flow-path.repair { --flow-color: var(--repair); }
144
+ .flow-path.is-arrow-lit { filter: drop-shadow(0 0 10px var(--flow-color)); }
145
+ .energy-pulse, .event-flow-pulse { pointer-events: none; }
146
+ .event-flow-pulse { fill: none; stroke-linecap: round; stroke-linejoin: round; }
147
+ .flow-label rect { fill: #edf7f1; stroke: #8eb29c; }
148
+ .flow-label text { fill: #47765c; font-size: 18px; font-weight: 750; }
149
+
150
+ .stage-node {
151
+ position: absolute;
152
+ display: grid;
153
+ grid-template-rows: auto minmax(0,1fr) auto;
154
+ overflow: hidden;
155
+ border: 2px solid var(--stage-color);
156
+ border-radius: 20px;
157
+ background: rgba(255,255,255,.98);
158
+ box-shadow: 0 18px 44px rgba(66,57,44,.11);
159
+ cursor: pointer;
160
+ transition: box-shadow .18s ease, transform .18s ease, opacity .2s ease, filter .2s ease;
161
+ }
162
+ .stage-node:hover { transform: translateY(-3px); box-shadow: 0 24px 55px rgba(66,57,44,.15); }
163
+ .stage-node.is-selected { box-shadow: 0 24px 58px rgba(66,57,44,.16), 0 0 0 5px color-mix(in srgb, var(--stage-color) 16%, transparent); }
164
+ .is-playing .stage-node { pointer-events: none; }
165
+ .is-playing .stage-node.is-future { opacity: .46; filter: saturate(.66); }
166
+ .stage-node.is-current { z-index: 4; animation: node-breathe 1.05s ease-in-out infinite; box-shadow: 0 25px 62px rgba(66,57,44,.18), 0 0 0 7px color-mix(in srgb, var(--stage-color) 24%, transparent); }
167
+ .is-playing .flow-path.is-future { opacity: .44; }
168
+ .is-playing .flow-path.is-current { opacity: 1; filter: drop-shadow(0 0 7px var(--flow-color)); }
169
+ .stage-node[data-phase="think"] { --stage-color: var(--think); --stage-soft: var(--think-soft); }
170
+ .stage-node[data-phase="make"] { --stage-color: var(--make); --stage-soft: var(--make-soft); }
171
+ .stage-node[data-phase="prove"] { --stage-color: var(--prove); --stage-soft: var(--prove-soft); }
172
+
173
+ .stage-head { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; gap: 13px; align-items: center; padding: 18px 20px 15px; }
174
+ .stage-icon { width: 54px; height: 54px; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(45,49,54,.12)); }
175
+ .stage-heading small { display: block; margin-bottom: 3px; color: var(--stage-color); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
176
+ .stage-heading strong { display: block; font-size: 24px; line-height: 1.12; }
177
+ .stage-status { align-self: start; padding: 6px 9px; border-radius: 999px; background: var(--stage-soft); color: var(--stage-color); font-size: 10px; font-weight: 800; }
178
+ .stage-body { min-height: 0; margin: 0 18px; overflow: hidden; border-radius: 13px; background: var(--stage-soft); }
179
+ .stage-meta { display: flex; justify-content: space-between; gap: 14px; padding: 12px 20px 15px; color: var(--muted); font: 12px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; }
180
+
181
+ .input-body { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 14px; height: 100%; padding: 18px; }
182
+ .input-body img { width: 48px; height: 48px; object-fit: contain; }
183
+ .input-body p { max-height: 150px; margin: 0; overflow: hidden; color: #3c3933; font: 16px/1.52 Georgia, "Songti SC", serif; white-space: pre-wrap; }
184
+ .input-body .missing { color: #9b6659; font-family: inherit; }
185
+
186
+ .text-evidence { display: grid; grid-template-rows: auto minmax(0,1fr) auto; height: 100%; padding: 17px 18px; }
187
+ .text-evidence > small { color: var(--stage-color); font: 800 10px/1.2 ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; }
188
+ .text-evidence pre { margin: 10px 0; overflow: hidden; color: #3c4964; font: 12px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }
189
+ .text-evidence .evidence-file { overflow: hidden; color: #7e7a71; font: 10px/1.2 ui-monospace, monospace; text-overflow: ellipsis; white-space: nowrap; }
190
+
191
+ .plan-body { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(140px,.7fr); gap: 12px; height: 100%; padding: 13px; }
192
+ .plan-canvas { position: relative; min-width: 0; overflow: hidden; border: 1px solid #91a7d4; border-radius: 10px; background: rgba(255,255,255,.82); }
193
+ .plan-canvas::after { position: absolute; inset: 0; background-image: linear-gradient(rgba(85,123,201,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(85,123,201,.07) 1px, transparent 1px); background-size: 18px 18px; content: ""; pointer-events: none; }
194
+ .plan-slot { position: absolute; z-index: 1; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 5px 7px; border: 1px solid #6d8dcf; border-radius: 6px; background: rgba(218,229,250,.92); color: #3f5e9b; }
195
+ .plan-slot:nth-child(even) { border-color: #d1904a; background: rgba(255,235,207,.92); color: #925e28; }
196
+ .plan-slot strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
197
+ .plan-slot span { margin-top: 3px; overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; opacity: .8; }
198
+ .plan-slot.is-auto { align-items: flex-start; padding: 8px; }
199
+ .plan-slot.is-auto span { display: -webkit-box; line-height: 1.25; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
200
+ .plan-empty { position: absolute; inset: 10%; display: grid; place-content: center; gap: 7px; border: 1px dashed #9fb1d5; border-radius: 9px; color: #6078a6; text-align: center; }
201
+ .plan-empty strong { font-size: 11px; }
202
+ .plan-empty span { font-size: 8px; opacity: .75; }
203
+ .plan-copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; color: #4d638e; }
204
+ .plan-copy small { color: var(--think); font: 800 9px/1.2 ui-monospace, monospace; letter-spacing: .1em; }
205
+ .plan-copy strong { margin: 8px 0; font-size: 14px; line-height: 1.3; }
206
+ .plan-copy p { max-height: 92px; margin: 0; overflow: hidden; font-size: 10px; line-height: 1.5; }
207
+
208
+ .asset-body { display: grid; grid-template-rows: auto minmax(0,1fr) auto; height: 100%; padding: 18px; }
209
+ .asset-body header { display: flex; justify-content: space-between; gap: 16px; color: #774c28; }
210
+ .asset-body header strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
211
+ .asset-body header span { color: var(--make); font: 800 11px/1.2 ui-monospace, monospace; }
212
+ .asset-body pre { display: -webkit-box; margin: 13px 0; overflow: hidden; color: #654d38; font: 11px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; -webkit-box-orient: vertical; -webkit-line-clamp: 7; }
213
+ .asset-tabs { display: flex; gap: 7px; }
214
+ .asset-tabs span { display: grid; place-items: center; min-width: 34px; height: 25px; padding: 0 8px; border: 1px solid #dfb98e; border-radius: 7px; background: rgba(255,255,255,.7); color: #b86c2a; font: 800 9px/1 ui-monospace, monospace; }
215
+ .asset-tabs span:first-child { background: var(--make); color: #fff; }
216
+
217
+ .code-body { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(150px,.55fr); gap: 10px; height: 100%; padding: 10px; background: #f5eee7; }
218
+ .code-window { display: grid; grid-template-rows: 32px minmax(0,1fr); min-width: 0; overflow: hidden; border-radius: 9px; background: #252a30; }
219
+ .code-window > span { display: flex; align-items: center; padding: 0 13px; border-bottom: 1px solid rgba(255,255,255,.09); color: #aeb6bd; font: 10px/1 ui-monospace, monospace; }
220
+ .code-window > span::before { width: 7px; height: 7px; margin-right: 26px; border-radius: 50%; background: #e17b2c; box-shadow: 11px 0 #d9b552, 22px 0 #75a281; content: ""; }
221
+ .code-window pre { margin: 0; padding: 15px; overflow: hidden; color: #d4d9de; font: 10px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }
222
+ .code-facts { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 12px; border: 1px solid #e0cdbb; border-radius: 9px; background: rgba(255,255,255,.78); }
223
+ .code-facts small { color: var(--make); font-size: 9px; font-weight: 800; letter-spacing: .1em; }
224
+ .code-facts span { padding: 7px 8px; border-radius: 6px; background: #f5e6d6; color: #735337; font: 9px/1.35 ui-monospace, monospace; }
225
+
226
+ .review-body { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 12px; height: 100%; padding: 12px; }
227
+ .review-count { display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 9px; background: rgba(255,255,255,.72); color: var(--prove); text-align: center; }
228
+ .review-count strong { font: 42px/1 Georgia, serif; }
229
+ .review-count span { margin-top: 6px; font-size: 9px; font-weight: 700; }
230
+ .review-list { display: grid; align-content: center; gap: 7px; min-width: 0; }
231
+ .review-list div { overflow: hidden; padding: 8px 10px; border-left: 3px solid #6f9a81; border-radius: 0 7px 7px 0; background: rgba(255,255,255,.75); color: #4d6556; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
232
+
233
+ .layers-body { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; height: 100%; padding: 12px; }
234
+ .layer-stat { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 13px; border: 1px solid #c5d8cd; border-radius: 9px; background: rgba(255,255,255,.78); color: #52725f; }
235
+ .layer-stat::before { width: 30px; height: 5px; margin-bottom: 10px; border-radius: 99px; background: #6f9a81; content: ""; }
236
+ .layer-stat:nth-child(2)::before { background: #5e83c4; }
237
+ .layer-stat:nth-child(3)::before { background: #d1904a; }
238
+ .layer-stat small { font-size: 9px; font-weight: 800; letter-spacing: .08em; }
239
+ .layer-stat strong { margin: 5px 0 2px; font: 28px/1.1 Georgia, serif; }
240
+ .layer-stat span { overflow: hidden; color: #748278; font-size: 8px; line-height: 1.35; text-overflow: ellipsis; }
241
+
242
+ .external-artifact {
243
+ position: absolute;
244
+ margin: 0;
245
+ overflow: hidden;
246
+ border: 2px solid var(--artifact-color, #9eb1d6);
247
+ border-radius: 14px;
248
+ background: #fff;
249
+ box-shadow: 0 15px 36px rgba(66,57,44,.13);
250
+ cursor: pointer;
251
+ transition: transform .16s ease, box-shadow .16s ease, opacity .2s ease, filter .2s ease;
252
+ }
253
+ .external-artifact:hover { transform: translateY(-3px); box-shadow: 0 21px 46px rgba(66,57,44,.17); }
254
+ .external-artifact img, .external-artifact iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; background: #f0eee8; pointer-events: none; }
255
+ .animation-preview { display: grid; width: 100%; height: 100%; place-content: center; justify-items: center; gap: 10px; background: linear-gradient(145deg,#edf5f0,#dceae1); color: #52725f; }
256
+ .animation-preview > span { display: grid; width: 54px; height: 54px; place-items: center; border: 2px solid #78a087; border-radius: 50%; background: rgba(255,255,255,.82); font-size: 18px; }
257
+ .animation-preview > strong { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
258
+ .animation-preview[data-animation-state="playing"] > span,
259
+ .animation-preview[data-animation-state="playing"] > strong { display: none; }
260
+ .animation-preview iframe { width: 100%; height: 100%; }
261
+ .external-artifact[data-contain="true"] img { object-fit: contain; }
262
+ .external-artifact figcaption { position: absolute; left: 7px; right: 7px; bottom: 7px; display: flex; justify-content: space-between; gap: 6px; padding: 6px 8px; border-radius: 7px; background: rgba(255,255,255,.94); color: #555149; font-size: 8px; font-weight: 800; }
263
+ .external-artifact figcaption span:last-child { color: #99938a; font-family: ui-monospace, monospace; }
264
+ .external-artifact.reference { --artifact-color: #89a3d6; }
265
+ .external-artifact.asset { --artifact-color: #e8b783; }
266
+ .external-artifact.render { --artifact-color: #d8883e; }
267
+ .external-artifact.layers { --artifact-color: #78a087; }
268
+ .external-artifact.featured-output { border-width: 3px; box-shadow: 0 22px 54px rgba(105,65,29,.19); }
269
+ .external-artifact.featured-output figcaption { right: 10px; bottom: 10px; left: 10px; padding: 8px 10px; font-size: 10px; }
270
+ .external-artifact.reference figcaption { font-size: 9px; }
271
+ .external-artifact.asset figcaption { right: 10px; bottom: 10px; left: 10px; padding: 8px 10px; font-size: 10px; }
272
+ .external-artifact.asset img { transform-origin: center; }
273
+ .is-playing .external-artifact.is-future { opacity: .45; filter: saturate(.65); }
274
+ .is-playing .external-artifact { pointer-events: none; }
275
+ .external-artifact.is-current { z-index: 5; transform: translateY(-5px) scale(1.025); box-shadow: 0 24px 54px rgba(66,57,44,.20), 0 0 0 5px color-mix(in srgb, var(--artifact-color) 18%, transparent); }
276
+ .is-playing .phase-nav button { pointer-events: none; }
277
+
278
+ .detail-panel {
279
+ position: absolute;
280
+ z-index: 30;
281
+ top: 18px;
282
+ right: 18px;
283
+ bottom: 18px;
284
+ width: min(620px, calc(100vw - 36px));
285
+ overflow: hidden;
286
+ border: 1px solid #d8d4cc;
287
+ border-radius: 20px;
288
+ background: rgba(255,255,255,.98);
289
+ box-shadow: 0 24px 70px rgba(61,53,41,.18);
290
+ transform: translateX(calc(100% + 30px));
291
+ transition: transform .22s ease;
292
+ }
293
+ .detail-panel.is-open { transform: translateX(0); }
294
+ .is-intro .detail-panel { visibility: hidden; opacity: 0; pointer-events: none; transition: none; }
295
+ #detail-content { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }
296
+ .detail-close { position: absolute; z-index: 2; top: 14px; right: 15px; width: 34px; height: 34px; border: 0; border-radius: 9px; background: #f4f2ed; color: #69645b; font-size: 24px; cursor: pointer; }
297
+ .detail-head { display: grid; flex: 0 0 auto; grid-template-columns: 56px minmax(0,1fr); gap: 14px; align-items: center; padding: 22px 58px 18px 20px; border-bottom: 1px solid #e3e0d9; }
298
+ .detail-head img { width: 54px; height: 54px; object-fit: contain; }
299
+ .detail-head small { display: block; margin-bottom: 4px; color: var(--detail-color); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
300
+ .detail-head strong { display: block; font-size: 22px; }
301
+ .detail-body { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 0 20px 28px; scrollbar-gutter: stable; touch-action: pan-y; }
302
+ .detail-section { padding: 18px 0; border-bottom: 1px solid #e6e2db; }
303
+ .detail-section:last-child { border-bottom: 0; }
304
+ .detail-section h3 { margin: 0 0 10px; color: #777269; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
305
+ .detail-section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
306
+ .detail-section-title h3 { margin: 0; }
307
+ .detail-section-title span { color: var(--make); font: 800 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
308
+ .detail-section p { margin: 0; color: #3e3a34; font-size: 13px; line-height: 1.65; white-space: pre-wrap; }
309
+ .detail-section pre { max-height: 440px; margin: 0; padding: 13px; overflow: auto; border-radius: 10px; background: #f5f3ee; color: #403c36; font: 10px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }
310
+ .detail-section pre.code { background: #252a30; color: #d6dbe0; }
311
+ .detail-media { overflow: hidden; border: 1px solid #ddd9d1; border-radius: 11px; background: #f2f0eb; }
312
+ .detail-media img { display: block; width: 100%; max-height: 420px; object-fit: contain; }
313
+ .detail-media iframe { display: block; width: 100%; height: 360px; border: 0; background: #f2f0eb; }
314
+ .prompt-list { display: grid; gap: 10px; }
315
+ .asset-overview-section { padding-top: 20px; }
316
+ .asset-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
317
+ .asset-overview-grid figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid #ded9d0; border-radius: 10px; background: #f7f5f0; }
318
+ .asset-overview-grid img { display: block; width: 100%; aspect-ratio: 1; padding: 5px; object-fit: contain; background: #fff; }
319
+ .asset-overview-grid figcaption { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 6px; align-items: center; padding: 7px; border-top: 1px solid #e5e0d7; }
320
+ .asset-overview-grid figcaption span { color: var(--make); font: 800 8px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
321
+ .asset-overview-grid figcaption strong { overflow: hidden; color: #514c44; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
322
+ .prompt-item { overflow: hidden; border: 1px solid #dfdbd3; border-radius: 10px; background: #fbfaf7; }
323
+ .prompt-item summary { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 9px; align-items: center; padding: 10px; cursor: pointer; list-style: none; }
324
+ .prompt-item summary::-webkit-details-marker { display: none; }
325
+ .prompt-item summary span { display: grid; place-items: center; width: 34px; height: 30px; border-radius: 7px; background: #f6e5d3; color: #ba6823; font: 800 9px/1 ui-monospace, monospace; }
326
+ .prompt-item summary strong { overflow: hidden; color: #4a453e; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
327
+ .prompt-result { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 10px; padding: 10px; border-top: 1px solid #e6e1d9; }
328
+ .prompt-result img { width: 100px; height: 100px; object-fit: cover; border-radius: 8px; background: #eeeae3; }
329
+ .prompt-result pre { max-height: 220px; padding: 0; background: transparent; }
330
+ .source-note { margin-top: 8px; color: #8b857b; font: 9px/1.45 ui-monospace, monospace; }
331
+
332
+ .media-lightbox {
333
+ position: absolute;
334
+ z-index: 80;
335
+ inset: 16px;
336
+ display: grid;
337
+ grid-template-rows: minmax(0,1fr) auto;
338
+ gap: 12px;
339
+ padding: 24px;
340
+ visibility: hidden;
341
+ border: 1px solid rgba(255,255,255,.34);
342
+ border-radius: 22px;
343
+ background: rgba(31,32,33,.88);
344
+ box-shadow: 0 30px 90px rgba(28,25,20,.32);
345
+ opacity: 0;
346
+ pointer-events: none;
347
+ backdrop-filter: blur(18px);
348
+ transition: opacity .2s ease, visibility .2s ease;
349
+ }
350
+ .media-lightbox.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
351
+ .media-lightbox-frame { display: grid; min-width: 0; min-height: 0; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.26); border-radius: 16px; background: #f7f5f0; }
352
+ .media-lightbox-frame img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; min-width: 0; min-height: 0; object-fit: contain; }
353
+ .media-lightbox-frame iframe { display: block; width: 100%; height: 100%; border: 0; background: #f7f5f0; }
354
+ .media-lightbox-caption { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 0; color: #fff; }
355
+ .media-lightbox-caption strong { overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
356
+ .media-lightbox-caption span { color: rgba(255,255,255,.65); font-size: 11px; }
357
+ .media-lightbox-close { position: absolute; z-index: 2; top: 34px; right: 34px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.32); border-radius: 12px; background: rgba(25,26,27,.72); color: #fff; font-size: 29px; line-height: 1; cursor: pointer; backdrop-filter: blur(10px); }
358
+
359
+ @keyframes node-breathe {
360
+ 0%, 100% { transform: translateY(-2px) scale(1); }
361
+ 50% { transform: translateY(-4px) scale(1.008); }
362
+ }
363
+
364
+ @media (max-width: 760px) {
365
+ .replay-header { height: 64px; padding: 0 12px; }
366
+ .replay-shell { height: calc(100% - 64px); }
367
+ .replay-title strong { font-size: 16px; }
368
+ .replay-title span, #fit-view, #zoom-label, .play-replay b { display: none; }
369
+ .view-controls button { min-width: 36px; height: 36px; padding: 0; }
370
+ .view-controls .play-replay { min-width: 36px; }
371
+ .phase-nav { display: none; }
372
+ .detail-panel { top: 8px; right: 8px; bottom: 8px; width: calc(100vw - 16px); }
373
+ .media-lightbox { inset: 8px; padding: 12px; border-radius: 16px; }
374
+ .media-lightbox-close { top: 20px; right: 20px; }
375
+ .media-lightbox-caption { align-items: flex-start; flex-direction: column; gap: 4px; }
376
+ }
377
+
378
+ @media (prefers-reduced-motion: reduce) {
379
+ .stage-node, .external-artifact, .detail-panel, .media-lightbox, .flow-path, .phase-nav button, .phase-nav img, .replay-title span::before { transition: none; animation: none; }
380
+ }