/* アニメーション */
/* 写真が横からすっと出てくるやつ */
.in_hidari,
.in_migi,
.in_ue {
  opacity: 0;
}
.in_hidari.is-active {
  animation: slideIn_L 1s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
}
@keyframes slideIn_L {
  0% {
    transform: translateX(-450px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  40%,
  100% {
    opacity: 1;
  }
}
.in_migi.is-active {
  animation: slideIn_R 1s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
}
@keyframes slideIn_R {
  0% {
    transform: translateX(450px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  40%,
  100% {
    opacity: 1;
  }
}
.in_ue.is-active {
  animation: slideIn_T 2s cubic-bezier(0.5, 1, 0.25, 1) 1 forwards;
}
@keyframes slideIn_T {
  0% {
    transform: translateY(100px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  40%,
  100% {
    opacity: 1;
  }
}

/* 背景からにゅっと出てくるやつ */

/*中の要素*/
.whitemarker .whitebox_items {
  opacity: 0;
}
.whitemarker.is-active .whitebox_items {
  animation-name: cntnshl2items;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
  position: relative;
  overflow: hidden;
}

@keyframes cntnshl2items {
  0%,
  50% {
    opacity: 0;
  }
  50.001%,
  100% {
    opacity: 1;
  }
}

.whitemarker {
  position: relative;
}
.whitemarker.is-active::before {
  animation-name: whitemarker;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  z-index: 5;
}

.cntns_hl3 .whitemarker.is-active::before {
  background: #0046a0;
}
@keyframes whitemarker {
  0% {
    transform-origin: left;
    transform: scaleX(0);
  }
  50% {
    transform-origin: left;
    transform: scaleX(1);
  }
  50.001% {
    transform-origin: right;
  }
  100% {
    transform-origin: right;
    transform: scaleX(0);
  }
}

/* 動くマーカー */
.marker {
  position: relative;
  font-weight: bold;
  display: inline;
  background: linear-gradient(transparent 50%, #82d2eb66 50%) no-repeat;
  background-size: 0 1.4em;
  transition: background-size 1s ease-out;
  padding-bottom: 0.1em;
  line-height: 1.4;
}
.marker.is-active {
  background-size: 100% 1.4em;
  transition: background-size 1s ease-out;
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.bgappearTrigger,
.bgUDextendTrigger,
.bgDUextendTrigger,
.bgRLextendTrigger,
.bgLRextendTrigger {
  opacity: 0;
}

/*==================================================
じわっ
===================================*/

/* ぼかしから出現 */
.blur {
  animation-name: blurAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

@keyframes blurAnime {
  from {
    filter: blur(10px);
    transform: scale(1.02);
    opacity: 0;
  }

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

.blurTrigger {
  opacity: 0;
}

/* 四角いアニメーション */
.anime-01 {
  width: fit-content;
  position: relative;
  margin: 0 auto 0 5%;
  z-index: -2;
  opacity: 0.6;
}
.anime-01 span {
  display: block;
}
.anime-01-1 {
  width: 120px;
  height: 120px;
  background: #0046a0;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.4;
}
@media screen and (max-width: 768px) {
  .anime-01-1 {
    width: 12vw;
    height: 12vw;
    position: absolute;
    top: 0;
    left: 0;
  }
}

.anime-01-1.is-active {
  animation: anime1-1 1s cubic-bezier(0.6, 1, 0.8, 1) 1 forwards;
}
@keyframes anime1-1 {
  20% {
    transform: translateX(120px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  100% {
    opacity: 0.4;
  }
}

.anime-01-2 {
  width: 180px;
  height: 180px;
  border: 2px solid #0046a0;
  position: absolute;
  top: 40px;
  left: 20px;
  opacity: 0.5;
}
@media screen and (max-width: 768px) {
  .anime-01-2 {
    width: 20vw;
    height: 20vw;
    position: absolute;
    top: 5vw;
    left: 5vw;
  }
}
.anime-01-2.is-active {
  animation: anime1-2 1s cubic-bezier(0.25, 1, 0.7, 1) 1 forwards;
}
@keyframes anime1-2 {
  20% {
    transform: translateX(180px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  100% {
    opacity: 0.5;
  }
}

.anime-02 {
  width: fit-content;
  position: relative;
  margin: 0 5% 0 auto;
  z-index: -2;
  opacity: 0.6;
}
.anime-02 span {
  display: block;
}
.anime-02-1 {
  width: 140px;
  height: 140px;
  background: #0046a0;
  position: absolute;
  top: 80px;
  left: -140px;
  opacity: 0.5;
}
@media screen and (max-width: 768px) {
  .anime-02-1 {
    width: 18vw;
    height: 18vw;
    position: absolute;
    top: 40px;
    left: -18vw;
  }
}
.anime-02-1.is-active {
  animation: anime2-1 1s cubic-bezier(0.6, 1, 0.9, 1) 1 forwards;
}
@keyframes anime2-1 {
  20% {
    transform: translateX(-140px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  100% {
    opacity: 0.5;
  }
}
.anime-02-2 {
  width: 180px;
  height: 180px;
  border: 2px solid #0046a0;
  position: absolute;
  top: 0;
  left: -200px;
  opacity: 0.4;
}
@media screen and (max-width: 768px) {
  .anime-02-2 {
    width: 12vw;
    height: 12vw;
    position: absolute;
    top: 0;
    left: -12vw;
  }
}
.anime-02-2.is-active {
  animation: anime2-2 1s cubic-bezier(0.25, 1, 0.7, 1) 1 forwards;
}
@keyframes anime2-2 {
  20% {
    transform: translateX(-180px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  100% {
    opacity: 0.4;
  }
}

/* ぽよよん2 */
.poyoyon {
  opacity: 0;
}
.poyoyon.is-active {
  animation: poyoyon 1s ease-in-out 1 forwards;
}

@keyframes poyoyon {
  0% {
    transform: scale(1, 1) translate(0, 0);
  }
  15% {
    transform: scale(0.98, 0.9) translate(0, 5px);
  }
  30% {
    transform: scale(1.02, 1) translate(0, 8px);
  }
  50% {
    transform: scale(0.98, 1.05) translate(0, -8px);
  }
  70% {
    transform: scale(1, 0.9) translate(0, 5px);
  }
  100% {
    transform: scale(1, 1) translate(0, 0);
  }
  0%,
  100% {
    opacity: 1;
  }
}
