Spaces:
Running
Running
Upload folder using huggingface_hub
Browse files- 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>
|
| 7 |
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.
|
|
|
|
| 8 |
<style>
|
| 9 |
:root {
|
| 10 |
-
--
|
| 11 |
-
--
|
| 12 |
-
--
|
| 13 |
-
--
|
| 14 |
-
--
|
| 15 |
-
--
|
| 16 |
-
--
|
| 17 |
-
--
|
|
|
|
| 18 |
}
|
| 19 |
|
| 20 |
* {
|
|
@@ -24,53 +26,82 @@
|
|
| 24 |
}
|
| 25 |
|
| 26 |
body {
|
| 27 |
-
font-family: '
|
|
|
|
|
|
|
| 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(
|
| 39 |
backdrop-filter: blur(20px);
|
| 40 |
z-index: 1000;
|
| 41 |
-
padding: 1rem
|
| 42 |
-
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
align-items: center;
|
| 45 |
-
|
| 46 |
}
|
| 47 |
|
| 48 |
.logo {
|
| 49 |
-
font-size:
|
| 50 |
-
font-weight:
|
| 51 |
-
background: linear-gradient(135deg,
|
| 52 |
-webkit-background-clip: text;
|
| 53 |
-webkit-text-fill-color: transparent;
|
| 54 |
-
|
| 55 |
-
align-items: center;
|
| 56 |
-
gap: 0.5rem;
|
| 57 |
}
|
| 58 |
|
| 59 |
.built-with {
|
| 60 |
font-size: 0.9rem;
|
| 61 |
-
color: var(--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
}
|
| 63 |
|
| 64 |
-
|
| 65 |
-
color: var(--
|
| 66 |
text-decoration: none;
|
| 67 |
-
font-weight:
|
|
|
|
| 68 |
}
|
| 69 |
|
| 70 |
-
|
| 71 |
-
|
| 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 |
-
|
| 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('
|
| 95 |
-
|
| 96 |
-
|
|
|
|
| 97 |
}
|
| 98 |
|
| 99 |
-
@keyframes
|
| 100 |
-
0% { transform:
|
| 101 |
-
|
|
|
|
| 102 |
}
|
| 103 |
|
| 104 |
-
.
|
| 105 |
-
font-size: clamp(
|
| 106 |
-
font-weight:
|
| 107 |
-
margin-bottom:
|
| 108 |
-
|
| 109 |
-
|
|
|
|
|
|
|
| 110 |
}
|
| 111 |
|
| 112 |
-
@keyframes
|
| 113 |
-
from {
|
| 114 |
-
to {
|
| 115 |
}
|
| 116 |
|
| 117 |
-
.
|
| 118 |
-
font-size:
|
|
|
|
|
|
|
| 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 |
-
.
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
}
|
| 144 |
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
60% { transform: translateY(-5px); }
|
| 149 |
}
|
| 150 |
|
| 151 |
-
|
| 152 |
-
|
|
|
|
| 153 |
max-width: 1400px;
|
| 154 |
margin: 0 auto;
|
|
|
|
| 155 |
}
|
| 156 |
|
| 157 |
-
.
|
| 158 |
-
background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
|
| 159 |
-
}
|
| 160 |
-
|
| 161 |
-
.stats-grid {
|
| 162 |
display: grid;
|
| 163 |
-
grid-template-columns:
|
| 164 |
-
gap:
|
| 165 |
-
margin-
|
| 166 |
}
|
| 167 |
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
overflow: hidden;
|
| 177 |
}
|
| 178 |
|
| 179 |
-
.
|
| 180 |
-
|
| 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 |
-
.
|
| 191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 192 |
}
|
| 193 |
|
| 194 |
-
.
|
| 195 |
-
|
| 196 |
-
|
| 197 |
}
|
| 198 |
|
| 199 |
-
.
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
|
|
|
|
|
|
| 205 |
}
|
| 206 |
|
| 207 |
-
.
|
| 208 |
-
|
| 209 |
-
font-
|
| 210 |
-
color: var(--
|
| 211 |
-
|
|
|
|
|
|
|
| 212 |
}
|
| 213 |
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
|
|
|
|
|
|
| 217 |
}
|
| 218 |
|
| 219 |
-
.
|
| 220 |
-
background:
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
}
|
| 227 |
|
| 228 |
-
.
|
| 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 |
-
.
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
margin: 2rem 0;
|
| 241 |
}
|
| 242 |
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
|
|
|
| 247 |
}
|
| 248 |
|
| 249 |
-
.
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
|
|
|
|
|
|
|
|
|
| 254 |
}
|
| 255 |
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
grid-template-columns: 1fr 1fr;
|
| 259 |
-
}
|
| 260 |
}
|
| 261 |
|
| 262 |
-
.
|
| 263 |
-
|
| 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 |
-
.
|
| 274 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 275 |
}
|
| 276 |
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
}
|
| 281 |
}
|
| 282 |
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
|
|
|
|
|
|
| 288 |
}
|
| 289 |
|
| 290 |
-
.
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
display: block;
|
| 294 |
}
|
| 295 |
|
| 296 |
-
|
| 297 |
-
|
|
|
|
| 298 |
}
|
| 299 |
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
margin:
|
| 305 |
-
transform: skewY(-2deg);
|
| 306 |
-
padding: 4rem 2rem;
|
| 307 |
}
|
| 308 |
|
| 309 |
-
.
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
|
|
|
|
|
|
|
|
|
| 316 |
}
|
| 317 |
|
| 318 |
-
.
|
| 319 |
-
|
| 320 |
-
|
| 321 |
}
|
| 322 |
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 327 |
padding: 2rem;
|
| 328 |
-
font-size: 0.9rem;
|
| 329 |
}
|
| 330 |
|
| 331 |
-
.
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 335 |
}
|
| 336 |
|
| 337 |
-
.
|
| 338 |
-
|
| 339 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 340 |
}
|
| 341 |
|
|
|
|
| 342 |
@media (max-width: 768px) {
|
| 343 |
-
.
|
| 344 |
-
|
| 345 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 346 |
}
|
| 347 |
</style>
|
| 348 |
</head>
|
| 349 |
<body>
|
| 350 |
<header>
|
| 351 |
-
<div class="
|
| 352 |
-
<
|
| 353 |
-
|
| 354 |
-
|
| 355 |
-
|
| 356 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 357 |
</div>
|
| 358 |
</header>
|
| 359 |
|
| 360 |
-
<section class="hero">
|
| 361 |
-
<
|
| 362 |
-
<
|
| 363 |
-
<
|
| 364 |
-
<div class="scroll-indicator">
|
| 365 |
-
<i class="fas fa-chevron-down"></i>
|
| 366 |
-
</div>
|
| 367 |
</section>
|
| 368 |
|
| 369 |
-
<
|
| 370 |
-
<
|
| 371 |
-
|
| 372 |
-
|
| 373 |
-
|
| 374 |
-
|
| 375 |
-
|
| 376 |
-
|
| 377 |
-
|
| 378 |
-
|
| 379 |
-
|
| 380 |
-
<
|
| 381 |
-
|
| 382 |
-
|
| 383 |
-
|
| 384 |
-
|
| 385 |
-
|
| 386 |
-
|
| 387 |
-
|
| 388 |
-
|
| 389 |
-
|
| 390 |
-
<
|
| 391 |
-
|
| 392 |
-
|
| 393 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 394 |
</div>
|
| 395 |
-
</
|
| 396 |
-
|
| 397 |
-
<
|
| 398 |
-
|
| 399 |
-
<div class="
|
| 400 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 401 |
</div>
|
| 402 |
-
|
| 403 |
-
*Data based on IMF projections and recent reports (Trillions USD, Nominal)
|
| 404 |
-
</p>
|
| 405 |
-
</section>
|
| 406 |
|
| 407 |
-
<
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 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 |
-
|
| 431 |
-
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 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 |
-
|
| 448 |
-
|
| 449 |
-
|
|
|
|
| 450 |
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 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 |
-
|
| 475 |
-
|
| 476 |
-
|
| 477 |
-
|
| 478 |
-
|
| 479 |
-
|
| 480 |
-
|
| 481 |
-
|
| 482 |
-
|
| 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()">×</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>
|