@charset "utf-8";
#bg{
	position: fixed;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	background-image: url("../img/story/bg.jpg");
	background-position: 50% 0;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: 0;
	transform:scale(2, 2);
}
#bg::after{
	position: absolute;
	top:0;
	left: 0;
	width: 100vw;
	content: '';
	display: block;
	height: 100px;
	background: rgb(0,0,0);
	background: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 80%);
}

h1 {
	position: relative;
	width: 30%;
	max-width: 200px;
	margin: 10px 0 0 10px;
	z-index: 11000;
}

#chara{
	position: relative;
	margin:0 auto;
	padding: 30px 0 0 0;
}
#chara h2{
	position: relative;
	margin: 0 auto;
	font-size: min(3vw, .18rem);
	line-height: 1em;
	text-align: center;
	color: #ffffff;
}
#chara h2 span{
	position: relative;
	display: block;
	font-size:min(8vw, .53rem);
	line-height: 1em;
}
#chara ul{
	position: relative;
	margin: 0 auto;
}
#chara ul.chara01{margin: -2% auto 0 auto;width: calc(100% - 10px);max-width: 400px;}
#chara ul.chara02{
	margin: -6% auto 0 auto;
	width: calc(90% - 40px);
	max-width: 340px;
	padding: 20px;
	background-image: url("../img/story/bg_chara.png");
	background-position: 50% 0;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	gap: 5px 0;
}
#chara ul li{
	position: relative;
	margin: 0;
	width: 100%;
}
#chara ul.chara01 li:nth-child(2){margin: -14% 0 0 0;}


#story{
	position: relative;
	margin: -2% auto 0 auto;
	padding-bottom: 50px;
}
#story .ttlWrap{
	position: relative;
	margin: 0 auto;
	width: calc(100% - 20px);
	max-width: 1200px;
}
#story .ttlWrap #ttl{
	position: relative;
	margin: 0 auto;
	width: 100%;
	background-image: url("../img/story/ttl_bg.png");
	padding-top: 35.072%;
	background-position: 50% 0;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: 0;
}
#story h2 span{
	position: relative;
	display: block;
	font-size:min(8vw, .53rem);
	line-height: 1em;
}

#story #catch1{
	position: absolute;
	top: -12%;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	width: calc(100% - 20px);
	max-width: 1100px;
	opacity: 0;
	font-size: min(5vw, .40rem);
	line-height: 1.1em;
}
#story #catch1 #catch01{
	position: relative;
	margin: 0 auto;
	display: block;
	width: calc(100% - 20px);
	max-width: 1100px;
	opacity: 0;
	transform:scale(3, 3);
}
#story #catch2{
	position: absolute;
	bottom: -35%;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 1400px;
	background-image: url("../img/story/bg01.png");
	background-position: 50% 0;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	opacity: 0;
}
#story #catch2 #catch02{
	position: relative;
	margin: 0 auto;
	padding:8% 0 15px 0;
	font-size: min(5vw, .40rem);
	line-height: 1.1em;
	font-weight: 700;
	width: 80%;
	max-width: 680px;
	opacity: 0;
	transform:scale(1.4, 1.4);
}
#story #catch2 #catch02 span{
	position: relative;
	margin: 0 auto;
	display: block;
}
#story #catch2 #catch02 span.txt01{text-align: right;}

#story p{
	position: relative;
	margin: 13% auto 0 auto;
	width: calc(100% - 30px);
	max-width: 960px;
}

/* ----- pc ----- */
@media screen and (min-width: 799px) {
	
	#bg{background-image: url("../img/story/bg_pc.jpg");}
	#bg::after{height: 250px;}
	
	h1 {margin: 20px 0 0 20px;}

	#chara ul.chara01{margin: -1% auto 0 auto;max-width: 1200px;}
	#chara ul.chara02{
		margin: -3.5% auto 0 auto;
		width: calc(96% - 80px);
		max-width: 1120px;
		padding: 20px 40px;
		gap: 0 5px;
		background-image: url("../img/story/bg_chara_pc.png");
	}
	#chara ul.chara01 li{width: 50%;}
	#chara ul.chara01 li:nth-child(1){margin: 0 -1% 0 0;}
	#chara ul.chara01 li:nth-child(2){margin: 0 0 0 -1%;}
	#chara ul.chara02 li{width: 28.3%;}
	#chara ul.chara02 li:nth-child(2){width: calc(43.4% - 10px);}

	#story{margin: -1% auto 0 auto;padding-bottom: 100px;}
	#story #catch1{top: auto;bottom:0; z-index: 100;}
	#story #catch2{bottom: calc(-10% - 6em); background-image: url("../img/story/bg01_pc.png");}
	#story #catch2 #catch02{padding:10% 0 25px 0;}
	#story p{margin: 9% auto 0 auto;}

}