@charset "utf-8";

body,div,pre,blockquote,
embed,object,fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}
/*-----------------------------------------
sentence
-----------------------------------------*/
p,h1,h2,h3,h4,h5,h6 {
	margin: 0;
	padding: 0;
	font-size: 100%;
}

b,em,u,address {
	font-weight: normal;
	font-style: normal;
	text-decoration: none;
}



/*-----------------------------------------
common
-----------------------------------------*/
html {
	font-size: 62.5%;
}
body * {
	font-size: 14px;
	font-size: 1.4rem;
}


html, body, #wrap {
	width: 100%;
	height: 100%;
	-moz-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

body {
	position: relative;
	text-align: left;
	font-family: sans-serif;
	color: #fff;
	min-width: 960px;

	background-color: #07060E;
	background-attachment: fixed;
	background-image: url(../images/bg.jpg);
	background-repeat: no-repeat;
	background-position: top center;
	background-size: cover;

}


body,input,textarea,pre {
	font-family: "メイリオ", Meiryo, "ＭＳ Ｐゴシック", Arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
}

#wrap {
	position: relative;
}
@keyframes opacity-1 {
	0%		{ opacity: 0; }
	100%	{ opacity: 1; }
}

@keyframes opacity-0 {
	0%		{ opacity: 1; }
	100%	{ opacity: 0; }
}

@keyframes blink {
	from	{ opacity: 0.5; }
	to		{ opacity: 0.9; }
}


#toTop {
	position: fixed;
	display: block;
	right: 40px;
	bottom: 40px;
	background: rgba(0,0,0,0.1);
	border-radius: 4px;
	box-shadow: 0 0 5px #fff;
	width: 40px;
	height: 40px;
	text-align: center;
	animation: opacity-1 0.3s;
	color: #fff;
}
body.home #toTop {
	display: none;
}

#toTop i {
	font-size: 2rem;
	line-height: 40px;
}


/*-----------------------------------------
 h1-3
-----------------------------------------*/
h1 {
	position: relative;
	font-size: 5.5rem;
	padding-top: 5rem;
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	text-shadow: 1px 1px 3px #000;
	height: 200px;
	padding-bottom: 20px;
	background-image: url(../images/h1.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;


	box-sizing: border-box;

	letter-spacing: 25px;
	text-indent: 14px;
	transition: 0.3s 0.2s;
}
body.tos		#tos		h1 ,
body.campaign	#campaign	h1 ,
body.news		#news		h1 ,
body.story 		#story 		h1 ,
body.character	#character	h1 ,
body.movie 		#movie 		h1 ,
body.system		#system		h1 ,
body.device		#device		h1 { text-indent: 0; letter-spacing: 10px; }


section:not(#home) h1:before {
	content: " ";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-image: url(../images/h1b.png);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	z-index: -1;
	opacity: 0.4;
}
h1:after {
	content: attr(data-text)"";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 50px;
	text-align: center;
	text-indent: 0;
	font-size: 1rem;
	letter-spacing: 15px;
}


h2 {
	position: relative;
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	letter-spacing: 2px;
	font-size: 2.7rem;
	padding: 25px 0 15px;
}
h2:before ,
h2:after {
	content: url(../images/h2.png);
	margin: 0;
	opacity: 0.5;
}
h2:before { margin-right: 1.5rem; }
h2:after { margin-left: 1.5rem; }
h3 {
	font-size: 2rem;
	margin-bottom: 1rem;
}


*[data-type="onLoadBkImg"] {
	transition: opacity 0.3s;
	opacity: 0;
}
*[data-type="onLoadBkImg"].loaded {
	opacity: 1;
}


h3 {
	position: relative;
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	margin-top: 3rem;
	padding-bottom: 0.5rem;
	color: #0956A4;
	text-shadow: 0 0 1px #0956A4;
	text-align: center;
}


body:not(.tos) h3:after {
	content: " ";
	position: absolute;
	border-bottom: 1px solid rgba(0,0,0,0.8);
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
/*	border-radius: 50%;*/
}



/*-----------------------------------------
list
-----------------------------------------*/
ul,ol,li {
	margin: 0;
	padding: 0;
}
ul,ul li {
	list-style-type: none;
}

dl,dt,dd {
	margin: 0;
	padding: 0;
}

dt {
	float: left;
	margin-right: 10px;
	padding: 1.2rem 0;
}

dd {
	text-align: left;
	overflow: hidden;
	padding: 1.2rem 0;
}

dd.accomplished {
	position: relative;
	height: 2rem;
}
dd.accomplished::after {
	position: absolute;
	top: 0.8rem;
	left: 30%;
	content: "\9054\6210";
	border: 2px solid #A20B62;
	border-radius: 4px;
	background: #fff8;
	color: #A20B62;
	font-weight: bold;
	font-size: 120%;
	padding: 0 4px;
	box-shadow: 0 0 3px #A20B62;
	transform: rotate(-10deg);
}


section#campaign dt {
	width: 130px;
	text-align: right;
}
section#campaign dd {
	border-left: 3px solid #aaa;
	padding-left: 0.9rem;
	margin-bottom: 1rem;
}

ul.list li {
	list-style: disc;
	text-align: left;
	margin-left: 50px;
}

ul.attention li {
	position: relative;
	text-align: left;
	margin-left: 60px;
}
ul.attention li:before {
	content: "\203B";
	color: #A20B62;
	position: absolute;
	left: -2rem;
	font-weight: bold;
}





/*-----------------------------------------
img
-----------------------------------------*/
img {
	vertical-align: top;
	max-width: 100%;
}

a img {
	border: 0;
}


/*-----------------------------------------
a
-----------------------------------------*/
a {
	text-decoration: none;
	color: #ce227c;
	transition: opacity 0.3s;
}
a:hover {
	opacity: 0.7;
}

