@every-env/compound-plugin 0.8.0 → 0.12.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 (93) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/AGENTS.md +5 -1
  3. package/CHANGELOG.md +50 -0
  4. package/CLAUDE.md +3 -3
  5. package/README.md +52 -14
  6. package/docs/plans/2026-02-14-feat-auto-detect-install-and-gemini-sync-plan.md +360 -0
  7. package/docs/plans/2026-02-25-feat-windsurf-global-scope-support-plan.md +627 -0
  8. package/docs/plans/2026-03-01-feat-ce-command-aliases-backwards-compatible-deprecation-plan.md +261 -0
  9. package/docs/plans/feature_opencode-commands-as-md-and-config-merge.md +574 -0
  10. package/docs/solutions/adding-converter-target-providers.md +692 -0
  11. package/docs/solutions/plugin-versioning-requirements.md +3 -3
  12. package/docs/specs/kiro.md +171 -0
  13. package/docs/specs/windsurf.md +477 -0
  14. package/package.json +1 -1
  15. package/plans/landing-page-launchkit-refresh.md +2 -2
  16. package/plugins/compound-engineering/.claude-plugin/plugin.json +2 -2
  17. package/plugins/compound-engineering/CHANGELOG.md +72 -1
  18. package/plugins/compound-engineering/CLAUDE.md +9 -7
  19. package/plugins/compound-engineering/README.md +10 -7
  20. package/plugins/compound-engineering/agents/research/git-history-analyzer.md +1 -1
  21. package/plugins/compound-engineering/agents/research/learnings-researcher.md +1 -1
  22. package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +1 -1
  23. package/plugins/compound-engineering/commands/ce/brainstorm.md +145 -0
  24. package/plugins/compound-engineering/commands/ce/compound.md +240 -0
  25. package/plugins/compound-engineering/commands/ce/plan.md +636 -0
  26. package/plugins/compound-engineering/commands/ce/review.md +525 -0
  27. package/plugins/compound-engineering/commands/ce/work.md +470 -0
  28. package/plugins/compound-engineering/commands/create-agent-skill.md +1 -1
  29. package/plugins/compound-engineering/commands/deepen-plan.md +6 -6
  30. package/plugins/compound-engineering/commands/deploy-docs.md +1 -1
  31. package/plugins/compound-engineering/commands/feature-video.md +15 -6
  32. package/plugins/compound-engineering/commands/heal-skill.md +1 -1
  33. package/plugins/compound-engineering/commands/lfg.md +3 -3
  34. package/plugins/compound-engineering/commands/slfg.md +3 -3
  35. package/plugins/compound-engineering/commands/test-xcode.md +2 -2
  36. package/plugins/compound-engineering/commands/workflows/brainstorm.md +4 -123
  37. package/plugins/compound-engineering/commands/workflows/compound.md +4 -234
  38. package/plugins/compound-engineering/commands/workflows/plan.md +4 -562
  39. package/plugins/compound-engineering/commands/workflows/review.md +4 -522
  40. package/plugins/compound-engineering/commands/workflows/work.md +4 -448
  41. package/plugins/compound-engineering/skills/brainstorming/SKILL.md +3 -3
  42. package/plugins/compound-engineering/skills/document-review/SKILL.md +1 -1
  43. package/plugins/compound-engineering/skills/file-todos/SKILL.md +1 -1
  44. package/plugins/compound-engineering/skills/git-worktree/SKILL.md +5 -5
  45. package/plugins/compound-engineering/skills/proof/SKILL.md +185 -0
  46. package/plugins/compound-engineering/skills/resolve-pr-parallel/SKILL.md +1 -1
  47. package/plugins/compound-engineering/skills/setup/SKILL.md +2 -2
  48. package/src/commands/convert.ts +101 -23
  49. package/src/commands/install.ts +102 -41
  50. package/src/commands/sync.ts +58 -38
  51. package/src/converters/claude-to-kiro.ts +262 -0
  52. package/src/converters/claude-to-openclaw.ts +240 -0
  53. package/src/converters/claude-to-opencode.ts +12 -10
  54. package/src/converters/claude-to-qwen.ts +238 -0
  55. package/src/converters/claude-to-windsurf.ts +205 -0
  56. package/src/sync/gemini.ts +76 -0
  57. package/src/targets/index.ts +69 -1
  58. package/src/targets/kiro.ts +122 -0
  59. package/src/targets/openclaw.ts +96 -0
  60. package/src/targets/opencode.ts +76 -10
  61. package/src/targets/qwen.ts +64 -0
  62. package/src/targets/windsurf.ts +104 -0
  63. package/src/types/kiro.ts +44 -0
  64. package/src/types/openclaw.ts +52 -0
  65. package/src/types/opencode.ts +7 -8
  66. package/src/types/qwen.ts +48 -0
  67. package/src/types/windsurf.ts +34 -0
  68. package/src/utils/detect-tools.ts +46 -0
  69. package/src/utils/files.ts +7 -0
  70. package/src/utils/resolve-output.ts +50 -0
  71. package/src/utils/secrets.ts +24 -0
  72. package/tests/cli.test.ts +78 -0
  73. package/tests/converter.test.ts +43 -10
  74. package/tests/detect-tools.test.ts +96 -0
  75. package/tests/kiro-converter.test.ts +381 -0
  76. package/tests/kiro-writer.test.ts +273 -0
  77. package/tests/openclaw-converter.test.ts +200 -0
  78. package/tests/opencode-writer.test.ts +142 -5
  79. package/tests/qwen-converter.test.ts +238 -0
  80. package/tests/resolve-output.test.ts +131 -0
  81. package/tests/sync-gemini.test.ts +106 -0
  82. package/tests/windsurf-converter.test.ts +573 -0
  83. package/tests/windsurf-writer.test.ts +359 -0
  84. package/docs/css/docs.css +0 -675
  85. package/docs/css/style.css +0 -2886
  86. package/docs/index.html +0 -1046
  87. package/docs/js/main.js +0 -225
  88. package/docs/pages/agents.html +0 -649
  89. package/docs/pages/changelog.html +0 -534
  90. package/docs/pages/commands.html +0 -523
  91. package/docs/pages/getting-started.html +0 -582
  92. package/docs/pages/mcp-servers.html +0 -409
  93. package/docs/pages/skills.html +0 -611
@@ -1,2886 +0,0 @@
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
- }