@every-env/compound-plugin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/.claude-plugin/marketplace.json +37 -0
  2. package/.github/workflows/deploy-docs.yml +39 -0
  3. package/AGENTS.md +48 -0
  4. package/CLAUDE.md +380 -0
  5. package/LICENSE +21 -0
  6. package/README.md +65 -0
  7. package/bun.lock +30 -0
  8. package/docs/css/docs.css +675 -0
  9. package/docs/css/style.css +2886 -0
  10. package/docs/index.html +1046 -0
  11. package/docs/js/main.js +225 -0
  12. package/docs/pages/agents.html +649 -0
  13. package/docs/pages/changelog.html +495 -0
  14. package/docs/pages/commands.html +523 -0
  15. package/docs/pages/getting-started.html +582 -0
  16. package/docs/pages/mcp-servers.html +409 -0
  17. package/docs/pages/skills.html +611 -0
  18. package/docs/solutions/plugin-versioning-requirements.md +77 -0
  19. package/docs/specs/claude-code.md +67 -0
  20. package/docs/specs/codex.md +59 -0
  21. package/docs/specs/opencode.md +57 -0
  22. package/package.json +26 -0
  23. package/plans/grow-your-own-garden-plugin-architecture.md +102 -0
  24. package/plans/landing-page-launchkit-refresh.md +279 -0
  25. package/plugins/coding-tutor/.claude-plugin/plugin.json +9 -0
  26. package/plugins/coding-tutor/README.md +37 -0
  27. package/plugins/coding-tutor/commands/quiz-me.md +1 -0
  28. package/plugins/coding-tutor/commands/sync-tutorials.md +25 -0
  29. package/plugins/coding-tutor/commands/teach-me.md +1 -0
  30. package/plugins/coding-tutor/skills/coding-tutor/SKILL.md +214 -0
  31. package/plugins/coding-tutor/skills/coding-tutor/scripts/create_tutorial.py +207 -0
  32. package/plugins/coding-tutor/skills/coding-tutor/scripts/index_tutorials.py +193 -0
  33. package/plugins/coding-tutor/skills/coding-tutor/scripts/quiz_priority.py +190 -0
  34. package/plugins/coding-tutor/skills/coding-tutor/scripts/setup_tutorials.py +118 -0
  35. package/plugins/compound-engineering/.claude-plugin/plugin.json +33 -0
  36. package/plugins/compound-engineering/CHANGELOG.md +393 -0
  37. package/plugins/compound-engineering/CLAUDE.md +90 -0
  38. package/plugins/compound-engineering/LICENSE +21 -0
  39. package/plugins/compound-engineering/README.md +219 -0
  40. package/plugins/compound-engineering/agents/design/design-implementation-reviewer.md +94 -0
  41. package/plugins/compound-engineering/agents/design/design-iterator.md +197 -0
  42. package/plugins/compound-engineering/agents/design/figma-design-sync.md +172 -0
  43. package/plugins/compound-engineering/agents/docs/ankane-readme-writer.md +50 -0
  44. package/plugins/compound-engineering/agents/research/best-practices-researcher.md +100 -0
  45. package/plugins/compound-engineering/agents/research/framework-docs-researcher.md +83 -0
  46. package/plugins/compound-engineering/agents/research/git-history-analyzer.md +42 -0
  47. package/plugins/compound-engineering/agents/research/repo-research-analyst.md +113 -0
  48. package/plugins/compound-engineering/agents/review/agent-native-reviewer.md +246 -0
  49. package/plugins/compound-engineering/agents/review/architecture-strategist.md +52 -0
  50. package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +85 -0
  51. package/plugins/compound-engineering/agents/review/data-integrity-guardian.md +70 -0
  52. package/plugins/compound-engineering/agents/review/data-migration-expert.md +97 -0
  53. package/plugins/compound-engineering/agents/review/deployment-verification-agent.md +159 -0
  54. package/plugins/compound-engineering/agents/review/dhh-rails-reviewer.md +45 -0
  55. package/plugins/compound-engineering/agents/review/julik-frontend-races-reviewer.md +222 -0
  56. package/plugins/compound-engineering/agents/review/kieran-python-reviewer.md +104 -0
  57. package/plugins/compound-engineering/agents/review/kieran-rails-reviewer.md +86 -0
  58. package/plugins/compound-engineering/agents/review/kieran-typescript-reviewer.md +95 -0
  59. package/plugins/compound-engineering/agents/review/pattern-recognition-specialist.md +57 -0
  60. package/plugins/compound-engineering/agents/review/performance-oracle.md +110 -0
  61. package/plugins/compound-engineering/agents/review/security-sentinel.md +93 -0
  62. package/plugins/compound-engineering/agents/workflow/bug-reproduction-validator.md +67 -0
  63. package/plugins/compound-engineering/agents/workflow/every-style-editor.md +64 -0
  64. package/plugins/compound-engineering/agents/workflow/lint.md +16 -0
  65. package/plugins/compound-engineering/agents/workflow/pr-comment-resolver.md +69 -0
  66. package/plugins/compound-engineering/agents/workflow/spec-flow-analyzer.md +113 -0
  67. package/plugins/compound-engineering/commands/agent-native-audit.md +277 -0
  68. package/plugins/compound-engineering/commands/changelog.md +137 -0
  69. package/plugins/compound-engineering/commands/create-agent-skill.md +8 -0
  70. package/plugins/compound-engineering/commands/deepen-plan.md +546 -0
  71. package/plugins/compound-engineering/commands/deploy-docs.md +112 -0
  72. package/plugins/compound-engineering/commands/feature-video.md +342 -0
  73. package/plugins/compound-engineering/commands/generate_command.md +162 -0
  74. package/plugins/compound-engineering/commands/heal-skill.md +142 -0
  75. package/plugins/compound-engineering/commands/lfg.md +19 -0
  76. package/plugins/compound-engineering/commands/plan_review.md +7 -0
  77. package/plugins/compound-engineering/commands/release-docs.md +211 -0
  78. package/plugins/compound-engineering/commands/report-bug.md +150 -0
  79. package/plugins/compound-engineering/commands/reproduce-bug.md +99 -0
  80. package/plugins/compound-engineering/commands/resolve_parallel.md +34 -0
  81. package/plugins/compound-engineering/commands/resolve_pr_parallel.md +49 -0
  82. package/plugins/compound-engineering/commands/resolve_todo_parallel.md +35 -0
  83. package/plugins/compound-engineering/commands/test-browser.md +339 -0
  84. package/plugins/compound-engineering/commands/triage.md +310 -0
  85. package/plugins/compound-engineering/commands/workflows/compound.md +202 -0
  86. package/plugins/compound-engineering/commands/workflows/plan.md +466 -0
  87. package/plugins/compound-engineering/commands/workflows/review.md +514 -0
  88. package/plugins/compound-engineering/commands/workflows/work.md +363 -0
  89. package/plugins/compound-engineering/commands/xcode-test.md +331 -0
  90. package/plugins/compound-engineering/skills/agent-browser/SKILL.md +223 -0
  91. package/plugins/compound-engineering/skills/agent-native-architecture/SKILL.md +435 -0
  92. package/plugins/compound-engineering/skills/agent-native-architecture/references/action-parity-discipline.md +409 -0
  93. package/plugins/compound-engineering/skills/agent-native-architecture/references/agent-execution-patterns.md +467 -0
  94. package/plugins/compound-engineering/skills/agent-native-architecture/references/agent-native-testing.md +582 -0
  95. package/plugins/compound-engineering/skills/agent-native-architecture/references/architecture-patterns.md +478 -0
  96. package/plugins/compound-engineering/skills/agent-native-architecture/references/dynamic-context-injection.md +338 -0
  97. package/plugins/compound-engineering/skills/agent-native-architecture/references/files-universal-interface.md +301 -0
  98. package/plugins/compound-engineering/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +359 -0
  99. package/plugins/compound-engineering/skills/agent-native-architecture/references/mcp-tool-design.md +506 -0
  100. package/plugins/compound-engineering/skills/agent-native-architecture/references/mobile-patterns.md +871 -0
  101. package/plugins/compound-engineering/skills/agent-native-architecture/references/product-implications.md +443 -0
  102. package/plugins/compound-engineering/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +317 -0
  103. package/plugins/compound-engineering/skills/agent-native-architecture/references/self-modification.md +269 -0
  104. package/plugins/compound-engineering/skills/agent-native-architecture/references/shared-workspace-architecture.md +680 -0
  105. package/plugins/compound-engineering/skills/agent-native-architecture/references/system-prompt-design.md +250 -0
  106. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/SKILL.md +184 -0
  107. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/database-adapters.md +231 -0
  108. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/module-organization.md +121 -0
  109. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/rails-integration.md +183 -0
  110. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/resources.md +119 -0
  111. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
  112. package/plugins/compound-engineering/skills/compound-docs/SKILL.md +510 -0
  113. package/plugins/compound-engineering/skills/compound-docs/assets/critical-pattern-template.md +34 -0
  114. package/plugins/compound-engineering/skills/compound-docs/assets/resolution-template.md +93 -0
  115. package/plugins/compound-engineering/skills/compound-docs/references/yaml-schema.md +65 -0
  116. package/plugins/compound-engineering/skills/compound-docs/schema.yaml +176 -0
  117. package/plugins/compound-engineering/skills/create-agent-skills/SKILL.md +299 -0
  118. package/plugins/compound-engineering/skills/create-agent-skills/references/api-security.md +226 -0
  119. package/plugins/compound-engineering/skills/create-agent-skills/references/be-clear-and-direct.md +531 -0
  120. package/plugins/compound-engineering/skills/create-agent-skills/references/best-practices.md +404 -0
  121. package/plugins/compound-engineering/skills/create-agent-skills/references/common-patterns.md +595 -0
  122. package/plugins/compound-engineering/skills/create-agent-skills/references/core-principles.md +437 -0
  123. package/plugins/compound-engineering/skills/create-agent-skills/references/executable-code.md +175 -0
  124. package/plugins/compound-engineering/skills/create-agent-skills/references/iteration-and-testing.md +474 -0
  125. package/plugins/compound-engineering/skills/create-agent-skills/references/official-spec.md +185 -0
  126. package/plugins/compound-engineering/skills/create-agent-skills/references/recommended-structure.md +168 -0
  127. package/plugins/compound-engineering/skills/create-agent-skills/references/skill-structure.md +372 -0
  128. package/plugins/compound-engineering/skills/create-agent-skills/references/using-scripts.md +113 -0
  129. package/plugins/compound-engineering/skills/create-agent-skills/references/using-templates.md +112 -0
  130. package/plugins/compound-engineering/skills/create-agent-skills/references/workflows-and-validation.md +510 -0
  131. package/plugins/compound-engineering/skills/create-agent-skills/templates/router-skill.md +73 -0
  132. package/plugins/compound-engineering/skills/create-agent-skills/templates/simple-skill.md +33 -0
  133. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-reference.md +96 -0
  134. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-script.md +93 -0
  135. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-template.md +74 -0
  136. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-workflow.md +120 -0
  137. package/plugins/compound-engineering/skills/create-agent-skills/workflows/audit-skill.md +138 -0
  138. package/plugins/compound-engineering/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +605 -0
  139. package/plugins/compound-engineering/skills/create-agent-skills/workflows/create-new-skill.md +191 -0
  140. package/plugins/compound-engineering/skills/create-agent-skills/workflows/get-guidance.md +121 -0
  141. package/plugins/compound-engineering/skills/create-agent-skills/workflows/upgrade-to-router.md +161 -0
  142. package/plugins/compound-engineering/skills/create-agent-skills/workflows/verify-skill.md +204 -0
  143. package/plugins/compound-engineering/skills/dhh-rails-style/SKILL.md +185 -0
  144. package/plugins/compound-engineering/skills/dhh-rails-style/references/architecture.md +653 -0
  145. package/plugins/compound-engineering/skills/dhh-rails-style/references/controllers.md +303 -0
  146. package/plugins/compound-engineering/skills/dhh-rails-style/references/frontend.md +510 -0
  147. package/plugins/compound-engineering/skills/dhh-rails-style/references/gems.md +266 -0
  148. package/plugins/compound-engineering/skills/dhh-rails-style/references/models.md +359 -0
  149. package/plugins/compound-engineering/skills/dhh-rails-style/references/testing.md +338 -0
  150. package/plugins/compound-engineering/skills/dspy-ruby/SKILL.md +594 -0
  151. package/plugins/compound-engineering/skills/dspy-ruby/assets/config-template.rb +359 -0
  152. package/plugins/compound-engineering/skills/dspy-ruby/assets/module-template.rb +326 -0
  153. package/plugins/compound-engineering/skills/dspy-ruby/assets/signature-template.rb +143 -0
  154. package/plugins/compound-engineering/skills/dspy-ruby/references/core-concepts.md +265 -0
  155. package/plugins/compound-engineering/skills/dspy-ruby/references/optimization.md +623 -0
  156. package/plugins/compound-engineering/skills/dspy-ruby/references/providers.md +338 -0
  157. package/plugins/compound-engineering/skills/every-style-editor/SKILL.md +134 -0
  158. package/plugins/compound-engineering/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
  159. package/plugins/compound-engineering/skills/file-todos/SKILL.md +251 -0
  160. package/plugins/compound-engineering/skills/file-todos/assets/todo-template.md +155 -0
  161. package/plugins/compound-engineering/skills/frontend-design/SKILL.md +42 -0
  162. package/plugins/compound-engineering/skills/gemini-imagegen/SKILL.md +237 -0
  163. package/plugins/compound-engineering/skills/gemini-imagegen/requirements.txt +2 -0
  164. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/compose_images.py +157 -0
  165. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/edit_image.py +144 -0
  166. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/gemini_images.py +263 -0
  167. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/generate_image.py +133 -0
  168. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/multi_turn_chat.py +216 -0
  169. package/plugins/compound-engineering/skills/git-worktree/SKILL.md +302 -0
  170. package/plugins/compound-engineering/skills/git-worktree/scripts/worktree-manager.sh +345 -0
  171. package/plugins/compound-engineering/skills/rclone/SKILL.md +150 -0
  172. package/plugins/compound-engineering/skills/rclone/scripts/check_setup.sh +60 -0
  173. package/plugins/compound-engineering/skills/skill-creator/SKILL.md +209 -0
  174. package/plugins/compound-engineering/skills/skill-creator/scripts/init_skill.py +303 -0
  175. package/plugins/compound-engineering/skills/skill-creator/scripts/package_skill.py +110 -0
  176. package/plugins/compound-engineering/skills/skill-creator/scripts/quick_validate.py +65 -0
  177. package/src/commands/convert.ts +156 -0
  178. package/src/commands/install.ts +221 -0
  179. package/src/commands/list.ts +37 -0
  180. package/src/converters/claude-to-codex.ts +124 -0
  181. package/src/converters/claude-to-opencode.ts +392 -0
  182. package/src/index.ts +20 -0
  183. package/src/parsers/claude.ts +248 -0
  184. package/src/targets/codex.ts +91 -0
  185. package/src/targets/index.ts +29 -0
  186. package/src/targets/opencode.ts +48 -0
  187. package/src/types/claude.ts +88 -0
  188. package/src/types/codex.ts +23 -0
  189. package/src/types/opencode.ts +54 -0
  190. package/src/utils/codex-agents.ts +64 -0
  191. package/src/utils/files.ts +64 -0
  192. package/src/utils/frontmatter.ts +65 -0
  193. package/tests/claude-parser.test.ts +89 -0
  194. package/tests/cli.test.ts +289 -0
  195. package/tests/codex-agents.test.ts +62 -0
  196. package/tests/codex-converter.test.ts +121 -0
  197. package/tests/codex-writer.test.ts +76 -0
  198. package/tests/converter.test.ts +171 -0
  199. package/tests/fixtures/custom-paths/.claude-plugin/plugin.json +8 -0
  200. package/tests/fixtures/custom-paths/agents/default-agent.md +5 -0
  201. package/tests/fixtures/custom-paths/commands/default-command.md +5 -0
  202. package/tests/fixtures/custom-paths/custom-agents/custom-agent.md +5 -0
  203. package/tests/fixtures/custom-paths/custom-commands/custom-command.md +5 -0
  204. package/tests/fixtures/custom-paths/custom-hooks/hooks.json +7 -0
  205. package/tests/fixtures/custom-paths/custom-skills/custom-skill/SKILL.md +5 -0
  206. package/tests/fixtures/custom-paths/hooks/hooks.json +7 -0
  207. package/tests/fixtures/custom-paths/skills/default-skill/SKILL.md +5 -0
  208. package/tests/fixtures/invalid-command-path/.claude-plugin/plugin.json +5 -0
  209. package/tests/fixtures/invalid-hooks-path/.claude-plugin/plugin.json +5 -0
  210. package/tests/fixtures/invalid-mcp-path/.claude-plugin/plugin.json +5 -0
  211. package/tests/fixtures/mcp-file/.claude-plugin/plugin.json +5 -0
  212. package/tests/fixtures/mcp-file/.mcp.json +6 -0
  213. package/tests/fixtures/sample-plugin/.claude-plugin/plugin.json +30 -0
  214. package/tests/fixtures/sample-plugin/agents/agent-one.md +10 -0
  215. package/tests/fixtures/sample-plugin/agents/security-reviewer.md +7 -0
  216. package/tests/fixtures/sample-plugin/commands/command-one.md +7 -0
  217. package/tests/fixtures/sample-plugin/commands/model-command.md +8 -0
  218. package/tests/fixtures/sample-plugin/commands/nested/command-two.md +9 -0
  219. package/tests/fixtures/sample-plugin/commands/pattern-command.md +7 -0
  220. package/tests/fixtures/sample-plugin/commands/skill-command.md +7 -0
  221. package/tests/fixtures/sample-plugin/commands/todo-command.md +7 -0
  222. package/tests/fixtures/sample-plugin/hooks/hooks.json +156 -0
  223. package/tests/fixtures/sample-plugin/skills/skill-one/SKILL.md +6 -0
  224. package/tests/frontmatter.test.ts +20 -0
  225. package/tests/opencode-writer.test.ts +62 -0
  226. package/tsconfig.json +14 -0
