
.animated {
	-webkit-animation-duration:1s;
	animation-duration:1s;
	-webkit-animation-fill-mode:both;
	animation-fill-mode:both;
}


.ani-linear {
	-webkit-animation-timing-function: linear;
	animation-timing-function: linear;
}

.ani-ease {
	-webkit-animation-timing-function: ease;
	animation-timing-function: ease;
}

.ani-easein {
	-webkit-animation-timing-function: ease-in;
	animation-timing-function: ease-in;
}

.ani-easeout {
	-webkit-animation-timing-function: ease-out;
	animation-timing-function: ease-out;
}

.ani-easeinout {
	-webkit-animation-timing-function: ease-in-out;
	animation-timing-function: ease-in-out;
}


[data-animation]{
  opacity: 0;
}

[data-animation].animated{
    opacity: 1;
}



/* 1. 나타나기 - 우선적용 */
/* 제자리, 위로, 아래로, 왼쪽으로, 오른쪽으로 */
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}




@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 20%, 0);
    transform: translate3d(0, 20%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 20%, 0);
    transform: translate3d(0, 20%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}




@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -20%, 0);
    transform: translate3d(0, -20%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -20%, 0);
    transform: translate3d(0, -20%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}




@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(20%, 0, 0);
    transform: translate3d(20%, 0, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(20%, 0, 0);
    transform: translate3d(20%, 0, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}




@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-20%, 0, 0);
    transform: translate3d(-20%, 0, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-20%, 0, 0);
    transform: translate3d(-20%, 0, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}


/* 2.당겨접기 */
/* 제자리, 위로, 아래로, 왼쪽으로, 오른쪽으로 */

@-webkit-keyframes perspective {
	0% {
		opacity:0;
		transform-origin:0 50%;
		transform:rotateX(90deg);
	}

	100% {
		opacity:1;
		transform-origin:0 0;
		transform:rotateX(0deg);
	}
}

@keyframes perspective {
	0% {
		opacity:0;
		transform-origin:0 0;
		transform:rotateX(90deg);
	}

	100% {
		opacity:1;
		transform-origin:0 0;
		transform:rotateX(0deg);
	}
}

.perspective {
	-webkit-backface-visibility:visible !important;
	backface-visibility:visible !important;
	-webkit-animation-name:perspective;
	animation-name:perspective;
}



@-webkit-keyframes perspectiveUp {
	0% {
		opacity:0;
		-webkit-transform-origin:0 100%;
		-webkit-transform:perspective(800px) rotateX(90deg);
	}

	100% {
		opacity:1;
		-webkit-transform-origin:0 100%;
		-webkit-transform:perspective(800px) rotateX(0deg);
	}
}

@keyframes perspectiveUp {
	0% {
		opacity:0;
		transform-origin:0 100%;
		transform:perspective(800px) rotateX(90deg);
	}

	100% {
		opacity:1;
		transform-origin:0 100%;
		transform:perspective(800px) rotateX(0deg);
	}
}

.perspectiveUp {
	-webkit-backface-visibility:visible !important;
	backface-visibility:visible !important;
	-webkit-animation-name:perspectiveUp;
	animation-name:perspectiveUp;
}




@-webkit-keyframes perspectiveDown {
	0% {
		opacity:0;
		-webkit-transform-origin:0 0;
		-webkit-transform:perspective(800px) rotateX(-90deg);
	}

	100% {
		opacity:1;
		-webkit-transform-origin:0 0;
		-webkit-transform:perspective(800px) rotateX(0deg);
	}
}

@keyframes perspectiveDown {
	0% {
		opacity:0;
		transform-origin:0 0;
		transform:perspective(800px) rotateX(-90deg);
	}

	100% {
		opacity:1;
		transform-origin:0 0;
		transform:perspective(800px) rotateX(0deg);
	}
}

.perspectiveDown {
	-webkit-backface-visibility:visible !important;
	backface-visibility:visible !important;
	-webkit-animation-name:perspectiveDown;
	animation-name:perspectiveDown;
}




@-webkit-keyframes perspectiveLeft {
	0% {
		opacity:0;
		-webkit-transform-origin:0 0;
		-webkit-transform:perspective(800px) rotateY(90deg);
	}

	100% {
		opacity:1;
		-webkit-transform-origin:0 0;
		-webkit-transform:perspective(800px) rotateY(0deg);
	}
}

@keyframes perspectiveLeft {
	0% {
		opacity:0;
		transform-origin:0 0;
		transform:perspective(800px) rotateY(90deg);
	}

	100% {
		opacity:1;
		transform-origin:0 0;
		transform:perspective(800px) rotateY(0deg);
	}
}

.perspectiveLeft {
	-webkit-backface-visibility:visible !important;
	backface-visibility:visible !important;
	-webkit-animation-name:perspectiveLeft;
	animation-name:perspectiveLeft;
}




@-webkit-keyframes perspectiveRight {
	0% {
		opacity:0;
		-webkit-transform-origin:100% 0;
		-webkit-transform:perspective(800px) rotateY(-90deg);
	}

	100% {
		opacity:1;
		-webkit-transform-origin:100% 0;
		-webkit-transform:perspective(800px) rotateY(0deg);
	}
}

@keyframes perspectiveRight {
	0% {
		opacity:0;
		transform-origin:100% 0;
		transform:perspective(800px) rotateY(-90deg);
	}

	100% {
		opacity:1;
		transform-origin:100% 0;
		transform:perspective(800px) rotateY(0deg);
	}
}

.perspectiveRight {
	-webkit-backface-visibility:visible !important;
	backface-visibility:visible !important;
	-webkit-animation-name:perspectiveRight;
	animation-name:perspectiveRight;
}








/* 3. 확대하기 */
@-webkit-keyframes zoomIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  50% {
    opacity: 1;
  }
}

@keyframes zoomIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  50% {
    opacity: 1;
  }
}

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}








/* 4.튕기며 나타나기 */
/* 제자리, 위로, 아래로, 왼쪽으로, 오른쪽으로 */
@-webkit-keyframes bounceIn {

  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    -webkit-transform: scale3d(.9, .9, .9);
    transform: scale3d(.9, .9, .9);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    -webkit-transform: scale3d(.97, .97, .97);
    transform: scale3d(.97, .97, .97);
  }

  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceIn {

  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3, .3, .3);
    transform: scale3d(.3, .3, .3);
  }

  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    -webkit-transform: scale3d(.9, .9, .9);
    transform: scale3d(.9, .9, .9);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    -webkit-transform: scale3d(.97, .97, .97);
    transform: scale3d(.97, .97, .97);
  }

  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}





@-webkit-keyframes bounceInUp {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
  }

  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInUp {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
  }

  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp;
}





@-webkit-keyframes bounceInDown {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0);
  }

  100% {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes bounceInDown {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0);
  }

  100% {
    -webkit-transform: none;
    transform: none;
  }
}

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown;
}





@-webkit-keyframes bounceInLeft {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0);
  }

  100% {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes bounceInLeft {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0);
  }

  100% {
    -webkit-transform: none;
    transform: none;
  }
}

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft;
}




@-webkit-keyframes bounceInRight {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0);
  }

  100% {
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes bounceInRight {

  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0);
  }

  100% {
    -webkit-transform: none;
    transform: none;
  }
}

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight;
}