/* DeepDimex — Motion */

@keyframes dd-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(200, 255, 61, 0.45);
    opacity: 1;
  }
  50% {
    box-shadow: 0 0 0 6px rgba(200, 255, 61, 0);
    opacity: 0.85;
  }
}

@keyframes dd-fade-up {
  from {
    opacity: 0;
    transform: translateY(1.1rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* —— Scroll reveals: whole sections only —— */
.dd-motion:not(.dd-reduced-motion) .dd-reveal:not(.is-visible) {
  opacity: 0;
  transform: translate3d(0, 30px, 0);
}

.dd-motion:not(.dd-reduced-motion) .dd-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity 0.85s var(--dd-ease-out, cubic-bezier(0.22, 1, 0.36, 1)),
    transform 0.85s var(--dd-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}

.dd-motion:not(.dd-reduced-motion) .dd-reveal[data-dd-reveal-dir="left"]:not(.is-visible) {
  transform: translate3d(-28px, 0, 0);
}

.dd-motion:not(.dd-reduced-motion) .dd-reveal[data-dd-reveal-dir="right"]:not(.is-visible) {
  transform: translate3d(28px, 0, 0);
}

/* Hero entrance (load, not scroll) — homepage video banner */
.dd-hero__eyebrow,
.dd-hero__title-line,
.dd-hero__support,
.dd-hero__actions,
.dd-hero__system {
  opacity: 0;
  transform: translateY(1rem);
  animation: dd-fade-up 900ms var(--dd-ease-out, cubic-bezier(0.22, 1, 0.36, 1)) forwards;
}

.dd-hero__eyebrow { animation-delay: 80ms; }
.dd-hero__title-line:nth-child(1) { animation-delay: 160ms; }
.dd-hero__title-line:nth-child(2) { animation-delay: 250ms; }
.dd-hero__title-line:nth-child(3) { animation-delay: 340ms; }
.dd-hero__title-line:nth-child(4) { animation-delay: 430ms; }
.dd-hero__support { animation-delay: 520ms; }
.dd-hero__actions { animation-delay: 620ms; }
.dd-hero__system { animation-delay: 720ms; }

/* Inner page banner — same load entrance (no scroll-reveal flash) */
.dd-page-hero .dd-breadcrumb,
.dd-page-hero .banner-eyebrow,
.dd-page-hero .text-eyebrow,
.dd-page-hero .dd-page-hero__title,
.dd-page-hero__main > p,
.dd-page-hero__support,
.dd-page-hero .dd-hero__actions,
.dd-page-hero__aside,
.dd-page-hero__glance,
.dd-page-hero__img,
.dd-legal-hero .dd-legal-hero__title,
.dd-legal-hero .dd-legal-hero__meta {
  opacity: 0;
  transform: translateY(1rem);
  animation: dd-fade-up 900ms var(--dd-ease-out, cubic-bezier(0.22, 1, 0.36, 1)) forwards;
}

.dd-page-hero .dd-breadcrumb { animation-delay: 60ms; }
.dd-page-hero .banner-eyebrow,
.dd-page-hero .text-eyebrow { animation-delay: 80ms; }
.dd-page-hero .dd-page-hero__title { animation-delay: 160ms; }
.dd-page-hero__main > p,
.dd-page-hero__support { animation-delay: 280ms; }
.dd-page-hero .dd-hero__actions { animation-delay: 400ms; }
.dd-page-hero__aside,
.dd-page-hero__glance,
.dd-page-hero__img { animation-delay: 320ms; }
.dd-legal-hero .dd-legal-hero__title { animation-delay: 120ms; }
.dd-legal-hero .dd-legal-hero__meta { animation-delay: 240ms; }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .dd-reveal,
  .dd-hero__eyebrow,
  .dd-hero__title-line,
  .dd-hero__support,
  .dd-hero__actions,
  .dd-hero__system,
  .dd-page-hero .dd-breadcrumb,
  .dd-page-hero .banner-eyebrow,
  .dd-page-hero .text-eyebrow,
  .dd-page-hero .dd-page-hero__title,
  .dd-page-hero__main > p,
  .dd-page-hero__support,
  .dd-page-hero .dd-hero__actions,
  .dd-page-hero__aside,
  .dd-page-hero__glance,
  .dd-page-hero__img,
  .dd-legal-hero .dd-legal-hero__title,
  .dd-legal-hero .dd-legal-hero__meta {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }

  .dd-meta-dot {
    animation: none;
  }

  .dd-journey__node,
  .dd-journey__path,
  .dd-journey__signal {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }

  .dd-journey__path {
    transform: scaleX(1) !important;
  }

  .dd-journey__signal {
    display: none;
  }

  .dd-system__visual .dd-system__path {
    stroke-dashoffset: 0 !important;
  }

  .dd-system__visual .dd-system__discipline,
  .dd-system__visual .dd-system__core,
  .dd-system__visual .dd-system__growth-out,
  .dd-system__visual .dd-system__growth-steps {
    opacity: 1 !important;
  }

  .dd-system__visual .dd-system__discipline,
  .dd-system__visual .dd-system__growth-steps {
    transform: none !important;
  }

  .dd-system__signal {
    opacity: 0 !important;
  }

  .dd-perspective__visual {
    animation: none !important;
  }

  .dd-perspective__visual .dd-perspective__dot,
  .dd-perspective__visual .dd-perspective__candidates path,
  .dd-perspective__visual .dd-perspective__signal-path,
  .dd-perspective__visual .dd-perspective__signal-label {
    transition: none !important;
    animation: none !important;
  }

  .dd-perspective__visual .dd-perspective__dot {
    opacity: 0.28 !important;
  }

  .dd-perspective__visual .dd-perspective__dot--candidate {
    opacity: 1 !important;
    fill: rgba(242, 240, 233, 0.62) !important;
  }

  .dd-perspective__visual .dd-perspective__dot--signal {
    opacity: 1 !important;
    fill: rgba(242, 240, 233, 0.92) !important;
  }

  .dd-perspective__visual .dd-perspective__candidates--probe path {
    opacity: 0 !important;
  }

  .dd-perspective__visual .dd-perspective__candidates--field path {
    opacity: 0.28 !important;
  }

  .dd-perspective__visual .dd-perspective__signal-path {
    opacity: 1 !important;
    stroke-dashoffset: 0 !important;
  }

  .dd-perspective__visual .dd-perspective__signal-label {
    opacity: 0.85 !important;
    transform: none !important;
  }
}

/* Soften motion on small screens */
@media (max-width: 767.98px) {
  .dd-motion:not(.dd-reduced-motion) .dd-reveal:not(.is-visible) {
    transform: translate3d(0, 20px, 0);
  }
}
