/* Portfolio sub-sites — premium motion */

@media (prefers-reduced-motion: reduce) {
  .motion-hero > *,
  .reveal,
  .hero__bg,
  .hero__media,
  .hero__scroll-line,
  .site-header,
  .header {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .hero {
    overflow: hidden;
  }

  .hero__bg,
  .hero__media {
    animation: motionKenBurns 22s ease-in-out infinite alternate;
    will-change: transform;
  }

  .motion-hero > * {
    opacity: 0;
    transform: translateY(32px);
    animation: motionHeroIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  }

  .motion-hero > *:nth-child(1) { animation-delay: 0.08s; }
  .motion-hero > *:nth-child(2) { animation-delay: 0.2s; }
  .motion-hero > *:nth-child(3) { animation-delay: 0.34s; }
  .motion-hero > *:nth-child(4) { animation-delay: 0.48s; }
  .motion-hero > *:nth-child(5) { animation-delay: 0.6s; }
  .motion-hero > *:nth-child(6) { animation-delay: 0.72s; }

  .site-header,
  .header {
    animation: motionHeaderIn 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.05s backwards;
  }

  .hero__scroll-line {
    animation: motionScrollPulse 2.2s ease-in-out infinite;
  }

  .reveal {
    opacity: 0;
    transform: translateY(36px);
    transition:
      opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .reveal.is-visible {
    opacity: 1;
    transform: none;
  }

  .reveal-left {
    transform: translateX(-40px);
  }

  .reveal-left.is-visible {
    transform: none;
  }

  .reveal-right {
    transform: translateX(40px);
  }

  .reveal-right.is-visible {
    transform: none;
  }

  .reveal-scale {
    transform: translateY(28px) scale(0.96);
  }

  .reveal-scale.is-visible {
    transform: none;
  }

  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
  .reveal-delay-4 { transition-delay: 0.4s; }

  .btn--outline:hover,
  .btn--gold:hover,
  .btn--line:hover,
  .btn--primary:hover {
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), background 0.35s ease, border-color 0.35s ease, color 0.35s ease;
  }

  .dish-card:hover .dish-card__img img,
  .coach:hover .coach__photo,
  .product:hover .product__img img {
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  }
}

@keyframes motionHeroIn {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes motionHeaderIn {
  from {
    opacity: 0;
    transform: translateY(-16px);
  }
}

@keyframes motionKenBurns {
  from { transform: scale(1); }
  to { transform: scale(1.07); }
}

@keyframes motionScrollPulse {
  0%, 100% { opacity: 0.35; transform: scaleY(0.85); }
  50% { opacity: 1; transform: scaleY(1); }
}