#ft-nav a[target="_blank"]:after {
	display: inline-block;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	content: "\f35d";
	font-size: 80%;
	margin-left: 6px;
	opacity: 0.7;
	width: 13px;
}
#ft-nav a.mail:after {
	display: inline-block;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	content: "\f0e0";
	font-size: 80%;
	margin-left: 6px;
	opacity: 0.7;
	width: 13px;
}

/*-----------------------------------------
margin
-----------------------------------------*/
/* margin-top */
.mt0 {margin-top: 0px!important;}
.mt5 {margin-top: 5px!important;}
.mt10 {margin-top: 10px!important;}
.mt15 {margin-top: 15px!important;}
.mt20 {margin-top: 20px!important;}
.mt25 {margin-top: 25px!important;}
.mt30 {margin-top: 30px!important;}
.mt35 {margin-top: 35px!important;}
.mt40 {margin-top: 40px!important;}

/* margin-bottom */
.mb1em {margin-bottom: 1em!important;}
.mb0 {margin-bottom: 0px!important;}
.mb5 {margin-bottom: 5px!important;}
.mb10 {margin-bottom: 10px!important;}
.mb15 {margin-bottom: 15px!important;}
.mb20 {margin-bottom: 20px!important;}
.mb25 {margin-bottom: 25px!important;}
.mb30 {margin-bottom: 30px!important;}
.mb35 {margin-bottom: 35px!important;}
.mb40 {margin-bottom: 40px!important;}

/*-----------------------------------------
padding
-----------------------------------------*/
/* padding-top */
.pt0  {padding-top:  0px!important;}
.pt5  {padding-top:  5px!important;}
.pt10 {padding-top: 10px!important;}
.pt15 {padding-top: 15px!important;}
.pt20 {padding-top: 20px!important;}
.pt25 {padding-top: 25px!important;}
.pt30 {padding-top: 30px!important;}
.pt35 {padding-top: 35px!important;}
.pt40 {padding-top: 40px!important;}



/*-----------------------------------------
 header
-----------------------------------------*/
header {
	position: fixed;
/*	top: 0;		wp-admin対応*/
	width: 100%;
	min-width: 960px;
	padding: 10px 0;
	text-align: center;
	z-index: 10;
	transition: opacity 0.3s;
}
html:not(.mobile) header {
	min-width: 960px;
}
header #navToggle ,
header #navToggleLabel {
	display: none;
}

header:before ,
header:after {
	content: " ";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	transition: opacity 0.3s;
	z-index: 0;
}
header:before {
	background: linear-gradient( rgba(0,0,0,0.6) 25%, rgba(0,0,0,0) );
	opacity: 1;
}
header:after {
	background: linear-gradient( rgba(255,255,255,0.9) 40%, rgba(255,255,255,0) );
	opacity: 0;
}

#globalNav {
	position: relative;
	display: inline-block;
	overflow: hidden;
	z-index: 1;
}

#globalNav li {
	position: relative;
	display: block;
	float: left;
	margin: 5px;
}
#globalNav li:after {
	content: " ";
	display: block;
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: 0px;
	height: 1px;
	background: rgba(255,255,255,0.7);
	transition: 0.3s;
	box-shadow: 0 1px 1px rgba(0,0,0,0.5);
}

#globalNav li a {
	position: relative;
	display: inline-block;
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	font-size: 1.7rem;
	color: #fff;
	padding: 10px 15px;
	border-radius: 4px;
	text-shadow: 1px 1px 3px #000;
	font-weight: bold;
	box-sizing: border-box;
}


/* NEW */
#globalNav li a:after {
	display: none;
	right: 8px;
	top: 8px;
}
h2 span.new ,
h3 span.new {
	display: inline-block;
	height: 2.7rem;
	width: 1.3rem;
	margin-left: 6px;
}

section[data-type="slider"] .pointer li:after {
	right: -6px;
	top: -6px;
}
.new:after {
	right: 5px;
	top: 5px;
}
dt.new:after {
	right: -3px;
	top: -3px;
}

.pointer li,
.new { position: relative; }


/*#character .pointer li:nth-child(3):after,*/
/*#movie .pointer li:nth-child(1):after,*/
.new:after ,
#globalNav li a:after {
	content: " ";
	position: absolute;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #ce227c;
	box-shadow: 0 0 5px rgba(0,0,0,1), 0 0 5px rgba(0,0,0,1);
	animation: blink 1s ease-in-out infinite alternate;

}




#globalNav li#gn-story ,
#globalNav li#gn-movie {
	text-indent: 5px;
	letter-spacing: 10px;
}

body.home		#gn-home:after ,
body.news		#gn-news:after ,
body.story 		#gn-story:after ,
body.character	#gn-character:after ,
body.movie 		#gn-movie:after ,
body.system		#gn-system:after ,
body.device		#gn-device:after {
	left: 15px;
	right: 15px;
}



header .sns ,
#sound {
	position: absolute;
	display: block;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
}
header .sns {
	right: 20px;
	height: 40px;
}


footer .sns {
	display: block;
	overflow: hidden;
	margin-bottom: 20px;
}


.sns a {
	position: relative;
	border: 1px solid #fff;
	border-radius: 50%;
	box-sizing: border-box;
	text-align: center;

	display: inline-block;
	width: 40px;
	height: 40px;
	margin: 0 auto;
}

.sns i ,
header i {
	position: absolute;
	top: 50%;
	color: #fff;
	font-size: 16px;
}
.sns i {
	left: 50%;
	transform: translate(-50%,-50%);
}



#sound i {
	transform: translateY(-50%);
}



/*-----------------------------------------
 sound
-----------------------------------------*/
#sound {
	right: 120px;
}
/*.iOS #sound {
	display: none;
}*/

