snow-flow 3.4.36 → 3.5.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 (72) hide show
  1. package/README.md +414 -287
  2. package/dist/cli/deploy-artifact.js +2 -2
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.js +10 -2
  5. package/dist/mcp/enhancements/smart-query-enhancement.d.ts +49 -0
  6. package/dist/mcp/enhancements/smart-query-enhancement.js +233 -0
  7. package/dist/mcp/servicenow-deployment-mcp.js +1 -1
  8. package/dist/mcp/servicenow-local-development-mcp.d.ts +48 -0
  9. package/dist/mcp/servicenow-local-development-mcp.js +570 -0
  10. package/dist/mcp/servicenow-mcp-server.js +2 -2
  11. package/dist/queen/agent-factory.js +134 -52
  12. package/dist/queen/queen-knowledge-base.d.ts +151 -0
  13. package/dist/queen/queen-knowledge-base.js +283 -0
  14. package/dist/queen/servicenow-queen.d.ts +129 -2
  15. package/dist/queen/servicenow-queen.js +1069 -618
  16. package/dist/services/widget-deployment-service.d.ts +1 -1
  17. package/dist/services/widget-deployment-service.js +1 -1
  18. package/dist/templates/claude-md-template.d.ts +1 -1
  19. package/dist/templates/claude-md-template.js +2 -2
  20. package/dist/types/servicenow.types.d.ts +1 -1
  21. package/dist/utils/artifact-local-sync.d.ts +115 -0
  22. package/dist/utils/artifact-local-sync.js +705 -0
  23. package/dist/utils/artifact-sync/artifact-registry.d.ts +66 -0
  24. package/dist/utils/artifact-sync/artifact-registry.js +450 -0
  25. package/dist/utils/artifact-sync/index.d.ts +33 -0
  26. package/dist/utils/artifact-sync/index.js +52 -0
  27. package/dist/utils/dependency-detector.d.ts +1 -1
  28. package/dist/utils/dependency-detector.js +1 -1
  29. package/dist/utils/mcp-tool-registry.js +109 -0
  30. package/dist/utils/servicenow-client.d.ts +1 -1
  31. package/dist/utils/servicenow-client.js +4 -8
  32. package/dist/utils/smart-field-fetcher.d.ts +68 -0
  33. package/dist/utils/smart-field-fetcher.js +395 -0
  34. package/package.json +2 -2
  35. package/website/.dockerignore +64 -0
  36. package/website/Dockerfile +36 -0
  37. package/website/README.md +40 -1
  38. package/website/cloudbuild.yaml +69 -0
  39. package/website/components/README.md +419 -0
  40. package/website/components/code-display/CodeDisplay.css +583 -0
  41. package/website/components/code-display/CodeDisplay.html +200 -0
  42. package/website/components/code-display/CodeDisplay.js +375 -0
  43. package/website/components/code-display/CodeDisplay.jsx +268 -0
  44. package/website/components/demo/ComponentLibraryDemo.html +845 -0
  45. package/website/components/feature-cards/FeatureCards.css +573 -0
  46. package/website/components/feature-cards/FeatureCards.html +247 -0
  47. package/website/components/feature-cards/FeatureCards.js +382 -0
  48. package/website/components/feature-cards/FeatureCards.jsx +235 -0
  49. package/website/components/hero/Hero.css +558 -0
  50. package/website/components/hero/Hero.html +98 -0
  51. package/website/components/hero/Hero.js +415 -0
  52. package/website/components/hero/Hero.jsx +214 -0
  53. package/website/components/interactive/InteractiveElements.css +776 -0
  54. package/website/components/interactive/InteractiveElements.html +283 -0
  55. package/website/components/interactive/InteractiveElements.js +489 -0
  56. package/website/components/interactive/InteractiveElements.jsx +444 -0
  57. package/website/components/layout/LayoutComponents.css +697 -0
  58. package/website/components/layout/LayoutComponents.html +374 -0
  59. package/website/components/layout/LayoutComponents.js +447 -0
  60. package/website/components/layout/LayoutComponents.jsx +379 -0
  61. package/website/components/navigation/Navigation.css +383 -0
  62. package/website/components/navigation/Navigation.html +89 -0
  63. package/website/components/navigation/Navigation.js +248 -0
  64. package/website/components/navigation/Navigation.jsx +124 -0
  65. package/website/css/animations.css +854 -0
  66. package/website/css/style.css +1010 -924
  67. package/website/index.html +728 -412
  68. package/website/js/animations.js +707 -0
  69. package/website/js/main.js +333 -381
  70. package/website/mcp-servers.html +310 -0
  71. package/website/nginx.conf +116 -0
  72. package/website/service.yaml +61 -0
@@ -1,1088 +1,1174 @@
1
- /* Snow-Flow Website Styles */
2
-
1
+ /* =========================================
2
+ SNOW-FLOW MODERN BLACK/WHITE DESIGN SYSTEM
3
+ =========================================
4
+ Version: 3.0.0
5
+ Theme: Minimalist Black/White with Gradients
6
+ Inspired by: Linear, Vercel, Stripe
7
+ ========================================= */
8
+
9
+ /* =========================================
10
+ 1. CSS VARIABLES & DESIGN TOKENS
11
+ ========================================= */
3
12
  :root {
4
- --primary-color: #0066cc;
5
- --secondary-color: #00a6ff;
6
- --accent-color: #00d4ff;
7
- --dark-bg: #0a0e27;
8
- --light-bg: #f8f9fa;
9
- --card-bg: #ffffff;
10
- --text-primary: #2d3748;
11
- --text-secondary: #4a5568;
12
- --text-light: #718096;
13
- --border-color: #e2e8f0;
14
- --success-color: #48bb78;
15
- --warning-color: #ed8936;
16
- --error-color: #f56565;
17
- --gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
18
- --gradient-secondary: linear-gradient(135deg, #0066cc 0%, #00d4ff 100%);
19
- --shadow-sm: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
20
- --shadow-md: 0 4px 6px rgba(0,0,0,0.1);
21
- --shadow-lg: 0 10px 20px rgba(0,0,0,0.15);
22
- --shadow-xl: 0 20px 40px rgba(0,0,0,0.2);
23
- }
24
-
25
- * {
26
- margin: 0;
27
- padding: 0;
28
- box-sizing: border-box;
13
+ /* Pure Black to White Spectrum */
14
+ --black: #000000;
15
+ --white: #ffffff;
16
+
17
+ /* 12-Step Grayscale System */
18
+ --gray-50: #fafafa;
19
+ --gray-100: #f5f5f5;
20
+ --gray-200: #e5e5e5;
21
+ --gray-300: #d4d4d4;
22
+ --gray-400: #a3a3a3;
23
+ --gray-500: #737373;
24
+ --gray-600: #525252;
25
+ --gray-700: #404040;
26
+ --gray-800: #262626;
27
+ --gray-850: #1a1a1a;
28
+ --gray-900: #0a0a0a;
29
+ --gray-950: #050505;
30
+
31
+ /* Gradient Definitions */
32
+ --gradient-primary: linear-gradient(135deg, var(--black) 0%, var(--gray-700) 100%);
33
+ --gradient-secondary: linear-gradient(135deg, var(--gray-800) 0%, var(--gray-600) 100%);
34
+ --gradient-accent: linear-gradient(135deg, var(--white) 0%, var(--gray-200) 100%);
35
+ --gradient-mesh: radial-gradient(at 40% 20%, var(--gray-900) 0%, transparent 50%),
36
+ radial-gradient(at 80% 0%, var(--gray-800) 0%, transparent 50%),
37
+ radial-gradient(at 10% 50%, var(--gray-700) 0%, transparent 50%),
38
+ radial-gradient(at 80% 50%, var(--gray-600) 0%, transparent 50%),
39
+ radial-gradient(at 50% 100%, var(--gray-900) 0%, transparent 50%);
40
+ --gradient-glass: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
41
+ --gradient-shine: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.7) 50%, transparent 60%);
42
+
43
+ /* Typography Scale (Golden Ratio) */
44
+ --font-xs: 0.75rem; /* 12px */
45
+ --font-sm: 0.875rem; /* 14px */
46
+ --font-base: 1rem; /* 16px */
47
+ --font-md: 1.125rem; /* 18px */
48
+ --font-lg: 1.25rem; /* 20px */
49
+ --font-xl: 1.5rem; /* 24px */
50
+ --font-2xl: 1.875rem; /* 30px */
51
+ --font-3xl: 2.25rem; /* 36px */
52
+ --font-4xl: 3rem; /* 48px */
53
+ --font-5xl: 3.75rem; /* 60px */
54
+ --font-6xl: 4.5rem; /* 72px */
55
+ --font-7xl: 6rem; /* 96px */
56
+ --font-8xl: 8rem; /* 128px */
57
+
58
+ /* Spacing System (8px base) */
59
+ --space-0: 0;
60
+ --space-px: 1px;
61
+ --space-0_5: 0.125rem; /* 2px */
62
+ --space-1: 0.25rem; /* 4px */
63
+ --space-2: 0.5rem; /* 8px */
64
+ --space-3: 0.75rem; /* 12px */
65
+ --space-4: 1rem; /* 16px */
66
+ --space-5: 1.25rem; /* 20px */
67
+ --space-6: 1.5rem; /* 24px */
68
+ --space-8: 2rem; /* 32px */
69
+ --space-10: 2.5rem; /* 40px */
70
+ --space-12: 3rem; /* 48px */
71
+ --space-16: 4rem; /* 64px */
72
+ --space-20: 5rem; /* 80px */
73
+ --space-24: 6rem; /* 96px */
74
+ --space-32: 8rem; /* 128px */
75
+ --space-40: 10rem; /* 160px */
76
+
77
+ /* Modern Font Stack */
78
+ --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
79
+ --font-mono: "SF Mono", "Monaco", "Inconsolata", "Fira Code", "Fira Mono", "Roboto Mono", monospace;
80
+
81
+ /* Line Heights */
82
+ --leading-none: 1;
83
+ --leading-tight: 1.25;
84
+ --leading-snug: 1.375;
85
+ --leading-normal: 1.5;
86
+ --leading-relaxed: 1.625;
87
+ --leading-loose: 2;
88
+
89
+ /* Letter Spacing */
90
+ --tracking-tighter: -0.05em;
91
+ --tracking-tight: -0.025em;
92
+ --tracking-normal: 0;
93
+ --tracking-wide: 0.025em;
94
+ --tracking-wider: 0.05em;
95
+ --tracking-widest: 0.1em;
96
+
97
+ /* Border Radius */
98
+ --radius-none: 0;
99
+ --radius-sm: 0.125rem;
100
+ --radius-base: 0.25rem;
101
+ --radius-md: 0.375rem;
102
+ --radius-lg: 0.5rem;
103
+ --radius-xl: 0.75rem;
104
+ --radius-2xl: 1rem;
105
+ --radius-3xl: 1.5rem;
106
+ --radius-full: 9999px;
107
+
108
+ /* Shadows (Black/White Only) */
109
+ --shadow-xs: 0 1px 2px 0 rgba(0,0,0,0.05);
110
+ --shadow-sm: 0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px 0 rgba(0,0,0,0.06);
111
+ --shadow-base: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
112
+ --shadow-md: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
113
+ --shadow-lg: 0 20px 25px -5px rgba(0,0,0,0.1), 0 10px 10px -5px rgba(0,0,0,0.04);
114
+ --shadow-xl: 0 25px 50px -12px rgba(0,0,0,0.25);
115
+ --shadow-2xl: 0 35px 60px -15px rgba(0,0,0,0.3);
116
+ --shadow-inner: inset 0 2px 4px 0 rgba(0,0,0,0.06);
117
+ --shadow-white: 0 0 15px rgba(255,255,255,0.1);
118
+
119
+ /* Animation Durations */
120
+ --duration-75: 75ms;
121
+ --duration-100: 100ms;
122
+ --duration-150: 150ms;
123
+ --duration-200: 200ms;
124
+ --duration-300: 300ms;
125
+ --duration-500: 500ms;
126
+ --duration-700: 700ms;
127
+ --duration-1000: 1000ms;
128
+
129
+ /* Easing Functions */
130
+ --ease-linear: linear;
131
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
132
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
133
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
134
+ --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
135
+ }
136
+
137
+ /* Dark Mode Variables */
138
+ @media (prefers-color-scheme: dark) {
139
+ :root {
140
+ --bg-primary: var(--black);
141
+ --bg-secondary: var(--gray-950);
142
+ --text-primary: var(--white);
143
+ --text-secondary: var(--gray-300);
144
+ --border-color: var(--gray-800);
145
+ }
146
+ }
147
+
148
+ /* Light Mode Variables */
149
+ @media (prefers-color-scheme: light) {
150
+ :root {
151
+ --bg-primary: var(--white);
152
+ --bg-secondary: var(--gray-50);
153
+ --text-primary: var(--black);
154
+ --text-secondary: var(--gray-600);
155
+ --border-color: var(--gray-200);
156
+ }
157
+ }
158
+
159
+ /* =========================================
160
+ 2. RESET & BASE STYLES
161
+ ========================================= */
162
+ *, *::before, *::after {
163
+ margin: 0;
164
+ padding: 0;
165
+ box-sizing: border-box;
29
166
  }
