@charset "utf-8";

header{
	position: relative;
	margin: 0 auto;
	width: 100%;
	background-color:#061329;
	text-align: center;
}
header .navLogo{
	position: relative;
	display: inline-block;
	padding: 10px 0 0 0;
	z-index: 100;
}
header .navLogo img{
	position: relative;
	height: 30px;
	width: auto;
}


/* タイトル装飾 */
.contWrap{position: relative;}
.h2bg{
	position: absolute;
	left: 0;
	bottom:0;
	height: 0;
	padding-top: 30%;
	width: 100%;
	display: block;
	background-position: 0 0;
	background-repeat:no-repeat;
	background-size: 100% auto;
	mix-blend-mode: screen;
}
.h2bg::before{
	position: absolute;
	bottom:-58%;
	left: 0;
	height: 100%;
	width: 100%;
	content: '';
	display: block;
	background-position: 30% 0;
	background-repeat:no-repeat;
	background-size: contain;
	background-image: url("../img/bg_ttl.png");
}

.flash{
	position: absolute;
	top:-20px;
	left: 0;
	width: 100%;
	height: 0;
	padding-top: min(17.31%, 102px);
	mix-blend-mode: screen;
	z-index: -1;
	}
.flash::after{
	position: absolute;
	top:-42%;
	left: 0;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background-image: url("../img/ttl_bar.png");
	background-position: 100% 50%;
	background-repeat: no-repeat;
	background-size: auto 100%;
}

/* lead */
#lead{
	position: relative;
	margin: 0 auto;
}
#lead .title{
	position: relative;
	margin: 0 auto 15px auto;
	width: 100%;
	max-width: 2000px;
}
#lead .leadTxt{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
	background-color: rgba(43,74,113,0.95);
	padding: 20px 15px;
	border: solid 3px #061329;
	box-shadow: 0px 4px 10px 1px rgba(10,36,65,0.65);
	box-sizing: border-box;
}
#lead .leadTxt .bg{
	position: absolute;
	top:-3px;
	left: -3px;
	width: calc(100% + 6px);
	height: calc(100% + 6px);
	content: '';
	display: block;
	mix-blend-mode: screen;
	opacity: 0.9;
	background-image: url("../img/bg_lead.png");
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: 100% auto;
}
#lead .leadflash{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0;
	padding-top: 22%;
	mix-blend-mode: screen;
	transform:  translate3d(0,0,0);
}
#lead .leadflash::after{
	position: absolute;
	bottom: -36%;
	left: 10px;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background-image: url("../img/flash.png");
	background-position: 0 50%;
	background-repeat: no-repeat;
	background-size: auto 100%;
}
#lead .leadTxt p{
	position: relative;
	z-index: 100;
	font-weight: 700;
	font-size: min(3.8vw, .18rem);
	line-height: 2em;
	color: #ffffff;
	text-shadow: 
    #1d365e 2px 0px,  #1d365e -2px 0px,
    #1d365e 0px -2px, #1d365e 0px 2px,
    #1d365e 2px 2px , #1d365e -2px 2px,
    #1d365e 2px -2px, #1d365e -2px -2px,
    #1d365e 1px 2px,  #1d365e -1px 2px,
    #1d365e 1px -2px, #1d365e -1px -2px,
    #1d365e 2px 1px,  #1d365e -2px 1px,
    #1d365e 2px -1px, #1d365e -2px -1px;
	mix-blend-mode: normal;
}
#lead .leadTxt .att{
	padding-top: 1em;
	font-size: min(3.4vw, .15rem);
}

/* とは */
#about{
	position: relative;
	margin: 0 auto;
	padding: 40px 0 0 0;
}
#about h2{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 580px;
	z-index: 10;
}
#about .text{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 70px);
	background-color: rgba(255,255,255,0.8);
	border-radius: 5px;
	padding: 30px 20px 20px 20px;
	transform: translateY(-20px);
}

/* バナー */
#banner{
	position: relative;
	margin: 0 auto;
	padding: 40px 0 0 0;
}
#banner h2{
	position: relative;
	margin: 0 auto;
	width: 100%;
	max-width: 640px;
	z-index: 20;
}
#banner .lists{
	position: relative;
	margin: 15px auto 30px auto;
	width: calc(100% - 30px);
	max-width: 960px;
	border-radius: 5px;
	padding-bottom: 20px;
	overflow: hidden;
	border: solid 1px #ffffff;
	background-color: rgba(255,255,255,0.8);
	box-sizing: border-box;
	gap:0 50px;
}
#banner .lists .Images{
	position: relative;
	width: 100%;
	margin: 0 0 20px 0;
}
#banner .lists .Text{
	position: relative;
	margin: 0;
	width: 100%;
}
#banner .lists .Ttl{
	position: relative;
	margin: 0 auto 20px auto;
	font-weight: 700;
	color: #107f97;
	text-align: center;
	font-size: min(8vw, .19rem);
	font-style: italic;
}
#banner .lists .Txt{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
}
#banner .lists .present{
	position: relative;
	margin: 20px auto 0 auto;
	width: calc(100% - 60px);
	background-color: #c1dee6;
	padding: 15px;
}
#banner .lists .present .Img{
	position: relative;
	margin: 20px auto 0 auto;
	width: calc(100% - 30px);
}
#banner .lists .present .Img img{margin: 0 auto;}

