/*-----------------------------------------------------------------
	rotatecircle
----------------------------------------------------------------- */
@keyframes rotatecircle {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*-----------------------------------------------------------------
  vertical01
----------------------------------------------------------------- */
@keyframes vertical01 {
  0% {
    transform: translateY(-15px) translateX(-15px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical02 {
  0% {
    transform: translateY(-10px) translateX(-10px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical03 {
  0% {
    transform: translateY(-10px) translateX(10px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical03 {
  0% {
    transform: translateY(-8px) translateX(-8px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical04 {
  0% {
    transform: translateY(8px) translateX(8px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
/*-----------------------------------------------------------------
  fadeUp/fadeDown
----------------------------------------------------------------- */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeInOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(8%);
  }
  to {
    opacity: 1;
    transform: translateY(0%);
  }
}
@keyframes fadeUp2 {
  from {
    opacity: 0;
    transform: translateY(2%);
  }
  to {
    opacity: 1;
    transform: translateY(0%);
  }
}
@keyframes fadeDown {
  from {
    opacity: 0;
    transform: translateY(-8%);
  }
  to {
    opacity: 1;
    transform: translateY(0%);
  }
}
@keyframes Down {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0%);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(5%, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-5%, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/*-----------------------------------------------------------------
  swing
----------------------------------------------------------------- */
@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}
@keyframes swing2 {
  20% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 3deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -3deg);
  }
  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}
@keyframes swing_opacity {
  from {
    opacity: 0;
  }
  20% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 3deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -3deg);
  }
  to {
    transform: rotate3d(0, 0, 1, 0deg);
    opacity: 1;
  }
}
/*-----------------------------------------------------------------
  bounce
----------------------------------------------------------------- */
@keyframes bounce {
  from, 20%, 53%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0);
  }
  70% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0);
  }
  90% {
    transform: translate3d(0, -4px, 0);
  }
}
/*-----------------------------------------------------------------
  scale
----------------------------------------------------------------- */
@keyframes scale {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/*-----------------------------------------------------------------
  loading
----------------------------------------------------------------- */
@keyframes loading {
  from {
    transform: translateY(0%);
    opacity: 1;
    visibility: visible;
  }
  to {
    visibility: hidden;
    transform: translateY(-100%);
  }
}
/*-----------------------------------------------------------------
  loading
----------------------------------------------------------------- */
@keyframes grayscale {
  from {
    filter: grayscale(100%) blur(0px);
  }
  to {
    filter: grayscale(0%) blur(0px);
  }
}
/*-----------------------------------------------------------------
  bounceInLeft
----------------------------------------------------------------- */
@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(-10%, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }
  75% {
    transform: translate3d(-10px, 0, 0);
  }
  90% {
    transform: translate3d(5px, 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}
/*-----------------------------------------------------------------
  item
----------------------------------------------------------------- */
@keyframes item {
  from {
    opacity: 0;
    transform: scale(0.8);
    position: relative;
    top: -40px;
  }
  to {
    opacity: 1;
    transform: scale(1);
    top: 0px;
  }
}
/*-----------------------------------------------------------------
  vertical01
----------------------------------------------------------------- */
@keyframes vertical01 {
  0% {
    transform: translateY(-15px) translateX(-15px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical02 {
  0% {
    transform: translateY(-10px) translateX(-10px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical03 {
  0% {
    transform: translateY(-10px) translateX(10px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical03 {
  0% {
    transform: translateY(-8px) translateX(-8px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
@keyframes vertical04 {
  0% {
    transform: translateY(8px) translateX(8px);
  }
  100% {
    transform: translateY(0px) translateX(0px);
  }
}
/* =============================================
- loading
================================================ */
@media screen and (min-width: 768px) {
  body {
    opacity: 0;
  }

  body.onload {
    opacity: 1;
    animation: fadeIn 2s ease-in-out forwards;
    animation-fill-mode: both;
  }
}
@media screen and (min-width: 768px) {
  #mainVisual {
    min-height: 600px;
  }
  #mainVisual .title {
    opacity: 0;
    transition: all 1s ease-in-out;
    transition-delay: 1.5s;
  }
  #mainVisual .main {
    animation: fadeUp2 1.3s ease-in-out forwards;
    animation-fill-mode: both;
    animation-delay: 1s;
  }
  #mainVisual .dec02 {
    animation: vertical02 2.5s ease-in-out infinite alternate;
    animation-fill-mode: both;
  }
  #mainVisual .dec03 {
    animation: vertical01 2.5s ease-in-out infinite alternate;
    animation-fill-mode: both;
  }
  #mainVisual .dec04 {
    animation: vertical04 2.5s ease-in-out infinite alternate;
    animation-fill-mode: both;
  }

  .onload #mainVisual .title {
    opacity: 1;
  }

  .item_column .bottomcolumn .in:before {
    animation: vertical02 2.5s ease-in-out infinite alternate;
    animation-fill-mode: both;
  }
  .item_column .bottomcolumn .in:after {
    animation: vertical04 2.5s ease-in-out infinite alternate;
    animation-fill-mode: both;
  }
}
/* =============================================
- COMMON
================================================ */
@media screen and (min-width: 768px) {
  .item_column .itemHead .titleStyle02, .item_column .itemHead .outline_text {
    opacity: 0;
    transition: all 1s ease-in-out;
  }
  .item_column .itemHead .in:before {
    opacity: 0;
    transition: all 0.8s ease-in-out;
    transition-delay: 0.6s;
  }
  .item_column .itemHead.on .titleStyle02, .item_column .itemHead.on .outline_text {
    opacity: 1;
  }
  .item_column .itemHead.on .in:before {
    opacity: 1;
  }
  .item_column .itemHead .img {
    transform: translateY(3%);
    opacity: 0;
    transition: all 0.8s ease;
  }
  .item_column .itemHead .img.on {
    transform: translateY(0%);
    opacity: 1;
  }
}
@media screen and (min-width: 768px) {
  .boxlayout01 .box {
    opacity: 0;
    transition: all 0.8s ease-in-out;
  }
  .boxlayout01 .box:nth-child(0) {
    transition-delay: 0s;
  }
  .boxlayout01 .box:nth-child(1) {
    transition-delay: 0.25s;
  }
  .boxlayout01 .box:nth-child(2) {
    transition-delay: 0.5s;
  }
  .boxlayout01 .box:nth-child(3) {
    transition-delay: 0.75s;
  }
  .boxlayout01 .box:nth-child(4) {
    transition-delay: 1s;
  }
  .boxlayout01 .box.on {
    transform: translateY(0%);
    opacity: 1;
  }
}