@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after {
  content: '';
  content: none; }

q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

html {
  height: 100%; }

body {
  position: relative;
  min-height: 100%;
  overflow-y: scroll;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  background-color: #000000;
  color: #ffffff; }
  body:before {
    content: "";
    display: block;
    position: fixed;
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-position: right top;
    background-size: cover; }
    @media screen and (max-width: 767px) {
      body:before {
        background-image: url("../img/bg_sp.jpg"); } }
    @media screen and (min-width: 768px) {
      body:before {
        background-image: url("../img/bg_pc.jpg"); } }

::selection {
  color: #fff;
  background: rgba(0, 0, 0, 0.8); }

a {
  text-decoration: none;
  color: #000; }

.wrapper {
  position: relative;
  padding: 1px 0;
  overflow-x: hidden; }

.container {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: 0 10px;
  max-width: 858px;
  margin-left: auto;
  margin-right: auto; }
  @media screen and (max-width: 767px) {
    .container {
      margin-bottom: 20%; } }
  @media screen and (min-width: 768px) {
    .container {
      margin-bottom: 12.5%; } }

.box {
  position: relative;
  background-color: rgba(0, 0, 0, 0.6); }

.footer {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  margin: 5% 0; }
  .footer-copy {
    font-size: 10px; }
    @media screen and (max-width: 767px) {
      .footer-copy {
        width: 100%;
        text-align: center;
        margin-bottom: 10px; } }
    .footer-copy small {
      margin-right: 1em; }
  .footer-d3p {
    margin-right: 10px; }
    .footer-d3p img {
      height: 30px; }
  .footer-xbox img {
    height: 24px; }

.logo {
  position: relative;
  line-height: 0;
  text-align: center; }
  @media screen and (max-width: 767px) {
    .logo {
      margin: 10% 0 20%; } }
  @media screen and (min-width: 768px) {
    .logo {
      margin: 10% 0 7.5%; } }
  .logo img {
    width: 60%;
    max-width: 650px; }
    @media screen and (min-width: 768px) {
      .logo img {
        width: 50%; } }

.ttl-01 {
  position: relative;
  line-height: 0; }
  @media screen and (max-width: 767px) {
    .ttl-01 {
      top: -30px;
      margin-bottom: -30px; } }
  @media screen and (min-width: 768px) {
    .ttl-01 {
      top: -50px;
      margin-bottom: -50px; } }
  @media screen and (max-width: 767px) {
    .ttl-01 img {
      height: 40px; } }
  @media screen and (min-width: 768px) {
    .ttl-01 img {
      height: 60px; } }

.product {
  position: relative; }
  @media screen and (max-width: 767px) {
    .product {
      padding: 5% 10px; } }
  @media screen and (min-width: 768px) {
    .product {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      padding: 5% 40px; } }
  .product-img {
    position: relative;
    line-height: 0;
    width: 35%;
    margin: 0 auto; }
    .product-img img {
      width: 100%; }
  .product-body {
    position: relative; }
    @media screen and (min-width: 768px) {
      .product-body {
        -webkit-box-flex: 1;
        -webkit-flex: 1;
            -ms-flex: 1;
                flex: 1;
        box-sizing: border-box;
        padding-left: 20px; } }
  .product-table {
    position: relative;
    font-size: 12px;
    width: 100%; }
    @media screen and (min-width: 768px) {
      .product-table {
        font-size: 14px; } }
    .product-table tr:nth-of-type(2n) {
      background: rgba(0, 0, 0, 0.5); }
    .product-table th, .product-table td {
      padding: .5em; }
      @media screen and (min-width: 768px) {
        .product-table th, .product-table td {
          padding: .5em 1em; } }
    .product-table th {
      text-align: left; }
    .product-table td {
      position: relative; }
      .product-table td:before {
        content: ":";
        display: block;
        position: absolute;
        left: -.5em;
        top: .5em; }
  .product-btn {
    position: relative;
    background: url("../img/pdc_btn.png") no-repeat center center;
    background-size: cover;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-size: 16px;
    color: #fff;
    width: 274px;
    height: 50px;
    margin: 5% auto 0; }

.story {
  background-image: url("../img/sty_bg.png");
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: cover;
  padding-bottom: 7.5%; }
  @media screen and (max-width: 767px) {
    .story-in {
      padding: 1px 10px; } }
  @media screen and (min-width: 768px) {
    .story-in {
      padding: 1px 110px; } }
  .story-txt {
    position: relative;
    margin: 7.5% 0 5%; }
    @media screen and (max-width: 767px) {
      .story-txt {
        font-size: 13px;
        line-height: 1.75; } }
    @media screen and (min-width: 768px) {
      .story-txt {
        font-size: 14px;
        line-height: 2.25; } }
    .story-txt span {
      letter-spacing: -0.2em; }
  .story-img {
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    line-height: 0; }
    .story-img img {
      width: 49%;
      height: 49%; }

.character {
  position: relative;
  line-height: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  .character li {
    cursor: pointer;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -webkit-align-items: flex-end;
        -ms-flex-align: end;
            align-items: flex-end; }
    .character li img {
      width: 100%; }
    @media screen and (max-width: 767px) {
      .character li {
        width: 48.5%;
        margin-top: 5%; } }
    @media screen and (min-width: 768px) {
      .character li {
        width: 32%;
        margin-top: 3%; } }

.character-box {
  padding: 0 10px 5%; }
  @media screen and (min-width: 768px) {
    .character-box {
      padding: 0 30px 30px; } }
  .character-box .ttl-01 {
    margin-left: -10px; }
    @media screen and (min-width: 768px) {
      .character-box .ttl-01 {
        margin-left: -30px; } }

.system {
  position: relative; }
  .system-kv {
    position: relative;
    line-height: 0;
    padding: 5% 2.5%; }
    .system-kv img {
      width: 100%; }
  @media screen and (max-width: 767px) {
    .system-in {
      padding: 1px 10px; } }
  @media screen and (min-width: 768px) {
    .system-in {
      padding: 1px 60px; } }
  .system-txt {
    position: relative;
    margin: 0 0 5%; }
    @media screen and (max-width: 767px) {
      .system-txt {
        font-size: 13px;
        line-height: 1.75; } }
    @media screen and (min-width: 768px) {
      .system-txt {
        font-size: 14px;
        line-height: 2.25; } }
  .system-bg {
    position: absolute; }
    @media screen and (min-width: 768px) {
      .system-bg {
        left: -25%; } }
  .system-body {
    position: relative; }
    @media screen and (min-width: 768px) {
      .system-body {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
            -ms-flex-pack: justify;
                justify-content: space-between; } }
  @media screen and (max-width: 767px) {
    .system-weapon {
      padding: 7.5% 10px 0; } }
  @media screen and (min-width: 768px) {
    .system-weapon {
      padding: 0 4% 5%;
      box-sizing: border-box;
      width: 50%; } }
  .system-ttl {
    position: relative;
    height: 50px;
    line-height: 1; }
    @media screen and (min-width: 768px) {
      .system-ttl {
        height: 90px; } }
    @media screen and (max-width: 767px) {
      .system-ttl--a img {
        height: 36px; } }
    @media screen and (min-width: 768px) {
      .system-ttl--a img {
        height: 72.5px; } }
    @media screen and (min-width: 768px) {
      .system-ttl--b {
        text-align: right; } }
    @media screen and (max-width: 767px) {
      .system-ttl--b img {
        height: 51px; } }
    @media screen and (min-width: 768px) {
      .system-ttl--b img {
        height: 102px; } }
  .system-name {
    position: relative;
    font-size: 14px;
    line-height: 2;
    font-weight: bold; }
    @media screen and (min-width: 768px) {
      .system-name {
        font-size: 16px; } }
  .system-img {
    position: relative;
    line-height: 0; }
    .system-img img {
      width: 100%; }
  .system-txt-02 {
    position: relative;
    margin: 2% 0 0%; }
    @media screen and (max-width: 767px) {
      .system-txt-02 {
        font-size: 13px;
        line-height: 1.6; } }
    @media screen and (min-width: 768px) {
      .system-txt-02 {
        font-size: 14px;
        height: 6.4em; } }

.screenshot {
  position: relative;
  line-height: 0;
  padding-bottom: 20px; }
  @media screen and (max-width: 767px) {
    .screenshot {
      margin-top: -20%;
      padding-bottom: 30px; } }
  @media screen and (min-width: 768px) {
    .screenshot {
      margin-top: -12.5%;
      padding-bottom: 30px; } }
  .screenshot li {
    line-height: 0;
    box-sizing: border-box;
    outline: none; }
    @media screen and (max-width: 767px) {
      .screenshot li {
        padding: 0 .5%; } }
    @media screen and (min-width: 768px) {
      .screenshot li {
        padding: 0 .5%; } }
    .screenshot li img {
      width: 100%; }
  .screenshot .slick-dots {
    bottom: 0; }
  .screenshot .slick-dots li button {
    padding: 0; }
    .screenshot .slick-dots li button:before {
      font-size: 10px;
      color: #fff; }
  @media screen and (max-width: 767px) {
    .screenshot .slick-prev {
      left: 3%; } }
  @media screen and (min-width: 768px) {
    .screenshot .slick-prev {
      left: 17%; } }
  @media screen and (max-width: 767px) {
    .screenshot .slick-next {
      right: 3%; } }
  @media screen and (min-width: 768px) {
    .screenshot .slick-next {
      right: 17%; } }
  .screenshot .slick-prev, .screenshot .slick-next {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    line-height: 1;
    z-index: 1; }
    @media screen and (max-width: 767px) {
      .screenshot .slick-prev, .screenshot .slick-next {
        top: 42.5%; } }
    @media screen and (min-width: 768px) {
      .screenshot .slick-prev, .screenshot .slick-next {
        width: 36px;
        height: 36px;
        top: 45%; } }
  .screenshot .slick-prev::before, .screenshot .slick-next::before {
    color: #fff; }
    @media screen and (max-width: 767px) {
      .screenshot .slick-prev::before, .screenshot .slick-next::before {
        font-size: 20px; } }
    @media screen and (min-width: 768px) {
      .screenshot .slick-prev::before, .screenshot .slick-next::before {
        font-size: 36px; } }

.modal {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.75);
  z-index: 100;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow-y: scroll;
  opacity: 0;
  left: 100%;
  -webkit-transition: opacity .6s ease;
  transition: opacity .6s ease; }
  .modal.is-show {
    left: 0%;
    opacity: 1; }
  .modal-container {
    display: block;
    box-sizing: border-box;
    padding: 0 10px;
    max-width: 960px;
    width: 100%;
    position: relative; }
  .modal-body {
    position: relative; }
    @media screen and (max-width: 767px) {
      .modal-body {
        width: 70%; } }
    @media screen and (min-width: 768px) {
      .modal-body {
        width: 60%; } }
  .modal-name {
    line-height: 0; }
    @media screen and (max-width: 767px) {
      .modal-name img {
        height: 45px; } }
  .modal-cv {
    color: #ee1796;
    padding-left: 10px;
    margin-bottom: 5%; }
    @media screen and (max-width: 767px) {
      .modal-cv {
        font-size: 10px; } }
    @media screen and (min-width: 768px) {
      .modal-cv {
        font-size: 16px; } }
  .modal-txt {
    padding-left: 10px; }
    @media screen and (max-width: 767px) {
      .modal-txt {
        font-size: 12px;
        line-height: 1.4; } }
    @media screen and (min-width: 768px) {
      .modal-txt {
        font-size: 14px;
        line-height: 1.6; } }
  .modal-img {
    position: absolute;
    line-height: 0; }
    @media screen and (max-width: 767px) {
      .modal-img img {
        height: 410px; } }
    @media screen and (max-width: 767px) {
      .modal--0 .modal-img {
        top: 0%;
        right: -5%; } }
    @media screen and (min-width: 768px) {
      .modal--0 .modal-img {
        top: -50%;
        right: -10%; } }
    @media screen and (max-width: 767px) {
      .modal--1 .modal-img {
        top: -10%;
        right: 2.5%; } }
    @media screen and (min-width: 768px) {
      .modal--1 .modal-img {
        top: -50%;
        right: 5%; } }
    @media screen and (max-width: 767px) {
      .modal--2 .modal-img {
        top: -25%;
        right: 5%; } }
    @media screen and (min-width: 768px) {
      .modal--2 .modal-img {
        top: -90%;
        right: 0%; } }
    @media screen and (max-width: 767px) {
      .modal--3 .modal-img {
        top: -50%;
        right: 5%; } }
    @media screen and (min-width: 768px) {
      .modal--3 .modal-img {
        top: -100%;
        right: 0%; } }
    @media screen and (max-width: 767px) {
      .modal--4 .modal-img {
        top: -30%;
        right: 2.5%; } }
    @media screen and (min-width: 768px) {
      .modal--4 .modal-img {
        top: -80%;
        right: 5%; } }
    @media screen and (max-width: 767px) {
      .modal--5 .modal-img {
        top: -30%;
        right: 2.5%; } }
    @media screen and (min-width: 768px) {
      .modal--5 .modal-img {
        top: -80%;
        right: 5%; } }
  .modal-close {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin: 5% 0 0 10px; }
    .modal-close a {
      display: block;
      position: relative;
      border: solid 1px #fff;
      color: #fff;
      font-size: 11px;
      line-height: 1;
      padding: .6em 28px .35em 1em;
      letter-spacing: .1em;
      cursor: pointer; }
      .modal-close a:before, .modal-close a:after {
        content: "";
        width: 12px;
        height: 0;
        border-top: solid 1px #fff;
        position: absolute;
        top: 50%;
        right: 10px; }
      .modal-close a:before {
        -webkit-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
                transform: rotate(45deg); }
      .modal-close a:after {
        -webkit-transform: rotate(-45deg);
            -ms-transform: rotate(-45deg);
                transform: rotate(-45deg); }

.auth {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: black;
  z-index: 200;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media screen and (max-width: 767px) {
    .auth-txt {
      font-size: 12px; } }
  @media screen and (min-width: 768px) {
    .auth-txt {
      font-size: 14px; } }
  .auth-btn {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin: 20px 0; }
    .auth-btn a {
      margin: 0 10px;
      display: block;
      line-height: 0;
      cursor: pointer; }
      .auth-btn a img {
        width: 100px; }