30
167
 
31
- body {
32
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
33
- line-height: 1.6;
34
- color: var(--text-primary);
35
- background: var(--light-bg);
168
+ html {
169
+ font-size: 16px;
170
+ -webkit-font-smoothing: antialiased;
171
+ -moz-osx-font-smoothing: grayscale;
172
+ text-rendering: optimizeLegibility;
173
+ scroll-behavior: smooth;
36
174
  }
37
175
 
38
- .container {
39
- max-width: 1200px;
40
- margin: 0 auto;
41
- padding: 0 20px;
176
+ body {
177
+ font-family: var(--font-sans);
178
+ font-size: var(--font-base);
179
+ line-height: var(--leading-normal);
180
+ color: var(--text-primary);
181
+ background: var(--bg-primary);
182
+ min-height: 100vh;
183
+ overflow-x: hidden;
184
+ position: relative;
42
185
  }
43
186
 
44
- /* Navigation */
45
- .navbar {
46
- background: white;
47
- box-shadow: var(--shadow-sm);
48
- position: fixed;
49
- top: 0;
50
- width: 100%;
51
- z-index: 1000;
52
- transition: all 0.3s ease;
187
+ /* Selection Styles */
188
+ ::selection {
189
+ background: var(--black);
190
+ color: var(--white);
53
191
  }
54
192
 
55
- .navbar .container {
56
- display: flex;
57
- justify-content: space-between;
58
- align-items: center;
59
- padding: 1rem 20px;
193
+ ::-moz-selection {
194
+ background: var(--black);
195
+ color: var(--white);
60
196
  }
61
197
 
62
- .nav-brand {
63
- display: flex;
64
- align-items: center;
65
- gap: 10px;
66
- font-size: 1.5rem;
67
- font-weight: 700;
68
- color: var(--primary-color);
198
+ /* =========================================
199
+ 3. TYPOGRAPHY
200
+ ========================================= */
201
+ h1, h2, h3, h4, h5, h6 {
202
+ font-weight: 700;
203
+ line-height: var(--leading-tight);
204
+ letter-spacing: var(--tracking-tight);
205
+ margin-bottom: var(--space-4);
69
206
  }
70
207
 
71
- .logo {
72
- font-size: 2rem;
208
+ h1 {
209
+ font-size: clamp(var(--font-4xl), 8vw, var(--font-7xl));
210
+ background: var(--gradient-primary);
211
+ -webkit-background-clip: text;
212
+ -webkit-text-fill-color: transparent;
213
+ background-clip: text;
73
214
  }
74
215
 
75
- .brand-name {
76
- background: var(--gradient-secondary);
77
- -webkit-background-clip: text;
78
- -webkit-text-fill-color: transparent;
79
- background-clip: text;
216
+ h2 {
217
+ font-size: clamp(var(--font-3xl), 5vw, var(--font-5xl));
80
218
  }
81
219
 
82
- .nav-menu {
83
- display: flex;
84
- list-style: none;
85
- gap: 2rem;
86
- align-items: center;
220
+ h3 {
221
+ font-size: clamp(var(--font-2xl), 3vw, var(--font-4xl));
87
222
  }
88
223
 
89
- .nav-link {
90
- text-decoration: none;
91
- color: var(--text-primary);
92
- font-weight: 500;
93
- transition: color 0.3s ease;
94
- position: relative;
224
+ h4 {
225
+ font-size: clamp(var(--font-xl), 2.5vw, var(--font-3xl));
95
226
  }
96
227
 
97
- .nav-link:hover {
98
- color: var(--primary-color);
228
+ h5 {
229
+ font-size: clamp(var(--font-lg), 2vw, var(--font-2xl));
99
230
  }
100
231
 
101
- .nav-link::after {
102
- content: '';
103
- position: absolute;
104
- bottom: -5px;
105
- left: 0;
106
- width: 0;
107
- height: 2px;
108
- background: var(--gradient-secondary);
109
- transition: width 0.3s ease;
232
+ h6 {
233
+ font-size: clamp(var(--font-base), 1.5vw, var(--font-xl));
110
234
  }
111
235
 
112
- .nav-link:hover::after {
113
- width: 100%;
236
+ p {
237
+ margin-bottom: var(--space-4);
238
+ color: var(--text-secondary);
239
+ line-height: var(--leading-relaxed);
114
240
  }
115
241
 
116
- .nav-link.github {
117
- background: var(--gradient-secondary);
118
- color: white;
119
- padding: 8px 20px;
120
- border-radius: 20px;
121
- transition: transform 0.3s ease, box-shadow 0.3s ease;
242
+ a {
243
+ color: inherit;
244
+ text-decoration: none;
245
+ position: relative;
246
+ transition: all var(--duration-200) var(--ease-in-out);
122
247
  }
123
248
 
124
- .nav-link.github:hover {
125
- transform: translateY(-2px);
126
- box-shadow: var(--shadow-md);
249
+ a:hover {
250
+ opacity: 0.8;
127
251
  }
128
252
 
129
- .nav-link.github::after {
130
- display: none;
253
+ /* Link Underline Animation */
254
+ a.link-animated::after {
255
+ content: '';
256
+ position: absolute;
257
+ bottom: -2px;
258
+ left: 0;
259
+ width: 0;
260
+ height: 2px;
261
+ background: var(--gradient-primary);
262
+ transition: width var(--duration-300) var(--ease-out);
131
263
  }
132
264
 
133
- .hamburger {
134
- display: none;
135
- flex-direction: column;
136
- cursor: pointer;
265
+ a.link-animated:hover::after {
266
+ width: 100%;
137
267
  }
138
268
 
139
- .hamburger span {
140
- width: 25px;
141
- height: 3px;
142
- background: var(--text-primary);
143
- margin: 3px 0;
144
- transition: 0.3s;
145
- border-radius: 3px;
269
+ /* =========================================
270
+ 4. LAYOUT COMPONENTS
271
+ ========================================= */
272
+ .container {
273
+ width: 100%;
274
+ max-width: 1280px;
275
+ margin: 0 auto;
276
+ padding: 0 var(--space-6);
146
277
  }
147
278
 
148
- /* Hero Section */
149
- .hero {
150
- margin-top: 70px;
151
- padding: 100px 0;
152
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
153
- position: relative;
154
- overflow: hidden;
279
+ .section {
280
+ padding: var(--space-20) 0;
281
+ position: relative;
155
282
  }
156
283
 
157
- .hero::before {
158
- content: '';
159
- position: absolute;
160
- top: 0;
161
- left: 0;
162
- right: 0;
163
- bottom: 0;
164
- background: url('data:image/svg+xml,%3Csvg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23ffffff" fill-opacity="0.05"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
165
- animation: float 20s ease-in-out infinite;
284
+ .grid {
285
+ display: grid;
286
+ gap: var(--space-6);
166
287
  }
167
288
 
168
- @keyframes float {
169
- 0%, 100% { transform: translateY(0); }
170
- 50% { transform: translateY(-20px); }
171
- }
289
+ .grid-cols-1 { grid-template-columns: repeat(1, 1fr); }
290
+ .grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
291
+ .grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
292
+ .grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
172
293
 
173
- .hero-content {
174
- text-align: center;
175
- color: white;
176
- position: relative;
177
- z-index: 1;
294
+ /* =========================================
295
+ 5. NAVIGATION (GLASS MORPHISM)
296
+ ========================================= */
297
+ /* Mountain Logo - Simple Emoji */
298
+ .logo-mountain {
299
+ display: inline-block;
300
+ font-size: 1.4em;
301
+ transition: all var(--duration-300) var(--ease-out);
302
+ position: relative;
303
+ top: -2px;
304
+ /* Reset text fill to show emoji normally */
305
+ -webkit-text-fill-color: initial;
306
+ background: none;
178
307
  }
179
308
 
180
- .hero-logo {
181
- font-size: 6rem;
182
- margin-bottom: 1rem;
183
- animation: pulse 2s ease-in-out infinite;
309
+ .navbar-logo:hover .logo-mountain {
310
+ transform: scale(1.1) translateY(-2px);
184
311
  }
185
312
 
186
- @keyframes pulse {
187
- 0%, 100% { transform: scale(1); }
188
- 50% { transform: scale(1.05); }
313
+ /* Apply to mountain in cards */
314
+ .card-icon .logo-mountain {
315
+ font-size: 1em;
316
+ top: 0;
189
317
  }
190
318
 
191
- .hero-title {
192
- font-size: 4rem;
193
- font-weight: 800;
194
- margin-bottom: 1rem;
195
- text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
319
+ /* Keep the hover effect working for card mountains */
320
+ .card:hover .card-icon .logo-mountain {
321
+ transform: scale(1.2) rotate(5deg);
196
322
  }
197
323
 
198
- .hero-subtitle {
199
- font-size: 1.5rem;
200
- margin-bottom: 1rem;
201
- opacity: 0.95;
324
+ .navbar {
325
+ position: fixed;
326
+ top: 0;
327
+ left: 0;
328
+ right: 0;
329
+ z-index: 1000;
330
+ background: rgba(255, 255, 255, 0.01);
331
+ backdrop-filter: blur(20px);
332
+ -webkit-backdrop-filter: blur(20px);
333
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
334
+ transition: all var(--duration-300) var(--ease-in-out);
202
335
  }
203
336
 
204
- .hero-description {
205
- font-size: 1.1rem;
206
- max-width: 700px;
207
- margin: 0 auto 2rem;
208
- opacity: 0.9;
209
- line-height: 1.8;
337
+ .navbar.scrolled {
338
+ background: rgba(0, 0, 0, 0.9);
339
+ backdrop-filter: blur(30px);
340
+ -webkit-backdrop-filter: blur(30px);
210
341
  }
211
342
 
212
- .hero-buttons {
213
- display: flex;
214
- gap: 1rem;
215
- justify-content: center;
216
- margin-bottom: 3rem;
343
+ .navbar-container {
344
+ display: flex;
345
+ justify-content: space-between;
346
+ align-items: center;
347
+ padding: var(--space-4) var(--space-6);
348
+ max-width: 1280px;
349
+ margin: 0 auto;
217
350
  }
218
351
 
219
- .btn {
220
- padding: 12px 30px;
221
- border-radius: 25px;
222
- text-decoration: none;
223
- font-weight: 600;
224
- transition: all 0.3s ease;
225
- display: inline-block;
352
+ .navbar-logo {
353
+ font-size: var(--font-xl);
354
+ font-weight: 900;
355
+ background: linear-gradient(135deg, var(--white) 0%, var(--gray-400) 100%);
356
+ -webkit-background-clip: text;
357
+ -webkit-text-fill-color: transparent;
358
+ background-clip: text;
359
+ transition: all var(--duration-300) var(--ease-out);
360
+ display: inline-flex;
361
+ align-items: center;
362
+ gap: var(--space-2);
226
363
  }
227
364
 
228
- .btn-primary {
229
- background: white;
230
- color: var(--primary-color);
231
- box-shadow: var(--shadow-md);
365
+ .navbar-logo:hover {
366
+ transform: scale(1.05);
232
367
  }
233
368
 
234
- .btn-primary:hover {
235
- transform: translateY(-2px);
236
- box-shadow: var(--shadow-lg);
369
+ .navbar-menu {
370
+ display: flex;
371
+ gap: var(--space-8);
372
+ list-style: none;
237
373
  }
238
374
 
239
- .btn-secondary {
240
- background: rgba(255,255,255,0.2);
241
- color: white;
242
- border: 2px solid white;
243
- }
244
-
245
- .btn-secondary:hover {
246
- background: white;
247
- color: var(--primary-color);
375
+ .navbar-link {
376
+ color: var(--gray-300);
377
+ font-size: var(--font-sm);
378
+ font-weight: 500;
379
+ letter-spacing: var(--tracking-wide);
380
+ text-transform: uppercase;
381
+ transition: all var(--duration-200) var(--ease-out);
382
+ position: relative;
248
383
  }
249
384
 
250
- .hero-stats {
251
- display: flex;
252
- justify-content: center;
253
- gap: 3rem;
254
- margin-top: 3rem;
385
+ .navbar-link:hover {
386
+ color: var(--white);
255
387
  }
256
388
 
257
- .stat {
258
- text-align: center;
389
+ .navbar-link::before {
390
+ content: '';
391
+ position: absolute;
392
+ bottom: -5px;
393
+ left: 0;
394
+ width: 0;
395
+ height: 2px;
396
+ background: var(--gradient-accent);
397
+ transition: width var(--duration-300) var(--ease-out);
259
398
  }
260
399
 
261
- .stat-number {
262
- display: block;
263
- font-size: 2.5rem;
264
- font-weight: 700;
265
- margin-bottom: 0.5rem;
400
+ .navbar-link:hover::before {
401
+ width: 100%;
266
402
  }
267
403
 
268
- .stat-label {
269
- font-size: 0.9rem;
270
- opacity: 0.9;
271
- text-transform: uppercase;
272
- letter-spacing: 1px;
404
+ /* =========================================
405
+ 6. HERO SECTION
406
+ ========================================= */
407
+ /* Hero Mountain Logo */
408
+ .hero-mountain {
409
+ display: inline-block;
410
+ /* Reset text fill to show emoji normally */
411
+ -webkit-text-fill-color: initial;
412
+ background: none;
413
+ filter: drop-shadow(0 8px 16px rgba(0,0,0,0.5));
414
+ animation: mountainFloat 6s ease-in-out infinite;
273
415
  }
274
416
 
275
- /* What Is Section */
276
- .what-is {
277
- padding: 80px 0;
278
- background: white;
417
+ @keyframes mountainFloat {
418
+ 0%, 100% {
419
+ transform: translateY(0px) scale(1);
420
+ filter: drop-shadow(0 8px 16px rgba(0,0,0,0.5));
421
+ }
422
+ 50% {
423
+ transform: translateY(-10px) scale(1.05);
424
+ filter: drop-shadow(0 16px 32px rgba(0,0,0,0.6));
425
+ }
279
426
  }
280
427
 
281
- .section-title {
282
- font-size: 2.5rem;
283
- text-align: center;
284
- margin-bottom: 3rem;
285
- color: var(--text-primary);
286
- position: relative;
428
+ .hero-logo-container {
429
+ animation: fadeInDown var(--duration-1000) var(--ease-out);
287
430
  }
288
431
 
289
- .section-title::after {
290
- content: '';
291
- display: block;
292
- width: 60px;
293
- height: 4px;
294
- background: var(--gradient-secondary);
295
- margin: 1rem auto;
296
- border-radius: 2px;
432
+ .hero {
433
+ min-height: 100vh;
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: center;
437
+ position: relative;
438
+ overflow: hidden;
439
+ background: var(--black);
440
+ padding-bottom: var(--space-20);
441
+ }
442
+
443
+ /* Removed gradient overlays - clean black background */
444
+
445
+ /* Hero Noise Effect - Subtle Film Grain */
446
+ .hero::after {
447
+ content: '';
448
+ position: absolute;
449
+ top: 0;
450
+ left: 0;
451
+ width: 100%;
452
+ height: 100%;
453
+ opacity: 0.025; /* Very subtle: 2.5% opacity */
454
+ z-index: 1;
455
+ pointer-events: none;
456
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='heroNoise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23heroNoise)'/%3E%3C/svg%3E");
457
+ mix-blend-mode: overlay;
458
+ animation: noiseShift 8s steps(10) infinite;
459
+ }
460
+
461
+ @keyframes noiseShift {
462
+ 0%, 100% { transform: translate(0, 0); }
463
+ 10% { transform: translate(-5%, -5%); }
464
+ 20% { transform: translate(-10%, 5%); }
465
+ 30% { transform: translate(5%, -10%); }
466
+ 40% { transform: translate(-5%, 15%); }
467
+ 50% { transform: translate(-10%, 5%); }
468
+ 60% { transform: translate(15%, 0); }
469
+ 70% { transform: translate(0, 10%); }
470
+ 80% { transform: translate(-15%, 0); }
471
+ 90% { transform: translate(10%, 5%); }
297
472
  }
298
473
 
299
- .what-is-grid {
300
- display: grid;
301
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
302
- gap: 2rem;
474
+ .hero-content {
475
+ position: relative;
476
+ z-index: 2; /* Above the noise overlay */
477
+ text-align: center;
478
+ padding: var(--space-8);
303
479
  }
304
480
 
305
- .what-is-card {
306
- padding: 2rem;
307
- background: var(--light-bg);
308
- border-radius: 12px;
309
- transition: transform 0.3s ease, box-shadow 0.3s ease;
481
+ .hero-title {
482
+ font-size: clamp(var(--font-5xl), 10vw, var(--font-8xl));
483
+ font-weight: 900;
484
+ letter-spacing: var(--tracking-tighter);
485
+ margin-bottom: var(--space-6);
486
+ background: linear-gradient(135deg, var(--white) 0%, var(--gray-400) 50%, var(--white) 100%);
487
+ -webkit-background-clip: text;
488
+ -webkit-text-fill-color: transparent;
489
+ background-clip: text;
490
+ background-size: 200% auto;
491
+ animation: gradientShift 15s ease infinite;
310
492
  }
311
493
 
312
- .what-is-card:hover {
313
- transform: translateY(-5px);
314
- box-shadow: var(--shadow-lg);
494
+ @keyframes gradientShift {
495
+ 0% { background-position: 0% 50%; }
496
+ 50% { background-position: 100% 50%; }
497
+ 100% { background-position: 0% 50%; }
315
498
  }
316
499
 
317
- .card-icon {
318
- font-size: 3rem;
319
- margin-bottom: 1rem;
500
+ .hero-subtitle {
501
+ font-size: clamp(var(--font-lg), 2vw, var(--font-2xl));
502
+ color: var(--gray-400);
503
+ margin-bottom: var(--space-10);
504
+ font-weight: 300;
505
+ letter-spacing: var(--tracking-wide);
320
506
  }
321
507
 
322
- .what-is-card h3 {
323
- margin-bottom: 1rem;
324
- color: var(--text-primary);
508
+ /* =========================================
509
+ 7. BUTTONS
510
+ ========================================= */
511
+ .btn {
512
+ display: inline-flex;
513
+ align-items: center;
514
+ justify-content: center;
515
+ padding: var(--space-3) var(--space-6);
516
+ font-size: var(--font-sm);
517
+ font-weight: 600;
518
+ letter-spacing: var(--tracking-wide);
519
+ text-transform: uppercase;
520
+ border-radius: var(--radius-full);
521
+ cursor: pointer;
522
+ transition: all var(--duration-200) var(--ease-out);
523
+ position: relative;
524
+ overflow: hidden;
525
+ border: none;
526
+ outline: none;
527
+ text-decoration: none;
325
528
  }
326
529
 
327
- .what-is-card p {
328
- color: var(--text-secondary);
329
- line-height: 1.8;
530
+ .btn-primary {
531
+ background: var(--white);
532
+ color: var(--black);
533
+ box-shadow: var(--shadow-lg);
330
534
  }
331
535
 
332
- /* Features Section */
333
- .features {
334
- padding: 80px 0;
335
- background: var(--light-bg);
536
+ .btn-primary:hover {
537
+ transform: translateY(-2px) scale(1.05);
538
+ box-shadow: var(--shadow-xl);
336
539
  }
337
540
 
338
- .features-grid {
339
- display: grid;
340
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
341
- gap: 2rem;
541
+ .btn-primary:active {
542
+ transform: translateY(0) scale(0.98);
342
543
  }
343
544
 
344
- .feature {
345
- background: white;
346
- padding: 2rem;
347
- border-radius: 12px;
348
- box-shadow: var(--shadow-sm);
349
- transition: all 0.3s ease;
350
- border: 1px solid var(--border-color);
545
+ .btn-secondary {
546
+ background: transparent;
547
+ color: var(--white);
548
+ border: 2px solid var(--white);
351
549
  }
352
550
 
353
- .feature:hover {
354
- box-shadow: var(--shadow-lg);
355
- transform: translateY(-5px);
356
- border-color: var(--accent-color);
551
+ .btn-secondary:hover {
552
+ background: var(--white);
553
+ color: var(--black);
554
+ transform: translateY(-2px);
357
555
  }
358
556
 
359
- .feature-icon {
360
- font-size: 2.5rem;
361
- margin-bottom: 1rem;
557
+ .btn-secondary:active {
558
+ transform: translateY(0) scale(0.98);
362
559
  }
363
560
 
364
- .feature h3 {
365
- margin-bottom: 0.8rem;
366
- color: var(--text-primary);
561
+ .btn-ghost {
562
+ background: transparent;
563
+ color: var(--gray-400);
564
+ border: 1px solid var(--gray-800);
367
565
  }
368
566
 
369
- .feature p {
370
- color: var(--text-secondary);
371
- line-height: 1.7;
567
+ .btn-ghost:hover {
568
+ border-color: var(--gray-600);
569
+ color: var(--white);
570
+ background: var(--gray-900);
372
571
  }
373
572
 
374
- /* MCP Servers Section */
375
- .mcp-servers {
376
- padding: 80px 0;
377
- background: white;
573
+ .btn-ghost:active {
574
+ transform: scale(0.98);
378
575
  }
379
576
 
380
- .section-subtitle {
381
- text-align: center;
382
- color: var(--text-secondary);
383
- margin-bottom: 3rem;
384
- font-size: 1.2rem;
577
+ /* Button Shimmer Effect - More Subtle */
578
+ .btn-animated {
579
+ position: relative;
580
+ overflow: hidden;
385
581
  }
386
582
 
387
- .mcp-grid {
388
- display: grid;
389
- grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
390
- gap: 2rem;
583
+ .btn-animated::before {
584
+ content: '';
585
+ position: absolute;
586
+ top: 0;
587
+ left: -100%;
588
+ width: 100%;
589
+ height: 100%;
590
+ background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%);
591
+ transition: left var(--duration-700) var(--ease-out);
391
592
  }
392
593
 
393
- .mcp-card {
394
- background: var(--light-bg);
395
- border-radius: 12px;
396
- overflow: hidden;
397
- transition: all 0.3s ease;
398
- border: 1px solid var(--border-color);
594
+ .btn-animated:hover::before {
595
+ left: 100%;
399
596
  }
400
597
 
401
- .mcp-card:hover {
402
- box-shadow: var(--shadow-lg);
403
- transform: translateY(-5px);
598
+ /* Remove any ripple effects that might be causing issues */
599
+ .btn .ripple {
600
+ display: none;
404
601
  }
405
602
 
406
- .mcp-header {
407
- background: var(--gradient-secondary);
408
- color: white;
409
- padding: 1.5rem;
410
- display: flex;
411
- justify-content: space-between;
412
- align-items: center;
603
+ /* =========================================
604
+ 8. CARDS
605
+ ========================================= */
606
+ .card {
607
+ background: var(--gray-950);
608
+ border: 1px solid var(--gray-800);
609
+ border-radius: var(--radius-2xl);
610
+ padding: var(--space-8);
611
+ transition: all var(--duration-300) var(--ease-out);
612
+ position: relative;
613
+ overflow: hidden;
413
614
  }
414
615
 
415
- .mcp-header h3 {
416
- margin: 0;
417
- font-size: 1.3rem;
616
+ .card::before {
617
+ content: '';
618
+ position: absolute;
619
+ top: 0;
620
+ left: 0;
621
+ right: 0;
622
+ height: 2px;
623
+ background: var(--gradient-accent);
624
+ opacity: 0;
625
+ transition: all var(--duration-300) var(--ease-out);
418
626
  }
419
627
 
420
- .mcp-badge {
421
- background: rgba(255,255,255,0.2);
422
- padding: 4px 12px;
423
- border-radius: 20px;
424
- font-size: 0.9rem;
628
+ .card::after {
629
+ content: '';
630
+ position: absolute;
631
+ top: 0;
632
+ left: 0;
633
+ right: 0;
634
+ bottom: 0;
635
+ background: var(--gradient-glass);
636
+ opacity: 0;
637
+ transition: opacity var(--duration-300) var(--ease-out);
638
+ z-index: 0;
425
639
  }
426
640
 
427
- .mcp-description {
428
- padding: 1.5rem;
429
- color: var(--text-secondary);
430
- border-bottom: 1px solid var(--border-color);
641
+ .card > * {
642
+ position: relative;
643
+ z-index: 1;
431
644
  }
432
645
 
433
- .mcp-tools {
434
- padding: 1.5rem;
646
+ .card:hover {
647
+ transform: translateY(-8px) scale(1.02);
648
+ border-color: var(--gray-600);
649
+ box-shadow: 0 30px 60px -15px rgba(0,0,0,0.5),
650
+ 0 0 40px rgba(255,255,255,0.05);
435
651
  }
436
652
 
437
- .mcp-tools h4 {
438
- margin-bottom: 1rem;
439
- color: var(--text-primary);
653
+ .card:hover::before {
654
+ opacity: 1;
655
+ height: 100%;
656
+ background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 50%);
440
657
  }
441
658
 
442
- .mcp-tools ul {
443
- list-style: none;
659
+ .card:hover::after {
660
+ opacity: 1;
444
661
  }
445
662
 
446
- .mcp-tools li {
447
- padding: 0.5rem 0;
448
- color: var(--text-secondary);
449
- border-bottom: 1px solid var(--border-color);
663
+ .card-icon {
664
+ font-size: 2rem;
665
+ margin-bottom: var(--space-4);
666
+ opacity: 0.8;
667
+ transition: all var(--duration-300) var(--ease-out);
668
+ display: inline-block;
450
669
  }
451
670
 
452
- .mcp-tools li:last-child {
453
- border-bottom: none;
671
+ .card:hover .card-icon {
672
+ opacity: 1;
673
+ transform: scale(1.2) rotate(5deg);
454
674
  }
455
675
 
456
- .mcp-tools code {
457
- background: white;
458
- padding: 2px 6px;
459
- border-radius: 4px;
460
- color: var(--primary-color);
461
- font-weight: 500;
676
+ .card-title {
677
+ font-size: var(--font-xl);
678
+ font-weight: 700;
679
+ margin-bottom: var(--space-3);
680
+ color: var(--white);
462
681
  }
463
682
 
464
- /* How It Works */
465
- .how-it-works {
466
- padding: 80px 0;
467
- background: var(--light-bg);
683
+ .card-description {
684
+ font-size: var(--font-sm);
685
+ color: var(--gray-400);
686
+ line-height: var(--leading-relaxed);
687
+ }
688
+
689
+ /* MCP Server Cards Special Styling */
690
+ .card h3 {
691
+ display: flex;
692
+ align-items: center;
693
+ gap: var(--space-2);
694
+ }
695
+
696
+ .card ul li {
697
+ transition: all var(--duration-200) var(--ease-out);
698
+ padding-left: var(--space-3);
699
+ }
700
+
701
+ .card:hover ul li {
702
+ color: var(--gray-300) !important;
703
+ transform: translateX(4px);
704
+ }
705
+
706
+ .card:hover ul li:nth-child(1) { transition-delay: 0ms; }
707
+ .card:hover ul li:nth-child(2) { transition-delay: 50ms; }
708
+ .card:hover ul li:nth-child(3) { transition-delay: 100ms; }
709
+ .card:hover ul li:nth-child(4) { transition-delay: 150ms; }
710
+ .card:hover ul li:nth-child(5) { transition-delay: 200ms; }
711
+ .card:hover ul li:nth-child(6) { transition-delay: 250ms; }
712
+ .card:hover ul li:nth-child(7) { transition-delay: 300ms; }
713
+ .card:hover ul li:nth-child(8) { transition-delay: 350ms; }
714
+
715
+ /* =========================================
716
+ 9. FORMS & INPUTS
717
+ ========================================= */
718
+ .input {
719
+ width: 100%;
720
+ padding: var(--space-3) var(--space-4);
721
+ background: var(--gray-900);
722
+ border: 1px solid var(--gray-800);
723
+ border-radius: var(--radius-lg);
724
+ color: var(--white);
725
+ font-size: var(--font-base);
726
+ transition: all var(--duration-200) var(--ease-out);
727
+ outline: none;
728
+ }
729
+
730
+ .input:focus {
731
+ border-color: var(--gray-600);
732
+ background: var(--gray-850);
733
+ box-shadow: 0 0 0 3px rgba(255,255,255,0.1);
734
+ }
735
+
736
+ .input::placeholder {
737
+ color: var(--gray-600);
738
+ }
739
+
740
+ /* =========================================
741
+ 10. CODE BLOCKS
742
+ ========================================= */
743
+ .code-block {
744
+ background: var(--gray-950);
745
+ border: 1px solid var(--gray-800);
746
+ border-radius: var(--radius-xl);
747
+ padding: var(--space-6);
748
+ overflow-x: auto;
749
+ position: relative;
750
+ white-space: pre-line; /* Preserve line breaks */
751
+ }
752
+
753
+ .code-block::before {
754
+ content: '';
755
+ position: absolute;
756
+ top: var(--space-3);
757
+ left: var(--space-4);
758
+ display: flex;
759
+ gap: var(--space-2);
760
+ }
761
+
762
+ .code-block::before {
763
+ content: '● ● ●';
764
+ color: var(--gray-700);
765
+ font-size: var(--font-xs);
766
+ letter-spacing: var(--space-2);
767
+ }
768
+
769
+ code {
770
+ font-family: var(--font-mono);
771
+ font-size: var(--font-sm);
772
+ color: var(--gray-300);
773
+ line-height: var(--leading-relaxed);
774
+ white-space: pre-line; /* Preserve line breaks */
775
+ }
776
+
777
+ /* =========================================
778
+ 11. ANIMATIONS & TRANSITIONS
779
+ ========================================= */
780
+ @keyframes fadeInUp {
781
+ from {
782
+ opacity: 0;
783
+ transform: translateY(20px);
784
+ }
785
+ to {
786
+ opacity: 1;
787
+ transform: translateY(0);
788
+ }
789
+ }
790
+
791
+ @keyframes fadeInDown {
792
+ from {
793
+ opacity: 0;
794
+ transform: translateY(-20px);
795
+ }
796
+ to {
797
+ opacity: 1;
798
+ transform: translateY(0);
799
+ }
800
+ }
801
+
802
+ @keyframes scaleIn {
803
+ from {
804
+ opacity: 0;
805
+ transform: scale(0.9);
806
+ }
807
+ to {
808
+ opacity: 1;
809
+ transform: scale(1);
810
+ }
811
+ }
812
+
813
+ @keyframes slideInLeft {
814
+ from {
815
+ opacity: 0;
816
+ transform: translateX(-20px);
817
+ }
818
+ to {
819
+ opacity: 1;
820
+ transform: translateX(0);
821
+ }
822
+ }
823
+
824
+ @keyframes slideInRight {
825
+ from {
826
+ opacity: 0;
827
+ transform: translateX(20px);
828
+ }
829
+ to {
830
+ opacity: 1;
831
+ transform: translateX(0);
832
+ }
468
833
  }
469
834
 
470
- .workflow-diagram {
471
- display: flex;
472
- justify-content: center;
473
- align-items: center;
474
- flex-wrap: wrap;
475
- gap: 2rem;
476
- margin-top: 3rem;
835
+ /* Animation Classes */
836
+ .animate-fade-in-up {
837
+ animation: fadeInUp var(--duration-700) var(--ease-out) both;
838
+ }
839
+
840
+ .animate-fade-in-down {
841
+ animation: fadeInDown var(--duration-700) var(--ease-out) both;
842
+ }
843
+
844
+ .animate-scale-in {
845
+ animation: scaleIn var(--duration-500) var(--ease-out) both;
846
+ }
847
+
848
+ .animate-slide-in-left {
849
+ animation: slideInLeft var(--duration-500) var(--ease-out) both;
850
+ }
851
+
852
+ .animate-slide-in-right {
853
+ animation: slideInRight var(--duration-500) var(--ease-out) both;
854
+ }
855
+
856
+ /* Stagger Animation Delays */
857
+ .stagger-1 { animation-delay: 100ms; }
858
+ .stagger-2 { animation-delay: 200ms; }
859
+ .stagger-3 { animation-delay: 300ms; }
860
+ .stagger-4 { animation-delay: 400ms; }
861
+ .stagger-5 { animation-delay: 500ms; }
862
+
863
+ /* =========================================
864
+ 12. UTILITIES
865
+ ========================================= */
866
+ /* Display */
867
+ .hidden { display: none; }
868
+ .block { display: block; }
869
+ .inline-block { display: inline-block; }
870
+ .flex { display: flex; }
871
+ .inline-flex { display: inline-flex; }
872
+ .grid { display: grid; }
873
+
874
+ /* Flexbox */
875
+ .flex-row { flex-direction: row; }
876
+ .flex-col { flex-direction: column; }
877
+ .flex-wrap { flex-wrap: wrap; }
878
+ .items-start { align-items: flex-start; }
879
+ .items-center { align-items: center; }
880
+ .items-end { align-items: flex-end; }
881
+ .justify-start { justify-content: flex-start; }
882
+ .justify-center { justify-content: center; }
883
+ .justify-end { justify-content: flex-end; }
884
+ .justify-between { justify-content: space-between; }
885
+ .justify-around { justify-content: space-around; }
886
+ .gap-1 { gap: var(--space-1); }
887
+ .gap-2 { gap: var(--space-2); }
888
+ .gap-3 { gap: var(--space-3); }
889
+ .gap-4 { gap: var(--space-4); }
890
+ .gap-5 { gap: var(--space-5); }
891
+ .gap-6 { gap: var(--space-6); }
892
+ .gap-8 { gap: var(--space-8); }
893
+
894
+ /* Text Alignment */
895
+ .text-left { text-align: left; }
896
+ .text-center { text-align: center; }
897
+ .text-right { text-align: right; }
898
+ .text-justify { text-align: justify; }
899
+
900
+ /* Font Weight */
901
+ .font-thin { font-weight: 100; }
902
+ .font-light { font-weight: 300; }
903
+ .font-normal { font-weight: 400; }
904
+ .font-medium { font-weight: 500; }
905
+ .font-semibold { font-weight: 600; }
906
+ .font-bold { font-weight: 700; }
907
+ .font-black { font-weight: 900; }
908
+
909
+ /* Opacity */
910
+ .opacity-0 { opacity: 0; }
911
+ .opacity-25 { opacity: 0.25; }
912
+ .opacity-50 { opacity: 0.5; }
913
+ .opacity-75 { opacity: 0.75; }
914
+ .opacity-100 { opacity: 1; }
915
+
916
+ /* Z-Index */
917
+ .z-0 { z-index: 0; }
918
+ .z-10 { z-index: 10; }
919
+ .z-20 { z-index: 20; }
920
+ .z-30 { z-index: 30; }
921
+ .z-40 { z-index: 40; }
922
+ .z-50 { z-index: 50; }
923
+
924
+ /* =========================================
925
+ 13. RESPONSIVE DESIGN
926
+ ========================================= */
927
+ /* Mobile First Breakpoints */
928
+ @media (min-width: 640px) {
929
+ .sm\:grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
930
+ .sm\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
931
+ .sm\:flex-row { flex-direction: row; }
932
+ }
933
+
934
+ @media (min-width: 768px) {
935
+ .md\:grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
936
+ .md\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
937
+ .md\:grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
938
+ .md\:flex-row { flex-direction: row; }
939
+ }
940
+
941
+ @media (min-width: 1024px) {
942
+ .lg\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
943
+ .lg\:grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
944
+ .lg\:flex-row { flex-direction: row; }
945
+ }
946
+
947
+ @media (min-width: 1280px) {
948
+ .xl\:grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
949
+ .xl\:grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
950
+ }
951
+
952
+ /* Mobile Menu */
953
+ @media (max-width: 768px) {
954
+ .navbar-menu {
955
+ position: fixed;
956
+ top: 60px;
957
+ left: 0;
958
+ right: 0;
959
+ background: rgba(0, 0, 0, 0.95);
960
+ backdrop-filter: blur(20px);
961
+ flex-direction: column;
962
+ padding: var(--space-6);
963
+ transform: translateY(-100%);
964
+ opacity: 0;
965
+ transition: all var(--duration-300) var(--ease-out);
966
+ }
967
+
968
+ .navbar-menu.active {
969
+ transform: translateY(0);
970
+ opacity: 1;
971
+ }
972
+ }
973
+
974
+ /* =========================================
975
+ 14. LOADING STATES
976
+ ========================================= */
977
+ .skeleton {
978
+ background: linear-gradient(90deg, var(--gray-900) 25%, var(--gray-800) 50%, var(--gray-900) 75%);
979
+ background-size: 200% 100%;
980
+ animation: skeleton-loading 1.5s ease-in-out infinite;
981
+ }
982
+
983
+ @keyframes skeleton-loading {
984
+ 0% { background-position: 200% 0; }
985
+ 100% { background-position: -200% 0; }
986
+ }
987
+
988
+ .spinner {
989
+ width: 40px;
990
+ height: 40px;
991
+ border: 3px solid var(--gray-800);
992
+ border-top-color: var(--white);
993
+ border-radius: 50%;
994
+ animation: spinner-rotate 1s linear infinite;
995
+ }
996
+
997
+ @keyframes spinner-rotate {
998
+ to { transform: rotate(360deg); }
999
+ }
1000
+
1001
+ /* =========================================
1002
+ 15. SPECIAL EFFECTS
1003
+ ========================================= */
1004
+ /* Glow Effect */
1005
+ .glow {
1006
+ box-shadow: 0 0 20px rgba(255,255,255,0.1),
1007
+ 0 0 40px rgba(255,255,255,0.05),
1008
+ 0 0 60px rgba(255,255,255,0.02);
1009
+ }
1010
+
1011
+ /* Noise Texture Overlay */
1012
+ .noise::after {
1013
+ content: '';
1014
+ position: absolute;
1015
+ top: 0;
1016
+ left: 0;
1017
+ width: 100%;
1018
+ height: 100%;
1019
+ opacity: 0.03;
1020
+ z-index: 1;
1021
+ pointer-events: none;
1022
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
1023
+ }
1024
+
1025
+ /* =========================================
1026
+ 15.5. DOCUMENTATION TABS
1027
+ ========================================= */
1028
+ .tabs-container {
1029
+ margin-bottom: var(--space-8);
1030
+ }
1031
+
1032
+ .tabs-nav {
1033
+ display: flex;
1034
+ justify-content: center;
1035
+ gap: var(--space-2);
1036
+ flex-wrap: wrap;
1037
+ margin-bottom: var(--space-8);
477
1038
  }
478
1039
 
479
- .workflow-step {
480
- background: white;
481
- padding: 2rem;
482
- border-radius: 12px;
483
- text-align: center;
484
- flex: 1;
485
- min-width: 200px;
486
- max-width: 250px;
487
- box-shadow: var(--shadow-md);
488
- transition: all 0.3s ease;
489
- }
490
-
491
- .workflow-step:hover {
492
- transform: translateY(-5px);
493
- box-shadow: var(--shadow-lg);
494
- }
495
-
496
- .step-number {
497
- width: 50px;
498
- height: 50px;
499
- background: var(--gradient-secondary);
500
- color: white;
501
- border-radius: 50%;
502
- display: flex;
503
- align-items: center;
504
- justify-content: center;
505
- font-size: 1.5rem;
506
- font-weight: 700;
507
- margin: 0 auto 1rem;
508
- }
509
-
510
- .workflow-arrow {
511
- font-size: 2rem;
512
- color: var(--primary-color);
513
- }
514
-
515
- /* Installation Section */
516
- .installation {
517
- padding: 80px 0;
518
- background: white;
1040
+ .tab-btn {
1041
+ padding: var(--space-3) var(--space-6);
1042
+ border: none;
1043
+ border-radius: var(--radius-lg);
1044
+ cursor: pointer;
1045
+ font-weight: 500;
1046
+ transition: all var(--duration-200) var(--ease-out);
1047
+ position: relative;
519
1048
  }
520
1049
 
521
- .install-tabs {
522
- display: flex;
523
- justify-content: center;
524
- gap: 1rem;
525
- margin-bottom: 2rem;
1050
+ .tab-btn:not(.active) {
1051
+ background: var(--gray-200);
1052
+ color: var(--black);
526
1053
  }
527
1054
 
528
- .tab-btn {
529
- padding: 10px 30px;
530
- background: var(--light-bg);
531
- border: none;
532
- border-radius: 25px;
533
- cursor: pointer;
534
- font-weight: 600;
535
- transition: all 0.3s ease;
536
- color: var(--text-primary);
1055
+ .tab-btn:not(.active):hover {
1056
+ background: var(--gray-300);
1057
+ transform: translateY(-2px);
537
1058
  }
538
1059
 
539
1060
  .tab-btn.active {
540
- background: var(--gradient-secondary);
541
- color: white;
542
- }
543
-
544
- .tab-btn:hover:not(.active) {
545
- background: var(--border-color);
1061
+ background: var(--black);
1062
+ color: var(--white);
1063
+ box-shadow: 0 4px 12px rgba(0,0,0,0.2);
546
1064
  }
547
1065
 
548
1066
  .tab-content {
549
- display: none;
550
- animation: fadeIn 0.5s ease;
1067
+ display: none;
1068
+ animation: fadeInUp var(--duration-300) var(--ease-out);
551
1069
  }
552
1070
 
553
1071
  .tab-content.active {
554
- display: block;
555
- }
556
-
557
- @keyframes fadeIn {
558
- from { opacity: 0; transform: translateY(10px); }
559
- to { opacity: 1; transform: translateY(0); }
1072
+ display: block;
560
1073
  }
561
1074
 
562
- .tab-content h3 {
563
- margin-bottom: 1.5rem;
564
- color: var(--text-primary);
1075
+ .tool-category {
1076
+ background: var(--gray-50);
1077
+ padding: var(--space-4);
1078
+ border-radius: var(--radius-lg);
1079
+ border: 1px solid var(--gray-200);
1080
+ transition: all var(--duration-200) var(--ease-out);
565
1081
  }
566
1082
 
567
- pre {
568
- background: var(--dark-bg);
569
- border-radius: 8px;
570
- padding: 1.5rem;
571
- overflow-x: auto;
1083
+ .tool-category:hover {
1084
+ border-color: var(--gray-400);
1085
+ box-shadow: 0 4px 12px rgba(0,0,0,0.1);
572
1086
  }
573
1087
 
574
- pre code {
575
- color: #e6e6e6;
576
- font-family: 'Fira Code', 'Courier New', monospace;
577
- font-size: 0.95rem;
578
- line-height: 1.6;
1088
+ .alert {
1089
+ background: var(--yellow-100);
1090
+ border: 1px solid var(--yellow-400);
1091
+ padding: var(--space-4);
1092
+ border-radius: var(--radius-md);
1093
+ margin-bottom: var(--space-6);
579
1094
  }
580
1095
 
581
- /* Examples Section */
582
- .examples {
583
- padding: 80px 0;
584
- background: var(--light-bg);
1096
+ .issue {
1097
+ margin-bottom: var(--space-6);
1098
+ padding: var(--space-4);
1099
+ border: 1px solid var(--red-300);
1100
+ border-radius: var(--radius-md);
1101
+ background: var(--red-50);
585
1102
  }
586
1103
 
587
- .example-grid {
588
- display: grid;
589
- gap: 2rem;
1104
+ .step {
1105
+ margin-bottom: var(--space-6);
1106
+ padding: var(--space-4);
1107
+ border-left: 4px solid var(--black);
1108
+ background: var(--gray-50);
1109
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
590
1110
  }
591
1111
 
592
- .example-card {
1112
+ /* =========================================
1113
+ 16. PRINT STYLES
1114
+ ========================================= */
1115
+ @media print {
1116
+ body {
593
1117
  background: white;
594
- border-radius: 12px;
595
- padding: 2rem;
596
- box-shadow: var(--shadow-sm);
597
- transition: all 0.3s ease;
598
- }
599
-
600
- .example-card:hover {
601
- box-shadow: var(--shadow-lg);
602
- transform: translateY(-5px);
603
- }
604
-
605
- .example-card h3 {
606
- margin-bottom: 1.5rem;
607
- color: var(--text-primary);
608
- }
609
-
610
- .user-examples {
611
- background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
612
- border: 2px dashed var(--primary-color);
613
- }
614
-
615
- .user-examples-placeholder {
616
- text-align: center;
617
- padding: 2rem;
618
- color: var(--text-secondary);
619
- }
620
-
621
- .example-template {
622
- margin-top: 2rem;
623
- text-align: left;
624
- }
625
-
626
- /* API Reference */
627
- .api-reference {
628
- padding: 80px 0;
629
- background: white;
630
- }
631
-
632
- .api-categories {
633
- display: grid;
634
- grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
635
- gap: 3rem;
636
- }
637
-
638
- .api-category h3 {
639
- margin-bottom: 1.5rem;
640
- color: var(--text-primary);
641
- }
642
-
643
- .api-list {
644
- list-style: none;
645
- }
646
-
647
- .api-list li {
648
- padding: 0.8rem;
649
- border-bottom: 1px solid var(--border-color);
650
- transition: background 0.3s ease;
651
- }
652
-
653
- .api-list li:hover {
654
- background: var(--light-bg);
655
- }
656
-
657
- .api-list code {
658
- background: var(--light-bg);
659
- padding: 4px 8px;
660
- border-radius: 4px;
661
- color: var(--primary-color);
662
- font-weight: 500;
663
- }
664
-
665
- /* Best Practices */
666
- .best-practices {
667
- padding: 80px 0;
668
- background: var(--light-bg);
669
- }
670
-
671
- .practices-grid {
672
- display: grid;
673
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
674
- gap: 2rem;
675
- }
676
-
677
- .practice {
678
- background: white;
679
- padding: 2rem;
680
- border-radius: 12px;
681
- box-shadow: var(--shadow-sm);
682
- transition: all 0.3s ease;
683
- }
684
-
685
- .practice:hover {
686
- box-shadow: var(--shadow-lg);
687
- transform: translateY(-5px);
688
- }
689
-
690
- .practice h3 {
691
- margin-bottom: 1rem;
692
- color: var(--text-primary);
693
- }
694
-
695
- .practice p {
696
- color: var(--text-secondary);
697
- line-height: 1.7;
698
- }
699
-
700
- /* Footer */
701
- .footer {
702
- background: var(--dark-bg);
703
- color: white;
704
- padding: 60px 0 40px;
705
- }
706
-
707
- .footer-content {
708
- display: grid;
709
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
710
- gap: 3rem;
711
- margin-bottom: 2rem;
712
- }
713
-
714
- .footer-section h4 {
715
- margin-bottom: 1rem;
716
- color: white;
717
- }
718
-
719
- .footer-section ul {
720
- list-style: none;
721
- }
722
-
723
- .footer-section li {
724
- margin-bottom: 0.5rem;
725
- }
726
-
727
- .footer-section a {
728
- color: rgba(255,255,255,0.7);
729
- text-decoration: none;
730
- transition: color 0.3s ease;
731
- }
732
-
733
- .footer-section a:hover {
734
- color: white;
735
- }
736
-
737
- .footer-logo {
738
- font-size: 3rem;
739
- margin-top: 1rem;
740
- }
741
-
742
- /* Dynamic MCP Cards */
743
- .mcp-filter {
744
- display: flex;
745
- justify-content: center;
746
- gap: 1rem;
747
- margin-bottom: 2rem;
748
- flex-wrap: wrap;
749
- }
750
-
751
- .filter-btn {
752
- padding: 0.5rem 1.5rem;
753
- border: 2px solid var(--border-color);
754
- background: white;
755
- border-radius: 25px;
756
- cursor: pointer;
757
- font-weight: 500;
758
- transition: all 0.3s ease;
759
- font-size: 0.9rem;
760
- }
761
-
762
- .filter-btn:hover {
763
- border-color: var(--primary-color);
764
- color: var(--primary-color);
765
- }
766
-
767
- .filter-btn.active {
768
- background: var(--primary-color);
769
- border-color: var(--primary-color);
770
- color: white;
771
- }
772
-
773
- .mcp-grid-dynamic {
774
- display: grid;
775
- grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
776
- gap: 2rem;
777
- margin-top: 2rem;
778
- }
779
-
780
- .mcp-card-dynamic {
781
- background: var(--card-bg);
782
- border-radius: 15px;
783
- box-shadow: var(--shadow-md);
784
- overflow: hidden;
785
- transition: all 0.3s ease;
786
- border: 1px solid var(--border-color);
787
- }
788
-
789
- .mcp-card-dynamic:hover {
790
- transform: translateY(-5px);
791
- box-shadow: var(--shadow-lg);
792
- }
793
-
794
- .mcp-card-dynamic.expanded {
795
- box-shadow: var(--shadow-xl);
796
- border-color: var(--primary-color);
797
- }
798
-
799
- .mcp-card-header {
800
- padding: 1.5rem;
801
- display: flex;
802
- justify-content: space-between;
803
- align-items: flex-start;
804
- border-bottom: 1px solid var(--border-color);
805
- }
806
-
807
- .mcp-title {
808
- flex: 1;
809
- }
810
-
811
- .mcp-title h3 {
812
- margin: 0 0 0.5rem 0;
813
- color: var(--text-primary);
814
- font-size: 1.2rem;
815
- font-weight: 600;
816
- }
817
-
818
- .mcp-badge {
819
- background: var(--gradient-secondary);
820
- color: white;
821
- padding: 0.25rem 0.75rem;
822
- border-radius: 20px;
823
- font-size: 0.8rem;
824
- font-weight: 600;
825
- display: inline-block;
826
- }
827
-
828
- .mcp-expand-btn {
829
- background: none;
830
- border: none;
831
- cursor: pointer;
832
- padding: 0.5rem;
833
- border-radius: 50%;
834
- transition: all 0.3s ease;
835
- color: var(--text-secondary);
836
- margin-left: 1rem;
837
- }
838
-
839
- .mcp-expand-btn:hover {
840
- background: var(--light-bg);
841
- color: var(--primary-color);
842
- }
843
-
844
- .mcp-expand-btn.expanded svg {
845
- transform: rotate(180deg);
846
- }
847
-
848
- .mcp-expand-btn svg {
849
- transition: transform 0.3s ease;
850
- }
851
-
852
- .mcp-description {
853
- padding: 0 1.5rem 1.5rem 1.5rem;
854
- color: var(--text-secondary);
855
- margin: 0;
856
- line-height: 1.5;
857
- }
858
-
859
- .mcp-tools-container {
860
- border-top: 1px solid var(--border-color);
861
- background: #f9fafb;
862
- }
863
-
864
- .mcp-tools-grid {
865
- padding: 1.5rem;
866
- display: grid;
867
- gap: 1rem;
868
- }
869
-
870
- .tool-item {
871
- background: white;
872
- padding: 1rem;
873
- border-radius: 8px;
874
- border: 1px solid var(--border-color);
875
- transition: all 0.2s ease;
876
- }
877
-
878
- .tool-item:hover {
879
- border-color: var(--primary-color);
880
- box-shadow: 0 2px 8px rgba(0,102,204,0.1);
881
- }
882
-
883
- .tool-header {
884
- margin-bottom: 0.5rem;
885
- }
886
-
887
- .tool-name {
888
- background: #f7fafc;
889
- color: var(--primary-color);
890
- padding: 0.25rem 0.5rem;
891
- border-radius: 4px;
892
- font-size: 0.9rem;
893
- font-weight: 600;
894
- border: 1px solid #e2e8f0;
895
- }
896
-
897
- .tool-description {
898
- color: var(--text-secondary);
899
- margin: 0;
900
- font-size: 0.9rem;
901
- line-height: 1.4;
902
- }
903
-
904
- /* Enhanced Search */
905
- .mcp-search {
906
- transition: all 0.3s ease !important;
907
- }
908
-
909
- .mcp-search:focus {
910
- outline: none;
911
- border-color: var(--primary-color) !important;
912
- box-shadow: 0 0 0 3px rgba(0,102,204,0.1) !important;
913
- }
914
-
915
- /* Animation Classes */
916
- @keyframes fadeIn {
917
- from {
918
- opacity: 0;
919
- transform: translateY(10px);
920
- }
921
- to {
922
- opacity: 1;
923
- transform: translateY(0);
924
- }
925
- }
926
-
927
- .fadeIn {
928
- animation: fadeIn 0.3s ease;
929
- }
930
-
931
- /* Loading States */
932
- .mcp-grid-dynamic.loading {
933
- opacity: 0.6;
934
- pointer-events: none;
935
- }
936
-
937
- .mcp-grid-dynamic.loading::after {
938
- content: "Loading tools...";
939
- position: absolute;
940
- top: 50%;
941
- left: 50%;
942
- transform: translate(-50%, -50%);
943
- font-size: 1.2rem;
944
- color: var(--text-secondary);
945
- }
946
-
947
- /* Tool Count Indicators */
948
- .server-stats {
949
- display: flex;
950
- gap: 1rem;
951
- margin-top: 1rem;
952
- padding-top: 1rem;
953
- border-top: 1px solid var(--border-color);
954
- font-size: 0.9rem;
955
- color: var(--text-light);
956
- }
957
-
958
- .stat-item {
959
- display: flex;
960
- align-items: center;
961
- gap: 0.5rem;
962
- }
963
-
964
- .stat-icon {
965
- width: 16px;
966
- height: 16px;
967
- background: var(--gradient-secondary);
968
- border-radius: 50%;
969
- }
970
-
971
- /* Responsive Design for Dynamic Cards */
972
- @media (max-width: 1024px) {
973
- .mcp-grid-dynamic {
974
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
975
- gap: 1.5rem;
976
- }
977
- }
978
-
979
- @media (max-width: 768px) {
980
- .mcp-grid-dynamic {
981
- grid-template-columns: 1fr;
982
- gap: 1rem;
983
- }
984
-
985
- .mcp-card-header {
986
- padding: 1rem;
987
- }
988
-
989
- .mcp-description {
990
- padding: 0 1rem 1rem 1rem;
991
- }
992
-
993
- .mcp-tools-grid {
994
- padding: 1rem;
995
- }
996
-
997
- .mcp-filter {
998
- gap: 0.5rem;
999
- }
1000
-
1001
- .filter-btn {
1002
- padding: 0.4rem 1rem;
1003
- font-size: 0.8rem;
1004
- }
1005
- }
1006
-
1007
- @media (max-width: 480px) {
1008
- .tool-item {
1009
- padding: 0.75rem;
1010
- }
1011
-
1012
- .tool-name {
1013
- font-size: 0.8rem;
1014
- }
1015
-
1016
- .tool-description {
1017
- font-size: 0.85rem;
1018
- }
1019
- }
1020
-
1021
- /* Responsive Design */
1022
- @media (max-width: 768px) {
1023
- .nav-menu {
1024
- position: fixed;
1025
- left: -100%;
1026
- top: 70px;
1027
- flex-direction: column;
1028
- background: white;
1029
- width: 100%;
1030
- text-align: center;
1031
- transition: 0.3s;
1032
- box-shadow: var(--shadow-lg);
1033
- padding: 2rem 0;
1034
- }
1035
-
1036
- .nav-menu.active {
1037
- left: 0;
1038
- }
1039
-
1040
- .hamburger {
1041
- display: flex;
1042
- }
1043
-
1044
- .hero-title {
1045
- font-size: 2.5rem;
1046
- }
1047
-
1048
- .hero-subtitle {
1049
- font-size: 1.2rem;
1050
- }
1051
-
1052
- .hero-stats {
1053
- flex-wrap: wrap;
1054
- gap: 2rem;
1055
- }
1056
-
1057
- .workflow-diagram {
1058
- flex-direction: column;
1059
- }
1060
-
1061
- .workflow-arrow {
1062
- transform: rotate(90deg);
1063
- }
1064
-
1065
- .mcp-grid {
1066
- grid-template-columns: 1fr;
1067
- }
1068
-
1069
- .api-categories {
1070
- grid-template-columns: 1fr;
1071
- }
1072
- }
1073
-
1074
- /* Smooth Scrolling */
1075
- html {
1076
- scroll-behavior: smooth;
1077
- }
1078
-
1079
- /* Selection Colors */
1080
- ::selection {
1081
- background: var(--primary-color);
1082
- color: white;
1083
- }
1084
-
1085
- ::-moz-selection {
1086
- background: var(--primary-color);
1087
- color: white;
1088
- }
1118
+ color: black;
1119
+ }
1120
+
1121
+ .navbar,
1122
+ .hero::before,
1123
+ .hero::after,
1124
+ .btn,
1125
+ .no-print {
1126
+ display: none !important;
1127
+ }
1128
+
1129
+ a {
1130
+ color: black;
1131
+ text-decoration: underline;
1132
+ }
1133
+ }
1134
+
1135
+ /* =========================================
1136
+ 17. ACCESSIBILITY
1137
+ ========================================= */
1138
+ /* Focus Visible */
1139
+ :focus-visible {
1140
+ outline: 2px solid var(--white);
1141
+ outline-offset: 2px;
1142
+ }
1143
+
1144
+ /* Skip to Content */
1145
+ .skip-to-content {
1146
+ position: absolute;
1147
+ top: -40px;
1148
+ left: 0;
1149
+ background: var(--white);
1150
+ color: var(--black);
1151
+ padding: var(--space-2) var(--space-4);
1152
+ z-index: 100;
1153
+ text-decoration: none;
1154
+ }
1155
+
1156
+ .skip-to-content:focus {
1157
+ top: 0;
1158
+ }
1159
+
1160
+ /* Reduced Motion */
1161
+ @media (prefers-reduced-motion: reduce) {
1162
+ *,
1163
+ *::before,
1164
+ *::after {
1165
+ animation-duration: 0.01ms !important;
1166
+ animation-iteration-count: 1 !important;
1167
+ transition-duration: 0.01ms !important;
1168
+ scroll-behavior: auto !important;
1169
+ }
1170
+ }
1171
+
1172
+ /* =========================================
1173
+ END OF SNOW-FLOW DESIGN SYSTEM
1174
+ ========================================= */