/* VU-QC Blueprint Animated Grid Hero Patch
   Apply to the existing homepage hero section.
   Designed for the current .hero-section layout and VU-QC brand palette.
*/

.hero-section.hero-blueprint-animated {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 82% 14%, rgba(109, 93, 252, 0.18), transparent 24%),
    radial-gradient(circle at 16% 78%, rgba(37, 99, 235, 0.12), transparent 22%),
    linear-gradient(135deg, #081121 0%, #0f172a 48%, #1a2440 100%);
}

.hero-section.hero-blueprint-animated::before,
.hero-section.hero-blueprint-animated::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* Primary blueprint grid layer */
.hero-section.hero-blueprint-animated::before {
  z-index: 0;
  opacity: 0.92;
  background:
    linear-gradient(rgba(255,255,255,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.07) 1px, transparent 1px),
    linear-gradient(rgba(37,99,235,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,99,235,0.08) 1px, transparent 1px);
  background-size: 26px 26px, 26px 26px, 130px 130px, 130px 130px;
  background-position: 0 0, 0 0, 0 0, 0 0;
  animation: vuqcGridDrift 24s linear infinite;
}

/* Ambient scan/glow layer */
.hero-section.hero-blueprint-animated::after {
  z-index: 0;
  opacity: 0.8;
  background:
    radial-gradient(circle at 76% 34%, rgba(255,255,255,0.06) 0 2px, transparent 3px),
    radial-gradient(circle at 67% 58%, rgba(255,255,255,0.06) 0 2px, transparent 3px),
    radial-gradient(circle at 21% 42%, rgba(37,99,235,0.18) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 72%, rgba(109,93,252,0.16) 0 3px, transparent 4px),
    linear-gradient(115deg, transparent 0%, transparent 44%, rgba(255,255,255,0.035) 50%, transparent 56%, transparent 100%),
    linear-gradient(90deg, transparent 0%, rgba(37,99,235,0.08) 49.5%, rgba(255,255,255,0.12) 50%, rgba(37,99,235,0.08) 50.5%, transparent 52%);
  background-repeat: no-repeat;
  background-size:
    8px 8px,
    8px 8px,
    10px 10px,
    10px 10px,
    220% 220%,
    200% 100%;
  background-position:
    76% 34%,
    67% 58%,
    21% 42%,
    31% 72%,
    120% 0%,
    -120% 0%;
  animation: vuqcScanSweep 11s ease-in-out infinite, vuqcNodePulse 6s ease-in-out infinite;
}

.hero-section.hero-blueprint-animated .container,
.hero-section.hero-blueprint-animated .hero-grid,
.hero-section.hero-blueprint-animated .hero-copy,
.hero-section.hero-blueprint-animated .hero-visual {
  position: relative;
  z-index: 1;
}

.hero-section.hero-blueprint-animated .hero-copy {
  max-width: 620px;
}

.hero-section.hero-blueprint-animated .eyebrow {
  color: #bfdbfe;
  text-shadow: 0 0 18px rgba(37,99,235,0.18);
}

.hero-section.hero-blueprint-animated .hero-copy h1 {
  text-shadow: 0 10px 36px rgba(2, 6, 23, 0.48);
}

.hero-section.hero-blueprint-animated .lead {
  color: rgba(226,232,240,0.86);
}

.hero-section.hero-blueprint-animated .badge,
.hero-section.hero-blueprint-animated .chip {
  background: rgba(255,255,255,0.055);
  border-color: rgba(255,255,255,0.09);
  backdrop-filter: blur(8px);
}

.hero-section.hero-blueprint-animated .btn.primary {
  box-shadow: 0 18px 40px rgba(37,99,235,0.26);
}

.hero-section.hero-blueprint-animated .btn.secondary {
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.16);
}

.hero-section.hero-blueprint-animated .browser-frame {
  box-shadow: 0 34px 90px rgba(2, 6, 23, 0.28);
}

.hero-section.hero-blueprint-animated .hero-visual {
  transform: translateY(2px);
}

/* Optional helper class for slightly calmer motion */
.hero-section.hero-blueprint-animated.motion-low::before {
  animation-duration: 34s;
}
.hero-section.hero-blueprint-animated.motion-low::after {
  animation-duration: 16s, 8s;
  opacity: 0.64;
}

@keyframes vuqcGridDrift {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(-18px, -14px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes vuqcScanSweep {
  0% {
    background-position:
      76% 34%,
      67% 58%,
      21% 42%,
      31% 72%,
      120% 0%,
      -120% 0%;
  }
  50% {
    background-position:
      76% 34%,
      67% 58%,
      21% 42%,
      31% 72%,
      40% 0%,
      12% 0%;
  }
  100% {
    background-position:
      76% 34%,
      67% 58%,
      21% 42%,
      31% 72%,
      -40% 0%,
      120% 0%;
  }
}

@keyframes vuqcNodePulse {
  0%, 100% {
    filter: brightness(1);
    opacity: 0.78;
  }
  50% {
    filter: brightness(1.18);
    opacity: 0.92;
  }
}

@media (max-width: 1200px) {
  .hero-section.hero-blueprint-animated::after {
    background-size:
      8px 8px,
      8px 8px,
      10px 10px,
      10px 10px,
      240% 240%,
      220% 100%;
  }
}

@media (max-width: 840px) {
  .hero-section.hero-blueprint-animated {
    background:
      radial-gradient(circle at 72% 10%, rgba(109, 93, 252, 0.14), transparent 22%),
      radial-gradient(circle at 24% 80%, rgba(37, 99, 235, 0.10), transparent 18%),
      linear-gradient(135deg, #081121 0%, #0f172a 52%, #17233d 100%);
  }

  .hero-section.hero-blueprint-animated::before {
    background-size: 22px 22px, 22px 22px, 110px 110px, 110px 110px;
    opacity: 0.84;
  }

  .hero-section.hero-blueprint-animated::after {
    opacity: 0.58;
    background-size:
      7px 7px,
      7px 7px,
      9px 9px,
      9px 9px,
      260% 260%,
      240% 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-section.hero-blueprint-animated::before,
  .hero-section.hero-blueprint-animated::after {
    animation: none !important;
  }
}
