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}
544
545.install-badge.recommended {
546    background: rgba(34, 197, 94, 0.15);
547    color: var(--accent-primary);
548    border: 1px solid rgba(34, 197, 94, 0.3);
549}
550
551.code-block {
552    background: var(--bg-secondary);
553    border: 1px solid var(--border-color);
554    border-radius: var(--radius-md);
555    overflow: hidden;
556}
557
558.code-block.small {
559    margin-top: 0.75rem;
560}
561
562.code-header {
563    display: flex;
564    justify-content: space-between;
565    align-items: center;
566    padding: 0.75rem 1rem;
567    background: var(--bg-tertiary);
568    border-bottom: 1px solid var(--border-color);
569    font-size: 0.8rem;
570    color: var(--text-muted);
571}
572
573.copy-btn {
574    padding: 0.3rem 0.75rem;
575    font-size: 0.75rem;
576    font-weight: 500;
577    color: var(--text-secondary);
578    background: var(--bg-hover);
579    border: 1px solid var(--border-color);
580    border-radius: var(--radius-sm);
581    cursor: pointer;
582    transition: all 0.2s;
583    font-family: var(--font-sans);
584}
585
586.copy-btn:hover {
587    background: var(--accent-primary);
588    color: #000;
589    border-color: var(--accent-primary);
590}
591
592.copy-btn.copied {
593    background: var(--accent-primary);
594    color: #000;
595    border-color: var(--accent-primary);
596}
597
598.code-body {
599    padding: 1rem 1.25rem;
600    font-family: var(--font-mono);
601    font-size: 0.9rem;
602}
603
604.code-line {
605    display: flex;
606    gap: 0.5rem;
607    line-height: 2;
608}
609
610.code-text {
611    color: var(--text-primary);
612}
613
614.install-steps {
615    display: flex;
616    flex-direction: column;
617    gap: 1.5rem;
618}
619
620.install-step {
621    display: flex;
622    gap: 1.5rem;
623}
624
625.step-number {
626    width: 40px;
627    height: 40px;
628    display: flex;
629    align-items: center;
630    justify-content: center;
631    background: var(--bg-tertiary);
632    border: 1px solid var(--border-color);
633    border-radius: 50%;
634    font-weight: 700;
635    color: var(--accent-primary);
636    flex-shrink: 0;
637}
638
639.step-content {
640    flex: 1;
641}
642
643.step-content h4 {
644    font-size: 1.1rem;
645    font-weight: 600;
646    margin-bottom: 0.5rem;
647}
648
649.step-content p {
650    color: var(--text-secondary);
651    font-size: 0.9rem;
652}
653
654/* Usage Section */
655.usage {
656    padding: 6rem 0;
657}
658
659.usage-grid {
660    display: grid;
661    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
662    gap: 1.25rem;
663    margin-bottom: 4rem;
664}
665
666.usage-card {
667    background: var(--bg-card);
668    border: 1px solid var(--border-color);
669    border-radius: var(--radius-md);
670    padding: 1.5rem;
671    text-align: center;
672    transition: all 0.2s;
673}
674
675.usage-card:hover {
676    border-color: var(--border-hover);
677    transform: translateY(-2px);
678}
679
680.usage-keys {
681    display: flex;
682    justify-content: center;
683    align-items: center;
684    gap: 0.5rem;
685    margin-bottom: 1rem;
686    flex-wrap: wrap;
687}
688
689kbd {
690    display: inline-flex;
691    align-items: center;
692    justify-content: center;
693    min-width: 32px;
694    height: 32px;
695    padding: 0 0.5rem;
696    font-family: var(--font-mono);
697    font-size: 0.8rem;
698    font-weight: 500;
699    color: var(--text-primary);
700    background: var(--bg-tertiary);
701    border: 1px solid var(--border-color);
702    border-radius: var(--radius-sm);
703    box-shadow: 0 2px 0 var(--border-color);
704}
705
706.or,
707.plus {
708    color: var(--text-muted);
709    font-size: 0.75rem;
710}
711
712.usage-card h4 {
713    font-size: 1rem;
714    font-weight: 600;
715    margin-bottom: 0.5rem;
716}
717
718.usage-card p {
719    color: var(--text-secondary);
720    font-size: 0.85rem;
721}
722
723.providers {
724    text-align: center;
725}
726
727.providers h3 {
728    font-size: 1.25rem;
729    font-weight: 600;
730    margin-bottom: 1.5rem;
731    color: var(--text-secondary);
732}
733
734.provider-list {
735    display: flex;
736    justify-content: center;
737    gap: 2rem;
738    flex-wrap: wrap;
739}
740
741.provider {
742    display: flex;
743    align-items: center;
744    gap: 0.5rem;
745    padding: 0.75rem 1.5rem;
746    background: var(--bg-tertiary);
747    border: 1px solid var(--border-color);
748    border-radius: 50px;
749    font-weight: 500;
750}
751
752.provider.coming-soon {
753    color: var(--text-muted);
754    border-style: dashed;
755}
756
757.provider-icon {
758    font-size: 1.25rem;
759}
760
761/* Contact Section */
762.contact {
763    padding: 6rem 0;
764}
765
766.contact-content {
767    text-align: center;
768    max-width: 600px;
769    margin: 0 auto;
770}
771
772.contact h2 {
773    font-size: 2rem;
774    font-weight: 700;
775    margin-bottom: 1rem;
776}
777
778.contact p {
779    color: var(--text-secondary);
780    margin-bottom: 0.75rem;
781    font-size: 1.1rem;
782}
783
784.contact a {
785    color: var(--accent-primary);
786    text-decoration: none;
787    transition: opacity 0.2s;
788}
789
790.contact a:hover {
791    opacity: 0.8;
792    text-decoration: underline;
793}
794
795.support-links {
796    display: flex;
797    justify-content: center;
798    gap: 1rem;
799    margin-top: 2rem;
800    flex-wrap: wrap;
801}
802
803.support-link {
804    display: inline-flex;
805    align-items: center;
806    gap: 0.5rem;
807    padding: 0.75rem 1.5rem;
808    background: var(--bg-tertiary);
809    border: 1px solid var(--border-color);
810    border-radius: var(--radius-md);
811    color: var(--text-primary) !important;
812    text-decoration: none !important;
813    font-weight: 500;
814    transition: all 0.2s;
815}
816
817.support-link:hover {
818    background: var(--bg-hover);
819    border-color: var(--border-hover);
820    transform: translateY(-2px);
821}
822
823/* Footer */
824footer {
825    border-top: 1px solid var(--border-color);
826    padding: 3rem 2rem;
827    margin-top: 4rem;
828}
829
830.footer-content {
831    max-width: 1200px;
832    margin: 0 auto;
833    display: flex;
834    flex-direction: column;
835    align-items: center;
836    gap: 1.5rem;
837    text-align: center;
838}
839
840.footer-brand {
841    display: flex;
842    align-items: center;
843    gap: 0.5rem;
844    font-weight: 700;
845    font-size: 1.1rem;
846}
847
848.footer-links {
849    display: flex;
850    gap: 2rem;
851    flex-wrap: wrap;
852    justify-content: center;
853}
854
855.footer-links a {
856    color: var(--text-secondary);
857    text-decoration: none;
858    font-size: 0.9rem;
859    transition: color 0.2s;
860}
861
862.footer-links a:hover {
863    color: var(--text-primary);
864}
865
866.copyright {
867    color: var(--text-muted);
868    font-size: 0.85rem;
869}
870
871/* Animations */
872@keyframes fadeInUp {
873    from {
874        opacity: 0;
875        transform: translateY(20px);
876    }
877    to {
878        opacity: 1;
879        transform: translateY(0);
880    }
881}
882
883.hero-badges,
884.hero-title,
885.hero-subtitle,
886.hero-cta {
887    animation: fadeInUp 0.6s ease-out backwards;
888}
889
890.hero-badges {
891    animation-delay: 0.1s;
892}
893.hero-title {
894    animation-delay: 0.2s;
895}
896.hero-subtitle {
897    animation-delay: 0.3s;
898}
899.hero-cta {
900    animation-delay: 0.4s;
901}
902
903/* Responsive */
904@media (max-width: 768px) {
905    nav {
906        padding: 1rem;
907    }
908
909    .nav-links {
910        gap: 1rem;
911    }
912
913    .nav-links a:not(.github-link) {
914        display: none;
915    }
916
917    .hero {
918        padding-top: 8rem;
919    }
920
921    .hero-title {
922        font-size: 2.5rem;
923    }
924
925    .hero-subtitle {
926        font-size: 1.1rem;
927    }
928
929    .section-title {
930        font-size: 2rem;
931    }
932
933    .terminal-body {
934        font-size: 0.8rem;
935        padding: 1rem;
936    }
937
938    .inbox-item {
939        grid-template-columns: 80px 1fr;
940    }
941
942    .inbox-time {
943        display: none;
944    }
945
946    .features-grid {
947        grid-template-columns: 1fr;
948    }
949
950    .usage-grid {
951        grid-template-columns: repeat(2, 1fr);
952    }
953
954    .install-step {
955        flex-direction: column;
956        gap: 1rem;
957    }
958
959    .step-number {
960        width: 32px;
961        height: 32px;
962        font-size: 0.9rem;
963    }
964
965    footer {
966        padding: 2rem 1rem;
967    }
968
969    .footer-links {
970        gap: 1rem;
971    }
972}
973
974@media (max-width: 480px) {
975    .hero-cta {
976        flex-direction: column;
977        width: 100%;
978    }
979
980    .btn {
981        width: 100%;
982        justify-content: center;
983    }
984
985    .usage-grid {
986        grid-template-columns: 1fr;
987    }
988
989    .provider-list {
990        flex-direction: column;
991        align-items: center;
992    }
993}