Rahul0505 commited on
Commit
d1bedd1
·
verified ·
1 Parent(s): 4f602e9

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +81 -139
index.html CHANGED
@@ -10,81 +10,72 @@
10
  padding: 0;
11
  box-sizing: border-box;
12
  }
13
-
14
  body {
15
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
16
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
17
  min-height: 100vh;
18
  overflow-x: hidden;
19
  cursor: default;
20
  }
21
-
22
  .container {
23
  max-width: 1200px;
24
  margin: 0 auto;
25
  padding: 40px 20px;
26
  }
27
-
28
- /* Header Section */
29
  .header {
30
  text-align: center;
31
- color: white;
32
  margin-bottom: 60px;
33
  animation: fadeInDown 1s ease-out;
34
  }
35
-
36
  .header h1 {
37
  font-size: 4rem;
38
  font-weight: 800;
39
  margin-bottom: 10px;
40
- text-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
 
 
 
41
  letter-spacing: -1px;
42
  }
43
-
44
  .header .subtitle {
45
  font-size: 1.5rem;
46
- opacity: 0.95;
47
- font-weight: 300;
48
- letter-spacing: 1px;
49
  }
50
-
51
  .divider {
52
  width: 100px;
53
  height: 4px;
54
- background: white;
55
  margin: 30px auto;
56
  border-radius: 2px;
57
  animation: expandWidth 1s ease-out 0.5s both;
58
  }
59
-
60
- /* Tech Stack Section */
61
  .tech-stack-section {
62
- background: rgba(255, 255, 255, 0.95);
63
- border-radius: 30px;
64
  padding: 50px 40px;
65
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
 
66
  animation: fadeInUp 1s ease-out 0.3s both;
67
  }
68
-
69
  .tech-stack-section h2 {
70
  text-align: center;
71
  font-size: 2.5rem;
72
- color: #333;
73
  margin-bottom: 20px;
74
  font-weight: 700;
75
  }
76
-
77
  .tech-stack-section .description {
78
  text-align: center;
79
- color: #666;
80
  font-size: 1.1rem;
81
  margin-bottom: 50px;
82
  max-width: 700px;
83
  margin-left: auto;
84
  margin-right: auto;
85
  }
86
-
87
- /* 3D Interactive Tech Stack Grid */
88
  .tech-grid {
89
  display: grid;
90
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
@@ -92,21 +83,20 @@
92
  perspective: 1000px;
93
  margin-bottom: 40px;
94
  }
95
-
96
  .tech-card {
97
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
 
98
  border-radius: 20px;
99
  padding: 40px 20px;
100
  text-align: center;
101
- color: white;
102
  transition: all 0.3s ease;
103
  transform-style: preserve-3d;
104
  cursor: pointer;
105
  position: relative;
106
  overflow: hidden;
107
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
108
  }
109
-
110
  .tech-card::before {
111
  content: '';
112
  position: absolute;
@@ -114,113 +104,102 @@
114
  left: 0;
115
  right: 0;
116
  bottom: 0;
117
- background: linear-gradient(45deg, rgba(255,255,255,0.1), rgba(255,255,255,0));
118
  opacity: 0;
119
  transition: opacity 0.3s ease;
120
  }
121
-
122
  .tech-card:hover::before {
123
  opacity: 1;
124
  }
125
-
126
  .tech-card:hover {
127
  transform: translateY(-10px) scale(1.05);
128
- box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);
 
129
  }
130
-
131
  .tech-icon {
132
- font-size: 4rem;
133
- margin-bottom: 20px;
134
- display: inline-block;
 
 
 
135
  transition: transform 0.3s ease;
136
  }
137
-
 
 
 
 
138
  .tech-card:hover .tech-icon {
139
  transform: rotateY(360deg) scale(1.2);
140
  }
141
-
142
  .tech-name {
143
  font-size: 1.5rem;
144
  font-weight: 700;
145
  margin-bottom: 10px;
 
146
  }
147
-
148
  .tech-description {
149
  font-size: 0.9rem;
150
- opacity: 0.9;
151
  line-height: 1.5;
152
  }
