/* Motion language: subtle reveals + hover — preserve layout */

@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.55s ease, transform 0.55s ease;
  }

  .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .reveal-stagger > .reveal:nth-child(1) { transition-delay: 0.02s; }
  .reveal-stagger > .reveal:nth-child(2) { transition-delay: 0.08s; }
  .reveal-stagger > .reveal:nth-child(3) { transition-delay: 0.14s; }
  .reveal-stagger > .reveal:nth-child(4) { transition-delay: 0.2s; }
  .reveal-stagger > .reveal:nth-child(5) { transition-delay: 0.26s; }
  .reveal-stagger > .reveal:nth-child(6) { transition-delay: 0.32s; }

  .card-feature,
  .card-product,
  .card-material,
  .card-post,
  .tile-tech,
  .shop-tile {
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  }

  .card-feature:hover,
  .card-product[href]:hover,
  .card-material:hover,
  .card-post:hover,
  .tile-tech:hover,
  .shop-tile:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  }

  .btn {
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
  }

  .btn:hover {
    transform: translateY(-1px);
  }

  .btn:active {
    transform: translateY(0);
  }

  .image-strip img,
  .gallery-grid__item img {
    transition: opacity 0.25s ease, transform 0.35s ease;
  }

  .image-strip img:hover,
  .gallery-grid__item:hover img {
    transform: scale(1.03);
  }

  .mega {
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
  }

  .hero__copy {
    animation: hero-in 0.7s ease both;
  }

  @keyframes hero-in {
    from {
      opacity: 0;
      transform: translateY(12px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}
