:root {
  --dd-motion-ease: cubic-bezier(.16, 1, .3, 1);
  --dd-motion-duration: 820ms;
  --dd-motion-distance: 24px;
}

html.dd-motion [data-animate],
html.dd-motion .reveal {
  --dd-motion-x: 0px;
  --dd-motion-y: var(--dd-motion-distance);
  --dd-motion-scale: 1;
  opacity: 0;
  transform: translate3d(var(--dd-motion-x), var(--dd-motion-y), 0) scale(var(--dd-motion-scale));
  transition:
    opacity var(--dd-motion-duration) var(--dd-motion-ease),
    transform calc(var(--dd-motion-duration) + 80ms) var(--dd-motion-ease);
  transition-delay: var(--dd-motion-delay, 0ms);
  will-change: opacity, transform;
}

html.dd-motion [data-animate="fade"],
html.dd-motion [data-animate="fade-in"] {
  --dd-motion-y: 0px;
}

html.dd-motion [data-animate="fade-down"] {
  --dd-motion-y: calc(0px - var(--dd-motion-distance));
}

html.dd-motion [data-animate="fade-left"] {
  --dd-motion-x: var(--dd-motion-distance);
  --dd-motion-y: 0px;
}

html.dd-motion [data-animate="fade-right"] {
  --dd-motion-x: calc(0px - var(--dd-motion-distance));
  --dd-motion-y: 0px;
}

html.dd-motion [data-animate="zoom-in"] {
  --dd-motion-y: 10px;
  --dd-motion-scale: .965;
}

html.dd-motion [data-animate].is-visible,
html.dd-motion .reveal.is-visible,
html.dd-motion .reveal.in-view,
html.dd-motion .reveal.on {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  will-change: auto;
}

[data-motion-marquee] {
  overflow: hidden;
}

[data-motion-marquee] .dd-marquee-track {
  width: max-content;
  display: flex;
  animation: dd-marquee var(--dd-marquee-duration, 40s) linear infinite;
  will-change: transform;
}

[data-motion-marquee="reverse"] .dd-marquee-track {
  animation-name: dd-marquee-reverse;
}

[data-motion-marquee][data-pause-on-hover]:hover .dd-marquee-track {
  animation-play-state: paused;
}

.dd-pulse {
  animation: dd-pulse 2.4s ease-in-out infinite;
}

@keyframes dd-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@keyframes dd-marquee-reverse {
  from { transform: translate3d(-50%, 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}

@keyframes dd-pulse {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -3px; }
}

@media (hover: hover) and (pointer: fine) {
  .dd-lift,
  .dd-zoom {
    transition:
      transform .4s var(--dd-motion-ease),
      border-color .3s ease,
      box-shadow .4s var(--dd-motion-ease);
  }

  .dd-lift:hover {
    transform: translateY(var(--dd-lift-distance, -6px));
    box-shadow: var(--dd-lift-shadow, 0 24px 56px rgba(3, 31, 91, .12));
  }

  .dd-zoom {
    overflow: hidden;
  }

  .dd-zoom > img,
  .dd-zoom-target {
    transition: transform .65s var(--dd-motion-ease), filter .35s ease;
  }

  .dd-zoom:hover > img,
  .dd-zoom:hover .dd-zoom-target {
    transform: scale(var(--dd-zoom-scale, 1.055));
  }
}

/* Reduced-motion override intentionally removed: animations always run. */
