@charset "utf-8";
/*base
-----------------------------*/
* {
	box-sizing: border-box;
}
img {
	vertical-align: bottom;
}
html {
	font-size: 62.5%;
	-webkit-text-size-adjust: 100%;
}
body {
	background: #000;
	position: relative;
	line-height: 1.5;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; 
	font-size: 1.2rem;
	color: #333333;
}
body.fixed{
  position: fixed;
  width: 100%;
}

/*---------------------*/
table{
	width: 100%;
}
.w22per{width: 22%;}
.w78per{width: 78%;}




/*header
-----------------------------*/
header{
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 9;
}
#headerInner{
	width: 360px;
	margin: 0 auto;
	padding: 12px 0;
}
#logo{
	line-height: 0;
}

/*menu
------------------------------*/

.fixed{
  position: fixed;
  width: 100%;
}

#menu{
	position: relative;
	width: 100%;
	height: 100%;
	z-index: 999;
}
#menu .menuBtn{
	display: inline-block;
	position: fixed;
	right: 0;
	top: 0;
	width: 52px;
	height: 52px;
	background: #ea1b27;
	cursor: pointer;
	z-index: 9999;
}
body.hb_active #menu .menuBtn.slideup{
	top: 0;
}
body.hb_active #menu .menuBtn{
	top: 60px;
}
#menu .menuBtn img{
	position: relative;
	z-index: 9;
}
#menu.active .menuBtn{
	background: none;
}
#menu.active .menuBtn::after{
	content: "";
	position: absolute;
	display: inline-block;
	width: 0;
	height: 0;
	border-left: 105px solid transparent;
	border-top: 105px solid #ea1b27;
	top: 0;
	right: 0;
	z-index: 0;
}
#menu .menuOverlay{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.9);
	display: none;
	cursor: pointer;
}
#menu .menuWrapper{
	position: fixed;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 100%;
	opacity: 1;
	text-align: center;
	overflow: scroll;
}
#menu .menuWrapper .logo{
	margin-top: 40px;
}
#menu .menuWrapper .menuList{
	margin-top: 38px;
}
#menu .menuWrapper .menuList > li{
	position: relative;
	line-height: 0;
}
#menu .menuWrapper .menuList > li a{
	display: inline-block;
	padding: 15px 0;
}
.shareAreaWrapper{
	display: inline-block;
	margin-top: 24px;
}
.shareArea{
	width: 180px;
	margin: 0 auto;
	margin-bottom: 40px;
}
.shareArea dt{
	margin-bottom: 15px;
}
.shareArea > dd > ul{
	display: flex;
	justify-content: space-between;
}
#menu .store{
	margin-top: 20px;
}

#menu .new::after{
	display: inline-block;
	content: "";
	position: absolute;
	width: 16px;
	height: 16px;
	background: url(../images/common/common_ico_new.svg) no-repeat 0 0 /16px 16px;
	top: 14px;
	right: 17px;
}
/*#menu li:nth-of-type(1).new::after{
	right: 55px;
}
#menu li:nth-of-type(2).new::after{
	right: 49px;
}
#menu li:nth-of-type(3).new::after{
	right: 17px;
}
#menu li:nth-of-type(4).new::after{
	right: 42px;
}
#menu li:nth-of-type(5).new::after{
	right: 39px;
}
#menu li:nth-of-type(6).new::after{
	right: 62px;
}
*/


/*------------------------
main
------------------------*/
main{
	display: block;
	text-align: center;
	overflow: hidden;
}
.mainvisual{
	display: block;
	position: relative;
	width: 100%;
	height: 580px;
	background: url(../images/sp/mainvisual_bg.jpg) no-repeat top 0 left 50%/1000px 630px;
}
.mainvisual .playBtn{
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 265px;
}

.mainvisual .store{
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 35px;
}
.mainvisual .store > div{
	margin-top: 10px;
}
.ios{
	display: none;
}
.mainvisual .store > div.preopen{
	margin-top: 30px;
}

.contents{
	position: relative;
	background: #000;
	z-index: 9;
}

/*------------------------
common
------------------------*/

section{
	padding: 40px 0;
}
.btn{
	height: 40px;
	margin: 20px auto 0;
	padding: 0 16px;
	color: #fff;
	font-family: Arial, Helvetica, "sans-serif";
	font-size: 1.4rem;
	font-weight: bold;
}
.btn a,.btn button{
	position: relative;
	width: 100%;
	height: 100%;
	display: inline-block;
	padding: 8px;
	border: solid 1px #fff;
	color: #fff;
	text-align: center;
	text-decoration: none;
}
.btn a::before,.btn button::before{
	content: "";
	display: inline-block;
	position: relative;
	margin-right: 10px;
}

