@charset "utf-8";

.fain1 
{ animation-name: fadeIn; animation-delay: 0; animation-duration: 1s; animation-timing-function: ease-in-out; }
.fain2 
{ animation-name: fadeIn; animation-delay: 0; animation-duration: 2s; animation-timing-function: ease-in-out; }
.fain3 
{ animation-name: fadeIn; animation-delay: 0; animation-duration: 3s; animation-timing-function: ease-in-out; }
.fain4 
{ animation-name: fadeIn4; animation-delay: 0; animation-duration: 7s; animation-timing-function: ease-in-out; }

@keyframes fadeIn { 0% { opacity: 0; } 50% { opacity: 0; } 100% { opacity: 1; } }
@keyframes fadeIn4 { 0% { opacity: 0; } 80% { opacity: 0; } 100% { opacity: 1; } }

nav ul li.hit a::before { animation-name: hitline; animation-delay: 0; animation-duration: 3s; animation-timing-function: ease-in-out; }
@keyframes hitline { 0% { transform: scale(0, 1) } 70% { transform: scale(0, 1) } 100% { transform: scale(1, 1) } }


.faty { transform-origin:center top; animation:show 2s both; }
span.faty {display:inline-block;}
span.faty:nth-child(1) {animation-delay:2.4s;}
span.faty:nth-child(2) {animation-delay:2.8s;}
span.faty:nth-child(3) {animation-delay:3.2s;}
span.faty:nth-child(4) {animation-delay:3.6s;}
span.faty:nth-child(5) {animation-delay:4.0s;}
span.faty:nth-child(6) {animation-delay:4.4s;}
span.faty:nth-child(7) {animation-delay:4.8s;}
span.faty:nth-child(8) {animation-delay:5.2s;}
span.faty:nth-child(9) {animation-delay:5.6s;}
span.faty:nth-child(10) {animation-delay:6.0s;}
span.faty:nth-child(11) {animation-delay:6.4s;}
span.faty:nth-child(12) {animation-delay:6.8s;}
span.faty:nth-child(13) {animation-delay:7.2s;}
span.faty:nth-child(14) {animation-delay:7.6s;}
span.faty:nth-child(15) {animation-delay:8.0s;}
span.faty:nth-child(16) {animation-delay:8.4s;}
span.faty:nth-child(17) {animation-delay:8.8s;}
span.faty:nth-child(18) {animation-delay:9.2s;}
span.faty:nth-child(19) {animation-delay:9.8s;}
span.faty:nth-child(20) {animation-delay:10.0s;}
span.faty:nth-child(21) {animation-delay:10.4s;}
span.faty:nth-child(22) {animation-delay:10.8s;}
span.faty:nth-child(23) {animation-delay:11.2s;}
span.faty:nth-child(24) {animation-delay:11.4s;}
span.faty:nth-child(25) {animation-delay:11.8s;}

@keyframes show { 0% { transform:translate(0,.2em); opacity:0; } 50% { } 100% { transform:translate(0,0); opacity:1; }}


.eachTextAnime span{opacity: 0;}
.eachTextAnime.appeartext span{ animation:text_anime_on 1s ease-out forwards; }
@keyframes text_anime_on {
  0% {opacity:0;}
  100% {opacity:1;}
}

/*==================================================
ふわっ
===================================*/

/* その場で */
.fadeIn{
animation-name:fadeInAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 下から */

.fadeUp{ animation-name:fadeUpAnime; animation-duration:1.0s; animation-fill-mode:forwards; opacity:0; }

@keyframes fadeUpAnime{ from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); }}

/* 上から */

