/* ============================================================
   MOTION EXTRAS — deliberately separate, and NOT translated to Webflow.

   Webflow's HTML-to-elements converter rejects @keyframes outright, and
   rejects the [data-parallax] attribute selector these rules depend on. Rather
   than water the local build down to the converter's vocabulary, both live
   here: the translated CSS omits this file entirely and the pages lose two
   ambient animations, nothing structural.

   If the motion is wanted on the live site, rebuild it as a Webflow
   interaction in the Designer — that is the native equivalent, and it will do
   a better job than converted CSS would.
   ============================================================ */

/* The hero's scroll cue, nudging downward. */
.hero-cue-chev { animation: heroCueBounce 1.8s ease-in-out infinite; }

@keyframes heroCueBounce {
  /* Amplitude scales with --motion-parallax so the dial can flatten it to a no-op. */
  0%, 100% { transform: translateY(0); opacity: 0.7; }
  50% { transform: translateY(calc(8px * var(--motion-parallax))); opacity: 1; }
}

/* The slow drift across a full-bleed scene photograph. Gated on the attribute
   so a scene without it stays perfectly still; at --motion-parallax: 0 every
   keyframe value collapses to the same transform, so it is a true no-op. */
.scene-bg[data-parallax],
.scene-bg-media[data-parallax] {
  animation: sceneDrift 26s ease-in-out infinite alternate;
}

@keyframes sceneDrift {
  from { transform: scale(calc(1 + 0.08 * var(--motion-parallax))) translate3d(0, 0, 0); }
  to   { transform: scale(calc(1 + 0.16 * var(--motion-parallax)))
                    translate3d(calc(-1.5% * var(--motion-parallax)), calc(-2% * var(--motion-parallax)), 0); }
}
