@charset "UTF-8";
html, body, button, input, select, textarea {
    font-family:  'Special Elite', 'Noto Sans Japanese', cursive, sans-serif !important;
	letter-spacing: 1px;
}
.sp{
	display:none !important;
}
.pc{
	display:block !important;
}
/* --------------------------
           loading
-------------------------- */
#loader-bg {
	width: 100%;
	height: 100%;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #000;
  z-index: 55555555555555;
}
#load {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 200px;
  height: 200px;
  margin-top: -100px;
  margin-left: -100px;
  text-align: center;
  color: #fff;
  z-index: 55555555555556;
}
.sk-folding-cube {
  margin: 20px auto;
  width: 40px;
  height: 40px;
  position: relative;
  -webkit-transform: rotateZ(45deg);
          transform: rotateZ(45deg);
}

.sk-folding-cube .sk-cube {
  float: left;
  width: 50%;
  height: 50%;
  position: relative;
  -webkit-transform: scale(1.1);
      -ms-transform: scale(1.1);
          transform: scale(1.1); 
}
.sk-folding-cube .sk-cube:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both;
          animation: sk-foldCubeAngle 2.4s infinite linear both;
  -webkit-transform-origin: 100% 100%;
      -ms-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}
.sk-folding-cube .sk-cube2 {
  -webkit-transform: scale(1.1) rotateZ(90deg);
          transform: scale(1.1) rotateZ(90deg);
}
.sk-folding-cube .sk-cube3 {
  -webkit-transform: scale(1.1) rotateZ(180deg);
          transform: scale(1.1) rotateZ(180deg);
}
.sk-folding-cube .sk-cube4 {
  -webkit-transform: scale(1.1) rotateZ(270deg);
          transform: scale(1.1) rotateZ(270deg);
}
.sk-folding-cube .sk-cube2:before {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.sk-folding-cube .sk-cube3:before {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s; 
}
.sk-folding-cube .sk-cube4:before {
  -webkit-animation-delay: 0.9s;
          animation-delay: 0.9s;
}
@-webkit-keyframes sk-foldCubeAngle {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
            transform: perspective(140px) rotateX(-180deg);
    opacity: 0; 
  } 25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
            transform: perspective(140px) rotateX(0deg);
    opacity: 1; 
  } 90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
            transform: perspective(140px) rotateY(180deg);
    opacity: 0; 
  } 
}

@keyframes sk-foldCubeAngle {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
            transform: perspective(140px) rotateX(-180deg);
    opacity: 0; 
  } 25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
            transform: perspective(140px) rotateX(0deg);
    opacity: 1; 
  } 90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
            transform: perspective(140px) rotateY(180deg);
    opacity: 0; 
  }
}
.nav-toggle {
	font-family: 'Special Elite', sans-serif;
	letter-spacing: 0.1em;
}
.nav .col-md-6 {
	float: right;
	text-align: right;
}

.nav .col-md-6.navicon {
	float: left;
	text-align: left;
	position: fixed;
	top: 30px;
	left: 15px;
	z-index: 100;
}
.nav .nav-toggle {
	right: initial;
	left: 15px;
}
.nav .navicon p {
        margin: 27px 0 0 -7px;
}
.use-btn {
	font-family: 'Special Elite', sans-serif;
}
.learn-btn, .download-btn {
	font-family: 'Special Elite', sans-serif;
}
.overlay ul li a {
	font-family: 'Special Elite', 'Noto Sans Japanese', sans-serif;
}
.overlay ul.icon li a {
	font-family: 'Special Elite', 'Noto Sans Japanese', sans-serif;
}
/* --------------------------
           top banner
-------------------------- */
.top-bnr{
	opacity:0;
	transition-delay:1s;
	transition-duration:1.5s;
}
.comm_bnr{
	/*position:absolute;
		top: 23%;
		left: 2%;
		width: 9%;*/
    position: absolute;
    top: 34.7%;
    left: 2%;
    width: 9%;
}
.comm_bnr img{
	width:100%;
	height:auto;
}
.online_bnr{
	position:absolute;
	top: 37%;
	left: 2%;
	width: 9%;
}
.online_bnr img{
	width:100%;
	height:auto;
}
.novel_bnr{
	/*position:absolute;
	top: 37%;
	left: 2%;
	width: 9%;*/
	position: absolute;
    top: 47.1%;
    left: 2%;
    width: 9%;
}
.novel_bnr img{
	width:100%;
	height:auto;
}
.illust_bnr{
	/*position:absolute;
	top: 51%;
	left: 2%;
	width: 9%;*/
    position: absolute;
    top: 59.6%;
    left: 2%;
    width: 9%;
}
.illust_bnr img{
	width:100%;
	height:auto;
}
.pf_bnr{
    position: absolute;
    top: 22.1%;
    left: 2%;
    width: 9%;
}
.pf_bnr img{
	width:100%;
	height:auto;
}
.dvd_bnr{
    position: absolute;
    top: 50%;
    right: 8%;
    width: 14.5%;
}
.dvd_bnr img{
	width:100%;
	height:auto;
}


