@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(1.25rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes gradient-shift {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@keyframes pulse-glow {
  0%,
  100% {
    box-shadow: 0 8px 24px rgba(246, 174, 98, 0.4);
  }
  50% {
    box-shadow: 0 12px 36px rgba(246, 174, 98, 0.6);
  }
}

@keyframes orb-drift-a {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(60px, 40px) scale(1.15); }
}

@keyframes orb-drift-b {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-50px, -30px) scale(1.1); }
}

@keyframes badge-pulse {
  0%,
  100% {
    border-color: rgba(246, 174, 98, 0.35);
    box-shadow: 0 0 0 0 rgba(246, 174, 98, 0.2);
  }
  50% {
    border-color: rgba(246, 174, 98, 0.7);
    box-shadow: 0 0 16px rgba(246, 174, 98, 0.25);
  }
}

.hero__content h1,
.hero__content .hero__lead,
.hero__content .hero__actions {
  opacity: 0;
  animation: fade-up 0.85s var(--ease-out) forwards;
}

.hero__content .hero__lead {
  animation-delay: 0.1s;
}

.hero__content .hero__actions {
  animation-delay: 0.2s;
}

.accent-line {
  display: block;
  width: 3.5rem;
  height: 3px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-md);
  background-image: var(--ci-gradient);
  background-size: 200% 100%;
  animation: gradient-shift 8s ease infinite;
}

.reveal {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}

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

.team-fx__badge--pulse {
  animation: badge-pulse 2.5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  html::after {
    animation: none;
  }

  html::before {
    transform: none !important;
    will-change: auto;
  }

  .hero__content h1,
  .hero__content .hero__lead,
  .hero__content .hero__actions {
    animation: none;
    opacity: 1;
  }

  .accent-line {
    animation: none;
  }

  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .team-fx__badge--pulse,
  .team-orb--a,
  .team-orb--b {
    animation: none;
  }

  .team-fx__card:hover .team-fx__figure img {
    transform: none;
  }

  .team-fx__card:hover {
    transform: none;
  }

  .card:hover {
    transform: none;
  }

  .tcard__scene,
  .tcard__photo img,
  .tcard__hint,
  .tcard__front::before {
    transition: none !important;
  }
}
