@charset "utf-8";
/* ===================================================================
 File Name  : flexani.css
 Style Info : アニメーションスタイル指定
=================================================================== */

/*アニメーション*/
.ani_left {
  position: relative;
  opacity: 0;
  left: -30px;
}
.ani_left.active {
  animation: ani_left 1s ease 0.4s 1 forwards;
}
  @keyframes ani_left {
    100% {
      opacity: 1;
      left: 0;
    }
  }

.ani_right {
  position: relative;
  opacity: 0;
  right: -30px;
}
.ani_right.active {
  animation: ani_right 1s ease 0.4s 1 forwards;
}
  @keyframes ani_right {
    100% {
      opacity: 1;
      right: 0;
    }
  }

.ani_bottom {
  position: relative;
  display: block;
  opacity: 0;
  bottom: -30px;
}
.ani_bottom.active {
  animation: ani_bottom 1s ease 0.4s 1 forwards;
}
  @keyframes ani_bottom {
    100% {
      opacity: 1;
      bottom: 0;
    }
  }

.ani_zoom {
  position: relative;
  display: block;
  opacity: 0;
  transform: scale(0.7);
}
.ani_zoom.active {
  animation: ani_zoom 1s ease 0.4s 1 forwards;
}
  @keyframes ani_zoom {
    100% {
      opacity: 1;
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }

.ani_fade {
  position: relative;
  opacity: 0;
  will-change: opacity;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: opacity 1.3s linear 0.3s;
}
.ani_fade.active {
  opacity: 1;
}

.ani_blur {
  position: relative;
  opacity: 0;
  filter: blur(14px);
}

.ani_blur.active {
  animation: ani_blur 1.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.4s forwards;
}

@keyframes ani_blur {
  0% {
    opacity: 0;
    filter: blur(14px);
    transform: translateZ(0);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateZ(0);
  }
}

.ani_img {
  position: relative;
  overflow: hidden;
}
.ani_img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: translateX(0);
  transform-origin: left;
  z-index: 2;
  transition: transform 0.8s cubic-bezier(0.42, 0, 0.3, 1) 0.7s;
}
.ani_img.active::before {
  transform: translateX(100%);
}
.ani_img img {
  position: relative;
  display: block;
  opacity: 0;
  transform: scale(1.4);
}
.ani_img.active img {
  animation: ani_img 1.2s cubic-bezier(0.42, 0, 0.3, 1) 0.5s 1 forwards;
}
  @keyframes ani_img {
    100% {
      opacity: 1;
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  }


.ani_txt {
  display: inline-block;
}
.ani_txt .ani_char {
  opacity: 0;
  display: inline-block;
}

/* トピックス記事フェードイン */
.fade_order_list .fade_order_box {
  position: relative;
  opacity: 0;
}
.fade_order_list .fade_order_box.active {
  animation: topics_fade 1.3s linear var(--delay, 0.3s) forwards;
}
@keyframes topics_fade{
  0%{ opacity: 0; }
  100%{ opacity: 1; }
}

