@@ -10,10 +10,17 @@ body {
1010 -moz-osx-font-smoothing : grayscale;
1111}
1212a { color : var (--accent ); text-decoration : none; transition : color 0.15s ; }
13- a : hover { color : # 7dd3fc ; }
13+ a : hover { color : var ( --accent-hover ) ; }
1414code , pre { font-family : var (--font-mono ); }
1515img { max-width : 100% ; display : block; }
1616
17+ /* === Selection & Scrollbar === */
18+ ::selection { background : rgba (34 , 211 , 238 , 0.25 ); color : # e6fbff ; }
19+ ::-webkit-scrollbar { width : 10px ; }
20+ ::-webkit-scrollbar-track { background : var (--bg-primary ); }
21+ ::-webkit-scrollbar-thumb { background : # 1c2130 ; border-radius : 8px ; }
22+ ::-webkit-scrollbar-thumb : hover { background : # 2a3247 ; }
23+
1724/* === Layout === */
1825.container { max-width : var (--max-width ); margin : 0 auto; padding : 0 24px ; }
1926
@@ -35,6 +42,40 @@ img { max-width: 100%; display: block; }
3542 max-width : 600px ; line-height : 1.7 ; margin-bottom : 32px ;
3643}
3744
45+ /* === Effects === */
46+ .text-glow-cyan {
47+ text-shadow : 0 0 24px rgba (34 , 211 , 238 , 0.55 ), 0 0 64px rgba (34 , 211 , 238 , 0.25 );
48+ }
49+ .text-glow-green {
50+ text-shadow : 0 0 20px rgba (74 , 222 , 128 , 0.5 );
51+ }
52+ .bg-grid {
53+ background-image :
54+ linear-gradient (rgba (148 , 163 , 184 , 0.055 ) 1px , transparent 1px ),
55+ linear-gradient (90deg , rgba (148 , 163 , 184 , 0.055 ) 1px , transparent 1px );
56+ background-size : 44px 44px ;
57+ }
58+ .bg-grid-fade {
59+ -webkit-mask-image : radial-gradient (ellipse 90% 70% at 50% 0% , black 30% , transparent 75% );
60+ mask-image : radial-gradient (ellipse 90% 70% at 50% 0% , black 30% , transparent 75% );
61+ }
62+ .panel {
63+ background : linear-gradient (180deg , rgba (17 , 20 , 28 , 0.85 ), rgba (9 , 11 , 16 , 0.9 ));
64+ border : 1px solid var (--border-subtle );
65+ }
66+ .panel-glow {
67+ box-shadow : 0 0 0 1px rgba (34 , 211 , 238 , 0.08 ), 0 20px 80px -20px rgba (34 , 211 , 238 , 0.15 ),
68+ 0 40px 120px -40px rgba (56 , 189 , 248 , 0.2 );
69+ }
70+ .noise-overlay ::after {
71+ content : '' ;
72+ position : absolute;
73+ inset : 0 ;
74+ pointer-events : none;
75+ opacity : 0.035 ;
76+ background-image : url ("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E" );
77+ }
78+
3879/* === Animations === */
3980.fade-in {
4081 opacity : 0 ; transform : translateY (16px );
@@ -49,13 +90,44 @@ img { max-width: 100%; display: block; }
4990 from { opacity : 0 ; transform : translateY (-10px ); }
5091 to { opacity : 1 ; transform : translateY (0 ); }
5192}
93+ .caret-blink { animation : caret 1s steps (1 ) infinite; }
94+ .animate-marquee { animation : marquee 36s linear infinite; }
95+ .animate-marquee-reverse { animation : marquee-reverse 42s linear infinite; }
96+ .animate-float-slow { animation : float-slow 9s ease-in-out infinite; }
97+ .animate-pulse-dot { animation : pulse-dot 2s ease-in-out infinite; }
98+ .animate-scanline { animation : scanline 7s linear infinite; }
99+ @keyframes caret {
100+ 0% , 49% { opacity : 1 ; }
101+ 50% , 100% { opacity : 0 ; }
102+ }
103+ @keyframes marquee {
104+ from { transform : translateX (0 ); }
105+ to { transform : translateX (-50% ); }
106+ }
107+ @keyframes marquee-reverse {
108+ from { transform : translateX (-50% ); }
109+ to { transform : translateX (0 ); }
110+ }
111+ @keyframes float-slow {
112+ 0% , 100% { transform : translateY (0px ); }
113+ 50% { transform : translateY (-14px ); }
114+ }
115+ @keyframes pulse-dot {
116+ 0% , 100% { opacity : 1 ; box-shadow : 0 0 0 0 rgba (74 , 222 , 128 , 0.5 ); }
117+ 50% { opacity : 0.7 ; box-shadow : 0 0 0 6px rgba (74 , 222 , 128 , 0 ); }
118+ }
119+ @keyframes scanline {
120+ 0% { transform : translateY (-100% ); }
121+ 100% { transform : translateY (400% ); }
122+ }
52123
53124/* === Responsive === */
54125@media (max-width : 768px ) {
55126 .hero { padding : 60px 0 48px ; }
56127 .hero h1 { letter-spacing : -1.6px ; }
57128 .hero p { font-size : 17px ; }
58129 .section { padding : 48px 0 ; }
130+ .nav-links a : not (.nav-cta ) { display : none; }
59131}
60132@media (max-width : 480px ) {
61133 .hero h1 { letter-spacing : -1.2px ; }
0 commit comments