/* --------------------------
           comment
-------------------------- */
#review {
    padding:400px 0 300px;
	background:url(../img/comm_bg.jpg) no-repeat center center;
	background-size:cover;
}
#review h2{
	margin: 0 auto;
	width:60%;
	min-width:760px;
}
#review h2 img{
	width:100%;
	height:auto;
}
#review ul{
	list-style: none;
	padding: 0;
	width: 1170px;
	margin: 100px auto;
	text-align: center;
}
#review ul li{
	display: inline-block;
	margin: 50px 20px;
}
#review ul li:nth-child(n + 4){
	margin: 50px 100px;
}

/* --------------------------
       intorduction
-------------------------- */

#intro .dot {
    border: 2px solid rgba(255,255,255,0.4);
}
#intro .dot.is-selected {
	background: rgba(255,255,255,0.4);
	border:2px solid rgba(255,255,255,0);
}
#intro li:before {
	color: rgba(255,255,255,0.4);
}
#intro li.is-selected:before {
	color: #000;
}
#intro {
    padding:100px 0 0 0;
	background:url(../img/intro-story_bg.jpg) top center no-repeat #000;
	background-size:100% auto;
	position:relative;
	min-width:1170px;
}
#intro img{
	width:100%;
	height:auto;
}
#intro h2{
    position:absolute;
    width: 60%;
    margin: auto;
    left: 0;
    right: 0;
	max-width:760px;
	z-index:2;
}

#intro .bg-window{
	pointer-events: none;
	z-index:2;
	ba;
	position: absolute;
	top: 0;
	bottom:0;
	min-width:1170px;
}

.monster-shadow{
	position: absolute;
	z-index: 1;
	right: 0;
	width: 1920px;
	/*transition: all 2s ease-in-out;*/
	top: 0;
	height: 100%;
	overflow: hidden;
	bottom:0;
	/*margin-right:100%;*/
}
/*.monster-shadow img{
	margin-right:100%;
}*/

#intro .story-illust{
	position: relative;
	pointer-events: none;
	z-index:3;
	margin: -6% auto 0;
	width: 30%;
}
#intro .story-illust img{
	padding-top:60%;
}
#intro .features-slider {
    position: relative;
    padding-top: 25%;
    padding-bottom: 10%;
}

#intro .showcase-wrap {
    position: relative;
    padding: 0;
    min-height: auto;
	z-index:4;
}
#intro p {
	color: #fff;
	font-weight: 400;
	width: 48%;
	display: inline-block;
	vertical-align: top;
	margin: 0 0.5%;
}

#intro .imtro_img{
	display:none;
}

/* --------------------------
           gallery
-------------------------- */
#gallery{
	position:relative;
}
#gallery h2{
	margin: 50px auto;
	width: 25%;
	max-width: 300px;
}
#gallery h2 img{
	width:100%;
	height:auto;
}

.gallery-slide {
	width: 100%;
	margin: 0 auto;
	height: 1000px;
	position:relative;
}
.gallery-slide:after {
  content: "";
  display: block;
  clear: both;
}
.slideCell {
	background: #000;
	height: auto;
	line-height: 0;
	margin-bottom: 2px;
}
.slideCell:hover {
  background-color: #505050;
  border-color: #7c7c7c;
}
#slider-0,
#slider-1,
#slider-2,
#slider-3 {
	float:left; 
	margin:0; 
	width:25%; 
	height:100%; 
	overflow:hidden; 
	position:relative;
}
#slider-3 {
	float:right;
}
.slideFrame img {
	width:100%; 
	height:auto;
}