153
-
154
- /* Color variants for different tech */
155
- .tech-card.pytorch {
156
- background: linear-gradient(135deg, #EE4C2C 0%, #FF6B45 100%);
157
  }
158
-
159
- .tech-card.tensorflow {
160
- background: linear-gradient(135deg, #FF6F00 0%, #FF8F00 100%);
161
  }
162
-
163
- .tech-card.numpy {
164
- background: linear-gradient(135deg, #013243 0%, #4DABCF 100%);
165
  }
166
-
167
- .tech-card.pandas {
168
- background: linear-gradient(135deg, #150458 0%, #3B0A78 100%);
169
  }
170
-
171
- .tech-card.jax {
172
- background: linear-gradient(135deg, #5E4FA2 0%, #8C6BB1 100%);
173
  }
174
-
175
- .tech-card.cuda {
176
- background: linear-gradient(135deg, #76B900 0%, #8ED100 100%);
177
  }
178
-
179
- /* Stats Section */
180
  .stats-section {
181
  display: grid;
182
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
183
  gap: 20px;
184
  margin-top: 50px;
185
  }
186
-
187
  .stat-card {
188
- background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
189
  padding: 30px;
190
  border-radius: 15px;
191
  text-align: center;
192
  color: white;
193
  transition: transform 0.3s ease;
 
194
  }
195
-
196
  .stat-card:hover {
197
  transform: translateY(-5px);
 
198
  }
199
-
200
  .stat-number {
201
  font-size: 3rem;
202
  font-weight: 800;
203
  margin-bottom: 10px;
204
  }
205
-
206
  .stat-label {
207
  font-size: 1rem;
208
- opacity: 0.9;
209
  text-transform: uppercase;
210
  letter-spacing: 1px;
 
211
  }
212
-
213
- /* Floating Animation */
214
  @keyframes float {
215
  0%, 100% { transform: translateY(0px); }
216
  50% { transform: translateY(-20px); }
217
  }
218
-
219
  .floating {
220
  animation: float 3s ease-in-out infinite;
221
  }
222
-
223
- /* Fade In Animations */
224
  @keyframes fadeInDown {
225
  from {
226
  opacity: 0;
@@ -231,7 +210,6 @@
231
  transform: translateY(0);
232
  }
233
  }
234
-
235
  @keyframes fadeInUp {
236
  from {
237
  opacity: 0;
@@ -242,52 +220,36 @@
242
  transform: translateY(0);
243
  }
244
  }
245
-
246
  @keyframes expandWidth {
247
- from {
248
- width: 0;
249
- }
250
- to {
251
- width: 100px;
252
- }
253
  }
254
-
255
- /* Footer */
256
  .footer {
257
  text-align: center;
258
- color: white;
259
  margin-top: 60px;
260
  padding: 30px;
261
  font-size: 1rem;
262
- opacity: 0.9;
263
  }
264
-
265
  .footer a {
266
- color: white;
267
  text-decoration: none;
268
  font-weight: 600;
269
- border-bottom: 2px solid white;
270
- transition: opacity 0.3s ease;
271
  }
272
-
273
  .footer a:hover {
274
- opacity: 0.7;
275
  }
276
-
277
- /* Responsive Design */
278
  @media (max-width: 768px) {
279
  .header h1 {
280
  font-size: 2.5rem;
281
  }
282
-
283
  .header .subtitle {
284
  font-size: 1.2rem;
285
  }
286
-
287
  .tech-stack-section {
288
  padding: 30px 20px;
289
  }
290
-
291
  .tech-grid {
292
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
293
  gap: 20px;
@@ -297,14 +259,12 @@
297
  </head>
298
  <body>
299
  <div class="container">
300
- <!-- Header -->
301
  <div class="header">
302
  <h1 class="floating">💻 Coding Club - RVCE</h1>
303
  <div class="divider"></div>
304
  <p class="subtitle">Building the Future, One Line of Code at a Time</p>
305
  </div>
306
 
307
- <!-- Tech Stack Section -->
308
  <div class="tech-stack-section">
309
  <h2>🚀 Our Tech Stack</h2>
310
  <p class="description">
@@ -313,43 +273,54 @@
313
 
314
  <div class="tech-grid" id="techGrid">
315
  <div class="tech-card pytorch" data-tilt>
316
- <div class="tech-icon">🔥</div>
 
 
317
  <div class="tech-name">PyTorch</div>
318
  <div class="tech-description">Deep Learning Framework</div>
319
  </div>
320
 
321
  <div class="tech-card tensorflow" data-tilt>
322
- <div class="tech-icon">🧠</div>
 
 
323
  <div class="tech-name">TensorFlow</div>
324
  <div class="tech-description">ML Platform</div>
325
  </div>
326
 
327
  <div class="tech-card numpy" data-tilt>
328
- <div class="tech-icon">🔢</div>
 
 
329
  <div class="tech-name">NumPy</div>
330
  <div class="tech-description">Numerical Computing</div>
331
  </div>
332
 
333
  <div class="tech-card pandas" data-tilt>
334
- <div class="tech-icon">🐼</div>
 
 
335
  <div class="tech-name">Pandas</div>
336
  <div class="tech-description">Data Analysis</div>
337
  </div>
338
 
339
  <div class="tech-card jax" data-tilt>
340
- <div class="tech-icon">⚡</div>
 
 
341
  <div class="tech-name">JAX</div>
342
  <div class="tech-description">High-Performance ML</div>
343
  </div>
344
 
345
  <div class="tech-card cuda" data-tilt>
346
- <div class="tech-icon">🎮</div>
 
 
347
  <div class="tech-name">CUDA</div>
348
  <div class="tech-description">GPU Acceleration</div>
349
  </div>
350
  </div>
351
 
352
- <!-- Stats Section -->
353
  <div class="stats-section">
354
  <div class="stat-card">
355
  <div class="stat-number">150+</div>
@@ -370,7 +341,6 @@
370
  </div>
371
  </div>
372
 
373
- <!-- Footer -->
374
  <div class="footer">
375
  <p>🎓 RV College of Engineering | Bengaluru, Karnataka</p>
376
  <p style="margin-top: 15px;">
@@ -381,58 +351,33 @@
381
  </div>
382
 
383
  <script>
384
- // 3D Tilt Effect on Mouse Move
385
  const cards = document.querySelectorAll('[data-tilt]');
386
-
387
  cards.forEach(card => {
388
  card.addEventListener('mousemove', handleTilt);
389
  card.addEventListener('mouseleave', resetTilt);
390
  });
391
-
392
  function handleTilt(e) {
393
  const card = e.currentTarget;
394
  const rect = card.getBoundingClientRect();
395
  const x = e.clientX - rect.left;
396
  const y = e.clientY - rect.top;
397
-
398
  const centerX = rect.width / 2;
399
  const centerY = rect.height / 2;
400
-
401
  const rotateX = (y - centerY) / 10;
402
  const rotateY = (centerX - x) / 10;
403
-
404
- card.style.transform = `
405
- perspective(1000px)
406
- rotateX(${rotateX}deg)
407
- rotateY(${rotateY}deg)
408
- scale3d(1.05, 1.05, 1.05)
409
- `;
410
  }
411
-
412
  function resetTilt(e) {
413
  const card = e.currentTarget;
414
- card.style.transform = `
415
- perspective(1000px)
416
- rotateX(0deg)
417
- rotateY(0deg)
418
- scale3d(1, 1, 1)
419
- `;
420
  }
421
-
422
- // Add subtle parallax effect to header on scroll
423
  window.addEventListener('scroll', () => {
424
  const header = document.querySelector('.header');
425
  const scrolled = window.pageYOffset;
426
  header.style.transform = `translateY(${scrolled * 0.5}px)`;
427
  header.style.opacity = 1 - (scrolled / 500);
428
  });
429
-
430
- // Animate stats on scroll into view
431
- const observerOptions = {
432
- threshold: 0.5,
433
- rootMargin: '0px'
434
- };
435
-
436
  const observer = new IntersectionObserver((entries) => {
437
  entries.forEach(entry => {
438
  if (entry.isIntersecting) {
@@ -440,12 +385,9 @@
440
  }
441
  });
442
  }, observerOptions);
443
-
444
  document.querySelectorAll('.stat-card').forEach(card => {
445
  observer.observe(card);
446
  });
447
-
448
- // Add click effect to cards
449
  cards.forEach(card => {
450
  card.addEventListener('click', function() {
451
  this.style.animation = 'none';
 
10
  padding: 0;
11
  box-sizing: border-box;
12
  }
 
13
  body {
14
+ font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
15
+ background: linear-gradient(135deg, #fef6e4 0%, #fff8f0 100%);
16
  min-height: 100vh;
17
  overflow-x: hidden;
18
  cursor: default;
19
  }
 
20
  .container {
21
  max-width: 1200px;
22
  margin: 0 auto;
23
  padding: 40px 20px;
24
  }
 
 
25
  .header {
26
  text-align: center;
27
+ color: #1f2937;
28
  margin-bottom: 60px;
29
  animation: fadeInDown 1s ease-out;
30
  }
 
31
  .header h1 {
32
  font-size: 4rem;
33
  font-weight: 800;
34
  margin-bottom: 10px;
35
+ background: linear-gradient(90deg, #ff9d00 0%, #ffb347 50%, #ff6b6b 100%);
36
+ -webkit-background-clip: text;
37
+ -webkit-text-fill-color: transparent;
38
+ background-clip: text;
39
  letter-spacing: -1px;
40
  }
 
41
  .header .subtitle {
42
  font-size: 1.5rem;
43
+ color: #6b7280;
44
+ font-weight: 400;
45
+ letter-spacing: 0.5px;
46
  }
 
47
  .divider {
48
  width: 100px;
49
  height: 4px;
50
+ background: linear-gradient(90deg, #ff9d00, #ffb347);
51
  margin: 30px auto;
52
  border-radius: 2px;
53
  animation: expandWidth 1s ease-out 0.5s both;
54
  }
 
 
55
  .tech-stack-section {
56
+ background: white;
57
+ border-radius: 24px;
58
  padding: 50px 40px;
59
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
60
+ border: 1px solid #f3f4f6;
61
  animation: fadeInUp 1s ease-out 0.3s both;
62
  }
 
63
  .tech-stack-section h2 {
64
  text-align: center;
65
  font-size: 2.5rem;
66
+ color: #1f2937;
67
  margin-bottom: 20px;
68
  font-weight: 700;
69
  }
 
70
  .tech-stack-section .description {
71
  text-align: center;
72
+ color: #6b7280;
73
  font-size: 1.1rem;
74
  margin-bottom: 50px;
75
  max-width: 700px;
76
  margin-left: auto;
77
  margin-right: auto;
78
  }
 
 
79
  .tech-grid {
80
  display: grid;
81
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
 
83
  perspective: 1000px;
84
  margin-bottom: 40px;
85
  }
 
86
  .tech-card {
87
+ background: white;
88
+ border: 2px solid #e5e7eb;
89
  border-radius: 20px;
90
  padding: 40px 20px;
91
  text-align: center;
92
+ color: #1f2937;
93
  transition: all 0.3s ease;
94
  transform-style: preserve-3d;
95
  cursor: pointer;
96
  position: relative;
97
  overflow: hidden;
98
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
99
  }
 
100
  .tech-card::before {
101
  content: '';
102
  position: absolute;
 
104
  left: 0;
105
  right: 0;
106
  bottom: 0;
107
+ background: linear-gradient(135deg, rgba(255, 157, 0, 0.05), rgba(255, 179, 71, 0.05));
108
  opacity: 0;
109
  transition: opacity 0.3s ease;
110
  }
 
111
  .tech-card:hover::before {
112
  opacity: 1;
113
  }
 
114
  .tech-card:hover {
115
  transform: translateY(-10px) scale(1.05);
116
+ box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
117
+ border-color: #ff9d00;
118
  }
 
119
  .tech-icon {
120
+ width: 80px;
121
+ height: 80px;
122
+ margin: 0 auto 20px;
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
  transition: transform 0.3s ease;
127
  }
128
+ .tech-icon img {
129
+ max-width: 100%;
130
+ max-height: 100%;
131
+ object-fit: contain;
132
+ }
133
  .tech-card:hover .tech-icon {
134
  transform: rotateY(360deg) scale(1.2);
135
  }
 
136
  .tech-name {
137
  font-size: 1.5rem;
138
  font-weight: 700;
139
  margin-bottom: 10px;
140
+ color: #1f2937;
141
  }
 
142
  .tech-description {
143
  font-size: 0.9rem;
144
+ color: #6b7280;
145
  line-height: 1.5;
146
  }
147
+ .tech-card.pytorch .tech-icon img {
148
+ filter: hue-rotate(0deg);
 
 
149
  }
150
+ .tech-card.tensorflow .tech-icon img {
151
+ filter: hue-rotate(0deg);
 
152
  }
153
+ .tech-card.numpy .tech-icon img {
154
+ filter: hue-rotate(0deg);
 
155
  }
156
+ .tech-card.pandas .tech-icon img {
157
+ filter: hue-rotate(0deg);
 
158
  }
159
+ .tech-card.jax .tech-icon img {
160
+ filter: hue-rotate(0deg);
 
161
  }
162
+ .tech-card.cuda .tech-icon img {
163
+ filter: hue-rotate(0deg);
 
164
  }
 
 
165
  .stats-section {
166
  display: grid;
167
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
168
  gap: 20px;
169
  margin-top: 50px;
170
  }
 
171
  .stat-card {
172
+ background: linear-gradient(135deg, #ff9d00 0%, #ffb347 100%);
173
  padding: 30px;
174
  border-radius: 15px;
175
  text-align: center;
176
  color: white;
177
  transition: transform 0.3s ease;
178
+ box-shadow: 0 4px 12px rgba(255, 157, 0, 0.25);
179
  }
 
180
  .stat-card:hover {
181
  transform: translateY(-5px);
182
+ box-shadow: 0 8px 20px rgba(255, 157, 0, 0.35);
183
  }
 
184
  .stat-number {
185
  font-size: 3rem;
186
  font-weight: 800;
187
  margin-bottom: 10px;
188
  }
 
189
  .stat-label {
190
  font-size: 1rem;
191
+ opacity: 0.95;
192
  text-transform: uppercase;
193
  letter-spacing: 1px;
194
+ font-weight: 600;
195
  }
 
 
196
  @keyframes float {
197
  0%, 100% { transform: translateY(0px); }
198
  50% { transform: translateY(-20px); }
199
  }
 
200
  .floating {
201
  animation: float 3s ease-in-out infinite;
202
  }
 
 
203
  @keyframes fadeInDown {
204
  from {
205
  opacity: 0;
 
210
  transform: translateY(0);
211
  }
212
  }
 
213
  @keyframes fadeInUp {
214
  from {
215
  opacity: 0;
 
220
  transform: translateY(0);
221
  }
222
  }
 
223
  @keyframes expandWidth {
224
+ from { width: 0; }
225
+ to { width: 100px; }
 
 
 
 
226
  }
 
 
227
  .footer {
228
  text-align: center;
229
+ color: #6b7280;
230
  margin-top: 60px;
231
  padding: 30px;
232
  font-size: 1rem;
 
233
  }
 
234
  .footer a {
235
+ color: #ff9d00;
236
  text-decoration: none;
237
  font-weight: 600;
238
+ transition: color 0.3s ease;
 
239
  }
 
240
  .footer a:hover {
241
+ color: #ff8800;
242
  }
 
 
243
  @media (max-width: 768px) {
244
  .header h1 {
245
  font-size: 2.5rem;
246
  }
 
247
  .header .subtitle {
248
  font-size: 1.2rem;
249
  }
 
250
  .tech-stack-section {
251
  padding: 30px 20px;
252
  }
 
253
  .tech-grid {
254
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
255
  gap: 20px;
 
259
  </head>
260
  <body>
261
  <div class="container">
 
262
  <div class="header">
263
  <h1 class="floating">💻 Coding Club - RVCE</h1>
264
  <div class="divider"></div>
265
  <p class="subtitle">Building the Future, One Line of Code at a Time</p>
266
  </div>
267
 
 
268
  <div class="tech-stack-section">
269
  <h2>🚀 Our Tech Stack</h2>
270
  <p class="description">
 
273
 
274
  <div class="tech-grid" id="techGrid">
275
  <div class="tech-card pytorch" data-tilt>
276
+ <div class="tech-icon">
277
+ <img src="https://www.vectorlogo.zone/logos/pytorch/pytorch-icon.svg" alt="PyTorch">
278
+ </div>
279
  <div class="tech-name">PyTorch</div>
280
  <div class="tech-description">Deep Learning Framework</div>
281
  </div>
282
 
283
  <div class="tech-card tensorflow" data-tilt>
284
+ <div class="tech-icon">
285
+ <img src="https://www.vectorlogo.zone/logos/tensorflow/tensorflow-icon.svg" alt="TensorFlow">
286
+ </div>
287
  <div class="tech-name">TensorFlow</div>
288
  <div class="tech-description">ML Platform</div>
289
  </div>
290
 
291
  <div class="tech-card numpy" data-tilt>
292
+ <div class="tech-icon">
293
+ <img src="https://www.vectorlogo.zone/logos/numpy/numpy-icon.svg" alt="NumPy">
294
+ </div>
295
  <div class="tech-name">NumPy</div>
296
  <div class="tech-description">Numerical Computing</div>
297
  </div>
298
 
299
  <div class="tech-card pandas" data-tilt>
300
+ <div class="tech-icon">
301
+ <img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/pandas/pandas-original.svg" alt="Pandas">
302
+ </div>
303
  <div class="tech-name">Pandas</div>
304
  <div class="tech-description">Data Analysis</div>
305
  </div>
306
 
307
  <div class="tech-card jax" data-tilt>
308
+ <div class="tech-icon">
309
+ <img src="https://raw.githubusercontent.com/google/jax/main/images/jax_logo_250px.png" alt="JAX">
310
+ </div>
311
  <div class="tech-name">JAX</div>
312
  <div class="tech-description">High-Performance ML</div>
313
  </div>
314
 
315
  <div class="tech-card cuda" data-tilt>
316
+ <div class="tech-icon">
317
+ <img src="https://www.vectorlogo.zone/logos/nvidia/nvidia-icon.svg" alt="CUDA">
318
+ </div>
319
  <div class="tech-name">CUDA</div>
320
  <div class="tech-description">GPU Acceleration</div>
321
  </div>
322
  </div>
323
 
 
324
  <div class="stats-section">
325
  <div class="stat-card">
326
  <div class="stat-number">150+</div>
 
341
  </div>
342
  </div>
343
 
 
344
  <div class="footer">
345
  <p>🎓 RV College of Engineering | Bengaluru, Karnataka</p>
346
  <p style="margin-top: 15px;">
 
351
  </div>
352
 
353
  <script>
 
354
  const cards = document.querySelectorAll('[data-tilt]');
 
355
  cards.forEach(card => {
356
  card.addEventListener('mousemove', handleTilt);
357
  card.addEventListener('mouseleave', resetTilt);
358
  });
 
359
  function handleTilt(e) {
360
  const card = e.currentTarget;
361
  const rect = card.getBoundingClientRect();
362
  const x = e.clientX - rect.left;
363
  const y = e.clientY - rect.top;
 
364
  const centerX = rect.width / 2;
365
  const centerY = rect.height / 2;
 
366
  const rotateX = (y - centerY) / 10;
367
  const rotateY = (centerX - x) / 10;
368
+ card.style.transform = `perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale3d(1.05, 1.05, 1.05)`;
 
 
 
 
 
 
369
  }
 
370
  function resetTilt(e) {
371
  const card = e.currentTarget;
372
+ card.style.transform = `perspective(1000px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)`;
 
 
 
 
 
373
  }
 
 
374
  window.addEventListener('scroll', () => {
375
  const header = document.querySelector('.header');
376
  const scrolled = window.pageYOffset;
377
  header.style.transform = `translateY(${scrolled * 0.5}px)`;
378
  header.style.opacity = 1 - (scrolled / 500);
379
  });
380
+ const observerOptions = { threshold: 0.5, rootMargin: '0px' };
 
 
 
 
 
 
381
  const observer = new IntersectionObserver((entries) => {
382
  entries.forEach(entry => {
383
  if (entry.isIntersecting) {
 
385
  }
386
  });
387
  }, observerOptions);
 
388
  document.querySelectorAll('.stat-card').forEach(card => {
389
  observer.observe(card);
390
  });
 
 
391
  cards.forEach(card => {
392
  card.addEventListener('click', function() {
393
  this.style.animation = 'none';