#enter{
	position: relative;
	margin:  60px auto 0 auto;
	background-color: rgba(9,40,55,0.9);
	padding: 45px 0;
}
#enter a{
	position: relative;
	margin:  0 auto;
	display: block;
	width: calc(100% - 60px);
	max-width: 380px;
}


/* login */
#login{
	position: relative;
	margin: 0 auto;
	padding: 40px 0 0 0;
}
#login h2{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 580px;
	z-index: 10;
}
#login .inputArea{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 70px);
	background-color: rgba(255,255,255,0.8);
	border-radius: 5px;
	padding: 20px;
	transform: translateY(-20px);
	text-align: center;
}
#login .inputArea p{
	position: relative;
	margin:10px auto 0 auto;
	max-width: 640px;
}
#login .inputArea p.lead{font-size: 90%;}
#login .inputArea p span{display: block;font-size: min(3vw, 80%);}

/* nazo01 */
#nazo01{position: relative;}
/* nazo02 */
#nazo02{position: relative;display: none;}
/* lastQ */
#lastQ{position: relative;display: none;}
/*story */
.story{
	position: relative;
	margin: 0 auto;
	padding-top: 30px;
}
.story h2{
	position: relative;
	margin: 0 auto;
	width: 100%;
	max-width: 640px;
	z-index: 20;
}
.story .storyWrap{
	position: relative;
	margin: 15px auto 0 auto;
	padding: 25px 0;
	border: solid 3px #061329;
	max-width: 960px;
	width: calc(100% - 30px);
	box-sizing: border-box;
	box-shadow: 0px 4px 10px 1px rgba(10,36,65,0.65);
}
#nazo01 .story .storyWrap{background-color:rgba(43,105,123,0.85);}
#nazo02 .story .storyWrap{background-color:rgba(42,113,71,0.85);}
#lastQ .story .storyWrap{background-color:rgba(74,113,42,0.85);}
.story .storyWrap::after{
	position: absolute;
	bottom: -3px;
	right: -18px;
	width: min(43%, 220px);
	height: 50%;
	background-image: url("../img/chara01.png");
	background-size: contain;
	background-position: 100% 100%;
	background-repeat: no-repeat;
	content: '';
	display: block;
}
.story .storyflash{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0;
	padding-top: 22%;
	mix-blend-mode: screen;
	transform:  translate3d(0,0,0);
	}
.story .storyflash::after{
	position: absolute;
	top:15px;
	left: 30%;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background-image: url("../img/flash.png");
	background-position: 0 50%;
	background-repeat: no-repeat;
	background-size: auto 100%;
}
.story .storyWrap p{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
	color: #ffffff;
	font-weight: 700;
	font-size: min(4vw, .18rem);
	line-height: 1.8em;
	z-index: 30;
	text-shadow: 
    #1d425e 2px 0px,  #1d425e -2px 0px,
    #1d425e 0px -2px, #1d425e 0px 2px,
    #1d425e 2px 2px , #1d425e -2px 2px,
    #1d425e 2px -2px, #1d425e -2px -2px,
    #1d425e 1px 2px,  #1d425e -1px 2px,
    #1d425e 1px -2px, #1d425e -1px -2px,
    #1d425e 2px 1px,  #1d425e -2px 1px,
    #1d425e 2px -1px, #1d425e -2px -1px;
}
.story .storyWrap p.spImg{
	width: min(66%, 720px);
	margin: 1em 0 0 15px;
}

