style.css

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