/* INIT --------------------------------*/
html {
  line-height: 1.5;
  font-size: 6.25%;
  position: relative;
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
}

body {
  background: black;
  position: relative;
  width: 100%;
  font-size: 21rem;
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-family: "Zen Kurenaido", sans-serif;
}

* {
  margin: 0;
  padding: 0;
}

::-moz-selection {
  background: #ff0165;
  color: white;
  text-shadow: none;
}

::selection {
  background: #ff0165;
  color: white;
  text-shadow: none;
}

a {
  outline: none;
  text-decoration: underline;
  cursor: pointer;
}
a:link {
  color: #fff;
}
a:visited {
  color: #fff;
}

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

li {
  list-style: none;
}

.inner960 {
  max-width: 960px;
  height: 100%;
  margin: 0 auto 6%;
  -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;
}

.br-sp {
  display: none;
}

.br-pc {
  display: block;
}

.pop img, .pop-movie img {
  -webkit-transition: all 0.25s;
  transition: all 0.25s;
}
.pop:hover img, .pop-movie:hover img {
  opacity: 0.7;
}

.ss-wrapper {
  display: block;
  width: 100%;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.ss-wrapper img {
  vertical-align: bottom;
  width: 100%;
}

.ss-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  position: relative;
}
.ss-list__item {
  width: 49.25%;
  position: relative;
}
.ss-list__item:nth-of-type(2n) {
  margin-left: 1.5%;
}
.ss-list__item:nth-of-type(n + 3) {
  margin-top: 1.5%;
}

.slide-ss {
  width: 100%;
}
.slide-ss img {
  vertical-align: bottom;
  width: 100%;
}
.slide-ss__button-next {
  background: url(../img/bigarrow_next.svg) 0 0 no-repeat;
  background-size: cover;
  width: 8%;
  height: 0;
  padding-bottom: 15.0769230769%;
  position: absolute;
  right: 0;
  top: 42.5%;
}
.slide-ss__button-prev {
  background: url(../img/bigarrow_prev.svg) 0 0 no-repeat;
  background-size: cover;
  width: 8%;
  height: 0;
  padding-bottom: 15.0769230769%;
  position: absolute;
  left: 0;
  top: 42.5%;
}

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

.frame {
  -webkit-box-shadow: 0 0 5px 1px #8ee34e;
          box-shadow: 0 0 5px 1px #8ee34e;
}

/* FRAME --------------------------------*/
.wrapper {
  display: block;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.container {
  background-size: cover;
  position: relative;
}

.landing {
  width: 100%;
  position: relative;
}

.blackout {
  background-color: rgb(0, 0, 0);
  display: block;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 5500;
  opacity: 1;
  position: fixed;
  -webkit-transition: opacity 0.5s, visibility 1s;
  transition: opacity 0.5s, visibility 1s;
  visibility: visible;
  display: none;
}

main {
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}

.loaded .blackout {
  opacity: 0;
}
.loaded .blackout .loading-anime.displayend {
  display: none;
}

.loaded main {
  opacity: 1;
  z-index: 5000;
}

.bg-movie {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -2;
  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%);
}

/* GLNAV --------------------------------*/
.sp-menu-button {
  display: none;
}