/* --------------------------
     production note
-------------------------- */
#note {
	background:url(../img/note_bg.jpg) no-repeat bottom right 15%;
	background-size:cover;
	position:relative;
}
#note h2 {
	margin: 125px auto;
	width: 70%;
	max-width: 500px;
}
#note h2 img {
	width:100%;
	height:auto;
}
#note .inner {
	width:41%;
	min-width:690px;
	margin:0 0 0 auto;
	background:rgba(0,0,0,0.7);
	height:100%;
	padding: 50px 0 160px;
	margin-bottom: 90px;
}
#note dl {
	width: 70%;
	color:#eae6b9;
	margin: 0 auto;
	max-width: 500px;
}
#note dd {
	margin: 0 0 45px 0;
}
#note dd a {
	color:#eae6b9;
	transition-duration:0.5s;
}
#note dd a:hover {
	color:#faf8dc;
}
#note dd:after {
	content: '>';
	display:inline-block;
	font-weight: bold;
	color: #fff;
	margin-left: 5px;
	font-size: 110%;
}
.white-bottom{
	position: absolute;
	bottom: -91px;
	width: 100%;
	pointer-events: none;
	z-index:10;
}
.white-bottom img{
	width:100%;
	height:auto;
}
/* ----------------------------------------------------------------
	note_dit
-----------------------------------------------------------------*/

.note_dit{
	padding:5%;
    padding-top: 15%;
}
#content01{
	background:url(../img/note_content01_bg.jpg) no-repeat;
	background-size:cover;
	background-position:12% top;
	color: #fff;
}

#content02{
	background:url(../img/note_content02_bg.jpg) no-repeat;
	background-size:cover;
	background-position:center ;
	color: #fff;
}

#content03{
	background:url(../img/note_content03_bg.jpg) no-repeat;
	background-size:cover;
	background-position: right center;
	color: #fff;
}

#content04{
	background:url(../img/note_content04_bg.jpg) no-repeat;
	background-size:cover;
	background-position:center;
	color: #fff;
}

#content05{
	background:url(../img/note_content05_bg.jpg) no-repeat;
	background-size:cover;
	background-position:center;
	color: #fff;
}

#content06{
	background:url(../img/note_content06_bg.jpg) no-repeat;
	background-size:cover;
	background-position:center;
	color: #fff;
}
.modal-contents{
	display:block;
	max-width: 650px;
	margin:0;
	padding: 3%;
	color: #000;
}
/*
#content02 .modal-contents{
	max-width: 440px;
}


#content03 .modal-contents{
	max-width: 440px;
}

#content04 .modal-contents{
	max-width: 800px;
	float: right;
}

#content06 .modal-contents{
	max-width: 800px;
	float: right;
}*/

#note .note_dit h3 {
	color:#eae6b9;
	line-height:1.5;
	margin:0 0 1em;
}

.note_dit p{
	width:100%;
	margin:0;
	padding:0;
	font-size:14px;
	line-height: 2em;
	color:#fff;
}

.close_a{
	position:fixed;
    top: 7%;
    left: 7%;
}

.close_button{
	width:50px;
	height:50px;
	margin:0;
	padding:0;
	display:block;
	cursor:pointer;
}

.modal-contents .close_button{
	width:150px;
	height:auto;
	margin:3% auto;
	padding:0;
	display:block;
}

.modal-contents span.border{
	display: block;
	margin: 0 auto 5%;
	padding: 0;
	width: 1px;
	height: 140px;
	background: #fff;
}

/* --------------------------
           cast
-------------------------- */
#cast {
    padding:100px 0 0 0;
	margin:0 auto;
	background:#fff;
	font-family: 'Special Elite', cursive,'Noto Sans Japanese', sans-serif;
	color:#1d287e;
}

#cast h2{
	margin: 50px auto;
	width: 25%;
	max-width: 300px;
}
#cast ul{
	max-width:1170px;
	margin:0 auto;
	text-align:center;
}
#cast ul li{
	display:inline-block;
	width: 35%;
	margin: 0 7% 3% 7%;
	vertical-align:top;
	text-align:left;
	position:relative;
}
#cast ul li img{
	width:100%;
	height:auto;
}
#cast ul li p{
	position:absolute;
	bottom:-15px;
	margin: 0;
	padding-left: 3em;
	z-index:3;
}
#cast ul li .name-ja{
	font-weight:600;
}
#cast ul li p span.small{
	font-size:75%;
}
#cast ul li:last-child{
	width: 70%;
	margin: 0 7%;
}
#cast ul li:last-child p{
	position:absolute;
	right:1em;
	left:auto;
	top: 20%;
}