.fadeDown{
animation-name:fadeDownAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeDownAnime{
  from {
    opacity: 0;
  transform: translateY(-100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 左から */

.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:2s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(-100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* 左から2024 */

.fadeLeft2{
animation-name:fadeLeft2Anime;
animation-duration:4s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeft2Anime{
  from {
    opacity: 0;
  transform: translateX(-600px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}



/* 右から */

.fadeRight{
animation-name:fadeRightAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger{
    opacity: 0;
}

/*==================================================
パタッ
===================================*/


/* 下へ */
.flipDown{
animation-name:flipDownAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipDownAnime{
  from {
    transform: perspective(2500px) rotateX(100deg);
  opacity: 0;
  }

  to {
    transform: perspective(2500px) rotateX(0);
  opacity: 1;
  }
}


/* 左へ */
.flipLeft{
animation-name:flipLeftAnime;
animation-duration:1s;
animation-fill-mode:forwards;
perspective-origin:left center;
opacity:0;
}

@keyframes flipLeftAnime{
  from {
   transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
  opacity: 0;
  }

  to {
  transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
  opacity: 1;
  }
}


/* 左上へ */
.flipLeftTop{
animation-name:flipLeftTopAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipLeftTopAnime{
  from {
   transform: translate(-20px,80px) rotate(-15deg);
  opacity: 0;
  }

  to {
   transform: translate(0,0) rotate(0deg);
  opacity: 1;
  }
}

/* 右へ */
.flipRight{
animation-name:flipRightAnime;
animation-duration:1s;
animation-fill-mode:forwards;
perspective-origin:right center;
opacity:0;
}

@keyframes flipRightAnime{
  from {
   transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
  opacity: 0;
  }

  to {
  transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
  opacity: 1;
  }
}

/* 右上へ */
.flipRightTop{
animation-name:flipRightTopAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes flipRightTopAnime{
  from {
   transform: translate(-20px,80px) rotate(25deg);
   opacity: 0;
  }

  to {
   transform: translate(0,1) rotate(0deg);
  opacity: 1;
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.flipDownTrigger,
.flipLeftTrigger,
.flipLeftTopTrigger,
.flipRightTrigger,
.flipRightTopTrigger{
    opacity: 0;
}


/* 拡大 */
.zoomIn{ animation-name:zoomInAnime; animation-duration:1s; animation-fill-mode:forwards; }

@keyframes zoomInAnime{ from { transform: scale(0.8); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* 縮小 */
.zoomOut{
  animation-name:zoomOutAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
}

@keyframes zoomOutAnime{
  from {
  transform: scale(1.2);
  opacity: 0;
  }

  to {
    transform:scale(1);
  opacity: 1;
  }
}
 
.zoomInTrigger, .zoomOutTrigger{ 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;
  }
}

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

/*==================================================
スーッ（枠線が伸びて出現）
===================================*/

/*枠線が伸びて出現*/

.lineTrigger{
  position: relative; /* 枠線が書かれる基点*/
  opacity:0;
}

.lineTrigger.lineanime{
  animation-name:lineAnimeBase;
  animation-duration:1s;
  animation-fill-mode:forwards;
}

@keyframes lineAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;  
}
}

/*上下線*/
.lineTrigger::before,
.lineTrigger::after{
  position: absolute;
  content:"";
  width:0;
  height:1px;
  background:#333;/* 枠線の色*/
}

/*左右線*/
.line2::before,
.line2::after{
  position: absolute;
  content:"";
  width: 1px;
  height:0;
  background:#333;/* 枠線の色*/
}

/*上線*/
.lineTrigger::before {
  top:0;
  left:0;
}

.lineTrigger.lineanime::before {
  animation: lineAnime .5s linear 0s forwards;/*表示されて0秒後に上線が0.5秒かけて表示*/
}

/*右線*/
.line2::before{ 
  top:0;
  right:0;
}

.lineTrigger.lineanime .line2::before {
  animation: lineAnime2 .5s linear .5s forwards;/*表示されて0.5秒後に右線が0.5秒かけて表示*/
}

/*下線*/
.lineTrigger::after { 
  bottom:0;
  right:0;
}

.lineTrigger.lineanime::after {
  animation: lineAnime .5s linear 1s forwards;/*表示されて1秒後に下線が0.5秒かけて表示*/
}

/*左線*/
.line2::after{ 
  bottom:0;
  left:0;
}

.lineTrigger.lineanime .line2::after {
  animation: lineAnime2 .5s linear 1.5s forwards;/*表示されて1.5秒後に左線が0.5秒かけて表示*/
}

@keyframes lineAnime {
  0% {width:0%;}
    100%{width:100%;}
}

@keyframes lineAnime2 {
  0% {height:0%;}
    100%{height:100%;}
}

/*枠線内側の要素*/

.lineTrigger.lineanime .lineinappear{
  animation: lineInnerAnime .5s linear 1.5s forwards;/*1.5秒後に中央のエリアが0.5秒かけて表示*/
  opacity: 0;/*初期値を透過0にする*/ 
}

@keyframes lineInnerAnime{
  0% {opacity:0;}
    100% {opacity:1;}
}

/************* anime **************/

.zr1 { animation-delay: 0.3s;}
.zr2 { animation-delay: 0.6s;}
.zr3 { animation-delay: 0.9s;}
.zr4 { animation-delay: 1.2s;}
.zr5 { animation-delay: 1.5s;}
.zr6 { animation-delay: 1.8s;}
.zr7 { animation-delay: 2.1s;}
.zr8 { animation-delay: 2.4s;}
.zr9 { animation-delay: 2.7s;}
.zr10 { animation-delay: 3.0s;}
.zr11 { animation-delay: 3.3s;}
.zr12 { animation-delay: 3.6s;}

.dr1 { animation-duration: 0.5s; }
.dr1 { animation-duration: 1.0s; }
.dr3 { animation-duration: 1.5s; }
.dr4 { animation-duration: 2.0s; }


