/* Global animation utilities: hover, entrance/reveal */

/* Hover lift */
.hover-lift { transition: transform .18s ease, box-shadow .2s ease; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: 0 10px 26px rgba(0,0,0,.12); }

/* Reveal base */
[data-reveal] { opacity: 0; transform: translateY(18px); will-change: transform, opacity; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); transition: opacity .5s ease, transform .5s ease; }

/* Reveal variants */
[data-reveal="left"] { transform: translateX(-20px); }
[data-reveal="right"] { transform: translateX(20px); }
[data-reveal="pop"] { transform: scale(.96); }
[data-reveal="left"].is-visible,
[data-reveal="right"].is-visible,
[data-reveal="pop"].is-visible { transform: none; }

/* Small shimmer border utility */
.border-shimmer { position: relative; }
.border-shimmer::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, color-mix(in oklab, var(--primary) 35%, transparent), color-mix(in oklab, var(--primary-2) 35%, transparent));
  opacity: .15; filter: blur(8px); }

