
/* ===== Animations (basic + professional) ===== */

@keyframes floatIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes popIn {
  from { opacity: 0; transform: scale(0.98); }
  to   { opacity: 1; transform: scale(1); }
}

/* Page load subtle entrance */
.page-animate {
  animation: floatIn 520ms ease-out both;
}

/* Reveal on scroll */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 520ms ease, transform 520ms ease;
  will-change: opacity, transform;
}

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

/* Stagger helper */
.reveal[data-delay="1"] { transition-delay: 80ms; }
.reveal[data-delay="2"] { transition-delay: 140ms; }
.reveal[data-delay="3"] { transition-delay: 200ms; }
.reveal[data-delay="4"] { transition-delay: 260ms; }

/* Interactive polish (no redesign) */
.btn, button, .nav__link, a {
  transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}

.btn:hover, button:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(0,0,0,0.10);
}

.btn:active, button:active {
  transform: translateY(0);
  box-shadow: none;
}

.card, .course, .panel, .resource, .portfolio__item {
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.card:hover, .course:hover, .panel:hover, .resource:hover, .portfolio__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 26px rgba(0,0,0,0.12);
}

/* Modal entrance */
.modal__content {
  transform-origin: top center;
}

.modal.is-open .modal__content {
  animation: popIn 240ms ease-out both;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .page-animate, .modal.is-open .modal__content { animation: none !important; }
  .reveal, .btn, button, .nav__link, a, .card, .course, .panel, .resource, .portfolio__item {
    transition: none !important;
  }
  .reveal { opacity: 1; transform: none; }
}
