@programinglive/commiter 1.1.8 → 1.1.10

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