🐳 12/04 - 06:27 - CREATE THE HOMEPAGE FOR NAGAS ATHLETICS WEBSITE WITH THE FOLLOWING BRUTALIST SPECIFICATIONS: DESIGN SYSTEM: Background: Pure black (#121212) with subtle noise texture and 1px dotte
Browse files- index.html +218 -165
index.html
CHANGED
|
@@ -82,10 +82,12 @@
|
|
| 82 |
|
| 83 |
/* Carousel Styles */
|
| 84 |
.carousel-container {
|
| 85 |
-
scroll-snap-type: x mandatory;
|
| 86 |
overflow-x: auto;
|
| 87 |
scrollbar-width: thin;
|
| 88 |
scrollbar-color: #5ec0cc #333333;
|
|
|
|
|
|
|
|
|
|
| 89 |
}
|
| 90 |
|
| 91 |
.carousel-container::-webkit-scrollbar {
|
|
@@ -94,7 +96,8 @@
|
|
| 94 |
|
| 95 |
.carousel-container::-webkit-scrollbar-track {
|
| 96 |
background: #121212;
|
| 97 |
-
border: 1px solid #333333;
|
|
|
|
| 98 |
}
|
| 99 |
|
| 100 |
.carousel-container::-webkit-scrollbar-thumb {
|
|
@@ -102,13 +105,13 @@
|
|
| 102 |
}
|
| 103 |
|
| 104 |
.carousel-slide {
|
| 105 |
-
|
| 106 |
-
flex-shrink: 0;
|
| 107 |
}
|
| 108 |
|
| 109 |
.carousel-slide.active {
|
| 110 |
opacity: 1;
|
| 111 |
transform: scale(1.05);
|
|
|
|
| 112 |
}
|
| 113 |
|
| 114 |
.carousel-slide:not(.active) {
|
|
@@ -116,6 +119,26 @@
|
|
| 116 |
transform: scale(0.9);
|
| 117 |
}
|
| 118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
/* Table Styles */
|
| 120 |
.brutalist-table {
|
| 121 |
width: 100%;
|
|
@@ -199,17 +222,17 @@
|
|
| 199 |
<body class="min-h-screen">
|
| 200 |
|
| 201 |
<!-- Ticker Board -->
|
| 202 |
-
<div class="w-full bg-[#121212] border-b border-[#333333] overflow-hidden py-2">
|
| 203 |
-
<div class="ticker-content whitespace-nowrap flex">
|
| 204 |
-
<span class="text-[#5ec0cc] font-mono text-
|
| 205 |
-
<span class="text-[#5ec0cc] font-mono text-
|
| 206 |
</div>
|
| 207 |
</div>
|
| 208 |
|
| 209 |
<!-- Header -->
|
| 210 |
-
<header class="w-full border-b border-[#333333] relative">
|
| 211 |
<div class="max-w-full px-4 sm:px-8 py-4 flex justify-between items-center">
|
| 212 |
-
<a href="index.html" class="text-[#5ec0cc] font-bold
|
| 213 |
|
| 214 |
<!-- Desktop Menu Button -->
|
| 215 |
<button id="menuBtn" class="hidden md:block border border-[#5ec0cc] px-6 py-2 text-[#5ec0cc] font-mono text-sm uppercase hover:bg-[#5ec0cc] hover:text-[#121212] transition-colors">
|
|
@@ -289,190 +312,189 @@
|
|
| 289 |
</header>
|
| 290 |
|
| 291 |
<!-- Hero Section -->
|
| 292 |
-
<section class="w-full min-h-
|
| 293 |
-
<h1 class="text-[#5ec0cc] font-bold
|
| 294 |
NAGAS ATHLETICS
|
| 295 |
</h1>
|
| 296 |
-
<h2 class="text-white
|
| 297 |
NORTHBRIDGE INTERNATIONAL SCHOOL OF CAMBODIA
|
| 298 |
</h2>
|
| 299 |
|
| 300 |
<!-- Season Selector -->
|
| 301 |
<div class="flex gap-4 flex-wrap justify-center">
|
| 302 |
-
<button class="bg-[#5ec0cc] text-[#121212] px-8 py-
|
| 303 |
[2025-26]
|
| 304 |
</button>
|
| 305 |
-
<button onclick="openModal('comingSoonModal')" class="
|
| 306 |
[2026-27]
|
| 307 |
</button>
|
| 308 |
</div>
|
| 309 |
</section>
|
| 310 |
|
| 311 |
<!-- Leadership Messages -->
|
| 312 |
-
<section class="w-full border-b border-[#333333] py-16 px-4 md:px-8">
|
| 313 |
-
<
|
|
|
|
| 314 |
<!-- Card 1 -->
|
| 315 |
-
<div class="border border-[#333333] hover-border-teal transition-colors
|
| 316 |
-
<div class="bg-gradient-to-b from-[#5ec0cc] to-[#4ab3c6]
|
| 317 |
-
<img src="http://static.photos/people/200x200/1" alt="Andrew Dean" class="w-[60px] h-[60px] rounded-full border-2 border-white object-cover">
|
| 318 |
-
<div>
|
| 319 |
-
<h3 class="text-white font-bold uppercase text-lg">Andrew Dean</h3>
|
| 320 |
-
<p class="text-white font-mono text-sm">Athletic Director</p>
|
| 321 |
-
</div>
|
| 322 |
</div>
|
| 323 |
-
<div class="
|
| 324 |
-
<
|
|
|
|
|
|
|
|
|
|
| 325 |
Welcome to another exciting season of Nagas Athletics. Our commitment to excellence both on and off the field remains unwavering. This year, we continue to build upon our legacy of sportsmanship, dedication, and competitive spirit.
|
| 326 |
</p>
|
| 327 |
-
<p class="text-[#
|
| 328 |
We have expanded our training facilities and welcomed new coaching talent to ensure our athletes receive the best possible support. I look forward to seeing our community come together to support the Nagas!
|
| 329 |
</p>
|
| 330 |
-
<a href="council.html" class="text-[#5ec0cc]
|
| 331 |
</div>
|
| 332 |
</div>
|
| 333 |
|
| 334 |
<!-- Card 2 -->
|
| 335 |
-
<div class="border border-[#333333] hover-border-teal transition-colors
|
| 336 |
-
<div class="bg-gradient-to-b from-[#5ec0cc] to-[#4ab3c6]
|
| 337 |
-
<img src="http://static.photos/people/200x200/2" alt="Leang Chinh Dom" class="w-[60px] h-[60px] rounded-full border-2 border-white object-cover">
|
| 338 |
-
<div>
|
| 339 |
-
<h3 class="text-white font-bold uppercase text-lg">Leang Chinh Dom</h3>
|
| 340 |
-
<p class="text-white font-mono text-sm">Athletic Council President</p>
|
| 341 |
-
</div>
|
| 342 |
</div>
|
| 343 |
-
<div class="
|
| 344 |
-
<
|
|
|
|
|
|
|
|
|
|
| 345 |
As Athletic Council President, I am proud to represent the student voice in our athletic programs. This year, we are focusing on inclusivity and student engagement across all sports.
|
| 346 |
</p>
|
| 347 |
-
<p class="text-[#
|
| 348 |
We have launched new initiatives to support mental health and academic balance for our athletes. Together, we will make this season memorable for every Naga.
|
| 349 |
</p>
|
| 350 |
-
<a href="council.html" class="text-[#5ec0cc]
|
| 351 |
</div>
|
| 352 |
</div>
|
| 353 |
</div>
|
| 354 |
</section>
|
| 355 |
|
| 356 |
<!-- Sports Carousel -->
|
| 357 |
-
<section class="w-full border-b border-[#333333] py-16">
|
| 358 |
-
<h2 class="text-[#5ec0cc] font-bold uppercase text-
|
| 359 |
|
| 360 |
-
<div class="carousel-container flex gap-
|
| 361 |
<!-- Volleyball -->
|
| 362 |
-
<div class="carousel-slide w-[300px] border border-[#333333] hover-border-teal transition-all duration-300">
|
| 363 |
-
<img src="http://static.photos/sport/320x240/1" alt="Volleyball" class="w-
|
| 364 |
<div class="p-4 text-center">
|
| 365 |
-
<h3 class="text-
|
| 366 |
-
<a href="volleyball.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-
|
| 367 |
</div>
|
| 368 |
</div>
|
| 369 |
|
| 370 |
<!-- Basketball -->
|
| 371 |
-
<div class="carousel-slide w-[300px] border border-[#333333] hover-border-teal transition-all duration-300 active">
|
| 372 |
-
<img src="http://static.photos/sport/320x240/2" alt="Basketball" class="w-
|
| 373 |
<div class="p-4 text-center">
|
| 374 |
-
<h3 class="text-
|
| 375 |
-
<a href="basketball.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-
|
| 376 |
</div>
|
| 377 |
</div>
|
| 378 |
|
| 379 |
<!-- Football -->
|
| 380 |
-
<div class="carousel-slide w-[300px] border border-[#333333] hover-border-teal transition-all duration-300">
|
| 381 |
-
<img src="http://static.photos/sport/320x240/3" alt="Football" class="w-
|
| 382 |
<div class="p-4 text-center">
|
| 383 |
-
<h3 class="text-
|
| 384 |
-
<a href="football.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-
|
| 385 |
</div>
|
| 386 |
</div>
|
| 387 |
|
| 388 |
<!-- Track & Field -->
|
| 389 |
-
<div class="carousel-slide w-[300px] border border-[#333333] hover-border-teal transition-all duration-300">
|
| 390 |
-
<img src="http://static.photos/sport/320x240/4" alt="Track & Field" class="w-
|
| 391 |
<div class="p-4 text-center">
|
| 392 |
-
<h3 class="text-
|
| 393 |
-
<a href="track.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-
|
| 394 |
</div>
|
| 395 |
</div>
|
| 396 |
|
| 397 |
<!-- Swimming -->
|
| 398 |
-
<div class="carousel-slide w-[300px] border border-[#333333] hover-border-teal transition-all duration-300">
|
| 399 |
-
<img src="http://static.photos/sport/320x240/5" alt="Swimming" class="w-
|
| 400 |
<div class="p-4 text-center">
|
| 401 |
-
<h3 class="text-
|
| 402 |
-
<a href="swimming.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-
|
| 403 |
</div>
|
| 404 |
</div>
|
| 405 |
</div>
|
| 406 |
</section>
|
| 407 |
|
| 408 |
<!-- Next Matches & Recent Results -->
|
| 409 |
-
<section class="w-full border-b border-[#333333] py-16 px-4 md:px-8">
|
| 410 |
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
|
| 411 |
<!-- Next Matches -->
|
| 412 |
-
<div>
|
| 413 |
-
<h3 class="text-[#5ec0cc] font-bold uppercase text-xl mb-6 tracking-wider">NEXT MATCHES</h3>
|
| 414 |
-
<table class="brutalist-table">
|
| 415 |
<thead>
|
| 416 |
-
<tr>
|
| 417 |
-
<th>DATE</th>
|
| 418 |
-
<th>SPORT</th>
|
| 419 |
-
<th>OPPONENT</th>
|
| 420 |
-
<th>LOCATION</th>
|
| 421 |
</tr>
|
| 422 |
</thead>
|
| 423 |
-
<tbody class="text-
|
| 424 |
-
<tr>
|
| 425 |
-
<td>2025-11-15</td>
|
| 426 |
-
<td>BASKETBALL</td>
|
| 427 |
-
<td>ISPP</td>
|
| 428 |
-
<td>HOME</td>
|
| 429 |
</tr>
|
| 430 |
-
<tr>
|
| 431 |
-
<td>2025-11-18</td>
|
| 432 |
-
<td>VOLLEYBALL</td>
|
| 433 |
-
<td>ISPP</td>
|
| 434 |
-
<td>AWAY</td>
|
| 435 |
</tr>
|
| 436 |
-
<tr>
|
| 437 |
-
<td>2025-11-22</td>
|
| 438 |
-
<td>FOOTBALL</td>
|
| 439 |
-
<td>CFL</td>
|
| 440 |
-
<td>HOME</td>
|
| 441 |
</tr>
|
| 442 |
</tbody>
|
| 443 |
</table>
|
| 444 |
</div>
|
| 445 |
|
| 446 |
<!-- Recent Results -->
|
| 447 |
-
<div>
|
| 448 |
-
<h3 class="text-[#5ec0cc] font-bold uppercase text-xl mb-6 tracking-wider">RECENT RESULTS</h3>
|
| 449 |
-
<table class="brutalist-table">
|
| 450 |
<thead>
|
| 451 |
-
<tr>
|
| 452 |
-
<th>DATE</th>
|
| 453 |
-
<th>SPORT</th>
|
| 454 |
-
<th>SCORE</th>
|
| 455 |
-
<th>OPPONENT</th>
|
| 456 |
</tr>
|
| 457 |
</thead>
|
| 458 |
-
<tbody class="
|
| 459 |
-
<tr>
|
| 460 |
-
<td>2025-11-08</td>
|
| 461 |
-
<td>BASKETBALL</td>
|
| 462 |
-
<td class="text-[#5ec0cc]">68-54 (W)</td>
|
| 463 |
-
<td>ISPP</td>
|
| 464 |
</tr>
|
| 465 |
-
<tr>
|
| 466 |
-
<td>2025-11-05</td>
|
| 467 |
-
<td>VOLLEYBALL</td>
|
| 468 |
-
<td class="text-[#ff9900]">2-3 (L)</td>
|
| 469 |
-
<td>ISPP</td>
|
| 470 |
</tr>
|
| 471 |
-
<tr>
|
| 472 |
-
<td>2025-11-01</td>
|
| 473 |
-
<td>FOOTBALL</td>
|
| 474 |
-
<td class="text-[#5ec0cc]">3-1 (W)</td>
|
| 475 |
-
<td>CFL</td>
|
| 476 |
</tr>
|
| 477 |
</tbody>
|
| 478 |
</table>
|
|
@@ -481,76 +503,77 @@
|
|
| 481 |
</section>
|
| 482 |
|
| 483 |
<!-- Athlete Spotlight -->
|
| 484 |
-
<section class="w-full border-b border-[#333333] py-16 px-4 md:px-8">
|
| 485 |
-
<h3 class="text-[#5ec0cc] font-bold uppercase text-xl mb-8 tracking-wider">ATHLETE SPOTLIGHT</h3>
|
| 486 |
-
<div id="spotlightContainer" class="border border-[#333333] p-6 flex flex-col md:flex-row gap-6 items-center md:items-start">
|
| 487 |
<!-- Content loaded by JS -->
|
| 488 |
</div>
|
| 489 |
</section>
|
| 490 |
|
| 491 |
<!-- Quick Links -->
|
| 492 |
-
<section class="w-full py-16 px-4 md:px-8">
|
| 493 |
-
<
|
| 494 |
-
|
| 495 |
-
|
|
|
|
| 496 |
</a>
|
| 497 |
-
<a href="schedule.html" class="border border-[#333333] p-
|
| 498 |
-
<span class="text-white font-
|
| 499 |
</a>
|
| 500 |
-
<a href="about.html" class="border border-[#333333] p-
|
| 501 |
-
<span class="text-white font-
|
| 502 |
</a>
|
| 503 |
-
<a href="news.html" class="border border-[#333333] p-
|
| 504 |
-
<span class="text-white font-
|
| 505 |
</a>
|
| 506 |
</div>
|
| 507 |
</section>
|
| 508 |
|
| 509 |
<!-- Footer -->
|
| 510 |
-
<footer class="w-full border-t border-[#333333] py-12 px-4 md:px-8">
|
| 511 |
-
<div class="grid grid-cols-1 md:grid-cols-3 gap-0">
|
| 512 |
<div class="border border-[#333333] p-6 md:border-r-0">
|
| 513 |
-
<h4 class="text-[#5ec0cc] font-bold uppercase mb-4 tracking-wider">CONTACT</h4>
|
| 514 |
-
<p class="text-
|
| 515 |
</div>
|
| 516 |
<div class="border border-[#333333] p-6 md:border-r-0">
|
| 517 |
-
<h4 class="text-[#5ec0cc] font-bold uppercase mb-4 tracking-wider">QUICK LINKS</h4>
|
| 518 |
<ul class="space-y-2">
|
| 519 |
-
<li><a href="index.html" class="text-
|
| 520 |
-
<li><a href="teams.html" class="text-
|
| 521 |
-
<li><a href="about.html" class="text-
|
| 522 |
-
<li><a href="schedule.html" class="text-
|
| 523 |
-
<li><a href="news.html" class="text-
|
| 524 |
-
<li><a href="council.html" class="text-
|
| 525 |
-
<li><a href="involved.html" class="text-
|
| 526 |
</ul>
|
| 527 |
</div>
|
| 528 |
<div class="border border-[#333333] p-6">
|
| 529 |
-
<h4 class="text-[#5ec0cc] font-bold uppercase mb-4 tracking-wider">SOCIAL</h4>
|
| 530 |
-
<p class="text-
|
| 531 |
<div class="flex gap-4 mt-4">
|
| 532 |
-
<a href="#" class="text-
|
| 533 |
-
<a href="#" class="text-
|
| 534 |
-
<a href="#" class="text-
|
| 535 |
</div>
|
| 536 |
</div>
|
| 537 |
</div>
|
| 538 |
-
<div class="text-center mt-8 pt-8 border-t border-[#333333]">
|
| 539 |
-
<p class="text-[#333333] font-mono text-xs uppercase">© 2025 NAGAS ATHLETICS. ALL RIGHTS RESERVED.</p>
|
| 540 |
</div>
|
| 541 |
</footer>
|
| 542 |
|
| 543 |
<!-- Coming Soon Modal -->
|
| 544 |
<div id="comingSoonModal" class="modal">
|
| 545 |
-
<div class="border border-[#5ec0cc] bg-[#121212] p-8 max-w-md mx-4 relative">
|
| 546 |
-
<button onclick="closeModal('comingSoonModal')" class="absolute top-4 right-4 text-[#5ec0cc]
|
| 547 |
<i data-lucide="x" class="w-6 h-6"></i>
|
| 548 |
</button>
|
| 549 |
-
<h3 class="text-[#5ec0cc] font-bold uppercase text-2xl mb-
|
| 550 |
-
<p class="text-
|
| 551 |
-
The 2026-27 season
|
| 552 |
</p>
|
| 553 |
-
<button onclick="closeModal('comingSoonModal')" class="
|
| 554 |
CLOSE
|
| 555 |
</button>
|
| 556 |
</div>
|
|
@@ -583,12 +606,13 @@
|
|
| 583 |
document.getElementById(modalId).classList.remove('active');
|
| 584 |
}
|
| 585 |
|
| 586 |
-
// Carousel Auto-rotation
|
| 587 |
const slides = document.querySelectorAll('.carousel-slide');
|
| 588 |
let currentSlide = 1;
|
| 589 |
let carouselInterval;
|
|
|
|
| 590 |
|
| 591 |
-
function
|
| 592 |
slides.forEach((slide, index) => {
|
| 593 |
slide.classList.remove('active');
|
| 594 |
if (index === currentSlide) {
|
|
@@ -599,14 +623,22 @@
|
|
| 599 |
|
| 600 |
function nextSlide() {
|
| 601 |
currentSlide = (currentSlide + 1) % slides.length;
|
| 602 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 603 |
}
|
| 604 |
|
|
|
|
|
|
|
|
|
|
| 605 |
// Auto-rotate every 5 seconds
|
| 606 |
carouselInterval = setInterval(nextSlide, 5000);
|
| 607 |
|
| 608 |
// Pause on hover
|
| 609 |
-
const carousel = document.getElementById('sportsCarousel');
|
| 610 |
carousel.addEventListener('mouseenter', () => clearInterval(carouselInterval));
|
| 611 |
carousel.addEventListener('mouseleave', () => {
|
| 612 |
carouselInterval = setInterval(nextSlide, 5000);
|
|
@@ -618,42 +650,63 @@
|
|
| 618 |
|
| 619 |
carousel.addEventListener('touchstart', (e) => {
|
| 620 |
touchStartX = e.changedTouches[0].screenX;
|
| 621 |
-
});
|
| 622 |
|
| 623 |
carousel.addEventListener('touchend', (e) => {
|
| 624 |
touchEndX = e.changedTouches[0].screenX;
|
| 625 |
handleSwipe();
|
| 626 |
-
});
|
| 627 |
|
| 628 |
function handleSwipe() {
|
| 629 |
if (touchEndX < touchStartX - 50) {
|
| 630 |
currentSlide = Math.min(currentSlide + 1, slides.length - 1);
|
| 631 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 632 |
}
|
| 633 |
if (touchEndX > touchStartX + 50) {
|
| 634 |
currentSlide = Math.max(currentSlide - 1, 0);
|
| 635 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 636 |
}
|
| 637 |
}
|
| 638 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 639 |
// Athlete Spotlight Rotation
|
| 640 |
const athletes = [
|
| 641 |
{
|
| 642 |
name: "SOKHA CHAN",
|
| 643 |
position: "POINT GUARD",
|
| 644 |
-
achievement: "2024 MVP AWARD",
|
| 645 |
image: "http://static.photos/people/200x200/10"
|
| 646 |
},
|
| 647 |
{
|
| 648 |
name: "DAVID SMITH",
|
| 649 |
position: "CENTER",
|
| 650 |
-
achievement: "ALL-TOURNAMENT TEAM 2024",
|
| 651 |
image: "http://static.photos/people/200x200/11"
|
| 652 |
},
|
| 653 |
{
|
| 654 |
name: "MARIA GARCIA",
|
| 655 |
position: "SWIMMER",
|
| 656 |
-
achievement: "50M FREE RECORD HOLDER",
|
| 657 |
image: "http://static.photos/people/200x200/12"
|
| 658 |
}
|
| 659 |
];
|
|
@@ -665,11 +718,11 @@
|
|
| 665 |
const athlete = athletes[currentAthlete];
|
| 666 |
|
| 667 |
container.innerHTML = `
|
| 668 |
-
<img src="${athlete.image}" alt="${athlete.name}" class="w-[200px] h-[200px] object-cover border border-[#333333] fade-
|
| 669 |
-
<div class="flex-1 text-center md:text-left
|
| 670 |
-
<h4 class="text-[#5ec0cc] font-bold uppercase text-2xl mb-
|
| 671 |
-
<p class="text-
|
| 672 |
-
<p class="text-[#
|
| 673 |
</div>
|
| 674 |
`;
|
| 675 |
}
|
|
|
|
| 82 |
|
| 83 |
/* Carousel Styles */
|
| 84 |
.carousel-container {
|
|
|
|
| 85 |
overflow-x: auto;
|
| 86 |
scrollbar-width: thin;
|
| 87 |
scrollbar-color: #5ec0cc #333333;
|
| 88 |
+
display: flex;
|
| 89 |
+
align-items: center;
|
| 90 |
+
padding: 20px 0;
|
| 91 |
}
|
| 92 |
|
| 93 |
.carousel-container::-webkit-scrollbar {
|
|
|
|
| 96 |
|
| 97 |
.carousel-container::-webkit-scrollbar-track {
|
| 98 |
background: #121212;
|
| 99 |
+
border-top: 1px solid #333333;
|
| 100 |
+
border-bottom: 1px solid #333333;
|
| 101 |
}
|
| 102 |
|
| 103 |
.carousel-container::-webkit-scrollbar-thumb {
|
|
|
|
| 105 |
}
|
| 106 |
|
| 107 |
.carousel-slide {
|
| 108 |
+
transition: all 0.3s ease;
|
|
|
|
| 109 |
}
|
| 110 |
|
| 111 |
.carousel-slide.active {
|
| 112 |
opacity: 1;
|
| 113 |
transform: scale(1.05);
|
| 114 |
+
z-index: 10;
|
| 115 |
}
|
| 116 |
|
| 117 |
.carousel-slide:not(.active) {
|
|
|
|
| 119 |
transform: scale(0.9);
|
| 120 |
}
|
| 121 |
|
| 122 |
+
/* Ticker Animation */
|
| 123 |
+
@keyframes ticker {
|
| 124 |
+
0% { transform: translateX(0); }
|
| 125 |
+
100% { transform: translateX(-50%); }
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
.ticker-content {
|
| 129 |
+
animation: ticker 20s linear infinite;
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
/* Athlete Spotlight Transition */
|
| 133 |
+
.spotlight-fade {
|
| 134 |
+
animation: fadeIn 0.5s ease-in;
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
@keyframes fadeIn {
|
| 138 |
+
from { opacity: 0; }
|
| 139 |
+
to { opacity: 1; }
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
/* Table Styles */
|
| 143 |
.brutalist-table {
|
| 144 |
width: 100%;
|
|
|
|
| 222 |
<body class="min-h-screen">
|
| 223 |
|
| 224 |
<!-- Ticker Board -->
|
| 225 |
+
<div class="w-full bg-[#121212] border-b border-[#333333] overflow-hidden py-2" style="height: 40px;">
|
| 226 |
+
<div class="ticker-content whitespace-nowrap flex items-center h-full">
|
| 227 |
+
<span class="text-[#5ec0cc] font-mono text-base mx-8 leading-none">2025-26 SEASON HIGHLIGHTS • NEXT MATCH: BASKETBALL VS. ISPP • 2026-27 SEASON: COMING SOON • 2025-26 SEASON HIGHLIGHTS • NEXT MATCH: BASKETBALL VS. ISPP • 2026-27 SEASON: COMING SOON •</span>
|
| 228 |
+
<span class="text-[#5ec0cc] font-mono text-base mx-8 leading-none">2025-26 SEASON HIGHLIGHTS • NEXT MATCH: BASKETBALL VS. ISPP • 2026-27 SEASON: COMING SOON • 2025-26 SEASON HIGHLIGHTS • NEXT MATCH: BASKETBALL VS. ISPP • 2026-27 SEASON: COMING SOON •</span>
|
| 229 |
</div>
|
| 230 |
</div>
|
| 231 |
|
| 232 |
<!-- Header -->
|
| 233 |
+
<header class="w-full border-b border-[#333333] relative bg-[#121212]">
|
| 234 |
<div class="max-w-full px-4 sm:px-8 py-4 flex justify-between items-center">
|
| 235 |
+
<a href="index.html" class="text-[#5ec0cc] font-bold uppercase" style="font-family: 'Montserrat', sans-serif; font-size: 2.5rem; letter-spacing: 0.1em;">NAGAS</a>
|
| 236 |
|
| 237 |
<!-- Desktop Menu Button -->
|
| 238 |
<button id="menuBtn" class="hidden md:block border border-[#5ec0cc] px-6 py-2 text-[#5ec0cc] font-mono text-sm uppercase hover:bg-[#5ec0cc] hover:text-[#121212] transition-colors">
|
|
|
|
| 312 |
</header>
|
| 313 |
|
| 314 |
<!-- Hero Section -->
|
| 315 |
+
<section class="w-full min-h-screen flex flex-col justify-center items-center px-4 py-20 border-b border-[#333333] relative">
|
| 316 |
+
<h1 class="text-[#5ec0cc] font-bold uppercase text-center leading-none mb-6" style="font-family: 'Montserrat', sans-serif; font-size: clamp(3rem, 10vw, 8rem); letter-spacing: 0.2em;">
|
| 317 |
NAGAS ATHLETICS
|
| 318 |
</h1>
|
| 319 |
+
<h2 class="text-white uppercase text-center tracking-wider mb-12" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: clamp(1.5rem, 3vw, 3rem); letter-spacing: 0.1em;">
|
| 320 |
NORTHBRIDGE INTERNATIONAL SCHOOL OF CAMBODIA
|
| 321 |
</h2>
|
| 322 |
|
| 323 |
<!-- Season Selector -->
|
| 324 |
<div class="flex gap-4 flex-wrap justify-center">
|
| 325 |
+
<button class="bg-[#5ec0cc] text-[#121212] px-8 py-4 font-bold uppercase border-0 tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 1.2rem; letter-spacing: 0.1em;">
|
| 326 |
[2025-26]
|
| 327 |
</button>
|
| 328 |
+
<button onclick="openModal('comingSoonModal')" class="bg-transparent text-[#CCCCCC] border border-[#333333] px-8 py-4 font-bold uppercase tracking-wider hover:border-[#5ec0cc] transition-colors" style="font-family: 'Montserrat', sans-serif; font-size: 1.2rem; letter-spacing: 0.1em;">
|
| 329 |
[2026-27]
|
| 330 |
</button>
|
| 331 |
</div>
|
| 332 |
</section>
|
| 333 |
|
| 334 |
<!-- Leadership Messages -->
|
| 335 |
+
<section class="w-full border-t border-b border-[#333333] py-16 px-4 md:px-8">
|
| 336 |
+
<h2 class="text-[#5ec0cc] font-bold uppercase text-center mb-12 tracking-wider" style="font-size: 1.8rem; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif;">LEADERSHIP MESSAGES</h2>
|
| 337 |
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-6xl mx-auto">
|
| 338 |
<!-- Card 1 -->
|
| 339 |
+
<div class="border border-[#333333] hover-border-teal transition-colors bg-[#121212]">
|
| 340 |
+
<div class="bg-gradient-to-b from-[#5ec0cc] to-[#4ab3c6] h-[60px] relative flex justify-center">
|
| 341 |
+
<img src="http://static.photos/people/200x200/1" alt="Andrew Dean" class="w-[60px] h-[60px] rounded-full border-2 border-white object-cover absolute -bottom-[30px]">
|
|
|
|
|
|
|
|
|
|
|
|
|
| 342 |
</div>
|
| 343 |
+
<div class="pt-[40px] pb-6 px-6 text-center">
|
| 344 |
+
<h3 class="text-white font-bold uppercase text-lg tracking-wide" style="font-family: 'Montserrat', sans-serif;">ANDREW DEAN</h3>
|
| 345 |
+
<p class="text-white text-sm mb-6" style="font-family: 'Montserrat', sans-serif;">Athletic Director</p>
|
| 346 |
+
|
| 347 |
+
<p class="text-[#CCCCCC] leading-[1.6] text-base mb-4 text-left">
|
| 348 |
Welcome to another exciting season of Nagas Athletics. Our commitment to excellence both on and off the field remains unwavering. This year, we continue to build upon our legacy of sportsmanship, dedication, and competitive spirit.
|
| 349 |
</p>
|
| 350 |
+
<p class="text-[#CCCCCC] leading-[1.6] text-base mb-6 text-left">
|
| 351 |
We have expanded our training facilities and welcomed new coaching talent to ensure our athletes receive the best possible support. I look forward to seeing our community come together to support the Nagas!
|
| 352 |
</p>
|
| 353 |
+
<a href="council.html" class="text-[#5ec0cc] uppercase text-sm tracking-wide hover:underline" style="text-decoration: none; font-size: 0.9rem;">Read Full Message →</a>
|
| 354 |
</div>
|
| 355 |
</div>
|
| 356 |
|
| 357 |
<!-- Card 2 -->
|
| 358 |
+
<div class="border border-[#333333] hover-border-teal transition-colors bg-[#121212]">
|
| 359 |
+
<div class="bg-gradient-to-b from-[#5ec0cc] to-[#4ab3c6] h-[60px] relative flex justify-center">
|
| 360 |
+
<img src="http://static.photos/people/200x200/2" alt="Leang Chinh Dom" class="w-[60px] h-[60px] rounded-full border-2 border-white object-cover absolute -bottom-[30px]">
|
|
|
|
|
|
|
|
|
|
|
|
|
| 361 |
</div>
|
| 362 |
+
<div class="pt-[40px] pb-6 px-6 text-center">
|
| 363 |
+
<h3 class="text-white font-bold uppercase text-lg tracking-wide" style="font-family: 'Montserrat', sans-serif;">LEANG CHINH DOM</h3>
|
| 364 |
+
<p class="text-white text-sm mb-6" style="font-family: 'Montserrat', sans-serif;">Athletic Council President</p>
|
| 365 |
+
|
| 366 |
+
<p class="text-[#CCCCCC] leading-[1.6] text-base mb-4 text-left">
|
| 367 |
As Athletic Council President, I am proud to represent the student voice in our athletic programs. This year, we are focusing on inclusivity and student engagement across all sports.
|
| 368 |
</p>
|
| 369 |
+
<p class="text-[#CCCCCC] leading-[1.6] text-base mb-6 text-left">
|
| 370 |
We have launched new initiatives to support mental health and academic balance for our athletes. Together, we will make this season memorable for every Naga.
|
| 371 |
</p>
|
| 372 |
+
<a href="council.html" class="text-[#5ec0cc] uppercase text-sm tracking-wide hover:underline" style="text-decoration: none; font-size: 0.9rem;">Read Full Message →</a>
|
| 373 |
</div>
|
| 374 |
</div>
|
| 375 |
</div>
|
| 376 |
</section>
|
| 377 |
|
| 378 |
<!-- Sports Carousel -->
|
| 379 |
+
<section class="w-full border-t border-b border-[#333333] py-16">
|
| 380 |
+
<h2 class="text-[#5ec0cc] font-bold uppercase text-center mb-10 tracking-wider px-4" style="font-size: 1.8rem; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif;">OUR SPORTS</h2>
|
| 381 |
|
| 382 |
+
<div class="carousel-container flex gap-4 px-4 md:px-12 pb-4 scroll-smooth" id="sportsCarousel" style="scroll-snap-type: x mandatory;">
|
| 383 |
<!-- Volleyball -->
|
| 384 |
+
<div class="carousel-slide flex-shrink-0 w-[300px] border border-[#333333] hover-border-teal transition-all duration-300 bg-[#121212]" style="min-width: 300px; scroll-snap-align: center;">
|
| 385 |
+
<img src="http://static.photos/sport/320x240/1" alt="Volleyball" class="w-full h-[150px] object-cover border-b border-[#333333]">
|
| 386 |
<div class="p-4 text-center">
|
| 387 |
+
<h3 class="text-white uppercase font-bold mb-3 text-xl" style="font-family: 'Montserrat', sans-serif;">VOLLEYBALL</h3>
|
| 388 |
+
<a href="volleyball.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-4 py-2 uppercase font-bold text-sm tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 0.9rem; letter-spacing: 0.1em;">Explore Teams</a>
|
| 389 |
</div>
|
| 390 |
</div>
|
| 391 |
|
| 392 |
<!-- Basketball -->
|
| 393 |
+
<div class="carousel-slide flex-shrink-0 w-[300px] border border-[#333333] hover-border-teal transition-all duration-300 bg-[#121212] active" style="min-width: 300px; scroll-snap-align: center;">
|
| 394 |
+
<img src="http://static.photos/sport/320x240/2" alt="Basketball" class="w-full h-[150px] object-cover border-b border-[#333333]">
|
| 395 |
<div class="p-4 text-center">
|
| 396 |
+
<h3 class="text-white uppercase font-bold mb-3 text-xl" style="font-family: 'Montserrat', sans-serif;">BASKETBALL</h3>
|
| 397 |
+
<a href="basketball.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-4 py-2 uppercase font-bold text-sm tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 0.9rem; letter-spacing: 0.1em;">Explore Teams</a>
|
| 398 |
</div>
|
| 399 |
</div>
|
| 400 |
|
| 401 |
<!-- Football -->
|
| 402 |
+
<div class="carousel-slide flex-shrink-0 w-[300px] border border-[#333333] hover-border-teal transition-all duration-300 bg-[#121212]" style="min-width: 300px; scroll-snap-align: center;">
|
| 403 |
+
<img src="http://static.photos/sport/320x240/3" alt="Football" class="w-full h-[150px] object-cover border-b border-[#333333]">
|
| 404 |
<div class="p-4 text-center">
|
| 405 |
+
<h3 class="text-white uppercase font-bold mb-3 text-xl" style="font-family: 'Montserrat', sans-serif;">FOOTBALL</h3>
|
| 406 |
+
<a href="football.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-4 py-2 uppercase font-bold text-sm tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 0.9rem; letter-spacing: 0.1em;">Explore Teams</a>
|
| 407 |
</div>
|
| 408 |
</div>
|
| 409 |
|
| 410 |
<!-- Track & Field -->
|
| 411 |
+
<div class="carousel-slide flex-shrink-0 w-[300px] border border-[#333333] hover-border-teal transition-all duration-300 bg-[#121212]" style="min-width: 300px; scroll-snap-align: center;">
|
| 412 |
+
<img src="http://static.photos/sport/320x240/4" alt="Track & Field" class="w-full h-[150px] object-cover border-b border-[#333333]">
|
| 413 |
<div class="p-4 text-center">
|
| 414 |
+
<h3 class="text-white uppercase font-bold mb-3 text-xl" style="font-family: 'Montserrat', sans-serif;">TRACK & FIELD</h3>
|
| 415 |
+
<a href="track.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-4 py-2 uppercase font-bold text-sm tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 0.9rem; letter-spacing: 0.1em;">Explore Teams</a>
|
| 416 |
</div>
|
| 417 |
</div>
|
| 418 |
|
| 419 |
<!-- Swimming -->
|
| 420 |
+
<div class="carousel-slide flex-shrink-0 w-[300px] border border-[#333333] hover-border-teal transition-all duration-300 bg-[#121212]" style="min-width: 300px; scroll-snap-align: center;">
|
| 421 |
+
<img src="http://static.photos/sport/320x240/5" alt="Swimming" class="w-full h-[150px] object-cover border-b border-[#333333]">
|
| 422 |
<div class="p-4 text-center">
|
| 423 |
+
<h3 class="text-white uppercase font-bold mb-3 text-xl" style="font-family: 'Montserrat', sans-serif;">SWIMMING</h3>
|
| 424 |
+
<a href="swimming.html" class="inline-block bg-[#5ec0cc] text-[#121212] px-4 py-2 uppercase font-bold text-sm tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 0.9rem; letter-spacing: 0.1em;">Explore Teams</a>
|
| 425 |
</div>
|
| 426 |
</div>
|
| 427 |
</div>
|
| 428 |
</section>
|
| 429 |
|
| 430 |
<!-- Next Matches & Recent Results -->
|
| 431 |
+
<section class="w-full border-t border-b border-[#333333] py-16 px-4 md:px-8">
|
| 432 |
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
|
| 433 |
<!-- Next Matches -->
|
| 434 |
+
<div class="overflow-x-auto">
|
| 435 |
+
<h3 class="text-[#5ec0cc] font-bold uppercase text-xl mb-6 tracking-wider" style="font-size: 1.8rem; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif;">NEXT MATCHES</h3>
|
| 436 |
+
<table class="brutalist-table min-w-full">
|
| 437 |
<thead>
|
| 438 |
+
<tr style="border-bottom: 2px solid #333333;">
|
| 439 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">DATE</th>
|
| 440 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">SPORT</th>
|
| 441 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">OPPONENT</th>
|
| 442 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">LOCATION</th>
|
| 443 |
</tr>
|
| 444 |
</thead>
|
| 445 |
+
<tbody class="text-white font-mono">
|
| 446 |
+
<tr style="border-bottom: 1px solid #333333;">
|
| 447 |
+
<td class="p-3 whitespace-nowrap">2025-11-15</td>
|
| 448 |
+
<td class="p-3 whitespace-nowrap">BASKETBALL</td>
|
| 449 |
+
<td class="p-3 whitespace-nowrap">ISPP</td>
|
| 450 |
+
<td class="p-3 whitespace-nowrap">HOME</td>
|
| 451 |
</tr>
|
| 452 |
+
<tr class="bg-[#1e1e1e]" style="border-bottom: 1px solid #333333;">
|
| 453 |
+
<td class="p-3 whitespace-nowrap">2025-11-18</td>
|
| 454 |
+
<td class="p-3 whitespace-nowrap">VOLLEYBALL</td>
|
| 455 |
+
<td class="p-3 whitespace-nowrap">ISPP</td>
|
| 456 |
+
<td class="p-3 whitespace-nowrap">AWAY</td>
|
| 457 |
</tr>
|
| 458 |
+
<tr style="border-bottom: 1px solid #333333;">
|
| 459 |
+
<td class="p-3 whitespace-nowrap">2025-11-22</td>
|
| 460 |
+
<td class="p-3 whitespace-nowrap">FOOTBALL</td>
|
| 461 |
+
<td class="p-3 whitespace-nowrap">CFL</td>
|
| 462 |
+
<td class="p-3 whitespace-nowrap">HOME</td>
|
| 463 |
</tr>
|
| 464 |
</tbody>
|
| 465 |
</table>
|
| 466 |
</div>
|
| 467 |
|
| 468 |
<!-- Recent Results -->
|
| 469 |
+
<div class="overflow-x-auto">
|
| 470 |
+
<h3 class="text-[#5ec0cc] font-bold uppercase text-xl mb-6 tracking-wider" style="font-size: 1.8rem; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif;">RECENT RESULTS</h3>
|
| 471 |
+
<table class="brutalist-table min-w-full">
|
| 472 |
<thead>
|
| 473 |
+
<tr style="border-bottom: 2px solid #333333;">
|
| 474 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">DATE</th>
|
| 475 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">SPORT</th>
|
| 476 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">SCORE</th>
|
| 477 |
+
<th class="text-[#5ec0cc] font-bold uppercase text-left p-3 font-mono" style="font-family: 'Montserrat', sans-serif;">OPPONENT</th>
|
| 478 |
</tr>
|
| 479 |
</thead>
|
| 480 |
+
<tbody class="font-mono">
|
| 481 |
+
<tr style="border-bottom: 1px solid #333333;">
|
| 482 |
+
<td class="p-3 text-white whitespace-nowrap">2025-11-08</td>
|
| 483 |
+
<td class="p-3 text-white whitespace-nowrap">BASKETBALL</td>
|
| 484 |
+
<td class="p-3 text-[#5ec0cc] whitespace-nowrap">68-54 (W)</td>
|
| 485 |
+
<td class="p-3 text-white whitespace-nowrap">ISPP</td>
|
| 486 |
</tr>
|
| 487 |
+
<tr class="bg-[#1e1e1e]" style="border-bottom: 1px solid #333333;">
|
| 488 |
+
<td class="p-3 text-white whitespace-nowrap">2025-11-05</td>
|
| 489 |
+
<td class="p-3 text-white whitespace-nowrap">VOLLEYBALL</td>
|
| 490 |
+
<td class="p-3 text-[#ff9900] whitespace-nowrap">2-3 (L)</td>
|
| 491 |
+
<td class="p-3 text-white whitespace-nowrap">ISPP</td>
|
| 492 |
</tr>
|
| 493 |
+
<tr style="border-bottom: 1px solid #333333;">
|
| 494 |
+
<td class="p-3 text-white whitespace-nowrap">2025-11-01</td>
|
| 495 |
+
<td class="p-3 text-white whitespace-nowrap">FOOTBALL</td>
|
| 496 |
+
<td class="p-3 text-[#5ec0cc] whitespace-nowrap">3-1 (W)</td>
|
| 497 |
+
<td class="p-3 text-white whitespace-nowrap">CFL</td>
|
| 498 |
</tr>
|
| 499 |
</tbody>
|
| 500 |
</table>
|
|
|
|
| 503 |
</section>
|
| 504 |
|
| 505 |
<!-- Athlete Spotlight -->
|
| 506 |
+
<section class="w-full border-t border-b border-[#333333] py-16 px-4 md:px-8">
|
| 507 |
+
<h3 class="text-[#5ec0cc] font-bold uppercase text-xl mb-8 tracking-wider" style="font-size: 1.8rem; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif;">ATHLETE SPOTLIGHT</h3>
|
| 508 |
+
<div id="spotlightContainer" class="border border-[#333333] p-6 flex flex-col md:flex-row gap-6 items-center md:items-start bg-[#121212]">
|
| 509 |
<!-- Content loaded by JS -->
|
| 510 |
</div>
|
| 511 |
</section>
|
| 512 |
|
| 513 |
<!-- Quick Links -->
|
| 514 |
+
<section class="w-full border-t border-b border-[#333333] py-16 px-4 md:px-8">
|
| 515 |
+
<h2 class="text-[#5ec0cc] font-bold uppercase text-center mb-12 tracking-wider" style="font-size: 1.8rem; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif;">QUICK LINKS</h2>
|
| 516 |
+
<div class="grid grid-cols-2 gap-4 max-w-4xl mx-auto">
|
| 517 |
+
<a href="teams.html" class="border border-[#333333] p-6 text-center hover-border-teal transition-colors group block bg-[#121212]">
|
| 518 |
+
<span class="text-white uppercase font-bold text-lg group-hover:text-[#5ec0cc] tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 1.1rem; letter-spacing: 0.1em;">TEAMS</span>
|
| 519 |
</a>
|
| 520 |
+
<a href="schedule.html" class="border border-[#333333] p-6 text-center hover-border-teal transition-colors group block bg-[#121212]">
|
| 521 |
+
<span class="text-white uppercase font-bold text-lg group-hover:text-[#5ec0cc] tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 1.1rem; letter-spacing: 0.1em;">SCHEDULE</span>
|
| 522 |
</a>
|
| 523 |
+
<a href="about.html" class="border border-[#333333] p-6 text-center hover-border-teal transition-colors group block bg-[#121212]">
|
| 524 |
+
<span class="text-white uppercase font-bold text-lg group-hover:text-[#5ec0cc] tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 1.1rem; letter-spacing: 0.1em;">ABOUT</span>
|
| 525 |
</a>
|
| 526 |
+
<a href="news.html" class="border border-[#333333] p-6 text-center hover-border-teal transition-colors group block bg-[#121212]">
|
| 527 |
+
<span class="text-white uppercase font-bold text-lg group-hover:text-[#5ec0cc] tracking-wider" style="font-family: 'Montserrat', sans-serif; font-size: 1.1rem; letter-spacing: 0.1em;">NEWS & MEDIA</span>
|
| 528 |
</a>
|
| 529 |
</div>
|
| 530 |
</section>
|
| 531 |
|
| 532 |
<!-- Footer -->
|
| 533 |
+
<footer class="w-full border-t border-[#333333] py-12 px-4 md:px-8 bg-[#121212]">
|
| 534 |
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-0 max-w-6xl mx-auto">
|
| 535 |
<div class="border border-[#333333] p-6 md:border-r-0">
|
| 536 |
+
<h4 class="text-[#5ec0cc] font-bold uppercase mb-4 tracking-wider" style="font-family: 'Montserrat', sans-serif;">CONTACT</h4>
|
| 537 |
+
<p class="text-white font-mono text-sm">nagas@nisc.edu.kh</p>
|
| 538 |
</div>
|
| 539 |
<div class="border border-[#333333] p-6 md:border-r-0">
|
| 540 |
+
<h4 class="text-[#5ec0cc] font-bold uppercase mb-4 tracking-wider" style="font-family: 'Montserrat', sans-serif;">QUICK LINKS</h4>
|
| 541 |
<ul class="space-y-2">
|
| 542 |
+
<li><a href="index.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">Home</a></li>
|
| 543 |
+
<li><a href="teams.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">Teams</a></li>
|
| 544 |
+
<li><a href="about.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">About</a></li>
|
| 545 |
+
<li><a href="schedule.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">Schedule</a></li>
|
| 546 |
+
<li><a href="news.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">News & Media</a></li>
|
| 547 |
+
<li><a href="council.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">Athletic Council</a></li>
|
| 548 |
+
<li><a href="involved.html" class="text-white font-mono text-sm uppercase hover:text-[#5ec0cc]">Get Involved</a></li>
|
| 549 |
</ul>
|
| 550 |
</div>
|
| 551 |
<div class="border border-[#333333] p-6">
|
| 552 |
+
<h4 class="text-[#5ec0cc] font-bold uppercase mb-4 tracking-wider" style="font-family: 'Montserrat', sans-serif;">SOCIAL</h4>
|
| 553 |
+
<p class="text-white font-mono text-sm">@NAGAS</p>
|
| 554 |
<div class="flex gap-4 mt-4">
|
| 555 |
+
<a href="#" class="text-white hover:text-[#5ec0cc] transition-colors"><i data-lucide="instagram" class="w-5 h-5"></i></a>
|
| 556 |
+
<a href="#" class="text-white hover:text-[#5ec0cc] transition-colors"><i data-lucide="facebook" class="w-5 h-5"></i></a>
|
| 557 |
+
<a href="#" class="text-white hover:text-[#5ec0cc] transition-colors"><i data-lucide="twitter" class="w-5 h-5"></i></a>
|
| 558 |
</div>
|
| 559 |
</div>
|
| 560 |
</div>
|
| 561 |
+
<div class="text-center mt-8 pt-8 border-t border-[#333333] max-w-6xl mx-auto">
|
| 562 |
+
<p class="text-[#333333] font-mono text-xs uppercase" style="color: #666666;">© 2025 NAGAS ATHLETICS. ALL RIGHTS RESERVED.</p>
|
| 563 |
</div>
|
| 564 |
</footer>
|
| 565 |
|
| 566 |
<!-- Coming Soon Modal -->
|
| 567 |
<div id="comingSoonModal" class="modal">
|
| 568 |
+
<div class="border border-[#5ec0cc] bg-[#121212] p-8 max-w-md mx-4 relative" style="min-width: 300px;">
|
| 569 |
+
<button onclick="closeModal('comingSoonModal')" class="absolute top-4 right-4 text-white hover:text-[#5ec0cc] transition-colors w-10 h-10 flex items-center justify-center">
|
| 570 |
<i data-lucide="x" class="w-6 h-6"></i>
|
| 571 |
</button>
|
| 572 |
+
<h3 class="text-[#5ec0cc] font-bold uppercase text-2xl mb-6 tracking-wider pr-8" style="font-family: 'Montserrat', sans-serif; letter-spacing: 0.1em;">COMING SOON</h3>
|
| 573 |
+
<p class="text-white font-mono text-sm leading-relaxed mb-6">
|
| 574 |
+
The 2026-27 season will be available soon. Stay tuned!
|
| 575 |
</p>
|
| 576 |
+
<button onclick="closeModal('comingSoonModal')" class="border border-[#5ec0cc] text-[#5ec0cc] px-6 py-3 font-mono uppercase text-sm hover:bg-[#5ec0cc] hover:text-[#121212] transition-colors w-full font-bold tracking-wider" style="font-family: 'Montserrat', sans-serif; letter-spacing: 0.1em;">
|
| 577 |
CLOSE
|
| 578 |
</button>
|
| 579 |
</div>
|
|
|
|
| 606 |
document.getElementById(modalId).classList.remove('active');
|
| 607 |
}
|
| 608 |
|
| 609 |
+
// Carousel Auto-rotation and Scroll Tracking
|
| 610 |
const slides = document.querySelectorAll('.carousel-slide');
|
| 611 |
let currentSlide = 1;
|
| 612 |
let carouselInterval;
|
| 613 |
+
const carousel = document.getElementById('sportsCarousel');
|
| 614 |
|
| 615 |
+
function updateCarouselActive() {
|
| 616 |
slides.forEach((slide, index) => {
|
| 617 |
slide.classList.remove('active');
|
| 618 |
if (index === currentSlide) {
|
|
|
|
| 623 |
|
| 624 |
function nextSlide() {
|
| 625 |
currentSlide = (currentSlide + 1) % slides.length;
|
| 626 |
+
// Scroll to the active slide
|
| 627 |
+
const slideWidth = slides[0].offsetWidth + 16; // width + gap
|
| 628 |
+
carousel.scrollTo({
|
| 629 |
+
left: currentSlide * slideWidth - (carousel.offsetWidth / 2) + (slideWidth / 2),
|
| 630 |
+
behavior: 'smooth'
|
| 631 |
+
});
|
| 632 |
+
updateCarouselActive();
|
| 633 |
}
|
| 634 |
|
| 635 |
+
// Initialize
|
| 636 |
+
updateCarouselActive();
|
| 637 |
+
|
| 638 |
// Auto-rotate every 5 seconds
|
| 639 |
carouselInterval = setInterval(nextSlide, 5000);
|
| 640 |
|
| 641 |
// Pause on hover
|
|
|
|
| 642 |
carousel.addEventListener('mouseenter', () => clearInterval(carouselInterval));
|
| 643 |
carousel.addEventListener('mouseleave', () => {
|
| 644 |
carouselInterval = setInterval(nextSlide, 5000);
|
|
|
|
| 650 |
|
| 651 |
carousel.addEventListener('touchstart', (e) => {
|
| 652 |
touchStartX = e.changedTouches[0].screenX;
|
| 653 |
+
}, {passive: true});
|
| 654 |
|
| 655 |
carousel.addEventListener('touchend', (e) => {
|
| 656 |
touchEndX = e.changedTouches[0].screenX;
|
| 657 |
handleSwipe();
|
| 658 |
+
}, {passive: true});
|
| 659 |
|
| 660 |
function handleSwipe() {
|
| 661 |
if (touchEndX < touchStartX - 50) {
|
| 662 |
currentSlide = Math.min(currentSlide + 1, slides.length - 1);
|
| 663 |
+
const slideWidth = slides[0].offsetWidth + 16;
|
| 664 |
+
carousel.scrollTo({
|
| 665 |
+
left: currentSlide * slideWidth - (carousel.offsetWidth / 2) + (slideWidth / 2),
|
| 666 |
+
behavior: 'smooth'
|
| 667 |
+
});
|
| 668 |
+
updateCarouselActive();
|
| 669 |
}
|
| 670 |
if (touchEndX > touchStartX + 50) {
|
| 671 |
currentSlide = Math.max(currentSlide - 1, 0);
|
| 672 |
+
const slideWidth = slides[0].offsetWidth + 16;
|
| 673 |
+
carousel.scrollTo({
|
| 674 |
+
left: currentSlide * slideWidth - (carousel.offsetWidth / 2) + (slideWidth / 2),
|
| 675 |
+
behavior: 'smooth'
|
| 676 |
+
});
|
| 677 |
+
updateCarouselActive();
|
| 678 |
}
|
| 679 |
}
|
| 680 |
|
| 681 |
+
// Update active slide based on scroll position
|
| 682 |
+
carousel.addEventListener('scroll', () => {
|
| 683 |
+
const scrollLeft = carousel.scrollLeft;
|
| 684 |
+
const slideWidth = slides[0].offsetWidth + 16;
|
| 685 |
+
const centerSlide = Math.round((scrollLeft + carousel.offsetWidth / 2 - slideWidth / 2) / slideWidth);
|
| 686 |
+
if (centerSlide >= 0 && centerSlide < slides.length && centerSlide !== currentSlide) {
|
| 687 |
+
currentSlide = centerSlide;
|
| 688 |
+
updateCarouselActive();
|
| 689 |
+
}
|
| 690 |
+
});
|
| 691 |
+
|
| 692 |
// Athlete Spotlight Rotation
|
| 693 |
const athletes = [
|
| 694 |
{
|
| 695 |
name: "SOKHA CHAN",
|
| 696 |
position: "POINT GUARD",
|
| 697 |
+
achievement: "2024 MVP AWARD - LED TEAM IN SCORING",
|
| 698 |
image: "http://static.photos/people/200x200/10"
|
| 699 |
},
|
| 700 |
{
|
| 701 |
name: "DAVID SMITH",
|
| 702 |
position: "CENTER",
|
| 703 |
+
achievement: "ALL-TOURNAMENT TEAM 2024 - DEFENSIVE PLAYER OF THE YEAR",
|
| 704 |
image: "http://static.photos/people/200x200/11"
|
| 705 |
},
|
| 706 |
{
|
| 707 |
name: "MARIA GARCIA",
|
| 708 |
position: "SWIMMER",
|
| 709 |
+
achievement: "50M FREE RECORD HOLDER - NATIONAL QUALIFIER",
|
| 710 |
image: "http://static.photos/people/200x200/12"
|
| 711 |
}
|
| 712 |
];
|
|
|
|
| 718 |
const athlete = athletes[currentAthlete];
|
| 719 |
|
| 720 |
container.innerHTML = `
|
| 721 |
+
<img src="${athlete.image}" alt="${athlete.name}" class="w-[200px] h-[200px] object-cover border border-[#333333] spotlight-fade flex-shrink-0">
|
| 722 |
+
<div class="flex-1 text-center md:text-left spotlight-fade">
|
| 723 |
+
<h4 class="text-[#5ec0cc] font-bold uppercase text-2xl mb-3 tracking-wider" style="font-family: 'Montserrat', sans-serif; letter-spacing: 0.1em; font-size: 1.5rem;">${athlete.name}</h4>
|
| 724 |
+
<p class="text-white font-mono uppercase text-lg mb-3" style="font-size: 1.1rem; letter-spacing: 0.05em;">${athlete.position}</p>
|
| 725 |
+
<p class="text-[#CCCCCC] font-mono text-sm leading-relaxed">${athlete.achievement}</p>
|
| 726 |
</div>
|
| 727 |
`;
|
| 728 |
}
|