.btn a:active,.btn button:active{
	background-color: #f92234;
	border: solid 1px #f92234;
}

/*------------------------
slider
------------------------*/

.sliderWrapper{
	width: 100%;
	margin: 0 auto;
	position: relative;
}
.dots{
	display: flex;
	position: absolute;
	height: 10px;
	bottom: 7px;
	left: 50%;
	transform: translateX(-50%);
}
.dots > li + li{
	margin-left: 4px;
}
.dots > li > button{
	width: 16px;
	height: 4px;
	margin: 0;
	padding: 0;
	position: relative;
	background: none;
	border: none;
	text-indent: -9999px;
}
.dots > li > button::before{
	content: "";
	display: inline-block;
	position: absolute;
	width: 16px;
	height: 4px;
	transform: skew(-40deg);
	background: rgba(255,255,255,0.4);
	top: 0;
	left: 0;
}
.dots > li.slick-active > button::before{
	background-color: #f92234;
}

.arrows .slick-prev, .arrows .slick-next{
  width: 22px;
  height: 44px;
}
 .arrows button.slick-prev::before, .arrows button.slick-next::before{
  content: "";
}

button.slick-prev, button.slick-next {
    z-index:9;
}
.slick-prev{
	left: 16px;
}
.slick-prev img{
	transform: scale(-1,1);
}
.slick-next{
	right: 16px;
}

/*------------------------
contents
------------------------*/


#news .btn a{
	padding: 7px;
}
#news .btn a::before{
	background: url(../images/common/ico_btn_trailer.png) no-repeat 0 0/12px 16px;
	width: 20px;
	height: 18px;
	top: 5px;
	margin-right: 3px;
}
#news ul{
	width: 343px;
	margin: 10px auto 0;
}
#news ul a{
	display: block;
	padding: 11px 0 11px;
	color: #fff;
	font-size: 1.3rem;
	text-decoration: none;
}
#news ul li + li{
	border-top: 1px solid #1e1e1e;
}
#news dl{
	display: flex;
}
#news dd{
	position: relative;
	margin-left: 12px;
	padding-left: 70px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#news li dd::before{
	position: absolute;
	display: inline-block;
	width: 64px;
	height: 16px;
	top: 0;
	left: 0;
	padding-top: 2px;
	border-radius: 50px;
	color: #fff;
	font-size: 0.9rem;
	text-align: center;
}
#news li.news dd::before{
	content: "お知らせ";
	background-color: #2e4ed0;
}
#news li.event dd::before{
	content: "イベント";
	background-color: #13a24d;
}
#news li.mainte dd::before{
	content: "メンテナンス";
	background-color: #fb5a15;
}
#news li.update dd::before{
	content: "アップデート";
	background-color: #2696d2;
}

/*------------------------*/

#sns{
	position: relative;
}
#sns::before{
	content: "";
	display: inline-block;
	position: absolute;
	width: 375px;
	height: 1px;
	background: linear-gradient(to right, rgba(234,27,39,0) 1%,rgba(234,27,39,1) 50%,rgba(234,27,39,0) 100%);
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
#sns .btn a{
	padding: 7px;
}
#sns .btn a::before{
	background: url(../images/common/ico_btn_twitter.png) no-repeat 0 0/20px 18px;
	width: 20px;
	height: 18px;
	top: 3px;
}
.twitterTL{
	max-width: 500px;
	margin: 22px auto 0;
	padding: 0 16px;
}

/*------------------------*/

#story{
	width: 100%;
	height: 740px;
	background: url(../images/common/story_bg.jpg) no-repeat top 0 left 50%/1000px 740px;
} 
#story .txtBox{
	margin-top: 38px;
}
#story .txtBox > div + div{
	margin-top: 20px;
}
#story .txtBox > div > p{
	margin-top: 10px;
}

/*------------------------*/

#system{
	position: relative;
	padding: 0;
	overflow: hidden;
}
#system h2{
	position: absolute;
	top: 40px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9;
}
#system .sliderWrapper{
	margin-bottom: 0;
}
.slider-system div{
	position: relative;
	/*height: 520px;*/
}
.slider-system > div p{
	position: absolute;
	bottom: 35px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9;
}
.slider-system figure{
	position: relative;
	z-index: -9;
}

/*------------------------*/

#character{
	position: relative;
	height: 513px;
	background: url(../images/sp/chara_bg.jpg) no-repeat top 0 left 50%/1000px 587px;
	padding-bottom: 0;
	overflow: hidden;
}

