@programinglive/commiter 1.2.8 → 1.2.12

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/web/css/style.css CHANGED
@@ -1,963 +1,963 @@
1
- /* ===========================
2
- CSS Variables & Reset
3
- =========================== */
4
- :root {
5
- /* Colors */
6
- --primary: #6366f1;
7
- --primary-dark: #4f46e5;
8
- --primary-light: #818cf8;
9
- --secondary: #8b5cf6;
10
- --accent: #ec4899;
11
- --success: #10b981;
12
- --warning: #f59e0b;
13
- --error: #ef4444;
14
-
15
- /* Neutrals */
16
- --bg-primary: #0a0a0f;
17
- --bg-secondary: #13131a;
18
- --bg-tertiary: #1a1a24;
19
- --bg-card: rgba(26, 26, 36, 0.8);
20
- --bg-glass: rgba(255, 255, 255, 0.05);
21
-
22
- --text-primary: #ffffff;
23
- --text-secondary: #a1a1aa;
24
- --text-tertiary: #71717a;
25
-
26
- --border: rgba(255, 255, 255, 0.1);
27
- --border-hover: rgba(255, 255, 255, 0.2);
28
-
29
- /* Gradients */
30
- --gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
31
- --gradient-accent: linear-gradient(135deg, #ec4899 0%, #f59e0b 100%);
32
- --gradient-text: linear-gradient(135deg, #6366f1, #ec4899, #f59e0b);
33
-
34
- /* Spacing */
35
- --spacing-xs: 0.5rem;
36
- --spacing-sm: 1rem;
37
- --spacing-md: 1.5rem;
38
- --spacing-lg: 2rem;
39
- --spacing-xl: 3rem;
40
- --spacing-2xl: 4rem;
41
- --spacing-3xl: 6rem;
42
-
43
- /* Border Radius */
44
- --radius-sm: 0.5rem;
45
- --radius-md: 0.75rem;
46
- --radius-lg: 1rem;
47
- --radius-xl: 1.5rem;
48
-
49
- /* Shadows */
50
- --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1);
51
- --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.2);
52
- --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.3);
53
- --shadow-glow: 0 0 40px rgba(99, 102, 241, 0.3);
54
-
55
- /* Transitions */
56
- --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
57
- }
58
-
59
- * {
60
- margin: 0;
61
- padding: 0;
62
- box-sizing: border-box;
63
- }
64
-
65
- html {
66
- scroll-behavior: smooth;
67
- }
68
-
69
- body {
70
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
71
- background: var(--bg-primary);
72
- color: var(--text-primary);
73
- line-height: 1.6;
74
- overflow-x: hidden;
75
- }
76
-
77
- .container {
78
- max-width: 1200px;
79
- margin: 0 auto;
80
- padding: 0 var(--spacing-md);
81
- }
82
-
83
- /* ===========================
84
- Navigation
85
- =========================== */
86
- .navbar {
87
- position: fixed;
88
- top: 0;
89
- left: 0;
90
- right: 0;
91
- z-index: 1000;
92
- background: rgba(10, 10, 15, 0.8);
93
- backdrop-filter: blur(20px);
94
- border-bottom: 1px solid var(--border);
95
- padding: var(--spacing-md) 0;
96
- }
97
-
98
- .nav-content {
99
- display: flex;
100
- justify-content: space-between;
101
- align-items: center;
102
- }
103
-
104
- .logo {
105
- display: flex;
106
- align-items: center;
107
- gap: var(--spacing-xs);
108
- font-size: 1.5rem;
109
- font-weight: 700;
110
- }
111
-
112
- .logo-icon {
113
- font-size: 1.75rem;
114
- }
115
-
116
- .nav-links {
117
- display: flex;
118
- list-style: none;
119
- gap: var(--spacing-lg);
120
- align-items: center;
121
- }
122
-
123
- .nav-links a {
124
- color: var(--text-secondary);
125
- text-decoration: none;
126
- font-weight: 500;
127
- transition: var(--transition);
128
- padding: var(--spacing-xs) var(--spacing-sm);
129
- border-radius: var(--radius-sm);
130
- }
131
-
132
- .nav-links a:hover {
133
- color: var(--text-primary);
134
- background: var(--bg-glass);
135
- }
136
-
137
- .btn-github {
138
- background: var(--gradient-primary);
139
- color: white !important;
140
- padding: var(--spacing-xs) var(--spacing-md) !important;
141
- border-radius: var(--radius-md);
142
- }
143
-
144
- .mobile-menu-toggle {
145
- display: none;
146
- flex-direction: column;
147
- gap: 4px;
148
- background: none;
149
- border: none;
150
- cursor: pointer;
151
- }
152
-
153
- .mobile-menu-toggle span {
154
- width: 24px;
155
- height: 2px;
156
- background: var(--text-primary);
157
- transition: var(--transition);
158
- }
159
-
160
- /* ===========================
161
- Hero Section
162
- =========================== */
163
- .hero {
164
- padding: calc(var(--spacing-3xl) + 60px) 0 var(--spacing-3xl);
165
- position: relative;
166
- overflow: visible;
167
- }
168
-
169
- .hero .container {
170
- display: grid;
171
- grid-template-columns: 1fr 1fr;
172
- gap: var(--spacing-3xl);
173
- align-items: center;
174
- }
175
-
176
- .hero::before {
177
- content: '';
178
- position: absolute;
179
- top: -50%;
180
- right: -20%;
181
- width: 800px;
182
- height: 800px;
183
- background: radial-gradient(circle, rgba(99, 102, 241, 0.15) 0%, transparent 70%);
184
- border-radius: 50%;
185
- pointer-events: none;
186
- }
187
-
188
- .hero-content {
189
- max-width: 600px;
190
- position: relative;
191
- z-index: 1;
192
- }
193
-
194
- .hero-badge {
195
- display: inline-flex;
196
- align-items: center;
197
- gap: var(--spacing-xs);
198
- background: var(--bg-glass);
199
- border: 1px solid var(--border);
200
- padding: var(--spacing-xs) var(--spacing-md);
201
- border-radius: 2rem;
202
- font-size: 0.875rem;
203
- margin-bottom: var(--spacing-lg);
204
- animation: fadeInUp 0.6s ease-out;
205
- }
206
-
207
- .badge-dot {
208
- width: 8px;
209
- height: 8px;
210
- background: var(--success);
211
- border-radius: 50%;
212
- animation: pulse 2s infinite;
213
- }
214
-
215
- @keyframes pulse {
216
- 0%, 100% { opacity: 1; }
217
- 50% { opacity: 0.5; }
218
- }
219
-
220
- .hero-title {
221
- font-size: clamp(2.5rem, 6vw, 4rem);
222
- font-weight: 800;
223
- line-height: 1.1;
224
- margin-bottom: var(--spacing-md);
225
- animation: fadeInUp 0.6s ease-out 0.1s both;
226
- }
227
-
228
- .gradient-text {
229
- background: var(--gradient-text);
230
- -webkit-background-clip: text;
231
- -webkit-text-fill-color: transparent;
232
- background-clip: text;
233
- }
234
-
235
- .hero-subtitle {
236
- font-size: 1.25rem;
237
- color: var(--text-secondary);
238
- margin-bottom: var(--spacing-xl);
239
- line-height: 1.8;
240
- animation: fadeInUp 0.6s ease-out 0.2s both;
241
- }
242
-
243
- .hero-actions {
244
- display: flex;
245
- gap: var(--spacing-md);
246
- margin-bottom: var(--spacing-xl);
247
- animation: fadeInUp 0.6s ease-out 0.3s both;
248
- flex-wrap: wrap;
249
- }
250
-
251
- .hero-stats {
252
- display: flex;
253
- gap: var(--spacing-xl);
254
- padding-top: var(--spacing-lg);
255
- border-top: 1px solid var(--border);
256
- animation: fadeInUp 0.6s ease-out 0.4s both;
257
- }
258
-
259
- .stat-item {
260
- text-align: left;
261
- }
262
-
263
- .stat-value {
264
- font-size: 1.5rem;
265
- font-weight: 700;
266
- color: var(--primary-light);
267
- }
268
-
269
- .stat-label {
270
- font-size: 0.875rem;
271
- color: var(--text-tertiary);
272
- }
273
-
274
- @keyframes fadeInUp {
275
- from {
276
- opacity: 0;
277
- transform: translateY(20px);
278
- }
279
- to {
280
- opacity: 1;
281
- transform: translateY(0);
282
- }
283
- }
284
-
285
- /* Hero Visual */
286
- .hero-visual {
287
- position: relative;
288
- width: 100%;
289
- animation: fadeInRight 0.8s ease-out 0.5s both;
290
- }
291
-
292
- @keyframes fadeInRight {
293
- from {
294
- opacity: 0;
295
- transform: translateX(40px);
296
- }
297
- to {
298
- opacity: 1;
299
- transform: translateX(0);
300
- }
301
- }
302
-
303
- .code-window {
304
- background: var(--bg-tertiary);
305
- border: 1px solid var(--border);
306
- border-radius: var(--radius-lg);
307
- overflow: hidden;
308
- box-shadow: var(--shadow-lg);
309
- }
310
-
311
- .window-header {
312
- background: var(--bg-secondary);
313
- padding: var(--spacing-sm);
314
- display: flex;
315
- align-items: center;
316
- gap: var(--spacing-md);
317
- border-bottom: 1px solid var(--border);
318
- }
319
-
320
- .window-dots {
321
- display: flex;
322
- gap: 6px;
323
- }
324
-
325
- .window-dots span {
326
- width: 12px;
327
- height: 12px;
328
- border-radius: 50%;
329
- background: var(--text-tertiary);
330
- }
331
-
332
- .window-dots span:nth-child(1) { background: #ef4444; }
333
- .window-dots span:nth-child(2) { background: #f59e0b; }
334
- .window-dots span:nth-child(3) { background: #10b981; }
335
-
336
- .window-title {
337
- font-size: 0.875rem;
338
- color: var(--text-tertiary);
339
- }
340
-
341
- .window-content {
342
- padding: var(--spacing-md);
343
- font-family: 'Courier New', monospace;
344
- font-size: 0.875rem;
345
- max-height: none;
346
- overflow-y: auto;
347
- min-height: auto;
348
- }
349
-
350
- .code-line {
351
- margin-bottom: 0.5rem;
352
- }
353
-
354
- .prompt {
355
- color: var(--primary-light);
356
- margin-right: 0.5rem;
357
- }
358
-
359
- .output {
360
- color: var(--text-secondary);
361
- padding-left: 1.5rem;
362
- }
363
-
364
- .output.success {
365
- color: var(--success);
366
- }
367
-
368
- .cursor {
369
- color: var(--primary-light);
370
- animation: blink 1s infinite;
371
- }
372
-
373
- @keyframes blink {
374
- 0%, 50% { opacity: 1; }
375
- 51%, 100% { opacity: 0; }
376
- }
377
-
378
- /* ===========================
379
- Buttons
380
- =========================== */
381
- .btn {
382
- display: inline-flex;
383
- align-items: center;
384
- gap: var(--spacing-xs);
385
- padding: 0.875rem 1.75rem;
386
- border-radius: var(--radius-md);
387
- font-weight: 600;
388
- text-decoration: none;
389
- transition: var(--transition);
390
- border: none;
391
- cursor: pointer;
392
- font-size: 1rem;
393
- }
394
-
395
- .btn-primary {
396
- background: var(--gradient-primary);
397
- color: white;
398
- box-shadow: 0 4px 16px rgba(99, 102, 241, 0.3);
399
- }
400
-
401
- .btn-primary:hover {
402
- transform: translateY(-2px);
403
- box-shadow: 0 8px 24px rgba(99, 102, 241, 0.4);
404
- }
405
-
406
- .btn-secondary {
407
- background: var(--bg-glass);
408
- color: var(--text-primary);
409
- border: 1px solid var(--border);
410
- }
411
-
412
- .btn-secondary:hover {
413
- background: var(--bg-tertiary);
414
- border-color: var(--border-hover);
415
- }
416
-
417
- .btn-outline {
418
- background: transparent;
419
- color: var(--text-primary);
420
- border: 1px solid var(--border);
421
- }
422
-
423
- .btn-outline:hover {
424
- background: var(--bg-glass);
425
- border-color: var(--border-hover);
426
- }
427
-
428
- /* ===========================
429
- Features Section
430
- =========================== */
431
- .features {
432
- padding: var(--spacing-3xl) 0;
433
- background: var(--bg-secondary);
434
- }
435
-
436
- .section-header {
437
- text-align: center;
438
- margin-bottom: var(--spacing-3xl);
439
- }
440
-
441
- .section-title {
442
- font-size: clamp(2rem, 4vw, 3rem);
443
- font-weight: 800;
444
- margin-bottom: var(--spacing-md);
445
- }
446
-
447
- .section-subtitle {
448
- font-size: 1.125rem;
449
- color: var(--text-secondary);
450
- max-width: 600px;
451
- margin: 0 auto;
452
- }
453
-
454
- .features-grid {
455
- display: grid;
456
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
457
- gap: var(--spacing-lg);
458
- }
459
-
460
- .feature-card {
461
- background: var(--bg-card);
462
- backdrop-filter: blur(20px);
463
- border: 1px solid var(--border);
464
- border-radius: var(--radius-lg);
465
- padding: var(--spacing-xl);
466
- transition: var(--transition);
467
- }
468
-
469
- .feature-card:hover {
470
- transform: translateY(-4px);
471
- border-color: var(--border-hover);
472
- box-shadow: var(--shadow-md);
473
- }
474
-
475
- .feature-icon {
476
- font-size: 2.5rem;
477
- margin-bottom: var(--spacing-md);
478
- }
479
-
480
- .feature-card h3 {
481
- font-size: 1.25rem;
482
- font-weight: 700;
483
- margin-bottom: var(--spacing-sm);
484
- }
485
-
486
- .feature-card p {
487
- color: var(--text-secondary);
488
- line-height: 1.7;
489
- }
490
-
491
- /* ===========================
492
- Installation Section
493
- =========================== */
494
- .installation {
495
- padding: var(--spacing-3xl) 0;
496
- }
497
-
498
- .install-options {
499
- display: grid;
500
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
501
- gap: var(--spacing-lg);
502
- }
503
-
504
- .install-card {
505
- background: var(--bg-card);
506
- border: 1px solid var(--border);
507
- border-radius: var(--radius-lg);
508
- padding: var(--spacing-xl);
509
- transition: var(--transition);
510
- }
511
-
512
- .install-card:hover {
513
- border-color: var(--primary);
514
- }
515
-
516
- .install-header {
517
- display: flex;
518
- justify-content: space-between;
519
- align-items: center;
520
- margin-bottom: var(--spacing-md);
521
- }
522
-
523
- .install-header h3 {
524
- font-size: 1.125rem;
525
- font-weight: 600;
526
- }
527
-
528
- .install-badge {
529
- background: var(--gradient-primary);
530
- color: white;
531
- padding: 0.25rem 0.75rem;
532
- border-radius: 1rem;
533
- font-size: 0.75rem;
534
- font-weight: 600;
535
- }
536
-
537
- .code-block {
538
- position: relative;
539
- background: var(--bg-tertiary);
540
- border: 1px solid var(--border);
541
- border-radius: var(--radius-md);
542
- padding: var(--spacing-md);
543
- font-family: 'Courier New', monospace;
544
- font-size: 0.875rem;
545
- overflow-x: auto;
546
- }
547
-
548
- .code-block code {
549
- color: var(--primary-light);
550
- }
551
-
552
- .copy-btn {
553
- position: absolute;
554
- top: var(--spacing-sm);
555
- right: var(--spacing-sm);
556
- background: var(--bg-glass);
557
- border: 1px solid var(--border);
558
- border-radius: var(--radius-sm);
559
- padding: 0.5rem;
560
- cursor: pointer;
561
- color: var(--text-secondary);
562
- transition: var(--transition);
563
- }
564
-
565
- .copy-btn:hover {
566
- background: var(--bg-secondary);
567
- color: var(--text-primary);
568
- }
569
-
570
- /* ===========================
571
- Usage Section
572
- =========================== */
573
- .usage {
574
- padding: var(--spacing-3xl) 0;
575
- background: var(--bg-secondary);
576
- }
577
-
578
- .usage-steps {
579
- display: flex;
580
- flex-direction: column;
581
- gap: var(--spacing-xl);
582
- }
583
-
584
- .step-card {
585
- display: flex;
586
- gap: var(--spacing-lg);
587
- background: var(--bg-card);
588
- border: 1px solid var(--border);
589
- border-radius: var(--radius-lg);
590
- padding: var(--spacing-xl);
591
- transition: var(--transition);
592
- }
593
-
594
- .step-card:hover {
595
- border-color: var(--primary);
596
- transform: translateX(8px);
597
- }
598
-
599
- .step-number {
600
- flex-shrink: 0;
601
- width: 60px;
602
- height: 60px;
603
- background: var(--gradient-primary);
604
- border-radius: 50%;
605
- display: flex;
606
- align-items: center;
607
- justify-content: center;
608
- font-size: 1.5rem;
609
- font-weight: 700;
610
- }
611
-
612
- .step-content {
613
- flex: 1;
614
- }
615
-
616
- .step-content h3 {
617
- font-size: 1.5rem;
618
- margin-bottom: var(--spacing-sm);
619
- }
620
-
621
- .step-content p {
622
- color: var(--text-secondary);
623
- margin-bottom: var(--spacing-md);
624
- }
625
-
626
- .step-content .code-block {
627
- margin-bottom: var(--spacing-sm);
628
- }
629
-
630
- .commit-types {
631
- display: flex;
632
- flex-wrap: wrap;
633
- gap: var(--spacing-xs);
634
- margin-top: var(--spacing-md);
635
- }
636
-
637
- .commit-type {
638
- background: var(--bg-glass);
639
- border: 1px solid var(--border);
640
- padding: 0.5rem 1rem;
641
- border-radius: var(--radius-md);
642
- font-size: 0.875rem;
643
- font-family: 'Courier New', monospace;
644
- }
645
-
646
- /* ===========================
647
- Commit Reference Section
648
- =========================== */
649
- .commit-reference {
650
- padding: var(--spacing-3xl) 0;
651
- }
652
-
653
- .reference-table {
654
- background: var(--bg-card);
655
- border: 1px solid var(--border);
656
- border-radius: var(--radius-lg);
657
- overflow: hidden;
658
- }
659
-
660
- .table-header,
661
- .table-row {
662
- display: grid;
663
- grid-template-columns: 1fr 1fr 2fr 2fr;
664
- gap: var(--spacing-md);
665
- padding: var(--spacing-md) var(--spacing-lg);
666
- align-items: center;
667
- }
668
-
669
- .table-header {
670
- background: var(--bg-tertiary);
671
- font-weight: 700;
672
- border-bottom: 1px solid var(--border);
673
- }
674
-
675
- .table-row {
676
- border-bottom: 1px solid var(--border);
677
- transition: var(--transition);
678
- }
679
-
680
- .table-row:last-child {
681
- border-bottom: none;
682
- }
683
-
684
- .table-row:hover {
685
- background: var(--bg-glass);
686
- }
687
-
688
- .table-row code {
689
- background: var(--bg-tertiary);
690
- padding: 0.25rem 0.5rem;
691
- border-radius: var(--radius-sm);
692
- font-family: 'Courier New', monospace;
693
- color: var(--primary-light);
694
- }
695
-
696
- /* ===========================
697
- Releases Section
698
- =========================== */
699
- .releases {
700
- padding: var(--spacing-3xl) 0;
701
- background: var(--bg-secondary);
702
- }
703
-
704
- .releases-timeline {
705
- max-width: 800px;
706
- margin: 0 auto var(--spacing-xl);
707
- }
708
-
709
- .release-item {
710
- position: relative;
711
- background: var(--bg-card);
712
- border: 1px solid var(--border);
713
- border-radius: var(--radius-lg);
714
- padding: var(--spacing-xl);
715
- margin-bottom: var(--spacing-lg);
716
- transition: var(--transition);
717
- }
718
-
719
- .release-item:hover {
720
- border-color: var(--primary);
721
- transform: translateX(8px);
722
- }
723
-
724
- .release-badge {
725
- position: absolute;
726
- top: var(--spacing-md);
727
- right: var(--spacing-md);
728
- background: var(--gradient-primary);
729
- color: white;
730
- padding: 0.25rem 0.75rem;
731
- border-radius: 1rem;
732
- font-size: 0.75rem;
733
- font-weight: 600;
734
- }
735
-
736
- .release-version {
737
- font-size: 1.5rem;
738
- font-weight: 700;
739
- color: var(--primary-light);
740
- margin-bottom: var(--spacing-xs);
741
- }
742
-
743
- .release-date {
744
- color: var(--text-tertiary);
745
- font-size: 0.875rem;
746
- margin-bottom: var(--spacing-sm);
747
- }
748
-
749
- .release-type {
750
- display: inline-block;
751
- background: var(--bg-glass);
752
- border: 1px solid var(--border);
753
- padding: 0.25rem 0.75rem;
754
- border-radius: var(--radius-sm);
755
- font-size: 0.875rem;
756
- margin-bottom: var(--spacing-sm);
757
- }
758
-
759
- .release-description {
760
- color: var(--text-secondary);
761
- line-height: 1.7;
762
- }
763
-
764
- .releases-cta {
765
- text-align: center;
766
- }
767
-
768
- /* ===========================
769
- CTA Section
770
- =========================== */
771
- .cta {
772
- padding: var(--spacing-3xl) 0;
773
- position: relative;
774
- overflow: hidden;
775
- }
776
-
777
- .cta::before {
778
- content: '';
779
- position: absolute;
780
- top: 50%;
781
- left: 50%;
782
- transform: translate(-50%, -50%);
783
- width: 600px;
784
- height: 600px;
785
- background: radial-gradient(circle, rgba(139, 92, 246, 0.15) 0%, transparent 70%);
786
- border-radius: 50%;
787
- pointer-events: none;
788
- }
789
-
790
- .cta-content {
791
- text-align: center;
792
- position: relative;
793
- z-index: 1;
794
- }
795
-
796
- .cta-content h2 {
797
- font-size: clamp(2rem, 4vw, 3rem);
798
- font-weight: 800;
799
- margin-bottom: var(--spacing-md);
800
- }
801
-
802
- .cta-content p {
803
- font-size: 1.25rem;
804
- color: var(--text-secondary);
805
- margin-bottom: var(--spacing-xl);
806
- }
807
-
808
- .cta-actions {
809
- display: flex;
810
- gap: var(--spacing-md);
811
- justify-content: center;
812
- flex-wrap: wrap;
813
- }
814
-
815
- /* ===========================
816
- Footer
817
- =========================== */
818
- .footer {
819
- background: var(--bg-secondary);
820
- border-top: 1px solid var(--border);
821
- padding: var(--spacing-3xl) 0 var(--spacing-lg);
822
- }
823
-
824
- .footer-content {
825
- display: grid;
826
- grid-template-columns: 2fr 1fr 1fr 1fr;
827
- gap: var(--spacing-xl);
828
- margin-bottom: var(--spacing-xl);
829
- }
830
-
831
- .footer-brand p {
832
- color: var(--text-secondary);
833
- margin-top: var(--spacing-md);
834
- line-height: 1.7;
835
- }
836
-
837
- .footer-column h4 {
838
- font-size: 1rem;
839
- font-weight: 600;
840
- margin-bottom: var(--spacing-md);
841
- }
842
-
843
- .footer-column ul {
844
- list-style: none;
845
- }
846
-
847
- .footer-column ul li {
848
- margin-bottom: var(--spacing-xs);
849
- }
850
-
851
- .footer-column ul li a {
852
- color: var(--text-secondary);
853
- text-decoration: none;
854
- transition: var(--transition);
855
- }
856
-
857
- .footer-column ul li a:hover {
858
- color: var(--primary-light);
859
- }
860
-
861
- .footer-bottom {
862
- display: flex;
863
- justify-content: space-between;
864
- align-items: center;
865
- padding-top: var(--spacing-lg);
866
- border-top: 1px solid var(--border);
867
- color: var(--text-tertiary);
868
- font-size: 0.875rem;
869
- }
870
-
871
- .footer-badges {
872
- display: flex;
873
- gap: var(--spacing-sm);
874
- }
875
-
876
- /* ===========================
877
- Responsive Design
878
- =========================== */
879
- @media (max-width: 1024px) {
880
- .hero .container {
881
- grid-template-columns: 1fr;
882
- }
883
-
884
- .hero-visual {
885
- display: block;
886
- margin-top: var(--spacing-2xl);
887
- }
888
-
889
- .hero-content {
890
- max-width: 100%;
891
- }
892
- }
893
-
894
- @media (max-width: 768px) {
895
- .nav-links {
896
- display: none;
897
- }
898
-
899
- .mobile-menu-toggle {
900
- display: flex;
901
- }
902
-
903
- .hero {
904
- padding: calc(var(--spacing-2xl) + 60px) 0 var(--spacing-2xl);
905
- }
906
-
907
- .hero-title {
908
- font-size: 2.5rem;
909
- }
910
-
911
- .hero-actions {
912
- flex-direction: column;
913
- }
914
-
915
- .hero-stats {
916
- flex-direction: column;
917
- gap: var(--spacing-md);
918
- }
919
-
920
- .features-grid,
921
- .install-options {
922
- grid-template-columns: 1fr;
923
- }
924
-
925
- .step-card {
926
- flex-direction: column;
927
- }
928
-
929
- .table-header,
930
- .table-row {
931
- grid-template-columns: 1fr;
932
- gap: var(--spacing-xs);
933
- }
934
-
935
- .table-header {
936
- display: none;
937
- }
938
-
939
- .footer-content {
940
- grid-template-columns: 1fr;
941
- }
942
-
943
- .footer-bottom {
944
- flex-direction: column;
945
- gap: var(--spacing-md);
946
- text-align: center;
947
- }
948
- }
949
-
950
- @media (max-width: 480px) {
951
- .hero-title {
952
- font-size: 2rem;
953
- }
954
-
955
- .section-title {
956
- font-size: 1.75rem;
957
- }
958
-
959
- .btn {
960
- width: 100%;
961
- justify-content: center;
962
- }
963
- }
1
+ /* ===========================
2
+ CSS Variables & Reset
3
+ =========================== */
4
+ :root {
5
+ /* Colors */
6
+ --primary: #6366f1;
7
+ --primary-dark: #4f46e5;
8
+ --primary-light: #818cf8;
9
+ --secondary: #8b5cf6;
10
+ --accent: #ec4899;
11
+ --success: #10b981;
12
+ --warning: #f59e0b;
13
+ --error: #ef4444;
14
+
15
+ /* Neutrals */
16
+ --bg-primary: #0a0a0f;
17
+ --bg-secondary: #13131a;
18
+ --bg-tertiary: #1a1a24;
19
+ --bg-card: rgba(26, 26, 36, 0.8);
20
+ --bg-glass: rgba(255, 255, 255, 0.05);
21
+
22
+ --text-primary: #ffffff;
23
+ --text-secondary: #a1a1aa;
24
+ --text-tertiary: #71717a;
25
+
26
+ --border: rgba(255, 255, 255, 0.1);
27
+ --border-hover: rgba(255, 255, 255, 0.2);
28
+
29
+ /* Gradients */
30
+ --gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
31
+ --gradient-accent: linear-gradient(135deg, #ec4899 0%, #f59e0b 100%);
32
+ --gradient-text: linear-gradient(135deg, #6366f1, #ec4899, #f59e0b);
33
+
34
+ /* Spacing */
35
+ --spacing-xs: 0.5rem;
36
+ --spacing-sm: 1rem;
37
+ --spacing-md: 1.5rem;
38
+ --spacing-lg: 2rem;
39
+ --spacing-xl: 3rem;
40
+ --spacing-2xl: 4rem;
41
+ --spacing-3xl: 6rem;
42
+
43
+ /* Border Radius */
44
+ --radius-sm: 0.5rem;
45
+ --radius-md: 0.75rem;
46
+ --radius-lg: 1rem;
47
+ --radius-xl: 1.5rem;
48
+
49
+ /* Shadows */
50
+ --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1);
51
+ --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.2);
52
+ --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.3);
53
+ --shadow-glow: 0 0 40px rgba(99, 102, 241, 0.3);
54
+
55
+ /* Transitions */
56
+ --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
57
+ }
58
+
59
+ * {
60
+ margin: 0;
61
+ padding: 0;
62
+ box-sizing: border-box;
63
+ }
64
+
65
+ html {
66
+ scroll-behavior: smooth;
67
+ }
68
+
69
+ body {
70
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
71
+ background: var(--bg-primary);
72
+ color: var(--text-primary);
73
+ line-height: 1.6;
74
+ overflow-x: hidden;
75
+ }
76
+
77
+ .container {
78
+ max-width: 1200px;
79
+ margin: 0 auto;
80
+ padding: 0 var(--spacing-md);
81
+ }
82
+
83
+ /* ===========================
84
+ Navigation
85
+ =========================== */
86
+ .navbar {
87
+ position: fixed;
88
+ top: 0;
89
+ left: 0;
90
+ right: 0;
91
+ z-index: 1000;
92
+ background: rgba(10, 10, 15, 0.8);
93
+ backdrop-filter: blur(20px);
94
+ border-bottom: 1px solid var(--border);
95
+ padding: var(--spacing-md) 0;
96
+ }
97
+
98
+ .nav-content {
99
+ display: flex;
100
+ justify-content: space-between;
101
+ align-items: center;
102
+ }
103
+
104
+ .logo {
105
+ display: flex;
106
+ align-items: center;
107
+ gap: var(--spacing-xs);
108
+ font-size: 1.5rem;
109
+ font-weight: 700;
110
+ }
111
+
112
+ .logo-icon {
113
+ font-size: 1.75rem;
114
+ }
115
+
116
+ .nav-links {
117
+ display: flex;
118
+ list-style: none;
119
+ gap: var(--spacing-lg);
120
+ align-items: center;
121
+ }
122
+
123
+ .nav-links a {
124
+ color: var(--text-secondary);
125
+ text-decoration: none;
126
+ font-weight: 500;
127
+ transition: var(--transition);
128
+ padding: var(--spacing-xs) var(--spacing-sm);
129
+ border-radius: var(--radius-sm);
130
+ }
131
+
132
+ .nav-links a:hover {
133
+ color: var(--text-primary);
134
+ background: var(--bg-glass);
135
+ }
136
+
137
+ .btn-github {
138
+ background: var(--gradient-primary);
139
+ color: white !important;
140
+ padding: var(--spacing-xs) var(--spacing-md) !important;
141
+ border-radius: var(--radius-md);
142
+ }
143
+
144
+ .mobile-menu-toggle {
145
+ display: none;
146
+ flex-direction: column;
147
+ gap: 4px;
148
+ background: none;
149
+ border: none;
150
+ cursor: pointer;
151
+ }
152
+
153
+ .mobile-menu-toggle span {
154
+ width: 24px;
155
+ height: 2px;
156
+ background: var(--text-primary);
157
+ transition: var(--transition);
158
+ }
159
+
160
+ /* ===========================
161
+ Hero Section
162
+ =========================== */
163
+ .hero {
164
+ padding: calc(var(--spacing-3xl) + 60px) 0 var(--spacing-3xl);
165
+ position: relative;
166
+ overflow: visible;
167
+ }
168
+
169
+ .hero .container {
170
+ display: grid;
171
+ grid-template-columns: 1fr 1fr;
172
+ gap: var(--spacing-3xl);
173
+ align-items: center;
174
+ }
175
+
176
+ .hero::before {
177
+ content: '';
178
+ position: absolute;
179
+ top: -50%;
180
+ right: -20%;
181
+ width: 800px;
182
+ height: 800px;
183
+ background: radial-gradient(circle, rgba(99, 102, 241, 0.15) 0%, transparent 70%);
184
+ border-radius: 50%;
185
+ pointer-events: none;
186
+ }
187
+
188
+ .hero-content {
189
+ max-width: 600px;
190
+ position: relative;
191
+ z-index: 1;
192
+ }
193
+
194
+ .hero-badge {
195
+ display: inline-flex;
196
+ align-items: center;
197
+ gap: var(--spacing-xs);
198
+ background: var(--bg-glass);
199
+ border: 1px solid var(--border);
200
+ padding: var(--spacing-xs) var(--spacing-md);
201
+ border-radius: 2rem;
202
+ font-size: 0.875rem;
203
+ margin-bottom: var(--spacing-lg);
204
+ animation: fadeInUp 0.6s ease-out;
205
+ }
206
+
207
+ .badge-dot {
208
+ width: 8px;
209
+ height: 8px;
210
+ background: var(--success);
211
+ border-radius: 50%;
212
+ animation: pulse 2s infinite;
213
+ }
214
+
215
+ @keyframes pulse {
216
+ 0%, 100% { opacity: 1; }
217
+ 50% { opacity: 0.5; }
218
+ }
219
+
220
+ .hero-title {
221
+ font-size: clamp(2.5rem, 6vw, 4rem);
222
+ font-weight: 800;
223
+ line-height: 1.1;
224
+ margin-bottom: var(--spacing-md);
225
+ animation: fadeInUp 0.6s ease-out 0.1s both;
226
+ }
227
+
228
+ .gradient-text {
229
+ background: var(--gradient-text);
230
+ -webkit-background-clip: text;
231
+ -webkit-text-fill-color: transparent;
232
+ background-clip: text;
233
+ }
234
+
235
+ .hero-subtitle {
236
+ font-size: 1.25rem;
237
+ color: var(--text-secondary);
238
+ margin-bottom: var(--spacing-xl);
239
+ line-height: 1.8;
240
+ animation: fadeInUp 0.6s ease-out 0.2s both;
241
+ }
242
+
243
+ .hero-actions {
244
+ display: flex;
245
+ gap: var(--spacing-md);
246
+ margin-bottom: var(--spacing-xl);
247
+ animation: fadeInUp 0.6s ease-out 0.3s both;
248
+ flex-wrap: wrap;
249
+ }
250
+
251
+ .hero-stats {
252
+ display: flex;
253
+ gap: var(--spacing-xl);
254
+ padding-top: var(--spacing-lg);
255
+ border-top: 1px solid var(--border);
256
+ animation: fadeInUp 0.6s ease-out 0.4s both;
257
+ }
258
+
259
+ .stat-item {
260
+ text-align: left;
261
+ }
262
+
263
+ .stat-value {
264
+ font-size: 1.5rem;
265
+ font-weight: 700;
266
+ color: var(--primary-light);
267
+ }
268
+
269
+ .stat-label {
270
+ font-size: 0.875rem;
271
+ color: var(--text-tertiary);
272
+ }
273
+
274
+ @keyframes fadeInUp {
275
+ from {
276
+ opacity: 0;
277
+ transform: translateY(20px);
278
+ }
279
+ to {
280
+ opacity: 1;
281
+ transform: translateY(0);
282
+ }
283
+ }
284
+
285
+ /* Hero Visual */
286
+ .hero-visual {
287
+ position: relative;
288
+ width: 100%;
289
+ animation: fadeInRight 0.8s ease-out 0.5s both;
290
+ }
291
+
292
+ @keyframes fadeInRight {
293
+ from {
294
+ opacity: 0;
295
+ transform: translateX(40px);
296
+ }
297
+ to {
298
+ opacity: 1;
299
+ transform: translateX(0);
300
+ }
301
+ }
302
+
303
+ .code-window {
304
+ background: var(--bg-tertiary);
305
+ border: 1px solid var(--border);
306
+ border-radius: var(--radius-lg);
307
+ overflow: hidden;
308
+ box-shadow: var(--shadow-lg);
309
+ }
310
+
311
+ .window-header {
312
+ background: var(--bg-secondary);
313
+ padding: var(--spacing-sm);
314
+ display: flex;
315
+ align-items: center;
316
+ gap: var(--spacing-md);
317
+ border-bottom: 1px solid var(--border);
318
+ }
319
+
320
+ .window-dots {
321
+ display: flex;
322
+ gap: 6px;
323
+ }
324
+
325
+ .window-dots span {
326
+ width: 12px;
327
+ height: 12px;
328
+ border-radius: 50%;
329
+ background: var(--text-tertiary);
330
+ }
331
+
332
+ .window-dots span:nth-child(1) { background: #ef4444; }
333
+ .window-dots span:nth-child(2) { background: #f59e0b; }
334
+ .window-dots span:nth-child(3) { background: #10b981; }
335
+
336
+ .window-title {
337
+ font-size: 0.875rem;
338
+ color: var(--text-tertiary);
339
+ }
340
+
341
+ .window-content {
342
+ padding: var(--spacing-md);
343
+ font-family: 'Courier New', monospace;
344
+ font-size: 0.875rem;
345
+ max-height: none;
346
+ overflow-y: auto;
347
+ min-height: auto;
348
+ }
349
+
350
+ .code-line {
351
+ margin-bottom: 0.5rem;
352
+ }
353
+
354
+ .prompt {
355
+ color: var(--primary-light);
356
+ margin-right: 0.5rem;
357
+ }
358
+
359
+ .output {
360
+ color: var(--text-secondary);
361
+ padding-left: 1.5rem;
362
+ }
363
+
364
+ .output.success {
365
+ color: var(--success);
366
+ }
367
+
368
+ .cursor {
369
+ color: var(--primary-light);
370
+ animation: blink 1s infinite;
371
+ }
372
+
373
+ @keyframes blink {
374
+ 0%, 50% { opacity: 1; }
375
+ 51%, 100% { opacity: 0; }
376
+ }
377
+
378
+ /* ===========================
379
+ Buttons
380
+ =========================== */
381
+ .btn {
382
+ display: inline-flex;
383
+ align-items: center;
384
+ gap: var(--spacing-xs);
385
+ padding: 0.875rem 1.75rem;
386
+ border-radius: var(--radius-md);
387
+ font-weight: 600;
388
+ text-decoration: none;
389
+ transition: var(--transition);
390
+ border: none;
391
+ cursor: pointer;
392
+ font-size: 1rem;
393
+ }
394
+
395
+ .btn-primary {
396
+ background: var(--gradient-primary);
397
+ color: white;
398
+ box-shadow: 0 4px 16px rgba(99, 102, 241, 0.3);
399
+ }
400
+
401
+ .btn-primary:hover {
402
+ transform: translateY(-2px);
403
+ box-shadow: 0 8px 24px rgba(99, 102, 241, 0.4);
404
+ }
405
+
406
+ .btn-secondary {
407
+ background: var(--bg-glass);
408
+ color: var(--text-primary);
409
+ border: 1px solid var(--border);
410
+ }
411
+
412
+ .btn-secondary:hover {
413
+ background: var(--bg-tertiary);
414
+ border-color: var(--border-hover);
415
+ }
416
+
417
+ .btn-outline {
418
+ background: transparent;
419
+ color: var(--text-primary);
420
+ border: 1px solid var(--border);
421
+ }
422
+
423
+ .btn-outline:hover {
424
+ background: var(--bg-glass);
425
+ border-color: var(--border-hover);
426
+ }
427
+
428
+ /* ===========================
429
+ Features Section
430
+ =========================== */
431
+ .features {
432
+ padding: var(--spacing-3xl) 0;
433
+ background: var(--bg-secondary);
434
+ }
435
+
436
+ .section-header {
437
+ text-align: center;
438
+ margin-bottom: var(--spacing-3xl);
439
+ }
440
+
441
+ .section-title {
442
+ font-size: clamp(2rem, 4vw, 3rem);
443
+ font-weight: 800;
444
+ margin-bottom: var(--spacing-md);
445
+ }
446
+
447
+ .section-subtitle {
448
+ font-size: 1.125rem;
449
+ color: var(--text-secondary);
450
+ max-width: 600px;
451
+ margin: 0 auto;
452
+ }
453
+
454
+ .features-grid {
455
+ display: grid;
456
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
457
+ gap: var(--spacing-lg);
458
+ }
459
+
460
+ .feature-card {
461
+ background: var(--bg-card);
462
+ backdrop-filter: blur(20px);
463
+ border: 1px solid var(--border);
464
+ border-radius: var(--radius-lg);
465
+ padding: var(--spacing-xl);
466
+ transition: var(--transition);
467
+ }
468
+
469
+ .feature-card:hover {
470
+ transform: translateY(-4px);
471
+ border-color: var(--border-hover);
472
+ box-shadow: var(--shadow-md);
473
+ }
474
+
475
+ .feature-icon {
476
+ font-size: 2.5rem;
477
+ margin-bottom: var(--spacing-md);
478
+ }
479
+
480
+ .feature-card h3 {
481
+ font-size: 1.25rem;
482
+ font-weight: 700;
483
+ margin-bottom: var(--spacing-sm);
484
+ }
485
+
486
+ .feature-card p {
487
+ color: var(--text-secondary);
488
+ line-height: 1.7;
489
+ }
490
+
491
+ /* ===========================
492
+ Installation Section
493
+ =========================== */
494
+ .installation {
495
+ padding: var(--spacing-3xl) 0;
496
+ }
497
+
498
+ .install-options {
499
+ display: grid;
500
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
501
+ gap: var(--spacing-lg);
502
+ }
503
+
504
+ .install-card {
505
+ background: var(--bg-card);
506
+ border: 1px solid var(--border);
507
+ border-radius: var(--radius-lg);
508
+ padding: var(--spacing-xl);
509
+ transition: var(--transition);
510
+ }
511
+
512
+ .install-card:hover {
513
+ border-color: var(--primary);
514
+ }
515
+
516
+ .install-header {
517
+ display: flex;
518
+ justify-content: space-between;
519
+ align-items: center;
520
+ margin-bottom: var(--spacing-md);
521
+ }
522
+
523
+ .install-header h3 {
524
+ font-size: 1.125rem;
525
+ font-weight: 600;
526
+ }
527
+
528
+ .install-badge {
529
+ background: var(--gradient-primary);
530
+ color: white;
531
+ padding: 0.25rem 0.75rem;
532
+ border-radius: 1rem;
533
+ font-size: 0.75rem;
534
+ font-weight: 600;
535
+ }
536
+
537
+ .code-block {
538
+ position: relative;
539
+ background: var(--bg-tertiary);
540
+ border: 1px solid var(--border);
541
+ border-radius: var(--radius-md);
542
+ padding: var(--spacing-md);
543
+ font-family: 'Courier New', monospace;
544
+ font-size: 0.875rem;
545
+ overflow-x: auto;
546
+ }
547
+
548
+ .code-block code {
549
+ color: var(--primary-light);
550
+ }
551
+
552
+ .copy-btn {
553
+ position: absolute;
554
+ top: var(--spacing-sm);
555
+ right: var(--spacing-sm);
556
+ background: var(--bg-glass);
557
+ border: 1px solid var(--border);
558
+ border-radius: var(--radius-sm);
559
+ padding: 0.5rem;
560
+ cursor: pointer;
561
+ color: var(--text-secondary);
562
+ transition: var(--transition);
563
+ }
564
+
565
+ .copy-btn:hover {
566
+ background: var(--bg-secondary);
567
+ color: var(--text-primary);
568
+ }
569
+
570
+ /* ===========================
571
+ Usage Section
572
+ =========================== */
573
+ .usage {
574
+ padding: var(--spacing-3xl) 0;
575
+ background: var(--bg-secondary);
576
+ }
577
+
578
+ .usage-steps {
579
+ display: flex;
580
+ flex-direction: column;
581
+ gap: var(--spacing-xl);
582
+ }
583
+
584
+ .step-card {
585
+ display: flex;
586
+ gap: var(--spacing-lg);
587
+ background: var(--bg-card);
588
+ border: 1px solid var(--border);
589
+ border-radius: var(--radius-lg);
590
+ padding: var(--spacing-xl);
591
+ transition: var(--transition);
592
+ }
593
+
594
+ .step-card:hover {
595
+ border-color: var(--primary);
596
+ transform: translateX(8px);
597
+ }
598
+
599
+ .step-number {
600
+ flex-shrink: 0;
601
+ width: 60px;
602
+ height: 60px;
603
+ background: var(--gradient-primary);
604
+ border-radius: 50%;
605
+ display: flex;
606
+ align-items: center;
607
+ justify-content: center;
608
+ font-size: 1.5rem;
609
+ font-weight: 700;
610
+ }
611
+
612
+ .step-content {
613
+ flex: 1;
614
+ }
615
+
616
+ .step-content h3 {
617
+ font-size: 1.5rem;
618
+ margin-bottom: var(--spacing-sm);
619
+ }
620
+
621
+ .step-content p {
622
+ color: var(--text-secondary);
623
+ margin-bottom: var(--spacing-md);
624
+ }
625
+
626
+ .step-content .code-block {
627
+ margin-bottom: var(--spacing-sm);
628
+ }
629
+
630
+ .commit-types {
631
+ display: flex;
632
+ flex-wrap: wrap;
633
+ gap: var(--spacing-xs);
634
+ margin-top: var(--spacing-md);
635
+ }
636
+
637
+ .commit-type {
638
+ background: var(--bg-glass);
639
+ border: 1px solid var(--border);
640
+ padding: 0.5rem 1rem;
641
+ border-radius: var(--radius-md);
642
+ font-size: 0.875rem;
643
+ font-family: 'Courier New', monospace;
644
+ }
645
+
646
+ /* ===========================
647
+ Commit Reference Section
648
+ =========================== */
649
+ .commit-reference {
650
+ padding: var(--spacing-3xl) 0;
651
+ }
652
+
653
+ .reference-table {
654
+ background: var(--bg-card);
655
+ border: 1px solid var(--border);
656
+ border-radius: var(--radius-lg);
657
+ overflow: hidden;
658
+ }
659
+
660
+ .table-header,
661
+ .table-row {
662
+ display: grid;
663
+ grid-template-columns: 1fr 1fr 2fr 2fr;
664
+ gap: var(--spacing-md);
665
+ padding: var(--spacing-md) var(--spacing-lg);
666
+ align-items: center;
667
+ }
668
+
669
+ .table-header {
670
+ background: var(--bg-tertiary);
671
+ font-weight: 700;
672
+ border-bottom: 1px solid var(--border);
673
+ }
674
+
675
+ .table-row {
676
+ border-bottom: 1px solid var(--border);
677
+ transition: var(--transition);
678
+ }
679
+
680
+ .table-row:last-child {
681
+ border-bottom: none;
682
+ }
683
+
684
+ .table-row:hover {
685
+ background: var(--bg-glass);
686
+ }
687
+
688
+ .table-row code {
689
+ background: var(--bg-tertiary);
690
+ padding: 0.25rem 0.5rem;
691
+ border-radius: var(--radius-sm);
692
+ font-family: 'Courier New', monospace;
693
+ color: var(--primary-light);
694
+ }
695
+
696
+ /* ===========================
697
+ Releases Section
698
+ =========================== */
699
+ .releases {
700
+ padding: var(--spacing-3xl) 0;
701
+ background: var(--bg-secondary);
702
+ }
703
+
704
+ .releases-timeline {
705
+ max-width: 800px;
706
+ margin: 0 auto var(--spacing-xl);
707
+ }
708
+
709
+ .release-item {
710
+ position: relative;
711
+ background: var(--bg-card);
712
+ border: 1px solid var(--border);
713
+ border-radius: var(--radius-lg);
714
+ padding: var(--spacing-xl);
715
+ margin-bottom: var(--spacing-lg);
716
+ transition: var(--transition);
717
+ }
718
+
719
+ .release-item:hover {
720
+ border-color: var(--primary);
721
+ transform: translateX(8px);
722
+ }
723
+
724
+ .release-badge {
725
+ position: absolute;
726
+ top: var(--spacing-md);
727
+ right: var(--spacing-md);
728
+ background: var(--gradient-primary);
729
+ color: white;
730
+ padding: 0.25rem 0.75rem;
731
+ border-radius: 1rem;
732
+ font-size: 0.75rem;
733
+ font-weight: 600;
734
+ }
735
+
736
+ .release-version {
737
+ font-size: 1.5rem;
738
+ font-weight: 700;
739
+ color: var(--primary-light);
740
+ margin-bottom: var(--spacing-xs);
741
+ }
742
+
743
+ .release-date {
744
+ color: var(--text-tertiary);
745
+ font-size: 0.875rem;
746
+ margin-bottom: var(--spacing-sm);
747
+ }
748
+
749
+ .release-type {
750
+ display: inline-block;
751
+ background: var(--bg-glass);
752
+ border: 1px solid var(--border);
753
+ padding: 0.25rem 0.75rem;
754
+ border-radius: var(--radius-sm);
755
+ font-size: 0.875rem;
756
+ margin-bottom: var(--spacing-sm);
757
+ }
758
+
759
+ .release-description {
760
+ color: var(--text-secondary);
761
+ line-height: 1.7;
762
+ }
763
+
764
+ .releases-cta {
765
+ text-align: center;
766
+ }
767
+
768
+ /* ===========================
769
+ CTA Section
770
+ =========================== */
771
+ .cta {
772
+ padding: var(--spacing-3xl) 0;
773
+ position: relative;
774
+ overflow: hidden;
775
+ }
776
+
777
+ .cta::before {
778
+ content: '';
779
+ position: absolute;
780
+ top: 50%;
781
+ left: 50%;
782
+ transform: translate(-50%, -50%);
783
+ width: 600px;
784
+ height: 600px;
785
+ background: radial-gradient(circle, rgba(139, 92, 246, 0.15) 0%, transparent 70%);
786
+ border-radius: 50%;
787
+ pointer-events: none;
788
+ }
789
+
790
+ .cta-content {
791
+ text-align: center;
792
+ position: relative;
793
+ z-index: 1;
794
+ }
795
+
796
+ .cta-content h2 {
797
+ font-size: clamp(2rem, 4vw, 3rem);
798
+ font-weight: 800;
799
+ margin-bottom: var(--spacing-md);
800
+ }
801
+
802
+ .cta-content p {
803
+ font-size: 1.25rem;
804
+ color: var(--text-secondary);
805
+ margin-bottom: var(--spacing-xl);
806
+ }
807
+
808
+ .cta-actions {
809
+ display: flex;
810
+ gap: var(--spacing-md);
811
+ justify-content: center;
812
+ flex-wrap: wrap;
813
+ }
814
+
815
+ /* ===========================
816
+ Footer
817
+ =========================== */
818
+ .footer {
819
+ background: var(--bg-secondary);
820
+ border-top: 1px solid var(--border);
821
+ padding: var(--spacing-3xl) 0 var(--spacing-lg);
822
+ }
823
+
824
+ .footer-content {
825
+ display: grid;
826
+ grid-template-columns: 2fr 1fr 1fr 1fr;
827
+ gap: var(--spacing-xl);
828
+ margin-bottom: var(--spacing-xl);
829
+ }
830
+
831
+ .footer-brand p {
832
+ color: var(--text-secondary);
833
+ margin-top: var(--spacing-md);
834
+ line-height: 1.7;
835
+ }
836
+
837
+ .footer-column h4 {
838
+ font-size: 1rem;
839
+ font-weight: 600;
840
+ margin-bottom: var(--spacing-md);
841
+ }
842
+
843
+ .footer-column ul {
844
+ list-style: none;
845
+ }
846
+
847
+ .footer-column ul li {
848
+ margin-bottom: var(--spacing-xs);
849
+ }
850
+
851
+ .footer-column ul li a {
852
+ color: var(--text-secondary);
853
+ text-decoration: none;
854
+ transition: var(--transition);
855
+ }
856
+
857
+ .footer-column ul li a:hover {
858
+ color: var(--primary-light);
859
+ }
860
+
861
+ .footer-bottom {
862
+ display: flex;
863
+ justify-content: space-between;
864
+ align-items: center;
865
+ padding-top: var(--spacing-lg);
866
+ border-top: 1px solid var(--border);
867
+ color: var(--text-tertiary);
868
+ font-size: 0.875rem;
869
+ }
870
+
871
+ .footer-badges {
872
+ display: flex;
873
+ gap: var(--spacing-sm);
874
+ }
875
+
876
+ /* ===========================
877
+ Responsive Design
878
+ =========================== */
879
+ @media (max-width: 1024px) {
880
+ .hero .container {
881
+ grid-template-columns: 1fr;
882
+ }
883
+
884
+ .hero-visual {
885
+ display: block;
886
+ margin-top: var(--spacing-2xl);
887
+ }
888
+
889
+ .hero-content {
890
+ max-width: 100%;
891
+ }
892
+ }
893
+
894
+ @media (max-width: 768px) {
895
+ .nav-links {
896
+ display: none;
897
+ }
898
+
899
+ .mobile-menu-toggle {
900
+ display: flex;
901
+ }
902
+
903
+ .hero {
904
+ padding: calc(var(--spacing-2xl) + 60px) 0 var(--spacing-2xl);
905
+ }
906
+
907
+ .hero-title {
908
+ font-size: 2.5rem;
909
+ }
910
+
911
+ .hero-actions {
912
+ flex-direction: column;
913
+ }
914
+
915
+ .hero-stats {
916
+ flex-direction: column;
917
+ gap: var(--spacing-md);
918
+ }
919
+
920
+ .features-grid,
921
+ .install-options {
922
+ grid-template-columns: 1fr;
923
+ }
924
+
925
+ .step-card {
926
+ flex-direction: column;
927
+ }
928
+
929
+ .table-header,
930
+ .table-row {
931
+ grid-template-columns: 1fr;
932
+ gap: var(--spacing-xs);
933
+ }
934
+
935
+ .table-header {
936
+ display: none;
937
+ }
938
+
939
+ .footer-content {
940
+ grid-template-columns: 1fr;
941
+ }
942
+
943
+ .footer-bottom {
944
+ flex-direction: column;
945
+ gap: var(--spacing-md);
946
+ text-align: center;
947
+ }
948
+ }
949
+
950
+ @media (max-width: 480px) {
951
+ .hero-title {
952
+ font-size: 2rem;
953
+ }
954
+
955
+ .section-title {
956
+ font-size: 1.75rem;
957
+ }
958
+
959
+ .btn {
960
+ width: 100%;
961
+ justify-content: center;
962
+ }
963
+ }