@keyframes orb-drift-rose {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    transform: translate3d(-3vw, 3vh, 0) scale(1.06);
  }
}

@keyframes orb-drift-lavender {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }

  50% {
    transform: translate3d(3vw, -2vh, 0) scale(0.95);
  }
}

@keyframes orb-drift-gold {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 0.46;
  }

  50% {
    transform: translate3d(-2vw, 4vh, 0) scale(1.18);
    opacity: 0.76;
  }
}

@keyframes step-enter {
  from {
    opacity: 0;
    transform: translate3d(0, 16px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes content-reveal {
  from {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes card-reveal {
  from {
    opacity: 0;
    transform: translate3d(0, 15px, 0) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes soft-pulse {
  0%,
  100% {
    box-shadow: 0 12px 22px rgba(139, 80, 99, 0.23);
  }

  50% {
    box-shadow: 0 15px 32px rgba(139, 80, 99, 0.35);
  }
}

@keyframes success-pop {
  0% {
    opacity: 0;
    transform: scale(0.72) rotate(-10deg);
  }

  62% {
    opacity: 1;
    transform: scale(1.08) rotate(3deg);
  }

  100% {
    opacity: 1;
    transform: scale(1) rotate(0);
  }
}

.ambient-orb--rose {
  animation: orb-drift-rose 18s ease-in-out infinite;
}

.ambient-orb--lavender {
  animation: orb-drift-lavender 21s ease-in-out infinite;
}

.ambient-orb--gold {
  animation: orb-drift-gold 14s ease-in-out infinite;
}

.flow-step.is-active {
  animation: step-enter 520ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.flow-step.is-active .eyebrow,
.flow-step.is-active h1,
.flow-step.is-active h2,
.flow-step.is-active .hero-content__copy,
.flow-step.is-active .step-content__intro,
.flow-step.is-active .field-label,
.flow-step.is-active .input-wrap,
.flow-step.is-active .time-grid,
.flow-step.is-active .summary-card,
.flow-step.is-active .step-actions,
.flow-step.is-active .choice-buttons,
.flow-step.is-active .quiet-note {
  animation: content-reveal 560ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.flow-step.is-active h1,
.flow-step.is-active h2 {
  animation-delay: 55ms;
}

.flow-step.is-active .hero-content__copy,
.flow-step.is-active .step-content__intro {
  animation-delay: 125ms;
}

.flow-step.is-active .choice-buttons,
.flow-step.is-active .activity-grid,
.flow-step.is-active .field-label,
.flow-step.is-active .time-grid,
.flow-step.is-active .summary-card {
  animation-delay: 180ms;
}

.flow-step.is-active .input-wrap {
  animation-delay: 235ms;
}

.flow-step.is-active .step-actions,
.flow-step.is-active .quiet-note {
  animation-delay: 300ms;
}

.flow-step.is-active .activity-card {
  animation: card-reveal 480ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.flow-step.is-active .activity-card:nth-of-type(1) {
  animation-delay: 160ms;
}

.flow-step.is-active .activity-card:nth-of-type(2) {
  animation-delay: 215ms;
}

.flow-step.is-active .activity-card:nth-of-type(3) {
  animation-delay: 270ms;
}

.flow-step.is-active .activity-card:nth-of-type(4) {
  animation-delay: 325ms;
}

.flow-step.is-active .time-option {
  animation: card-reveal 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.flow-step.is-active .time-option:nth-of-type(1) {
  animation-delay: 160ms;
}

.flow-step.is-active .time-option:nth-of-type(2) {
  animation-delay: 205ms;
}

.flow-step.is-active .time-option:nth-of-type(3) {
  animation-delay: 250ms;
}

.flow-step.is-active .time-option:nth-of-type(4) {
  animation-delay: 295ms;
}

.flow-step.is-active .time-option:nth-of-type(5) {
  animation-delay: 340ms;
}

.flow-step.is-active .time-option:nth-of-type(6) {
  animation-delay: 385ms;
}

.flow-step.is-active .button--primary {
  animation: content-reveal 560ms cubic-bezier(0.22, 1, 0.36, 1) 245ms both, soft-pulse 3.4s ease-in-out 1s infinite;
}

.success-content .success-icon {
  animation: success-pop 720ms cubic-bezier(0.16, 1, 0.3, 1) 100ms both;
}

.success-content .eyebrow {
  animation-delay: 230ms;
}

.success-content h2 {
  animation-delay: 285ms;
}

.success-content .step-content__intro {
  animation-delay: 360ms;
}

.success-content .button {
  animation-delay: 425ms;
}

@media (prefers-reduced-motion: reduce) {
  .ambient-orb--rose,
  .ambient-orb--lavender,
  .ambient-orb--gold,
  .flow-step.is-active,
  .flow-step.is-active .eyebrow,
  .flow-step.is-active h1,
  .flow-step.is-active h2,
  .flow-step.is-active .hero-content__copy,
  .flow-step.is-active .step-content__intro,
  .flow-step.is-active .field-label,
  .flow-step.is-active .input-wrap,
  .flow-step.is-active .time-grid,
  .flow-step.is-active .summary-card,
  .flow-step.is-active .step-actions,
  .flow-step.is-active .choice-buttons,
  .flow-step.is-active .quiet-note,
  .flow-step.is-active .activity-card,
  .flow-step.is-active .time-option,
  .flow-step.is-active .button--primary,
  .success-content .success-icon {
    animation: none;
  }
}
