:root {
  --wm-blue: #008ff0;
  --wm-ease: cubic-bezier(0.18, 0.8, 0.2, 1);
  --wm-soft-ease: cubic-bezier(0.2, 0.72, 0.22, 1);
}

.wm-line {
  display: block;
  max-width: 100%;
  margin-block: -0.07em;
  padding-block: 0.07em;
  overflow: hidden;
}

.wm-line-inner {
  display: inline-block;
  max-width: 100%;
  transform-origin: left bottom;
}

html.wm-motion .wm-hero-heading .wm-line-inner {
  opacity: 0;
  transform: translateY(108%);
}

html.wm-motion body.wm-motion-ready .wm-hero-heading .wm-line-inner {
  animation: wm-editorial-line 860ms var(--wm-ease) both;
  animation-delay: calc(120ms + (var(--wm-line-index, 0) * 115ms));
}

html.wm-motion .wm-hero-support {
  opacity: 0;
  transform: translateY(20px);
}

html.wm-motion body.wm-motion-ready .wm-hero-support {
  animation: wm-soft-rise 680ms var(--wm-soft-ease) both;
  animation-delay: var(--wm-hero-delay, 500ms);
}

html.wm-motion .home .slick-slide .slick-content {
  opacity: 0;
  transform: translateY(22px);
}

html.wm-motion body.wm-motion-ready.home .slick-slide.slick-active .slick-content {
  animation: wm-soft-rise 760ms var(--wm-soft-ease) both;
  animation-delay: 160ms;
}

html.wm-motion .wm-scroll-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 680ms var(--wm-soft-ease) var(--wm-delay, 0ms),
    transform 680ms var(--wm-soft-ease) var(--wm-delay, 0ms);
}

html.wm-motion .wm-scroll-reveal.wm-visible {
  opacity: 1;
  transform: none;
}

html.wm-motion .wm-scroll-reveal--left {
  transform: translateX(-26px);
}

html.wm-motion .wm-scroll-reveal--right {
  transform: translateX(26px);
}

html.wm-motion .wm-scroll-reveal--left.wm-visible,
html.wm-motion .wm-scroll-reveal--right.wm-visible {
  transform: none;
}

html.wm-motion .wm-editorial-scroll .wm-line-inner {
  opacity: 0;
  transform: translateY(105%);
}

html.wm-motion .wm-editorial-scroll.wm-editorial-in .wm-line-inner {
  animation: wm-editorial-line 780ms var(--wm-ease) both;
  animation-delay: calc(40ms + (var(--wm-line-index, 0) * 105ms));
}

.wm-blue-accent {
  position: relative;
}

.wm-blue-accent::after {
  position: absolute;
  bottom: -0.32em;
  left: 0;
  width: 58px;
  height: 3px;
  background: var(--wm-blue);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 560ms var(--wm-ease) 420ms;
}

.wm-blue-accent.wm-editorial-in::after {
  transform: scaleX(1);
}

.home .wm-blue-accent::after {
  left: 50%;
  margin-left: -29px;
}

.wm-image-reveal {
  overflow: hidden;
}

html.wm-motion .wm-image-reveal img {
  transform: scale(1.045);
  transition: transform 1.1s var(--wm-soft-ease);
}

html.wm-motion .wm-visible .wm-image-reveal img,
html.wm-motion .wm-image-reveal.wm-visible img {
  transform: scale(1);
}

html.wm-motion .projects-card:hover .wm-image-reveal img,
html.wm-motion .service-card:hover .wm-image-reveal img,
html.wm-motion .listing-item:hover .wm-image-reveal img {
  transform: scale(1.055);
}

.wm-count {
  font-variant-numeric: tabular-nums;
}

.wm-motion .button,
.wm-motion .content-button,
.wm-motion .wgf-button {
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.wm-motion .button:hover,
.wm-motion .content-button:hover,
.wm-motion .wgf-button:hover {
  box-shadow: 0 10px 24px rgba(0, 143, 240, 0.18);
  transform: translateY(-2px);
}

@keyframes wm-editorial-line {
  from {
    opacity: 0;
    transform: translateY(108%);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes wm-soft-rise {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 640px) {
  html.wm-motion .wm-scroll-reveal--left,
  html.wm-motion .wm-scroll-reveal--right {
    transform: translateY(22px);
  }

  html.wm-motion .wm-scroll-reveal--left.wm-visible,
  html.wm-motion .wm-scroll-reveal--right.wm-visible {
    transform: none;
  }

  .wm-blue-accent::after {
    width: 46px;
  }

  .home .wm-blue-accent::after {
    margin-left: -23px;
  }
}

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

  html.wm-motion .wm-hero-heading .wm-line-inner,
  html.wm-motion .wm-hero-support,
  html.wm-motion .home .slick-slide .slick-content,
  html.wm-motion .wm-scroll-reveal,
  html.wm-motion .wm-editorial-scroll .wm-line-inner {
    opacity: 1 !important;
    transform: none !important;
  }

  html.wm-motion .wm-image-reveal img,
  html.wm-motion .wm-visible .wm-image-reveal img,
  html.wm-motion .wm-image-reveal.wm-visible img {
    transform: none !important;
  }

  .wm-blue-accent::after {
    transform: scaleX(1) !important;
  }
}
