@keyframes soft-reveal {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes portrait-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(0.4deg); }
}

@keyframes ambient-drift-one {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(14px, -18px, 0) scale(1.06); }
}

@keyframes ambient-drift-two {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
  50% { transform: translate3d(-18px, 15px, 0) rotate(7deg); }
}

@keyframes status-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(124, 155, 121, 0); }
  50% { box-shadow: 0 0 0 5px rgba(124, 155, 121, 0.16); }
}

.profile .portrait-wrap {
  opacity: 1;
  animation: soft-reveal 0.75s ease-out 0.05s backwards,
             portrait-float 5.5s ease-in-out 0.9s infinite;
}

.profile .kicker {
  opacity: 1;
  animation: soft-reveal 0.7s ease-out 0.16s backwards;
}

.profile h1 {
  opacity: 1;
  animation: soft-reveal 0.75s ease-out 0.24s backwards;
}

.profile .intro {
  opacity: 1;
  animation: soft-reveal 0.7s ease-out 0.34s backwards;
}

.profile .socials {
  opacity: 1;
  animation: soft-reveal 0.7s ease-out 0.43s backwards;
}

.cards .card {
  opacity: 1;
  animation: soft-reveal 0.72s cubic-bezier(.22, .8, .35, 1) backwards;
}

.cards .card:nth-child(1) { animation-delay: 0.52s; }
.cards .card:nth-child(2) { animation-delay: 0.64s; }
.cards .card:nth-child(3) { animation-delay: 0.76s; }

.partnership {
  opacity: 1;
  animation: soft-reveal 0.8s ease-out 0.88s backwards;
}

footer {
  opacity: 1;
  animation: soft-reveal 0.7s ease-out 1s backwards;
}

.ambient.one { animation: ambient-drift-one 12s ease-in-out infinite; }
.ambient.two { animation: ambient-drift-two 15s ease-in-out infinite; }
.online-dot { animation: status-pulse 3s ease-in-out infinite; }

.socials a,
.card,
.whatsapp,
.email {
  will-change: transform;
}

.socials a:hover {
  transform: translateY(-4px) scale(1.06);
}

.card:hover .copy {
  transform: translateX(3px);
}

.copy {
  transition: transform 0.3s ease;
}

.whatsapp:hover {
  transform: translateY(-3px) scale(1.01);
}

@media (prefers-reduced-motion: reduce) {
  .profile .portrait-wrap,
  .profile .kicker,
  .profile h1,
  .profile .intro,
  .profile .socials,
  .cards .card,
  .partnership,
  footer,
  .ambient.one,
  .ambient.two,
  .online-dot {
    opacity: 1;
    animation: none !important;
    transform: none !important;
  }
}
