/* ============================================
   WHITE NOISE - CONSOLIDATED STYLES
   All inline styles extracted to single file
   ============================================ */

/* ============================================
   GLOBAL THEME OVERRIDES
   ============================================ */
:root {
  --bg: #000;
  --text: #fff;
  --accent: #bb33ff;
  --title-font: "Jersey 10", sans-serif;
  --body-font: "Montserrat", sans-serif;
}

/* Global dark theme */
html,
body {
  background: var(--bg) !important;
  color: var(--text) !important;
}

body,
p,
a,
span,
li,
div {
  font-family: var(--body-font) !important;
  color: var(--text) !important;
}

a {
  color: var(--text) !important;
  text-decoration: none;
}

a:hover {
  color: var(--accent) !important;
}

section,
.section {
  background: transparent !important;
}

/* Global dark dropdowns */
.dropdown-menu {
  background-color: #000 !important;
  border: none !important;
}

.dropdown-menu .dropdown-item {
  color: #000 !important;
}

.dropdown-menu .dropdown-item:hover {
  background-color: #111 !important;
  color: var(--accent) !important;
}

/* ============================================
   (If you ever use OFFCANVAS)
   ============================================ */

/* Whole offcanvas menu */
.offcanvas,
.offcanvas-start,
.offcanvas.show,
.offcanvas-backdrop,
.offcanvas-backdrop.show {
  background-color: #000 !important;
  border: none !important;
}

/* Offcanvas inner content */
.offcanvas .offcanvas-header,
.offcanvas .offcanvas-body {
  background-color: #000 !important;
  color: #fff !important;
}

.offcanvas .bg-white,
.offcanvas .card,
.offcanvas .card-body {
  background-color: #000 !important;
}

/* Offcanvas nav area */
.navbar-nav,
.navbar-nav * {
  background-color: #000 !important;
  color: #fff !important;
}

/* Offcanvas menu links */
.offcanvas .nav-link,
.offcanvas .dropdown-item {
  color: #fff !important;
}

.offcanvas .nav-link:hover,
.offcanvas .dropdown-item:hover {
  color: var(--accent) !important;
  background-color: #000 !important;
}

/* Offcanvas active state */
.offcanvas .nav-link:active,
.offcanvas .dropdown-item:active {
  background-color: #000 !important;
  color: #fff !important;
}

/* Offcanvas cleanup */
.offcanvas,
.offcanvas * {
  box-shadow: none !important;
  border-color: #000 !important;
}

/* ============================================
   NAVBAR & FOOTER
   ============================================ */

.navbar,
footer.footer {
  background-color: #000 !important;
  color: #fff !important;
}

/* Brand + links */
.navbar .nav-link,
.navbar .navbar-brand {
  color: #fff !important;
}

/* Hover accent */
.navbar .nav-link:hover {
  color: var(--accent) !important;
}

/* ===================================================================
   KILL MATERIAL KIT RIPPLE / BUTTON MODE FOR NAVBAR LINKS
   =================================================================== */

/* Prevent MK from turning nav links into "buttons" */
.navbar .nav-link,
.navbar .dropdown-item {
    background: none !important;
    color: #fff !important;
    box-shadow: none !important;
    border: none !important;
}

/* Disable MK button conversion */
.navbar .nav-link.btn,
.navbar .dropdown-item.btn {
    background: none !important;
    color: #fff !important;
    border: none !important;
}

/* Kill ripple container wrapper */
.navbar .nav-link .ripple-container,
.navbar .dropdown-item .ripple-container {
    display: none !important;
    background: none !important;
}

/* Kill MK "active button" purple/black style */
.navbar .nav-link.active,
.navbar .dropdown-item.active,
.navbar .nav-item.active > .nav-link {
    background: none !important;
    color: #fff !important;
}

/* Your desired pressed state = purple background */
.navbar .nav-link:active,
.navbar .dropdown-item:active {
    background-color: var(--accent) !important;
    color: #fff !important;
}

/* Reduce navbar container padding to bring logo closer to edges */
.navbar .container {
  padding-left: 5px;
  padding-right: 5px;
}

