/* Text Stroke Effects */
.text-stroke-title {
  -webkit-text-stroke: 3px #060b19;
  text-shadow: 0 6px 0 #000, 0 12px 25px rgba(0,0,0,0.8);
}
.text-stroke-sub {
  -webkit-text-stroke: 1.5px #060b19;
  text-shadow: 0 4px 0 #000;
}
.text-stroke-card {
  -webkit-text-stroke: 1px #050914;
}

/* Puffy Arcade Pill Buttons */
.btn-puffy-arcade {
  transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.btn-puffy-arcade:hover {
  transform: translateY(-4px) scale(1.02);
}
.btn-puffy-arcade:active {
  transform: translateY(4px) scale(0.98);
  box-shadow: 0 2px 0 rgba(0,0,0,0.5) !important;
}

/* Stadium Ambient Lights & Shimmer */
.spotlight-radial-top {
  background: radial-gradient(circle at 50% 15%, rgba(255,223,0,0.18) 0%, rgba(14,165,233,0.15) 35%, transparent 75%);
}
.shimmer-badge {
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);
  background-size: 200% 100%;
  animation: shimmerMove 3.5s infinite;
}
@keyframes shimmerMove {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Floating Ball & Pulse Keyframes */
@keyframes floatHeroBall {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-14px) rotate(180deg) scale(1.05); }
}
.animate-float-ball {
  animation: floatHeroBall 4s ease-in-out infinite;
}

@keyframes pulseAura {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.95; transform: scale(1.04); }
}
.animate-aura {
  animation: pulseAura 3s ease-in-out infinite;
}

/* Card Glow Hover */
.tactical-card {
  transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.25s ease, border-color 0.25s ease;
}
.tactical-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 0 rgba(0,0,0,0.7), 0 25px 40px rgba(255, 223, 0, 0.25);
  border-color: #FFDF00;
}

/* Download buttons not yet available */
.btn-download[aria-disabled="true"] {
  filter: grayscale(0.85);
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}
