/* Animações leves: só transform/opacity (GPU), sem layout; desligadas com prefers-reduced-motion */
@media (prefers-reduced-motion: no-preference) {
  html.js-motion .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0ms); }
  html.js-motion .reveal.in { opacity: 1; transform: none; }
  /* hero: só desliza (sem opacity, para não atrasar o LCP) */
  .hero .container > * { animation: heroUp .7s cubic-bezier(.2,.7,.2,1) both; }
  .hero .container > *:nth-child(2) { animation-delay: .08s; }
  .hero .container > *:nth-child(3) { animation-delay: .16s; }
  .hero .container > *:nth-child(4) { animation-delay: .24s; }
  @keyframes heroUp { from { transform: translateY(14px); } to { transform: none; } }
  .btn { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.14); }
  .btn:active { transform: translateY(0); }
  .card { transition: transform .25s ease, box-shadow .25s ease; }
  .card .card-photo img { transition: transform .5s ease; }
  .card:hover .card-photo img { transform: scale(1.05); }
  .gallery-grid figure { transition: transform .25s ease, box-shadow .25s ease; }
  .gallery-grid a:hover figure { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,.2); }
  .site-header { transition: box-shadow .25s ease; }
  .stats-grid > div { transition: transform .25s ease; }
  .stats-grid > div:hover { transform: translateY(-3px); }
  nav.primary-nav a { transition: color .2s ease, border-color .2s ease; }
}
.site-header.scrolled { box-shadow: 0 6px 20px rgba(0,0,0,.22); }