#sound .wrap {
	position: relative;
	width: 66px;
	height: 30px;
	border: 1px solid rgba(255,255,255,1);
	border-radius: 20px;
	box-sizing: border-box;
	overflow: hidden;
}
#sound .wrap:hover {
	box-shadow: 1px 1px 1px rgba(128,128,255,0.6),
				0 0 5px rgba(255,255,255,1),
				1px 1px 1px rgba(128,128,255,0.6) inset,
				0 0 5px rgba(255,255,255,1) inset;
}

#sound input[type=checkbox] {
	display: none;
}

#sound label .sw {
	position: relative;
	display: block;
	width: 100px;
	height: 28px;
	cursor: pointer;
	transition: 0.2s;
	margin-left: -36px;
}
#sound label .sw:before {
	content: " ";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(255,255,255,0.3);
	animation: none;
}
#sound input[type=checkbox]:checked + label .sw {
	margin-left: 0;
}
#sound input[type=checkbox]:checked + label .sw:before {
	background: rgba(255, 58, 217, 1);
}
html:not(.iOS) #sound input[type=checkbox]:checked + label .sw:before {
	animation: blink 1s ease-in-out infinite alternate;
}


#sound label .fa-volume-mute { right: 10px; opacity: 0.6; }
#sound label .fa-volume-up { left: 10px; }


#sound label .sw:after {
	content: " ";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 24px;
	height: 24px;
	margin-top: 2px;
	background: #fff;
	border-radius: 50%;
	text-align: center;
	line-height: 32px;
	box-shadow: 0 0 3px rgba(0,0,0,1);
}
#sound #information {
	display: none;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);

	white-space: nowrap;
	top: calc(100% + 10px);
	padding: 8px;

	background: rgba(255, 58, 217, 1);
	border-radius: 4px;
	box-shadow: 2px 2px 1px rgba(199, 60, 176, 0.58);

	animation: blink 1s ease-in-out infinite alternate;
}
#sound #information:after {
	content: " ";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 0px;
	height: 0px;
	border-top: 8px solid transparent;
	border-left: 8px solid transparent;
	border-right: 8px solid transparent;
	border-bottom: 8px solid rgba(255, 58, 217, 1);
	top: -16px;
}
small {
	font-size: 75%;
}
small.small {
	font-size: 65%;
}
body.home #sound:not(.playing) #information ,
#sound:hover #information {
	display: block;
}



/*-----------------------------------------
 home 色替え
-----------------------------------------*/
body.home header:before { opacity: 0; }
body.home header:after { opacity: 1; }
body.home #globalNav li:after {
	background: rgba(0,0,0,0.6);
	box-shadow: none;
}

body.home #globalNav a {
	color: #000;
	text-shadow: 1px 1px 3px #fff;

}

body.home .sns a ,
body.home #sound .wrap {
	border: 1px solid rgba(0,0,0,0.7);
}
body.home header i {
	color: #000;
}

body.home #sound label .sw:before {
	background: rgba(0,0,0,0.1);
}
body.home #sound label .sw:after {
	background: rgba(0,0,0,0.8);
	box-shadow: none;
}



/*-----------------------------------------
 footer
-----------------------------------------*/
footer {
	position: relative;
	width: 100%;
	min-width: 960px;
	padding: 2em 0;
	text-align: center;
	background: rgba(0,0,0,0.8);
	box-sizing: border-box;
	height: 240px;
}

footer #ft-nav {
	display: inline-block;
	overflow: hidden;
}
footer #ft-nav li {
	display: inline-block;
}
footer #ft-nav li:not(:last-child):after {
	content: "|";
	display: inline-block;
	margin: 0 1em;
}
footer #ft-nav li a {
	color: #fff;
}


footer #aquaplus {
	display: block;
	width: 128px;
	margin: 20px auto 10px;
}




/*-----------------------------------------
 section
-----------------------------------------*/
#wrap > section {
	position: relative;
	min-height: 100%;
	text-align: center;
	box-sizing: border-box;
	padding-top: 90px;
	padding-bottom: 90px;

	background: linear-gradient( rgba(0,0,0,0) 50%, rgba(0,0,0,0.2) ); 
	transition: opacity 0.3s 0.2s;
}

#wrap > section:not(#home) {
	opacity: 0;
/*	min-height: calc(100%);*/
}
body.tos		section#tos			,
body.campaign	section#campaign	,
body.news		section#news		,
body.story 		section#story 		,
body.character	section#character	,
body.movie		section#movie		,
body.system		section#system		,
body.device 	section#device 		{ opacity: 1 !important; }


html:not(.mobile) #wrap > section {
	min-width: 960px;
	padding-bottom: 20px;
}


#wrap > section:not(#home) > section {
	position: relative;
	padding-top: 0px;
	opacity: 0;
	transition: opacity 0.3s 0.5s;
	padding-bottom: 60px;
}


body.tos		section#tos			> section ,
body.campaign	section#campaign	> section ,
body.news		section#news		> section ,
body.story 		section#story 		> section ,
body.character	section#character	> section ,
body.movie		section#movie		> section ,
body.system		section#system		> section ,
body.device 	section#device 		> section { opacity: 1 !important; }




#wrap > section > p {
	text-shadow: 1px 1px 3px #000;
}



/*-----------------------------------------
 localNav
-----------------------------------------*/
.localNav {
    display: flex;
    flex-direction: column;
	align-items: flex-start;
	margin-bottom: 40px;
}
.localNav li {
	display: inline-block;
	margin: 0 auto;
}
.localNav li a {
	display: inline-block;
	background: rgba(255, 255, 255, 0.8);
	margin: 5px;
	padding: 5px 15px 5px 12px;
	border-radius: 20px;
	color: #333;
}
.localNav li a:before {
	font-family: "Font Awesome 6 free";
	font-weight: 900;
	content: "\f107";
	margin-right: 0.5em;

	width: 1.2857142857142858em;
	text-align: center;
}
.localNav li a.prev:before {
	content: "\f0a9";
}
.localNav li a.back:before {
	content: "\f0a8";
}

