@akshayram1/omnibrowser-agent 0.2.8 → 0.2.26

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.
package/styles.css CHANGED
@@ -1,40 +1,84 @@
1
- :root {
2
- color-scheme: light;
3
- font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
4
- scroll-behavior: smooth;
5
- }
1
+ @import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Quantico:wght@400;700&display=swap');
6
2
 
7
- * {
8
- box-sizing: border-box;
9
- }
10
-
11
- body {
12
- margin: 0;
13
- color: #182033;
14
- background: #f4f7fd;
15
- }
3
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
16
4
 
17
- /* ── Layout ── */
5
+ :root {
6
+ --bg: #080a0f;
7
+ --surface: #0d1117;
8
+ --surface2: #161b24;
9
+ --border: rgba(255,255,255,0.07);
10
+ --border-bright: rgba(255,255,255,0.15);
11
+ --text: #e8eaf0;
12
+ --muted: #6b7280;
13
+ --accent: #00e5a0;
14
+ --accent2: #7c6dff;
15
+ --accent3: #ff6b6b;
16
+ --amber: #f59e0b;
17
+ --mono: 'Space Mono', monospace;
18
+ --sans: 'Quantico', sans-serif;
19
+ }
20
+
21
+ html { scroll-behavior: smooth; }
18
22
 
23
+ body {
24
+ background: var(--bg);
25
+ color: var(--text);
26
+ font-family: var(--sans);
27
+ min-height: 100vh;
28
+ overflow-x: hidden;
29
+ }
30
+
31
+ body::before {
32
+ content: '';
33
+ position: fixed;
34
+ inset: 0;
35
+ background-image:
36
+ linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
37
+ linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
38
+ background-size: 40px 40px;
39
+ pointer-events: none;
40
+ z-index: 0;
41
+ }
42
+
43
+ /* ── ORBS ── */
44
+ .orb {
45
+ position: fixed;
46
+ border-radius: 50%;
47
+ filter: blur(120px);
48
+ pointer-events: none;
49
+ z-index: 0;
50
+ animation: orb-drift 20s ease-in-out infinite;
51
+ }
52
+ .orb-1 { width: 600px; height: 600px; background: rgba(0,229,160,0.06); top: -200px; right: -100px; animation-delay: 0s; }
53
+ .orb-2 { width: 500px; height: 500px; background: rgba(124,109,255,0.07); bottom: -150px; left: -100px; animation-delay: -7s; }
54
+ .orb-3 { width: 300px; height: 300px; background: rgba(245,158,11,0.05); top: 40%; left: 50%; animation-delay: -14s; }
55
+ @keyframes orb-drift {
56
+ 0%,100% { transform: translate(0,0) scale(1); }
57
+ 33% { transform: translate(30px,-20px) scale(1.05); }
58
+ 66% { transform: translate(-20px,30px) scale(0.97); }
59
+ }
60
+
61
+ /* ── LAYOUT ── */
19
62
  .wrap {
20
- width: min(960px, 92vw);
63
+ position: relative;
64
+ z-index: 1;
65
+ width: min(1100px, 92vw);
21
66
  margin: 0 auto;
22
67
  }
23
68
 
24
- /* ── Header ── */
25
-
69
+ /* ── HEADER ── */
26
70
  .header {
27
71
  position: sticky;
28
72
  top: 0;
29
- border-bottom: 1px solid rgba(200, 212, 241, 0.7);
30
- background: rgba(255, 255, 255, 0.88);
31
- backdrop-filter: blur(12px);
32
- -webkit-backdrop-filter: blur(12px);
33
- z-index: 10;
73
+ background: rgba(8,10,15,0.9);
74
+ backdrop-filter: blur(16px);
75
+ -webkit-backdrop-filter: blur(16px);
76
+ border-bottom: 1px solid var(--border);
77
+ z-index: 100;
34
78
  }
35
79
 
