.cw-home.has-motion {
  --cw-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --cw-motion-fast: 220ms;
  --cw-motion-medium: 420ms;
  --cw-motion-slow: 820ms;
  --cw-reveal-duration: var(--cw-motion-slow);
  --cw-reveal-y: 14px;
}

.cw-home.has-motion.is-motion-ready .cw-motion-reveal {
  opacity: 0;
  transform: translate3d(0, var(--cw-reveal-y), 0);
  transition:
    opacity var(--cw-reveal-duration) var(--cw-motion-ease),
    transform var(--cw-reveal-duration) var(--cw-motion-ease);
  transition-delay: var(--cw-motion-delay, 0ms);
  will-change: opacity, transform;
}

.cw-home.has-motion .cw-home-finishes .cw-motion-reveal,
.cw-home.has-motion .cw-home-gallery .cw-motion-reveal,
.cw-home.has-motion .cw-home-programs .cw-motion-reveal {
  --cw-reveal-duration: 1120ms;
  --cw-reveal-y: 8px;
}

.cw-home.has-motion.is-motion-ready .cw-motion-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cw-home.has-motion .cw-motion-hero {
  animation: cwHomeHeroIn 820ms var(--cw-motion-ease) both;
}

.cw-home.has-motion .cw-home-gallery__slide {
  transition:
    opacity 520ms var(--cw-motion-ease),
    visibility 520ms var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-hero__slide {
  visibility: hidden;
  z-index: 0;
  transition:
    opacity 1350ms var(--cw-motion-ease),
    visibility 0ms linear 1350ms;
}

.cw-home.has-motion .cw-home-hero__slide.is-entering,
.cw-home.has-motion .cw-home-hero__slide.is-active,
.cw-home.has-motion .cw-home-hero__slide.is-exiting {
  visibility: visible;
  transition-delay: 0ms;
}

.cw-home.has-motion .cw-home-hero__slide.is-entering {
  z-index: 2;
}

.cw-home.has-motion .cw-home-hero__slide.is-active {
  z-index: 2;
}

.cw-home.has-motion .cw-home-hero__slide.is-exiting {
  z-index: 1;
  opacity: 0;
}

.cw-home.has-motion .cw-home-hero__content {
  transform: translate3d(0, 0, 0);
}

.cw-home.has-motion .cw-motion-hero-title {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  filter: blur(3px);
  transition:
    opacity 520ms var(--cw-motion-ease),
    transform 520ms var(--cw-motion-ease),
    filter 520ms var(--cw-motion-ease);
  will-change: opacity, transform, filter;
}

.cw-home.has-motion .cw-home-hero__slide.is-active .cw-motion-hero-title {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
  animation: cwHomeTitleIn 980ms var(--cw-motion-ease) 260ms both;
}

.cw-home.has-motion .cw-home-hero__slide.is-entering .cw-motion-hero-title {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  filter: blur(3px);
}

.cw-home.has-motion .cw-home-hero__slide.is-exiting .cw-motion-hero-title {
  opacity: 0;
  transform: translate3d(0, -10px, 0);
  filter: blur(3px);
}

.cw-home.has-motion .cw-home-species__panels {
  --cw-species-enter-x: 8px;
  --cw-species-exit-x: -6px;
  --cw-species-fade-duration: 1050ms;
}

.cw-home.has-motion .cw-home-species__panels.is-moving-backward {
  --cw-species-enter-x: -8px;
  --cw-species-exit-x: 6px;
}

.cw-home.has-motion .cw-home-species__panel {
  opacity: 0;
  visibility: hidden;
  z-index: 0;
  transform: translate3d(var(--cw-species-enter-x), 0, 0);
  transition:
    opacity var(--cw-species-fade-duration) var(--cw-motion-ease),
    transform var(--cw-species-fade-duration) var(--cw-motion-ease),
    visibility 0ms linear var(--cw-species-fade-duration);
  will-change: opacity, transform;
}

.cw-home.has-motion .cw-home-species__panel.is-entering {
  opacity: 0;
  visibility: visible;
  z-index: 2;
  transform: translate3d(var(--cw-species-enter-x), 0, 0);
  transition-delay: 0ms;
}

.cw-home.has-motion .cw-home-species__panel.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 2;
  transform: translate3d(0, 0, 0);
  transition-delay: 0ms;
}

.cw-home.has-motion .cw-home-species__panel.is-exiting {
  opacity: 0.18;
  visibility: visible;
  z-index: 1;
  transform: translate3d(var(--cw-species-exit-x), 0, 0);
  pointer-events: none;
  transition-delay: 0ms;
}

