:root {
  --ax-ease: cubic-bezier(.2, .8, .2, 1);
  --ax-ease-wipe: cubic-bezier(.7, 0, .2, 1);
  --ax-dur: .9s;
  --ax-dist: 45px;
}

html,
body {
  overflow-x: clip;
}

.ax-js [data-reveal] {
  opacity: 0;
  transition:
    opacity var(--ax-dur) ease,
    transform var(--ax-dur) var(--ax-ease),
    filter var(--ax-dur) ease,
    clip-path 1.1s var(--ax-ease-wipe);
  transition-delay: var(--d, 0s);
}

.ax-js [data-reveal="up"] { transform: translateY(var(--ax-dist)); }
.ax-js [data-reveal="down"] { transform: translateY(calc(var(--ax-dist) * -1)); }
.ax-js [data-reveal="left"] { transform: translateX(-60px); }
.ax-js [data-reveal="right"] { transform: translateX(60px); }
.ax-js [data-reveal="zoom"] { transform: scale(.85); }
.ax-js [data-reveal="zoom-rotate"] { transform: scale(.8) rotate(-8deg); }
.ax-js [data-reveal="blur"] { filter: blur(12px); transform: scale(1.04); }
.ax-js [data-reveal="flip"] { transform: perspective(900px) rotateX(35deg) translateY(30px); transform-origin: 50% 100%; }

.ax-js [data-reveal="wipe"] { opacity: 1; clip-path: inset(0 100% 0 0); }
.ax-js [data-reveal="wipe-up"] { opacity: 1; clip-path: inset(100% 0 0 0); }
.ax-js [data-reveal="wipe-center"] { opacity: 1; clip-path: inset(0 50% 0 50%); }

.ax-js [data-reveal].is-in {
  opacity: 1;
  transform: none;
  filter: none;
}

.ax-js [data-reveal^="wipe"].is-in {
  clip-path: inset(0 0 0 0);
}

.ax-js [data-split] .ax-mot {
  display: inline-block;
  opacity: 0;
  transform: translateY(.6em) rotate(4deg);
  transition: opacity .6s ease, transform .6s var(--ax-ease);
  transition-delay: calc(var(--d, 0s) + var(--i) * 55ms);
}

.ax-js [data-split].is-in .ax-mot {
  opacity: 1;
  transform: none;
}

.ax-js #axo-fg > .row.fg-space:not([data-no-anim]) {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity var(--ax-dur) ease, transform var(--ax-dur) var(--ax-ease);
}

.ax-js #axo-fg > .row.fg-space.is-in {
  opacity: 1;
  transform: none;
}

.ax-js #axo-fg > .row.fg-space:not([data-no-anim]) .img-cover {
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1.2s var(--ax-ease-wipe) .2s;
}

.ax-js #axo-fg > .row.fg-space.is-in .img-cover {
  clip-path: inset(0 0 0 0);
}

[data-count] {
  font-variant-numeric: tabular-nums;
}

[data-parallax] {
  will-change: transform;
}

.ax-js .ax-in-load {
  animation: axInLoad 1.2s var(--ax-ease) both;
  animation-delay: var(--d, .15s);
}

@keyframes axInLoad {
  from { opacity: 0; transform: translateY(30px); filter: blur(6px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}

.ax-hover-zoom { overflow: hidden; }
.ax-hover-zoom img { transition: transform .8s var(--ax-ease); }
.ax-hover-zoom:hover img { transform: scale(1.06); }

.ax-hover-line {
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat;
  transition: background-size .4s var(--ax-ease);
  text-decoration: none;
}
.ax-hover-line:hover,
.ax-hover-line:focus-visible { background-size: 100% 2px; text-decoration: none; }

.ax-hover-fill {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.ax-hover-fill::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--ax-fill, var(--second));
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform .45s var(--ax-ease);
}
.ax-hover-fill:hover::before,
.ax-hover-fill:focus-visible::before { transform: scaleX(1); }

.ax-hover-arrow .fas,
.ax-hover-arrow .fa,
.ax-hover-arrow svg { transition: transform .35s var(--ax-ease); }
.ax-hover-arrow:hover .fas,
.ax-hover-arrow:hover .fa,
.ax-hover-arrow:hover svg { transform: translateX(5px); }

.ax-reset,
.ax-reset *,
.ax-reset *::before,
.ax-reset *::after {
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .ax-js [data-reveal],
  .ax-js [data-split] .ax-mot,
  .ax-js #axo-fg > .row.fg-space,
  .ax-js #axo-fg .img-cover,
  .ax-js .ax-in-load {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    animation: none !important;
    transition: none !important;
  }
  [data-parallax] { transform: none !important; }
}