@media (min-width: 768px) {
  .navbar .container {
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* ============================================
   TITLES
   ============================================ */
#whyJoin h1,
#mission h1,
#MilestonesandAwards .awards-text h2,
#Projects .projects-text h2,
#sponsors h1,
#Contact h2.title,
h1.title,
h2.title {
  font-family: var(--title-font) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-size: 10vw !important;
  line-height: 1 !important;
  margin: 0 0 1rem 0 !important;
  letter-spacing: 0.5px;
  color: var(--text) !important;
}

@media (max-width: 768px) {
  #whyJoin h1,
  #mission h1,
  #MilestonesandAwards .awards-text h2,
  #Projects .projects-text h2,
  #Contact h2.title,
  h1.title,
  h2.title {
    font-size: 4rem !important;
  }
}

/* Accent utilities */
.purple-text {
  color: purple !important;
  font-family: "Jersey 10", sans-serif !important;
}

.purplejoin-text,
.purplemission-text {
  color: purple !important;
  font-family: "Orbitron", sans-serif !important;
}

/* ============================================
   TYPOGRAPHY BASE
   ============================================ */
.hero-text h1,
.hero-text h2,
.mission-text h1,
.awards-text h2,
.jersey-10-regular {
  font-family: "Jersey 10", sans-serif !important;
  font-weight: 400;
  font-style: normal;
}

.mission-text h2,
.navbar-brand {
  font-family: "Orbitron", sans-serif;
}

/* ============================================
   PRELOADER
   ============================================ */
html.preload-lock,
body.preload-lock {
  overflow: hidden;
}

#preloader {
  position: fixed;
  inset: 0;
  background: #000;
  display: grid;
  place-items: center;
  z-index: 9999;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

#preloader.hide {
  opacity: 0;
  visibility: hidden;
}

.preloader-inner {
  text-align: center;
  width: min(90vw, 520px);
}

.preloader-logo {
  width: 96px;
  height: auto;
  display: block;
  margin: 0 auto 1rem;
  filter: drop-shadow(0 6px 16px rgba(187, 51, 255, 0.35));
  animation: float 2.4s ease-in-out infinite;
}

.preloader-title {
  margin: 0.2rem 0 0.5rem;
  font-family: "Jersey 10", system-ui, sans-serif;
  font-weight: 400;
  letter-spacing: 0.5px;
  font-size: clamp(2.2rem, 7vw, 4rem);
  color: #fff;
}

.preloader-sub {
  margin: 0 0 1.25rem;
  color: #bbb;
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size: clamp(1rem, 2.6vw, 1.15rem);
}

.preloader-sub span {
  color: #bb33ff;
  font-family: "Orbitron", sans-serif;
}

.preloader-bar {
  height: 6px;
  border-radius: 999px;
  overflow: hidden;
  background: #1a1a1a;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

.preloader-bar-fill {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #7a1cff, #bb33ff);
  filter: drop-shadow(0 0 12px rgba(187, 51, 255, 0.55));
  animation: loadPulse 1.6s ease-in-out infinite;
}

@keyframes float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

@keyframes loadPulse {
  0% {
    width: 0%;
  }
  60% {
    width: 78%;
  }
  100% {
    width: 82%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .preloader-logo {
    animation: none;
  }
  .preloader-bar-fill {
    animation: none;
    width: 60%;
  }
}

/* ============================================
   HERO SECTION
   ============================================ */
#hero {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

#heroVideo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.hero-text {
  position: absolute;
  top: 20%;
  left: 5%;
  max-width: 90vw;
  text-align: left;
  color: white;
  z-index: 1;
}

.hero-text h1 {
  font-size: 10vw;
  margin: 0;
  line-height: 1;
}

.hero-text h2 {
  font-size: 5vw;
  margin: 0;
  font-weight: 400;
}

@media (max-width: 768px) {
  .hero-text h1 {
    font-size: 4rem;
  }
  .hero-text h2 {
    font-size: 2.5rem;
  }
  .hero-text {
    top: 20%;
    left: 5%;
  }
}

/* ============================================
   WHY JOIN SECTION
   ============================================ */
#whyJoin {
  padding: 10vh 5vw;
}

.why-join-container {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-start;
}

.why-join-text {
  flex: 1 1 60%;
}

.why-join-text h2 {
  font-family: "Orbitron", sans-serif !important;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.purplejoin-text {
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.benefits-list {
  list-style-type: none;
  padding: 0;
  margin-bottom: 2rem;
}

.benefits-list li {
  margin-bottom: 1rem;
  font-size: 1.1rem;
  line-height: 1.5;
}

.benefits-list strong {
  color: var(--accent);
}

.join-btn {
  background-color: purple;
  color: white;
  padding: 12px 24px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: bold;
  transition: background 0.3s ease;
}

.join-btn:hover {
  background-color: var(--accent);
}

.why-join-media {
  flex: 1 1 35%;
  text-align: center;
}

.why-join-media img {
  width: 100%;
  max-width: 400px;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(128, 0, 128, 0.3);
  margin-top: 2rem;
}

@media (max-width: 768px) {
  .why-join-container {
    flex-direction: column;
  }
  .why-join-text h2 {
    font-size: 1rem;
  }
  .purplejoin-text {
    font-size: 1rem;
  }
  .benefits-list li {
    font-size: 1rem;
  }
  .why-join-media img {
    max-width: 300px;
  }
}

/* ============================================
   MISSION SECTION
   ============================================ */
#mission {
  padding: 10vh 5vw;
}

.mission-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 2rem;
}

.mission-text {
  flex: 1 1 60%;
  text-align: left;
}

.mission-text h2 {
  font-family: "Orbitron", sans-serif !important;
  font-size: 1.5rem;
  margin-top: 1rem;
}

.mission-image {
  flex: 0 0 30%;
  text-align: right;
}

.mission-image img {
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

@media (max-width: 768px) {
  .mission-container {
    flex-direction: column;
    text-align: left;
  }
  .mission-text h2 {
    font-size: 1rem;
  }
  .mission-image {
    flex: none;
    width: 100%;
    text-align: left;
    margin-top: 2rem;
  }
  .mission-image img {
    max-width: 200px;
    width: auto;
  }
}

/* ============================================
   MILESTONES & AWARDS SECTION
   ============================================ */
#MilestonesandAwards {
  text-align: left;
  padding: 5vh 5vw 5vh 2vw;
  max-width: 100%;
  box-sizing: border-box;
}

.awards-text h2 {
  margin: 0 0 1rem 0;
  text-align: left;
}

.timeliner {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: nowrap;
  margin-top: 2rem;
}

.timeline {
  flex: 1 1 50%;
  border-left: 3px solid purple;
  padding-left: 0.4rem;
  box-sizing: border-box;
}

.timeline-item {
  position: relative;
  margin-bottom: 2rem;
  padding-left: 1rem;
  box-sizing: border-box;
}

.timeline-item::before {
  content: "";
  position: absolute;
  left: -9px;
  top: 8px;
  width: 18px;
  height: 18px;
  background-color: purple;
  border: 2px solid white;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(128, 0, 128, 0.2);
  z-index: 1;
}

.timeline-year {
  font-weight: bold;
  font-size: 1.1em;
  color: purple;
  margin-bottom: 6px;
  text-align: left;
}

.timeline-content {
  background: #1a1a1a;
  color: #eee;
  padding: 10px 15px;
  border-radius: 8px;
  transition: transform 0.2s ease-in-out;
  text-align: left;
}

.timeline-content:hover {
  transform: translateY(-4px);
  background: #333;
}

.timeline-content a {
  color: purple;
  text-decoration: underline;
}

.timeline-content a:hover {
  color: #dda0dd;
}

.carousel-container {
  flex: 1 1 50%;
  max-width: 600px;
  box-sizing: border-box;
}

.carousel-inner img {
  width: 100%;
  border-radius: 8px;
}

@media (max-width: 900px) {
  .timeliner {
    flex-direction: column;
  }
  .timeline,
  .carousel-container {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

/* ============================================
   PROJECTS SECTION
   ============================================ */
#Projects {
  text-align: left;
  padding: 5vh 5vw 5vh 5vw;
}

.projects-text h2 {
  margin: 0 0 1.5rem 0;
  text-align: left;
}

.project-frame {
  position: relative;
  width: 250px;
  height: 250px;
  margin: 15px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.project-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease;
}

.project-description {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  padding: 10px;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity 0.3s ease, transform 0.3s ease;
  text-align: center;
}

.project-frame:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

.project-frame:hover img {
  opacity: 0.7;
}

.project-frame:hover .project-description {
  opacity: 1;
  transform: translateY(0);
}

.row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================
   SPONSORS SECTION
   ============================================ */
#sponsors {
  padding: 10vh 5vw;
  background: transparent;
  text-align: left;
}

.sponsors-logos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 2.5rem;
  align-items: center;
  justify-items: center;
}

