/* FitOnTrack home-page motion only. */
:root {
  --fit-motion-fast: 180ms;
  --fit-motion-slow: 680ms;
  --fit-motion-ease: cubic-bezier(.2,.75,.2,1);
}

.fit-public-home .fitness-motion-reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(.985);
  transition:
    opacity var(--fit-motion-slow) var(--fit-motion-ease),
    transform var(--fit-motion-slow) var(--fit-motion-ease);
  transition-delay: var(--fit-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.fit-public-home .fitness-motion-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.fit-public-home .fit-btn-primary,
.fit-public-home .fit-btn-secondary,
.fit-public-home .fit-problem-grid article,
.fit-public-home .fit-process-grid article,
.fit-public-home .fit-goal-cloud a,
.fit-public-home .fit-guidance-cards article,
.fit-public-home .fit-app-preview {
  transition-property: transform, box-shadow, border-color, background-color, color, opacity;
  transition-duration: var(--fit-motion-fast);
  transition-timing-function: var(--fit-motion-ease);
}

.fit-public-home .fit-btn-primary:active,
.fit-public-home .fit-btn-secondary:active {
  transform: scale(.96);
}

@media (hover:hover) and (pointer:fine) {
  .fit-public-home .fit-problem-grid article:hover,
  .fit-public-home .fit-process-grid article:hover,
  .fit-public-home .fit-goal-cloud a:hover,
  .fit-public-home .fit-guidance-cards article:hover,
  .fit-public-home .fit-app-preview:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 48px rgba(13,20,36,.13);
  }
}

.fit-public-home .fit-preview-progress .progress-bar {
  width: 0 !important;
  transition: width 1100ms var(--fit-motion-ease);
}

.fit-public-home .fit-preview-progress .progress-bar.is-progress-visible {
  width: 75% !important;
}

.fit-public-home .fit-preview-icon {
  animation: fitness-home-icon-pop 520ms var(--fit-motion-ease) 240ms both;
}

@keyframes fitness-home-icon-pop {
  0% { opacity: .2; transform: scale(.7) rotate(-8deg); }
  65% { opacity: 1; transform: scale(1.12) rotate(3deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}

@media (prefers-reduced-motion: reduce) {
  .fit-public-home .fitness-motion-reveal {
    opacity: 1;
    transform: none;
  }

  .fit-public-home .fit-preview-progress .progress-bar {
    transition: none;
    width: 75% !important;
  }

  .fit-public-home *,
  .fit-public-home *::before,
  .fit-public-home *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
