/* public/assets/css/reveal.css
   Lightweight scroll-reveal utilities.
   Usage:
     - Add class "reveal" + variant (fade-up|fade-left|fade-right|zoom-in|pop)
     - Optional: data-delay="150" (ms), data-once="0|1" (default 1), data-distance="24"
*/
:root{ --reveal-duration: .7s; --reveal-distance: 22px; }

.reveal{
  opacity:0;
  visibility:hidden;
  will-change: transform, opacity;
  transition-property: transform, opacity;
  transition-duration: var(--reveal-duration);
  transition-timing-function: cubic-bezier(.2,.8,.2,1);
  transform: translateY(var(--reveal-distance));
}
.reveal.show{ opacity:1; visibility:visible; transform:none; }

/* Variants */
.reveal.fade-up{ transform: translateY(var(--reveal-distance)); }
.reveal.fade-left{ transform: translateX(var(--reveal-distance)); }
.reveal.fade-right{ transform: translateX(calc(var(--reveal-distance) * -1)); }
.reveal.zoom-in{ transform: scale(.96); }
.reveal.pop{ transform: scale(.97) translateY(6px); }

/* Slight stagger helper for grids */
.reveal-stagger > *{ --reveal-duration: .6s; }
.reveal-stagger > *:nth-child(1){ transition-delay:.03s }
.reveal-stagger > *:nth-child(2){ transition-delay:.08s }
.reveal-stagger > *:nth-child(3){ transition-delay:.12s }
.reveal-stagger > *:nth-child(4){ transition-delay:.16s }
.reveal-stagger > *:nth-child(5){ transition-delay:.20s }
.reveal-stagger > *:nth-child(6){ transition-delay:.24s }
.reveal-stagger > *:nth-child(7){ transition-delay:.28s }
.reveal-stagger > *:nth-child(8){ transition-delay:.32s }
.reveal-stagger > *:nth-child(9){ transition-delay:.36s }

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce){
  .reveal{ transition: none !important; transform:none !important; opacity:1 !important; visibility:visible !important; }
}
