#loading .up:after,
#loading .up:before {
  bottom: 30px;
}

#loading {
  position: fixed;
  z-index: 10000000000; 
  top: 0;
  left: 0;

  display: none;
  display: block;

  width: 100%;

  pointer-events: none;
}
@media screen and (min-width: 761px) {
  #loading {
    height: 100%;
  }
}
@media screen and (max-width: 760px) {
  #loading {
    height: 100vh;
  }
}
.tablet #loading {
  display: none;
}
#loading > div {
  position: absolute;

  width: 100%; 
  height: 50%;

  -webkit-transition: all .8s ease;
       -o-transition: all .8s ease;
          transition: all .8s ease;
  text-align: center;

  background-color: #fff;
}
#loading > div:before {
  position: absolute;

  display: block;

  width: 100%; 
  height: 100%;

  content: " ";
}
#loading > div:before {
  opacity: .1;
}
#loading .mask {
  position: absolute;
  left: 50%;

  overflow: hidden;

  width: 0; 
  height: 185px;
  margin: 0 0 0 -250px;

  -webkit-transition: width .4s ease;
       -o-transition: width .4s ease;
          transition: width .4s ease;
}
#loading .mask img {
  position: absolute;
  top: 0; 
  left: 0;
}
#loading .up {
  top: 0;
}
#loading .up .mask {
  bottom: 30px;

  -webkit-transition-delay: 0s;
       -o-transition-delay: 0s;
          transition-delay: 0s;
}
#loading .up.open:before {
  opacity: 1;
}
#loading .up:before,
#loading .up:after {
  bottom: 30px;

  -webkit-animation: fadeIn 2s ease 0s 1 normal;
          animation: fadeIn 2s ease 0s 1 normal;

  opacity: 1; 
  background: #fff url(../img/cmn/hlogo.png) no-repeat 48% 100%;
}
@media screen and (min-width: 761px) {
  #loading .up:before,
  #loading .up:after {
    background-size: 30% auto;
  }
}
@media screen and (max-width: 760px) {
  #loading .up:before,
  #loading .up:after {
    background-size: 65% auto;
  }
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
#loading .down {
  bottom: 0;
}
#loading .down .mask {
  top: 30px;
  right: 50%;
  left: auto;

  margin: 0 -250px 0 0;

  -webkit-transition-delay: .4s;
       -o-transition-delay: .4s;
          transition-delay: .4s;
}
#loading .down .mask img {
  right: 0; 
  left: auto;
}
#loading .bar {
  position: absolute;
  top: 50%;
  left: 0;

  width: 0;
  height: 1px;

  -webkit-transition: -webkit-transform 3s ease;
       -o-transition:         transform 3s ease;
          transition: -webkit-transform 3s ease;
          transition:         transform 3s ease;
          transition:         transform 3s ease, -webkit-transform 3s ease;
  -webkit-transform: translate(-100%);
      -ms-transform: translate(-100%);
          transform: translate(-100%); 

  background-color: #000;
}
#loading.is_start .bar {
  width: 100%; 

  -webkit-transform: translate(100%);
      -ms-transform: translate(100%);
          transform: translate(100%);
}
#loading.is_start .mask {
  width: 500px;
}
#loading.is_complete .up {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); 

  opacity: 0;
}
#loading.is_complete .down {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); 

  opacity: 0;
}
#loading.is_complete .bar {
  opacity: 0;
}
