/* ========================================================================== 
   Beca Theme — Global content reveal motion
   ========================================================================== */

/*
 * Reveal classes are applied by js/beca.behaviors.js only on public content
 * pages. Keeping the hidden state behind .beca-reveal-ready means content
 * remains fully visible if JavaScript is unavailable or fails to initialise.
 */
body.beca-reveal-ready .beca-reveal {
  opacity: 0;
  transform: translate3d(0, 2.35rem, 0) scale(0.985);
  filter: blur(2px);
  transition:
    opacity 820ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 900ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 700ms ease-out;
  transition-delay: var(--beca-reveal-delay, 0ms);
  will-change: opacity, transform;
}

body.beca-reveal-ready .beca-reveal.is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
  will-change: auto;
}

/*
 * Drupal administrative/editing surfaces must always be immediately visible.
 * These selectors are defensive in addition to the JavaScript exclusions.
 */
body.path-admin .beca-reveal,
body.beca-user-login-page .beca-reveal,
body.beca-under-construction-page .beca-reveal,
.layout-builder-form .beca-reveal,
.layout-builder .beca-reveal {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  transition: none !important;
}

/* Respect the visitor's operating-system accessibility preference. */
@media (prefers-reduced-motion: reduce) {
  body.beca-reveal-ready .beca-reveal,
  body.beca-reveal-ready .beca-reveal.is-revealed {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}
