chandan06 commited on
Commit
21ae458
·
verified ·
1 Parent(s): 1a3a0d0

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +759 -19
index.html CHANGED
@@ -1,19 +1,759 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>FutureTech - Next Generation Mobile Experience</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ :root {
15
+ --primary-color: #00f2fe;
16
+ --secondary-color: #ff00ff;
17
+ --accent-color: #00ff88;
18
+ --dark-bg: #0a0a1a;
19
+ --darker-bg: #050510;
20
+ --glass-bg: rgba(255, 255, 255, 0.1);
21
+ --text-primary: #ffffff;
22
+ --text-secondary: #b8b8ff;
23
+ }
24
+
25
+ body {
26
+ font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
27
+ background: var(--darker-bg);
28
+ color: var(--text-primary);
29
+ overflow-x: hidden;
30
+ line-height: 1.6;
31
+ }
32
+
33
+ /* Animated Background */
34
+ .bg-container {
35
+ position: fixed;
36
+ top: 0;
37
+ left: 0;
38
+ width: 100%;
39
+ height: 100vh;
40
+ z-index: -1;
41
+ overflow: hidden;
42
+ }
43
+
44
+ .bg-grid {
45
+ position: absolute;
46
+ width: 100%;
47
+ height: 100%;
48
+ background-image:
49
+ linear-gradient(rgba(0, 242, 254, 0.1) 1px, transparent 1px),
50
+ linear-gradient(90deg, rgba(0, 242, 254, 0.1) 1px, transparent 1px);
51
+ background-size: 50px 50px;
52
+ animation: gridMove 20s linear infinite;
53
+ }
54
+
55
+ .bg-orbs {
56
+ position: absolute;
57
+ width: 100%;
58
+ height: 100%;
59
+ }
60
+
61
+ .orb {
62
+ position: absolute;
63
+ border-radius: 50%;
64
+ background: radial-gradient(circle, var(--primary-color), transparent);
65
+ filter: blur(10px);
66
+ animation: float 15s infinite ease-in-out;
67
+ }
68
+
69
+ .orb:nth-child(1) {
70
+ width: 300px;
71
+ height: 300px;
72
+ top: -150px;
73
+ left: -100px;
74
+ animation-delay: 0s;
75
+ }
76
+
77
+ .orb:nth-child(2) {
78
+ width: 200px;
79
+ height: 200px;
80
+ bottom: -50px;
81
+ right: -50px;
82
+ background: radial-gradient(circle, var(--secondary-color), transparent);
83
+ animation-delay: 5s;
84
+ }
85
+
86
+ .orb:nth-child(3) {
87
+ width: 150px;
88
+ height: 150px;
89
+ top: 50%;
90
+ left: -75px;
91
+ background: radial-gradient(circle, var(--accent-color), transparent);
92
+ animation-delay: 10s;
93
+ }
94
+
95
+ @keyframes gridMove {
96
+ 0% { transform: translate(0, 0); }
97
+ 100% { transform: translate(50px, 50px); }
98
+ }
99
+
100
+ @keyframes float {
101
+ 0%, 100% { transform: translate(0, 0) scale(1); }
102
+ 33% { transform: translate(30px, -30px) scale(1.1); }
103
+ 66% { transform: translate(-20px, 20px) scale(0.9); }
104
+ }
105
+
106
+ /* Header */
107
+ header {
108
+ padding: 1.5rem;
109
+ position: relative;
110
+ z-index: 100;
111
+ backdrop-filter: blur(10px);
112
+ background: rgba(10, 10, 26, 0.8);
113
+ border-bottom: 1px solid rgba(0, 242, 254, 0.3);
114
+ }
115
+
116
+ .header-content {
117
+ max-width: 1200px;
118
+ margin: 0 auto;
119
+ display: flex;
120
+ justify-content: space-between;
121
+ align-items: center;
122
+ }
123
+
124
+ .logo {
125
+ font-size: 1.5rem;
126
+ font-weight: bold;
127
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
128
+ -webkit-background-clip: text;
129
+ -webkit-text-fill-color: transparent;
130
+ background-clip: text;
131
+ }
132
+
133
+ .nav-links {
134
+ display: flex;
135
+ gap: 2rem;
136
+ }
137
+
138
+ .nav-links a {
139
+ color: var(--text-secondary);
140
+ text-decoration: none;
141
+ transition: color 0.3s;
142
+ position: relative;
143
+ }
144
+
145
+ .nav-links a::after {
146
+ content: '';
147
+ position: absolute;
148
+ bottom: -5px;
149
+ left: 0;
150
+ width: 0;
151
+ height: 2px;
152
+ background: var(--primary-color);
153
+ transition: width 0.3s;
154
+ }
155
+
156
+ .nav-links a:hover {
157
+ color: var(--primary-color);
158
+ }
159
+
160
+ .nav-links a:hover::after {
161
+ width: 100%;
162
+ }
163
+
164
+ /* Hero Section */
165
+ .hero {
166
+ min-height: 100vh;
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: center;
170
+ padding: 2rem;
171
+ position: relative;
172
+ }
173
+
174
+ .hero-content {
175
+ text-align: center;
176
+ z-index: 10;
177
+ max-width: 800px;
178
+ }
179
+
180
+ .hero-title {
181
+ font-size: clamp(2.5rem, 8vw, 5rem);
182
+ margin-bottom: 1.5rem;
183
+ line-height: 1.2;
184
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color), var(--accent-color));
185
+ -webkit-background-clip: text;
186
+ -webkit-text-fill-color: transparent;
187
+ background-clip: text;
188
+ animation: glow 3s ease-in-out infinite alternate;
189
+ }
190
+
191
+ @keyframes glow {
192
+ from { filter: drop-shadow(0 0 20px rgba(0, 242, 254, 0.5)); }
193
+ to { filter: drop-shadow(0 0 30px rgba(255, 0, 255, 0.8)); }
194
+ }
195
+
196
+ .hero-subtitle {
197
+ font-size: 1.2rem;
198
+ color: var(--text-secondary);
199
+ margin-bottom: 2rem;
200
+ }
201
+
202
+ .cta-button {
203
+ display: inline-block;
204
+ padding: 1rem 2.5rem;
205
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
206
+ border: none;
207
+ border-radius: 50px;
208
+ color: var(--dark-bg);
209
+ font-weight: bold;
210
+ text-decoration: none;
211
+ font-size: 1.1rem;
212
+ transition: all 0.3s;
213
+ position: relative;
214
+ overflow: hidden;
215
+ }
216
+
217
+ .cta-button::before {
218
+ content: '';
219
+ position: absolute;
220
+ top: 0;
221
+ left: -100%;
222
+ width: 100%;
223
+ height: 100%;
224
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
225
+ transition: left 0.5s;
226
+ }
227
+
228
+ .cta-button:hover::before {
229
+ left: 100%;
230
+ }
231
+
232
+ .cta-button:hover {
233
+ transform: translateY(-3px);
234
+ box-shadow: 0 10px 30px rgba(0, 242, 254, 0.4);
235
+ }
236
+
237
+ /* 3D Cards Section */
238
+ .features {
239
+ padding: 5rem 2rem;
240
+ max-width: 1200px;
241
+ margin: 0 auto;
242
+ }
243
+
244
+ .section-title {
245
+ text-align: center;
246
+ font-size: 2.5rem;
247
+ margin-bottom: 3rem;
248
+ position: relative;
249
+ }
250
+
251
+ .section-title::after {
252
+ content: '';
253
+ position: absolute;
254
+ bottom: -10px;
255
+ left: 50%;
256
+ transform: translateX(-50%);
257
+ width: 100px;
258
+ height: 3px;
259
+ background: linear-gradient(90deg, transparent, var(--primary-color), transparent);
260
+ }
261
+
262
+ .cards-container {
263
+ display: grid;
264
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
265
+ gap: 2rem;
266
+ perspective: 1000px;
267
+ }
268
+
269
+ .card {
270
+ background: var(--glass-bg);
271
+ backdrop-filter: blur(10px);
272
+ border: 1px solid rgba(0, 242, 254, 0.3);
273
+ border-radius: 20px;
274
+ padding: 2rem;
275
+ position: relative;
276
+ transform-style: preserve-3d;
277
+ transition: transform 0.6s, box-shadow 0.3s;
278
+ cursor: pointer;
279
+ }
280
+
281
+ .card:hover {
282
+ transform: translateY(-10px) rotateX(5deg);
283
+ box-shadow: 0 20px 40px rgba(0, 242, 254, 0.3);
284
+ }
285
+
286
+ .card-icon {
287
+ font-size: 3rem;
288
+ margin-bottom: 1rem;
289
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
290
+ -webkit-background-clip: text;
291
+ -webkit-text-fill-color: transparent;
292
+ background-clip: text;
293
+ }
294
+
295
+ .card-title {
296
+ font-size: 1.5rem;
297
+ margin-bottom: 1rem;
298
+ }
299
+
300
+ .card-description {
301
+ color: var(--text-secondary);
302
+ }
303
+
304
+ /* Floating Elements */
305
+ .floating-element {
306
+ position: absolute;
307
+ width: 100px;
308
+ height: 100px;
309
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
310
+ border-radius: 50%;
311
+ opacity: 0.1;
312
+ animation: float 10s infinite ease-in-out;
313
+ }
314
+
315
+ .floating-element:nth-child(1) {
316
+ top: 20%;
317
+ left: 10%;
318
+ animation-delay: 0s;
319
+ }
320
+
321
+ .floating-element:nth-child(2) {
322
+ top: 60%;
323
+ right: 15%;
324
+ animation-delay: 2s;
325
+ }
326
+
327
+ .floating-element:nth-child(3) {
328
+ bottom: 20%;
329
+ left: 20%;
330
+ animation-delay: 4s;
331
+ }
332
+
333
+ /* Stats Section */
334
+ .stats {
335
+ background: linear-gradient(135deg, var(--dark-bg), var(--darker-bg));
336
+ padding: 5rem 2rem;
337
+ position: relative;
338
+ overflow: hidden;
339
+ }
340
+
341
+ .stats-container {
342
+ max-width: 1200px;
343
+ margin: 0 auto;
344
+ display: grid;
345
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
346
+ gap: 2rem;
347
+ position: relative;
348
+ z-index: 1;
349
+ }
350
+
351
+ .stat-item {
352
+ text-align: center;
353
+ padding: 2rem;
354
+ background: var(--glass-bg);
355
+ backdrop-filter: blur(10px);
356
+ border-radius: 20px;
357
+ border: 1px solid rgba(0, 242, 254, 0.2);
358
+ transition: transform 0.3s;
359
+ }
360
+
361
+ .stat-item:hover {
362
+ transform: scale(1.05);
363
+ }
364
+
365
+ .stat-number {
366
+ font-size: 3rem;
367
+ font-weight: bold;
368
+ background: linear-gradient(45deg, var(--primary-color), var(--accent-color));
369
+ -webkit-background-clip: text;
370
+ -webkit-text-fill-color: transparent;
371
+ background-clip: text;
372
+ }
373
+
374
+ .stat-label {
375
+ color: var(--text-secondary);
376
+ margin-top: 0.5rem;
377
+ }
378
+
379
+ /* Interactive Canvas */
380
+ .canvas-container {
381
+ position: relative;
382
+ width: 100%;
383
+ height: 300px;
384
+ margin: 2rem 0;
385
+ overflow: hidden;
386
+ border-radius: 20px;
387
+ background: var(--glass-bg);
388
+ backdrop-filter: blur(10px);
389
+ }
390
+
391
+ #interactive-canvas {
392
+ width: 100%;
393
+ height: 100%;
394
+ }
395
+
396
+ /* Footer */
397
+ footer {
398
+ padding: 3rem 2rem;
399
+ text-align: center;
400
+ border-top: 1px solid rgba(0, 242, 254, 0.2);
401
+ }
402
+
403
+ .footer-content {
404
+ max-width: 800px;
405
+ margin: 0 auto;
406
+ }
407
+
408
+ .social-links {
409
+ display: flex;
410
+ justify-content: center;
411
+ gap: 1.5rem;
412
+ margin-top: 1.5rem;
413
+ }
414
+
415
+ .social-link {
416
+ width: 40px;
417
+ height: 40px;
418
+ border-radius: 50%;
419
+ background: var(--glass-bg);
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ color: var(--text-primary);
424
+ text-decoration: none;
425
+ transition: all 0.3s;
426
+ }
427
+
428
+ .social-link:hover {
429
+ background: linear-gradient(45deg, var(--primary-color), var(--secondary-color));
430
+ transform: translateY(-5px);
431
+ }
432
+
433
+ /* Responsive Design */
434
+ @media (max-width: 768px) {
435
+ .nav-links {
436
+ display: none;
437
+ }
438
+
439
+ .hero-title {
440
+ font-size: 3rem;
441
+ }
442
+
443
+ .cards-container {
444
+ grid-template-columns: 1fr;
445
+ }
446
+
447
+ .stats-container {
448
+ grid-template-columns: 1fr;
449
+ }
450
+ }
451
+
452
+ /* Scroll Animation */
453
+ .scroll-reveal {
454
+ opacity: 0;
455
+ transform: translateY(50px);
456
+ transition: opacity 0.6s, transform 0.6s;
457
+ }
458
+
459
+ .scroll-reveal.active {
460
+ opacity: 1;
461
+ transform: translateY(0);
462
+ }
463
+
464
+ /* Loading Animation */
465
+ .loader {
466
+ position: fixed;
467
+ top: 0;
468
+ left: 0;
469
+ width: 100%;
470
+ height: 100%;
471
+ background: var(--darker-bg);
472
+ display: flex;
473
+ justify-content: center;
474
+ align-items: center;
475
+ z-index: 9999;
476
+ transition: opacity 0.5s;
477
+ }
478
+
479
+ .loader.hidden {
480
+ opacity: 0;
481
+ pointer-events: none;
482
+ }
483
+
484
+ .loader-spinner {
485
+ width: 60px;
486
+ height: 60px;
487
+ border: 3px solid rgba(0, 242, 254, 0.3);
488
+ border-top: 3px solid var(--primary-color);
489
+ border-radius: 50%;
490
+ animation: spin 1s linear infinite;
491
+ }
492
+
493
+ @keyframes spin {
494
+ 0% { transform: rotate(0deg); }
495
+ 100% { transform: rotate(360deg); }
496
+ }
497
+
498
+ /* Built with anycoder link */
499
+ .built-with {
500
+ position: fixed;
501
+ top: 1rem;
502
+ left: 1rem;
503
+ font-size: 0.8rem;
504
+ color: var(--text-secondary);
505
+ z-index: 100;
506
+ }
507
+
508
+ .built-with a {
509
+ color: var(--primary-color);
510
+ text-decoration: none;
511
+ font-weight: bold;
512
+ }
513
+
514
+ .built-with a:hover {
515
+ text-decoration: underline;
516
+ }
517
+ </style>
518
+ </head>
519
+ <body>
520
+ <div class="loader" id="loader">
521
+ <div class="loader-spinner"></div>
522
+ </div>
523
+
524
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" class="built-with">Built with anycoder</a>
525
+
526
+ <div class="bg-container">
527
+ <div class="bg-grid"></div>
528
+ <div class="bg-orbs">
529
+ <div class="orb"></div>
530
+ <div class="orb"></div>
531
+ <div class="orb"></div>
532
+ </div>
533
+ </div>
534
+
535
+ <header>
536
+ <div class="header-content">
537
+ <div class="logo">FutureTech</div>
538
+ <nav class="nav-links">
539
+ <a href="#features">Features</a>
540
+ <a href="#stats">Stats</a>
541
+ <a href="#contact">Contact</a>
542
+ </nav>
543
+ </div>
544
+ </header>
545
+
546
+ <section class="hero">
547
+ <div class="hero-content">
548
+ <h1 class="hero-title">Experience Tomorrow, Today</h1>
549
+ <p class="hero-subtitle">Revolutionary mobile technology that redefines what's possible. Immerse yourself in a world of innovation and seamless connectivity.</p>
550
+ <a href="#" class="cta-button">Get Started</a>
551
+ </div>
552
+ <div class="floating-element"></div>
553
+ <div class="floating-element"></div>
554
+ <div class="floating-element"></div>
555
+ </section>
556
+
557
+ <section class="features" id="features">
558
+ <h2 class="section-title scroll-reveal">Advanced Features</h2>
559
+ <div class="cards-container">
560
+ <div class="card scroll-reveal">
561
+ <div class="card-icon">🚀</div>
562
+ <h3 class="card-title">Lightning Speed</h3>
563
+ <p class="card-description">Experience unprecedented performance with our optimized algorithms and cutting-edge hardware acceleration.</p>
564
+ </div>
565
+ <div class="card scroll-reveal" style="animation-delay: 0.2s;">
566
+ <div class="card-icon">🔒</div>
567
+ <h3 class="card-title">Quantum Security</h3>
568
+ <p class="card-description">Next-generation encryption ensures your data remains protected with military-grade security protocols.</p>
569
+ </div>
570
+ <div class="card scroll-reveal" style="animation-delay: 0.4s;">
571
+ <div class="card-icon">🧠</div>
572
+ <h3 class="card-title">AI Integration</h3>
573
+ <p class="card-description">Smart AI assistant that learns and adapts to your needs, providing personalized experiences.</p>
574
+ </div>
575
+ </div>
576
+ </section>
577
+
578
+ <section class="stats" id="stats">
579
+ <div class="stats-container">
580
+ <div class="stat-item scroll-reveal">
581
+ <div class="stat-number">99.9%</div>
582
+ <div class="stat-label">Uptime Guarantee</div>
583
+ </div>
584
+ <div class="stat-item scroll-reveal" style="animation-delay: 0.2s;">
585
+ <div class="stat-number">0.1s</div>
586
+ <div class="stat-label">Response Time</div>
587
+ </div>
588
+ <div class="stat-item scroll-reveal" style="animation-delay: 0.4s;">
589
+ <div class="stat-number">10M+</div>
590
+ <div class="stat-label">Active Users</div>
591
+ </div>
592
+ <div class="stat-item scroll-reveal" style="animation-delay: 0.6s;">
593
+ <div class="stat-number">24/7</div>
594
+ <div class="stat-label">Support Available</div>
595
+ </div>
596
+ </div>
597
+ </section>
598
+
599
+ <section class="canvas-container">
600
+ <canvas id="interactive-canvas"></canvas>
601
+ </section>
602
+
603
+ <footer id="contact">
604
+ <div class="footer-content">
605
+ <p>© 2024 FutureTech. All rights reserved.</p>
606
+ <div class="social-links">
607
+ <a href="#" class="social-link">f</a>
608
+ <a href="#" class="social-link">t</a>
609
+ <a href="#" class="social-link">i</a>
610
+ <a href="#" class="social-link">y</a>
611
+ </div>
612
+ </div>
613
+ </footer>
614
+
615
+ <script>
616
+ // Loader
617
+ window.addEventListener('load', () => {
618
+ setTimeout(() => {
619
+ document.getElementById('loader').classList.add('hidden');
620
+ }, 1500);
621
+ });
622
+
623
+ // Scroll Reveal Animation
624
+ const scrollReveals = document.querySelectorAll('.scroll-reveal');
625
+
626
+ const revealOnScroll = () => {
627
+ scrollReveals.forEach(element => {
628
+ const elementTop = element.getBoundingClientRect().top;
629
+ const windowHeight = window.innerHeight;
630
+
631
+ if (elementTop < windowHeight - 100) {
632
+ element.classList.add('active');
633
+ }
634
+ });
635
+ };
636
+
637
+ window.addEventListener('scroll', revealOnScroll);
638
+ revealOnScroll();
639
+
640
+ // Interactive Canvas Animation
641
+ const canvas = document.getElementById('interactive-canvas');
642
+ const ctx = canvas.getContext('2d');
643
+
644
+ function resizeCanvas() {
645
+ canvas.width = canvas.offsetWidth;
646
+ canvas.height = canvas.offsetHeight;
647
+ }
648
+
649
+ resizeCanvas();
650
+ window.addEventListener('resize', resizeCanvas);
651
+
652
+ class Particle {
653
+ constructor() {
654
+ this.x = Math.random() * canvas.width;
655
+ this.y = Math.random() * canvas.height;
656
+ this.size = Math.random() * 3 + 1;
657
+ this.speedX = Math.random() * 3 - 1.5;
658
+ this.speedY = Math.random() * 3 - 1.5;
659
+ this.color = `hsl(${Math.random() * 60 + 180}, 100%, 50%)`;
660
+ }
661
+
662
+ update() {
663
+ this.x += this.speedX;
664
+ this.y += this.speedY;
665
+
666
+ if (this.x > canvas.width || this.x < 0) {
667
+ this.speedX = -this.speedX;
668
+ }
669
+ if (this.y > canvas.height || this.y < 0) {
670
+ this.speedY = -this.speedY;
671
+ }
672
+ }
673
+
674
+ draw() {
675
+ ctx.fillStyle = this.color;
676
+ ctx.beginPath();
677
+ ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
678
+ ctx.fill();
679
+ }
680
+ }
681
+
682
+ const particles = [];
683
+ for (let i = 0; i < 50; i++) {
684
+ particles.push(new Particle());
685
+ }
686
+
687
+ function animateCanvas() {
688
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
689
+
690
+ particles.forEach(particle => {
691
+ particle.update();
692
+ particle.draw();
693
+ });
694
+
695
+ // Draw connections
696
+ for (let i = 0; i < particles.length; i++) {
697
+ for (let j = i + 1; j < particles.length; j++) {
698
+ const dx = particles[i].x - particles[j].x;
699
+ const dy = particles[i].y - particles[j].y;
700
+ const distance = Math.sqrt(dx * dx + dy * dy);
701
+
702
+ if (distance < 100) {
703
+ ctx.strokeStyle = `rgba(0, 242, 254, ${1 - distance / 100})`;
704
+ ctx.lineWidth = 0.5;
705
+ ctx.beginPath();
706
+ ctx.moveTo(particles[i].x, particles[i].y);
707
+ ctx.lineTo(particles[j].x, particles[j].y);
708
+ ctx.stroke();
709
+ }
710
+ }
711
+ }
712
+
713
+ requestAnimationFrame(animateCanvas);
714
+ }
715
+
716
+ animateCanvas();
717
+
718
+ // Mouse interaction with canvas
719
+ canvas.addEventListener('mousemove', (e) => {
720
+ const rect = canvas.getBoundingClientRect();
721
+ const x = e.clientX - rect.left;
722
+ const y = e.clientY - rect.top;
723
+
724
+ particles.forEach(particle => {
725
+ const dx = particle.x - x;
726
+ const dy = particle.y - y;
727
+ const distance = Math.sqrt(dx * dx + dy * dy);
728
+
729
+ if (distance < 100) {
730
+ const force = (100 - distance) / 100;
731
+ particle.x += dx * force * 0.02;
732
+ particle.y += dy * force * 0.02;
733
+ }
734
+ });
735
+ });
736
+
737
+ // Smooth scroll for navigation links
738
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
739
+ anchor.addEventListener('click', function (e) {
740
+ e.preventDefault();
741
+ const target = document.querySelector(this.getAttribute('href'));
742
+ if (target) {
743
+ target.scrollIntoView({
744
+ behavior: 'smooth',
745
+ block: 'start'
746
+ });
747
+ }
748
+ });
749
+ });
750
+
751
+ // Parallax effect for hero section
752
+ window.addEventListener('scroll', () => {
753
+ const scrolled = window.pageYOffset;
754
+ const hero = document.querySelector('.hero');
755
+ hero.style.transform = `translateY(${scrolled * 0.5}px)`;
756
+ });
757
+ </script>
758
+ </body>
759
+ </html>