.nijisanji_logo {
  position: absolute;
  width: 160px;
  top: 5px;
  left: 5px;
}

.top_inner {
  position: relative;
  width: 94%;
  max-width: 1000px;
  padding: 2rem 0 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.top_image {
  position: relative;
  width: 58%;
  z-index: 3;
}

.top_logo {
  position: absolute;
  width: 42%;
  top: 15%;
  left: 2%;
  z-index: 2;
}

.top_chara {
  position: absolute;
  width: 40%;
  top: 2%;
  left: 3%;
  z-index: 2;
}

.top_kuji {
  position: absolute;
  width: 42%;
  bottom: 1%;
  left: 2%;
  z-index: 3;
}

.top_catch {
  position: absolute;
  width: 54%;
  bottom: 4%;
  right: 0;
  z-index: 3;
}

.top_cs {
  width: 100%;
  max-width: 850px;
  padding: 6rem 0 4rem;
  margin: 0 auto;
}

.top_logo_cs {
  width: 50%;
  margin: 0 auto 3rem;
}

.top_catch_cs {
  width: 60%;
  margin: 0 auto;
}

.slide_in_right {
  opacity: 0;
  animation-name: slide_in_right;
  animation-duration: .4s;
  animation-delay: 0s;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
  animation-timing-function: ease;
}

.sr {
  animation-name: slide_in_right ;
  animation-delay: .3s;
}

@keyframes slide_in_right  {
  from {
    transform: translate(50%, 0);
    opacity: 0;
  }

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

.slide_in_up {
  opacity: 0;
  animation-name: slide_in_up;
  animation-duration: .4s;
  animation-delay: .8s;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
  animation-timing-function: ease;
}

@keyframes slide_in_up  {
  from {
    transform: translate(0, 50%);
    opacity: 0;
  }

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

.zoom_in {
  animation-name: zoom_in;
  animation-duration: .6s;
  animation-delay: 0.3s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes zoom_in {
  0% {
    transform: scale(0.6);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@media screen and (min-width: 1px) and (max-width: 750px) {

  .top {
    position: relative;
    width: 100%;
    background-image: url(../img/common/sp_bg_1.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  
  
  .nijisanji_logo {
    position: absolute;
    width: 34%;
    top: 5px;
    left: 5px;
  }

  .top_inner {
    width: 100%;
    padding: 4rem 0 0;
  }
  
  .top_image {
    width: 68%;
  }
  
  .top_logo {
    width: 40%;
    top: 17%;
    left: 5%;
  }
  
  .top_chara {
    width: 38%;
    top: 9%;
    left: 6%;
  }
  
  .top_kuji {
    width: 35%;
    bottom: 22%;
    left: 2%;
  }
  
  .top_catch {
    width: 86%;
    bottom: 4%;
    right: 7%;
  }

  .top_cs {
    width: 100%;
    padding: 6rem 0 0;
  }
  
  .top_logo_cs {
    width: 68%;
    margin: 0 auto 1rem;
  }
  
  .top_catch_cs {
    width: 68%;
  }

}

@media screen and (min-width: 751px) and (max-width: 1024px) {
  .top {
    position: relative;
    width: 100%;
    background-image: url(../img/common/bg_1_l.png), url(../img/common/bg_1_r.png);
    background-position: center left, center right;
    background-repeat: no-repeat;
    background-size:26% auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }
    
  .nijisanji_logo {
    width: 20%;
    top: 5px;
    left: 5px;
  }

  .top_logo {
    width: 42%;
    top: 20%;
    left: 4%;
  }
  
  .top_chara {
    width: 40%;
    top: 7%;
    left: 5%;
  }
  
  .top_kuji {
    width: 42%;
    bottom: -2%;
    left: -2%;
  }

}

@media screen and (min-width: 1025px) {
  .top {
    position: relative;
    width: 100%;
    background-image: url(../img/common/bg_1_l.png), url(../img/common/bg_1_r.png);
    background-position: center left, center right;
    background-repeat: no-repeat;
    background-size: auto 90%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
    
}