/* --------------------------
           staff
-------------------------- */
#staff {
    padding:100px 0 150px 0;
	margin:0 auto;
	background:#fff;
	font-family: 'Special Elite', cursive,'Noto Sans Japanese', sans-serif;
	color:#652357;
}

#staff h2{
	margin: 50px auto;
	width: 30%;
	max-width: 360px;
}
#staff ul{
	max-width:1170px;
	margin:0 auto;
	text-align:center;
}
#staff ul li{
	display:inline-block;
	width: 35%;
	margin: 0 7% 3% 7%;
	vertical-align:top;
	text-align:left;
	position:relative;
}
#staff ul li img{
	width:100%;
	height:auto;
}
#staff ul li p{
	position:absolute;
	bottom:-5em;
	margin: 0;
	padding-left: 3em;
	z-index:3;
}
#staff ul li .name-ja{
	font-weight:600;
}
#staff ul li p span.small{
	font-size:75%;
}

/* --------------------------
           epilogue
-------------------------- */
#epilogue {
    padding: 0;
	width:100%;
	background-size:cover;
	min-height:50%;
	background:#000;
}
#epilogue img {
	width:100%;
}
.banner{
	text-align: center;
	background: #000;
	margin:0;
}

.banner li{
	display: inline-block;
	height: 75px;
	margin: 0;
	padding: 0;
}

.banner li img{
	display:block;
	height:100%;
}

/* --------------------------
           epilogue
-------------------------- */
#villing {
	width:90%;
	margin:0 auto;
}

/* --------------------------
          popup
-------------------------- */

.cast_staff{
	padding: 5% 10%;
	text-align: center;
	background:#fff;
	box-sizing:border-box;
}
.cast_staff img{
	width:100%;
	height:auto;
}

.cast_img{
	width: 50%;
	margin: 0 auto;
	padding-bottom: 3%;
}
.cast_img_l{
	width: 100%;
	margin: 0 auto;
	padding-bottom: 5%;
}

.cast_staff section{
	margin: 0 auto;
}

.cast_staff h2{
	font-size: 18px;
	margin: 0;
	padding: 0;
}

.cast_staff h2{
	font-size: 18px;
	margin: 0;
	padding: 0;font-weight: 700;
}

.cast_staff p{
	font-size: 14px;
	margin: 0;
	padding: 3% 0 0 0;
	color: #000;
	text-align:left;
}

.cast_staff p.conts{
	font-size: 12px;
	padding: 0.5em 0 0 0;
	color: #888;
	text-align:center;
}

.cast_staff .button_cg{
    width: 100px;
    padding: 0;
	margin: 0 auto;
	margin-top: 20%;
}

.cast_staff .button_cg a{
	display: block;
}

.cast_staff .button_cg img{
    padding: 0;
	margin: 0 auto;
}

.cast_staff .staff_img{
	border-radius: 50%;
}

/*-----------------------------------------------------
coment_etc
-----------------------------------------------------*/

.comment_page{
	color:#fff;
	text-align:center;
	background:url(../comment/img/comment_bg.jpg) no-repeat center top;
	background-size:cover;
	background-attachment:fixed;
}
.comment_page img{
	width:100%;
	height:auto;
}

.comment_page h2{
	margin: 50px auto 0;
	width: 75%;
	max-width: 450px;
}
.comment_page h3{
	margin: 0 auto 50px auto;
	width: 75%;
	max-width: 760px;
}

.comment_page section{
	margin-bottom:50px;
}
.comment_page p.fudo{
	margin-top: 1em;
	font-weight: 300;
	font-size: 12px;
	text-align:left;
	color:rgba(255,255,255,0.8);
}

.comment_page ul{
	width:90%;
	max-width:970px;
	margin:0 auto;
	padding: 0;
	list-style:none;
}
.comment_page ul li{
	margin-bottom:80px;
	border-bottom:solid 1px rgba(255,255,255,0.8);
	text-shadow:3px 3px 8px rgba(0, 0, 0, 0.5);
	font-weight:bold;
}
.comment_page ul li p.name{
	margin: 50px auto;
}
.comment_page ul li span{
	font-size:24px;
	color:#fff67f;
	font-weight:bold;
	line-height: 1.3em;
}
.button_top{
	border: solid 2px #fff;
	border-radius: 5px;
	text-align:center;
	width: 200px;
	margin: 50px auto;
	height: 50px;
	font-size:20px;
	line-height:54px;
}
.button_top a{
	display:block;
	text-decoration:none;
	color:#fff;
}