#character h2{
	position: relative;
	z-index: 9;
}

/*chara-list*/

.chara-listWrapper{
	position: relative;
	width: 100%;
	margin-top: 20px;
}
.slider-character{
	width: 343px;
	margin: 0 auto;
}
.chara-list{
	width: 343px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
}
.chara-list li{
	position: relative;
	cursor: pointer;
}
.chara-list li::after{
	content: "";
	display: inline-block;
	position: absolute;
	width: 78px;
	height: 78px;
	border: solid 1px #ea1b27;
	top: 0;
	left: 0;
}
.chara-list li:nth-of-type(n+5){
	margin-top: 10px;
}
.chara-list li + li{
	margin-left: 7px;
}
.chara-list li:nth-of-type(4n+1){
	margin-left: 0;
}

/*chara-contents*/

.modal_character{
	position: relative;
	width: 100%;
	height: 120%;
	z-index: 9999;
}


.chara-contentsWrapper{
	position: fixed;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 120%;
	background: #000 url(../images/sp/chara_bg.jpg) no-repeat top 0 left 50%/1000px 587px;
	z-index: 9999;
	display: none;
}

.modal_close_btn{
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 999;
}
.chara-contentsWrapper .arrows{
	width: 100%;
	position: absolute;
	top: 40%;
	transform: translateY(-50%);
	z-index: 99;
}
.chara-contentsWrapper .arrows .prev img{
	transform: scale(-1,1);
}
.chara-contentsWrapper .arrows > div{
	position: absolute;
}
.chara-contentsWrapper .arrows .prev{
	left: 16px;
}
.chara-contentsWrapper .arrows .next{
	right: 16px;
}

.chara-contentsInner{
	position: relative;
	width: 315px;
	height: 620px;
	margin: 0 auto;
	text-align: left;
	color: #fff;
}

.chara-contents > div{
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	overflow-x: hidden;
	overflow-y: hidden;
	display: none;
}
.shadow{
	width: 1000px;
	height: 620px;
	background: url(../images/sp/chara_bg_cover.png) no-repeat top 0 left 50%/1000px 650px;
	position: absolute;
	top: 0;
	z-index: 9;
}

.chara-contents figure{
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
.chara-txt{
	width: 315px;
	position: absolute;
	bottom: 150px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
}
.chara-txt .btn{
	margin-top: 15px;
}
.name p{
	font-family: "Impact","Bebas Neue", sans-serif;
	color: #fff;
	font-size: 5rem;
	font-weight: bold;
	line-height: 0.9;
}
.name p:first-letter{
	color: #ea1b27;
}
.name + p{
	font-size: 1.8rem;
	font-weight: bold;
}
.name + p.small{
	font-size: 1.6rem;
}
.name + p + p{
	margin-top: 7px;
	line-height: 1.6;
}

#character .btn button{
	padding: 8px;
}
#character .btn button::before{
	background: url(../images/common/ico_btn_trailer.png) no-repeat 0 0/12px 16px;
	width: 12px;
	height: 16px;
	top: 3px;
}
#character .btn button:active{
	background-color: #f92234;
	border: solid 1px #f92234;
}
@media screen and (max-height: 619px), print {
	.chara-contents > div{
		overflow-y: scroll;
	}
}

/*------------------------*/

#movie .movContInner{
	margin-top: 20px;
}
#movie .tab-list{
	display: flex;
	border-bottom: solid 1px #ea1b27;
	
}
#movie .tab-list li{
	width: 100%;
	padding: 12px 0 14px;
	background-color: #1a1a1a;
}
#movie .tab-list li.current{
	background-color: #ea1b27;
}

#movie .tab-contents div.hide{
	display: none;
}

#movie .slider-movie{
	margin-top: 40px;
}
#movie .slider-movie li{
	position: relative;
}

#movie .slider-movie li a{
	display: inline-block;
}
#movie .slider-movie li.new::after{
	content: "";
	display: inline-block;
	position: absolute;
	background: url(../images/common/ico_new.svg) no-repeat 0 0/44px 25px;
	width: 44px;
	height: 25px;
	top: 0;
	left: 0;
}
#movie .caption{
	display: inline;
	position: absolute;
	bottom: 15px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 1.3rem;
	color: #fff;
}
#movie .time{
	position: absolute;
	padding: 5px 8px;
	border-radius: 20px;
	bottom: 10px;
	right: 10px;
	background: rgba(0,0,0,0.4);
	color: #fff;
	font-size: 0.9rem;
	
}
#movie .playBtn{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}

