omkar861856 commited on
Commit
dd5cf56
·
verified ·
1 Parent(s): f8a9532

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +687 -19
index.html CHANGED
@@ -1,19 +1,687 @@
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>Interactive Greeting Experience</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ :root {
15
+ --primary: #667eea;
16
+ --secondary: #764ba2;
17
+ --accent: #f093fb;
18
+ --text: #2d3748;
19
+ --bg-light: #f7fafc;
20
+ --bg-dark: #1a202c;
21
+ --card-bg: rgba(255, 255, 255, 0.9);
22
+ --shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
23
+ }
24
+
25
+ body {
26
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
27
+ min-height: 100vh;
28
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
29
+ overflow-x: hidden;
30
+ position: relative;
31
+ transition: all 0.3s ease;
32
+ }
33
+
34
+ body.dark-mode {
35
+ --text: #f7fafc;
36
+ --bg-light: #2d3748;
37
+ --card-bg: rgba(26, 32, 44, 0.9);
38
+ background: linear-gradient(135deg, #1a202c 0%, #2d3748 100%);
39
+ }
40
+
41
+ /* Header */
42
+ header {
43
+ position: fixed;
44
+ top: 0;
45
+ width: 100%;
46
+ padding: 1.5rem 5%;
47
+ background: rgba(255, 255, 255, 0.1);
48
+ backdrop-filter: blur(10px);
49
+ z-index: 1000;
50
+ display: flex;
51
+ justify-content: space-between;
52
+ align-items: center;
53
+ transition: all 0.3s ease;
54
+ }
55
+
56
+ body.dark-mode header {
57
+ background: rgba(26, 32, 44, 0.3);
58
+ }
59
+
60
+ .logo {
61
+ font-size: 1.5rem;
62
+ font-weight: bold;
63
+ color: white;
64
+ text-decoration: none;
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 0.5rem;
68
+ }
69
+
70
+ .logo:hover {
71
+ transform: scale(1.05);
72
+ transition: transform 0.3s ease;
73
+ }
74
+
75
+ .nav-links {
76
+ display: flex;
77
+ gap: 2rem;
78
+ list-style: none;
79
+ }
80
+
81
+ .nav-links a {
82
+ color: white;
83
+ text-decoration: none;
84
+ transition: all 0.3s ease;
85
+ position: relative;
86
+ }
87
+
88
+ .nav-links a::after {
89
+ content: '';
90
+ position: absolute;
91
+ bottom: -5px;
92
+ left: 0;
93
+ width: 0;
94
+ height: 2px;
95
+ background: var(--accent);
96
+ transition: width 0.3s ease;
97
+ }
98
+
99
+ .nav-links a:hover::after {
100
+ width: 100%;
101
+ }
102
+
103
+ /* Theme Toggle */
104
+ .theme-toggle {
105
+ background: rgba(255, 255, 255, 0.2);
106
+ border: none;
107
+ border-radius: 50%;
108
+ width: 50px;
109
+ height: 50px;
110
+ cursor: pointer;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ transition: all 0.3s ease;
115
+ font-size: 1.5rem;
116
+ }
117
+
118
+ .theme-toggle:hover {
119
+ transform: rotate(180deg) scale(1.1);
120
+ background: rgba(255, 255, 255, 0.3);
121
+ }
122
+
123
+ /* Main Content */
124
+ main {
125
+ padding-top: 100px;
126
+ min-height: 100vh;
127
+ display: flex;
128
+ flex-direction: column;
129
+ align-items: center;
130
+ justify-content: center;
131
+ position: relative;
132
+ z-index: 10;
133
+ }
134
+
135
+ .hero-section {
136
+ text-align: center;
137
+ animation: fadeInUp 1s ease;
138
+ }
139
+
140
+ @keyframes fadeInUp {
141
+ from {
142
+ opacity: 0;
143
+ transform: translateY(30px);
144
+ }
145
+ to {
146
+ opacity: 1;
147
+ transform: translateY(0);
148
+ }
149
+ }
150
+
151
+ .greeting {
152
+ font-size: clamp(3rem, 10vw, 6rem);
153
+ font-weight: 800;
154
+ background: linear-gradient(45deg, #fff, var(--accent));
155
+ -webkit-background-clip: text;
156
+ -webkit-text-fill-color: transparent;
157
+ background-clip: text;
158
+ margin-bottom: 1rem;
159
+ animation: gradientShift 3s ease infinite;
160
+ }
161
+
162
+ @keyframes gradientShift {
163
+ 0%, 100% { filter: hue-rotate(0deg); }
164
+ 50% { filter: hue-rotate(30deg); }
165
+ }
166
+
167
+ .sub-greeting {
168
+ font-size: clamp(1.2rem, 3vw, 1.8rem);
169
+ color: rgba(255, 255, 255, 0.9);
170
+ margin-bottom: 2rem;
171
+ opacity: 0;
172
+ animation: fadeIn 1s ease 0.5s forwards;
173
+ }
174
+
175
+ @keyframes fadeIn {
176
+ to { opacity: 1; }
177
+ }
178
+
179
+ .interactive-cards {
180
+ display: grid;
181
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
182
+ gap: 2rem;
183
+ width: 90%;
184
+ max-width: 1200px;
185
+ margin: 3rem auto;
186
+ padding: 0 2rem;
187
+ }
188
+
189
+ .card {
190
+ background: var(--card-bg);
191
+ border-radius: 20px;
192
+ padding: 2rem;
193
+ box-shadow: var(--shadow);
194
+ transition: all 0.3s ease;
195
+ cursor: pointer;
196
+ position: relative;
197
+ overflow: hidden;
198
+ }
199
+
200
+ .card::before {
201
+ content: '';
202
+ position: absolute;
203
+ top: 0;
204
+ left: 0;
205
+ width: 100%;
206
+ height: 100%;
207
+ background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
208
+ transform: translateX(-100%);
209
+ transition: transform 0.6s ease;
210
+ }
211
+
212
+ .card:hover::before {
213
+ transform: translateX(100%);
214
+ }
215
+
216
+ .card:hover {
217
+ transform: translateY(-10px) scale(1.02);
218
+ box-shadow: 0 30px 40px -10px rgba(0, 0, 0, 0.2);
219
+ }
220
+
221
+ .card-icon {
222
+ font-size: 3rem;
223
+ margin-bottom: 1rem;
224
+ display: block;
225
+ }
226
+
227
+ .card-title {
228
+ font-size: 1.5rem;
229
+ font-weight: bold;
230
+ color: var(--text);
231
+ margin-bottom: 0.5rem;
232
+ }
233
+
234
+ .card-description {
235
+ color: rgba(45, 55, 72, 0.7);
236
+ line-height: 1.6;
237
+ }
238
+
239
+ body.dark-mode .card-description {
240
+ color: rgba(247, 250, 252, 0.7);
241
+ }
242
+
243
+ /* Floating Action Button */
244
+ .fab {
245
+ position: fixed;
246
+ bottom: 30px;
247
+ right: 30px;
248
+ width: 60px;
249
+ height: 60px;
250
+ border-radius: 50%;
251
+ background: linear-gradient(135deg, var(--accent), var(--primary));
252
+ border: none;
253
+ color: white;
254
+ font-size: 1.5rem;
255
+ cursor: pointer;
256
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
257
+ transition: all 0.3s ease;
258
+ z-index: 999;
259
+ }
260
+
261
+ .fab:hover {
262
+ transform: scale(1.1) rotate(90deg);
263
+ box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
264
+ }
265
+
266
+ /* Modal */
267
+ .modal {
268
+ display: none;
269
+ position: fixed;
270
+ top: 0;
271
+ left: 0;
272
+ width: 100%;
273
+ height: 100%;
274
+ background: rgba(0, 0, 0, 0.5);
275
+ backdrop-filter: blur(5px);
276
+ z-index: 2000;
277
+ align-items: center;
278
+ justify-content: center;
279
+ opacity: 0;
280
+ transition: opacity 0.3s ease;
281
+ }
282
+
283
+ .modal.active {
284
+ display: flex;
285
+ opacity: 1;
286
+ }
287
+
288
+ .modal-content {
289
+ background: var(--card-bg);
290
+ border-radius: 20px;
291
+ padding: 3rem;
292
+ max-width: 500px;
293
+ width: 90%;
294
+ transform: scale(0.8);
295
+ transition: transform 0.3s ease;
296
+ }
297
+
298
+ .modal.active .modal-content {
299
+ transform: scale(1);
300
+ }
301
+
302
+ .close-modal {
303
+ float: right;
304
+ font-size: 2rem;
305
+ cursor: pointer;
306
+ color: var(--text);
307
+ transition: transform 0.3s ease;
308
+ }
309
+
310
+ .close-modal:hover {
311
+ transform: rotate(90deg);
312
+ }
313
+
314
+ /* Particles */
315
+ .particles {
316
+ position: fixed;
317
+ top: 0;
318
+ left: 0;
319
+ width: 100%;
320
+ height: 100%;
321
+ pointer-events: none;
322
+ z-index: 1;
323
+ }
324
+
325
+ .particle {
326
+ position: absolute;
327
+ background: rgba(255, 255, 255, 0.5);
328
+ border-radius: 50%;
329
+ pointer-events: none;
330
+ animation: float 20s infinite linear;
331
+ }
332
+
333
+ @keyframes float {
334
+ from {
335
+ transform: translateY(100vh) rotate(0deg);
336
+ opacity: 0;
337
+ }
338
+ 10% {
339
+ opacity: 1;
340
+ }
341
+ 90% {
342
+ opacity: 1;
343
+ }
344
+ to {
345
+ transform: translateY(-100vh) rotate(360deg);
346
+ opacity: 0;
347
+ }
348
+ }
349
+
350
+ /* Typing Effect */
351
+ .typing-text {
352
+ font-size: 1.2rem;
353
+ color: rgba(255, 255, 255, 0.9);
354
+ margin-top: 2rem;
355
+ min-height: 30px;
356
+ }
357
+
358
+ .typing-text::after {
359
+ content: '|';
360
+ animation: blink 1s infinite;
361
+ }
362
+
363
+ @keyframes blink {
364
+ 0%, 50% { opacity: 1; }
365
+ 51%, 100% { opacity: 0; }
366
+ }
367
+
368
+ /* Responsive */
369
+ @media (max-width: 768px) {
370
+ .nav-links {
371
+ display: none;
372
+ }
373
+
374
+ .interactive-cards {
375
+ grid-template-columns: 1fr;
376
+ padding: 0 1rem;
377
+ }
378
+
379
+ .greeting {
380
+ font-size: 3rem;
381
+ }
382
+ }
383
+
384
+ /* Loading Animation */
385
+ .loader {
386
+ position: fixed;
387
+ top: 50%;
388
+ left: 50%;
389
+ transform: translate(-50%, -50%);
390
+ width: 50px;
391
+ height: 50px;
392
+ border: 3px solid rgba(255, 255, 255, 0.3);
393
+ border-top-color: white;
394
+ border-radius: 50%;
395
+ animation: spin 1s linear infinite;
396
+ z-index: 3000;
397
+ display: none;
398
+ }
399
+
400
+ @keyframes spin {
401
+ to { transform: translate(-50%, -50%) rotate(360deg); }
402
+ }
403
+ </style>
404
+ </head>
405
+ <body>
406
+ <div class="loader" id="loader"></div>
407
+
408
+ <header>
409
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" class="logo" target="_blank">
410
+ <span>🚀</span>
411
+ <span>Built with anycoder</span>
412
+ </a>
413
+ <nav>
414
+ <ul class="nav-links">
415
+ <li><a href="#home">Home</a></li>
416
+ <li><a href="#features">Features</a></li>
417
+ <li><a href="#about">About</a></li>
418
+ <li><a href="#contact">Contact</a></li>
419
+ </ul>
420
+ </nav>
421
+ <button class="theme-toggle" id="themeToggle">🌙</button>
422
+ </header>
423
+
424
+ <div class="particles" id="particles"></div>
425
+
426
+ <main>
427
+ <section class="hero-section">
428
+ <h1 class="greeting">Hello, World!</h1>
429
+ <p class="sub-greeting">Welcome to an interactive experience</p>
430
+ <div class="typing-text" id="typingText"></div>
431
+ </section>
432
+
433
+ <section class="interactive-cards">
434
+ <div class="card" onclick="handleCardClick('creative')">
435
+ <span class="card-icon">🎨</span>
436
+ <h3 class="card-title">Creative Design</h3>
437
+ <p class="card-description">Modern, responsive layouts with smooth animations and micro-interactions that delight users.</p>
438
+ </div>
439
+ <div class="card" onclick="handleCardClick('performance')">
440
+ <span class="card-icon">⚡</span>
441
+ <h3 class="card-title">Lightning Fast</h3>
442
+ <p class="card-description">Optimized performance with lazy loading, efficient animations, and minimal resource usage.</p>
443
+ </div>
444
+ <div class="card" onclick="handleCardClick('responsive')">
445
+ <span class="card-icon">📱</span>
446
+ <h3 class="card-title">Fully Responsive</h3>
447
+ <p class="card-description">Seamlessly adapts to any screen size, from mobile devices to ultra-wide desktop displays.</p>
448
+ </div>
449
+ <div class="card" onclick="handleCardClick('interactive')">
450
+ <span class="card-icon">🎮</span>
451
+ <h3 class="card-title">Interactive Elements</h3>
452
+ <p class="card-description">Engaging user interfaces with hover effects, transitions, and dynamic content updates.</p>
453
+ </div>
454
+ <div class="card" onclick="handleCardClick('modern')">
455
+ <span class="card-icon">✨</span>
456
+ <h3 class="card-title">Modern Tech</h3>
457
+ <p class="card-description">Built with the latest web technologies including CSS Grid, Flexbox, and ES6+ JavaScript.</p>
458
+ </div>
459
+ <div class="card" onclick="handleCardClick('accessible')">
460
+ <span class="card-icon">♿</span>
461
+ <h3 class="card-title">Accessibility First</h3>
462
+ <p class="card-description">Designed with semantic HTML and ARIA attributes to ensure usability for everyone.</p>
463
+ </div>
464
+ </section>
465
+ </main>
466
+
467
+ <button class="fab" onclick="toggleModal()">✨</button>
468
+
469
+ <div class="modal" id="modal">
470
+ <div class="modal-content">
471
+ <span class="close-modal" onclick="toggleModal()">×</span>
472
+ <h2 style="color: var(--text); margin-bottom: 1rem;">🎉 Amazing!</h2>
473
+ <p style="color: var(--text); line-height: 1.6;">
474
+ You've discovered the hidden modal! This application showcases modern web development capabilities including:
475
+ </p>
476
+ <ul style="color: var(--text); margin: 1rem 0; padding-left: 1.5rem;">
477
+ <li>Dark/Light theme toggle</li>
478
+ <li>Smooth animations and transitions</li>
479
+ <li>Responsive grid layout</li>
480
+ <li>Interactive particle effects</li>
481
+ <li>Typing animation effect</li>
482
+ <li>Modal interactions</li>
483
+ </ul>
484
+ <p style="color: var(--text); margin-top: 1rem;">
485
+ Keep exploring the cards above to see more interactive features!
486
+ </p>
487
+ </div>
488
+ </div>
489
+
490
+ <script>
491
+ // Theme Toggle
492
+ const themeToggle = document.getElementById('themeToggle');
493
+ const body = document.body;
494
+
495
+ themeToggle.addEventListener('click', () => {
496
+ body.classList.toggle('dark-mode');
497
+ themeToggle.textContent = body.classList.contains('dark-mode') ? '☀️' : '🌙';
498
+ localStorage.setItem('theme', body.classList.contains('dark-mode') ? 'dark' : 'light');
499
+ });
500
+
501
+ // Load saved theme
502
+ if (localStorage.getItem('theme') === 'dark') {
503
+ body.classList.add('dark-mode');
504
+ themeToggle.textContent = '☀️';
505
+ }
506
+
507
+ // Particle Generation
508
+ const particlesContainer = document.getElementById('particles');
509
+
510
+ function createParticle() {
511
+ const particle = document.createElement('div');
512
+ particle.className = 'particle';
513
+ particle.style.left = Math.random() * 100 + '%';
514
+ particle.style.width = Math.random() * 10 + 5 + 'px';
515
+ particle.style.height = particle.style.width;
516
+ particle.style.animationDuration = Math.random() * 20 + 10 + 's';
517
+ particle.style.animationDelay = Math.random() * 5 + 's';
518
+ particlesContainer.appendChild(particle);
519
+
520
+ setTimeout(() => {
521
+ particle.remove();
522
+ }, 30000);
523
+ }
524
+
525
+ // Create initial particles
526
+ for (let i = 0; i < 20; i++) {
527
+ setTimeout(() => createParticle(), i * 500);
528
+ }
529
+
530
+ // Continue creating particles
531
+ setInterval(createParticle, 2000);
532
+
533
+ // Typing Effect
534
+ const typingTexts = [
535
+ "Let's build something amazing together!",
536
+ "Click the cards to explore features...",
537
+ "Try the theme toggle in the header!",
538
+ "Press the ✨ button for a surprise!",
539
+ "This is pure HTML, CSS & JavaScript!"
540
+ ];
541
+
542
+ let textIndex = 0;
543
+ let charIndex = 0;
544
+ let isDeleting = false;
545
+ const typingElement = document.getElementById('typingText');
546
+
547
+ function typeText() {
548
+ const currentText = typingTexts[textIndex];
549
+
550
+ if (isDeleting) {
551
+ typingElement.textContent = currentText.substring(0, charIndex - 1);
552
+ charIndex--;
553
+ } else {
554
+ typingElement.textContent = currentText.substring(0, charIndex + 1);
555
+ charIndex++;
556
+ }
557
+
558
+ if (!isDeleting && charIndex === currentText.length) {
559
+ isDeleting = true;
560
+ setTimeout(typeText, 2000);
561
+ } else if (isDeleting && charIndex === 0) {
562
+ isDeleting = false;
563
+ textIndex = (textIndex + 1) % typingTexts.length;
564
+ setTimeout(typeText, 500);
565
+ } else {
566
+ setTimeout(typeText, isDeleting ? 50 : 100);
567
+ }
568
+ }
569
+
570
+ typeText();
571
+
572
+ // Modal Functions
573
+ function toggleModal() {
574
+ const modal = document.getElementById('modal');
575
+ modal.classList.toggle('active');
576
+ }
577
+
578
+ // Card Click Handler
579
+ function handleCardClick(type) {
580
+ const messages = {
581
+ creative: "🎨 Creative design is all about thinking outside the box!",
582
+ performance: "⚡ Performance matters - every millisecond counts!",
583
+ responsive: "📱 Responsive design ensures everyone has a great experience!",
584
+ interactive: "🎮 Interactivity makes websites come alive!",
585
+ modern: "✨ Modern web technologies are powerful and exciting!",
586
+ accessible: "♿ Accessibility is not optional, it's essential!"
587
+ };
588
+
589
+ // Create a toast notification
590
+ const toast = document.createElement('div');
591
+ toast.style.cssText = `
592
+ position: fixed;
593
+ bottom: 100px;
594
+ left: 50%;
595
+ transform: translateX(-50%);
596
+ background: linear-gradient(135deg, var(--primary), var(--secondary));
597
+ color: white;
598
+ padding: 1rem 2rem;
599
+ border-radius: 50px;
600
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
601
+ z-index: 3000;
602
+ animation: slideUp 0.5s ease;
603
+ font-weight: 500;
604
+ `;
605
+ toast.textContent = messages[type];
606
+ document.body.appendChild(toast);
607
+
608
+ setTimeout(() => {
609
+ toast.style.animation = 'slideDown 0.5s ease';
610
+ setTimeout(() => toast.remove(), 500);
611
+ }, 3000);
612
+ }
613
+
614
+ // Add slide animations
615
+ const style = document.createElement('style');
616
+ style.textContent = `
617
+ @keyframes slideUp {
618
+ from {
619
+ transform: translateX(-50%) translateY(100px);
620
+ opacity: 0;
621
+ }
622
+ to {
623
+ transform: translateX(-50%) translateY(0);
624
+ opacity: 1;
625
+ }
626
+ }
627
+ @keyframes slideDown {
628
+ from {
629
+ transform: translateX(-50%) translateY(0);
630
+ opacity: 1;
631
+ }
632
+ to {
633
+ transform: translateX(-50%) translateY(100px);
634
+ opacity: 0;
635
+ }
636
+ }
637
+ `;
638
+ document.head.appendChild(style);
639
+
640
+ // Smooth scroll for navigation links
641
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
642
+ anchor.addEventListener('click', function (e) {
643
+ e.preventDefault();
644
+ const target = document.querySelector(this.getAttribute('href'));
645
+ if (target) {
646
+ target.scrollIntoView({ behavior: 'smooth' });
647
+ }
648
+ });
649
+ });
650
+
651
+ // Add scroll animations
652
+ window.addEventListener('scroll', () => {
653
+ const scrolled = window.pageYOffset;
654
+ const parallax = document.querySelector('.hero-section');
655
+ if (parallax) {
656
+ parallax.style.transform = `translateY(${scrolled * 0.5}px)`;
657
+ }
658
+ });
659
+
660
+ // Easter egg: Konami code
661
+ let konamiCode = [];
662
+ const konamiPattern = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'];
663
+
664
+ document.addEventListener('keydown', (e) => {
665
+ konamiCode.push(e.key);
666
+ konamiCode = konamiCode.slice(-10);
667
+
668
+ if (konamiCode.join(',') === konamiPattern.join(',')) {
669
+ document.body.style.animation = 'rainbow 2s linear infinite';
670
+ setTimeout(() => {
671
+ document.body.style.animation = '';
672
+ }, 5000);
673
+ }
674
+ });
675
+
676
+ // Add rainbow animation for easter egg
677
+ const rainbowStyle = document.createElement('style');
678
+ rainbowStyle.textContent = `
679
+ @keyframes rainbow {
680
+ 0% { filter: hue-rotate(0deg); }
681
+ 100% { filter: hue-rotate(360deg); }
682
+ }
683
+ `;
684
+ document.head.appendChild(rainbowStyle);
685
+ </script>
686
+ </body>
687
+ </html>