@charset "utf-8";
/*-------anime------*/
/* JSが1文字ずつ包んだ span だけを対象にする。
   行やハイライト用の span を巻き込まないようクラスで限定している */
.js-split__char {
  opacity: 0;
  display: inline-block;
  transform: translateY(20px);
}

.js-split.is-active .js-split__char {
  animation: fadeUp 0.6s forwards;
}

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.a-ct {
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.a-ct::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  display: inline-block;
  background: #fff;
  top: 0;
  z-index: 5;
  transition: 0.8s;
  transition-delay: 0.4s;
}
.a-left::after {
  left: 0;
}
.a-left.is-visible::after {
  left: -100vw;
}
.a-right::after {
  right: 0;
}
.a-right.is-visible::after {
  right: -100vw;
}
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.8s ease-out,
    transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}
/* 並んだ要素を少しずつ遅らせる */
.delay-1 {
  transition-delay: 0.15s;
}
.delay-2 {
  transition-delay: 0.3s;
}
.delay-3 {
  transition-delay: 0.45s;
}

/* 動きを減らす設定の環境ではアニメーションさせない */
@media (prefers-reduced-motion: reduce) {
  .fade-up,
  .fade-up.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .a-ct::after {
    display: none;
  }
  .js-split__char {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
}
