/* Motion: hierarchy on load + section attention on scroll. Dose-capped (R-19). */

.hero-animate > * {
  opacity: 0;
  transform: translateY(14px);
  animation: rise-in 0.7s var(--ease) forwards;
  animation-delay: 0.4s;
}

.hero-animate > *:nth-child(1) { animation-delay: 0.05s; }
.hero-animate > *:nth-child(2) { animation-delay: 0.14s; }
.hero-animate > *:nth-child(3) { animation-delay: 0.22s; }
.hero-animate > *:nth-child(4) { animation-delay: 0.3s; }
.hero-animate > *:nth-child(5) { animation-delay: 0.38s; }

@keyframes rise-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.55s var(--ease),
    transform 0.55s var(--ease);
  transition-delay: var(--reveal-delay, 0s);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.project-feature__media img {
  transition: transform 0.45s var(--ease);
}

.project-feature:hover .project-feature__media img {
  transform: scale(1.03);
}

/* Motion layer also styles panels; keep base panel rules in components. */
.panel {
  transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

.panel:hover {
  border-color: var(--border-strong);
  box-shadow: var(--shadow-soft);
}

.project-list__link {
  transition: background 0.2s var(--ease), transform 0.2s var(--ease);
}

.project-list__link:hover .project-list__arrow i {
  transform: translateX(3px);
}

.project-list__arrow i {
  display: inline-block;
  transition: transform 0.2s var(--ease);
}

@media (prefers-reduced-motion: reduce) {
  .hero-animate > *,
  .reveal {
    opacity: 1;
    transform: none;
    animation: none;
    transition: none;
  }

  .project-feature__media img,
  .project-list__arrow i,
  .panel,
  .wa-fab {
    transition: none;
  }

  .project-feature:hover .project-feature__media img {
    transform: none;
  }
}