/*-----------------------------------------
 section - home
-----------------------------------------*/
#wrap > section#home {
	background: #fff;
	margin-bottom: 100px;
}
section#home #keyvisual {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	display: block;
	background-image: url(../images/home/keyvisual.jpg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

section#home h1#logo {
	position: absolute;
	bottom: 270px;
    left: 18%;
    width: 25%;
	height: auto;

	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;

	background-image: url(../images/home/logo.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;

	margin: 0;
	padding: 0;
	font-size: 0;
	letter-spacing: 0;
	transition: none;
}
section#home h1#logo:before {
	position: relative;
	content: " ";
	display: block;
	width: 100%;
	padding-top: 60%;
}
section#home p#catch {
	position: absolute;
	top: 35%;
	transform: translateY(-50%);
	right: 18%;
	width: 3.5%;

	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;

	background-image: url(../images/home/catch.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;

	margin: 0;
}
section#home p#catch:after {
	position: relative;
	content: " ";
	display: block;
	width: 100%;
	padding-top: 850%;
}


section#home section.footer {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(0,0,0,0.8);
	padding: 15px 0 5px;
}
section#home section.footer dl {
	display: inline-block;
	margin: 0 30px;
	font-size: 1.2rem;
}

section#home section.footer dt {
	width: 50px;
	text-align: left;
	font-size: inherit;
}
section#home section.footer dd {
	white-space: nowrap;
	margin-bottom: 5px;
	font-size: inherit;
}
section#home section.footer dd:before {
	content: "：";
}


#recruit {
	position: absolute;
	bottom: 110px;
	right: 18%;
}
#recruit img {
	width: 200px;
}

#ap_omc {
	position: absolute;
	bottom: 260px;
	right: 18%;
	box-shadow: 0 0 6px -3px #000;
}
#ap_omc img {
	width: 200px;
}


/*-----------------------------------------
 section - release-buttons
-----------------------------------------*/
section.release-buttons {
	position: relative;
	display: inline-block;
	box-sizing: border-box;
/*	background: url(../images/home/release.png) bottom center no-repeat;*/
	background: bottom center no-repeat;
	background-size: contain;
}
section#home section.release-buttons {
	position: absolute;
/*	left: calc(50% - 500px);*/
	left: calc(50% - 550px);
	bottom: 110px;
	width: 400px;
}
section.release-buttons:after {
	content: " ";
	display: block;
	position: relative;
	width: 100%;
/*	padding-top: 50%;*/
	padding-top: 25%;
}


a.AppStore ,
a.GooglePlay {
	position: relative;
	display: block;
	margin: 0 auto;
	z-index: 1;
	
}

section.release-buttons a.AppStore img ,
section.release-buttons a.GooglePlay img {
	height: 55px;
}


section.release-buttons a.AppStore { float: left; margin-left: 5%;}
section.release-buttons a.GooglePlay { float: right; margin-right: 5%; }

section#campaign a.AppStore ,
section#campaign a.GooglePlay {
	width: 200px;
}
section#campaign a.AppStore { margin-top: 10px; }
section#campaign a.AppStore img { width: 174px; padding: 7px 0;}
section#campaign a.GooglePlay img { width: 200px; }




/*-----------------------------------------
 section - tos
-----------------------------------------*/
section#tos h2 {
	font-size: 3rem;
	padding-top: 4rem;
}

section#tos h3 {
	all: initial;
	display: block;
	margin: 2.5rem 3rem 1rem 0;
	border-bottom: 1px solid #333;
	line-height: 1.2 !important;
}


section#tos > section.unit {
	position: relative;
	display: block;
	padding: 30px !important;
	box-shadow: 0 0 3px #fff;
	border-radius: 4px;
	color: #333;
	background: rgba(255,255,255,0.9);
	margin: 0 auto 20px;
	max-width: 800px;
	box-sizing: border-box;
	overflow: hidden;
}

section#tos > section.unit h2 {
	font-size: 2rem;
	text-align: left;
}

section#tos > section.unit h2:before ,
section#tos > section.unit h2::after {
	display: none;
}
section#tos > section.unit * {
	text-align: left;
	line-height: 2;
	font-size: 1.3rem;
}

section#tos > section.unit dt {
	min-width: 30px;
}
section#tos > section.unit dd {
	padding-bottom: 1rem;
}

section#tos > section.unit dd dl dt {
	width: 140px;
}
section#tos > section.unit dd dl dt:after {
	content: "\FF1A";
	float: right;
}
section#tos > section.unit dd dl dd {
	padding-bottom: 0;
}


section#tos > section.unit ol {
	counter-reset: my-counter;
	list-style: none;
	padding: 0;
	margin: 0;
  }
section#tos > section.unit ol li {
	padding-left: 22px;
	position: relative;
	margin: 0.5rem 0;
  }
section#tos > section.unit ol li:before {
	content: counter(my-counter);
	counter-increment: my-counter;
	border: 1px solid #333a;
	border-radius: 50%;
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 18px;
	width: 18px;
	font-size: 80%;
	position: absolute;
	top: 4px;
	left: 0;
  }

  section#tos > section.unit ul {
	padding-left: 20px;
  }
  section#tos > section.unit ul ul {
	margin: 1.5rem 0;
}
  section#tos > section.unit ul li {
	list-style: square;
	margin: 0.5rem 0;
	line-height: 1.5;
}
section#tos > section.unit ul li li {
	list-style: circle;
	/*	list-style-type: "\2014";*/
}



/*-----------------------------------------
 section - campaign
-----------------------------------------*/
section#campaign h2 {
	font-size: 3rem;
}


