html {
  line-height: 1.5;
  font-size: 6.25%;
  position: relative;
}

body {
  background: black;
  position: relative;
  font-size: 21rem;
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

body:-ms-input-placeholder {
  font-family: Meiryo, sans-serif;
}

* {
  margin: 0;
  padding: 0;
}

::-moz-selection {
  background: #ba2d7a;
  color: #e9f076;
}

::selection {
  background: #ba2d7a;
  color: #e9f076;
}

a {
  outline: none;
  text-decoration: underline;
  cursor: pointer;
}

a:link {
  color: white;
}

a:visited {
  color: white;
}

button {
  padding: 0;
  border: none;
  outline: none;
  background-color: transparent;
  cursor: pointer;
}

li {
  list-style: none;
}

/* Frame --------------------------------*/
.wrapper {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}

.bg-movie {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  overflow: hidden;
}

.bg-movie__movie {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 56.25vw;
  width: 177.777777778vw;
  min-height: 100%;
  min-width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.inner960 {
  max-width: 960px;
  height: 100%;
  margin: 0 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}

.inner1200 {
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}

/* Block --------------------------------*/
#cboxContent {
  border: 5px solid #ffa71c;
  border-radius: 5px;
}

.pop {
  display: block;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.image {
  vertical-align: bottom;
  margin: 0 auto;
  width: 100%;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.image-frame {
  border: 5px solid white;
}

.image-block {
  background: white;
  width: 100%;
  max-width: 720px;
  margin: 0 auto 0;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.image-block + .description__text {
  margin-top: 3%;
}

.image-list, .image-list-portrait {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
}

.image-list__item, .image-list-portrait__item {
  background: gray;
  width: 49%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 5px;
  position: relative;
}

.image-list__item .image-list-img, .image-list-portrait__item .image-list-img {
  width: 100%;
  vertical-align: bottom;
}

.image-list__item:nth-of-type(2n+1), .image-list-portrait__item:nth-of-type(2n+1) {
  margin-right: 2%;
}

.image-list__item:nth-of-type(n+3), .image-list-portrait__item:nth-of-type(n+3) {
  margin-top: 2%;
}

.pop img {
  opacity: 1;
}

.pop:hover img {
  opacity: 0.7;
}

.movie-block {
  width: 100%;
  max-width: 720px;
  margin: 0 auto 0;
  position: relative;
}

.movie {
  display: block;
  height: 0;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative;
  border-radius: 5px;
}

.movie img {
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.movie:before {
  content: "";
  background: url(../img/icon_play.png) 50% 50% no-repeat, rgba(0, 0, 0, 0.3);
  background-size: contain;
  display: block;
  width: 100%;
  height: 100%;
  z-index: 5;
  position: absolute;
  opacity: 1;
  -webkit-transition: opacity 0.15s;
  transition: opacity 0.15s;
}

.movie:hover:before {
  opacity: 0.5;
}

/* GlNav --------------------------------*/
.glNav {
  background: url(../img/bg_glnav.png?2) 50% 0 repeat-x;
  background-size: auto 100%;
  width: 100%;
  height: 222px;
  z-index: 5000;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: fixed;
  top: -7px;
  pointer-events: none;
  -webkit-animation: animation-glNav-bg 0.5s ease-in-out infinite;
          animation: animation-glNav-bg 0.5s ease-in-out infinite;
}

.glNav-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 1020px;
  margin: 0 auto;
}

.glNav-menu__item {
  position: relative;
}

a[class^="glNav-button"] {
  display: block;
  background-size: 100% auto;
  pointer-events: auto;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
}

a[class^="glNav-button"]:hover {
  background-position: 0 100%;
}

a[class^="glNav-button"][data-glNav="selected"] {
  background-position: 0 100%;
  pointer-events: none;
}

.glNav-button-top {
  width: 118px;
  height: 91px;
  background: url(../img/nav_top.png) 0 0 no-repeat;
}

.glNav-button-story {
  width: 178px;
  height: 83px;
  background: url(../img/nav_story.png) 0 0 no-repeat;
  background-size: cover;
}

.glNav-button-gamerule {
  width: 170px;
  height: 116px;
  background: url(../img/nav_gamerule.png) 0 0 no-repeat;
  background-size: cover;
}

.glNav-button-music {
  width: 194px;
  height: 81px;
  background: url(../img/nav_music.png) 0 0 no-repeat;
  background-size: cover;
}

.glNav-button-gallery {
  width: 207px;
  height: 96px;
  background: url(../img/nav_gallery.png) 0 0 no-repeat;
  background-size: cover;
}

.glNav-button-spec {
  width: 142px;
  height: 83px;
  background: url(../img/nav_spec.png) 0 0 no-repeat;
  background-size: cover;
}

.bgm-wrapper {
  width: 27.76042%;
  max-width: 533px;
  display: block;
  position: fixed;
  top: 40px;
  right: -3.5vw;
  z-index: 100;
}

.bgm-player {
  display: block;
  width: 100%;
}

.bgm-player__prev {
  display: block;
  width: 6.75422%;
  position: absolute;
  top: 33%;
  left: 27%;
  z-index: 10;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
}

.bgm-player__prev img {
  width: 100%;
  vertical-align: bottom;
}

.bgm-player__next {
  display: block;
  width: 6.75422%;
  position: absolute;
  top: 33%;
  right: 30%;
  z-index: 10;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
}

.bgm-player__next img {
  width: 100%;
  vertical-align: bottom;
}

.bgm-player__dj {
  background: url(../img/anm_heart_dj.png) 0 0 no-repeat;
  background-size: 100% auto;
  display: block;
  width: 30.20638%;
  height: 26.57744%;
  position: absolute;
  top: 32%;
  right: 37%;
  -webkit-animation: sprite-animation 0.5s steps(13) infinite;
          animation: sprite-animation 0.5s steps(13) infinite;
  z-index: 3;
}

.bgm-player__music {
  display: block;
  width: 59.47467%;
  -webkit-animation: animation-rotation 25s linear infinite;
          animation: animation-rotation 25s linear infinite;
  position: absolute;
  top: 13.5%;
  right: 22%;
  z-index: 2;
}

.bgm-player__base {
  width: 100%;
  position: relative;
}

[class^="bgm-play-button-"] {
  background-image: url(../img/btn_player.png);
  background-size: 100% auto;
  position: absolute;
  z-index: 10;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
}

[class^="bgm-play-button-"][data-playing="play"] {
  background-position: 0 0;
}

[class^="bgm-play-button-"][data-playing="pause"] {
  background-position: 0 100%;
}

.bgm-play-button-bgm-player {
  width: 10.31895%;
  height: 10.31895%;
  top: 54%;
  left: 43%;
}

.bgm-wrapper-sp {
  display: none;
}

.sp-menu-button {
  display: none;
}

/* Footer --------------------------------*/
.sctop-button {
  display: block;
  position: fixed;
  max-width: 310px;
  width: 16.14583vw;
  bottom: 0;
  right: 0;
  z-index: 1000;
  opacity: 0;
  -webkit-transform: translate(0, -100%);
          transform: translate(0, -100%);
  visibility: hidden;
  -webkit-transition: opacity 0.3s ease, visibility 1s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.3s ease, visibility 1s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.3s ease, visibility 1s ease, transform 0.4s ease;
  transition: opacity 0.3s ease, visibility 1s ease, transform 0.4s ease, -webkit-transform 0.4s ease;
  cursor: pointer;
}

.sctop-button img {
  width: 100%;
  vertical-align: bottom;
}

.sctop-button.show {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
}

.footer {
  background: url(../img/bg_footer_bottom.png) 0 100% repeat-x;
  background-color: #ffa71c;
  background-size: 100% auto;
  width: 100%;
  position: relative;
  margin: 0 auto 0;
  padding: 0.5% 0 1%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.footer:before {
  content: "";
  display: block;
  background: url(../img/bg_footer_top.png) 0 0 repeat-x;
  background-size: 100% auto;
  width: 100vw;
  height: 4.84375vw;
  position: absolute;
  bottom: 99%;
  left: 0;
}

.footer-reserve {
  width: 100%;
}

.footer-reserve__button {
  display: block;
  background: url(../img/btn_reserve.png) 0 0 no-repeat;
  background-size: 100% auto;
  width: 28.85417%;
  height: 0;
  padding-bottom: 4.47917%;
  margin: 0 auto 3%;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
}

.footer-reserve__button:hover {
  background-position: 0 100%;
}

.footer-purchase {
  width: 100%;
}

.footer-purchase__button {
  display: block;
  background: url(../img/btn_purchase.png) 0 0 no-repeat;
  background-size: 100% auto;
  width: 28.85417%;
  height: 0;
  padding-bottom: 4.47917%;
  margin: 0 auto 3%;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
}

.footer-purchase__button:hover {
  background-position: 0 100%;
}

.sns-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  margin-top: 1%;
}

.sns-button__item {
  position: relative;
  width: 5.20833%;
}

.sns-button__item img {
  vertical-align: bottom;
  width: 100%;
}

.sns-button__item + .sns-button__item {
  margin-left: 1%;
}

.official-sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 1% auto 0;
  width: 100%;
  position: relative;
}

.official-sns__item {
  width: 15.83333%;
}

.official-sns__item img {
  width: 100%;
}

.official-sns__item:not(:last-of-type) {
  margin-right: 1%;
}

.copy-area {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 3%;
}

.copy {
  color: black;
  font-size: 0.6em;
  font-family: Arial, Helvetica, sans-serif;
}

/* NEW icon ---------------*/
.new:after {
  content: "";
  display: block;
  background: url(../img/icon_new.png) 0 0 no-repeat;
  background-size: contain;
  position: absolute;
  -webkit-animation: animation-heartbeat 0.5s linear infinite;
          animation: animation-heartbeat 0.5s linear infinite;
  -webkit-transform-origin: center bottom;
          transform-origin: center bottom;
  height: 0;
  z-index: 50;
}

.swiper-slide.new:after {
  width: 40%;
  padding-bottom: 18.61386%;
  top: -1%;
  left: -1%;
}

.glNav-menu__item.new:after {
  width: 50%;
  padding-bottom: 23.26733%;
  bottom: -10%;
  left: -2%;
}

.description.new:after {
  width: 23%;
  padding-bottom: 10.70297%;
  top: -1%;
  left: -2%;
}

[class^="character-image-"].new:after {
  width: 16%;
  padding-bottom: 7.44554%;
  top: 17%;
  left: 28%;
}

[id^="creator-details-"].new:after {
  width: 16%;
  padding-bottom: 7.44554%;
  top: 2;
  left: 2%;
}

.creator-list__item.new:after {
  width: 50%;
  padding-bottom: 23.26733%;
  top: -3%;
  left: -8%;
}

.image-list__item.new:after, .new.image-list-portrait__item:after {
  width: 27%;
  padding-bottom: 12.56436%;
  top: -14%;
  left: -7%;
}

.movie-block.new:after {
  width: 23%;
  padding-bottom: 12.56436%;
  top: -12%;
  left: -7%;
}