36
80
  .header-row {
37
- min-height: 64px;
81
+ min-height: 60px;
38
82
  display: flex;
39
83
  align-items: center;
40
84
  justify-content: space-between;
@@ -42,11 +86,12 @@ body {
42
86
  }
43
87
 
44
88
  .brand {
45
- font-weight: 800;
46
- font-size: 15px;
89
+ font-family: var(--mono);
90
+ font-weight: 700;
91
+ font-size: 13px;
47
92
  text-decoration: none;
48
- color: #1f3a8a;
49
- letter-spacing: -0.2px;
93
+ color: var(--accent);
94
+ letter-spacing: 0.05em;
50
95
  white-space: nowrap;
51
96
  }
52
97
 
@@ -58,237 +103,326 @@ body {
58
103
 
59
104
  .nav a {
60
105
  text-decoration: none;
61
- color: #4a5d82;
62
- font-weight: 500;
63
- font-size: 14px;
106
+ color: var(--muted);
107
+ font-family: var(--mono);
108
+ font-size: 11px;
109
+ letter-spacing: 0.04em;
64
110
  padding: 6px 11px;
65
111
  border-radius: 8px;
66
- transition: background 0.15s, color 0.15s;
112
+ transition: color 0.15s, background 0.15s;
67
113
  }
68
114
 
69
115
  .nav a:hover {
70
- background: #edf2ff;
71
- color: #1f3a8a;
72
- }
73
-
74
- /* ── Sections ── */
75
-
76
- .section {
77
- padding: 72px 0;
116
+ color: var(--text);
117
+ background: var(--surface2);
78
118
  }
79
119
 
80
- .section:nth-child(even) {
81
- background: rgba(255, 255, 255, 0.6);
120
+ /* ── MAIN ── */
121
+ main {
122
+ position: relative;
123
+ z-index: 1;
82
124
  }
83
125
 
84
- /* ── Hero ── */
126
+ /* ── SECTIONS ── */
127
+ .section { padding: 80px 0; }
85
128
 
86
- .hero {
87
- padding-top: 80px;
88
- padding-bottom: 80px;
89
- background:
90
- radial-gradient(ellipse 80% 60% at 70% -10%, #c7d9ff 0%, transparent 55%),
91
- radial-gradient(ellipse 50% 40% at 0% 80%, #dce9ff 0%, transparent 50%),
92
- #f4f7fd;
93
- }
129
+ /* ── HERO ── */
130
+ .hero { padding: 90px 0 60px; }
94
131
 
95
- .eyebrow {
132
+ .badge-pill {
96
133
  display: inline-flex;
97
134
  align-items: center;
98
- gap: 6px;
99
- margin: 0;
100
- font-size: 11.5px;
101
- font-weight: 700;
102
- letter-spacing: 0.1em;
135
+ gap: 8px;
136
+ font-family: var(--mono);
137
+ font-size: 11px;
138
+ letter-spacing: 0.12em;
103
139
  text-transform: uppercase;
104
- color: #2e4fa3;
105
- background: linear-gradient(135deg, #e6eeff, #dce7ff);
106
- border: 1px solid #b8ccf8;
107
- border-radius: 999px;
108
- padding: 5px 12px;
140
+ color: var(--accent);
141
+ border: 1px solid rgba(0,229,160,0.25);
142
+ background: rgba(0,229,160,0.06);
143
+ padding: 6px 14px;
144
+ border-radius: 100px;
145
+ margin-bottom: 28px;
146
+ }
147
+ .badge-pill::before {
148
+ content: '';
149
+ width: 6px; height: 6px;
150
+ background: var(--accent);
151
+ border-radius: 50%;
152
+ animation: dot-pulse 2s infinite;
153
+ }
154
+ @keyframes dot-pulse {
155
+ 0%,100% { opacity:1; transform:scale(1); }
156
+ 50% { opacity:0.5; transform:scale(1.4); }
109
157
  }
110
158
 
111
159
  .hero h1 {
112
- margin: 16px 0 0;
113
- font-size: clamp(30px, 4.5vw, 48px);
114
- font-weight: 800;
115
- line-height: 1.1;
116
- letter-spacing: -0.5px;
117
- max-width: 820px;
118
- background: linear-gradient(135deg, #111827 0%, #1f3a8a 100%);
160
+ font-family: var(--sans);
161
+ font-size: clamp(32px, 4.2vw, 54px);
162
+ font-weight: 600;
163
+ line-height: 1.18;
164
+ letter-spacing: -0.02em;
165
+ margin: 0 0 20px;
166
+ max-width: 680px;
167
+ background: linear-gradient(135deg, #ffffff 0%, rgba(255,255,255,0.82) 60%, rgba(255,255,255,0.62) 100%);
119
168
  -webkit-background-clip: text;
120
169
  -webkit-text-fill-color: transparent;
121
170
  background-clip: text;
122
171
  }
123
172
 
124
173
  .hero > .wrap > p {
125
- margin-top: 16px;
126
- font-size: 18px;
127
- line-height: 1.6;
128
- max-width: 640px;
129
- color: #374769;
174
+ font-size: 17px;
175
+ color: var(--muted);
176
+ max-width: 580px;
177
+ line-height: 1.65;
178
+ font-weight: 400;
179
+ margin: 0 0 24px;
130
180
  }
131
181
 
182
+ /* ── CHIPS ── */
132
183
  .chips {
133
- margin-top: 20px;
184
+ margin: 20px 0 24px;
134
185
  display: flex;
135
186
  flex-wrap: wrap;
136
187
  gap: 8px;
137
188
  }
138
189
 
139
190
  .chips span {
140
- font-size: 12.5px;
141
- color: #2a3f72;
142
- background: rgba(255, 255, 255, 0.8);
143
- border: 1px solid #c4d4f5;
191
+ font-family: var(--mono);
192
+ font-size: 11px;
193
+ color: var(--muted);
194
+ background: var(--surface);
195
+ border: 1px solid var(--border);
144
196
  border-radius: 999px;
145
- padding: 5px 12px;
146
- font-weight: 500;
197
+ padding: 4px 12px;
198
+ letter-spacing: 0.03em;
147
199
  }
148
200
 
201
+ /* ── BUTTONS ── */
149
202
  .actions {
150
- margin-top: 24px;
203
+ margin: 24px 0 32px;
151
204
  display: flex;
152
205
  flex-wrap: wrap;
153
206
  gap: 10px;
154
207
  }
155
208
 
156
209
  .btn {
157
- display: inline-block;
158
- padding: 10px 18px;
210
+ display: inline-flex;
211
+ align-items: center;
212
+ gap: 8px;
213
+ font-family: var(--mono);
214
+ font-size: 12px;
215
+ padding: 11px 22px;
159
216
  border-radius: 10px;
160
- font-size: 14px;
161
- font-weight: 600;
162
217
  text-decoration: none;
163
- border: 1px solid #c0d0f0;
164
- color: #1a2e60;
165
- background: rgba(255, 255, 255, 0.9);
166
- transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
167
- box-shadow: 0 1px 3px rgba(18, 33, 73, 0.08);
218
+ letter-spacing: 0.05em;
219
+ transition: all 0.2s;
220
+ border: 1px solid var(--border-bright);
221
+ color: var(--text);
222
+ background: transparent;
168
223
  }
224
+ .btn:hover { border-color: var(--accent2); color: var(--accent2); }
169
225
 
170
226
  .btn.primary {
171
- background: linear-gradient(135deg, #1e3faa, #2952cc);
172
- border-color: transparent;
173
- color: #fff;
174
- box-shadow: 0 4px 14px rgba(30, 63, 170, 0.35);
175
- }
176
-
177
- .btn:hover {
178
- transform: translateY(-2px);
179
- box-shadow: 0 8px 20px rgba(30, 63, 170, 0.18);
227
+ background: var(--accent);
228
+ color: #000;
229
+ border-color: var(--accent);
230
+ font-weight: 700;
180
231
  }
181
-
182
232
  .btn.primary:hover {
183
- box-shadow: 0 8px 24px rgba(30, 63, 170, 0.45);
233
+ background: #00ffc2;
234
+ box-shadow: 0 0 30px rgba(0,229,160,0.3);
235
+ border-color: #00ffc2;
236
+ color: #000;
184
237
  }
185
238
 
186
- /* ── Stats ── */
187
-
239
+ /* ── STATS ── */
188
240
  .stats {
189
- margin-top: 24px;
190
- display: grid;
191
- grid-template-columns: repeat(3, minmax(110px, auto));
241
+ display: flex;
242
+ flex-wrap: wrap;
192
243
  gap: 10px;
244
+ margin-bottom: 0;
193
245
  }
194
246
 
195
247
  .stat {
196
- background: rgba(255, 255, 255, 0.9);
197
- border: 1px solid #d4dff5;
248
+ background: var(--surface);
249
+ border: 1px solid var(--border);
198
250
  border-radius: 14px;
199
- padding: 12px 16px;
251
+ padding: 14px 20px;
200
252
  display: flex;
201
253
  flex-direction: column;
202
254
  gap: 3px;
203
- box-shadow: 0 2px 8px rgba(18, 33, 73, 0.05);
255
+ min-width: 110px;
204
256
  }
205
257
 
206
258
  .stat strong {
207
- font-size: 20px;
208
- font-weight: 800;
209
- color: #1f3a8a;
210
- letter-spacing: -0.5px;
259
+ font-family: var(--mono);
260
+ font-size: 22px;
261
+ font-weight: 700;
262
+ color: var(--accent);
211
263
  }
212
264
 
213
265
  .stat span {
214
- font-size: 12px;
215
- color: #5a6e96;
216
- font-weight: 500;
266
+ font-size: 11px;
267
+ color: var(--muted);
217
268
  }
218
269
 
219
- /* ── Cards ── */
220
-
270
+ /* ── HOME GRID CARDS ── */
221
271
  .home-grid {
222
- margin-top: 28px;
272
+ margin-top: 32px;
223
273
  display: grid;
224
274
  gap: 14px;
225
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
275
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
226
276
  }
227
277
 
228
278
  .card {
229
- background: rgba(255, 255, 255, 0.92);
230
- border: 1px solid #dae2f5;
279
+ background: var(--surface);
280
+ border: 1px solid var(--border);
231
281
  border-radius: 16px;
232
- padding: 18px;
233
- box-shadow: 0 4px 16px rgba(18, 33, 73, 0.06);
234
- transition: transform 0.2s ease, box-shadow 0.2s ease;
282
+ padding: 22px;
283
+ position: relative;
284
+ overflow: hidden;
285
+ transition: border-color 0.3s, transform 0.3s;
235
286
  }
236
-
237
- .card:hover {
238
- transform: translateY(-3px);
239
- box-shadow: 0 12px 32px rgba(18, 33, 73, 0.12);
287
+ .card:hover { border-color: var(--border-bright); transform: translateY(-2px); }
288
+ .card::before {
289
+ content: '';
290
+ position: absolute;
291
+ inset: 0;
292
+ border-radius: inherit;
293
+ opacity: 0;
294
+ transition: opacity 0.3s;
295
+ pointer-events: none;
296
+ background: radial-gradient(ellipse at top left, rgba(0,229,160,0.06), transparent 60%);
240
297
  }
298
+ .card:hover::before { opacity: 1; }
241
299
 
242
300
  .card h3 {
243
- margin-top: 0;
244
- margin-bottom: 10px;
245
- font-size: 15px;
246
- color: #1a2e60;
301
+ font-family: var(--sans);
302
+ font-size: 14px;
303
+ font-weight: 600;
304
+ color: var(--text);
305
+ margin: 0 0 12px;
247
306
  }
307
+ .card ul {
308
+ padding: 0;
309
+ list-style: none;
310
+ margin: 0;
311
+ }
312
+ .card ul li {
313
+ font-size: 13px;
314
+ color: var(--muted);
315
+ line-height: 1.6;
316
+ padding: 3px 0;
317
+ display: flex;
318
+ align-items: flex-start;
319
+ gap: 8px;
320
+ }
321
+ .card ul li::before { content: '–'; opacity: 0.4; flex-shrink: 0; }
322
+ .card ul li a { color: var(--accent); text-decoration: none; }
323
+ .card ul li a:hover { text-decoration: underline; }
324
+ .card ul li strong { color: var(--text); font-weight: 600; }
248
325
 
249
- /* ── Typography ── */
326
+ /* ── SECTION LABEL ── */
327
+ .section-label {
328
+ font-family: var(--mono);
329
+ font-size: 10px;
330
+ letter-spacing: 0.2em;
331
+ text-transform: uppercase;
332
+ color: var(--muted);
333
+ margin-bottom: 32px;
334
+ display: flex;
335
+ align-items: center;
336
+ gap: 12px;
337
+ }
338
+ .section-label::after { content: ''; flex: 1; height: 1px; background: var(--border); }
250
339
 
340
+ /* ── SURFACE (doc sections) ── */
341
+ .surface {
342
+ background: var(--surface);
343
+ border: 1px solid var(--border);
344
+ border-radius: 20px;
345
+ padding: 36px;
346
+ }
347
+
348
+ /* ── TYPOGRAPHY ── */
251
349
  h2 {
252
- margin-top: 0;
253
- font-size: 26px;
350
+ font-family: var(--sans);
351
+ font-size: 28px;
254
352
  font-weight: 800;
353
+ color: var(--text);
255
354
  letter-spacing: -0.3px;
256
- color: #111827;
355
+ margin: 0 0 12px;
257
356
  }
258
357
 
259
358
  h3 {
260
- margin-top: 28px;
261
- margin-bottom: 10px;
359
+ font-family: var(--sans);
262
360
  font-size: 17px;
263
- font-weight: 700;
264
- color: #1a2e60;
361
+ font-weight: 600;
362
+ color: var(--text);
363
+ margin: 32px 0 10px;
265
364
  }
266
365
 
366
+ h3:first-of-type { margin-top: 20px; }
367
+
267
368
  h4 {
268
- margin: 0 0 6px;
369
+ font-family: var(--sans);
269
370
  font-size: 14px;
270
371
  font-weight: 700;
271
- color: #1f3a8a;
372
+ color: var(--text);
373
+ margin: 0 0 6px;
272
374
  }
273
375
 
274
- a {
275
- color: #2647a8;
276
- text-decoration-thickness: 1px;
277
- text-underline-offset: 2px;
278
- }
376
+ p { line-height: 1.65; color: var(--muted); margin: 0 0 14px; }
377
+ p:last-child { margin-bottom: 0; }
279
378
 
280
- /* ── Surface (doc sections) ── */
379
+ a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }
380
+ a:hover { color: var(--text); }
281
381
 
282
- .surface {
283
- background: rgba(255, 255, 255, 0.9);
284
- border: 1px solid #dae2f5;
285
- border-radius: 20px;
286
- padding: 32px;
287
- box-shadow: 0 8px 32px rgba(18, 33, 73, 0.07);
382
+ /* ── EYEBROW ── */
383
+ .eyebrow {
384
+ display: inline-flex;
385
+ align-items: center;
386
+ gap: 6px;
387
+ font-family: var(--mono);
388
+ font-size: 11px;
389
+ letter-spacing: 0.1em;
390
+ text-transform: uppercase;
391
+ color: var(--accent);
392
+ border: 1px solid rgba(0,229,160,0.25);
393
+ background: rgba(0,229,160,0.06);
394
+ border-radius: 999px;
395
+ padding: 4px 12px;
396
+ margin: 0 0 12px;
288
397
  }
289
398
 
290
- /* ── Doc cards ── */
399
+ /* ── BADGES ── */
400
+ .badge {
401
+ display: inline-block;
402
+ font-family: var(--mono);
403
+ font-size: 10px;
404
+ letter-spacing: 0.08em;
405
+ text-transform: uppercase;
406
+ background: rgba(124,109,255,0.15);
407
+ color: var(--accent2);
408
+ border: 1px solid rgba(124,109,255,0.25);
409
+ border-radius: 999px;
410
+ padding: 2px 9px;
411
+ vertical-align: middle;
412
+ margin-left: 8px;
413
+ }
414
+ .badge.new {
415
+ background: rgba(0,229,160,0.1);
416
+ color: var(--accent);
417
+ border-color: rgba(0,229,160,0.25);
418
+ }
419
+ .badge.stable {
420
+ background: rgba(245,158,11,0.1);
421
+ color: var(--amber);
422
+ border-color: rgba(245,158,11,0.25);
423
+ }
291
424
 
425
+ /* ── DOC CARDS ── */
292
426
  .docs-grid {
293
427
  display: grid;
294
428
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
@@ -297,193 +431,415 @@ a {
297
431
  }
298
432
 
299
433
  .doc-card {
300
- border: 1px solid #dae2f5;
301
- background: linear-gradient(145deg, #f8faff, #eef3ff);
434
+ background: var(--surface2);
435
+ border: 1px solid var(--border);
302
436
  border-radius: 14px;
303
- padding: 14px 16px;
304
- box-shadow: 0 2px 8px rgba(18, 33, 73, 0.04);
305
- transition: box-shadow 0.2s;
306
- }
307
-
308
- .doc-card:hover {
309
- box-shadow: 0 6px 18px rgba(18, 33, 73, 0.09);
310
- }
311
-
312
- .doc-card p {
313
- margin: 0;
314
- font-size: 14px;
315
- color: #374769;
316
- line-height: 1.55;
437
+ padding: 16px;
438
+ transition: border-color 0.2s;
317
439
  }
440
+ .doc-card:hover { border-color: var(--border-bright); }
441
+ .doc-card h4 { color: var(--accent2); margin-bottom: 8px; }
442
+ .doc-card p { font-size: 13px; color: var(--muted); margin: 0; }
318
443
 
319
- /* ── Code blocks ── */
320
-
444
+ /* ── CODE ── */
321
445
  pre {
322
446
  overflow: auto;
323
447
  border-radius: 12px;
324
- background: #0f1117;
325
- border: 1px solid #1e2535;
448
+ background: var(--surface2);
449
+ border: 1px solid var(--border);
326
450
  padding: 18px 20px;
327
- line-height: 1.55;
451
+ line-height: 1.6;
328
452
  margin: 14px 0 20px;
329
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
330
453
  }
331
454
 
332
455
  pre code {
333
456
  color: #c9d3f0;
334
- font-size: 13.5px;
457
+ font-family: var(--mono);
458
+ font-size: 13px;
335
459
  background: none;
336
460
  padding: 0;
337
461
  border-radius: 0;
462
+ border: none;
338
463
  }
339
464
 
340
- code {
341
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
342
- font-size: 0.875em;
343
- }
465
+ code { font-family: var(--mono); font-size: 0.875em; }
344
466
 
345
467
  :not(pre) > code {
346
- background: #eef1fb;
347
- color: #1e40af;
468
+ background: rgba(124,109,255,0.1);
469
+ color: var(--accent2);
348
470
  border-radius: 5px;
349
471
  padding: 2px 6px;
350
- border: 1px solid #d4dcf5;
472
+ border: 1px solid rgba(124,109,255,0.2);
351
473
  font-size: 0.82em;
352
474
  }
353
475
 
354
- /* ── Lists ── */
355
-
356
- ol {
357
- padding-left: 20px;
358
- line-height: 1.7;
359
- }
360
-
361
- ul {
362
- padding-left: 18px;
363
- line-height: 1.7;
364
- }
365
-
366
- li {
367
- margin: 6px 0;
368
- color: #2c3e62;
369
- }
370
-
371
- /* ── Table ── */
476
+ /* ── LISTS ── */
477
+ ol { padding-left: 20px; line-height: 1.7; }
478
+ ul { padding-left: 18px; line-height: 1.7; }
479
+ li { margin: 6px 0; color: var(--muted); }
480
+ li strong { color: var(--text); }
481
+ li code { color: var(--accent2); }
482
+ .surface li a { color: var(--accent); }
372
483
 
484
+ /* ── TABLE ── */
373
485
  table {
374
486
  width: 100%;
375
487
  border-collapse: collapse;
376
488
  margin: 14px 0 22px;
377
- font-size: 14px;
489
+ font-size: 13px;
378
490
  border-radius: 10px;
379
491
  overflow: hidden;
380
- border: 1px solid #dae2f5;
381
- box-shadow: 0 2px 8px rgba(18, 33, 73, 0.04);
492
+ border: 1px solid var(--border);
382
493
  }
383
-
384
- table th,
385
- table td {
494
+ table th, table td {
386
495
  text-align: left;
387
496
  padding: 10px 14px;
388
- border-bottom: 1px solid #e8eef8;
497
+ border-bottom: 1px solid var(--border);
389
498
  }
390
-
391
499
  table th {
392
- background: linear-gradient(135deg, #eef2ff, #e4ecff);
500
+ background: var(--surface2);
501
+ font-family: var(--mono);
393
502
  font-weight: 700;
394
- font-size: 12px;
503
+ font-size: 11px;
395
504
  text-transform: uppercase;
396
- letter-spacing: 0.05em;
397
- color: #2647a8;
505
+ letter-spacing: 0.08em;
506
+ color: var(--muted);
398
507
  }
508
+ table tr:last-child td { border-bottom: none; }
509
+ table tr:hover td { background: var(--surface2); }
510
+ table td { color: var(--muted); }
511
+ table td code { color: var(--accent); background: none; border: none; padding: 0; }
399
512
 
400
- table tr:last-child td {
401
- border-bottom: none;
513
+ /* ── DELIVERY GRID ── */
514
+ .delivery-grid {
515
+ display: grid;
516
+ grid-template-columns: 1fr 1fr;
517
+ gap: 16px;
518
+ margin-bottom: 16px;
402
519
  }
403
520
 
404
- table tr:hover td {
405
- background: #f8faff;
406
- }
521
+ .card-ext::before { background: radial-gradient(ellipse at top left, rgba(124,109,255,0.08), transparent 60%); }
522
+ .card-ext { border-color: rgba(124,109,255,0.2); }
523
+ .card-ext:hover { border-color: rgba(124,109,255,0.4); }
407
524
 
408
- /* ── Badge ── */
525
+ .card-lib::before { background: radial-gradient(ellipse at top right, rgba(0,229,160,0.08), transparent 60%); }
526
+ .card-lib { border-color: rgba(0,229,160,0.2); }
527
+ .card-lib:hover { border-color: rgba(0,229,160,0.4); }
409
528
 
410
- .badge {
529
+ .card-icon { font-size: 28px; margin-bottom: 14px; display: block; }
530
+ .card-title { font-family: var(--sans); font-size: 18px; font-weight: 600; margin-bottom: 6px; color: var(--text); }
531
+ .card-sub { font-family: var(--mono); font-size: 11px; color: var(--muted); margin-bottom: 14px; }
532
+ .card-desc { font-size: 13px; color: var(--muted); line-height: 1.6; }
533
+
534
+ /* ── TAGS ── */
535
+ .tag {
411
536
  display: inline-block;
537
+ font-family: var(--mono);
412
538
  font-size: 10px;
413
- font-weight: 700;
414
- text-transform: uppercase;
415
- letter-spacing: 0.08em;
416
- background: linear-gradient(135deg, #1e3faa, #2952cc);
417
- color: #fff;
418
- border-radius: 999px;
419
- padding: 3px 9px;
420
- vertical-align: middle;
421
- margin-left: 8px;
422
- box-shadow: 0 2px 6px rgba(30, 63, 170, 0.3);
539
+ padding: 3px 8px;
540
+ border-radius: 4px;
541
+ margin-top: 12px;
542
+ margin-right: 4px;
543
+ letter-spacing: 0.05em;
423
544
  }
424
-
425
- .badge.new {
426
- background: linear-gradient(135deg, #15803d, #16a34a);
427
- box-shadow: 0 2px 6px rgba(21, 128, 61, 0.3);
545
+ .tag-purple { background: rgba(124,109,255,0.15); color: var(--accent2); border: 1px solid rgba(124,109,255,0.2); }
546
+ .tag-green { background: rgba(0,229,160,0.1); color: var(--accent); border: 1px solid rgba(0,229,160,0.2); }
547
+ .tag-amber { background: rgba(245,158,11,0.1); color: var(--amber); border: 1px solid rgba(245,158,11,0.2); }
548
+ .tag-red { background: rgba(255,107,107,0.1); color: var(--accent3); border: 1px solid rgba(255,107,107,0.2); }
549
+
550
+ /* ── CONNECTOR ── */
551
+ .connector { display: flex; align-items: center; justify-content: center; padding: 4px 0; position: relative; }
552
+ .connector-line {
553
+ width: 1px; height: 40px;
554
+ background: linear-gradient(to bottom, var(--border-bright), transparent);
555
+ position: relative;
556
+ }
557
+ .connector-line::after {
558
+ content: ''; position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%);
559
+ border-left: 5px solid transparent; border-right: 5px solid transparent;
560
+ border-top: 7px solid rgba(255,255,255,0.2);
561
+ }
562
+ .connector-label {
563
+ position: absolute;
564
+ font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em;
565
+ color: var(--muted); background: var(--bg); padding: 2px 8px;
566
+ border-radius: 100px; border: 1px solid var(--border); white-space: nowrap;
567
+ }
568
+
569
+ /* ── FLOW STEPS ── */
570
+ .flow-section { margin-bottom: 16px; }
571
+ .flow-header {
572
+ background: var(--surface);
573
+ border: 1px solid var(--border);
574
+ border-radius: 14px 14px 0 0;
575
+ padding: 16px 24px;
576
+ display: flex; align-items: center; gap: 10px;
577
+ border-bottom: 1px solid var(--border);
578
+ }
579
+ .flow-header-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); animation: dot-pulse 2s infinite; }
580
+ .flow-header-title { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--accent); }
581
+ .flow-steps {
582
+ background: var(--surface);
583
+ border: 1px solid var(--border);
584
+ border-top: none;
585
+ border-radius: 0 0 14px 14px;
586
+ padding: 24px;
587
+ display: grid;
588
+ grid-template-columns: repeat(4, 1fr);
589
+ gap: 0;
590
+ position: relative;
591
+ }
592
+ .flow-steps::before {
593
+ content: '';
594
+ position: absolute;
595
+ top: 58px;
596
+ left: calc(12.5% + 12px);
597
+ right: calc(12.5% + 12px);
598
+ height: 1px;
599
+ background: linear-gradient(90deg, rgba(0,229,160,0.4), rgba(124,109,255,0.4), rgba(245,158,11,0.4), rgba(255,107,107,0.4));
600
+ z-index: 0;
601
+ }
602
+ .step {
603
+ display: flex; flex-direction: column; align-items: center; text-align: center;
604
+ padding: 0 8px; position: relative; z-index: 1;
605
+ }
606
+ .step-num {
607
+ width: 48px; height: 48px; border-radius: 50%;
608
+ display: flex; align-items: center; justify-content: center;
609
+ font-family: var(--mono); font-size: 13px; font-weight: 700;
610
+ margin-bottom: 16px; position: relative; transition: transform 0.3s; border: 1.5px solid;
611
+ }
612
+ .step:hover .step-num { transform: scale(1.12); }
613
+ .step-num-1 { background: rgba(0,229,160,0.1); border-color: var(--accent); color: var(--accent); box-shadow: 0 0 20px rgba(0,229,160,0.2); }
614
+ .step-num-2 { background: rgba(124,109,255,0.1); border-color: var(--accent2); color: var(--accent2); box-shadow: 0 0 20px rgba(124,109,255,0.2); }
615
+ .step-num-3 { background: rgba(245,158,11,0.1); border-color: var(--amber); color: var(--amber); box-shadow: 0 0 20px rgba(245,158,11,0.2); }
616
+ .step-num-4 { background: rgba(255,107,107,0.1); border-color: var(--accent3); color: var(--accent3); box-shadow: 0 0 20px rgba(255,107,107,0.2); }
617
+ .step-title { font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--text); }
618
+ .step-file { font-family: var(--mono); font-size: 9px; color: var(--muted); margin-bottom: 8px; }
619
+ .step-desc { font-size: 11px; color: var(--muted); line-height: 1.5; }
620
+
621
+ /* ── CORE MODULE CARDS ── */
622
+ .core-grid {
623
+ display: grid;
624
+ grid-template-columns: repeat(3, 1fr);
625
+ gap: 12px;
626
+ margin-bottom: 16px;
428
627
  }
429
-
430
- /* ── Contact ── */
431
-
432
- .contact-note {
433
- margin-top: 14px;
434
- color: #4b5d84;
435
- font-size: 14px;
628
+ .module-card {
629
+ background: var(--surface);
630
+ border: 1px solid var(--border);
631
+ border-radius: 14px;
632
+ padding: 22px 20px;
633
+ position: relative;
634
+ overflow: hidden;
635
+ transition: border-color 0.3s, transform 0.3s;
636
+ }
637
+ .module-card:hover { transform: translateY(-3px); }
638
+ .module-card::after {
639
+ content: ''; position: absolute; top: 0; left: 0; right: 0;
640
+ height: 2px; border-radius: 14px 14px 0 0;
641
+ }
642
+ .mc-blue::after { background: linear-gradient(90deg, var(--accent2), transparent); }
643
+ .mc-blue:hover { border-color: rgba(124,109,255,0.35); }
644
+ .mc-green::after { background: linear-gradient(90deg, var(--accent), transparent); }
645
+ .mc-green:hover { border-color: rgba(0,229,160,0.35); }
646
+ .mc-amber::after { background: linear-gradient(90deg, var(--amber), transparent); }
647
+ .mc-amber:hover { border-color: rgba(245,158,11,0.35); }
648
+ .module-name { font-family: var(--mono); font-size: 13px; font-weight: 700; margin-bottom: 6px; }
649
+ .mc-blue .module-name { color: var(--accent2); }
650
+ .mc-green .module-name { color: var(--accent); }
651
+ .mc-amber .module-name { color: var(--amber); }
652
+ .module-fn { font-family: var(--mono); font-size: 10px; color: var(--muted); margin-bottom: 12px; }
653
+ .module-items { list-style: none; display: flex; flex-direction: column; gap: 5px; padding: 0; margin: 0; }
654
+ .module-items li { font-size: 11px; color: var(--muted); display: flex; align-items: flex-start; gap: 7px; line-height: 1.4; }
655
+ .module-items li::before { content: '–'; opacity: 0.4; flex-shrink: 0; }
656
+
657
+ /* ── SAFETY + PLANNER GRID ── */
658
+ .shared-grid {
659
+ display: grid;
660
+ grid-template-columns: 1fr 1fr 1fr;
661
+ gap: 12px;
662
+ margin-bottom: 16px;
663
+ }
664
+ .risk-panel {
665
+ background: var(--surface); border: 1px solid var(--border);
666
+ border-radius: 14px; padding: 22px 20px; grid-column: span 1;
667
+ }
668
+ .risk-title { font-family: var(--mono); font-size: 11px; color: var(--muted); margin-bottom: 16px; letter-spacing: 0.08em; }
669
+ .risk-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
670
+ .risk-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
671
+ .risk-label { font-size: 12px; font-weight: 600; min-width: 54px; }
672
+ .risk-bar-wrap { flex: 1; height: 4px; background: rgba(255,255,255,0.06); border-radius: 2px; overflow: hidden; }
673
+ .risk-bar { height: 100%; border-radius: 2px; }
674
+ .risk-note { font-size: 10px; color: var(--muted); }
675
+
676
+ .planner-panel {
677
+ background: var(--surface); border: 1px solid var(--border);
678
+ border-radius: 14px; padding: 22px 20px; grid-column: span 2;
679
+ }
680
+ .planner-tabs { display: flex; gap: 8px; margin-bottom: 18px; }
681
+ .ptab {
682
+ flex: 1; padding: 8px 12px; border-radius: 8px;
683
+ font-family: var(--mono); font-size: 11px; text-align: center;
684
+ cursor: pointer; border: 1px solid var(--border);
685
+ background: transparent; color: var(--muted); transition: all 0.2s; letter-spacing: 0.05em;
686
+ }
687
+ .ptab.active-h { background: rgba(0,229,160,0.1); border-color: rgba(0,229,160,0.3); color: var(--accent); }
688
+ .ptab.active-w { background: rgba(124,109,255,0.1); border-color: rgba(124,109,255,0.3); color: var(--accent2); }
689
+ .ptab:not(.active-h):not(.active-w):hover { border-color: var(--border-bright); color: var(--text); }
690
+ .pmode { display: none; }
691
+ .pmode.active { display: block; }
692
+ .pmode-title { font-size: 14px; font-weight: 600; margin-bottom: 6px; color: var(--text); }
693
+ .pmode-desc { font-size: 12px; color: var(--muted); line-height: 1.6; margin-bottom: 12px; }
694
+ .code-chip {
695
+ font-family: var(--mono); font-size: 10px; background: var(--surface2);
696
+ border: 1px solid var(--border); border-radius: 6px; padding: 8px 12px;
697
+ color: var(--muted); line-height: 1.7; display: block;
698
+ }
699
+ .kw { color: var(--accent2); }
700
+ .str { color: var(--accent); }
701
+ .cm { color: rgba(107,114,128,0.7); }
702
+ .num { color: var(--amber); }
703
+
704
+ /* ── OUTCOMES ── */
705
+ .outcomes-grid {
706
+ display: grid;
707
+ grid-template-columns: repeat(3, 1fr);
708
+ gap: 12px;
709
+ margin-bottom: 40px;
710
+ }
711
+ .outcome-card {
712
+ background: var(--surface); border: 1px solid var(--border);
713
+ border-radius: 14px; padding: 22px; text-align: center; transition: transform 0.3s;
714
+ }
715
+ .outcome-card:hover { transform: translateY(-3px); }
716
+ .outcome-icon { font-size: 32px; margin-bottom: 12px; display: block; }
717
+ .outcome-title { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
718
+ .outcome-desc { font-size: 11px; color: var(--muted); line-height: 1.6; }
719
+ .oc-safe { border-color: rgba(0,229,160,0.2); }
720
+ .oc-safe:hover { border-color: rgba(0,229,160,0.4); }
721
+ .oc-review { border-color: rgba(245,158,11,0.2); }
722
+ .oc-review:hover { border-color: rgba(245,158,11,0.4); }
723
+ .oc-block { border-color: rgba(255,107,107,0.2); }
724
+ .oc-block:hover { border-color: rgba(255,107,107,0.4); }
725
+
726
+ /* ── INSTALL STRIP ── */
727
+ .install-strip {
728
+ display: flex;
729
+ align-items: center;
730
+ justify-content: space-between;
731
+ background: var(--surface);
732
+ border: 1px solid rgba(0,229,160,0.2);
733
+ border-radius: 14px;
734
+ padding: 20px 24px;
735
+ margin-bottom: 12px;
736
+ gap: 16px;
737
+ flex-wrap: wrap;
436
738
  }
437
-
438
- /* ── Footer ── */
439
-
739
+ .install-left { display: flex; flex-direction: column; gap: 10px; }
740
+ .install-pkg { font-family: var(--mono); font-size: 15px; }
741
+ .install-scope { color: var(--muted); }
742
+ .install-name { color: var(--accent); font-weight: 700; }
743
+ .install-meta { display: flex; gap: 6px; flex-wrap: wrap; }
744
+ .install-cmd-wrap {
745
+ display: flex; align-items: center; gap: 10px;
746
+ background: var(--surface2); border: 1px solid var(--border);
747
+ border-radius: 10px; padding: 12px 16px; flex: 1; min-width: 260px;
748
+ }
749
+ .install-prompt { font-family: var(--mono); color: var(--accent); font-size: 13px; }
750
+ .install-cmd { font-family: var(--mono); font-size: 13px; color: var(--text); flex: 1; }
751
+ .copy-btn {
752
+ display: flex; align-items: center; gap: 5px;
753
+ background: transparent; border: 1px solid var(--border);
754
+ border-radius: 6px; padding: 5px 10px;
755
+ color: var(--muted); cursor: pointer; font-family: var(--mono);
756
+ font-size: 10px; letter-spacing: 0.05em; transition: all 0.2s;
757
+ }
758
+ .copy-btn:hover { border-color: var(--accent); color: var(--accent); }
759
+ .copy-btn svg { flex-shrink: 0; }
760
+
761
+ /* ── SNIPPET PANEL ── */
762
+ .snippet-panel {
763
+ background: var(--surface); border: 1px solid var(--border);
764
+ border-radius: 14px; overflow: hidden; margin-bottom: 40px;
765
+ }
766
+ .snippet-tabs {
767
+ display: flex; border-bottom: 1px solid var(--border);
768
+ padding: 0 4px; gap: 2px; overflow-x: auto; scrollbar-width: none;
769
+ }
770
+ .snippet-tabs::-webkit-scrollbar { display: none; }
771
+ .stab {
772
+ font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em;
773
+ padding: 12px 16px; background: transparent; border: none;
774
+ color: var(--muted); cursor: pointer; white-space: nowrap;
775
+ border-bottom: 2px solid transparent; margin-bottom: -1px;
776
+ transition: color 0.2s, border-color 0.2s;
777
+ }
778
+ .stab:hover { color: var(--text); }
779
+ .stab-active { color: var(--accent); border-bottom-color: var(--accent); }
780
+ .snippet-body { padding: 24px 28px; min-height: 220px; }
781
+ .snippet { display: none; }
782
+ .snippet.active { display: block; }
783
+ .snippet-line { font-family: var(--mono); font-size: 13px; line-height: 1.9; color: var(--text); }
784
+ .snippet-comment { font-family: var(--mono); font-size: 12px; line-height: 1.9; color: rgba(107,114,128,0.7); }
785
+
786
+ /* ── EXPORTS ── */
787
+ .exports-row {
788
+ border-top: 1px solid var(--border); padding: 16px 28px;
789
+ display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
790
+ }
791
+ .exports-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
792
+ .exports-chips { display: flex; flex-wrap: wrap; gap: 6px; }
793
+ .exp-chip { font-family: var(--mono); font-size: 10px; padding: 3px 9px; border-radius: 5px; border: 1px solid; }
794
+ .exp-fn { color: var(--accent); border-color: rgba(0,229,160,0.25); background: rgba(0,229,160,0.07); }
795
+ .exp-type { color: var(--accent2); border-color: rgba(124,109,255,0.25); background: rgba(124,109,255,0.07); }
796
+
797
+ /* ── CTA ROW ── */
798
+ .cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 40px; }
799
+
800
+ /* ── CONTACT ── */
801
+ .contact-note { margin-top: 14px; color: var(--muted); font-size: 14px; }
802
+
803
+ /* ── FOOTER ── */
440
804
  .footer {
441
- border-top: 1px solid #dae2f5;
442
- padding: 24px 0;
443
- color: #6b7fa8;
444
- font-size: 14px;
445
- background: rgba(255,255,255,0.5);
446
- }
447
-
448
- /* ── Responsive ── */
449
-
450
- @media (max-width: 720px) {
451
- .header-row {
452
- min-height: 56px;
453
- flex-wrap: wrap;
454
- padding: 10px 0;
455
- gap: 8px;
456
- }
457
-
458
- .nav {
459
- gap: 2px;
460
- }
461
-
462
- .nav a {
463
- font-size: 13px;
464
- padding: 5px 8px;
465
- }
466
-
467
- .hero {
468
- padding-top: 48px;
469
- padding-bottom: 48px;
470
- }
471
-
472
- .stats {
473
- grid-template-columns: repeat(3, 1fr);
474
- }
475
-
476
- .surface {
477
- padding: 20px 16px;
478
- border-radius: 16px;
479
- }
480
-
481
- h2 {
482
- font-size: 22px;
483
- }
484
-
485
- pre {
486
- font-size: 13px;
487
- padding: 14px 16px;
488
- }
805
+ border-top: 1px solid var(--border);
806
+ padding: 28px 0;
807
+ text-align: center;
808
+ position: relative;
809
+ z-index: 1;
810
+ }
811
+ .footer p { font-family: var(--mono); font-size: 12px; color: var(--muted); margin: 0; }
812
+ .footer a { color: var(--muted); text-decoration: none; }
813
+ .footer a:hover { color: var(--text); }
814
+
815
+ /* ── ANIMATIONS ── */
816
+ .fade-up {
817
+ opacity: 0;
818
+ transform: translateY(24px);
819
+ animation: fadeUp 0.6s ease forwards;
820
+ animation-play-state: paused;
821
+ }
822
+ @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }
823
+ .delay-1 { animation-delay: 0.1s; }
824
+ .delay-2 { animation-delay: 0.2s; }
825
+ .delay-3 { animation-delay: 0.35s; }
826
+ .delay-4 { animation-delay: 0.5s; }
827
+ .delay-5 { animation-delay: 0.65s; }
828
+ .delay-6 { animation-delay: 0.8s; }
829
+
830
+ /* ── SCROLLBAR ── */
831
+ ::-webkit-scrollbar { width: 6px; }
832
+ ::-webkit-scrollbar-track { background: transparent; }
833
+ ::-webkit-scrollbar-thumb { background: var(--border-bright); border-radius: 3px; }
834
+
835
+ /* ── RESPONSIVE ── */
836
+ @media (max-width: 700px) {
837
+ .delivery-grid, .core-grid, .shared-grid, .outcomes-grid { grid-template-columns: 1fr; }
838
+ .flow-steps { grid-template-columns: 1fr 1fr; gap: 24px; }
839
+ .flow-steps::before { display: none; }
840
+ .planner-panel { grid-column: span 1; }
841
+ .surface { padding: 20px 16px; }
842
+ h2 { font-size: 22px; }
843
+ .nav a { font-size: 10px; padding: 5px 7px; }
844
+ .hero h1 { font-size: clamp(30px, 8vw, 48px); }
489
845
  }