/* Hero & page ambient effects — electric cyan / purple palette */

.lead-decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

/* Aurora bands */
.lead-decor--glow {
  z-index: 1;
  opacity: 0.5;
  background:
    radial-gradient(ellipse 80% 50% at 20% 40%, rgba(0, 212, 255, 0.14), transparent 55%),
    radial-gradient(ellipse 60% 40% at 80% 20%, rgba(99, 102, 241, 0.12), transparent 50%),
    radial-gradient(ellipse 50% 35% at 60% 85%, rgba(0, 245, 255, 0.08), transparent 45%);
  animation: aurora-shift 18s ease-in-out infinite alternate;
}

@keyframes aurora-shift {
  0% { transform: translate(0, 0) scale(1); filter: hue-rotate(0deg); }
  50% { transform: translate(-2%, 1%) scale(1.03); filter: hue-rotate(12deg); }
  100% { transform: translate(2%, -1%) scale(1.02); filter: hue-rotate(-8deg); }
}

/* Sweeping light lines */
.lead-decor--scan {
  z-index: 2;
}

.lead-decor--scan span {
  position: absolute;
  height: 1px;
  width: 130%;
  left: -15%;
  background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.1), rgba(0, 245, 255, 0.18), transparent);
  animation: hero-line-sweep 9s linear infinite;
}

.lead-decor--scan span:nth-child(1) { top: 18%; animation-delay: 0s; }
.lead-decor--scan span:nth-child(2) { top: 42%; animation-delay: 3s; opacity: 0.7; }
.lead-decor--scan span:nth-child(3) { top: 68%; animation-delay: 6s; }
.lead-decor--scan span:nth-child(4) { top: 88%; animation-delay: 1.5s; opacity: 0.5; }

@keyframes hero-line-sweep {
  0% { transform: translateX(-35%) skewX(-8deg); opacity: 0; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { transform: translateX(35%) skewX(-8deg); opacity: 0; }
}

/* Film grain */
.lead-decor--grain {
  z-index: 4;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  animation: noise-flicker 0.5s steps(2) infinite;
}

@keyframes noise-flicker {
  0% { transform: translate(0, 0); }
  50% { transform: translate(-2%, 1%); }
  100% { transform: translate(1%, -1%); }
}

/* Edge vignette */
.lead-decor--shade {
  z-index: 5;
  background: radial-gradient(ellipse 70% 65% at 50% 45%, transparent 40%, rgba(10, 10, 10, 0.75) 100%);
}

/* Mouse spotlight */
.lead-decor--spot {
  z-index: 3;
  opacity: 0;
  transition: opacity 0.4s ease;
  background: radial-gradient(
    600px circle at var(--spot-x, 50%) var(--spot-y, 50%),
    rgba(0, 212, 255, 0.07),
    rgba(99, 102, 241, 0.03) 40%,
    transparent 60%
  );
}

.tt-hero.is-spotlight-active .lead-decor--spot {
  opacity: 1;
}

/* Shooting stars */
.lead-decor--stars span {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #00f5ff;
  box-shadow: 0 0 8px rgba(0, 245, 255, 0.9);
  opacity: 0;
}

.lead-decor--stars span.is-shooting {
  width: 80px;
  height: 1px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(0, 245, 255, 0.9), transparent);
  box-shadow: 0 0 14px rgba(0, 212, 255, 0.6);
  animation: shooting-star 1.2s ease-in forwards;
}

@keyframes shooting-star {
  0% { opacity: 0; transform: translate(0, 0) rotate(-35deg) scaleX(0.3); }
  10% { opacity: 1; }
  100% { opacity: 0; transform: translate(-180px, 120px) rotate(-35deg) scaleX(1); }
}

/* Headline shimmer */
.tt-hero__title .tt-accent {
  background-size: 200% auto;
  animation: gradient-shimmer 6s ease-in-out infinite;
}

@keyframes gradient-shimmer {
  0%, 100% { background-position: 0% center; }
  50% { background-position: 100% center; }
}

/* Showcase tilt — disabled (image-only hero) */

@keyframes border-glow {
  0% { opacity: 0.45; }
  100% { opacity: 1; }
}

/* Stat count-up glow */
.tt-stat.is-counted .tt-stat__val {
  text-shadow: 0 0 32px rgba(0, 212, 255, 0.4);
}

/* Section ambient glows */
.tt-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}

.tt-glow--a {
  width: 400px;
  height: 400px;
  background: rgba(0, 212, 255, 0.07);
}

.tt-glow--b {
  width: 320px;
  height: 320px;
  background: rgba(99, 102, 241, 0.06);
}

/* Glass card hover shine */
.tt-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    105deg,
    transparent 40%,
    rgba(255, 255, 255, 0.03) 45%,
    rgba(0, 245, 255, 0.06) 50%,
    rgba(255, 255, 255, 0.03) 55%,
    transparent 60%
  );
  transform: translateX(-120%);
  transition: transform 0.6s ease;
  pointer-events: none;
}

.tt-card:hover::after {
  transform: translateX(120%);
}

/* CTA pulse ring */
.tt-cta-block {
  animation: cta-pulse 4s ease-in-out infinite;
}

@keyframes cta-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 212, 255, 0); }
  50% { box-shadow: 0 0 56px rgba(0, 212, 255, 0.12); }
}

@media (prefers-reduced-motion: reduce) {
  .lead-decor--glow,
  .lead-decor--scan span,
  .lead-decor--grain,
  .tt-hero__title .tt-accent,
  .tt-cta-block {
    animation: none !important;
  }

  .lead-decor--spot,
  .lead-decor--stars {
    display: none;
  }

  .tt-card::after {
    display: none;
  }
}
