/* =========================================================
   VELOURA EAST — LUXURY MOTION ENGINE (CSS)
   Pairs with assets/js/luxury-motion.js
   One shared timing language: 250–450ms, ease-out.
========================================================= */

/* ── Scroll reveal ── */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .5s cubic-bezier(.16,.84,.44,1),
              transform .6s cubic-bezier(.16,.84,.44,1);
  will-change: opacity, transform;
}
[data-reveal="fade"] { transform: translateY(0); }
[data-reveal="fade-left"]  { transform: translateX(-32px); }
[data-reveal="fade-right"] { transform: translateX(32px); }

[data-reveal].lux-revealed {
  opacity: 1;
  transform: translate3d(0,0,0);
}

/* ── Word stagger ── */
[data-split="words"] {
  display: block;
}
.lux-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(.4em);
  filter: blur(2px);
  transition: opacity .7s cubic-bezier(.16,.84,.44,1),
              transform .8s cubic-bezier(.16,.84,.44,1),
              filter .7s ease;
  transition-delay: calc(var(--i) * 55ms);
}
[data-split="words"].lux-split-revealed .lux-word {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
/* Reduced-motion / fallback: text is already visible via JS class */
.lux-split-revealed { opacity: 1; }

/* ── Hero parallax layer ── */
[data-parallax] {
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal], .lux-word {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}