a#registration {
	display: inline-block;
	margin: 20px auto;
	padding: 12px 30px;
	border-radius: 40px;
	background: #ce227c;
	color: #fff !important;
	font-weight: bold;
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px #ce227c;
}


section#campaign > section.unit {
	position: relative;
	display: block;
	padding: 30px;
	box-shadow: 0 0 3px #fff;
	border-radius: 4px;
	color: #333;
	background: rgba(255,255,255,0.9);
	margin: 0 auto 60px;
	max-width: 800px;
	box-sizing: border-box;
}


section#campaign section.image {
	margin: 10px auto 30px;
}
section#campaign section.image *:not(img) {
	display: none;
}


section#campaign .unit input[name="form[mail]"]{
	width: 100%;
	height: 36px;
	margin: 5px 0 15px;
	text-align: center;
	font-size: 1.6rem;
	font-weight: bold;
	border: 1px solid rgba(0,0,0,0.5);
	border-radius: 4px;
	padding: 5px 0;
}
section#campaign .unit input[type="checkbox"]{
	width: 24px;
	height: 24px;
	cursor: pointer;
	margin-right: 5px;
	vertical-align: middle;
}

section#campaign .unit #submit {
	display: block;
	cursor: pointer;
	font-size: 1.6rem;
	margin: 10px auto;
	padding: 1rem 3rem;
	border: 2px solid #A40D49;
	border-radius: 4px;
	background-color: #DA366B;
	color: #fff;
	animation: blink 1s ease-in-out infinite alternate;
}
section#campaign .unit #submit[disabled="disabled"] {
	background-color: #dcdcdc;
	border: 2px solid #aaa;
	color: #aaa;
	animation: none;
	cursor: auto;
}

#mail-regist {
	overflow: hidden;
}
#mail-regist section {
	margin: 50px auto;
	width: 70%;
	padding: 40px;
	background: rgba(0,0,0,0.05);
	box-shadow: 0 0 5px rgba(0,0,0,0.5);
	border-radius: 3px;
	border: 1px solid rgba(0,0,0,0.3);
}
section#campaign #mail-regist h3 {
	margin-top: 1rem;
	margin-bottom: 2rem;
}

section#campaign p {
	margin-bottom: 0.5rem;
	line-height: 2.5rem;
}
section#campaign strong {
	font-weight: bold;
	color: #A20B62;
}

.twitterLink {
	display: inline-block;
	margin: 0 5px;
	padding: 0 12px 0 8px;
	border-radius: 3px;
/*	background: #1da1f2;*/
	background: #020202;
	color: #fff !important;
	line-height: 2.2rem;

}
.twitterLink:before {
	font-family: "Font Awesome 6 Brands";
/*	font-weight: 900;
	content: "\f099";*/
	content: "\e61b";
}

.split3 {
	overflow: hidden;
}
.split3 .unit {
	width: 33%;
	float: left;
	box-sizing: border-box;
	padding: 2px;
}



/*-----------------------------------------
 section - news
-----------------------------------------*/
section#news {
	padding-bottom: 60px;
}
section#news .split2 {
	display: inline-block;
}
section#news h2 {
	padding: 15px 0 10px;
	border-bottom: 1px solid rgba(15,70,100,.12);
}

section#news .split2 .unit {
	width: 400px;
	height: 680px;
}

section#news .unit {
	display: block;
	margin: 0;
	box-shadow: 0 0 3px #fff;
	border-radius: 4px;
	color: #333;
	background: rgba(255,255,255,0.9);
	overflow: hidden;
}

section#news #wrapNews {
	position: relative;
	border-bottom: 1px solid rgba(15,70,100,.12);
	padding: 12px 12px 12px 14px;
	box-sizing: border-box;
}
section#news .unit#information #wrapNews {
	height: 600px;
	overflow-y: scroll;
}



/*-----------------------------------------
 section - story
-----------------------------------------*/
section#story section p {
	line-height: 2;
	font-size: 1.8rem;
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	text-shadow: 1px 1px 5px #000;
}

section#story #image {
	display: block;
	margin-top: 50px;
	overflow: hidden;
	padding: 0 5%;
	opacity: 0;
	transition: opacity 0.3s 1s;
}
section#story #image img {
	width: 100%;
	height: auto;
}

body.story section#story #image {
	opacity: 1;
}

section#story #image li {
	display: block;
	float: left;
	box-shadow: 0 0 5px #fff;
	width: 23%;
	margin: 5px 1%;
	border-radius: 4px;
	overflow: hidden;
}



/*-----------------------------------------
 section - character
-----------------------------------------*/
section#character section {
	top: 130px;
}

section#character section ul li img {
	position: absolute;
	left: 50%;
	height: 100%;
	width: auto;
	min-height: 400px;
	opacity: 1;
	transition: opacity 0.3s;
}
section#character section ul li#chr02 img { left: 55%; }
section#character section ul li#chr04 img { left: 40%; }
section#character section ul li#chr07 img { left: 38%; }
section#character section ul li#chr09 img { left: 40%; }
section#character section ul li#chr11 img { left: 49%; }
section#character section ul li#chr13 img { left: 43%; }

section#character [data-current="1"]  ul li:not(#chr01) img ,
section#character [data-current="2"]  ul li:not(#chr02) img ,
section#character [data-current="3"]  ul li:not(#chr08) img ,
section#character [data-current="4"]  ul li:not(#chr07) img ,
section#character [data-current="5"]  ul li:not(#chr03) img ,
section#character [data-current="6"]  ul li:not(#chr04) img ,
section#character [data-current="7"]  ul li:not(#chr14) img ,
section#character [data-current="8"]  ul li:not(#chr12) img ,
section#character [data-current="9"]  ul li:not(#chr09) img ,
section#character [data-current="10"] ul li:not(#chr13) img ,
section#character [data-current="11"] ul li:not(#chr06) img ,
section#character [data-current="12"] ul li:not(#chr05) img ,
section#character [data-current="13"] ul li:not(#chr11) img ,
section#character [data-current="14"] ul li:not(#chr10) img {
	opacity: 0;
}


