HIMANSHU2737 commited on
Commit
5da2928
·
verified ·
1 Parent(s): bcecb40

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +424 -407
index.html CHANGED
@@ -3,18 +3,20 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>India Powers Past Japan: 4th Largest Economy in the World</title>
7
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
 
8
  <style>
9
  :root {
10
- --saffron: #FF9933;
11
- --white: #FFFFFF;
12
- --green: #138808;
13
- --navy: #0F172A;
14
- --gold: #FFD700;
15
- --shadow: 0 20px 40px rgba(0,0,0,0.1);
16
- --shadow-lg: 0 30px 60px rgba(0,0,0,0.2);
17
- --transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
 
18
  }
19
 
20
  * {
@@ -24,53 +26,82 @@
24
  }
25
 
26
  body {
27
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
 
 
28
  line-height: 1.6;
29
- color: var(--navy);
30
  overflow-x: hidden;
31
- background: linear-gradient(135deg, var(--white) 0%, #f8f9ff 100%);
32
  }
33
 
 
34
  header {
35
  position: fixed;
36
  top: 0;
37
  width: 100%;
38
- background: rgba(255, 255, 255, 0.95);
39
  backdrop-filter: blur(20px);
40
  z-index: 1000;
41
- padding: 1rem clamp(1rem, 3vw, 2rem);
42
- display: flex;
43
- justify-content: space-between;
 
 
 
 
 
 
 
44
  align-items: center;
45
- box-shadow: var(--shadow);
46
  }
47
 
48
  .logo {
49
- font-size: clamp(1.2rem, 2.5vw, 2rem);
50
- font-weight: bold;
51
- background: linear-gradient(135deg, var(--saffron), var(--green));
52
  -webkit-background-clip: text;
53
  -webkit-text-fill-color: transparent;
54
- display: flex;
55
- align-items: center;
56
- gap: 0.5rem;
57
  }
58
 
59
  .built-with {
60
  font-size: 0.9rem;
61
- color: var(--navy);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  }
63
 
64
- .built-with a {
65
- color: var(--gold);
66
  text-decoration: none;
67
- font-weight: 600;
 
68
  }
69
 
70
- .built-with a:hover {
71
- text-decoration: underline;
72
  }
73
 
 
74
  .hero {
75
  height: 100vh;
76
  display: flex;
@@ -78,10 +109,9 @@
78
  justify-content: center;
79
  align-items: center;
80
  text-align: center;
81
- background: linear-gradient(135deg, var(--saffron) 0%, var(--white) 50%, var(--green) 100%);
82
  position: relative;
83
  overflow: hidden;
84
- color: var(--white);
85
  }
86
 
87
  .hero::before {
@@ -91,473 +121,460 @@
91
  left: 0;
92
  right: 0;
93
  bottom: 0;
94
- background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><radialGradient id="g" cx="50%" cy="50%"><stop offset="0%" stop-color="rgba(255,255,255,0.3)"/><stop offset="100%" stop-color="rgba(255,255,255,0)"/></radialGradient></defs><circle cx="20" cy="20" r="2" fill="url(%23g)"><animate attributeName="r" values="2;3;2" dur="3s" repeatCount="indefinite"/></circle><circle cx="80" cy="80" r="1.5" fill="url(%23g)"><animate attributeName="r" values="1.5;2.5;1.5" dur="4s" repeatCount="indefinite"/></circle><circle cx="50" cy="30" r="2.5" fill="url(%23g)"><animate attributeName="r" values="2.5;3.5;2.5" dur="2.5s" repeatCount="indefinite"/></circle></svg>') repeat;
95
- animation: sparkle 20s linear infinite;
96
- opacity: 0.6;
 
97
  }
98
 
99
- @keyframes sparkle {
100
- 0% { transform: translate(0, 0); }
101
- 100% { transform: translate(100px, 100px); }
 
102
  }
103
 
104
- .hero h1 {
105
- font-size: clamp(3rem, 8vw, 6rem);
106
- font-weight: 900;
107
- margin-bottom: 1rem;
108
- text-shadow: 0 10px 30px rgba(0,0,0,0.3);
109
- animation: heroIn 2s ease-out;
 
 
110
  }
111
 
112
- @keyframes heroIn {
113
- from { transform: scale(0.5) translateY(50px); opacity: 0; }
114
- to { transform: scale(1) translateY(0); opacity: 1; }
115
  }
116
 
117
- .hero p {
118
- font-size: clamp(1.2rem, 3vw, 2rem);
 
 
119
  margin-bottom: 2rem;
120
- animation: heroIn 2s ease-out 0.3s both;
121
- }
122
-
123
- .flag {
124
- width: 100px;
125
- height: 60px;
126
- background: linear-gradient(to bottom, var(--saffron) 0% 33%, var(--white) 33% 66%, var(--green) 66% 100%);
127
- border-radius: 10px;
128
- margin: 1rem 0;
129
- animation: wave 3s ease-in-out infinite;
130
- box-shadow: var(--shadow-lg);
131
- }
132
-
133
- @keyframes wave {
134
- 0%, 100% { transform: rotate(0deg); }
135
- 50% { transform: rotate(5deg); }
136
  }
137
 
138
- .scroll-indicator {
139
- position: absolute;
140
- bottom: 2rem;
141
- font-size: 1.5rem;
142
- animation: bounce 2s infinite;
 
 
 
 
 
 
143
  }
144
 
145
- @keyframes bounce {
146
- 0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
147
- 40% { transform: translateY(-10px); }
148
- 60% { transform: translateY(-5px); }
149
  }
150
 
151
- section {
152
- padding: clamp(4rem, 10vw, 8rem) clamp(2rem, 5vw, 4rem);
 
153
  max-width: 1400px;
154
  margin: 0 auto;
 
155
  }
156
 
157
- .stats {
158
- background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
159
- }
160
-
161
- .stats-grid {
162
  display: grid;
163
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
164
- gap: 2rem;
165
- margin-top: 3rem;
166
  }
167
 
168
- .stat-card {
169
- background: var(--white);
170
- padding: 2.5rem 2rem;
171
- border-radius: 20px;
172
- text-align: center;
173
- box-shadow: var(--shadow);
174
- transition: var(--transition);
175
- position: relative;
176
- overflow: hidden;
177
  }
178
 
179
- .stat-card::before {
180
- content: '';
181
- position: absolute;
182
- top: 0;
183
- left: -100%;
184
- width: 100%;
185
- height: 4px;
186
- background: linear-gradient(90deg, var(--saffron), var(--green));
187
- transition: left 0.5s;
188
  }
189
 
190
- .stat-card:hover::before {
191
- left: 0;
 
 
 
 
 
192
  }
193
 
194
- .stat-card:hover {
195
- transform: translateY(-15px) scale(1.05);
196
- box-shadow: var(--shadow-lg);
197
  }
198
 
199
- .stat-icon {
200
- font-size: 3rem;
201
- background: linear-gradient(135deg, var(--saffron), var(--green));
202
- -webkit-background-clip: text;
203
- -webkit-text-fill-color: transparent;
204
- margin-bottom: 1rem;
 
 
205
  }
206
 
207
- .stat-value {
208
- font-size: clamp(2rem, 5vw, 3.5rem);
209
- font-weight: bold;
210
- color: var(--navy);
211
- margin-bottom: 0.5rem;
 
 
212
  }
213
 
214
- .stat-label {
215
- color: #64748b;
216
- font-weight: 600;
 
 
217
  }
218
 
219
- .comparison {
220
- background: var(--white);
221
- border-radius: 20px;
222
- padding: 3rem;
223
- box-shadow: var(--shadow);
224
- margin: 4rem auto;
225
- max-width: 1000px;
226
  }
227
 
228
- .comparison h2 {
229
  text-align: center;
230
- font-size: clamp(2rem, 4vw, 2.5rem);
231
- margin-bottom: 2rem;
232
- background: linear-gradient(135deg, var(--saffron), var(--green));
233
- -webkit-background-clip: text;
234
- -webkit-text-fill-color: transparent;
235
  }
236
 
237
- .chart-container {
238
- position: relative;
239
- height: 400px;
240
- margin: 2rem 0;
241
  }
242
 
243
- canvas {
244
- width: 100%;
245
- height: 100%;
246
- border-radius: 15px;
 
247
  }
248
 
249
- .timeline {
250
- display: grid;
251
- grid-template-columns: 1fr;
252
- gap: 2rem;
253
- margin-top: 3rem;
 
 
 
254
  }
255
 
256
- @media (min-width: 768px) {
257
- .timeline {
258
- grid-template-columns: 1fr 1fr;
259
- }
260
  }
261
 
262
- .milestone {
263
- background: linear-gradient(135deg, var(--saffron), var(--green));
264
- color: var(--white);
265
- padding: 2rem;
266
- border-radius: 15px;
267
- position: relative;
268
- animation: slideIn 1s ease-out forwards;
269
- opacity: 0;
270
- transform: translateX(-50px);
271
  }
272
 
273
- .milestone:nth-child(even) {
274
- transform: translateX(50px);
 
 
 
 
 
 
275
  }
276
 
277
- @media (min-width: 768px) {
278
- .milestone:nth-child(even) {
279
- transform: translateX(50px);
280
- }
281
  }
282
 
283
- @keyframes slideIn {
284
- to {
285
- opacity: 1;
286
- transform: translateX(0);
287
- }
 
 
288
  }
289
 
290
- .milestone i {
291
- font-size: 2rem;
292
- margin-bottom: 1rem;
293
- display: block;
294
  }
295
 
296
- .milestone h3 {
297
- margin-bottom: 1rem;
 
298
  }
299
 
300
- .facts {
301
- background: linear-gradient(135deg, var(--green), var(--saffron));
302
- color: var(--white);
303
- clip-path: polygon(0 10%, 100% 0, 100% 90%, 0 100%);
304
- margin: 4rem 0;
305
- transform: skewY(-2deg);
306
- padding: 4rem 2rem;
307
  }
308
 
309
- .facts-content {
310
- max-width: 1200px;
311
- margin: 0 auto;
312
- transform: skewY(2deg);
313
- display: grid;
314
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
315
- gap: 2rem;
 
 
 
316
  }
317
 
318
- .fact {
319
- text-align: center;
320
- font-size: 1.2rem;
321
  }
322
 
323
- footer {
324
- background: var(--navy);
325
- color: var(--white);
326
- text-align: center;
 
 
 
 
 
 
 
 
 
327
  padding: 2rem;
328
- font-size: 0.9rem;
329
  }
330
 
331
- .observe {
332
- opacity: 0;
333
- transform: translateY(50px);
334
- transition: var(--transition);
 
 
 
 
335
  }
336
 
337
- .observe.reveal {
338
- opacity: 1;
339
- transform: translateY(0);
 
 
 
 
340
  }
341
 
 
342
  @media (max-width: 768px) {
343
- .hero h1 { font-size: 3rem; }
344
- .comparison { padding: 2rem 1rem; }
345
- .stats-grid { grid-template-columns: 1fr 1fr; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  }
347
  </style>
348
  </head>
349
  <body>
350
  <header>
351
- <div class="logo">
352
- <i class="fas fa-chart-line"></i>
353
- India Economy Surge
354
- </div>
355
- <div class="built-with">
356
- Built with <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank">anycoder</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
357
  </div>
358
  </header>
359
 
360
- <section class="hero">
361
- <div class="flag"></div>
362
- <h1>India Powers Past Japan</h1>
363
- <p>Now the 4th Largest Economy in the World!</p>
364
- <div class="scroll-indicator">
365
- <i class="fas fa-chevron-down"></i>
366
- </div>
367
  </section>
368
 
369
- <section class="stats observe" id="stats">
370
- <h2 style="text-align: center; font-size: clamp(2.5rem, 5vw, 3rem); margin-bottom: 1rem;">
371
- Key Economic Milestones
372
- </h2>
373
- <div class="stats-grid">
374
- <div class="stat-card">
375
- <i class="fas fa-dollar-sign stat-icon"></i>
376
- <div class="stat-value">$4.0T</div>
377
- <div class="stat-label">India's Nominal GDP (2024)</div>
378
- </div>
379
- <div class="stat-card">
380
- <i class="fas fa-chart-line stat-icon"></i>
381
- <div class="stat-value">7.2%</div>
382
- <div class="stat-label">GDP Growth Rate</div>
383
- </div>
384
- <div class="stat-card">
385
- <i class="fas fa-users stat-icon"></i>
386
- <div class="stat-value">1.43B</div>
387
- <div class="stat-label">Population Powerhouse</div>
388
- </div>
389
- <div class="stat-card">
390
- <i class="fas fa-trophy stat-icon"></i>
391
- <div class="stat-value">#4 Global</div>
392
- <div class="stat-label">Economy Ranking</div>
393
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
394
  </div>
395
- </section>
396
-
397
- <section class="comparison observe" id="comparison">
398
- <h2>India vs Japan: GDP Race</h2>
399
- <div class="chart-container">
400
- <canvas id="gdpChart"></canvas>
 
 
 
 
 
401
  </div>
402
- <p style="text-align: center; font-style: italic; color: #64748b;">
403
- *Data based on IMF projections and recent reports (Trillions USD, Nominal)
404
- </p>
405
- </section>
406
 
407
- <section class="timeline" id="timeline">
408
- <div class="milestone">
409
- <i class="fas fa-rocket"></i>
410
- <h3>2023: $3.73T</h3>
411
- <p>India closes gap, growth surges amid global slowdown.</p>
412
- </div>
413
- <div class="milestone">
414
- <i class="fas fa-flag-checkered"></i>
415
- <h3>2024: Overtake!</h3>
416
- <p>India surpasses Japan at $4.0T vs $4.1T, momentum unstoppable.</p>
417
- </div>
418
- <div class="milestone">
419
- <i class="fas fa-arrow-up"></i>
420
- <h3>2025 Proj: $4.3T</h3>
421
- <p>India eyes #3 spot, challenging Germany.</p>
422
- </div>
423
- <div class="milestone">
424
- <i class="fas fa-globe"></i>
425
- <h3>2030 Goal: #3</h3>
426
- <p>Path to become 3rd largest by 2027-28.</p>
427
- </div>
428
- </section>
429
 
430
- <section class="facts observe" id="facts">
431
- <div class="facts-content">
432
- <div class="fact">
433
- <i class="fas fa-bolt" style="font-size: 3rem; margin-bottom: 1rem; display: block;"></i>
434
- Fastest growing major economy for a decade.
435
- </div>
436
- <div class="fact">
437
- <i class="fas fa-industry" style="font-size: 3rem; margin-bottom: 1rem; display: block;"></i>
438
- World's 3rd largest PPP economy already.
439
- </div>
440
- <div class="fact">
441
- <i class="fas fa-mobile-alt" style="font-size: 3rem; margin-bottom: 1rem; display: block;"></i>
442
- Digital India: 1B+ mobile users, UPI revolution.
443
- </div>
444
- </div>
445
- </section>
446
 
447
- <footer>
448
- <p>&copy; 2024 India Economy Celebration | Data illustrative from IMF/World Bank | Made for inspiration</p>
449
- </footer>
 
450
 
451
- <script>
452
- // Scroll reveal
453
- const observer = new IntersectionObserver((entries) => {
454
- entries.forEach(entry => {
455
- if (entry.isIntersecting) {
456
- entry.target.classList.add('reveal');
457
- }
458
- });
459
- }, { threshold: 0.1 });
460
-
461
- document.querySelectorAll('.observe').forEach(el => observer.observe(el));
462
-
463
- // Timeline milestones reveal on scroll
464
- const tlObserver = new IntersectionObserver((entries) => {
465
- entries.forEach((entry, index) => {
466
- if (entry.isIntersecting) {
467
- setTimeout(() => {
468
- entry.target.style.animationDelay = `${index * 0.2}s`;
469
- entry.target.style.animationPlayState = 'running';
470
- }, 100);
471
- }
472
- });
473
  });
474
- document.querySelectorAll('.milestone').forEach(tlObserver.observe);
475
-
476
- // GDP Chart
477
- const canvas = document.getElementById('gdpChart');
478
- const ctx = canvas.getContext('2d');
479
-
480
- function resizeCanvas() {
481
- canvas.width = canvas.offsetWidth;
482
- canvas.height = canvas.offsetHeight;
483
- }
484
- window.addEventListener('resize', resizeCanvas);
485
- resizeCanvas();
486
-
487
- const data = {
488
- labels: ['2020', '2021', '2022', '2023', '2024', '2025p'],
489
- india: [2.67, 3.15, 3.39, 3.73, 4.0, 4.3],
490
- japan: [5.05, 4.94, 4.26, 4.21, 4.11, 4.12]
491
- };
492
-
493
- const maxValue = Math.max(...data.india, ...data.japan);
494
- const barWidth = canvas.width / data.labels.length / 2.5;
495
- const padding = 40;
496
- let animationProgress = 0;
497
-
498
- function drawChart(progress) {
499
- ctx.clearRect(0, 0, canvas.width, canvas.height);
500
- const barSpacing = (canvas.width - padding * 2) / data.labels.length;
501
-
502
- data.labels.forEach((label, i) => {
503
- const xIndia = padding + i * barSpacing;
504
- const xJapan = xIndia + barSpacing / 2;
505
- const heightIndia = (data.india[i] / maxValue) * (canvas.height - padding * 2) * progress;
506
- const heightJapan = (data.japan[i] / maxValue) * (canvas.height - padding * 2) * progress;
507
-
508
- // Japan bar (greyish)
509
- ctx.fillStyle = '#94A3B8';
510
- ctx.fillRect(xJapan, canvas.height - padding - heightJapan, barWidth, heightJapan);
511
- ctx.fillStyle = '#475569';
512
- ctx.font = 'bold 12px Segoe UI';
513
- ctx.fillText(label, xJapan + barWidth / 2 - 15, canvas.height - 10);
514
-
515
- // India bar (tricolor gradient)
516
- const gradientIndia = ctx.createLinearGradient(xIndia, 0, xIndia + barWidth, 0);
517
- gradientIndia.addColorStop(0, 'var(--saffron)');
518
- gradientIndia.addColorStop(0.5, 'var(--white)');
519
- gradientIndia.addColorStop(1, 'var(--green)');
520
- ctx.fillStyle = gradientIndia;
521
- ctx.fillRect(xIndia, canvas.height - padding - heightIndia, barWidth, heightIndia);
522
-
523
- // Hover simulation - on real hover could add tooltip
524
- if (i === 4) { // Highlight overtake year
525
- ctx.strokeStyle = '#FFD700';
526
- ctx.lineWidth = 4;
527
- ctx.strokeRect(xIndia, canvas.height - padding - heightIndia, barWidth, heightIndia);
528
- }
529
- });
530
-
531
- // Axes
532
- ctx.strokeStyle = '#e2e8f0';
533
- ctx.lineWidth = 2;
534
- ctx.beginPath();
535
- ctx.moveTo(padding, padding);
536
- ctx.lineTo(padding, canvas.height - padding);
537
- ctx.lineTo(canvas.width - padding, canvas.height - padding);
538
- ctx.stroke();
539
-
540
- // Labels
541
- ctx.fillStyle = '#64748b';
542
- ctx.font = '14px Segoe UI';
543
- ctx.fillText(`$${maxValue}T`, 10, 20);
544
- }
545
-
546
- // Animate chart on load
547
- const animateChart = () => {
548
- animationProgress += 0.05;
549
- drawChart(animationProgress);
550
- if (animationProgress < 1) {
551
- requestAnimationFrame(animateChart);
552
- }
553
- };
554
- setTimeout(animateChart, 500);
555
-
556
- // Parallax effect on hero scroll
557
- window.addEventListener('scroll', () => {
558
- const scrolled = window.pageYOffset;
559
- const hero = document.querySelector('.hero');
560
- hero.style.transform = `translateY(${scrolled * 0.5}px)`;
561
  });
562
  </script>
563
  </body>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Global News Hub - Putin Challenges Trump from New Delhi</title>
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
9
  <style>
10
  :root {
11
+ --primary-color: #1a1a2e;
12
+ --secondary-color: #16213e;
13
+ --accent-color: #e94560;
14
+ --text-primary: #ffffff;
15
+ --text-secondary: #b8bcc8;
16
+ --bg-gradient: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 50%, #16213e 100%);
17
+ --card-shadow: 0 20px 40px rgba(0,0,0,0.3);
18
+ --border-radius: 16px;
19
+ --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
20
  }
21
 
22
  * {
 
26
  }
27
 
28
  body {
29
+ font-family: 'Inter', sans-serif;
30
+ background: var(--bg-gradient);
31
+ color: var(--text-primary);
32
  line-height: 1.6;
 
33
  overflow-x: hidden;
 
34
  }
35
 
36
+ /* Header */
37
  header {
38
  position: fixed;
39
  top: 0;
40
  width: 100%;
41
+ background: rgba(26, 26, 46, 0.95);
42
  backdrop-filter: blur(20px);
43
  z-index: 1000;
44
+ padding: 1rem 0;
45
+ border-bottom: 1px solid rgba(255,255,255,0.1);
46
+ }
47
+
48
+ .container {
49
+ max-width: 1400px;
50
+ margin: 0 auto;
51
+ padding: 0 2rem;
52
+ display: grid;
53
+ grid-template-columns: auto 1fr auto;
54
  align-items: center;
55
+ gap: 2rem;
56
  }
57
 
58
  .logo {
59
+ font-size: 1.8rem;
60
+ font-weight: 800;
61
+ background: linear-gradient(135deg, #e94560, #ff6b6b);
62
  -webkit-background-clip: text;
63
  -webkit-text-fill-color: transparent;
64
+ text-decoration: none;
 
 
65
  }
66
 
67
  .built-with {
68
  font-size: 0.9rem;
69
+ color: var(--text-secondary);
70
+ text-decoration: none;
71
+ transition: var(--transition);
72
+ }
73
+
74
+ .built-with:hover {
75
+ color: var(--accent-color);
76
+ }
77
+
78
+ .nav-toggle {
79
+ display: none;
80
+ background: none;
81
+ border: none;
82
+ color: var(--text-primary);
83
+ font-size: 1.5rem;
84
+ cursor: pointer;
85
+ }
86
+
87
+ nav ul {
88
+ display: flex;
89
+ list-style: none;
90
+ gap: 2rem;
91
  }
92
 
93
+ nav a {
94
+ color: var(--text-secondary);
95
  text-decoration: none;
96
+ font-weight: 500;
97
+ transition: var(--transition);
98
  }
99
 
100
+ nav a:hover {
101
+ color: var(--text-primary);
102
  }
103
 
104
+ /* Hero Section */
105
  .hero {
106
  height: 100vh;
107
  display: flex;
 
109
  justify-content: center;
110
  align-items: center;
111
  text-align: center;
112
+ padding: 0 2rem;
113
  position: relative;
114
  overflow: hidden;
 
115
  }
116
 
117
  .hero::before {
 
121
  left: 0;
122
  right: 0;
123
  bottom: 0;
124
+ background: url('https://images.unsplash.com/photo-1568650342229-6b21c09574ec?ixlib=rb-4.0.3&auto=format&fit=crop&w=2070&q=80') center/cover;
125
+ filter: brightness(0.4) saturate(1.2);
126
+ z-index: -1;
127
+ animation: parallax 20s linear infinite;
128
  }
129
 
130
+ @keyframes parallax {
131
+ 0% { transform: translateY(0); }
132
+ 50% { transform: translateY(-20px); }
133
+ 100% { transform: translateY(0); }
134
  }
135
 
136
+ .headline {
137
+ font-size: clamp(2.5rem, 5vw, 4.5rem);
138
+ font-weight: 800;
139
+ margin-bottom: 1.5rem;
140
+ background: linear-gradient(135deg, #ffffff, #e0e0e0);
141
+ -webkit-background-clip: text;
142
+ -webkit-text-fill-color: transparent;
143
+ animation: glow 2s ease-in-out infinite alternate;
144
  }
145
 
146
+ @keyframes glow {
147
+ from { text-shadow: 0 0 20px rgba(233, 69, 96, 0.5); }
148
+ to { text-shadow: 0 0 40px rgba(233, 69, 96, 0.8), 0 0 60px rgba(233, 69, 96, 0.4); }
149
  }
150
 
151
+ .subheadline {
152
+ font-size: 1.5rem;
153
+ color: var(--text-secondary);
154
+ max-width: 800px;
155
  margin-bottom: 2rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  }
157
 
158
+ .cta-button {
159
+ background: linear-gradient(135deg, var(--accent-color), #ff6b6b);
160
+ color: white;
161
+ padding: 1rem 2.5rem;
162
+ border: none;
163
+ border-radius: var(--border-radius);
164
+ font-size: 1.1rem;
165
+ font-weight: 600;
166
+ cursor: pointer;
167
+ transition: var(--transition);
168
+ box-shadow: var(--card-shadow);
169
  }
170
 
171
+ .cta-button:hover {
172
+ transform: translateY(-5px);
173
+ box-shadow: 0 30px 60px rgba(233, 69, 96, 0.4);
 
174
  }
175
 
176
+ /* Main Content */
177
+ main {
178
+ padding: 8rem 0 4rem;
179
  max-width: 1400px;
180
  margin: 0 auto;
181
+ padding: 0 2rem;
182
  }
183
 
184
+ .grid {
 
 
 
 
185
  display: grid;
186
+ grid-template-columns: 2fr 1fr;
187
+ gap: 4rem;
188
+ margin-bottom: 4rem;
189
  }
190
 
191
+ /* Article */
192
+ .article {
193
+ background: rgba(255,255,255,0.05);
194
+ backdrop-filter: blur(10px);
195
+ border-radius: var(--border-radius);
196
+ padding: 3rem;
197
+ border: 1px solid rgba(255,255,255,0.1);
198
+ box-shadow: var(--card-shadow);
 
199
  }
200
 
201
+ .article-header {
202
+ margin-bottom: 2rem;
 
 
 
 
 
 
 
203
  }
204
 
205
+ .article-meta {
206
+ display: flex;
207
+ align-items: center;
208
+ gap: 1rem;
209
+ color: var(--text-secondary);
210
+ font-size: 0.9rem;
211
+ margin-bottom: 1rem;
212
  }
213
 
214
+ .article-body {
215
+ font-size: 1.1rem;
216
+ line-height: 1.8;
217
  }
218
 
219
+ .quote {
220
+ background: rgba(233, 69, 96, 0.1);
221
+ border-left: 4px solid var(--accent-color);
222
+ padding: 2rem;
223
+ margin: 2rem 0;
224
+ font-style: italic;
225
+ font-size: 1.3rem;
226
+ position: relative;
227
  }
228
 
229
+ .quote::before {
230
+ content: '"';
231
+ font-size: 4rem;
232
+ color: var(--accent-color);
233
+ position: absolute;
234
+ top: -10px;
235
+ left: 20px;
236
  }
237
 
238
+ /* Sidebar */
239
+ .sidebar {
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: 2rem;
243
  }
244
 
245
+ .widget {
246
+ background: rgba(255,255,255,0.05);
247
+ backdrop-filter: blur(10px);
248
+ border-radius: var(--border-radius);
249
+ padding: 2rem;
250
+ border: 1px solid rgba(255,255,255,0.1);
251
+ box-shadow: var(--card-shadow);
252
  }
253
 
254
+ .poll {
255
  text-align: center;
 
 
 
 
 
256
  }
257
 
258
+ .poll-question {
259
+ font-size: 1.2rem;
260
+ margin-bottom: 1.5rem;
 
261
  }
262
 
263
+ .poll-options {
264
+ display: flex;
265
+ flex-direction: column;
266
+ gap: 1rem;
267
+ margin-bottom: 1.5rem;
268
  }
269
 
270
+ .poll-option {
271
+ background: rgba(255,255,255,0.1);
272
+ padding: 1rem;
273
+ border-radius: 12px;
274
+ cursor: pointer;
275
+ transition: var(--transition);
276
+ position: relative;
277
+ overflow: hidden;
278
  }
279
 
280
+ .poll-option:hover {
281
+ background: rgba(233, 69, 96, 0.2);
 
 
282
  }
283
 
284
+ .poll-option input[type="radio"] {
285
+ margin-right: 1rem;
 
 
 
 
 
 
 
286
  }
287
 
288
+ .poll-vote {
289
+ background: var(--accent-color);
290
+ color: white;
291
+ border: none;
292
+ padding: 0.8rem 2rem;
293
+ border-radius: 12px;
294
+ cursor: pointer;
295
+ transition: var(--transition);
296
  }
297
 
298
+ .results {
299
+ margin-top: 1rem;
300
+ font-weight: 600;
 
301
  }
302
 
303
+ .ticker {
304
+ background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
305
+ padding: 1rem 0;
306
+ overflow: hidden;
307
+ white-space: nowrap;
308
+ box-shadow: var(--card-shadow);
309
+ margin-bottom: 2rem;
310
  }
311
 
312
+ .ticker-content {
313
+ display: inline-block;
314
+ animation: ticker 30s linear infinite;
 
315
  }
316
 
317
+ @keyframes ticker {
318
+ 0% { transform: translateX(100%); }
319
+ 100% { transform: translateX(-100%); }
320
  }
321
 
322
+ /* Reactions */
323
+ .reactions {
324
+ display: flex;
325
+ gap: 1rem;
326
+ margin-top: 2rem;
 
 
327
  }
328
 
329
+ .reaction {
330
+ display: flex;
331
+ align-items: center;
332
+ gap: 0.5rem;
333
+ padding: 0.8rem 1.5rem;
334
+ background: rgba(255,255,255,0.1);
335
+ border-radius: 25px;
336
+ cursor: pointer;
337
+ transition: var(--transition);
338
+ font-size: 0.9rem;
339
  }
340
 
341
+ .reaction:hover {
342
+ background: rgba(233, 69, 96, 0.3);
343
+ transform: scale(1.05);
344
  }
345
 
346
+ /* Modal */
347
+ .modal {
348
+ display: none;
349
+ position: fixed;
350
+ top: 0;
351
+ left: 0;
352
+ width: 100%;
353
+ height: 100%;
354
+ background: rgba(0,0,0,0.8);
355
+ backdrop-filter: blur(10px);
356
+ z-index: 2000;
357
+ align-items: center;
358
+ justify-content: center;
359
  padding: 2rem;
 
360
  }
361
 
362
+ .modal-content {
363
+ background: var(--secondary-color);
364
+ padding: 3rem;
365
+ border-radius: var(--border-radius);
366
+ max-width: 800px;
367
+ max-height: 80vh;
368
+ overflow-y: auto;
369
+ box-shadow: var(--card-shadow);
370
  }
371
 
372
+ .close {
373
+ position: absolute;
374
+ top: 2rem;
375
+ right: 2rem;
376
+ font-size: 2rem;
377
+ cursor: pointer;
378
+ color: var(--text-secondary);
379
  }
380
 
381
+ /* Responsive */
382
  @media (max-width: 768px) {
383
+ .container {
384
+ grid-template-columns: 1fr;
385
+ text-align: center;
386
+ }
387
+
388
+ nav ul {
389
+ display: none;
390
+ }
391
+
392
+ .nav-toggle {
393
+ display: block;
394
+ }
395
+
396
+ .grid {
397
+ grid-template-columns: 1fr;
398
+ gap: 2rem;
399
+ }
400
+
401
+ .hero {
402
+ padding: 2rem;
403
+ }
404
+
405
+ .article {
406
+ padding: 2rem 1.5rem;
407
+ }
408
+ }
409
+
410
+ /* Dark mode toggle */
411
+ .theme-toggle {
412
+ background: none;
413
+ border: none;
414
+ color: var(--text-primary);
415
+ font-size: 1.5rem;
416
+ cursor: pointer;
417
+ position: absolute;
418
+ top: 1.5rem;
419
+ right: 2rem;
420
+ }
421
+
422
+ body.dark {
423
+ --bg-gradient: linear-gradient(135deg, #000000 0%, #0a0a0a 100%);
424
  }
425
  </style>
426
  </head>
427
  <body>
428
  <header>
429
+ <div class="container">
430
+ <a href="#" class="logo">Global News Hub</a>
431
+ <nav>
432
+ <ul>
433
+ <li><a href="#home">Home</a></li>
434
+ <li><a href="#world">World</a></li>
435
+ <li><a href="#politics">Politics</a></li>
436
+ <li><a href="#article">Article</a></li>
437
+ </ul>
438
+ </nav>
439
+ <div style="display: flex; align-items: center; gap: 1rem;">
440
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="built-with" title="Built with anycoder">
441
+ <i class="fas fa-heart"></i> Built with anycoder
442
+ </a>
443
+ <button class="theme-toggle" id="themeToggle" title="Toggle Theme">
444
+ <i class="fas fa-moon"></i>
445
+ </button>
446
+ </div>
447
+ <button class="nav-toggle"><i class="fas fa-bars"></i></button>
448
  </div>
449
  </header>
450
 
451
+ <section class="hero" id="home">
452
+ <h1 class="headline" id="headline">Putin challenges Trump from New Delhi; 'Don't even try to make India…' | US in shock</h1>
453
+ <p class="subheadline">Russian President issues stark warning amid rising geopolitical tensions. World watches as alliances shift.</p>
454
+ <button class="cta-button" onclick="openModal()">Read Full Story</button>
 
 
 
455
  </section>
456
 
457
+ <main>
458
+ <div class="grid">
459
+ <article class="article" id="article">
460
+ <div class="article-header">
461
+ <h2>Putin challenges Trump from New Delhi; 'Don't even try to make India…'</h2>
462
+ <div class="article-meta">
463
+ <i class="fas fa-clock"></i> 2 hours ago
464
+ <i class="fas fa-map-marker-alt"></i> New Delhi, India
465
+ <i class="fas fa-user"></i> By Alexei Ivanov
466
+ </div>
467
+ </div>
468
+ <div class="article-body">
469
+ <p>In a stunning address from the heart of New Delhi, Russian President Vladimir Putin directly challenged incoming US President Donald Trump, warning him against any attempts to sway India into the Western fold. Speaking at a high-profile summit, Putin declared, <span class="quote">Don't even try to make India your puppet. India is a sovereign power, and Russia stands with it.</span></p>
470
+ <p>The remarks, delivered amidst India's deepening ties with Russia, have sent shockwaves through Washington. US officials expressed dismay, with one anonymous source stating, "This is a direct affront to American interests in the Indo-Pacific."</p>
471
+ <img src="https://images.unsplash.com/photo-1573164713988-8665fc963095?ixlib=rb-4.0.3&auto=format&fit=crop&w=2070&q=80" alt="Putin in New Delhi" style="width:100%; border-radius: var(--border-radius); margin: 2rem 0; box-shadow: var(--card-shadow);">
472
+ <p>Putin's visit underscores Russia's strategy to counter US influence in South Asia. With India purchasing Russian S-400 systems despite US sanctions threats, the rift appears unbridgeable. Analysts predict this could reshape global alliances.</p>
473
+ <div class="reactions">
474
+ <div class="reaction" onclick="react('shock')"><i class="fas fa-shocked"></i> Shock (1.2K)</div>
475
+ <div class="reaction" onclick="react('fire')"><i class="fas fa-fire"></i> Trending (856)</div>
476
+ <div class="reaction" onclick="react('share')"><i class="fas fa-share-alt"></i> Share</div>
477
+ </div>
478
+ </div>
479
+ </article>
480
+
481
+ <aside class="sidebar">
482
+ <div class="widget ticker">
483
+ <div class="ticker-content">
484
+ 🚨 Breaking: Putin-Trump tensions rise | India remains neutral | US Congress debates response | Stock markets volatile amid news...
485
+ </div>
486
+ </div>
487
+ <div class="widget poll">
488
+ <h3 class="poll-question">Is the US truly in shock?</h3>
489
+ <div class="poll-options">
490
+ <label class="poll-option">
491
+ <input type="radio" name="poll" value="yes"> Yes, completely unexpected
492
+ </label>
493
+ <label class="poll-option">
494
+ <input type="radio" name="poll" value="no"> No, expected power play
495
+ </label>
496
+ <label class="poll-option">
497
+ <input type="radio" name="poll" value="neutral"> Neutral stance
498
+ </label>
499
+ </div>
500
+ <button class="poll-vote" onclick="vote()">Vote Now</button>
501
+ <div class="results" id="pollResults" style="display:none;">Thanks for voting! Results updating...</div>
502
+ </div>
503
+ <div class="widget">
504
+ <h3>Related News</h3>
505
+ <ul style="list-style:none;">
506
+ <li><a href="#" style="color:var(--text-secondary); text-decoration:none;">Trump responds: 'India will choose freedom'</a></li>
507
+ <li><a href="#" style="color:var(--text-secondary); text-decoration:none;">Modi hosts Putin: Strategic partnership deepens</a></li>
508
+ <li><a href="#" style="color:var(--text-secondary); text-decoration:none;">US sanctions loom over India-Russia deal</a></li>
509
+ </ul>
510
+ </div>
511
+ </aside>
512
  </div>
513
+ </main>
514
+
515
+ <!-- Modal -->
516
+ <div class="modal" id="modal">
517
+ <div class="modal-content">
518
+ <span class="close" onclick="closeModal()">&times;</span>
519
+ <h2>Full Exclusive Report</h2>
520
+ <p>Extended analysis: Putin's speech detailed Russia's unwavering support for BRICS nations. Trump camp hints at reciprocal tariffs. Stay tuned for updates.</p>
521
+ <video width="100%" controls style="border-radius: var(--border-radius); margin-top:1rem;">
522
+ <source src="https://example.com/putin-speech.mp4" type="video/mp4">
523
+ </video>
524
  </div>
525
+ </div>
 
 
 
526
 
527
+ <script>
528
+ // Typing animation for headline
529
+ const headline = document.getElementById('headline');
530
+ const fullText = headline.textContent;
531
+ headline.textContent = '';
532
+ let i = 0;
533
+ function typeWriter() {
534
+ if (i < fullText.length) {
535
+ headline.textContent += fullText.charAt(i);
536
+ i++;
537
+ setTimeout(typeWriter, 50);
538
+ }
539
+ }
540
+ window.addEventListener('load', typeWriter);
 
 
 
 
 
 
 
 
541
 
542
+ // Modal
543
+ function openModal() {
544
+ document.getElementById('modal').style.display = 'flex';
545
+ }
546
+ function closeModal() {
547
+ document.getElementById('modal').style.display = 'none';
548
+ }
 
 
 
 
 
 
 
 
 
549
 
550
+ // Poll
551
+ function vote() {
552
+ document.getElementById('pollResults').style.display = 'block';
553
+ }
554
 
555
+ // Reactions
556
+ function react(type) {
557
+ alert(`Reacted with ${type}!`);
558
+ }
559
+
560
+ // Theme toggle
561
+ const themeToggle = document.getElementById('themeToggle');
562
+ themeToggle.addEventListener('click', () => {
563
+ document.body.classList.toggle('dark');
564
+ const icon = themeToggle.querySelector('i');
565
+ icon.classList.toggle('fa-moon');
566
+ icon.classList.toggle('fa-sun');
 
 
 
 
 
 
 
 
 
 
567
  });
568
+
569
+ // Nav toggle mobile
570
+ document.querySelector('.nav-toggle').addEventListener('click', () => {
571
+ const ul = document.querySelector('nav ul');
572
+ ul.style.display = ul.style.display === 'flex' ? 'none' : 'flex';
573
+ });
574
+
575
+ // Close modal on escape
576
+ document.addEventListener('keydown', (e) => {
577
+ if (e.key === 'Escape') closeModal();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  });
579
  </script>
580
  </body>