@@ -0,0 +1,2886 @@
1
+ /* Compounding Engineering Documentation Styles */
2
+ /* Based on LaunchKit template by Evil Martians */
3
+
4
+ /* ============================================
5
+ CSS Variables & Theme Configuration
6
+ ============================================ */
7
+
8
+ :root {
9
+ /* Theme configuration */
10
+ --theme-hue: 243;
11
+ --theme-saturation: 1;
12
+ --theme-contrast: 0.71;
13
+
14
+ /* Fonts */
15
+ --font-text: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
16
+ --font-mono: "JetBrains Mono", "Fira Code", "SF Mono", Consolas, monospace;
17
+
18
+ /* Font sizes */
19
+ --font-size-xs: 12px;
20
+ --font-size-s: 14px;
21
+ --font-size-m: 16px;
22
+ --font-size-l: 20px;
23
+ --font-size-xl: 32px;
24
+ --font-size-xxl: 48px;
25
+
26
+ /* Line heights */
27
+ --line-height-paragraph-s: 20px;
28
+ --line-height-paragraph-m: 24px;
29
+ --line-height-paragraph-l: 28px;
30
+ --line-height-h1: 56px;
31
+ --line-height-h2: 40px;
32
+ --line-height-h3: 28px;
33
+ --line-height-ui-s: 16px;
34
+ --line-height-ui-m: 22px;
35
+
36
+ /* Spacing */
37
+ --space-xs: 4px;
38
+ --space-s: 8px;
39
+ --space-m: 12px;
40
+ --space-l: 16px;
41
+ --space-xl: 24px;
42
+ --space-xxl: 48px;
43
+ --space-section: 80px;
44
+ --space-card: 20px;
45
+
46
+ /* Border radii */
47
+ --radius-xs: 4px;
48
+ --radius-s: 8px;
49
+ --radius-m: 12px;
50
+ --radius-l: 16px;
51
+ --radius-xl: 24px;
52
+
53
+ /* UI */
54
+ --header-font-weight: 600;
55
+ --ui-button-font-weight: 500;
56
+ }
57
+
58
+ /* Light Theme */
59
+ .theme-light {
60
+ --color-background: #ffffff;
61
+ --color-background-blur: rgba(255, 255, 255, 0.9);
62
+ --color-surface: rgba(0, 0, 0, 0.03);
63
+ --color-surface-hover: rgba(0, 0, 0, 0.06);
64
+ --color-text-primary: #1a1a2e;
65
+ --color-text-secondary: #64748b;
66
+ --color-text-tertiary: #94a3b8;
67
+ --color-accent: #6366f1;
68
+ --color-accent-hover: #4f46e5;
69
+ --color-accent-light: rgba(99, 102, 241, 0.1);
70
+ --color-accent-lighter: rgba(99, 102, 241, 0.05);
71
+ --color-on-accent: #ffffff;
72
+ --color-border: rgba(0, 0, 0, 0.08);
73
+ --color-border-strong: rgba(0, 0, 0, 0.15);
74
+ --color-gradient-start: rgba(99, 102, 241, 0.15);
75
+ --color-gradient-end: rgba(99, 102, 241, 0);
76
+ --color-promo-start: #a855f7;
77
+ --color-promo-end: #6366f1;
78
+ --color-success: #10b981;
79
+ --color-warning: #f59e0b;
80
+ --color-error: #ef4444;
81
+ --color-code-bg: #1e1e2e;
82
+ --color-code-text: #cdd6f4;
83
+ }
84
+
85
+ /* Dark Theme */
86
+ .theme-dark {
87
+ color-scheme: dark;
88
+ --color-background: #0f0f1a;
89
+ --color-background-blur: rgba(15, 15, 26, 0.9);
90
+ --color-surface: rgba(255, 255, 255, 0.04);
91
+ --color-surface-hover: rgba(255, 255, 255, 0.08);
92
+ --color-text-primary: #f1f5f9;
93
+ --color-text-secondary: #94a3b8;
94
+ --color-text-tertiary: #64748b;
95
+ --color-accent: #818cf8;
96
+ --color-accent-hover: #a5b4fc;
97
+ --color-accent-light: rgba(129, 140, 248, 0.15);
98
+ --color-accent-lighter: rgba(129, 140, 248, 0.08);
99
+ --color-on-accent: #0f0f1a;
100
+ --color-border: rgba(255, 255, 255, 0.08);
101
+ --color-border-strong: rgba(255, 255, 255, 0.15);
102
+ --color-gradient-start: rgba(129, 140, 248, 0.2);
103
+ --color-gradient-end: rgba(129, 140, 248, 0);
104
+ --color-promo-start: #c084fc;
105
+ --color-promo-end: #818cf8;
106
+ --color-success: #34d399;
107
+ --color-warning: #fbbf24;
108
+ --color-error: #f87171;
109
+ --color-code-bg: #1e1e2e;
110
+ --color-code-text: #cdd6f4;
111
+ }
112
+
113
+ /* ============================================
114
+ Base Styles
115
+ ============================================ */
116
+
117
+ *, *::before, *::after {
118
+ box-sizing: border-box;
119
+ }
120
+
121
+ html, body {
122
+ margin: 0;
123
+ padding: 0;
124
+ }
125
+
126
+ body {
127
+ background-color: var(--color-background);
128
+ font-family: var(--font-text);
129
+ color: var(--color-text-primary);
130
+ font-size: var(--font-size-m);
131
+ line-height: var(--line-height-paragraph-m);
132
+ -webkit-font-smoothing: antialiased;
133
+ -moz-osx-font-smoothing: grayscale;
134
+ }
135
+
136
+ /* ============================================
137
+ Typography
138
+ ============================================ */
139
+
140
+ h1, h2, h3, h4, h5, h6 {
141
+ font-weight: var(--header-font-weight);
142
+ margin: var(--space-m) 0;
143
+ letter-spacing: -0.02em;
144
+ }
145
+
146
+ h1 {
147
+ font-size: 64px;
148
+ line-height: 1.1;
149
+ letter-spacing: -0.045em;
150
+ font-weight: 750;
151
+ background: linear-gradient(135deg, var(--color-text-primary), var(--color-text-secondary));
152
+ -webkit-background-clip: text;
153
+ -webkit-text-fill-color: transparent;
154
+ background-clip: text;
155
+ }
156
+
157
+ h2 {
158
+ font-size: var(--font-size-xl);
159
+ line-height: var(--line-height-h2);
160
+ }
161
+
162
+ h3 {
163
+ font-size: var(--font-size-l);
164
+ line-height: var(--line-height-h3);
165
+ }
166
+
167
+ p {
168
+ margin: var(--space-m) 0;
169
+ }
170
+
171
+ a {
172
+ color: var(--color-accent);
173
+ text-decoration: none;
174
+ transition: color 0.2s ease;
175
+ }
176
+
177
+ a:hover {
178
+ color: var(--color-accent-hover);
179
+ }
180
+
181
+ ul, ol {
182
+ margin: var(--space-l) 0;
183
+ padding-left: 24px;
184
+ }
185
+
186
+ li {
187
+ margin: var(--space-s) 0;
188
+ }
189
+
190
+ code {
191
+ font-family: var(--font-mono);
192
+ font-size: 0.9em;
193
+ background-color: var(--color-surface);
194
+ padding: 2px 6px;
195
+ border-radius: var(--radius-xs);
196
+ color: var(--color-accent);
197
+ }
198
+
199
+ img {
200
+ max-width: 100%;
201
+ vertical-align: middle;
202
+ }
203
+
204
+ /* Text utilities */
205
+ .paragraph {
206
+ margin: var(--space-m) 0;
207
+ }
208
+ .paragraph.s { font-size: var(--font-size-s); line-height: var(--line-height-paragraph-s); }
209
+ .paragraph.m { font-size: 19px; line-height: 30px; opacity: 0.9; }
210
+ .paragraph.l { font-size: var(--font-size-l); line-height: var(--line-height-paragraph-l); }
211
+ .paragraph.bold { font-weight: 600; }
212
+
213
+ .secondary { color: var(--color-text-secondary); }
214
+ .tertiary { color: var(--color-text-tertiary); }
215
+ .color-accent { color: var(--color-accent); }
216
+
217
+ .no-top-margin { margin-top: 0; }
218
+ .balanced { text-wrap: balance; }
219
+
220
+ /* ============================================
221
+ Layout
222
+ ============================================ */
223
+
224
+ .page-container {
225
+ max-width: 1200px;
226
+ min-height: 100vh;
227
+ margin: 0 auto;
228
+ padding: 0 var(--space-xl);
229
+ display: flex;
230
+ flex-direction: column;
231
+ }
232
+
233
+ section {
234
+ padding: var(--space-section) 0;
235
+ }
236
+
237
+ .background-gradient {
238
+ position: fixed;
239
+ top: 0;
240
+ left: 0;
241
+ right: 0;
242
+ height: 100vh;
243
+ background: linear-gradient(180deg, var(--color-gradient-start) 0%, var(--color-gradient-end) 50%);
244
+ z-index: -10;
245
+ pointer-events: none;
246
+ }
247
+
248
+ /* ============================================
249
+ Navigation
250
+ ============================================ */
251
+
252
+ .nav-container {
253
+ position: sticky;
254
+ top: var(--space-l);
255
+ margin-top: var(--space-l);
256
+ display: flex;
257
+ justify-content: space-between;
258
+ align-items: center;
259
+ background-color: var(--color-background-blur);
260
+ backdrop-filter: blur(20px);
261
+ -webkit-backdrop-filter: blur(20px);
262
+ border: 1px solid var(--color-border);
263
+ border-radius: var(--radius-l);
264
+ padding: var(--space-m) var(--space-l);
265
+ z-index: 1000;
266
+ }
267
+
268
+ .nav-brand {
269
+ display: flex;
270
+ align-items: center;
271
+ gap: var(--space-s);
272
+ text-decoration: none;
273
+ color: var(--color-text-primary);
274
+ font-weight: 600;
275
+ font-size: var(--font-size-m);
276
+ }
277
+
278
+ .logo-icon {
279
+ color: var(--color-accent);
280
+ font-size: var(--font-size-l);
281
+ }
282
+
283
+ .logo-text {
284
+ display: none;
285
+ }
286
+
287
+ @media (min-width: 768px) {
288
+ .logo-text {
289
+ display: inline;
290
+ }
291
+ }
292
+
293
+ .nav-menu {
294
+ display: none;
295
+ gap: var(--space-xs);
296
+ }
297
+
298
+ @media (min-width: 1024px) {
299
+ .nav-menu {
300
+ display: flex;
301
+ }
302
+ }
303
+
304
+ .nav-link {
305
+ color: var(--color-text-secondary);
306
+ font-size: var(--font-size-s);
307
+ font-weight: var(--ui-button-font-weight);
308
+ padding: var(--space-s) var(--space-m);
309
+ border-radius: var(--radius-s);
310
+ text-decoration: none;
311
+ transition: all 0.2s ease;
312
+ }
313
+
314
+ .nav-link:hover {
315
+ color: var(--color-text-primary);
316
+ background-color: var(--color-surface);
317
+ }
318
+
319
+ .nav-hamburger {
320
+ display: flex;
321
+ }
322
+
323
+ @media (min-width: 1024px) {
324
+ .nav-hamburger {
325
+ display: none;
326
+ }
327
+ }
328
+
329
+ /* Mobile nav */
330
+ .nav-menu.open {
331
+ display: flex;
332
+ flex-direction: column;
333
+ position: absolute;
334
+ top: calc(100% + var(--space-s));
335
+ left: 0;
336
+ right: 0;
337
+ background-color: var(--color-background);
338
+ border: 1px solid var(--color-border);
339
+ border-radius: var(--radius-l);
340
+ padding: var(--space-l);
341
+ }
342
+
343
+ /* ============================================
344
+ Buttons
345
+ ============================================ */
346
+
347
+ .button {
348
+ display: inline-flex;
349
+ align-items: center;
350
+ justify-content: center;
351
+ gap: var(--space-s);
352
+ padding: 14px 28px;
353
+ font-size: var(--font-size-m);
354
+ font-weight: 600;
355
+ font-family: inherit;
356
+ text-decoration: none;
357
+ border: none;
358
+ border-radius: var(--radius-m);
359
+ cursor: pointer;
360
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
361
+ }
362
+
363
+ .button.compact {
364
+ padding: var(--space-s) var(--space-m);
365
+ font-size: var(--font-size-s);
366
+ border-radius: var(--radius-s);
367
+ }
368
+
369
+ .button.primary {
370
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
371
+ color: var(--color-on-accent);
372
+ box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1);
373
+ position: relative;
374
+ overflow: hidden;
375
+ }
376
+
377
+ .button.primary:hover {
378
+ background: linear-gradient(135deg, var(--color-accent-hover), var(--color-accent));
379
+ transform: translateY(-2px);
380
+ box-shadow: 0 6px 16px rgba(99, 102, 241, 0.35);
381
+ }
382
+
383
+ .button.secondary {
384
+ background-color: var(--color-accent-light);
385
+ color: var(--color-accent);
386
+ }
387
+
388
+ .button.secondary:hover {
389
+ background-color: var(--color-accent-lighter);
390
+ }
391
+
392
+ .button.tertiary {
393
+ background-color: transparent;
394
+ color: var(--color-text-primary);
395
+ border: 1.5px solid var(--color-border-strong);
396
+ }
397
+
398
+ .button.tertiary:hover {
399
+ background-color: var(--color-surface);
400
+ border-color: var(--color-accent);
401
+ color: var(--color-accent);
402
+ transform: translateY(-1px);
403
+ }
404
+
405
+ .button.ghost {
406
+ background-color: transparent;
407
+ color: var(--color-text-secondary);
408
+ }
409
+
410
+ .button.ghost:hover {
411
+ background-color: var(--color-surface);
412
+ color: var(--color-text-primary);
413
+ }
414
+
415
+ .button-group {
416
+ display: flex;
417
+ flex-wrap: wrap;
418
+ gap: var(--space-m);
419
+ align-items: center;
420
+ }
421
+
422
+ .button-group.centered {
423
+ justify-content: center;
424
+ }
425
+
426
+ .button-group.stacked {
427
+ flex-direction: column;
428
+ }
429
+
430
+ .button-group.margin-paragraph {
431
+ margin: var(--space-l) 0;
432
+ }
433
+
434
+ /* ============================================
435
+ Headings & Sections
436
+ ============================================ */
437
+
438
+ .heading {
439
+ max-width: 720px;
440
+ margin-bottom: var(--space-xl);
441
+ }
442
+
443
+ .heading.centered {
444
+ text-align: center;
445
+ margin-left: auto;
446
+ margin-right: auto;
447
+ }
448
+
449
+ .heading.hero {
450
+ padding: 64px 0 80px 0;
451
+ }
452
+
453
+ .eyebrow {
454
+ display: inline-flex;
455
+ align-items: center;
456
+ gap: 10px;
457
+ padding: 8px 20px;
458
+ background: linear-gradient(135deg, var(--color-accent-light), var(--color-accent-lighter));
459
+ color: var(--color-accent);
460
+ font-size: 14px;
461
+ font-weight: 600;
462
+ border-radius: 100px;
463
+ margin-bottom: 28px;
464
+ text-decoration: none;
465
+ border: 1px solid rgba(129, 140, 248, 0.2);
466
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
467
+ box-shadow: 0 2px 8px rgba(129, 140, 248, 0.15);
468
+ }
469
+
470
+ .eyebrow:hover {
471
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-light));
472
+ transform: translateY(-2px);
473
+ box-shadow: 0 4px 16px rgba(129, 140, 248, 0.25);
474
+ border-color: var(--color-accent);
475
+ }
476
+
477
+ /* Hero Section Enhancements */
478
+ .hero-section {
479
+ position: relative;
480
+ overflow: hidden;
481
+ }
482
+
483
+ .hero-decoration {
484
+ position: absolute;
485
+ top: -200px;
486
+ left: 50%;
487
+ transform: translateX(-50%);
488
+ width: 800px;
489
+ height: 800px;
490
+ background: radial-gradient(circle, var(--color-accent-lighter) 0%, transparent 70%);
491
+ opacity: 0.15;
492
+ pointer-events: none;
493
+ z-index: -1;
494
+ }
495
+
496
+ /* ============================================
497
+ Stats Section
498
+ ============================================ */
499
+
500
+ .stats-section {
501
+ padding: 64px 0;
502
+ position: relative;
503
+ }
504
+
505
+ .stats-section::before {
506
+ content: '';
507
+ position: absolute;
508
+ top: 50%;
509
+ left: 50%;
510
+ transform: translate(-50%, -50%);
511
+ width: 600px;
512
+ height: 600px;
513
+ background: radial-gradient(circle, var(--color-accent-lighter) 0%, transparent 70%);
514
+ opacity: 0.1;
515
+ pointer-events: none;
516
+ z-index: -1;
517
+ }
518
+
519
+ .stats-container {
520
+ display: grid;
521
+ grid-template-columns: repeat(2, 1fr);
522
+ gap: 20px;
523
+ max-width: 1000px;
524
+ margin: 0 auto;
525
+ }
526
+
527
+ @media (min-width: 768px) {
528
+ .stats-container {
529
+ grid-template-columns: repeat(4, 1fr);
530
+ gap: 24px;
531
+ }
532
+ }
533
+
534
+ .stat-card {
535
+ text-align: center;
536
+ padding: 36px 24px;
537
+ background: var(--color-background);
538
+ border-radius: var(--radius-l);
539
+ border: 1.5px solid transparent;
540
+ background-image:
541
+ linear-gradient(var(--color-background), var(--color-background)),
542
+ linear-gradient(135deg, var(--color-accent-light), var(--color-border));
543
+ background-origin: border-box;
544
+ background-clip: padding-box, border-box;
545
+ position: relative;
546
+ overflow: hidden;
547
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
548
+ cursor: default;
549
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
550
+ }
551
+
552
+ .stat-card::before {
553
+ content: '';
554
+ position: absolute;
555
+ top: 0;
556
+ left: 0;
557
+ right: 0;
558
+ height: 3px;
559
+ background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
560
+ opacity: 0;
561
+ transition: opacity 0.35s ease;
562
+ }
563
+
564
+ .stat-card:hover {
565
+ transform: translateY(-2px);
566
+ border-color: var(--color-accent);
567
+ box-shadow: 0 8px 24px rgba(129, 140, 248, 0.2);
568
+ }
569
+
570
+ .stat-card:hover::before {
571
+ opacity: 1;
572
+ }
573
+
574
+ .stat-card:hover .stat-icon {
575
+ transform: scale(1.15) translateY(-2px);
576
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
577
+ color: var(--color-on-accent);
578
+ box-shadow: 0 8px 16px rgba(129, 140, 248, 0.3);
579
+ }
580
+
581
+ .stat-card:hover .stat-number {
582
+ transform: scale(1.08);
583
+ filter: brightness(1.1);
584
+ }
585
+
586
+ .stat-icon {
587
+ width: 56px;
588
+ height: 56px;
589
+ margin: 0 auto 20px;
590
+ display: flex;
591
+ align-items: center;
592
+ justify-content: center;
593
+ background: linear-gradient(135deg, var(--color-accent-light), var(--color-accent-lighter));
594
+ border-radius: 14px;
595
+ font-size: 24px;
596
+ color: var(--color-accent);
597
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
598
+ box-shadow: 0 4px 12px rgba(129, 140, 248, 0.15);
599
+ }
600
+
601
+ .stat-number {
602
+ font-size: 64px;
603
+ font-weight: 800;
604
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
605
+ -webkit-background-clip: text;
606
+ -webkit-text-fill-color: transparent;
607
+ background-clip: text;
608
+ line-height: 1;
609
+ margin-bottom: 8px;
610
+ letter-spacing: -0.03em;
611
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
612
+ font-variant-numeric: tabular-nums;
613
+ }
614
+
615
+ .stat-label {
616
+ font-size: 14px;
617
+ color: var(--color-text-secondary);
618
+ font-weight: 600;
619
+ letter-spacing: 0.02em;
620
+ line-height: 1.5;
621
+ text-transform: capitalize;
622
+ }
623
+
624
+ /* ============================================
625
+ Cards with Icons
626
+ ============================================ */
627
+
628
+ .cards-with-icons-container {
629
+ display: grid;
630
+ grid-template-columns: repeat(1, 1fr);
631
+ gap: var(--space-xl);
632
+ margin-top: var(--space-xl);
633
+ }
634
+
635
+ @media (min-width: 640px) {
636
+ .cards-with-icons-container {
637
+ grid-template-columns: repeat(2, 1fr);
638
+ }
639
+ }
640
+
641
+ @media (min-width: 1024px) {
642
+ .cards-with-icons-container {
643
+ grid-template-columns: repeat(4, 1fr);
644
+ }
645
+ }
646
+
647
+ .card-with-icon {
648
+ display: flex;
649
+ flex-direction: column;
650
+ gap: var(--space-m);
651
+ padding: var(--space-xl);
652
+ background-color: var(--color-surface);
653
+ border-radius: var(--radius-l);
654
+ border: 1px solid var(--color-border);
655
+ transition: all 0.2s ease;
656
+ }
657
+
658
+ .card-with-icon:hover {
659
+ border-color: var(--color-accent);
660
+ transform: translateY(-2px);
661
+ }
662
+
663
+ .card-with-icon .icon {
664
+ font-size: var(--font-size-xl);
665
+ color: var(--color-accent);
666
+ }
667
+
668
+ .feature-heading {
669
+ display: flex;
670
+ flex-direction: column;
671
+ gap: var(--space-xs);
672
+ }
673
+
674
+ .feature-heading p {
675
+ margin: 0;
676
+ }
677
+
678
+ /* ============================================
679
+ Grid System
680
+ ============================================ */
681
+
682
+ .grid {
683
+ display: grid;
684
+ gap: 24px;
685
+ margin: var(--space-xl) 0;
686
+ }
687
+
688
+ .grid.columns-2 {
689
+ grid-template-columns: repeat(1, 1fr);
690
+ }
691
+
692
+ .grid.columns-3 {
693
+ grid-template-columns: repeat(1, 1fr);
694
+ }
695
+
696
+ @media (min-width: 768px) {
697
+ .grid.columns-2 {
698
+ grid-template-columns: repeat(2, 1fr);
699
+ gap: 28px;
700
+ }
701
+ .grid.columns-3 {
702
+ grid-template-columns: repeat(2, 1fr);
703
+ gap: 24px;
704
+ }
705
+ }
706
+
707
+ @media (min-width: 1024px) {
708
+ .grid.columns-3 {
709
+ grid-template-columns: repeat(3, 1fr);
710
+ }
711
+ .grid.columns-2 {
712
+ gap: 32px;
713
+ }
714
+ }
715
+
716
+ .full-width {
717
+ grid-column: 1 / -1;
718
+ }
719
+
720
+ /* ============================================
721
+ Agent Cards
722
+ ============================================ */
723
+
724
+ .agent-category {
725
+ margin-bottom: 64px;
726
+ position: relative;
727
+ }
728
+
729
+ .agent-category::before {
730
+ content: '';
731
+ position: absolute;
732
+ top: 0;
733
+ left: -20px;
734
+ width: 3px;
735
+ height: 100%;
736
+ background: linear-gradient(180deg, var(--color-accent), transparent);
737
+ opacity: 0.2;
738
+ border-radius: 2px;
739
+ }
740
+
741
+ .agent-category h3 {
742
+ display: flex;
743
+ align-items: center;
744
+ gap: var(--space-m);
745
+ margin-bottom: var(--space-xl);
746
+ padding: var(--space-l) var(--space-xl);
747
+ background: linear-gradient(135deg, var(--color-accent-lighter), var(--color-surface));
748
+ border-left: 4px solid var(--color-accent);
749
+ border-radius: var(--radius-m);
750
+ color: var(--color-text-primary);
751
+ font-size: 24px;
752
+ font-weight: 700;
753
+ letter-spacing: -0.02em;
754
+ box-shadow: 0 2px 8px rgba(129, 140, 248, 0.08);
755
+ position: relative;
756
+ overflow: hidden;
757
+ }
758
+
759
+ .agent-category h3::after {
760
+ content: '';
761
+ position: absolute;
762
+ right: 0;
763
+ top: 0;
764
+ bottom: 0;
765
+ width: 100px;
766
+ background: linear-gradient(90deg, transparent, rgba(129, 140, 248, 0.05));
767
+ pointer-events: none;
768
+ }
769
+
770
+ .agent-category h3 i {
771
+ color: var(--color-accent);
772
+ font-size: 28px;
773
+ flex-shrink: 0;
774
+ filter: drop-shadow(0 2px 4px rgba(129, 140, 248, 0.3));
775
+ }
776
+
777
+ .agent-card {
778
+ padding: var(--space-xl);
779
+ background-color: var(--color-surface);
780
+ border-radius: var(--radius-l);
781
+ border: 1px solid var(--color-border);
782
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
783
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
784
+ position: relative;
785
+ overflow: hidden;
786
+ }
787
+
788
+ .agent-card::before {
789
+ content: '';
790
+ position: absolute;
791
+ inset: 0;
792
+ background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
793
+ opacity: 0;
794
+ transition: opacity 0.3s ease;
795
+ pointer-events: none;
796
+ }
797
+
798
+ .agent-card:hover {
799
+ border-color: var(--color-accent);
800
+ transform: translateY(-2px);
801
+ box-shadow: 0 8px 20px rgba(129, 140, 248, 0.15);
802
+ }
803
+
804
+ .agent-card:hover::before {
805
+ opacity: 0.5;
806
+ }
807
+
808
+ .agent-header {
809
+ display: flex;
810
+ align-items: center;
811
+ justify-content: space-between;
812
+ gap: var(--space-m);
813
+ margin-bottom: var(--space-m);
814
+ }
815
+
816
+ .agent-name {
817
+ font-family: var(--font-mono);
818
+ font-size: 15px;
819
+ font-weight: 700;
820
+ color: var(--color-text-primary);
821
+ letter-spacing: -0.01em;
822
+ position: relative;
823
+ z-index: 1;
824
+ }
825
+
826
+ .agent-badge {
827
+ padding: 6px 12px;
828
+ font-size: 11px;
829
+ font-weight: 700;
830
+ background: linear-gradient(135deg, var(--color-accent-light), var(--color-accent-lighter));
831
+ color: var(--color-accent);
832
+ border-radius: 6px;
833
+ text-transform: uppercase;
834
+ letter-spacing: 0.08em;
835
+ box-shadow: 0 2px 4px rgba(129, 140, 248, 0.2);
836
+ border: 1px solid rgba(129, 140, 248, 0.3);
837
+ white-space: nowrap;
838
+ transition: all 0.2s ease;
839
+ }
840
+
841
+ .agent-badge.critical {
842
+ background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(239, 68, 68, 0.1));
843
+ color: var(--color-error);
844
+ box-shadow: 0 2px 4px rgba(239, 68, 68, 0.25);
845
+ border-color: rgba(239, 68, 68, 0.4);
846
+ }
847
+
848
+ .agent-card:hover .agent-badge {
849
+ transform: scale(1.05);
850
+ box-shadow: 0 4px 8px rgba(129, 140, 248, 0.3);
851
+ }
852
+
853
+ .agent-card:hover .agent-badge.critical {
854
+ box-shadow: 0 4px 8px rgba(239, 68, 68, 0.35);
855
+ }
856
+
857
+ .agent-card:hover .agent-name {
858
+ color: var(--color-accent);
859
+ }
860
+
861
+ .agent-description {
862
+ font-size: 14px;
863
+ color: var(--color-text-secondary);
864
+ margin: 0 0 var(--space-m) 0;
865
+ line-height: 1.65;
866
+ position: relative;
867
+ z-index: 1;
868
+ }
869
+
870
+ .agent-usage {
871
+ display: block;
872
+ font-family: var(--font-mono);
873
+ font-size: 13px;
874
+ color: #a6adc8;
875
+ background: linear-gradient(135deg, #1e1e2e 0%, #181825 100%);
876
+ padding: 12px 16px;
877
+ border-radius: var(--radius-m);
878
+ border: 1px solid rgba(129, 140, 248, 0.1);
879
+ position: relative;
880
+ z-index: 1;
881
+ transition: all 0.2s ease;
882
+ }
883
+
884
+ .agent-usage:hover {
885
+ border-color: rgba(129, 140, 248, 0.3);
886
+ background: linear-gradient(135deg, #242438 0%, #1e1e2e 100%);
887
+ }
888
+
889
+ /* ============================================
890
+ Command Cards
891
+ ============================================ */
892
+
893
+ .command-category {
894
+ margin-bottom: var(--space-xxl);
895
+ }
896
+
897
+ .command-category h3 {
898
+ display: flex;
899
+ align-items: center;
900
+ gap: var(--space-m);
901
+ margin-bottom: var(--space-xl);
902
+ padding: var(--space-m) var(--space-l);
903
+ background: linear-gradient(135deg, rgba(129, 140, 248, 0.08), rgba(129, 140, 248, 0.02));
904
+ border-left: 3px solid var(--color-accent);
905
+ border-radius: var(--radius-s);
906
+ color: var(--color-text-primary);
907
+ font-family: var(--font-mono);
908
+ font-size: 18px;
909
+ font-weight: 600;
910
+ letter-spacing: -0.01em;
911
+ position: relative;
912
+ }
913
+
914
+ .command-category h3::before {
915
+ content: '//';
916
+ color: rgba(129, 140, 248, 0.4);
917
+ font-weight: 400;
918
+ margin-right: var(--space-xs);
919
+ }
920
+
921
+ .command-category h3 i {
922
+ color: var(--color-accent);
923
+ filter: drop-shadow(0 0 8px rgba(129, 140, 248, 0.4));
924
+ }
925
+
926
+ .command-card {
927
+ padding: var(--space-xl);
928
+ background: linear-gradient(135deg, rgba(30, 30, 46, 0.6), rgba(24, 24, 37, 0.5));
929
+ border-radius: var(--radius-l);
930
+ border: 1.5px solid rgba(129, 140, 248, 0.2);
931
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
932
+ position: relative;
933
+ overflow: hidden;
934
+ box-shadow:
935
+ inset 0 1px 0 rgba(255, 255, 255, 0.05),
936
+ inset 0 -1px 0 rgba(0, 0, 0, 0.2),
937
+ 0 2px 8px rgba(0, 0, 0, 0.3);
938
+ }
939
+
940
+ .command-card::before {
941
+ content: '';
942
+ position: absolute;
943
+ top: 0;
944
+ left: 0;
945
+ right: 0;
946
+ height: 2px;
947
+ background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
948
+ opacity: 0.4;
949
+ }
950
+
951
+ .command-card:hover {
952
+ border-color: var(--color-accent);
953
+ transform: translateY(-2px);
954
+ box-shadow: 0 8px 20px rgba(129, 140, 248, 0.2);
955
+ }
956
+
957
+ .command-card:hover .command-name {
958
+ color: rgba(129, 140, 248, 1);
959
+ text-shadow: 0 0 24px rgba(129, 140, 248, 0.5);
960
+ }
961
+
962
+ .command-card:hover .command-type-badge {
963
+ background: linear-gradient(135deg, var(--color-accent), rgba(129, 140, 248, 0.6));
964
+ color: var(--color-on-accent);
965
+ border-color: var(--color-accent);
966
+ box-shadow: 0 2px 8px rgba(129, 140, 248, 0.4);
967
+ }
968
+
969
+ .command-card:hover::after {
970
+ opacity: 0.15;
971
+ }
972
+
973
+ .command-header {
974
+ margin-bottom: var(--space-m);
975
+ display: flex;
976
+ align-items: flex-start;
977
+ justify-content: space-between;
978
+ gap: var(--space-m);
979
+ }
980
+
981
+ .command-name {
982
+ font-family: var(--font-mono);
983
+ font-size: 15px;
984
+ font-weight: 600;
985
+ color: var(--color-accent);
986
+ background: none;
987
+ padding: 0;
988
+ letter-spacing: -0.01em;
989
+ text-shadow: 0 0 20px rgba(129, 140, 248, 0.3);
990
+ display: flex;
991
+ align-items: center;
992
+ gap: 8px;
993
+ flex: 1;
994
+ }
995
+
996
+ .command-name::before {
997
+ content: '$';
998
+ color: rgba(129, 140, 248, 0.5);
999
+ font-weight: 400;
1000
+ font-size: 14px;
1001
+ }
1002
+
1003
+ .command-type-badge {
1004
+ padding: 3px 8px;
1005
+ font-family: var(--font-mono);
1006
+ font-size: 10px;
1007
+ font-weight: 700;
1008
+ text-transform: uppercase;
1009
+ letter-spacing: 0.05em;
1010
+ border-radius: 3px;
1011
+ background: linear-gradient(135deg, rgba(129, 140, 248, 0.15), rgba(129, 140, 248, 0.08));
1012
+ color: rgba(129, 140, 248, 0.8);
1013
+ border: 1px solid rgba(129, 140, 248, 0.25);
1014
+ white-space: nowrap;
1015
+ flex-shrink: 0;
1016
+ }
1017
+
1018
+ .command-description {
1019
+ font-size: 14px;
1020
+ color: rgba(203, 213, 225, 0.85);
1021
+ margin: 0;
1022
+ line-height: 1.7;
1023
+ letter-spacing: 0.01em;
1024
+ }
1025
+
1026
+ /* ============================================
1027
+ Skill Cards
1028
+ ============================================ */
1029
+
1030
+ .skill-category {
1031
+ margin-bottom: 72px;
1032
+ position: relative;
1033
+ padding: 24px;
1034
+ background: linear-gradient(135deg,
1035
+ rgba(129, 140, 248, 0.02) 0%,
1036
+ transparent 50%);
1037
+ border-radius: var(--radius-l);
1038
+ border: 1px solid transparent;
1039
+ transition: all 0.3s ease;
1040
+ }
1041
+
1042
+ .skill-category::before {
1043
+ content: '';
1044
+ position: absolute;
1045
+ top: 0;
1046
+ left: 0;
1047
+ width: 4px;
1048
+ height: 100%;
1049
+ background: linear-gradient(180deg, var(--color-accent), transparent);
1050
+ opacity: 0.3;
1051
+ border-radius: 2px;
1052
+ transition: opacity 0.3s ease;
1053
+ }
1054
+
1055
+ .skill-category:hover::before {
1056
+ opacity: 0.6;
1057
+ }
1058
+
1059
+ .skill-category h3 {
1060
+ display: flex;
1061
+ align-items: center;
1062
+ gap: var(--space-m);
1063
+ margin-bottom: var(--space-xl);
1064
+ padding: var(--space-l) var(--space-xl);
1065
+ background: linear-gradient(135deg,
1066
+ rgba(129, 140, 248, 0.1) 0%,
1067
+ rgba(129, 140, 248, 0.05) 50%,
1068
+ var(--color-surface) 100%);
1069
+ border-left: 4px solid var(--color-accent);
1070
+ border-radius: var(--radius-m);
1071
+ color: var(--color-text-primary);
1072
+ font-size: 22px;
1073
+ font-weight: 700;
1074
+ letter-spacing: -0.02em;
1075
+ box-shadow:
1076
+ 0 2px 8px rgba(129, 140, 248, 0.12),
1077
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
1078
+ transition: all 0.3s ease;
1079
+ cursor: default;
1080
+ }
1081
+
1082
+ .skill-category h3:hover {
1083
+ background: linear-gradient(135deg,
1084
+ rgba(129, 140, 248, 0.15) 0%,
1085
+ rgba(129, 140, 248, 0.08) 50%,
1086
+ var(--color-surface) 100%);
1087
+ box-shadow:
1088
+ 0 4px 12px rgba(129, 140, 248, 0.18),
1089
+ inset 0 1px 0 rgba(255, 255, 255, 0.08);
1090
+ }
1091
+
1092
+ .skill-category h3 i {
1093
+ color: var(--color-accent);
1094
+ font-size: 24px;
1095
+ }
1096
+
1097
+ .skill-card {
1098
+ padding: 28px;
1099
+ background: linear-gradient(135deg, var(--color-surface), var(--color-background));
1100
+ border-radius: var(--radius-l);
1101
+ border: 1.5px solid var(--color-border);
1102
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1103
+ position: relative;
1104
+ overflow: hidden;
1105
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
1106
+ }
1107
+
1108
+ .skill-card::before {
1109
+ content: '';
1110
+ position: absolute;
1111
+ top: 0;
1112
+ left: 0;
1113
+ right: 0;
1114
+ height: 3px;
1115
+ background: linear-gradient(90deg, var(--color-accent), transparent);
1116
+ opacity: 0;
1117
+ transition: opacity 0.3s ease;
1118
+ }
1119
+
1120
+ .skill-card::after {
1121
+ content: '';
1122
+ position: absolute;
1123
+ top: 0;
1124
+ right: 0;
1125
+ width: 40px;
1126
+ height: 40px;
1127
+ background: linear-gradient(135deg, transparent 50%, var(--color-accent) 50%);
1128
+ opacity: 0.1;
1129
+ pointer-events: none;
1130
+ transition: opacity 0.3s ease;
1131
+ }
1132
+
1133
+ .skill-card:hover {
1134
+ border-color: var(--color-accent);
1135
+ transform: translateY(-2px);
1136
+ box-shadow: 0 8px 20px rgba(129, 140, 248, 0.15);
1137
+ }
1138
+
1139
+ .skill-card:hover::before {
1140
+ opacity: 1;
1141
+ }
1142
+
1143
+ .skill-card:hover::after {
1144
+ opacity: 0.3;
1145
+ }
1146
+
1147
+ .skill-card.featured {
1148
+ background: linear-gradient(135deg,
1149
+ rgba(129, 140, 248, 0.12) 0%,
1150
+ rgba(129, 140, 248, 0.06) 50%,
1151
+ var(--color-surface) 100%);
1152
+ border-color: var(--color-accent);
1153
+ box-shadow:
1154
+ 0 4px 16px rgba(129, 140, 248, 0.25),
1155
+ 0 0 60px rgba(129, 140, 248, 0.08),
1156
+ inset 0 1px 0 rgba(255, 255, 255, 0.1);
1157
+ position: relative;
1158
+ overflow: hidden;
1159
+ }
1160
+
1161
+ .skill-card.featured::before {
1162
+ background: linear-gradient(90deg,
1163
+ var(--color-accent) 0%,
1164
+ rgba(129, 140, 248, 0.6) 100%);
1165
+ opacity: 1;
1166
+ height: 4px;
1167
+ }
1168
+
1169
+ .skill-card.featured:hover {
1170
+ box-shadow: 0 10px 28px rgba(129, 140, 248, 0.2);
1171
+ transform: translateY(-2px);
1172
+ }
1173
+
1174
+ .skill-header {
1175
+ display: flex;
1176
+ align-items: center;
1177
+ justify-content: space-between;
1178
+ gap: var(--space-m);
1179
+ margin-bottom: var(--space-l);
1180
+ padding-bottom: var(--space-m);
1181
+ border-bottom: 1px solid rgba(129, 140, 248, 0.1);
1182
+ position: relative;
1183
+ }
1184
+
1185
+ .skill-header::after {
1186
+ content: '';
1187
+ position: absolute;
1188
+ bottom: -1px;
1189
+ left: 0;
1190
+ width: 60px;
1191
+ height: 2px;
1192
+ background: linear-gradient(90deg, var(--color-accent), transparent);
1193
+ opacity: 0;
1194
+ transition: all 0.3s ease;
1195
+ }
1196
+
1197
+ .skill-card:hover .skill-header::after {
1198
+ opacity: 1;
1199
+ width: 120px;
1200
+ }
1201
+
1202
+ .skill-name {
1203
+ font-family: var(--font-mono);
1204
+ font-size: 16px;
1205
+ font-weight: 700;
1206
+ color: var(--color-text-primary);
1207
+ letter-spacing: -0.01em;
1208
+ display: flex;
1209
+ align-items: center;
1210
+ gap: 8px;
1211
+ position: relative;
1212
+ z-index: 1;
1213
+ }
1214
+
1215
+ .skill-name::before {
1216
+ content: '◆';
1217
+ color: var(--color-accent);
1218
+ font-size: 10px;
1219
+ opacity: 0.6;
1220
+ transition: all 0.3s ease;
1221
+ }
1222
+
1223
+ .skill-card:hover .skill-name {
1224
+ color: var(--color-accent);
1225
+ }
1226
+
1227
+ .skill-card:hover .skill-name::before {
1228
+ opacity: 1;
1229
+ transform: scale(1.2);
1230
+ }
1231
+
1232
+ .skill-badge {
1233
+ padding: 6px 12px;
1234
+ font-size: 11px;
1235
+ font-weight: 600;
1236
+ background: var(--color-accent-light);
1237
+ color: var(--color-accent);
1238
+ border-radius: 6px;
1239
+ text-transform: uppercase;
1240
+ letter-spacing: 0.05em;
1241
+ white-space: nowrap;
1242
+ transition: all 0.2s ease;
1243
+ }
1244
+
1245
+ .skill-badge.highlight {
1246
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
1247
+ color: var(--color-on-accent);
1248
+ box-shadow: 0 2px 8px rgba(129, 140, 248, 0.4);
1249
+ border-color: var(--color-accent);
1250
+ }
1251
+
1252
+ .skill-card:hover .skill-badge {
1253
+ background: var(--color-accent);
1254
+ color: var(--color-on-accent);
1255
+ }
1256
+
1257
+ .skill-description {
1258
+ font-size: 14px;
1259
+ color: var(--color-text-secondary);
1260
+ margin: 0 0 var(--space-l) 0;
1261
+ line-height: 1.65;
1262
+ position: relative;
1263
+ z-index: 1;
1264
+ letter-spacing: 0.01em;
1265
+ }
1266
+
1267
+ .skill-features {
1268
+ display: flex;
1269
+ flex-wrap: wrap;
1270
+ gap: 10px;
1271
+ margin-bottom: var(--space-l);
1272
+ position: relative;
1273
+ z-index: 1;
1274
+ }
1275
+
1276
+ .feature-item {
1277
+ display: flex;
1278
+ align-items: center;
1279
+ gap: 6px;
1280
+ font-size: 12px;
1281
+ font-weight: 600;
1282
+ color: var(--color-success);
1283
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(16, 185, 129, 0.08));
1284
+ padding: 8px 14px;
1285
+ border-radius: 20px;
1286
+ border: 1px solid rgba(16, 185, 129, 0.3);
1287
+ transition: all 0.2s ease;
1288
+ letter-spacing: 0.01em;
1289
+ }
1290
+
1291
+ .feature-item i {
1292
+ font-size: 11px;
1293
+ filter: drop-shadow(0 1px 2px rgba(16, 185, 129, 0.3));
1294
+ }
1295
+
1296
+ .feature-item:hover {
1297
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.25), rgba(16, 185, 129, 0.15));
1298
+ border-color: rgba(16, 185, 129, 0.5);
1299
+ transform: translateY(-1px);
1300
+ box-shadow: 0 2px 6px rgba(16, 185, 129, 0.2);
1301
+ }
1302
+
1303
+ .skill-usage {
1304
+ display: block;
1305
+ font-family: var(--font-mono);
1306
+ font-size: 13px;
1307
+ color: #a6adc8;
1308
+ background: linear-gradient(135deg, #1e1e2e 0%, #181825 100%);
1309
+ padding: 14px 18px;
1310
+ border-radius: var(--radius-m);
1311
+ margin-bottom: var(--space-s);
1312
+ border: 1px solid rgba(129, 140, 248, 0.15);
1313
+ position: relative;
1314
+ z-index: 1;
1315
+ transition: all 0.2s ease;
1316
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
1317
+ }
1318
+
1319
+ .skill-usage:hover {
1320
+ border-color: rgba(129, 140, 248, 0.3);
1321
+ background: linear-gradient(135deg, #242438 0%, #1e1e2e 100%);
1322
+ transform: translateX(2px);
1323
+ }
1324
+
1325
+ .skill-note {
1326
+ font-size: 12px;
1327
+ color: var(--color-text-tertiary);
1328
+ margin: 0;
1329
+ font-style: italic;
1330
+ position: relative;
1331
+ z-index: 1;
1332
+ padding: 8px 12px;
1333
+ background: rgba(255, 165, 0, 0.08);
1334
+ border-left: 3px solid rgba(255, 165, 0, 0.4);
1335
+ border-radius: 4px;
1336
+ }
1337
+
1338
+ .skill-note::before {
1339
+ content: '⚠';
1340
+ margin-right: 6px;
1341
+ color: rgba(255, 165, 0, 0.8);
1342
+ }
1343
+
1344
+ /* ============================================
1345
+ MCP Cards
1346
+ ============================================ */
1347
+
1348
+ .mcp-card {
1349
+ padding: 36px;
1350
+ background: linear-gradient(135deg, var(--color-surface), var(--color-background));
1351
+ border-radius: var(--radius-l);
1352
+ border: 1.5px solid transparent;
1353
+ background-image:
1354
+ linear-gradient(135deg, var(--color-surface), var(--color-background)),
1355
+ linear-gradient(135deg, var(--color-accent-light), var(--color-border));
1356
+ background-origin: border-box;
1357
+ background-clip: padding-box, border-box;
1358
+ box-shadow:
1359
+ 0 1px 3px rgba(0, 0, 0, 0.12),
1360
+ 0 4px 8px rgba(0, 0, 0, 0.08),
1361
+ 0 8px 24px rgba(0, 0, 0, 0.06),
1362
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
1363
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1364
+ position: relative;
1365
+ overflow: hidden;
1366
+ }
1367
+
1368
+ .mcp-card::after {
1369
+ content: '● ACTIVE';
1370
+ position: absolute;
1371
+ top: 16px;
1372
+ right: 16px;
1373
+ font-size: 9px;
1374
+ font-weight: 600;
1375
+ letter-spacing: 0.08em;
1376
+ padding: 5px 10px;
1377
+ background: rgba(16, 185, 129, 0.15);
1378
+ color: var(--color-success);
1379
+ border: 1px solid rgba(16, 185, 129, 0.3);
1380
+ border-radius: 12px;
1381
+ z-index: 2;
1382
+ }
1383
+
1384
+ .mcp-card:hover {
1385
+ transform: translateY(-2px);
1386
+ border-color: var(--color-accent);
1387
+ box-shadow: 0 8px 24px rgba(129, 140, 248, 0.2);
1388
+ }
1389
+
1390
+ .mcp-card:hover::after {
1391
+ background: var(--color-success);
1392
+ color: white;
1393
+ border-color: var(--color-success);
1394
+ }
1395
+
1396
+ .mcp-header {
1397
+ display: flex;
1398
+ align-items: center;
1399
+ gap: 20px;
1400
+ margin-bottom: 24px;
1401
+ padding-bottom: 20px;
1402
+ border-bottom: 1px solid rgba(129, 140, 248, 0.1);
1403
+ position: relative;
1404
+ }
1405
+
1406
+ .mcp-header::after {
1407
+ content: '';
1408
+ position: absolute;
1409
+ bottom: -1px;
1410
+ left: 0;
1411
+ width: 80px;
1412
+ height: 2px;
1413
+ background: linear-gradient(90deg, var(--color-accent), transparent);
1414
+ opacity: 0;
1415
+ transition: all 0.3s ease;
1416
+ }
1417
+
1418
+ .mcp-card:hover .mcp-header::after {
1419
+ opacity: 1;
1420
+ width: 150px;
1421
+ }
1422
+
1423
+ .mcp-icon {
1424
+ width: 64px;
1425
+ height: 64px;
1426
+ display: flex;
1427
+ align-items: center;
1428
+ justify-content: center;
1429
+ font-size: 32px;
1430
+ background: linear-gradient(135deg, var(--color-accent-light), var(--color-accent-lighter));
1431
+ color: var(--color-accent);
1432
+ border-radius: 14px;
1433
+ flex-shrink: 0;
1434
+ box-shadow: 0 4px 12px rgba(129, 140, 248, 0.15);
1435
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1436
+ position: relative;
1437
+ z-index: 1;
1438
+ }
1439
+
1440
+ .mcp-card:hover .mcp-icon {
1441
+ transform: scale(1.1) translateY(-2px);
1442
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
1443
+ color: var(--color-on-accent);
1444
+ box-shadow: 0 8px 20px rgba(129, 140, 248, 0.3);
1445
+ }
1446
+
1447
+ .mcp-name {
1448
+ font-size: 24px;
1449
+ font-weight: 700;
1450
+ color: var(--color-text-primary);
1451
+ letter-spacing: -0.02em;
1452
+ position: relative;
1453
+ z-index: 1;
1454
+ transition: all 0.3s ease;
1455
+ }
1456
+
1457
+ .mcp-card:hover .mcp-name {
1458
+ transform: translateX(4px);
1459
+ background: linear-gradient(135deg, var(--color-text-primary), var(--color-accent));
1460
+ -webkit-background-clip: text;
1461
+ -webkit-text-fill-color: transparent;
1462
+ background-clip: text;
1463
+ }
1464
+
1465
+ .mcp-description {
1466
+ font-size: 15px;
1467
+ color: var(--color-text-secondary);
1468
+ margin-bottom: 28px;
1469
+ line-height: 1.7;
1470
+ position: relative;
1471
+ z-index: 1;
1472
+ letter-spacing: 0.01em;
1473
+ }
1474
+
1475
+ .mcp-description::before {
1476
+ content: '';
1477
+ position: absolute;
1478
+ bottom: -12px;
1479
+ left: 0;
1480
+ right: 0;
1481
+ height: 1px;
1482
+ background: linear-gradient(90deg,
1483
+ transparent,
1484
+ rgba(129, 140, 248, 0.1) 20%,
1485
+ rgba(129, 140, 248, 0.3) 40%,
1486
+ rgba(129, 140, 248, 0.3) 60%,
1487
+ rgba(129, 140, 248, 0.1) 80%,
1488
+ transparent
1489
+ );
1490
+ transition: all 0.4s ease;
1491
+ }
1492
+
1493
+ .mcp-card:hover .mcp-description::before {
1494
+ box-shadow: 0 0 12px rgba(129, 140, 248, 0.6);
1495
+ height: 2px;
1496
+ }
1497
+
1498
+ .mcp-tools h4 {
1499
+ font-size: 13px;
1500
+ font-weight: 700;
1501
+ color: var(--color-text-primary);
1502
+ text-transform: uppercase;
1503
+ letter-spacing: 0.08em;
1504
+ margin-bottom: 16px;
1505
+ display: flex;
1506
+ align-items: center;
1507
+ gap: 8px;
1508
+ position: relative;
1509
+ z-index: 1;
1510
+ }
1511
+
1512
+ .mcp-tools h4::before {
1513
+ content: '▸';
1514
+ color: var(--color-accent);
1515
+ font-size: 14px;
1516
+ }
1517
+
1518
+ .tools-count {
1519
+ font-size: 10px;
1520
+ font-weight: 700;
1521
+ text-transform: uppercase;
1522
+ letter-spacing: 0.05em;
1523
+ padding: 4px 10px;
1524
+ background: rgba(129, 140, 248, 0.15);
1525
+ color: var(--color-accent);
1526
+ border-radius: 12px;
1527
+ margin-left: 8px;
1528
+ border: 1px solid rgba(129, 140, 248, 0.25);
1529
+ display: inline-flex;
1530
+ align-items: center;
1531
+ gap: 4px;
1532
+ box-shadow: 0 1px 3px rgba(129, 140, 248, 0.1);
1533
+ }
1534
+
1535
+ .mcp-card-browser .tools-count {
1536
+ background: var(--server-color-lighter);
1537
+ color: var(--server-color);
1538
+ border-color: var(--server-color-light);
1539
+ }
1540
+
1541
+ .mcp-card-docs .tools-count {
1542
+ background: var(--server-color-lighter);
1543
+ color: var(--server-color);
1544
+ border-color: var(--server-color-light);
1545
+ }
1546
+
1547
+ .mcp-tools ul {
1548
+ margin: 0;
1549
+ padding: 0;
1550
+ list-style: none;
1551
+ display: flex;
1552
+ flex-direction: column;
1553
+ gap: 8px;
1554
+ position: relative;
1555
+ z-index: 1;
1556
+ }
1557
+
1558
+ .mcp-tools li {
1559
+ font-size: 14px;
1560
+ color: var(--color-text-secondary);
1561
+ display: flex;
1562
+ align-items: center;
1563
+ gap: 10px;
1564
+ padding: 10px 14px;
1565
+ background: rgba(129, 140, 248, 0.04);
1566
+ border-left: 2px solid rgba(129, 140, 248, 0.2);
1567
+ border-radius: 6px;
1568
+ transition: all 0.2s ease;
1569
+ line-height: 1.5;
1570
+ }
1571
+
1572
+ .mcp-tools li::before {
1573
+ content: '◆';
1574
+ color: var(--color-accent);
1575
+ font-size: 8px;
1576
+ flex-shrink: 0;
1577
+ opacity: 0.6;
1578
+ }
1579
+
1580
+ .mcp-tools li:hover {
1581
+ background: rgba(129, 140, 248, 0.08);
1582
+ border-left-color: var(--color-accent);
1583
+ transform: translateX(4px);
1584
+ }
1585
+
1586
+ .mcp-tools li:hover::before {
1587
+ opacity: 1;
1588
+ }
1589
+
1590
+ .mcp-tools code {
1591
+ color: var(--color-accent);
1592
+ background: rgba(129, 140, 248, 0.1);
1593
+ padding: 3px 8px;
1594
+ border-radius: 4px;
1595
+ font-weight: 600;
1596
+ font-size: 13px;
1597
+ font-family: var(--font-mono);
1598
+ transition: all 0.2s ease;
1599
+ }
1600
+
1601
+ .mcp-tools li:hover code {
1602
+ background: rgba(129, 140, 248, 0.2);
1603
+ }
1604
+
1605
+ .mcp-note {
1606
+ font-size: 12px;
1607
+ color: var(--color-text-secondary);
1608
+ margin-top: 16px;
1609
+ padding: 12px 16px;
1610
+ background: linear-gradient(135deg, rgba(129, 140, 248, 0.08), rgba(129, 140, 248, 0.04));
1611
+ border-left: 3px solid var(--color-accent);
1612
+ border-radius: 8px;
1613
+ line-height: 1.6;
1614
+ position: relative;
1615
+ z-index: 1;
1616
+ font-weight: 500;
1617
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
1618
+ }
1619
+
1620
+ .mcp-note::before {
1621
+ content: '→';
1622
+ color: var(--color-accent);
1623
+ margin-right: 8px;
1624
+ font-weight: 700;
1625
+ font-size: 14px;
1626
+ }
1627
+
1628
+ /* Browser Server Theme (Teal/Cyan) */
1629
+ .mcp-card-browser {
1630
+ --server-color: #14b8a6;
1631
+ --server-color-light: rgba(20, 184, 166, 0.15);
1632
+ --server-color-lighter: rgba(20, 184, 166, 0.08);
1633
+ --server-color-hover: #0d9488;
1634
+ }
1635
+
1636
+ .mcp-card-browser .mcp-icon {
1637
+ background: linear-gradient(135deg, var(--server-color-light), var(--server-color-lighter));
1638
+ color: var(--server-color);
1639
+ }
1640
+
1641
+ .mcp-card-browser:hover .mcp-icon {
1642
+ background: linear-gradient(135deg, var(--server-color), var(--server-color-hover));
1643
+ color: white;
1644
+ box-shadow: 0 8px 20px rgba(20, 184, 166, 0.4);
1645
+ }
1646
+
1647
+ .mcp-card-browser .mcp-header::after {
1648
+ background: linear-gradient(90deg, var(--server-color), transparent);
1649
+ }
1650
+
1651
+ .mcp-card-browser .mcp-tools li::before {
1652
+ color: var(--server-color);
1653
+ }
1654
+
1655
+ .mcp-card-browser .mcp-tools li:hover {
1656
+ border-left-color: var(--server-color);
1657
+ }
1658
+
1659
+ .mcp-card-browser .mcp-tools code {
1660
+ color: var(--server-color);
1661
+ background: var(--server-color-lighter);
1662
+ }
1663
+
1664
+ .mcp-card-browser .mcp-tools h4::before {
1665
+ color: var(--server-color);
1666
+ }
1667
+
1668
+ /* Docs Server Theme (Amber/Orange) */
1669
+ .mcp-card-docs {
1670
+ --server-color: #f59e0b;
1671
+ --server-color-light: rgba(245, 158, 11, 0.15);
1672
+ --server-color-lighter: rgba(245, 158, 11, 0.08);
1673
+ --server-color-hover: #d97706;
1674
+ }
1675
+
1676
+ .mcp-card-docs .mcp-icon {
1677
+ background: linear-gradient(135deg, var(--server-color-light), var(--server-color-lighter));
1678
+ color: var(--server-color);
1679
+ }
1680
+
1681
+ .mcp-card-docs:hover .mcp-icon {
1682
+ background: linear-gradient(135deg, var(--server-color), var(--server-color-hover));
1683
+ color: white;
1684
+ box-shadow: 0 8px 20px rgba(245, 158, 11, 0.4);
1685
+ }
1686
+
1687
+ .mcp-card-docs .mcp-header::after {
1688
+ background: linear-gradient(90deg, var(--server-color), transparent);
1689
+ }
1690
+
1691
+ .mcp-card-docs .mcp-tools li::before {
1692
+ color: var(--server-color);
1693
+ }
1694
+
1695
+ .mcp-card-docs .mcp-tools li:hover {
1696
+ border-left-color: var(--server-color);
1697
+ }
1698
+
1699
+ .mcp-card-docs .mcp-tools code {
1700
+ color: var(--server-color);
1701
+ background: var(--server-color-lighter);
1702
+ }
1703
+
1704
+ .mcp-card-docs .mcp-tools h4::before {
1705
+ color: var(--server-color);
1706
+ }
1707
+
1708
+ .mcp-card-docs .mcp-note {
1709
+ background: linear-gradient(135deg, var(--server-color-light), var(--server-color-lighter));
1710
+ border-left-color: var(--server-color);
1711
+ }
1712
+
1713
+ .mcp-card-docs .mcp-note::before {
1714
+ color: var(--server-color);
1715
+ }
1716
+
1717
+ /* ============================================
1718
+ Installation Section
1719
+ ============================================ */
1720
+
1721
+ .install-section {
1722
+ background: linear-gradient(135deg, var(--color-surface), var(--color-background));
1723
+ border-radius: var(--radius-xl);
1724
+ margin: var(--space-xxl) 0;
1725
+ padding: var(--space-xxl);
1726
+ border: 1.5px solid var(--color-border);
1727
+ position: relative;
1728
+ overflow: hidden;
1729
+ }
1730
+
1731
+ .install-section::before {
1732
+ content: '';
1733
+ position: absolute;
1734
+ top: 0;
1735
+ left: 0;
1736
+ right: 0;
1737
+ height: 3px;
1738
+ background: linear-gradient(90deg, var(--color-accent), var(--color-promo-start), var(--color-accent));
1739
+ opacity: 0.6;
1740
+ }
1741
+
1742
+ .install-steps {
1743
+ max-width: 750px;
1744
+ margin: 0 auto;
1745
+ position: relative;
1746
+ }
1747
+
1748
+ .install-steps::before {
1749
+ content: '';
1750
+ position: absolute;
1751
+ left: 26px;
1752
+ top: 52px;
1753
+ bottom: 52px;
1754
+ width: 2px;
1755
+ background: linear-gradient(180deg,
1756
+ var(--color-accent) 0%,
1757
+ var(--color-accent) 33%,
1758
+ var(--color-accent) 66%,
1759
+ var(--color-success) 100%
1760
+ );
1761
+ opacity: 0.3;
1762
+ z-index: 0;
1763
+ }
1764
+
1765
+ .install-step {
1766
+ display: flex;
1767
+ gap: var(--space-xl);
1768
+ margin-bottom: var(--space-xxl);
1769
+ padding: var(--space-xl);
1770
+ background: var(--color-background);
1771
+ border-radius: var(--radius-l);
1772
+ border: 1.5px solid var(--color-border);
1773
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1774
+ position: relative;
1775
+ }
1776
+
1777
+ .install-step::before {
1778
+ content: '';
1779
+ position: absolute;
1780
+ inset: 0;
1781
+ background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
1782
+ opacity: 0;
1783
+ transition: opacity 0.3s ease;
1784
+ border-radius: var(--radius-l);
1785
+ pointer-events: none;
1786
+ }
1787
+
1788
+ .install-step:hover {
1789
+ border-color: var(--color-accent);
1790
+ transform: translateX(4px);
1791
+ box-shadow: 0 8px 24px rgba(129, 140, 248, 0.15);
1792
+ }
1793
+
1794
+ .install-step:hover::before {
1795
+ opacity: 0.4;
1796
+ }
1797
+
1798
+ .install-step:last-child {
1799
+ margin-bottom: 0;
1800
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.08), var(--color-background));
1801
+ border-color: rgba(16, 185, 129, 0.3);
1802
+ }
1803
+
1804
+ .install-step:last-child .step-number {
1805
+ background: linear-gradient(135deg, var(--color-success), #0d9488);
1806
+ box-shadow: 0 4px 16px rgba(16, 185, 129, 0.4);
1807
+ }
1808
+
1809
+ .step-number {
1810
+ flex-shrink: 0;
1811
+ width: 52px;
1812
+ height: 52px;
1813
+ display: flex;
1814
+ align-items: center;
1815
+ justify-content: center;
1816
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
1817
+ color: var(--color-on-accent);
1818
+ font-weight: 700;
1819
+ font-size: 24px;
1820
+ border-radius: 50%;
1821
+ box-shadow: 0 4px 12px rgba(129, 140, 248, 0.3);
1822
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1823
+ position: relative;
1824
+ z-index: 1;
1825
+ }
1826
+
1827
+ .install-step:hover .step-number {
1828
+ transform: scale(1.1) rotate(5deg);
1829
+ box-shadow: 0 6px 20px rgba(129, 140, 248, 0.5);
1830
+ }
1831
+
1832
+ .step-content {
1833
+ flex: 1;
1834
+ position: relative;
1835
+ z-index: 1;
1836
+ }
1837
+
1838
+ .step-content h3 {
1839
+ margin-top: 8px;
1840
+ margin-bottom: var(--space-m);
1841
+ font-size: 22px;
1842
+ color: var(--color-text-primary);
1843
+ }
1844
+
1845
+ /* ============================================
1846
+ Code Blocks
1847
+ ============================================ */
1848
+
1849
+ .card-code-block {
1850
+ background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
1851
+ border-radius: var(--radius-m);
1852
+ padding: 18px 20px;
1853
+ overflow-x: auto;
1854
+ border: 1px solid rgba(129, 140, 248, 0.2);
1855
+ box-shadow:
1856
+ inset 0 1px 0 rgba(255, 255, 255, 0.05),
1857
+ 0 4px 12px rgba(0, 0, 0, 0.4);
1858
+ position: relative;
1859
+ }
1860
+
1861
+ .card-code-block::before {
1862
+ content: '';
1863
+ position: absolute;
1864
+ top: 0;
1865
+ left: 0;
1866
+ right: 0;
1867
+ bottom: 0;
1868
+ background: repeating-linear-gradient(
1869
+ 0deg,
1870
+ rgba(255, 255, 255, 0.03) 0px,
1871
+ rgba(255, 255, 255, 0.03) 1px,
1872
+ transparent 1px,
1873
+ transparent 2px
1874
+ );
1875
+ pointer-events: none;
1876
+ opacity: 0.3;
1877
+ }
1878
+
1879
+ .card-code-block pre {
1880
+ margin: 0;
1881
+ position: relative;
1882
+ z-index: 1;
1883
+ }
1884
+
1885
+ .card-code-block code {
1886
+ font-family: var(--font-mono);
1887
+ font-size: 14px;
1888
+ color: #cdd6f4;
1889
+ background: none;
1890
+ padding: 0;
1891
+ line-height: 1.8;
1892
+ white-space: pre;
1893
+ text-shadow: 0 0 8px rgba(205, 214, 244, 0.3);
1894
+ }
1895
+
1896
+ /* ============================================
1897
+ Accordion / FAQ
1898
+ ============================================ */
1899
+ .accordion-container {
1900
+ display: flex;
1901
+ flex-direction: column;
1902
+ gap: var(--space-m);
1903
+ max-width: 900px;
1904
+ margin: 0 auto;
1905
+ }
1906
+
1907
+ .accordion-item {
1908
+ background: var(--color-surface);
1909
+ border: 1.5px solid var(--color-border);
1910
+ border-radius: var(--radius-l);
1911
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
1912
+ overflow: hidden;
1913
+ position: relative;
1914
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
1915
+ }
1916
+
1917
+ .accordion-item::before {
1918
+ content: '';
1919
+ position: absolute;
1920
+ left: 0;
1921
+ top: 0;
1922
+ bottom: 0;
1923
+ width: 4px;
1924
+ background: linear-gradient(180deg, var(--color-accent), var(--color-accent-hover));
1925
+ opacity: 0;
1926
+ transition: opacity 0.35s ease;
1927
+ z-index: 2;
1928
+ }
1929
+
1930
+ .accordion-item[open]::before {
1931
+ opacity: 1;
1932
+ }
1933
+
1934
+ .accordion-item:hover {
1935
+ border-color: var(--color-accent);
1936
+ box-shadow: 0 8px 24px rgba(129, 140, 248, 0.2);
1937
+ transform: translateY(-2px);
1938
+ }
1939
+
1940
+ .accordion-item[open] {
1941
+ background: linear-gradient(135deg, rgba(129, 140, 248, 0.08), var(--color-surface));
1942
+ border-color: var(--color-accent);
1943
+ box-shadow: 0 12px 32px rgba(129, 140, 248, 0.25);
1944
+ }
1945
+
1946
+ .accordion-toggle {
1947
+ display: flex;
1948
+ align-items: center;
1949
+ /* ============================================
1950
+ Promo CTA Section - Final Polish
1951
+ ============================================ */
1952
+
1953
+ .promo-cta {
1954
+ background: linear-gradient(135deg, var(--color-promo-start), var(--color-promo-end));
1955
+ border-radius: var(--radius-xl);
1956
+ padding: 96px var(--space-xxl);
1957
+ margin-bottom: var(--space-xxl);
1958
+ position: relative;
1959
+ overflow: hidden;
1960
+ box-shadow:
1961
+ 0 20px 60px rgba(129, 140, 248, 0.5),
1962
+ 0 8px 24px rgba(0, 0, 0, 0.2);
1963
+ }
1964
+
1965
+ .promo-cta::before {
1966
+ content: '';
1967
+ position: absolute;
1968
+ inset: 0;
1969
+ background:
1970
+ repeating-linear-gradient(
1971
+ 45deg,
1972
+ transparent,
1973
+ transparent 20px,
1974
+ rgba(255, 255, 255, 0.04) 20px,
1975
+ rgba(255, 255, 255, 0.04) 40px
1976
+ );
1977
+ pointer-events: none;
1978
+ }
1979
+
1980
+ .promo-cta::after {
1981
+ content: '';
1982
+ position: absolute;
1983
+ top: 50%;
1984
+ left: 50%;
1985
+ transform: translate(-50%, -50%);
1986
+ width: 600px;
1987
+ height: 600px;
1988
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, transparent 70%);
1989
+ pointer-events: none;
1990
+ animation: glow-pulse 6s ease-in-out infinite;
1991
+ }
1992
+
1993
+ @keyframes glow-pulse {
1994
+ 0%, 100% {
1995
+ opacity: 0.4;
1996
+ transform: translate(-50%, -50%) scale(0.95);
1997
+ }
1998
+ 50% {
1999
+ opacity: 0.7;
2000
+ transform: translate(-50%, -50%) scale(1.05);
2001
+ }
2002
+ }
2003
+
2004
+ .cta-badge {
2005
+ display: inline-flex;
2006
+ align-items: center;
2007
+ gap: 8px;
2008
+ padding: 10px 22px;
2009
+ background: rgba(255, 255, 255, 0.25);
2010
+ backdrop-filter: blur(12px);
2011
+ border: 1.5px solid rgba(255, 255, 255, 0.4);
2012
+ border-radius: 50px;
2013
+ color: white;
2014
+ font-size: 13px;
2015
+ font-weight: 700;
2016
+ text-transform: uppercase;
2017
+ letter-spacing: 0.1em;
2018
+ margin-bottom: 28px;
2019
+ position: relative;
2020
+ z-index: 1;
2021
+ box-shadow:
2022
+ 0 4px 16px rgba(0, 0, 0, 0.2),
2023
+ inset 0 1px 0 rgba(255, 255, 255, 0.3);
2024
+ }
2025
+
2026
+ .cta-badge i {
2027
+ font-size: 16px;
2028
+ animation: bolt-flash 2.5s ease-in-out infinite;
2029
+ filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.8));
2030
+ }
2031
+
2032
+ @keyframes bolt-flash {
2033
+ 0%, 100% { opacity: 1; }
2034
+ 50% { opacity: 0.7; transform: scale(1.15); }
2035
+ }
2036
+
2037
+ .promo-cta h2 {
2038
+ color: white;
2039
+ font-size: 52px;
2040
+ font-weight: 850;
2041
+ line-height: 1.1;
2042
+ margin-bottom: 28px;
2043
+ position: relative;
2044
+ z-index: 1;
2045
+ text-shadow:
2046
+ 0 2px 4px rgba(0, 0, 0, 0.2),
2047
+ 0 4px 20px rgba(0, 0, 0, 0.15);
2048
+ letter-spacing: -0.03em;
2049
+ }
2050
+
2051
+ .cta-subheading {
2052
+ color: rgba(255, 255, 255, 0.98);
2053
+ font-size: 20px;
2054
+ line-height: 1.65;
2055
+ max-width: 720px;
2056
+ margin-left: auto;
2057
+ margin-right: auto;
2058
+ position: relative;
2059
+ z-index: 1;
2060
+ }
2061
+
2062
+ .cta-subheading strong {
2063
+ color: white;
2064
+ font-weight: 700;
2065
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
2066
+ }
2067
+
2068
+ .promo-cta .button {
2069
+ position: relative;
2070
+ z-index: 1;
2071
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
2072
+ }
2073
+
2074
+ .promo-cta .button.primary {
2075
+ background: white;
2076
+ color: var(--color-promo-end);
2077
+ font-size: 19px;
2078
+ font-weight: 700;
2079
+ padding: 20px 42px;
2080
+ box-shadow:
2081
+ 0 8px 28px rgba(0, 0, 0, 0.3),
2082
+ 0 4px 12px rgba(0, 0, 0, 0.2),
2083
+ inset 0 1px 0 rgba(255, 255, 255, 0.4);
2084
+ }
2085
+
2086
+ .promo-cta .button.primary:hover {
2087
+ background: rgba(255, 255, 255, 0.98);
2088
+ transform: translateY(-2px);
2089
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.3);
2090
+ }
2091
+
2092
+ .promo-cta .button.primary i {
2093
+ font-size: 20px;
2094
+ margin-right: 4px;
2095
+ }
2096
+
2097
+ .button-arrow {
2098
+ display: inline-block;
2099
+ margin-left: 8px;
2100
+ transition: transform 0.3s ease;
2101
+ font-weight: 700;
2102
+ font-size: 20px;
2103
+ }
2104
+
2105
+ .promo-cta .button.primary:hover .button-arrow {
2106
+ transform: translateX(4px);
2107
+ }
2108
+
2109
+ .promo-cta .button.tertiary {
2110
+ border: 2px solid rgba(255, 255, 255, 0.5);
2111
+ color: white;
2112
+ font-size: 18px;
2113
+ padding: 18px 36px;
2114
+ background: rgba(255, 255, 255, 0.08);
2115
+ backdrop-filter: blur(8px);
2116
+ }
2117
+
2118
+ .promo-cta .button.tertiary:hover {
2119
+ background: rgba(255, 255, 255, 0.2);
2120
+ border-color: rgba(255, 255, 255, 0.8);
2121
+ transform: translateY(-2px);
2122
+ }
2123
+
2124
+ .cta-trust {
2125
+ margin-top: 32px;
2126
+ margin-bottom: 0;
2127
+ font-size: 15px;
2128
+ color: rgba(255, 255, 255, 0.85);
2129
+ font-weight: 500;
2130
+ letter-spacing: 0.01em;
2131
+ position: relative;
2132
+ z-index: 1;
2133
+ }
2134
+
2135
+ .cta-trust::before {
2136
+ content: '✓';
2137
+ display: inline-block;
2138
+ margin-right: 8px;
2139
+ color: rgba(255, 255, 255, 0.9);
2140
+ font-weight: 700;
2141
+ font-size: 18px;
2142
+ }
2143
+
2144
+ @media (max-width: 767px) {
2145
+ .promo-cta {
2146
+ padding: 64px var(--space-xl);
2147
+ }
2148
+
2149
+ .promo-cta h2 {
2150
+ font-size: 38px;
2151
+ }
2152
+
2153
+ .cta-subheading {
2154
+ font-size: 18px;
2155
+ }
2156
+
2157
+ .promo-cta .button.primary {
2158
+ font-size: 17px;
2159
+ padding: 18px 32px;
2160
+ }
2161
+
2162
+ .button-group {
2163
+ flex-direction: column;
2164
+ width: 100%;
2165
+ }
2166
+
2167
+ .button-group .button {
2168
+ width: 100%;
2169
+ }
2170
+ }
2171
+ /* Add subtle numbers */
2172
+ .accordion-item:nth-child(1) .accordion-toggle::after { content: '01'; }
2173
+ .accordion-item:nth-child(2) .accordion-toggle::after { content: '02'; }
2174
+ .accordion-item:nth-child(3) .accordion-toggle::after { content: '03'; }
2175
+ .accordion-item:nth-child(4) .accordion-toggle::after { content: '04'; }
2176
+ .accordion-item:nth-child(5) .accordion-toggle::after { content: '05'; }
2177
+
2178
+ .accordion-toggle::after {
2179
+ position: absolute;
2180
+ right: 70px;
2181
+ font-size: 10px;
2182
+ font-weight: 700;
2183
+ color: var(--color-text-tertiary);
2184
+ opacity: 0.4;
2185
+ font-family: var(--font-mono);
2186
+ letter-spacing: 0.05em;
2187
+ transition: all 0.3s ease;
2188
+ }
2189
+
2190
+ .accordion-item:hover .accordion-toggle::after {
2191
+ opacity: 0.7;
2192
+ color: var(--color-accent);
2193
+ }
2194
+
2195
+ .accordion-item[open] .accordion-toggle::after {
2196
+ opacity: 0;
2197
+ }
2198
+
2199
+ /* ============================================
2200
+ Promo CTA Section
2201
+ ============================================ */
2202
+
2203
+ .promo-cta {
2204
+ background: linear-gradient(135deg, var(--color-promo-start), var(--color-promo-end));
2205
+ border-radius: var(--radius-xl);
2206
+ padding: 80px var(--space-xxl);
2207
+ margin-bottom: var(--space-xxl);
2208
+ position: relative;
2209
+ overflow: hidden;
2210
+ box-shadow: 0 20px 60px rgba(129, 140, 248, 0.4);
2211
+ }
2212
+
2213
+ .promo-cta::before {
2214
+ content: '';
2215
+ position: absolute;
2216
+ inset: 0;
2217
+ background:
2218
+ repeating-linear-gradient(
2219
+ 45deg,
2220
+ transparent,
2221
+ transparent 20px,
2222
+ rgba(255, 255, 255, 0.03) 20px,
2223
+ rgba(255, 255, 255, 0.03) 40px
2224
+ );
2225
+ pointer-events: none;
2226
+ }
2227
+
2228
+ .promo-cta::after {
2229
+ content: '';
2230
+ position: absolute;
2231
+ top: 50%;
2232
+ left: 50%;
2233
+ transform: translate(-50%, -50%);
2234
+ width: 500px;
2235
+ height: 500px;
2236
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
2237
+ pointer-events: none;
2238
+ animation: glow-pulse 4s ease-in-out infinite;
2239
+ }
2240
+
2241
+ @keyframes glow-pulse {
2242
+ 0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
2243
+ 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); }
2244
+ }
2245
+
2246
+ .cta-badge {
2247
+ display: inline-flex;
2248
+ align-items: center;
2249
+ gap: 8px;
2250
+ padding: 10px 20px;
2251
+ background: rgba(255, 255, 255, 0.2);
2252
+ backdrop-filter: blur(10px);
2253
+ border: 1.5px solid rgba(255, 255, 255, 0.3);
2254
+ border-radius: 50px;
2255
+ color: white;
2256
+ font-size: 14px;
2257
+ font-weight: 700;
2258
+ text-transform: uppercase;
2259
+ letter-spacing: 0.08em;
2260
+ margin-bottom: 24px;
2261
+ position: relative;
2262
+ z-index: 1;
2263
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
2264
+ }
2265
+
2266
+ .cta-badge i {
2267
+ font-size: 16px;
2268
+ }
2269
+
2270
+ .promo-cta h2 {
2271
+ color: white;
2272
+ font-size: 48px;
2273
+ font-weight: 800;
2274
+ line-height: 1.15;
2275
+ margin-bottom: 24px;
2276
+ position: relative;
2277
+ z-index: 1;
2278
+ text-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
2279
+ }
2280
+
2281
+ .promo-cta p {
2282
+ color: rgba(255, 255, 255, 0.95);
2283
+ font-size: 21px;
2284
+ line-height: 1.6;
2285
+ max-width: 700px;
2286
+ margin-left: auto;
2287
+ margin-right: auto;
2288
+ position: relative;
2289
+ z-index: 1;
2290
+ }
2291
+
2292
+ .promo-cta .button {
2293
+ position: relative;
2294
+ z-index: 1;
2295
+ }
2296
+
2297
+ .promo-cta .button.primary {
2298
+ background-color: white;
2299
+ color: var(--color-promo-end);
2300
+ font-size: 18px;
2301
+ padding: 18px 36px;
2302
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
2303
+ }
2304
+
2305
+ .promo-cta .button.primary:hover {
2306
+ background-color: rgba(255, 255, 255, 0.95);
2307
+ transform: translateY(-2px);
2308
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
2309
+ }
2310
+
2311
+ .promo-cta .button.primary i {
2312
+ font-size: 20px;
2313
+ }
2314
+
2315
+ .promo-cta .button.tertiary {
2316
+ border-color: rgba(255, 255, 255, 0.4);
2317
+ color: white;
2318
+ font-size: 18px;
2319
+ padding: 18px 36px;
2320
+ }
2321
+
2322
+ .promo-cta .button.tertiary:hover {
2323
+ background-color: rgba(255, 255, 255, 0.15);
2324
+ border-color: rgba(255, 255, 255, 0.6);
2325
+ }
2326
+
2327
+ .accordion-content code {
2328
+ background: rgba(129, 140, 248, 0.15);
2329
+ color: var(--color-accent);
2330
+ padding: 3px 8px;
2331
+ border-radius: 4px;
2332
+ font-weight: 600;
2333
+ }
2334
+
2335
+ .accordion-content strong {
2336
+ color: var(--color-text-primary);
2337
+ font-weight: 600;
2338
+ }
2339
+
2340
+ /* ============================================
2341
+ Promo CTA Section
2342
+ ============================================ */
2343
+
2344
+ .promo-cta {
2345
+ background: linear-gradient(135deg, var(--color-promo-start), var(--color-promo-end));
2346
+ border-radius: var(--radius-xl);
2347
+ padding: var(--space-xxl);
2348
+ margin-bottom: var(--space-xxl);
2349
+ }
2350
+
2351
+ .promo-cta h2 {
2352
+ color: white;
2353
+ }
2354
+
2355
+ .promo-cta p {
2356
+ color: rgba(255, 255, 255, 0.9);
2357
+ }
2358
+
2359
+ .promo-cta .button.primary {
2360
+ background-color: white;
2361
+ color: var(--color-promo-end);
2362
+ }
2363
+
2364
+ .promo-cta .button.primary:hover {
2365
+ background-color: rgba(255, 255, 255, 0.9);
2366
+ }
2367
+
2368
+ .promo-cta .button.tertiary {
2369
+ border-color: rgba(255, 255, 255, 0.3);
2370
+ color: white;
2371
+ }
2372
+
2373
+ .promo-cta .button.tertiary:hover {
2374
+ background-color: rgba(255, 255, 255, 0.1);
2375
+ }
2376
+
2377
+ /* ============================================
2378
+ Footer
2379
+ ============================================ */
2380
+
2381
+ .footer {
2382
+ border-top: 1px solid var(--color-border);
2383
+ margin-top: auto;
2384
+ padding: var(--space-xxl) 0 var(--space-xl);
2385
+ }
2386
+
2387
+ .footer-menu {
2388
+ display: grid;
2389
+ grid-template-columns: 1fr;
2390
+ gap: var(--space-xl);
2391
+ margin-bottom: var(--space-xl);
2392
+ }
2393
+
2394
+ @media (min-width: 768px) {
2395
+ .footer-menu {
2396
+ grid-template-columns: 2fr 1fr 1fr;
2397
+ }
2398
+ }
2399
+
2400
+ .footer p {
2401
+ margin: 0;
2402
+ color: var(--color-text-secondary);
2403
+ }
2404
+
2405
+ .link-list {
2406
+ display: flex;
2407
+ flex-direction: column;
2408
+ gap: var(--space-m);
2409
+ }
2410
+
2411
+ .link-list a {
2412
+ color: var(--color-text-secondary);
2413
+ font-size: var(--font-size-s);
2414
+ text-decoration: none;
2415
+ }
2416
+
2417
+ .link-list a:hover {
2418
+ color: var(--color-accent);
2419
+ }
2420
+
2421
+ .icon-link {
2422
+ display: flex;
2423
+ align-items: center;
2424
+ gap: var(--space-s);
2425
+ }
2426
+
2427
+ .icon-link .icon {
2428
+ color: var(--color-accent);
2429
+ }
2430
+
2431
+ .pseudo-link {
2432
+ text-decoration: underline;
2433
+ text-decoration-color: var(--color-border);
2434
+ text-underline-offset: 2px;
2435
+ }
2436
+
2437
+ .link-list-horizontal {
2438
+ display: flex;
2439
+ flex-wrap: wrap;
2440
+ gap: var(--space-l);
2441
+ }
2442
+
2443
+ .link-list-horizontal a {
2444
+ color: var(--color-text-tertiary);
2445
+ font-size: var(--font-size-s);
2446
+ }
2447
+
2448
+ .link-list-horizontal a:hover {
2449
+ color: var(--color-text-secondary);
2450
+ }
2451
+
2452
+ /* ============================================
2453
+ Utility Classes
2454
+ ============================================ */
2455
+
2456
+ .hide-on-mobile {
2457
+ display: none;
2458
+ }
2459
+
2460
+ @media (min-width: 768px) {
2461
+ .hide-on-mobile {
2462
+ display: flex;
2463
+ }
2464
+ }
2465
+
2466
+ .mobile-only {
2467
+ display: flex;
2468
+ }
2469
+
2470
+ @media (min-width: 1024px) {
2471
+ .mobile-only {
2472
+ display: none;
2473
+ }
2474
+ }
2475
+
2476
+ .margin-top-l {
2477
+ margin-top: var(--space-l);
2478
+ }
2479
+
2480
+ .ui.s {
2481
+ font-size: var(--font-size-s);
2482
+ line-height: var(--line-height-ui-s);
2483
+ }
2484
+
2485
+ .icon {
2486
+ display: inline-flex !important;
2487
+ align-items: center;
2488
+ }
2489
+
2490
+ .icon.m { font-size: var(--font-size-m); }
2491
+ .icon.l { font-size: var(--font-size-l); }
2492
+ .icon.xl { font-size: var(--font-size-xl); }
2493
+
2494
+ /* ============================================
2495
+ Responsive Adjustments
2496
+ ============================================ */
2497
+
2498
+ @media (max-width: 767px) {
2499
+ :root {
2500
+ --font-size-xxl: 36px;
2501
+ --font-size-xl: 28px;
2502
+ --line-height-h1: 44px;
2503
+ --line-height-h2: 36px;
2504
+ --space-section: 48px;
2505
+ }
2506
+
2507
+ .page-container {
2508
+ padding: 0 var(--space-l);
2509
+ }
2510
+
2511
+ .hero-section .heading.hero {
2512
+ padding: var(--space-xl) 0;
2513
+ }
2514
+
2515
+ .install-section {
2516
+ padding: var(--space-xl);
2517
+ }
2518
+
2519
+ .install-step {
2520
+ flex-direction: column;
2521
+ gap: var(--space-m);
2522
+ }
2523
+
2524
+ .promo-cta {
2525
+ padding: var(--space-xl);
2526
+ }
2527
+ }
2528
+
2529
+ /* ============================================
2530
+ Philosophy Section (Enhanced)
2531
+ ============================================ */
2532
+
2533
+ .philosophy-section {
2534
+ padding: var(--space-section) 0;
2535
+ position: relative;
2536
+ }
2537
+
2538
+ .philosophy-section::before {
2539
+ content: '';
2540
+ position: absolute;
2541
+ top: 0;
2542
+ left: 50%;
2543
+ transform: translateX(-50%);
2544
+ width: 400px;
2545
+ height: 400px;
2546
+ background: radial-gradient(circle, var(--color-accent-lighter) 0%, transparent 70%);
2547
+ opacity: 0.08;
2548
+ pointer-events: none;
2549
+ z-index: 0;
2550
+ }
2551
+
2552
+ .philosophy-section > * {
2553
+ position: relative;
2554
+ z-index: 1;
2555
+ }
2556
+
2557
+ .philosophy-quote {
2558
+ max-width: 900px;
2559
+ margin: 0 auto var(--space-xxl);
2560
+ text-align: center;
2561
+ position: relative;
2562
+ }
2563
+
2564
+ .philosophy-quote::before {
2565
+ content: '"';
2566
+ position: absolute;
2567
+ top: -20px;
2568
+ left: 50%;
2569
+ transform: translateX(-50%);
2570
+ font-size: 120px;
2571
+ font-weight: 700;
2572
+ color: var(--color-accent);
2573
+ opacity: 0.1;
2574
+ line-height: 1;
2575
+ font-family: Georgia, serif;
2576
+ z-index: 0;
2577
+ }
2578
+
2579
+ .philosophy-quote blockquote {
2580
+ font-size: 22px;
2581
+ font-style: italic;
2582
+ color: var(--color-text-secondary);
2583
+ line-height: 1.7;
2584
+ margin: 0;
2585
+ padding: var(--space-xxl);
2586
+ background: linear-gradient(135deg, var(--color-accent-lighter) 0%, transparent 50%);
2587
+ border-left: 5px solid var(--color-accent);
2588
+ border-radius: var(--radius-l);
2589
+ box-shadow: 0 8px 24px rgba(129, 140, 248, 0.12);
2590
+ position: relative;
2591
+ z-index: 1;
2592
+ font-weight: 400;
2593
+ }
2594
+
2595
+ /* Philosophy Pillars */
2596
+ .philosophy-pillars {
2597
+ display: grid;
2598
+ grid-template-columns: 1fr;
2599
+ gap: var(--space-xl);
2600
+ margin-bottom: var(--space-xxl);
2601
+ }
2602
+
2603
+ @media (min-width: 768px) {
2604
+ .philosophy-pillars {
2605
+ grid-template-columns: repeat(2, 1fr);
2606
+ }
2607
+ }
2608
+
2609
+ .pillar {
2610
+ display: flex;
2611
+ gap: var(--space-l);
2612
+ padding: var(--space-xl);
2613
+ background: var(--color-background);
2614
+ border-radius: var(--radius-l);
2615
+ border: 1.5px solid transparent;
2616
+ background-image:
2617
+ linear-gradient(var(--color-background), var(--color-background)),
2618
+ linear-gradient(135deg, var(--color-accent-light), var(--color-border));
2619
+ background-origin: border-box;
2620
+ background-clip: padding-box, border-box;
2621
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
2622
+ position: relative;
2623
+ overflow: hidden;
2624
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
2625
+ }
2626
+
2627
+ .pillar::before {
2628
+ content: '';
2629
+ position: absolute;
2630
+ inset: 0;
2631
+ background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
2632
+ opacity: 0;
2633
+ transition: opacity 0.35s ease;
2634
+ z-index: 0;
2635
+ }
2636
+
2637
+ .pillar:hover {
2638
+ transform: translateY(-2px);
2639
+ border-color: var(--color-accent);
2640
+ box-shadow: 0 8px 24px rgba(129, 140, 248, 0.2);
2641
+ }
2642
+
2643
+ .pillar:hover::before {
2644
+ opacity: 0.3;
2645
+ }
2646
+
2647
+ .pillar > * {
2648
+ position: relative;
2649
+ z-index: 1;
2650
+ }
2651
+
2652
+ .pillar-icon {
2653
+ flex-shrink: 0;
2654
+ width: 72px;
2655
+ height: 72px;
2656
+ display: flex;
2657
+ align-items: center;
2658
+ justify-content: center;
2659
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
2660
+ border-radius: var(--radius-l);
2661
+ font-size: 36px;
2662
+ color: var(--color-on-accent);
2663
+ box-shadow: 0 8px 20px rgba(129, 140, 248, 0.3);
2664
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
2665
+ }
2666
+
2667
+ .pillar:hover .pillar-icon {
2668
+ transform: scale(1.1) rotateY(10deg);
2669
+ box-shadow: 0 12px 30px rgba(129, 140, 248, 0.5);
2670
+ }
2671
+
2672
+ .pillar-content h3 {
2673
+ margin: 0 0 var(--space-xs) 0;
2674
+ font-size: 28px;
2675
+ font-weight: 700;
2676
+ color: var(--color-text-primary);
2677
+ letter-spacing: -0.02em;
2678
+ }
2679
+
2680
+ .pillar-tagline {
2681
+ margin: 0 0 var(--space-m) 0;
2682
+ font-size: 16px;
2683
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
2684
+ -webkit-background-clip: text;
2685
+ -webkit-text-fill-color: transparent;
2686
+ background-clip: text;
2687
+ font-weight: 600;
2688
+ font-style: italic;
2689
+ }
2690
+
2691
+ .pillar-description {
2692
+ margin: 0 0 var(--space-l) 0;
2693
+ font-size: 15px;
2694
+ color: var(--color-text-secondary);
2695
+ line-height: 1.7;
2696
+ letter-spacing: 0.01em;
2697
+ }
2698
+
2699
+ .pillar-tools {
2700
+ display: flex;
2701
+ flex-wrap: wrap;
2702
+ gap: var(--space-s);
2703
+ }
2704
+
2705
+ .tool-tag {
2706
+ font-family: var(--font-mono);
2707
+ font-size: 11px;
2708
+ padding: 6px 12px;
2709
+ background-color: var(--color-surface-hover);
2710
+ color: var(--color-text-secondary);
2711
+ border-radius: var(--radius-s);
2712
+ border: 1px solid var(--color-border);
2713
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
2714
+ cursor: default;
2715
+ font-weight: 500;
2716
+ }
2717
+
2718
+ .tool-tag:hover {
2719
+ background: linear-gradient(135deg, var(--color-accent-lighter), var(--color-surface-hover));
2720
+ border-color: var(--color-accent);
2721
+ color: var(--color-accent);
2722
+ transform: translateY(-1px) scale(1.05);
2723
+ box-shadow: 0 4px 8px rgba(129, 140, 248, 0.15);
2724
+ }
2725
+
2726
+ /* Compound Effect Timeline */
2727
+ .compound-effect {
2728
+ background: linear-gradient(135deg, var(--color-surface), var(--color-background));
2729
+ border-radius: var(--radius-xl);
2730
+ padding: var(--space-xxl);
2731
+ border: 1.5px solid transparent;
2732
+ background-image:
2733
+ linear-gradient(135deg, var(--color-surface), var(--color-background)),
2734
+ linear-gradient(135deg, var(--color-accent-light), var(--color-border));
2735
+ background-origin: border-box;
2736
+ background-clip: padding-box, border-box;
2737
+ position: relative;
2738
+ overflow: hidden;
2739
+ }
2740
+
2741
+ .compound-effect::before {
2742
+ content: '';
2743
+ position: absolute;
2744
+ top: 0;
2745
+ left: 0;
2746
+ right: 0;
2747
+ bottom: 0;
2748
+ background: radial-gradient(circle at 50% 0%, var(--color-accent-lighter), transparent 60%);
2749
+ opacity: 0.3;
2750
+ pointer-events: none;
2751
+ }
2752
+
2753
+ .compound-effect h3 {
2754
+ text-align: center;
2755
+ margin: 0 0 var(--space-xxl) 0;
2756
+ display: flex;
2757
+ align-items: center;
2758
+ justify-content: center;
2759
+ gap: var(--space-s);
2760
+ font-size: 28px;
2761
+ position: relative;
2762
+ z-index: 1;
2763
+ }
2764
+
2765
+ .compound-effect h3 i {
2766
+ font-size: 32px;
2767
+ animation: chart-pulse 2s ease-in-out infinite;
2768
+ }
2769
+
2770
+ @keyframes chart-pulse {
2771
+ 0%, 100% { transform: scale(1) translateY(0); }
2772
+ 50% { transform: scale(1.15) translateY(-2px); }
2773
+ }
2774
+
2775
+ .compound-grid {
2776
+ display: flex;
2777
+ flex-wrap: wrap;
2778
+ align-items: center;
2779
+ justify-content: center;
2780
+ gap: var(--space-l);
2781
+ position: relative;
2782
+ z-index: 1;
2783
+ }
2784
+
2785
+ .compound-item {
2786
+ text-align: center;
2787
+ padding: var(--space-xl);
2788
+ background: var(--color-background);
2789
+ border-radius: var(--radius-l);
2790
+ border: 1.5px solid var(--color-border);
2791
+ min-width: 160px;
2792
+ transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
2793
+ position: relative;
2794
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
2795
+ }
2796
+
2797
+ .compound-item::before {
2798
+ content: '';
2799
+ position: absolute;
2800
+ inset: 0;
2801
+ background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
2802
+ opacity: 0;
2803
+ border-radius: var(--radius-l);
2804
+ transition: opacity 0.35s ease;
2805
+ }
2806
+
2807
+ .compound-item:hover {
2808
+ transform: translateY(-2px);
2809
+ border-color: var(--color-accent);
2810
+ box-shadow: 0 8px 20px rgba(129, 140, 248, 0.2);
2811
+ }
2812
+
2813
+ .compound-item:hover::before {
2814
+ opacity: 0.2;
2815
+ }
2816
+
2817
+ .compound-item.highlight {
2818
+ background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover));
2819
+ border-color: var(--color-accent);
2820
+ box-shadow: 0 12px 32px rgba(129, 140, 248, 0.4);
2821
+ transform: scale(1.08);
2822
+ }
2823
+
2824
+ .compound-item.highlight .compound-number,
2825
+ .compound-item.highlight .compound-text {
2826
+ color: var(--color-on-accent);
2827
+ }
2828
+
2829
+ .compound-item.highlight:hover {
2830
+ transform: translateY(-2px);
2831
+ box-shadow: 0 10px 28px rgba(129, 140, 248, 0.4);
2832
+ }
2833
+
2834
+ .compound-number {
2835
+ font-size: 18px;
2836
+ font-weight: 700;
2837
+ color: var(--color-accent);
2838
+ margin-bottom: var(--space-s);
2839
+ text-transform: uppercase;
2840
+ letter-spacing: 0.05em;
2841
+ position: relative;
2842
+ z-index: 1;
2843
+ }
2844
+
2845
+ .compound-text {
2846
+ font-size: 14px;
2847
+ color: var(--color-text-secondary);
2848
+ line-height: 1.5;
2849
+ position: relative;
2850
+ z-index: 1;
2851
+ }
2852
+
2853
+ .compound-arrow {
2854
+ color: var(--color-accent);
2855
+ font-size: 24px;
2856
+ opacity: 0.6;
2857
+ animation: arrow-slide 2s ease-in-out infinite;
2858
+ }
2859
+
2860
+ @keyframes arrow-slide {
2861
+ 0%, 100% { transform: translateX(0); opacity: 0.6; }
2862
+ 50% { transform: translateX(4px); opacity: 1; }
2863
+ }
2864
+
2865
+ @media (max-width: 767px) {
2866
+ .pillar {
2867
+ flex-direction: column;
2868
+ text-align: center;
2869
+ }
2870
+
2871
+ .pillar-icon {
2872
+ margin: 0 auto;
2873
+ }
2874
+
2875
+ .pillar-tools {
2876
+ justify-content: center;
2877
+ }
2878
+
2879
+ .compound-arrow {
2880
+ transform: rotate(90deg);
2881
+ }
2882
+
2883
+ .compound-grid {
2884
+ flex-direction: column;
2885
+ }
2886
+ }