.glNav {
  width: 100%;
  position: fixed;
  top: 0;
  margin: 0 auto;
  opacity: 1;
  z-index: 7000;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav.hide {
  opacity: 0;
  z-index: -1;
}
.glNav-corner {
  display: none;
}

.glNav-bg {
  display: block;
  position: absolute;
  width: 100%;
  height: 142px;
  top: 0;
  margin: 0 auto;
  background: url("../img/glnav_bg.png") 0% 0% no-repeat;
  background-repeat: repeat-x;
}

.glNav-offset {
  display: block;
  position: relative;
  width: 100%;
  top: 0;
  margin: 0 auto;
}
.glNav-offset:first-child {
  height: 142px;
}
.glNav-offset:last-child {
  height: 0px;
}

.glNav-wrapper {
  max-width: 1100px;
  height: 100%;
  margin: 0 auto;
  position: relative;
}

.glNav-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 1000px;
  margin: 0 auto;
  padding-top: 14px;
  position: relative;
}
.glNav-menu__item {
  display: block;
  position: relative;
  margin: 0 auto auto;
}
.glNav-button-top {
  background: url(../img/glnav_top.png) no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 91px;
  height: 55px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.glNav-button-top:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-top.selected {
  pointer-events: none;
}
.glNav-button-top.selected::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-top.selected img {
  background-position: 0 100%;
  opacity: 1;
  pointer-events: none;
}
.glNav-button-top.disable {
  opacity: 0.4;
  pointer-events: none;
}
.glNav-button-top img {
  background: url(../img/glnav_top.png) 0% 100% no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 91px;
  height: 55px;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav-button-top img:hover {
  background-position: 0 100%;
  opacity: 1;
}
.glNav-button-top img.disable {
  opacity: 0.4;
  pointer-events: none;
}

.glNav-button-story {
  background: url(../img/glnav_story.png) no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 123px;
  height: 54px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.glNav-button-story:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-story.selected {
  pointer-events: none;
}
.glNav-button-story.selected::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-story.selected img {
  background-position: 0 100%;
  opacity: 1;
  pointer-events: none;
}
.glNav-button-story.disable {
  opacity: 0.4;
  pointer-events: none;
}
.glNav-button-story img {
  background: url(../img/glnav_story.png) 0% 100% no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 123px;
  height: 54px;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav-button-story img:hover {
  background-position: 0 100%;
  opacity: 1;
}
.glNav-button-story img.disable {
  opacity: 0.4;
  pointer-events: none;
}

.glNav-button-character {
  background: url(../img/glnav_character.png) no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 213px;
  height: 48px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.glNav-button-character:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-character.selected {
  pointer-events: none;
}
.glNav-button-character.selected::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-character.selected img {
  background-position: 0 100%;
  opacity: 1;
  pointer-events: none;
}
.glNav-button-character.disable {
  opacity: 0.4;
  pointer-events: none;
}
.glNav-button-character img {
  background: url(../img/glnav_character.png) 0% 100% no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 213px;
  height: 48px;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav-button-character img:hover {
  background-position: 0 100%;
  opacity: 1;
}
.glNav-button-character img.disable {
  opacity: 0.4;
  pointer-events: none;
}

.glNav-button-system {
  background: url(../img/glnav_system.png) no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 158px;
  height: 54px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.glNav-button-system:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-system.selected {
  pointer-events: none;
}
.glNav-button-system.selected::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-system.selected img {
  background-position: 0 100%;
  opacity: 1;
  pointer-events: none;
}
.glNav-button-system.disable {
  opacity: 0.4;
  pointer-events: none;
}
.glNav-button-system img {
  background: url(../img/glnav_system.png) 0% 100% no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 158px;
  height: 54px;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav-button-system img:hover {
  background-position: 0 100%;
  opacity: 1;
}
.glNav-button-system img.disable {
  opacity: 0.4;
  pointer-events: none;
}

.glNav-button-gallery {
  background: url(../img/glnav_gallery.png) no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 154px;
  height: 55px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.glNav-button-gallery:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-gallery.selected {
  pointer-events: none;
}
.glNav-button-gallery.selected::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-gallery.selected img {
  background-position: 0 100%;
  opacity: 1;
  pointer-events: none;
}
.glNav-button-gallery.disable {
  opacity: 0.4;
  pointer-events: none;
}
.glNav-button-gallery img {
  background: url(../img/glnav_gallery.png) 0% 100% no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 154px;
  height: 55px;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav-button-gallery img:hover {
  background-position: 0 100%;
  opacity: 1;
}
.glNav-button-gallery img.disable {
  opacity: 0.4;
  pointer-events: none;
}

.glNav-button-special {
  background: url(../img/glnav_special.png) no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 149px;
  height: 57px;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}
.glNav-button-special:hover::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-special.selected {
  pointer-events: none;
}
.glNav-button-special.selected::after {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -3px;
  width: 3px;
  height: 36px;
  background: url(../img/glnav_separete.png) 0 0 no-repeat;
  -webkit-animation: glnav_separate 2s infinite;
          animation: glnav_separate 2s infinite;
}
.glNav-button-special.selected img {
  background-position: 0 100%;
  opacity: 1;
  pointer-events: none;
}
.glNav-button-special.disable {
  opacity: 0.4;
  pointer-events: none;
}
.glNav-button-special img {
  background: url(../img/glnav_special.png) 0% 100% no-repeat;
  display: block;
  position: relative;
  background-size: 100% auto;
  width: 149px;
  height: 57px;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.glNav-button-special img:hover {
  background-position: 0 100%;
  opacity: 1;
}
.glNav-button-special img.disable {
  opacity: 0.4;
  pointer-events: none;
}

/* FLOAT --------------------------------*/
.reserve-button-float {
  position: fixed;
  width: 14%;
  right: -2%;
  bottom: 205px;
  z-index: 1000;
  -webkit-transition: right 0.15s ease;
  transition: right 0.15s ease;
}
.reserve-button-float img {
  vertical-align: bottom;
  width: 100%;
}
.reserve-button-float:hover {
  right: -1.2%;
}

.sctop-button {
  display: block;
  width: 207px;
  height: 211px;
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  -webkit-transition: opacity 0.3s ease, visibility 1s ease, bottom 1s, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, visibility 1s ease, bottom 1s, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, visibility 1s ease, transform 0.3s ease, bottom 1s;
  transition: opacity 0.3s ease, visibility 1s ease, transform 0.3s ease, bottom 1s, -webkit-transform 0.3s ease;
  cursor: pointer;
  background-image: url("../img/btn_sctop.png?3");
  background-size: cover;
  background-position: 0px 0px;
}
.sctop-button.bannershown {
  bottom: 165px;
}

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

.sctop-button:hover {
  background-position: 0 100%;
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.sctop-button:active, .sctop-button:focus {
  background-position: 0 100%;
}

.sctop-button.show {
  opacity: 1;
  visibility: visible;
}

/* FOOTER --------------------------------*/
.footer {
  display: block;
  position: relative;
  width: 100%;
  z-index: -1;
  font-family: Arial, Helvetica, sans-serif;
  left: 0;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
  margin: 0;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.footer.show {
  z-index: 5000;
  opacity: 1;
}

.footer-wrapper {
  background: url("../img/footer_bg.png") 50% 0% no-repeat;
  background-size: cover;
  width: 100%;
  color: white;
  padding: 17% 0 1%;
  position: relative;
  border-left: none;
  border-right: none;
}

.sns-button {
  display: block;
  position: fixed;
  width: 50px;
  height: 150px;
  top: 142px;
  right: 6px;
  z-index: -1;
  opacity: 0;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}
.sns-button.show {
  z-index: 7000;
  opacity: 1;
}
.sns-button__item {
  position: relative;
  width: 100%;
  margin: 6px auto;
}
.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.8333333333%;
}
.official-sns__item img {
  width: 100%;
}
.official-sns__item:not(:last-of-type) {
  margin-right: 1%;
}

.copy-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 3%;
  font-size: 0.5em;
}

/* NEW --------------------------------*/
/* common */
.common-window__caption.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 10%;
  height: 0;
  padding-bottom: 4.0506329114%;
  position: absolute;
  top: -15%;
  left: -1%;
  bottom: auto;
  right: auto;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

.select-buttons__item.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 14%;
  height: 0;
  padding-bottom: 5.6708860759%;
  position: absolute;
  top: -17%;
  left: 1%;
  bottom: auto;
  right: auto;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

/* top */
.glNav-button-top.new:before,
.glNav-button-story.new:before,
.glNav-button-character.new:before,
.glNav-button-system.new:before,
.glNav-button-gallery.new:before,
.glNav-button-special.new:before,
.glNav-button-special.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 79px;
  height: 0;
  padding-bottom: 32px;
  position: absolute;
  top: -8px;
  left: auto;
  bottom: auto;
  right: -32px;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

.main-banner-item.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 79px;
  height: 0;
  padding-bottom: 32px;
  position: absolute;
  top: -3%;
  left: auto;
  bottom: auto;
  right: 0%;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

.topics-card.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 79px;
  height: 0;
  padding-bottom: 32px;
  position: absolute;
  top: 0%;
  left: 1%;
  bottom: auto;
  right: auto;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

.common-image-container.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 79px;
  height: 0;
  padding-bottom: 32px;
  position: absolute;
  top: -3%;
  left: auto;
  bottom: auto;
  right: -4%;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

.movie-item.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 18%;
  height: 0;
  padding-bottom: 7.2911392405%;
  position: absolute;
  top: -5%;
  left: auto;
  bottom: auto;
  right: -1%;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

.common-submenu.new:before {
  content: "";
  display: block;
  background: url(../img/new.png) 0 0 no-repeat;
  background-size: cover;
  width: 79px;
  height: 0;
  padding-bottom: 32px;
  position: absolute;
  top: 0%;
  left: auto;
  bottom: auto;
  right: 0%;
  pointer-events: none;
  z-index: 100;
  -webkit-animation: anim-new 1.5s infinite ease;
          animation: anim-new 1.5s infinite ease;
}

#cv_particle {
  position: fixed;
  top: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.5s linear, -webkit-filter 0.5s linear;
  -webkit-transition: opacity 0.5s linear, -webkit-filter 0.5s linear;
  transition: opacity 0.5s linear, filter 0.5s linear;
  transition: opacity 0.5s linear, filter 0.5s linear, -webkit-filter 0.5s linear;
}