.cw-home.has-motion .cw-home-species__tab:focus-visible {
  outline: 0;
  box-shadow: inset 0 0 0 2px rgba(var(--cw-dark-evergreen-rgb), 0.22);
}

.cw-home.has-motion .cw-home-intro__image,
.cw-home.has-motion .cw-home-finish-card__image,
.cw-home.has-motion .cw-home-program-card__image {
  transform: scale(1.06);
  transform-origin: center center;
  filter: brightness(1);
  transition:
    filter 560ms var(--cw-motion-ease),
    transform 550ms ease-in-out;
  will-change: filter, transform;
}

.cw-home.has-motion .cw-home-hero__image,
.cw-home.has-motion .cw-home-gallery__image,
.cw-home.has-motion .cw-home-species__image {
  transition: transform 1350ms var(--cw-motion-ease), filter 1350ms var(--cw-motion-ease);
  will-change: transform;
}

.cw-home.has-motion .cw-home-gallery__slide.is-active .cw-home-gallery__image {
  animation: cwHomeImageSettle 900ms var(--cw-motion-ease) both;
}

.cw-home.has-motion .cw-home-hero__image {
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0) scale(1.035);
  transform-origin: 50% 50%;
  filter: brightness(0.98) saturate(1.02);
  transition: filter 1350ms var(--cw-motion-ease);
  will-change: transform, filter;
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n + 1) .cw-home-hero__image {
  transform-origin: 48% 50%;
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n + 2) .cw-home-hero__image {
  transform-origin: 52% 48%;
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n) .cw-home-hero__image {
  transform-origin: 50% 52%;
}

.cw-home.has-motion .cw-home-hero__slide.is-active .cw-home-hero__image {
  filter: brightness(1) saturate(1.03);
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n + 1).is-active .cw-home-hero__image {
  animation: cwHomeHeroImagePanRight 8000ms cubic-bezier(0.25, 0.1, 0.25, 1) both;
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n + 2).is-active .cw-home-hero__image {
  animation: cwHomeHeroImagePanLeft 8000ms cubic-bezier(0.25, 0.1, 0.25, 1) both;
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n).is-active .cw-home-hero__image {
  animation: cwHomeHeroImagePanUp 8000ms cubic-bezier(0.25, 0.1, 0.25, 1) both;
}

.cw-home.has-motion .cw-home-hero__slide.is-exiting .cw-home-hero__image {
  animation: none;
  filter: brightness(0.94) saturate(1);
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n + 1).is-exiting .cw-home-hero__image {
  transform: translate3d(0.65%, 0, 0) scale(1.095);
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n + 2).is-exiting .cw-home-hero__image {
  transform: translate3d(-0.65%, 0, 0) scale(1.095);
}

.cw-home.has-motion .cw-home-hero__slide:nth-child(3n).is-exiting .cw-home-hero__image {
  transform: translate3d(0, -0.45%, 0) scale(1.095);
}

.cw-home.has-motion .cw-home-intro__media:hover .cw-home-intro__image,
.cw-home.has-motion .cw-home-finish-card:hover .cw-home-finish-card__image,
.cw-home.has-motion .cw-home-program-card:hover .cw-home-program-card__image {
  filter: brightness(0.9) saturate(0.98);
  transform: scale(1);
}