#movie .btn a{
	padding: 9px;
}
#movie .btn a::before{
	background: url(../images/common/ico_btn_youtube.png) no-repeat 0 0/22px 15px;
	width: 22px;
	height: 15px;
	top: 3px;
}

/*------------------------*/

.contents > .store{
	padding-bottom: 60px;
}


/*------------------------
modal_form
------------------------*/

.modal_form{
	width: 100%;
	height: 100%;
	z-index: 9999;
	display: none;
	position: fixed;
}
.overlay{
	z-index: 9999;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	overflow: hidden;
	display: none;
	background-color: rgba(0,0,0,0.8);
}

.modal_form .modalInner{
	position: fixed;
	top: 50%;
	left: 50%;
	width: 375px;
	height: 220px;
	transform: translate(-50%,-50%);
	z-index: 9999;
}

.modal_form .closeBtn{
	position: fixed;
	right: 15px;
	top: -25px;
	cursor: pointer;
	z-index: 999;
}

.mailForm{
	position: absolute;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
}
.mailForm input[type="email"]{
	width: 343px;
	height: 40px;
	margin-bottom: 20px;
	padding: 5px 20px;
	background-color: #1d1d1d;
	border: solid 1px #980000;
	color: #fff;
}
.formBtn{
	position: relative;
	width: 170px;
	height: 40px;
	transform: translateX(-50%);
	top: 0;
	left: 50%;
	margin: 0;
	padding: 0;
	background: 0;
	border: 0;
	cursor: pointer;
}
.modal_form .modal_messege{
	display: none;
	position: absolute;
	top: 0;
	left: 0;
}


/*footer
------------------------------*/
footer{
	
}

#contentsFooter{
	background: #464646;
}
#contentsFooter .footerInner{
	display: flex;
	justify-content: space-between;
	width: 343px;
	margin: 0 auto;
	padding: 20px 0;
}
.icon img{
	border-radius: 9px;
}

.table{
	width: 230px;
	max-height: 100px;
}
th,td{
	padding: 10px 0 9px;
	background-color: #404040;
	border: solid 1px #505050;
	color: #aaaaaa;
	font-size: 0.9rem;
	vertical-align: middle;
}
td{
	padding-left: 8px;
}

/*----------------*/

#globalFooter{
	background-color: #1e1e1e;
	color: #aaaaaa;
	font-size: 1.2rem;
}
#globalFooter .footerInner{
	margin: 0 auto;
	padding: 16px 0 18px;
}

.copy{
	margin-top: 6px;
	font-family: "SF Pro Display","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
	text-align: center;
	font-size: 1rem;
	opacity: .4;
}

#footerLinks{
	display: flex;
	justify-content: center;
}
#footerLinks li{
	position: relative;
	margin-left: 19px;
}
#footerLinks li:nth-of-type(1){
	margin-left: 0;
}
#footerLinks li a{
	color: #888888;
	text-decoration: none;
}
#footerLinks li::before{
	display: inline-block;
	content: "";
	position: absolute;
	width: 1px;
	height: 10px;
	background-color: #888888;
	top: 4px;
	left: -10px;
}
#footerLinks li:nth-of-type(1)::before{
	content: none;
}

/*-------ローディング後ポップアップ---------*/
/*#overlay{
	display: none;
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 50%;
	transform: translate3d(-50%,0,0);
	width: 100%;
	height: 100%;
}
#popup>div{
	position: relative;
	height: 100vh;
	padding: 0;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}
#close_popup{
	position: relative;
	width: 90vw;
	margin: 20px auto -40px;
	text-align: right;
	pointer-events: none;
}
#close_popup img{
	pointer-events: auto;
}
#banner{
	width: 100%;
	margin: 0 auto;
	text-align: right;
}
#banner>p img{
	width: 100%;
}*/
#overlay{
	display: none;
	-webkit-overflow-scrolling:touch;
}
#popup{
	position: fixed;
	background: #000;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: auto;
	z-index: 9999;
}
#popup > div{
	position: absolute;
	top: 20%;
	left: 50%;
	transform: translateX(-50%);
}
#close_popup{
	position: absolute;
	top: -30px;
	right: 10px;
}
#close_popup img{
	pointer-events: auto;
}
#banner img{
	width: 340px;
}
#popup label{
	position: absolute;
	bottom: -19px;
	right: 2px;
	color: #fff;
	font-size: 1.2rem;
}
#popup label input{
	position: absolute;
	top: 0;
	left: -20px;
	
}