/* ACIX Systems — first-view reveal.
 *
 * Content fades and rises into frame the first time it enters the viewport,
 * then stays put. Applied on every page except the landing page.
 *
 * Two safety properties are deliberate:
 *
 *  1. The whole thing lives inside @media (prefers-reduced-motion: no-preference),
 *     so a visitor who has asked their OS to reduce motion never has content
 *     hidden from them at all — the rules simply do not apply.
 *
 *  2. The hiding rules require html.reveal-on, which is set by a tiny inline
 *     script in each page's <head>, and are dropped again if html.reveal-done
 *     appears. That failsafe fires if the observer never initialises, so a JS
 *     error can never leave the page permanently blank.
 */

@media (prefers-reduced-motion: no-preference) {

  html.reveal-on:not(.reveal-done) .page-hero-inner,
  html.reveal-on:not(.reveal-done) .section > .section-inner {
    opacity: 0;
    transform: translateY(18px);
    transition:
      opacity   0.65s cubic-bezier(0.22, 0.61, 0.36, 1),
      transform 0.65s cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: opacity, transform;
  }

  html.reveal-on .page-hero-inner.is-visible,
  html.reveal-on .section > .section-inner.is-visible {
    opacity: 1;
    transform: none;
    will-change: auto;
  }
}
