404lab 2.0.1 → 2.0.2

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.
@@ -1,129 +1,219 @@
1
1
  "use client";
2
2
 
3
- const BlueGlitch = () => {
4
- return (
5
- <main className="min-h-screen flex items-center justify-center bg-[#000084] text-[#bbb]">
6
- <div className="notfound">
7
- <div className="centered">
8
- <span className="inverted">
9
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10
- </span>
11
- </div>
12
-
13
- <div className="centered">
14
- <span className="inverted">&nbsp;4&nbsp;0&nbsp;4&nbsp;</span>
15
- <span className="shadow">&nbsp;</span>
16
- </div>
17
-
18
- <div className="centered">
19
- <span className="inverted">
20
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
21
- </span>
22
- <span className="shadow">&nbsp;</span>
23
- </div>
24
-
25
- <div className="centered">
26
- &nbsp;
27
- <span className="shadow">
28
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
29
- </span>
30
- </div>
3
+ import { useEffect, useState } from "react";
4
+ import { motion, AnimatePresence } from "framer-motion";
5
+ import Link from "next/link";
6
+ import { cn } from "@/components/ui/cn";
7
+
8
+ const BlueGlitch = ({
9
+ fullScreen = true,
10
+ className,
11
+ }: {
12
+ fullScreen?: boolean;
13
+ className?: string;
14
+ }) => {
15
+ const [bootStep, setBootStep] = useState(0);
16
+
17
+ useEffect(() => {
18
+ const timer = setInterval(() => {
19
+ setBootStep((prev) => (prev < 8 ? prev + 1 : prev));
20
+ }, 400);
21
+ return () => clearInterval(timer);
22
+ }, []);
31
23
 
32
- <div className="row">&nbsp;</div>
33
- <div className="row">
34
- A fatal exception 404 has occurred at C0DE:ABAD1DEA in 0xC0DEBA5E.
35
- </div>
36
- <div className="row">The current request will be terminated.</div>
37
- <div className="row">&nbsp;</div>
38
- <div className="row">
39
- * Press any key to return to the previous page.
40
- </div>
41
- <div className="row">
42
- * Press CTRL+R to restart your server. You will
43
- </div>
44
- <div className="row">
45
- &nbsp;&nbsp;lose any unsaved information in all applications.
46
- </div>
47
- <div className="row">&nbsp;</div>
48
-
49
- <div className="centered">
50
- Please refresh the page...Or Return to safety&nbsp;
51
- <span className="blink">█</span>
52
- </div>
53
- </div>
54
-
55
- {/* ALL CSS INLINE */}
56
- <style jsx>{`
57
- * {
58
- box-sizing: border-box;
24
+ return (
25
+ <main
26
+ className={cn(
27
+ "relative flex items-center justify-center bg-[#000084] overflow-hidden select-none font-mono",
28
+ fullScreen ? "min-h-screen" : "h-full",
29
+ className
30
+ )}
31
+ >
32
+ <style jsx global>{`
33
+ @font-face {
34
+ font-family: 'DOS-VGA';
35
+ src: url('https://fonts.cdnfonts.com/s/17263/Perfect%20DOS%20VGA%20437.woff') format('woff');
59
36
  }
60
37
 
61
- .notfound {
62
- width: 70ch;
63
- height: 25ch;
64
- background-color: #000084;
65
- font-family: "more_perfect_dos_vgaregular", "Courier New", monospace;
66
- font-size: 10px;
38
+ .crt-container {
39
+ position: relative;
40
+ width: 100%;
41
+ height: 100%;
42
+ background: #000084;
43
+ display: flex;
44
+ flex-direction: column;
45
+ padding: 2rem;
46
+ box-shadow: inset 0 0 100px rgba(0,0,0,0.5);
67
47
  }
68
48
 
69
- @media (min-width: 600px) {
70
- .notfound {
71
- font-size: 16px;
72
- }
49
+ .crt-container::before {
50
+ content: " ";
51
+ display: block;
52
+ position: absolute;
53
+ top: 0;
54
+ left: 0;
55
+ bottom: 0;
56
+ right: 0;
57
+ background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
58
+ z-index: 10;
59
+ background-size: 100% 2px, 3px 100%;
60
+ pointer-events: none;
73
61
  }
74
62
 
75
- @media (min-width: 900px) {
76
- .notfound {
77
- font-size: 24px;
78
- font-weight: 400;
79
- }
63
+ .crt-container::after {
64
+ content: " ";
65
+ display: block;
66
+ position: absolute;
67
+ top: 0;
68
+ left: 0;
69
+ bottom: 0;
70
+ right: 0;
71
+ background: rgba(18, 16, 16, 0.1);
72
+ opacity: 0;
73
+ z-index: 10;
74
+ pointer-events: none;
75
+ animation: flicker 0.15s infinite;
80
76
  }
81
77
 
82
- .row {
83
- text-align: left;
78
+ @keyframes flicker {
79
+ 0% { opacity: 0.27861; }
80
+ 5% { opacity: 0.34769; }
81
+ 10% { opacity: 0.23604; }
82
+ 15% { opacity: 0.90626; }
83
+ 20% { opacity: 0.18128; }
84
+ 25% { opacity: 0.83891; }
85
+ 30% { opacity: 0.65583; }
86
+ 35% { opacity: 0.57807; }
87
+ 40% { opacity: 0.26559; }
88
+ 45% { opacity: 0.84693; }
89
+ 50% { opacity: 0.96019; }
90
+ 55% { opacity: 0.08523; }
91
+ 60% { opacity: 0.71056; }
92
+ 65% { opacity: 0.73437; }
93
+ 70% { opacity: 0.28557; }
94
+ 75% { opacity: 0.96303; }
95
+ 80% { opacity: 0.2268; }
96
+ 85% { opacity: 0.20415; }
97
+ 90% { opacity: 0.85617; }
98
+ 95% { opacity: 0.41032; }
99
+ 100% { opacity: 0.9576; }
84
100
  }
85
101
 
86
- .centered {
87
- text-align: center;
102
+ .dos-font {
103
+ font-family: 'DOS-VGA', monospace;
104
+ color: #bbb;
105
+ text-shadow: 2px 2px 0px #000;
88
106
  }
89
107
 
90
- .inverted {
108
+ .inverted-box {
91
109
  background-color: #bbb;
92
110
  color: #000084;
111
+ padding: 0 10px;
112
+ display: inline-block;
113
+ text-shadow: none;
93
114
  }
94
115
 
95
- .shadow {
96
- background-color: #000;
97
- color: #000084;
116
+ .scanline {
117
+ width: 100%;
118
+ height: 100px;
119
+ z-index: 11;
120
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(255, 255, 255, 0.05) 10%, rgba(0, 0, 0, 0.1) 100%);
121
+ opacity: 0.1;
122
+ position: absolute;
123
+ bottom: 100%;
124
+ animation: scanline 10s linear infinite;
98
125
  }
99
126
 
100
- .blink {
101
- animation: blink 0.8s infinite;
127
+ @keyframes scanline {
128
+ 0% { bottom: 100%; }
129
+ 100% { bottom: -100px; }
102
130
  }
131
+ `}</style>
103
132
 
104
- @keyframes blink {
105
- 0% {
106
- opacity: 0;
107
- }
108
- 49% {
109
- opacity: 0;
110
- }
111
- 50% {
112
- opacity: 1;
113
- }
114
- }
133
+ <div className="crt-container max-w-5xl h-[80vh] border-8 border-double border-[#bbb]/20 rounded-lg overflow-hidden flex flex-col items-center justify-center">
134
+ <div className="scanline" />
135
+
136
+ <div className="w-full max-w-3xl dos-font text-xs sm:text-lg lg:text-xl space-y-4">
137
+ <div className="text-center mb-8">
138
+ <motion.div
139
+ initial={{ scale: 0.9, opacity: 0 }}
140
+ animate={{ scale: 1, opacity: 1 }}
141
+ className="inline-block"
142
+ >
143
+ <div className="inverted-box text-3xl sm:text-5xl font-bold py-2 px-6">
144
+ WINDOWS
145
+ </div>
146
+ </motion.div>
147
+ </div>
148
+
149
+ <AnimatePresence>
150
+ {bootStep >= 1 && (
151
+ <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }}>
152
+ A fatal exception 404 has occurred at C0DE:ABAD1DEA.
153
+ </motion.div>
154
+ )}
155
+
156
+ {bootStep >= 2 && (
157
+ <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }}>
158
+ * The system could not find the file you requested.
159
+ </motion.div>
160
+ )}
161
+
162
+ {bootStep >= 3 && (
163
+ <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }}>
164
+ * Press ANY BUTTON to try finding it again in the void.
165
+ </motion.div>
166
+ )}
167
+
168
+ {bootStep >= 4 && (
169
+ <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }}>
170
+ * Contact your network administrator if this continues.
171
+ </motion.div>
172
+ )}
173
+
174
+ {bootStep >= 5 && (
175
+ <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} className="pt-8">
176
+ Current State: <span className="text-red-500 underline">ERROR_PAGE_NOT_FOUND</span>
177
+ </motion.div>
178
+ )}
179
+
180
+ {bootStep >= 6 && (
181
+ <motion.div
182
+ initial={{ opacity: 0 }}
183
+ animate={{ opacity: 1 }}
184
+ className="text-center pt-12"
185
+ >
186
+ Press any button to return home
187
+ <span className="inline-block w-3 h-6 bg-[#bbb] ml-2 animate-pulse align-middle" />
188
+ </motion.div>
189
+ )}
190
+
191
+ {bootStep >= 7 && (
192
+ <motion.div
193
+ initial={{ opacity: 0, y: 20 }}
194
+ animate={{ opacity: 1, y: 0 }}
195
+ className="flex justify-center pt-8"
196
+ >
197
+ <Link
198
+ href="/"
199
+ className="inverted-box hover:bg-white hover:text-[#000084] transition-colors duration-200 px-8 py-2 font-bold uppercase tracking-widest text-sm sm:text-base border-2 border-transparent"
200
+ >
201
+ Return to Safety
202
+ </Link>
203
+ </motion.div>
204
+ )}
205
+ </AnimatePresence>
206
+ </div>
115
207
 
116
- /* DOS VGA FONT */
117
- @font-face {
118
- font-family: "more_perfect_dos_vgaregular";
119
- src: url("https://fonts.cdnfonts.com/s/17263/Perfect%20DOS%20VGA%20437.woff")
120
- format("woff");
121
- font-weight: normal;
122
- font-style: normal;
123
- }
124
- `}</style>
208
+ <div className="absolute bottom-4 left-4 opacity-30 text-[10px] dos-font uppercase tracking-tighter">
209
+ Kernel Memory: 0x4041337 | IRQ: 07 | DMA: 02
210
+ </div>
211
+ </div>
212
+
213
+ <div className="absolute inset-0 pointer-events-none bg-[radial-gradient(circle_at_center,_transparent_0%,_rgba(0,0,0,0.4)_100%)] z-20" />
125
214
  </main>
126
215
  );
127
216
  };
128
217
 
129
218
  export default BlueGlitch;
219
+
@@ -1,53 +1,141 @@
1
+ "use client";
2
+
1
3
  import Image from "next/image";
2
4
  import Link from "next/link";
5
+ import { motion } from "framer-motion";
6
+ import { Search, GraduationCap, Code2, Terminal, BookOpen } from "lucide-react";
7
+ import { cn } from "@/components/ui/cn";
8
+
9
+ const GeeksforGeeks = ({ className }: { className?: string }) => {
10
+ const containerVariants = {
11
+ hidden: { opacity: 0 },
12
+ visible: {
13
+ opacity: 1,
14
+ transition: {
15
+ staggerChildren: 0.1,
16
+ },
17
+ },
18
+ };
19
+
20
+ const itemVariants = {
21
+ hidden: { opacity: 0, y: 20 },
22
+ visible: { opacity: 1, y: 0 },
23
+ };
3
24
 
4
- const GeeksforGeeks = () => {
5
25
  return (
6
- <div className="min-h-screen flex flex-col items-center justify-center bg-white px-4">
7
- <Image
8
- src="https://media.geeksforgeeks.org/auth-dashboard-uploads/Illustration.svg"
9
- alt="404 Illustration"
10
- width={420}
11
- height={320}
12
- priority
13
- className="mb-8"
14
- />
15
-
16
- <h1 className="text-2xl font-semibold text-gray-900 mb-2">
17
- Whoops, that page is gone.
18
- </h1>
19
-
20
- <p className="text-gray-600 text-center max-w-md mb-10">
21
- While you’re here, feast your eyes upon these popular recommendations
22
- for you.
23
- </p>
24
-
25
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
26
- <Card title="Problem of the day" color="from-blue-400 to-blue-300" />
27
- <Card title="Courses @90% Refund" color="from-pink-400 to-pink-300" />
28
- <Card title="Interview Series" color="from-yellow-400 to-yellow-300" />
29
- <Card title="Python Tutorial" color="from-green-400 to-green-300" />
30
- </div>
26
+ <div
27
+ className={cn(
28
+ "min-h-screen flex flex-col items-center justify-center bg-[#f8f9fa] relative overflow-hidden px-4 py-12",
29
+ className
30
+ )}
31
+ >
32
+ <div className="absolute inset-0 z-0 opacity-[0.03] pointer-events-none"
33
+ style={{ backgroundImage: 'radial-gradient(#2f8d46 1px, transparent 1px)', backgroundSize: '30px 30px' }} />
31
34
 
32
- <Link
33
- href="/"
34
- className="mt-10 text-green-600 font-medium hover:underline"
35
+ <motion.div
36
+ className="z-10 w-full max-w-5xl flex flex-col items-center"
37
+ variants={containerVariants}
38
+ initial="hidden"
39
+ animate="visible"
35
40
  >
36
- Go back to Home
37
- </Link>
41
+ <motion.div variants={itemVariants} className="mb-8">
42
+ <Image
43
+ src="https://media.geeksforgeeks.org/auth-dashboard-uploads/Illustration.svg"
44
+ alt="404 Illustration"
45
+ width={400}
46
+ height={300}
47
+ priority
48
+ className="w-full max-w-[380px] h-auto drop-shadow-2xl"
49
+ />
50
+ </motion.div>
51
+
52
+ <motion.h1
53
+ variants={itemVariants}
54
+ className="text-4xl md:text-5xl font-bold text-[#2f8d46] mb-4 text-center"
55
+ >
56
+ Data Structure Not Found
57
+ </motion.h1>
58
+
59
+ <motion.p
60
+ variants={itemVariants}
61
+ className="text-gray-600 text-center max-w-xl mb-12 text-lg"
62
+ >
63
+ Even the most efficient algorithms occasionally hit a null pointer.
64
+ While we garbage collect this error, why not explore these popular topics?
65
+ </motion.p>
66
+
67
+ <motion.div
68
+ variants={itemVariants}
69
+ className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6 w-full mb-12"
70
+ >
71
+ <Card
72
+ title="DSA Self Paced"
73
+ icon={<Code2 className="w-6 h-6" />}
74
+ color="bg-blue-50 text-blue-600 border-blue-100"
75
+ description="Master Data Structures"
76
+ />
77
+ <Card
78
+ title="Complete Interview"
79
+ icon={<GraduationCap className="w-6 h-6" />}
80
+ color="bg-purple-50 text-purple-600 border-purple-100"
81
+ description="A-Z Preparation"
82
+ />
83
+ <Card
84
+ title="System Design"
85
+ icon={<Terminal className="w-6 h-6" />}
86
+ color="bg-amber-50 text-amber-600 border-amber-100"
87
+ description="Scalable Architectures"
88
+ />
89
+ <Card
90
+ title="Python Master"
91
+ icon={<BookOpen className="w-6 h-6" />}
92
+ color="bg-emerald-50 text-emerald-600 border-emerald-100"
93
+ description="For Data Science"
94
+ />
95
+ </motion.div>
96
+
97
+ <motion.div variants={itemVariants} className="flex flex-col sm:flex-row gap-4 items-center">
98
+ <div className="relative group">
99
+ <div className="absolute inset-y-0 left-3 flex items-center pointer-events-none">
100
+ <Search className="w-4 h-4 text-gray-400" />
101
+ </div>
102
+ <input
103
+ type="text"
104
+ placeholder="Search for tutorials..."
105
+ className="pl-10 pr-4 py-3 bg-white border border-gray-200 rounded-full w-64 md:w-80 focus:outline-none focus:ring-2 focus:ring-[#2f8d46]/20 focus:border-[#2f8d46] transition-all shadow-sm"
106
+ />
107
+ </div>
108
+
109
+ <Link
110
+ href="/"
111
+ className="px-8 py-3 bg-[#2f8d46] text-white font-semibold rounded-full hover:bg-[#267339] transition-all shadow-md hover:shadow-lg active:scale-95"
112
+ >
113
+ Back to Dashboard
114
+ </Link>
115
+ </motion.div>
116
+ </motion.div>
117
+
118
+ <div className="absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-transparent via-[#2f8d46]/20 to-transparent" />
38
119
  </div>
39
120
  );
40
121
  };
41
122
 
42
- const Card = ({ title, color }: { title: string; color: string }) => {
123
+ const Card = ({ title, icon, color, description }: { title: string; icon: React.ReactNode; color: string; description: string }) => {
43
124
  return (
44
- <div
45
- className={`w-64 h-36 rounded-xl bg-gradient-to-br ${color} p-5 text-white flex flex-col justify-between shadow-sm`}
125
+ <motion.div
126
+ whileHover={{ y: -8, scale: 1.02 }}
127
+ className={cn(
128
+ "p-6 rounded-2xl border bg-white flex flex-col items-center text-center shadow-sm hover:shadow-xl transition-all duration-300 cursor-pointer group"
129
+ )}
46
130
  >
47
- <div className="font-semibold text-lg">{title}</div>
48
- <span className="text-sm opacity-90">Know more →</span>
49
- </div>
131
+ <div className={cn("p-4 rounded-xl mb-4 transition-colors group-hover:scale-110", color)}>
132
+ {icon}
133
+ </div>
134
+ <h3 className="font-bold text-gray-900 mb-1">{title}</h3>
135
+ <p className="text-sm text-gray-500">{description}</p>
136
+ </motion.div>
50
137
  );
51
138
  };
52
139
 
53
140
  export default GeeksforGeeks;
141
+
@@ -1,30 +1,98 @@
1
- const Google = () => {
2
- return (
3
- <div className="min-h-screen bg-white flex items-center justify-center">
4
- <div className="w-full max-w-4xl px-8 flex items-center justify-between">
5
- <div>
6
- <img
7
- src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
8
- alt="Google"
9
- className="h-9 mb-5"
10
- />
11
- <h1 className="text-lg font-normal text-black mb-3">
12
- <span className="font-medium">404.</span>{" "}
13
- <span className="text-gray-600">That''s an error.</span>
14
- </h1>
15
- <p className="text-gray-600 max-w-sm leading-relaxed text-sm">
16
- The requested URL was not found on this server.{" "}
17
- <span className="text-gray-500">That''s all we know.</span>
18
- </p>
19
- </div>
20
- <img
21
- src="https://www.google.com/images/errors/robot.png"
22
- alt="Broken robot"
23
- className="w-[240px] h-auto"
24
- />
25
- </div>
26
- </div>
27
- );
28
- };
29
-
1
+ "use client";
2
+
3
+ import { motion } from "framer-motion";
4
+ import Link from "next/link";
5
+ import { cn } from "@/components/ui/cn";
6
+ import Image from "next/image";
7
+
8
+
9
+ const Google = ({ className }: { className?: string }) => {
10
+ return (
11
+ <div
12
+ className={cn(
13
+ "min-h-screen bg-white flex flex-col items-center justify-center font-sans relative overflow-hidden",
14
+ className
15
+ )}
16
+ >
17
+ <div className="absolute top-10 left-10 md:left-20">
18
+ <Image
19
+ src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png"
20
+ alt="Google"
21
+ width={92}
22
+ height={30}
23
+ className="opacity-80"
24
+ />
25
+ </div>
26
+
27
+ <div className="w-full max-w-5xl px-8 flex flex-col md:flex-row items-center justify-between gap-16 text-center md:text-left z-10">
28
+ <motion.div
29
+ initial={{ opacity: 0, x: -30 }}
30
+ animate={{ opacity: 1, x: 0 }}
31
+ transition={{ duration: 0.8, ease: "easeOut" }}
32
+ className="max-w-md"
33
+ >
34
+ <h1 className="text-2xl md:text-3xl font-medium text-[#3c4043] mb-4">
35
+ <span className="font-bold text-4xl block mb-2">404.</span>
36
+ That&apos;s an error.
37
+ </h1>
38
+ <p className="text-[#70757a] text-lg leading-relaxed mb-10">
39
+ The requested URL was not found on this server.{" "}
40
+ <span className="text-[#3c4043] font-medium italic">That&apos;s all we know.</span>
41
+ </p>
42
+
43
+ <div className="flex flex-col sm:flex-row gap-4 justify-center md:justify-start">
44
+ <Link
45
+ href="/"
46
+ className="px-8 py-3 bg-[#1a73e8] text-white font-medium rounded-md hover:bg-[#185abc] hover:shadow-md transition-all active:scale-95"
47
+ >
48
+ Back to Safety
49
+ </Link>
50
+ <button className="px-8 py-3 text-[#1a73e8] font-medium rounded-md hover:bg-[#f1f3f4] transition-all">
51
+ Try a search
52
+ </button>
53
+ </div>
54
+ </motion.div>
55
+
56
+ <motion.div
57
+ initial={{ opacity: 0, scale: 0.8, rotate: 10 }}
58
+ animate={{ opacity: 1, scale: 1, rotate: 0 }}
59
+ transition={{
60
+ duration: 1,
61
+ type: "spring",
62
+ stiffness: 100,
63
+ delay: 0.2
64
+ }}
65
+ className="relative group"
66
+ >
67
+ <motion.div
68
+ animate={{
69
+ y: [0, -15, 0],
70
+ rotate: [0, -2, 2, 0]
71
+ }}
72
+ transition={{
73
+ duration: 6,
74
+ repeat: Infinity,
75
+ ease: "easeInOut"
76
+ }}
77
+ >
78
+ <img
79
+ src="https://www.google.com/images/errors/robot.png"
80
+ alt="Broken robot"
81
+ className="w-[280px] md:w-[350px] h-auto drop-shadow-[0_20px_40px_rgba(0,0,0,0.1)] group-hover:drop-shadow-[0_30px_60px_rgba(0,0,0,0.15)] transition-all"
82
+ />
83
+ </motion.div>
84
+
85
+ <div className="absolute -z-10 bottom-4 left-1/2 -translate-x-1/2 w-32 h-6 bg-black opacity-[0.05] rounded-full blur-xl scale-x-150 animate-pulse" />
86
+ </motion.div>
87
+ </div>
88
+
89
+ <div className="absolute -bottom-24 -left-24 w-64 h-64 bg-[#4285F4] opacity-[0.03] rounded-full blur-3xl animate-pulse" />
90
+ <div className="absolute top-20 -right-24 w-80 h-80 bg-[#EA4335] opacity-[0.03] rounded-full blur-3xl" />
91
+ <div className="absolute bottom-20 right-40 w-48 h-48 bg-[#FBBC05] opacity-[0.03] rounded-full blur-3xl animate-bounce duration-[10s]" />
92
+ <div className="absolute top-40 left-1/3 w-32 h-32 bg-[#34A853] opacity-[0.03] rounded-full blur-3xl" />
93
+ </div>
94
+ );
95
+ };
96
+
30
97
  export default Google;
98
+