@akshayram1/omnibrowser-agent 0.2.28 → 0.2.32

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 DELETED
@@ -1,845 +0,0 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Quantico:wght@400;700&display=swap');
2
-
3
- *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
4
-
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; }
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 ── */
62
- .wrap {
63
- position: relative;
64
- z-index: 1;
65
- width: min(1100px, 92vw);
66
- margin: 0 auto;
67
- }
68
-
69
- /* ── HEADER ── */
70
- .header {
71
- position: sticky;
72
- top: 0;
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;
78
- }
79
-
80
- .header-row {
81
- min-height: 60px;
82
- display: flex;
83
- align-items: center;
84
- justify-content: space-between;
85
- gap: 16px;
86
- }
87
-
88
- .brand {
89
- font-family: var(--mono);
90
- font-weight: 700;
91
- font-size: 13px;
92
- text-decoration: none;
93
- color: var(--accent);
94
- letter-spacing: 0.05em;
95
- white-space: nowrap;
96
- }
97
-
98
- .nav {
99
- display: flex;
100
- flex-wrap: wrap;
101
- gap: 2px;
102
- }
103
-
104
- .nav a {
105
- text-decoration: none;
106
- color: var(--muted);
107
- font-family: var(--mono);
108
- font-size: 11px;
109
- letter-spacing: 0.04em;
110
- padding: 6px 11px;
111
- border-radius: 8px;
112
- transition: color 0.15s, background 0.15s;
113
- }
114
-
115
- .nav a:hover {
116
- color: var(--text);
117
- background: var(--surface2);
118
- }
119
-
120
- /* ── MAIN ── */
121
- main {
122
- position: relative;
123
- z-index: 1;
124
- }
125
-
126
- /* ── SECTIONS ── */
127
- .section { padding: 80px 0; }
128
-
129
- /* ── HERO ── */
130
- .hero { padding: 90px 0 60px; }
131
-
132
- .badge-pill {
133
- display: inline-flex;
134
- align-items: center;
135
- gap: 8px;
136
- font-family: var(--mono);
137
- font-size: 11px;
138
- letter-spacing: 0.12em;
139
- text-transform: uppercase;
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); }
157
- }
158
-
159
- .hero h1 {
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%);
168
- -webkit-background-clip: text;
169
- -webkit-text-fill-color: transparent;
170
- background-clip: text;
171
- }
172
-
173
- .hero > .wrap > p {
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;
180
- }
181
-
182
- /* ── CHIPS ── */
183
- .chips {
184
- margin: 20px 0 24px;
185
- display: flex;
186
- flex-wrap: wrap;
187
- gap: 8px;
188
- }
189
-
190
- .chips span {
191
- font-family: var(--mono);
192
- font-size: 11px;
193
- color: var(--muted);
194
- background: var(--surface);
195
- border: 1px solid var(--border);
196
- border-radius: 999px;
197
- padding: 4px 12px;
198
- letter-spacing: 0.03em;
199
- }
200
-
201
- /* ── BUTTONS ── */
202
- .actions {
203
- margin: 24px 0 32px;
204
- display: flex;
205
- flex-wrap: wrap;
206
- gap: 10px;
207
- }
208
-
209
- .btn {
210
- display: inline-flex;
211
- align-items: center;
212
- gap: 8px;
213
- font-family: var(--mono);
214
- font-size: 12px;
215
- padding: 11px 22px;
216
- border-radius: 10px;
217
- text-decoration: none;
218
- letter-spacing: 0.05em;
219
- transition: all 0.2s;
220
- border: 1px solid var(--border-bright);
221
- color: var(--text);
222
- background: transparent;
223
- }
224
- .btn:hover { border-color: var(--accent2); color: var(--accent2); }
225
-
226
- .btn.primary {
227
- background: var(--accent);
228
- color: #000;
229
- border-color: var(--accent);
230
- font-weight: 700;
231
- }
232
- .btn.primary:hover {
233
- background: #00ffc2;
234
- box-shadow: 0 0 30px rgba(0,229,160,0.3);
235
- border-color: #00ffc2;
236
- color: #000;
237
- }
238
-
239
- /* ── STATS ── */
240
- .stats {
241
- display: flex;
242
- flex-wrap: wrap;
243
- gap: 10px;
244
- margin-bottom: 0;
245
- }
246
-
247
- .stat {
248
- background: var(--surface);
249
- border: 1px solid var(--border);
250
- border-radius: 14px;
251
- padding: 14px 20px;
252
- display: flex;
253
- flex-direction: column;
254
- gap: 3px;
255
- min-width: 110px;
256
- }
257
-
258
- .stat strong {
259
- font-family: var(--mono);
260
- font-size: 22px;
261
- font-weight: 700;
262
- color: var(--accent);
263
- }
264
-
265
- .stat span {
266
- font-size: 11px;
267
- color: var(--muted);
268
- }
269
-
270
- /* ── HOME GRID CARDS ── */
271
- .home-grid {
272
- margin-top: 32px;
273
- display: grid;
274
- gap: 14px;
275
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
276
- }
277
-
278
- .card {
279
- background: var(--surface);
280
- border: 1px solid var(--border);
281
- border-radius: 16px;
282
- padding: 22px;
283
- position: relative;
284
- overflow: hidden;
285
- transition: border-color 0.3s, transform 0.3s;
286
- }
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%);
297
- }
298
- .card:hover::before { opacity: 1; }
299
-
300
- .card h3 {
301
- font-family: var(--sans);
302
- font-size: 14px;
303
- font-weight: 600;
304
- color: var(--text);
305
- margin: 0 0 12px;
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; }
325
-
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); }
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 ── */
349
- h2 {
350
- font-family: var(--sans);
351
- font-size: 28px;
352
- font-weight: 800;
353
- color: var(--text);
354
- letter-spacing: -0.3px;
355
- margin: 0 0 12px;
356
- }
357
-
358
- h3 {
359
- font-family: var(--sans);
360
- font-size: 17px;
361
- font-weight: 600;
362
- color: var(--text);
363
- margin: 32px 0 10px;
364
- }
365
-
366
- h3:first-of-type { margin-top: 20px; }
367
-
368
- h4 {
369
- font-family: var(--sans);
370
- font-size: 14px;
371
- font-weight: 700;
372
- color: var(--text);
373
- margin: 0 0 6px;
374
- }
375
-
376
- p { line-height: 1.65; color: var(--muted); margin: 0 0 14px; }
377
- p:last-child { margin-bottom: 0; }
378
-
379
- a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }
380
- a:hover { color: var(--text); }
381
-
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;
397
- }
398
-
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
- }
424
-
425
- /* ── DOC CARDS ── */
426
- .docs-grid {
427
- display: grid;
428
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
429
- gap: 12px;
430
- margin: 14px 0 20px;
431
- }
432
-
433
- .doc-card {
434
- background: var(--surface2);
435
- border: 1px solid var(--border);
436
- border-radius: 14px;
437
- padding: 16px;
438
- transition: border-color 0.2s;
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; }
443
-
444
- /* ── CODE ── */
445
- pre {
446
- overflow: auto;
447
- border-radius: 12px;
448
- background: var(--surface2);
449
- border: 1px solid var(--border);
450
- padding: 18px 20px;
451
- line-height: 1.6;
452
- margin: 14px 0 20px;
453
- }
454
-
455
- pre code {
456
- color: #c9d3f0;
457
- font-family: var(--mono);
458
- font-size: 13px;
459
- background: none;
460
- padding: 0;
461
- border-radius: 0;
462
- border: none;
463
- }
464
-
465
- code { font-family: var(--mono); font-size: 0.875em; }
466
-
467
- :not(pre) > code {
468
- background: rgba(124,109,255,0.1);
469
- color: var(--accent2);
470
- border-radius: 5px;
471
- padding: 2px 6px;
472
- border: 1px solid rgba(124,109,255,0.2);
473
- font-size: 0.82em;
474
- }
475
-
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); }
483
-
484
- /* ── TABLE ── */
485
- table {
486
- width: 100%;
487
- border-collapse: collapse;
488
- margin: 14px 0 22px;
489
- font-size: 13px;
490
- border-radius: 10px;
491
- overflow: hidden;
492
- border: 1px solid var(--border);
493
- }
494
- table th, table td {
495
- text-align: left;
496
- padding: 10px 14px;
497
- border-bottom: 1px solid var(--border);
498
- }
499
- table th {
500
- background: var(--surface2);
501
- font-family: var(--mono);
502
- font-weight: 700;
503
- font-size: 11px;
504
- text-transform: uppercase;
505
- letter-spacing: 0.08em;
506
- color: var(--muted);
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; }
512
-
513
- /* ── DELIVERY GRID ── */
514
- .delivery-grid {
515
- display: grid;
516
- grid-template-columns: 1fr 1fr;
517
- gap: 16px;
518
- margin-bottom: 16px;
519
- }
520
-
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); }
524
-
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); }
528
-
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 {
536
- display: inline-block;
537
- font-family: var(--mono);
538
- font-size: 10px;
539
- padding: 3px 8px;
540
- border-radius: 4px;
541
- margin-top: 12px;
542
- margin-right: 4px;
543
- letter-spacing: 0.05em;
544
- }
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;
627
- }
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;
738
- }
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 ── */
804
- .footer {
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); }
845
- }