@media (max-width: 900px) {
  .sponsors-logos {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}

@media (max-width: 560px) {
  .sponsors-logos {
    grid-template-columns: 1fr;
  }
}

.logo-slot {
  width: clamp(220px, 28vw, 340px);
  height: clamp(100px, 16vw, 160px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(12px, 3vw, 20px);
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28), 0 0 28px rgba(187, 51, 255, 0.65);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.logo-slot:hover {
  transform: translateY(-4px) scale(1.03);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35), 0 0 42px rgba(187, 51, 255, 0.9);
}

.logo-slot img {
  max-width: 95%;
  max-height: 95%;
  object-fit: contain;
  display: block;
  filter: none !important;
  mix-blend-mode: normal !important;
  opacity: 1 !important;
}

/* ============================================
   CONTACT SECTION
   ============================================ */
#Contact {
  padding: 5vh 0;
}

#Contact p,
#Contact .contact-info,
#Contact a {
  font-size: 1.1rem;
}

#Contact a:hover {
  color: var(--accent) !important;
}

/* ============================================
   FOOTER
   ============================================ */
.footer nav > ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer nav > ul > li.group {
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer nav ul ul.names {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: flex;
  gap: 15px;
}

footer.footer {
  background-color: #000 !important;
  color: #fff !important;
  padding: 2rem 0;
}

footer.footer a {
  color: #bbb !important;
  text-decoration: none;
  transition: color 0.2s ease;
}

footer.footer a:hover {
  color: var(--accent) !important;
  text-decoration: underline;
}

footer.footer strong {
  color: #fff !important;
}

footer .copyright {
  color: #aaa !important;
  font-size: 0.9rem;
}

/* ===========================================================
   FINAL NAVBAR COLLAPSE / GHOST FIX (MOBILE)
   =========================================================== */

/* Make mobile navbar collapse fully black */
.navbar .navbar-collapse,
.navbar .navbar-collapse.collapsing,
.navbar .navbar-collapse.show {
  background-color: #000 !important;
  color: #fff !important;
}

/* Inner nav list inside collapse */
.navbar .navbar-nav {
  background-color: #000 !important;
}

/* Links inside navbar (reassert) */
.navbar .nav-link {
  color: #fff !important;
}

.navbar .nav-link:hover {
  color: var(--accent) !important;
}

/* Dropdown inside navbar collapse */
.navbar .dropdown-menu {
  background: #000 !important;
  border: none !important;
}

.navbar .dropdown-item {
  color: #fff !important;
}

.navbar .dropdown-item:hover {
  background: #111 !important;
  color: var(--accent) !important;
}

/* Prevent white flash when tapping */
.navbar .nav-link:active,
.navbar .dropdown-item:active {
  background: #000 !important;
  color: #fff !important;
}

/* Kill the ghost white panel Material Kit creates */
.navbar.navbar-transparent .navbar-collapse,
.navbar .navbar-collapse,
.navbar .navbar-collapse::before,
.navbar .navbar-collapse::after {
  background-color: #000 !important;
  box-shadow: none !important;
}