section#character section ul li .profile {
	position: absolute;
	right: 50%;
	top: 30%;
	margin-left: 100px;
	text-align: left;
	z-index: 1;
}
section#character section ul li .profile * {
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
	text-shadow: 0 0 6px #C7C1F7;
	text-align: left;
}
section#character section ul li .profile h3 {
	display: inline-block;
	font-size: 6rem;
	color: #fff;
	letter-spacing: 5px;
	margin-bottom: 0;
}
section#character section ul li#chr11 .profile h3 {
	letter-spacing: 0px;
}
section#character section ul li#chr14 .profile h3 {
	letter-spacing: -3px;
	font-size: 5.5rem;
}
section#character section ul li .profile h3:after {
	display: none;
}

section#character section ul li .profile p.cv {
	font-size: 2.2rem;
	margin-bottom: 10px;
	margin-left: 20px;
}
section#character section ul li .profile p.cv:before {
	content: "\58F0\FF1A";
	font-size: 1.5rem;
	margin-right: 0.5rem;
	line-height: 2.2rem;
}
section#character section ul li .profile p.cv:after {
	content: " ";
	display: block;
	height: 1px;
	border-radius: 0 50% 50% 0;
	border-top: 1px solid rgba(255,255,255,0.7);
}
section#character section ul li .profile p {
	font-size: 1.6rem;
	line-height: 2;
	margin-left: 20px;
}
section#character section ul li .profile p:not(.cv) {
	text-shadow: -1px -1px 3px #000, 1px 1px 3px #000, 0 0 3px #000;
}

section#character section[data-type="slider"] {
	position: absolute !important;
	top: 130px;
	left: 0;
	right: 0;
	bottom: 0;
}
section#character section[data-type="slider"] ul.slide ,
section#character section[data-type="slider"] ul.slide li {
	height: 100%;
}



/*-----------------------------------------
 section - data-type="slider"
-----------------------------------------*/
section[data-type="slider"] {
	overflow: hidden;
}

section[data-type="slider"] ul.slide {
	list-style: none;
	position: relative;
	min-height: 100%;
/*	overflow: hidden;*/
}

section[data-type="slider"] ul.slide li {
	display: block;
	float: left;
	min-height: 100%;
	position: relative;
}

section[data-type="slider"] .next ,
section[data-type="slider"] .prev {
	position: absolute;
	bottom: 50%;
}
section[data-type="slider"] .next { right: 20px; }
section[data-type="slider"] .prev { left: 20px; }
section[data-type="slider"] .next i,
section[data-type="slider"] .prev i {
	display: block;
	font-size: 6rem;
	width: 6rem;
	cursor: pointer;
	text-shadow: 0 0 5px #000;
}
section[data-type="slider"][data-current="1"]	.prev i ,
section[data-type="slider"].last				.next i {
	cursor: auto;
	opacity: 0.2;
}

section[data-type="slider"] ul.pointer {
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 17px;
	z-index: 5;
}
section[data-type="slider"] ul.pointer li {
	display: inline-block;
	background-color: rgba(255,255,255,0.3);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.3);
	margin: 0 12px;
	cursor: pointer;
	transition: 0.3s;
	z-index: 5;
}
section[data-type="slider"] ul.pointer li:not(.current):hover {
	border: 2px solid rgba(255,255,255,1);
	background-color: rgba(255,255,255,0.8);
	cursor: pointer;
}
section[data-type="slider"] ul.pointer li.current {
	cursor: auto;
	border: 2px solid rgba(255,255,255,1);
	background-color: rgba(255,255,255,0.8);
}



/*-----------------------------------------
 section - movie
-----------------------------------------*/
section#movie {
	overflow: hidden;

}

section#movie h2:before,
section#movie h2:after {
	display: none;
}


.ytbox ,
.twbox {
	position: relative;
	height: auto;

	margin: 0 auto;
}
.ytbox { max-width: 800px; max-height: calc(100% - 83px); }
.twbox { max-width: 500px; }

.ytbox:after ,
.twbox:after {
	position: relative;
	content: " ";
	display: block;
	width: 100%;
}
.ytbox:after  { padding: 56.25% 0 0; }
.twbox:after  { padding: 120% 0 0; }

section#movie iframe ,
section#movie twitter-widget {
	position: absolute !important;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}
section#movie iframe {
	background: rgba(0,0,0,0.8);
	box-shadow: 0 0 3px #fff;
}


/*-----------------------------------------
 section - system
-----------------------------------------*/
section#system {
	overflow: hidden;
}
.sysbox {
	position: relative;
	height: 100%;

	margin: 0 auto;
	max-width: 500px;
}



/*-----------------------------------------
 section - device
-----------------------------------------*/
section#device > section.unit {
	position: relative;
	display: block;
	padding: 30px;
	box-shadow: 0 0 3px #fff;
	border-radius: 4px;
	color: #333;
	background: rgba(255,255,255,0.9);
	margin: 0 auto 60px;
	max-width: 800px;
	box-sizing: border-box;
}
section#device h3 {
	margin-top: 0;
}



section.legalAttr {
	margin-top: -30px;
}
section.legalAttr p {
	color: #fffc;
	font-size: 80%;
	margin-bottom: 0 !important;
	line-height: 1.5 !important;
}


/*-----------------------------------------
 shrink
-----------------------------------------*/
.unit.shrink {
	padding-bottom: 10px !important;
}

