/* ARTICLE 1382 — restrained motion system */

@keyframes reveal-up {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes reveal-line {
  from { transform: scaleX(0); transform-origin: left; }
  to { transform: scaleX(1); transform-origin: left; }
}

@keyframes soft-pulse {
  0%, 100% { opacity: .72; }
  50% { opacity: 1; }
}

.hero__inner { animation: reveal-up 700ms cubic-bezier(.22, 1, .36, 1) both; }
.hero__actions { animation: reveal-up 700ms 120ms cubic-bezier(.22, 1, .36, 1) both; }
.section-heading { animation: reveal-up 600ms 80ms cubic-bezier(.22, 1, .36, 1) both; }

.product-grid .product-card {
  animation: reveal-up 650ms cubic-bezier(.22, 1, .36, 1) both;
}

.product-grid .product-card:nth-child(2) { animation-delay: 80ms; }
.product-grid .product-card:nth-child(3) { animation-delay: 160ms; }
.product-grid .product-card:nth-child(4) { animation-delay: 240ms; }
.product-grid .product-card:nth-child(5) { animation-delay: 320ms; }
.product-grid .product-card:nth-child(6) { animation-delay: 400ms; }

.product-card {
  transition: transform 450ms cubic-bezier(.22, 1, .36, 1), box-shadow 450ms ease, border-color 300ms ease;
}

.product-card:hover {
  box-shadow: var(--shadow-hover);
}

.product-card__media { overflow: hidden; }
.product-card__media img {
  transition: transform 700ms cubic-bezier(.22, 1, .36, 1), filter 500ms ease;
}

.product-card:hover .product-card__media img {
  transform: scale(1.045);
  filter: saturate(.92) contrast(1.03);
}

.btn, .cart-link, .main-nav a, .mobile-nav a {
  transition: color 250ms ease, background-color 250ms ease, border-color 250ms ease, transform 250ms ease;
}

.btn:hover { transform: translateY(-2px); }
.btn:active, .cart-link:active { transform: translateY(0); }

.site-header { animation: reveal-up 550ms cubic-bezier(.22, 1, .36, 1) both; }
.site-header::after {
  content: "";
  display: block;
  height: 1px;
  background: var(--color-brand);
  animation: reveal-line 900ms 180ms cubic-bezier(.22, 1, .36, 1) both;
}

.cart-link__badge { animation: soft-pulse 2.8s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

@media (max-width: 699px) {
  .product-grid .product-card:nth-child(n) { animation-delay: 0ms; }
}

@media (prefers-reduced-motion: no-preference) {
  .categories-band__item:hover { letter-spacing: .11em; }
}
