/* ACME skin scroll-reveal — INITIAL hidden state only.
 *
 * Loaded by _includes.ascx so [data-reveal] elements start invisible
 * BEFORE js/scroll-reveal.js gets to bind them. Without this rule the
 * page would briefly show all content at full opacity (FOUC) until the
 * deferred script runs and writes the hidden inline styles.
 *
 * The REVEAL flip is done by js/scroll-reveal.js writing inline styles
 * directly on the element when it scrolls into view — bypassing the
 * cascade entirely so host CSS can't accidentally shadow it. That's why
 * THIS file only declares the initial state, not the visible state.
 *
 * !important is needed because some host CSS files declare scoped rules
 * with the same specificity that load LATER in source order and would
 * otherwise win and reveal the content immediately.
 */
[data-reveal]:not([data-reveal-bound]) {
  opacity: 0 !important;
}

/* Reduced-motion: if the user opted out, keep everything visible from the
 * start. JS also handles this case explicitly, but the CSS guard prevents
 * FOUC for the brief moment before JS runs. */
@media (prefers-reduced-motion: reduce) {
  [data-reveal]:not([data-reveal-bound]) {
    opacity: 1 !important;
  }
}