.shrink label {
	display: block;
	position: absolute;
	right: 3rem;
	top: 3rem;
	z-index: 1;
}
.shrink label:after {
	font-family: "Font Awesome 6 Free";
	font-weight: 400;
	content: "\f0fe";
	font-size: 3.0rem;
	cursor: pointer;
}
.shrink input[type=checkbox] {
	position: absolute;
	left: -9999px;
}
.shrink .shrinkBox {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.3s;
}
.shrink input[type=checkbox]:checked ~ label:after {
	content: "\f146";
}
.shrink input[type=checkbox]:checked ~ div.shrinkBox {
	max-height: 2000px;
	padding-bottom: 40px;
}


/*-----------------------------------------
 Overlay
-----------------------------------------*/
#overlay {
	position: fixed;
	z-index: 99;
	top :0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(0,0,0,0.5);
	display: none;
}
#overlay .close {
	position: absolute;
	top: 20px;
	right: 20px;
	font-size: 6rem;
	line-height: 1;
	cursor: pointer;
	transition: opacity 0.3s;
}
#overlay .close:hover {
	opacity: 0.7;
}
#overlay iframe {
	position: absolute;
	display: block;
	left: 10%;
	top: 5%;
	width: 80%;
	height: 90%;

	border: none;
	border-radius: 4px;
	background-color: rgba(255,255,255,0.9);
	box-shadow: 0 0 5px #fff;
	overflow: auto;
}



/*----------------------------------------------------------------------------------
 PC - narrow
----------------------------------------------------------------------------------*/

@media screen and (max-width: 1300px) {
	#sound ,
	header .sns {
		display: none;
	}
	section#home section.release-buttons {
		left: 90px;
	}
}



/*----------------------------------------------------------------------------------
 Mobile
----------------------------------------------------------------------------------*/
br.mobile { display: none; }


@media screen and (max-width: 640px) {
	br.mobile {
		display: inline;
	}

	br.pc {
		display: none;
	}

	body ,
	header ,
	footer {
		min-width: initial;
	}

	section:not(#home) h1 {
		padding-top: 2rem !important;
		font-size: 3rem !important;
		letter-spacing: 10px !important;
		text-indent: 0 !important;
		height: 100px;
	}
	h1:after {
		bottom: 20px;
	}

	h2 ,
	section#campaign h2 {
		font-size: 1.8rem;
		letter-spacing: 0;
	}

	ul.list li {
		margin-left: 25px;
	}



	#wrap > section {
		min-width: auto !important;
		max-width: 100%;
		overflow-x: hidden;
	}

	#toTop {
		right: 10px;
		bottom: 10px;
		background: rgba(0,0,0,0.5);
	}


	/*----------------------------------------------------------------------------------*/
	/* header */
	header {
		padding: 0;
		height: 0;
	}
	header:before ,
	header:after {
		display: none;
	}

	#sound {
		display: block;
		transform: none;
		top: 14px;
		right: auto;
		left: 14px;
	}
	
	#sound .wrap {
		background: rgba(255,255,255,0.5);
	}

	body:not(.home) #sound {
		display: none;
	}

	#sound #information {
		display: none !important;
	}


	/*----------------------------------------------------------------------------------*/
	/* navToggle */
	header #navToggleLabel {
		display: block;
		position: absolute;
		right: 10px;
		top: 10px;
		width: 40px;
		text-align: center;
		z-index: 5;
	}
	header #navToggleLabel:after {
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		content: "\f0c9";
		color: #fff;
		font-size: 40px;
		line-height: 40px;
		text-shadow: 0 0px 4px #000;
	}

	header #navToggle[type=checkbox]:checked + #navToggleLabel:after {
		content: "\f00d";
		color: rgba(0,0,0,0.7);
		text-shadow: none;
	}
	header #navToggle[type=checkbox]:checked ~ #globalNav:after {
		padding-top: 120%;
	}



	/*----------------------------------------------------------------------------------*/
	/* globalNav */
	#globalNav {
		display: block;
		width: 100%;
		background: #fff;
		box-shadow: 0 8px 8px rgba(0,0,0,0.6);
	}
	#globalNav:after {
		content: " ";
		display: block;
		width: 100%;
		padding-top: 0;
		transition: padding-top 0.3s;
	}
	#globalNav ul {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 0;
		right: 0;
	}


	#globalNav li {
		float: none;
		margin: 0 20px 5px;
	}
	#globalNav li a {
		display: block;
		color: #000;
		text-shadow: none;
		width: 100%;
		padding: 8px 0;
	}

	body.home		#gn-home:after ,
	body.campaign	#gn-campaign:after ,
	body.news		#gn-news:after ,
	body.story 		#gn-story:after ,
	body.character	#gn-character:after ,
	body.movie 		#gn-movie:after ,
	body.system		#gn-system:after ,
	body.devices	#gn-devices:after {
		left: 0px;
		right: 0px;
	}



	/*----------------------------------------------------------------------------------*/
	footer {
		width: auto;
		min-width: auto;
		height: auto;
		overflow: hidden;
	}
	footer #ft-nav li {
		display: block;
		float: none;
	}
	footer #ft-nav li:after {
		display: none !important;
	}

	/*----------------------------------------------------------------------------------*/
	/* home */
	section#home {
		padding-bottom: 0;
	}
	section#home #keyvisual {
		position: relative;
		top: -20px;
		bottom: auto;
		background-position: 30% center;
	}
	section#home #keyvisual:before {
		content: " ";
		display: block;
		position: relative;
		width: 100%;
		padding-top: 90%;
	}

	section#home p#catch {
		top: 55px;
		right: 12px;
		width: 20px;
		transform: none;
	}

	section#home h1#logo {
		width: 50%;
		left: 2%;
		right: auto;
		top: 190px;
		bottom: auto;
	}
	section#home section.footer {
		position: relative;
	}

	section#home section.footer dl {
		display: block;
		width: 75%;
		margin: 0 auto;
		font-size: 1rem;
	}
	section#home section.release-buttons {
		position: relative;
		bottom: 0 !important;
		left: 0 !important;
	}
	section#home section.release-buttons a { float: none; margin: 0 auto; }

	section#home #recruit {
		position: relative;
		bottom: 0;
		right: 0;
		display: block;
		margin: 20px auto ;
	}
	

	/*----------------------------------------------------------------------------------*/
	/* release-buttons */
	section#home section.release-buttons {
