/* ============================================================
   FelixCraft · Team Effects v4 — Clean animations
   ============================================================ */

html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  transition: background 0.45s ease, color 0.35s ease;
}

.nav,
.hero,
.portrait,
.portraits,
.card,
.chip,
.team-directory-grid a {
  transition: background 0.45s ease, color 0.35s ease, border-color 0.35s ease,
    box-shadow 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

body.team-ready .nav {
  animation: team-nav-in 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.team-ready .hero {
  animation: team-hero-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
}

.team-animated {
  opacity: 0;
  animation: team-fade-in 0.72s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.team-theme-changing .page,
body.team-language-changing .page {
  animation: team-soft-shift 0.42s ease;
}

@keyframes team-nav-in {
  from { opacity: 0; transform: translateY(-18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes team-hero-in {
  from { opacity: 0; transform: translateY(22px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes team-fade-in {
  from { opacity: 0; filter: blur(5px); }
  to { opacity: 1; filter: blur(0); }
}

@keyframes team-soft-shift {
  0%, 100% { opacity: 1; }
  45% { opacity: 0.72; transform: translateY(2px); }
}

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