/* mission */
.mission{
	position: relative;
	margin:  70px auto 20px auto;
}
.mission h2{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 580px;
	z-index: 40;
}
.mission .missionWrap{
	position: relative;
	margin: 0 auto;
	background-color: rgba(255,255,255,0.8);
	padding: 40px 0;
	transform: translateY(-20px);
}
.mission .nazoImages{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
	max-width: 800px;
}
.mission .hintWrap{
	position: relative;
	margin: 20px auto 40px auto;
}
.mission .hintInWrap{
	position: relative;
	margin: 0 auto 10px auto;
	width: calc(100% - 120px);
	max-width: 400px;
	border: solid 1px #4ba3c0;
	background-color: #4ba3c0;
}
.mission .hintWrap .Btnhint{
	position: relative;
	margin: 0 auto;
	padding: 3px 20px;
	text-align: center;
	color: #ffffff;
	cursor: pointer;
	font-size: .13rem;
	transition: all .3s ease-out;
}
.mission .hintWrap .Btnhint:hover{background-color: #1F6881;}
.mission .hintWrap .hintTxt{
	position: relative;
	margin: 0 auto;
	padding: 10px;
	font-size: .13rem;
	display: none;
	background-color: #ffffff;
}
.mission .inputArea{
	margin: 0 auto;
	padding-bottom: 10px;
	width: calc(100% - 30px);
}
.mission .inputArea .inputTxt.hidden{display: none;}

/* clear */
#clear{
	position: relative;
	margin: 0 auto;
}
#clear .title{
	position: relative;
	margin:10px auto 0 auto;
	width: calc(100% - 50px);
	z-index: 10;
}
#clear .clearTxt{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 30px);
	background-color: rgba(61,50,120,0.85);
	padding: 20px 15px 40px 15px;
	border: solid 3px #340356;
	box-shadow: 0px 4px 10px 1px rgba(10,36,65,0.65);
	box-sizing: border-box;
}
#clear .clearTxt .bg{
	position: absolute;
	top:-3px;
	left: -3px;
	width: calc(100% + 6px);
	height: calc(100% + 6px);
	content: '';
	display: block;
	mix-blend-mode: screen;
	opacity: 0.9;
	background-image: url("../img/bg_clear01.png"), url("../img/bg_clear02.png");
	background-position: 50% 0, 50% 100%;
	background-repeat: no-repeat, no-repeat;
	background-size: 100% auto, 100% auto;
}
#clear .clearflash, #clear .clearflash1, #clear .clearflash2{
	position: absolute;
	bottom: 0;
	right: 20px;
	width: 100%;
	height: 0;
	padding-top: 22%;
	mix-blend-mode: screen;
	transform:  translate3d(0,0,0);
}
#clear .clearflash1{bottom: 6em;right: auto;left: -4%;}
#clear .clearflash2{bottom: auto; top:-11%;z-index: 11;}
#clear .clearflash::after, #clear .clearflash1::after, #clear .clearflash2::after{
	position: absolute;
	bottom: -36%;
	right: 0;
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background-image: url("../img/flash.png");
	background-position: 100% 50%;
	background-repeat: no-repeat;
	background-size: auto 100%;
}
#clear .clearflash1::after{background-position: 0 50%;}
#clear .clearflash2::after{background-position: 100% 0;}
#clear .clearTxt p{
	font-size: min(3.8vw, .18rem);
	line-height: 2em;
	color: #ffffff;
	font-weight: 700;
	text-shadow: 
    #433054 2px 0px,  #433054 -2px 0px,
    #433054 0px -2px, #433054 0px 2px,
    #433054 2px 2px , #433054 -2px 2px,
    #433054 2px -2px, #433054 -2px -2px,
    #433054 1px 2px,  #433054 -1px 2px,
    #433054 1px -2px, #433054 -1px -2px,
    #433054 2px 1px,  #433054 -2px 1px,
    #433054 2px -1px, #433054 -2px -1px;
}

/* share */
#share{
	position: relative;
	margin: 0 auto;
	padding: 40px 0 20px 0;
}
#share h2{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 40px);
	max-width: 580px;
	z-index: 10;
}
#share .shareWrap{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 70px);
	background-color: rgba(255,255,255,0.8);
	border-radius: 5px;
	padding: 30px 20px 30px 20px;
	transform: translateY(-20px);
}
#share ul{
	position: relative;
	margin: 0 auto;
	z-index: 11;
	gap:0 20px;
}
#share ul li{
	position: relative;
	margin: 0;
	width: calc(33% - 20px);
	max-width: 50px;
}