/*		width: calc(100% - 80px);
		left: 40px;*/
		width: calc(100% - 20px);
		left: 10px;

		bottom: 125px;
		background-size: contain;
		padding-bottom: 55px;
	}
	section.release-buttons:after {
		display: none;
	}
	section.release-buttons a {
		display: inline-block;
	}

	section.release-buttons a.AppStore img ,
	section.release-buttons a.GooglePlay img {
		width: 200px;
		height: auto;
	}
	section.release-buttons a.AppStore img {
		padding: 0 12px;
	}
	
	section.release-buttons a.AppStore { float: none; }
	section.release-buttons a.GooglePlay { float: none; }
	

	/*----------------------------------------------------------------------------------*/
	.unit {
		float: none !important;
		width: 95% !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
		box-sizing: border-box;
	}
	#twitter iframe {
		width: 100% !important;
	}


	#wrap > section {
		padding-top: 0;
		opacity: 1 !important;
	}
	#wrap > section > section {
		opacity: 1 !important;
		max-width: 100%;
	}


	/*----------------------------------------------------------------------------------*/
	/* tos */
	section#tos > section.unit br:not(.keepMobile) {
		display: none;
	}
	section#tos h3 {
		margin-right: 0;
	}
	/*----------------------------------------------------------------------------------*/
	/* canpaign */
	section#campaign .unit input[name="form[mail]"]{
		font-size: 1.2rem;
	}

	#mail-regist section {
		margin-top: 40px;
		padding: 5px 10px;
		width: auto;
	}



	/*----------------------------------------------------------------------------------*/
	/* news */
	section#news .split2 .unit#information ,
	section#news .split2 .unit#information dl {
		height: auto;
	}
	section#news .split2 .unit#information {
		max-height: 680px;
		margin-bottom: 60px;
	}


	/*----------------------------------------------------------------------------------*/
	/* story */
	section#story section p {
		font-size: 1.3rem;
	}

	section#story #image {
		width: 100%;
		margin-top: 0;
		padding: 0;
		opacity: 1;
	}
	section#story #image li {
		float: none;
		width: 90%;
		margin: 20px auto;
	}



	/*----------------------------------------------------------------------------------*/
	/* slider (character/movie) */
	section[data-type="slider"] ul {
		min-width: auto !important;
	}

	section[data-type="slider"] ul li {
		min-width: auto !important;
	}
	section[data-type="slider"] .next ,
	section[data-type="slider"] .prev { z-index: 10; }

	section[data-type="slider"] .next { right: 0px; }
	section[data-type="slider"] .prev { left: 0px; }
	section[data-type="slider"] .next i,
	section[data-type="slider"] .prev i {
		font-size: 3rem;
		width: 3rem;
	}
	section[data-type="slider"] ul.pointer {
		bottom: 20px;
	}

	section[data-type="slider"] ul.pointer li {
		margin: 8px 8px 0;
	}

	/*----------------------------------------------------------------------------------*/
	/* character */
	section#character section {
		top: 40px;
	}

	section#character section ul li img {
		left: 40%;
		max-width: none;
	}
	section#character section ul li#chr01 img { left: 35%; }/*アクタ*/
	section#character section ul li#chr02 img { left: 50%; }/*ミナギ*/
	section#character section ul li#chr02 img { left: 40%; }/*クゥラン*/
	section#character section ul li#chr07 img { left: 10%; }/*スズリ*/
	section#character section ul li#chr03 img { left: 30%; }/*クオン*/
	section#character section ul li#chr04 img { left:  5%; }/*ルルティエ*/
	section#character section ul li#chr14 img { left: 30%; }/*ウルサラ*/
	section#character section ul li#chr12 img { left: 50%; }/*ウコン*/
	section#character section ul li#chr09 img { left: 25%; }/*マロロ*/
	section#character section ul li#chr13 img { left: 25%; }/*シス*/
	section#character section ul li#chr06 img { left: 45%; }/*エルルゥ*/
	section#character section ul li#chr05 img { left: 35%; }/*ベナウィ*/
	section#character section ul li#chr11 img { left: 35%; }/*カムチャ*/
	section#character section ul li#chr10 img { left: 35%; }/*ヌワンギ*/

	section#character section ul li .profile {
		margin-left: 0;
		left: 30px;
		right: 30px;
		top: 30%;
	}

	section#character section ul li .profile h3 {
		font-size: 3.2rem;
		letter-spacing: 0px;
		white-space: nowrap;
		text-shadow: 0 0 6px #000;
	}
	section#character section ul li#chr14 .profile h3 {
		font-size: 2.4rem;
	}
	section#character section ul li#chr11 .profile h3 {
		font-size: 2.8rem;
	}
	section#character section ul li .profile p.cv {
		font-size: 1.8rem;
		margin-left: 10px;
	}
	section#character section ul li .profile p {
		font-size: 1.3rem;
		line-height: 1.6;
		margin-left: 10px;
	}

	/*----------------------------------------------------------------------------------*/
	/* movie */

	#movie section[data-type="slider"] {
		top: 100px;
	}
	section#movie h2 {
		font-size: 1.5rem;
	}
	.ytbox ,
	.twbox {
		max-width: 95%;
	}

	.shrink label {
		right: 3px;
		top: 2px;
	}
	


}

@media screen and (orientation: landscape) {
	header #navToggle[type=checkbox]:checked ~ #globalNav:after {
		padding-top: 56.25%;
	}
}