.cw-home.has-motion .cw-home-finish-card::after,
.cw-home.has-motion .cw-home-gallery__slide::after,
.cw-home.has-motion .cw-home-species__slide::after {
  transition: opacity var(--cw-motion-medium) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-finish-card:hover::after {
  opacity: 0.9;
}

.cw-home.has-motion .cw-home-finish-card__label,
.cw-home.has-motion .cw-home-program-card h3,
.cw-home.has-motion .cw-home-gallery__heading a,
.cw-home.has-motion .cw-home-gallery__caption a {
  transition:
    color var(--cw-motion-fast) var(--cw-motion-ease),
    opacity var(--cw-motion-fast) var(--cw-motion-ease),
    transform var(--cw-motion-medium) var(--cw-motion-ease),
    text-decoration-color var(--cw-motion-fast) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-finish-card:hover .cw-home-finish-card__label {
  transform: translate3d(0, -4px, 0);
}

.cw-home.has-motion .cw-home-program-card:hover h3 {
  color: var(--cw-green-hover);
  text-decoration-color: var(--cw-green-hover);
}

.cw-home.has-motion .cw-home-button {
  position: relative;
  overflow: hidden;
  transition:
    background var(--cw-motion-fast) var(--cw-motion-ease),
    border-color var(--cw-motion-fast) var(--cw-motion-ease),
    transform var(--cw-motion-fast) var(--cw-motion-ease),
    box-shadow var(--cw-motion-fast) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-button:hover,
.cw-home.has-motion .cw-home-button:focus-visible {
  transform: translate3d(0, -1px, 0);
  box-shadow: 0 10px 22px rgba(var(--cw-dark-evergreen-rgb), 0.16);
}

.cw-home.has-motion .cw-home-button:active {
  transform: translate3d(0, 0, 0);
  box-shadow: 0 5px 12px rgba(var(--cw-dark-evergreen-rgb), 0.12);
}

.cw-home.has-motion .cw-home-gallery__heading a span,
.cw-home.has-motion .cw-home-gallery__caption a {
  transition: transform var(--cw-motion-medium) var(--cw-motion-ease), color var(--cw-motion-fast) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-gallery__heading a:hover,
.cw-home.has-motion .cw-home-gallery__heading a:focus-visible {
  color: var(--cw-green-hover);
}

.cw-home.has-motion .cw-home-gallery__heading a:hover span,
.cw-home.has-motion .cw-home-gallery__heading a:focus-visible span {
  transform: translate3d(3px, 0, 0);
}

.cw-home.has-motion .cw-home-gallery__caption a:hover,
.cw-home.has-motion .cw-home-gallery__caption a:focus-visible {
  transform: translate3d(4px, 0, 0);
  opacity: 0.88;
}

.cw-home.has-motion .cw-home-species__tab {
  transition:
    background var(--cw-motion-medium) var(--cw-motion-ease),
    color var(--cw-motion-fast) var(--cw-motion-ease),
    opacity var(--cw-motion-fast) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-species__tab:hover:not(.is-active),
.cw-home.has-motion .cw-home-species__tab:focus-visible:not(.is-active) {
  color: var(--cw-green-hover);
  opacity: 0.82;
}

.cw-home.has-motion .cw-home-hero__arrow,
.cw-home.has-motion .cw-home-gallery__arrow,
.cw-home.has-motion .cw-home-programs__arrow {
  transition: opacity var(--cw-motion-fast) var(--cw-motion-ease), transform var(--cw-motion-fast) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-hero__arrow:hover,
.cw-home.has-motion .cw-home-hero__arrow:focus-visible,
.cw-home.has-motion .cw-home-gallery__arrow:hover,
.cw-home.has-motion .cw-home-gallery__arrow:focus-visible,
.cw-home.has-motion .cw-home-programs__arrow:hover,
.cw-home.has-motion .cw-home-programs__arrow:focus-visible {
  opacity: 0.74;
}

.cw-home.has-motion .cw-home-hero__arrow:hover,
.cw-home.has-motion .cw-home-hero__arrow:focus-visible,
.cw-home.has-motion .cw-home-gallery__arrow:hover,
.cw-home.has-motion .cw-home-gallery__arrow:focus-visible {
  transform: translateY(-50%) scale(1.04);
}

.cw-home.has-motion .cw-home-programs__arrow:hover,
.cw-home.has-motion .cw-home-programs__arrow:focus-visible {
  transform: translateY(-50%) scale(1.04);
}

.cw-home.has-motion .cw-home-hero__dots button {
  transition:
    background var(--cw-motion-fast) var(--cw-motion-ease),
    opacity var(--cw-motion-fast) var(--cw-motion-ease),
    transform var(--cw-motion-fast) var(--cw-motion-ease);
}

.cw-home.has-motion .cw-home-hero__dots button:hover,
.cw-home.has-motion .cw-home-hero__dots button:focus-visible {
  transform: scale(1.18);
  opacity: 1;
}

@keyframes cwHomeHeroIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes cwHomeTitleIn {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    filter: blur(3px);
  }

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

@keyframes cwHomeHeroImagePanRight {
  from {
    transform: translate3d(-0.65%, 0, 0) scale(1.03);
  }

  to {
    transform: translate3d(0.65%, 0, 0) scale(1.095);
  }
}

@keyframes cwHomeHeroImagePanLeft {
  from {
    transform: translate3d(0.65%, 0, 0) scale(1.03);
  }

  to {
    transform: translate3d(-0.65%, 0, 0) scale(1.095);
  }
}

@keyframes cwHomeHeroImagePanUp {
  from {
    transform: translate3d(0, 0.45%, 0) scale(1.03);
  }

  to {
    transform: translate3d(0, -0.45%, 0) scale(1.095);
  }
}

@keyframes cwHomeImageSettle {
  from {
    transform: scale(1.025);
  }

  to {
    transform: scale(1);
  }
}

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

  .cw-home.has-motion.is-motion-ready .cw-motion-reveal {
    opacity: 1;
    transform: none;
  }
}
