/* === /assets/css/transitions.css — layout-level route cross-fade (C186 A4) ===
 *
 * Single 150ms opacity transition on the body (layout root). Applied at build
 * time to every HTML page via build.js. Honors prefers-reduced-motion.
 *
 * Why body, not a wrapper:
 *   - thumbprinted.com pages do not share a layout component, so body is the
 *     de-facto layout root.
 *   - Animating opacity is GPU-cheap and triggers no layout shift.
 *
 * Behavior:
 *   - First paint: body opacity 0, transitions to 1 over 150ms (entry fade-in)
 *   - On link click: JS sets body.style.opacity = '0', then navigates after
 *     150ms (exit fade-out). New page lands at opacity 0, transitions to 1.
 *   - With prefers-reduced-motion: reduce, no transition, no opacity rule —
 *     body is visible from first paint and link clicks snap.
 */

@media (prefers-reduced-motion: no-preference) {
  body {
    opacity: 0;
    transition: opacity 150ms ease-out;
  }
}
