.banner {
    position: relative;
    width: 100%;
    /* Use svh/dvh as fallbacks if mobile address bars cause content jumping */
    height: 100vh; 
    height: 100dvh; 
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.banner video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Forces video tracking frames to crop and fill container like a background-size: cover */
    object-fit: cover; 
    z-index: 1;
}

.banner .banner-content {
  width: 90%;
  position: absolute;
  z-index: 9;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;

}

.banner-title {
  color: white;
  font-size: 64px;
  width: max-content;
  font-weight: 400;
  letter-spacing: 10%;
  padding: 10px 40px;
}

.banner-text {
  width: inherit;
  text-align: center;
  color: white;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 10%;
  line-height: 20px;
}

/* Center logo - depth movement */
.logo {
  position: absolute;
  top: 45%;
  left: 50%;
  width: min(80vw, 500px);
  height: auto;
  transform: translate(-50%, -50%);
  z-index: 2;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.7));
  transition: all 0.12s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Crowd - fixed at bottom with depth movement */
.logo1 {
  position: absolute;
  bottom: -80px;
  left: 50%;
  width: 100%;
  height: auto;
  transform: translateX(-50%);
  z-index: 3;
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.5));
  transition: all 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Responsive */
@media (max-width: 768px) {
  .logo {
    width: min(40vw, 140px);
  }

  .logo1 {
    width: min(95vw, 400px);
  }
}

/* Update the existing Banner Text and Title for base Desktop */
.banner-title {
  color: white;
  font-size: 64px;
  /* Desktop default */
  width: 100%;
  margin: 0 auto;
  font-weight: 400;
  letter-spacing: 2px;
  padding: 10px 20px;
}

.banner-text {
  width: 100%;
  margin: 0 auto;
  text-align: center;
  color: white;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
  padding: 0 20px;
}

.banner-btn {
  display: none;
}

/* --- RESPONSIVE OVERRIDES --- */

/* TABLET (iPad/Large Mobile) */
@media (max-width: 992px) {
  .banner-title {
    font-size: 40px;
    /* As requested */
  }

  .logo {
    width: 300px;
    /* Slightly smaller for tablet */
  }

  .logo1 {
    width: 120%;
    /* Keep crowd wide to cover edges */
    bottom: -40px;
  }

  .banner-btn {
    display: block;
    margin-top: 30px;
  padding: 15px 30px;
  background: #EE2E3C;
  color: white;
  text-decoration: none;
  width: max-content;
  font-weight: 500;
  text-transform: uppercase;
  text-shadow: 0 0 10px #fff, 0 0 30px #fff;
  transition: 0.3s ease-in-out;
  margin: 30px auto 0 auto;
  }
}

/* MOBILE (Phones) */
@media (max-width: 576px) {
  .banner-title {
    font-size: 32px;
    /* Even smaller for narrow screens */
    letter-spacing: 1px;
    padding: 10px;
  }

  .banner-text {
    font-size: 14px;
    line-height: 1.2;
  }

  .banner .banner-content {
    bottom: 10px;
    /* Move text up slightly on small screens */
    width: 100%;
  }

  .logo {
    width: 220px;
    /* Focus the logo more on mobile */
    top: 40%;
    /* Lift logo higher to stay away from the text */
  }

  .logo1 {
    width: 180%;
    /* Zoom into the crowd to maintain the 'blur' effect */
    bottom: -20px;
    opacity: 0.8;
    /* Slight fade so text is easier to read */
  }
}

/* MOBILE & TABLET (992px and below) */
@media (max-width: 992px) {
  .banner {
    /* Create a black background for the text area */
    background-color: black;
  }

  /* Position the crowd in the middle */
  .logo1 {
    top: 55%;
    /* Adjusted to sit just below the main logo */
    bottom: auto;
    width: 180%;
    /* Zoomed for the vibe */
    transform: translate(-50%, -50%);
    z-index: 3;
  }

  /* Fade out the bottom of the crowd so it blends into the black background */
  .banner::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60%;
    /* Covers the bottom half of the screen */
    /* background: linear-gradient(to top,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 1) 40%,
        transparent 100%); */
    z-index: 4;
    /* Above crowd, below text */
    pointer-events: none;
  }

  .banner .banner-content {
    bottom: 40px;
    /* Anchored in the black "safe zone" */
    z-index: 10;
  }

  .banner-title {
    font-size: 36px;
  }
}

/* Specific Tweak for small phones */
@media (max-width: 576px) {
  .logo {
    top: 35%;
    /* Move main logo up to make room for crowd */
  }

  .logo1 {
    top: 50%;
    width: 800px;
  }
  .banner-title {
    font-size: 30px;
    /* Final size for small phones */
    letter-spacing: 1px;
    padding: 10px;
  }
}

