/* DAVC motion - bold, clearly visible (loaded + inlined) */

@keyframes davc-rise {
  from {
    opacity: 0;
    transform: translate3d(0, 64px, 0) scale(0.9);
    filter: blur(12px);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }
}

@keyframes davc-ring {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.14);
    opacity: 0.28;
  }
}

@keyframes davc-float-up {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -22px, 0);
  }
}

@keyframes davc-float-down {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, 22px, 0);
  }
}

@keyframes davc-core {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 40px rgba(45, 74, 62, 0.25);
  }
  50% {
    transform: scale(1.1);
    box-shadow: 0 0 80px rgba(45, 74, 62, 0.55);
  }
}

@keyframes davc-dash {
  to {
    stroke-dashoffset: -160;
  }
}

@keyframes davc-scroll-pulse {
  0%,
  100% {
    opacity: 0.25;
    transform: scaleY(0.7);
  }
  50% {
    opacity: 1;
    transform: scaleY(1);
  }
}

@keyframes davc-line {
  from {
    opacity: 0;
    transform: scaleX(0);
  }
  to {
    opacity: 1;
    transform: scaleX(1);
  }
}

/* Entrances: large move + scale + blur so you actually notice them */
[data-animate] {
  opacity: 0;
  transform: translate3d(0, 64px, 0) scale(0.9);
  filter: blur(12px);
  transition:
    opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}

[data-animate="line"] {
  transform: scaleX(0);
  filter: none;
  transform-origin: left center;
}

[data-animate].in {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

[data-animate="line"].in {
  transform: scaleX(1);
  filter: none;
}

/* Diagram ambient is local to NetworkSection (soft core rings only).
   No floating nodes - those caused overlap with the old absolute layout. */

.hero .scroll-line {
  transform-origin: top center;
  animation: davc-scroll-pulse 1.4s ease-in-out infinite !important;
}

/* Hover: obvious lift */
.feature-card,
.capability,
.tech-row,
.contact-panel {
  transition:
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.25s ease,
    background-color 0.25s ease,
    box-shadow 0.4s ease !important;
}
.feature-card:hover,
.capability:hover {
  transform: translateY(-12px) !important;
  box-shadow: 0 18px 40px rgba(26, 25, 24, 0.12) !important;
}
.btn:hover,
.nav-cta:hover {
  transform: translateY(-3px) !important;
}
.btn:active,
.nav-cta:active {
  transform: scale(0.96) !important;
}

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  .core-ring,
  .hero .scroll-line {
    animation: none !important;
  }
  .feature-card:hover,
  .capability:hover,
  .btn:hover,
  .nav-cta:hover,
  .btn:active,
  .nav-cta:active {
    transform: none !important;
    box-shadow: none !important;
  }
}
