/* ============================================================
   BCAL Premium — cinematic dark hero + light body motion
   Loaded AFTER light-theme.css / bacl-animations.css.
   Pairs with bacl-premium.js (+ GSAP / ScrollTrigger).
   Nothing here pre-hides content, so the page is fully usable
   even if the GSAP CDN fails to load.
   ============================================================ */

:root {
  --bacl-red: #e41b23;
  --bacl-red-glow: rgba(228, 27, 35, .55);
  --bacl-ink: #0a0b0f;
}

/* ---------------- Page-transition curtain ---------------- */
.bacl-curtain {
  position: fixed; inset: 0; z-index: 99998;
  background: radial-gradient(circle at 50% 38%, #15171d 0%, #0a0b0f 72%);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: opacity .5s ease, visibility .5s ease;
}
.bacl-curtain.is-active { opacity: 1; visibility: visible; }
.bacl-curtain-mark {
  display: flex; align-items: center; gap: 14px;
  font-size: 28px; font-weight: 800; letter-spacing: 6px; color: #fff;
  text-shadow: 0 0 24px var(--bacl-red-glow);
}
.bacl-curtain-mark i { color: var(--bacl-red); animation: baclSpin 1.1s linear infinite; }

/* ---------------- Cinematic hero ---------------- */
.bacl-hero { position: relative; overflow: hidden; }
.bacl-hero .container,
.bacl-hero .banner-content,
.bacl-hero .pagination-area { position: relative; z-index: 4; }

/* dark cinematic veil over the hero photo */
.bacl-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(8,9,13,.55) 0%, rgba(8,9,13,.20) 42%, rgba(8,9,13,.88) 100%);
}

/* fx layer (particle canvas + streaks + spotlight) injected by JS */
.bacl-hero-fx { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
.bacl-hero-fx canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* moving light streaks (stadium light sweep) */
.bacl-streaks { position: absolute; inset: -20%; }
.bacl-streaks span {
  position: absolute; top: 0; width: 2px; height: 140%;
  background: linear-gradient(180deg, transparent, var(--bacl-red-glow), transparent);
  filter: blur(1px); opacity: 0;
  animation: baclStreak 6.5s linear infinite;
}
.bacl-streaks span:nth-child(1) { left: 16%; animation-delay: 0s;   }
.bacl-streaks span:nth-child(2) { left: 40%; animation-delay: 1.8s; height: 120%; }
.bacl-streaks span:nth-child(3) { left: 66%; animation-delay: 3.3s; }
.bacl-streaks span:nth-child(4) { left: 84%; animation-delay: 4.6s; height: 130%; }
@keyframes baclStreak {
  0%   { transform: translateY(-30%) skewX(-12deg); opacity: 0; }
  15%  { opacity: .55; }
  85%  { opacity: .55; }
  100% { transform: translateY(22%) skewX(-12deg); opacity: 0; }
}

/* mouse spotlight inside hero */
.bacl-spotlight {
  position: absolute; inset: 0;
  background: radial-gradient(560px circle at var(--mx, 50%) var(--my, 30%), rgba(228,27,35,.16), transparent 60%);
}

/* neon glow on hero headline */
.bacl-hero .banner-heading { text-shadow: 0 0 28px rgba(228,27,35,.28); }
.bacl-hero .pretitle { text-shadow: 0 0 18px rgba(228,27,35,.35); }

/* ---------------- Premium navbar on scroll ---------------- */
.navbar-sticky.sticky-menu {
  -webkit-backdrop-filter: saturate(140%) blur(10px);
          backdrop-filter: saturate(140%) blur(10px);
  box-shadow: 0 6px 26px rgba(10,11,15,.12);
  border-bottom: 1px solid rgba(228,27,35,.22);
}

/* ---------------- Glass + neon hover on cards ---------------- */
.bacl-pool-card,
.kpl-tournament-card,
.sport-card-select,
.award-box,
.stat-card,
.bacl-prize-card {
  transition: transform .35s cubic-bezier(.16,.84,.44,1),
              box-shadow .35s ease, border-color .35s ease;
  will-change: transform;
}
.bacl-pool-card:hover,
.kpl-tournament-card:hover,
.award-box:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 60px rgba(228,27,35,.18);
  border-color: rgba(228,27,35,.5);
}

/* glassmorphism utility (used where a glass panel fits) */
.bacl-glass {
  background: rgba(255,255,255,.55) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%);
          backdrop-filter: blur(12px) saturate(140%);
  border: 1px solid rgba(255,255,255,.6) !important;
}

/* ---------------- Premium button glow ---------------- */
.team-btn, .banner-btn, .bacl-submit-btn, .get-ticket-btn,
.login-btn, .dl-btn, .bacl-pool-cta a, .sign-up-btn {
  transition: transform .25s ease, box-shadow .3s ease, background .25s ease;
}
.team-btn:hover, .banner-btn:hover, .bacl-submit-btn:hover,
.bacl-pool-cta a:hover, .get-ticket-btn:hover {
  box-shadow: 0 10px 30px var(--bacl-red-glow);
  transform: translateY(-2px);
}

/* ---------------- Counter glow ---------------- */
.rts-counter-up-section .counter { text-shadow: 0 0 18px rgba(228,27,35,.18); }

/* ---------------- Reduced motion ---------------- */
@media (prefers-reduced-motion: reduce) {
  .bacl-streaks span,
  .bacl-curtain-mark i { animation: none !important; }
  .bacl-spotlight { display: none; }
}
