1+ * {
2+ margin : 0 ;
3+ padding : 0 ;
4+ box-sizing : border-box;
5+ }
6+
7+ body {
8+ min-height : 100vh ;
9+ display : flex;
10+ justify-content : center;
11+ align-items : center;
12+ background : # 000 ;
13+ overflow : hidden;
14+ }
15+
16+ .matrix-container {
17+ position : relative;
18+ width : 100% ;
19+ height : 100vh ;
20+ display : flex;
21+ justify-content : center;
22+ align-items : center;
23+ }
24+
25+ .glitch-text {
26+ font-size : 120px ;
27+ font-weight : bold;
28+ color : # 00ff41 ;
29+ font-family : monospace;
30+ position : relative;
31+ text-shadow : 0 0 10px # 00ff41 ;
32+ animation : glitch 1s infinite;
33+ }
34+
35+ .glitch-text ::before ,
36+ .glitch-text ::after {
37+ content : attr (data-text);
38+ position : absolute;
39+ top : 0 ;
40+ left : 0 ;
41+ width : 100% ;
42+ height : 100% ;
43+ }
44+
45+ .glitch-text ::before {
46+ animation : glitchTop 1.5s infinite;
47+ clip-path : polygon (0 0 , 100% 0 , 100% 33% , 0 33% );
48+ color : # ff00ff ;
49+ }
50+
51+ .glitch-text ::after {
52+ animation : glitchBottom 1.3s infinite;
53+ clip-path : polygon (0 67% , 100% 67% , 100% 100% , 0 100% );
54+ color : # 00ffff ;
55+ }
56+
57+ .matrix-lines {
58+ position : absolute;
59+ width : 100% ;
60+ height : 100% ;
61+ pointer-events : none;
62+ }
63+
64+ .line {
65+ position : absolute;
66+ width : 2px ;
67+ height : 100% ;
68+ background : linear-gradient (transparent, # 00ff41, transparent);
69+ animation : rain 3s linear infinite;
70+ }
71+
72+ .line : nth-child (1 ) { left : 10% ; animation-delay : 0s ; }
73+ .line : nth-child (2 ) { left : 20% ; animation-delay : 0.5s ; }
74+ .line : nth-child (3 ) { left : 35% ; animation-delay : 1s ; }
75+ .line : nth-child (4 ) { left : 50% ; animation-delay : 1.5s ; }
76+ .line : nth-child (5 ) { left : 65% ; animation-delay : 0.8s ; }
77+ .line : nth-child (6 ) { left : 75% ; animation-delay : 2s ; }
78+ .line : nth-child (7 ) { left : 85% ; animation-delay : 1.2s ; }
79+ .line : nth-child (8 ) { left : 95% ; animation-delay : 0.3s ; }
80+
81+ @keyframes glitch {
82+ 0% , 90% , 100% {
83+ transform : translate (0 );
84+ }
85+ 92% {
86+ transform : translate (-5px , 5px );
87+ }
88+ 94% {
89+ transform : translate (5px , -5px );
90+ }
91+ 96% {
92+ transform : translate (-5px , -5px );
93+ }
94+ }
95+
96+ @keyframes glitchTop {
97+ 0% , 90% , 100% {
98+ transform : translate (0 );
99+ }
100+ 92% {
101+ transform : translate (-8px , -5px );
102+ }
103+ 96% {
104+ transform : translate (8px , 5px );
105+ }
106+ }
107+
108+ @keyframes glitchBottom {
109+ 0% , 90% , 100% {
110+ transform : translate (0 );
111+ }
112+ 93% {
113+ transform : translate (8px , 5px );
114+ }
115+ 97% {
116+ transform : translate (-8px , -5px );
117+ }
118+ }
119+
120+ @keyframes rain {
121+ 0% {
122+ transform : translateY (-100% );
123+ opacity : 0 ;
124+ }
125+ 50% {
126+ opacity : 1 ;
127+ }
128+ 100% {
129+ transform : translateY (100vh );
130+ opacity : 0 ;
131+ }
132+ }
0 commit comments