/* ----- pc ----- */
@media screen and (min-width: 641px) {

	header .navLogo img{height: 36px;}

	/* タイトル装飾 */
	.h2bg{
		padding-top: 220px;
		left: 50%;
		transform: translateX(-50%);
		max-width: 960px;
	}
	.h2bg::before{background-position:40% 100%;}

	.flash{left: 40%;transform: translateX(-50%);top:-35px;max-width: 960px;}

	/* lead */
	#lead .title{margin: 0 auto 40px auto;}
	#lead .leadTxt{
		max-width: 960px;
		padding: 50px 0;
		border: solid 5px #061329;
		text-align: center;
	}
	#lead .leadTxt .bg{
		top:-5px;
		left: -5px;
		width: calc(100% + 10px);
		height: calc(100% + 10px);
		background-image: url("../img/bg_lead_pc.png");
	}
	#lead .leadflash{
		left: 50%;
		transform: translateX(-50%);
		max-width: 960px;
		padding-top: 128px;
	}

	/* とは */
	#about{padding: 60px 0 0 0;}
	#about .text{
		border-radius:10px;
		padding: 50px 20px 30px 20px;
		transform: translateY(-35px);
		max-width: 920px;
		text-align: center;
	}

	/* バナー */
	#banner{padding: 60px 0 0 0;}
	#banner .lists{
		margin: 40px auto 50px auto;
		border-radius: 10px;
		padding-bottom: 0;
		gap:0 20px;
	}
	#banner .lists .Images{
		width: 45%;
		margin: 0;
	}
	#banner .lists .Text{
		padding: 0 ;
		width: calc(55% - 20px);
	}
	#banner .lists .Ttl{
		margin: 1em auto 15px auto;
		text-align: left;
		font-size: min(2.8vw, .24rem);
	}
	#banner .lists .Txt{
		font-size: min(1.7vw, .16rem);
		line-height: 1.6em;
		padding-right: 30px;
	}
	#banner .lists .present{
		margin: 30px auto 40px auto;
		width: calc(100% - 110px);
		padding: 25px;
		gap: 0 40px;
	}
	#banner .lists .present .Img{
		margin: 0;
		width: 30%;
	}
	#banner .lists .present .Txt{
		position: relative;
		margin: 0;
		padding-right: 0;
		width: calc(70% - 40px);
		padding-top: 10px;
	}
	#banner .lists .present .Txt .Ttl{
		margin: 0 auto 15px auto;
		text-align: center
	}

	#enter{
		margin:  120px auto 0 auto;
		padding: 60px 0;
	}
	#enter a{max-width: 450px;}


	/* login */
	#login{padding: 50px 0 0 0;}
	#login .inputArea{
		max-width: 960px;
		border-radius: 10px;
		padding: 20px 0 40px 0;
		transform: translateY(-35px);
	}
	#login .inputArea p{margin:40px auto 0 auto;}
	#login .inputArea p.lead{margin:20px auto 0 auto;}


	/*story */
	.story{padding-top: 70px;}
	.story .storyWrap{
		margin: 20px auto 0 auto;
		padding: 45px 0;
		border: solid 5px #061329;
	}

	.story .storyWrap::after{
		bottom: -5px;
		right: 18px;
		width: min(43%, 220px);
		height: 100%;
		background-image: url("../img/chara01_pc.png");
	}
	.story .storyflash{
		left: 50%;
		transform: translateX(-50%);
		max-width: 960px;
		padding-top: 128px;
	}
	.story .storyflash::after{
		top:45px;
		left: 38%;
	}

	/* mission */
	.mission{margin:  80px auto 20px auto;}
	.mission .missionWrap{
		padding: 50px 0;
		transform: translateY(-35px);
		max-width: 960px;
		border-radius: 10px;
	}
	.mission .hintWrap .Btnhint{
		padding: 5px 20px;
		font-size: .16rem;
	}
	.mission .hintWrap .hintTxt{font-size: .16rem;}

	/* clear */
	#clear .title{margin:25px auto 0 auto;}
	#clear .title img{margin: 0 auto;}
	#clear .clearTxt{
		max-width: 960px;
		padding: 50px 15px 120px 15px;
		border: solid 5px #340356;
	}
	#clear .clearTxt .bg{
		top:-5px;
		left: -5px;
		width: calc(100% + 10px);
		height: calc(100% + 10px);
		background-image: url("../img/bg_clear01_pc.png"), url("../img/bg_clear02_pc.png");
	}
	#clear .clearflash, #clear .clearflash1, #clear .clearflash2{
		right: 53%;
		transform: translateX(50%);
		max-width: 960px;
		padding-top: 128px;
	}
	#clear .clearflash1{bottom: 53%;right: auto;transform: translateX(-54%);left: 50%;}
	#clear .clearflash2{bottom: auto; top:-16%;}
	#clear .clearflash::after, #clear .clearflash1::after, #clear .clearflash2::after{background-position: 30% 50%;}
	#clear .clearflash1::after{background-position: 0 50%;}
	#clear .clearflash2::after{background-position: 50% 0;}
	#clear .clearTxt p{text-align: center;}

	/* share */
	#share{padding: 90px 0 60px 0;}
	#share .shareWrap{
		max-width: 920px;
		border-radius: 10px;
		padding: 70px 20px 50px 20px;
		transform: translateY(-35px);
	}
	#share ul{gap: 0 30px;}
	#share ul li{max-width: 65px;}


}

/* ----- story ----- */
@media screen and (min-width: 840px) {
	.story .storyWrap p{text-align: center;}
	.story .storyWrap p.spImg{
		width: calc(100% - 30px);
		margin: 2em auto;
		text-align: center;
	}
}