/* LottieFiles Motion Design: Premium personality, restrained editorial motion.
   Keep content visible at first paint. JS owns one-shot transform/opacity motion. */
:root {
  --ls-motion-quick: 140ms;
  --ls-motion-standard: 280ms;
  --ls-motion-slow: 380ms;
  --ls-motion-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ls-motion-enter: cubic-bezier(0.05, 0.7, 0.1, 1);
  --ls-motion-exit: cubic-bezier(0.3, 0, 1, 1);
}

html body:not(.admin-body) main .reveal,
html body:not(.admin-body) main .reveal.is-visible {
  opacity: 1;
  transform: none;
  transition: none;
  animation: none;
}

html body:not(.admin-body) .projects-page .filter-btn {
  transition: color var(--ls-motion-quick) var(--ls-motion-ease),
    background-color var(--ls-motion-quick) var(--ls-motion-ease),
    border-color var(--ls-motion-quick) var(--ls-motion-ease);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  html body:not(.admin-body) .projects-page .filter-btn {
    transition: none;
    transform: none;
  }
}

@media print {
  html body:not(.admin-body) main .reveal { opacity: 1 !important; transform: none !important; }
}
