@charset "utf-8";

/* PC
-------------------------------------------------- */
@media screen and (min-width:1000px){
	main{
		margin-top: 60px;
		font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
	}

	.title{
		background: #b50004;
		padding: 20px 0;
	}

	h1{
		display: block;
		width: 100%;
		max-width: 1300px;
		margin: 0 auto;
		text-align: center;
		font-size: 42px;
		line-height: 42px;
		font-weight: 600;
		color: #ffffff;
	}

	h1 span{
		display: block;
		text-align: center;
		font-size: 20px;
		line-height: 20px;
		position: relative;
		z-index: 1;
		margin-top: 20px;
	}

	h1 span::before{
		content: "";
		display: block;
		width: 100%;
		max-width: 1230px;
		height: 1px;
		background-image : linear-gradient(to right, #ffffff 2px, transparent 2px);
		background-size: 3px 1px;
		background-repeat: repeat-x; 
		background-position: left bottom;
		position: absolute;
		left: 0;
		top: -10px;
	}

	h1 span::after{
		content: "";
		display: block;
		width: 60px;
		height: 14px;
		background: url("../img/title_darts.png") 0 0 no-repeat;
		background-size: contain;
		position: absolute;
		top: -16px;
		right: 0;
		z-index: 1;
	}
	
	.wrap{
		background: url("../img/story_bgi.jpg") top center no-repeat;
		background-size: cover;
		background-attachment: fixed;
	}
	
	/* 白背景 */
	.whiteBack{
		box-sizing: border-box;
		width: 100%;
		max-width: 1200px;
		padding: 60px;
		background: url("../img/product_bgi.png") center center no-repeat, #ffffff;
		background-attachment: fixed, local;
		background-size: contain, auto;
		margin: 0 auto;
		opacity: 0;
		animation: fadeIn 1s forwards;
	}
	
	@keyframes fadeIn{
		from{opacity: 0;}
		to{opacity: 1;}
	}
	
	/* 頭文 */
	.topTxt{
		font-size: 40px;
		line-height: 1.6em;
		text-align: center;
		margin-bottom: 60px;
		opacity: 0;
		animation-delay: 0.5s;
		animation: fadeIn 1s forwards;
	}	
	.topTxt span{
		color: #cc0000;
	}
	
	/* メインビジュアル */
	.mainVisual{
		width: 100%;
		opacity: 0;
		animation: slideIn 1s forwards;
		animation-delay: 1s;
	}
	
	@keyframes slideIn{
		from{
			opacity: 0;
			transform: translateY(50px);
		}
		to{
			opacity: 1;
			transform: translateY(0);
		}
	}
	
	/* アニメーション待機 */
	.standby{opacity: 0;}
	
	/* あらすじ */
	.summary.run{
		box-sizing: border-box;
		width: 100%;
		max-width: 900px;
		margin: 100px auto;
		padding: 80px 0;
		background: url("../img/mark_akane.png") top left no-repeat,
						url("../img/mark_souta.png") top right no-repeat,
						url("../img/mark_yui.png") bottom right no-repeat,
						url("../img/mark_rui.png") bottom left no-repeat;
		background-size: 50px auto;
		animation: fadeIn 1s forwards;
		animation-delay: 0.5s;
	}
	
	.summary p.run{
		display: block;
		box-sizing: border-box;
		font-size: 24px;
		line-height: 2em;
		font-weight: normal;
		text-align: center;
		position: relative;
		z-index: 1;
		margin-bottom: 0;
		animation: fadeIn 1s forwards;
		animation-delay: 1s;
	}
	
	.summary br.pcNone{
		display: none;
	}
	
	/* キャラクター */
	.character li{
		display: flex;
		align-items: center;
		position: relative;
		z-index: 1;
	}
	
	.character li:nth-child(even){
		flex-direction: row-reverse;
	}
	
	.character li:not(:first-child){
		margin-top: -20px;
	}
	
	.charaImg{
		width: 100%;
		max-width: 630px;
	}
	
	.charaImg img{
		max-width: 100%;
	}
	
	.souta .charaImg.run{
		animation: soutaImg 1s forwards;
	}
	@keyframes soutaImg{
		from{opacity: 0; transform: translateY(-50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.akane .charaImg.run{
		animation: akaneImg 1s forwards;
	}
	@keyframes akaneImg{
		from{opacity: 0; transform: translateX(-50px);}
		to{opacity: 1; transform: translateX(0);}
	}
	
	.yui .charaImg.run{
		animation: yuiImg 1s forwards;
	}
	@keyframes yuiImg{
		from{opacity: 0; transform: translateY(50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.rui .charaImg.run{
		animation: ruiImg 1s forwards;
	}
	@keyframes ruiImg{
		from{opacity: 0; transform: translateX(50px);}
		to{opacity: 1; transform: translateX(0);}
	}
	
	.charaTxt.run{
		opacity: 1;
	}
	
	.charaTxt.run span{
		display: block;
		width: 100%;
		max-width: 540px;
		box-sizing: border-box;
		padding: 20px;
		text-align: center;
		font-size: 24px;
		position: absolute;
		top: 50%;
		z-index: 2;
		margin-top: -50px;
		opacity: 0;
	}
	
	.souta .charaTxt.run span{
		right: 0;
		animation: soutaTxt 1s forwards;
	}
	@keyframes soutaTxt{
		from{opacity: 0; transform: translateX(-50px);}
		to{opacity: 1; transform: translateX(0);}
	}
	
	.akane .charaTxt.run span{
		left: 0;
		animation: akaneTxt 1s forwards;
	}
	@keyframes akaneTxt{
		from{opacity: 0; transform: translateX(50px);}
		to{opacity: 1; transform: translateX(0);}
	}
	
	.yui .charaTxt.run span{
		right: 0;
		animation: yuiTxt 1s forwards;
	}
	@keyframes yuiTxt{
		from{opacity: 0; transform: translateX(-50px);}
		to{opacity: 1; transform: translateX(0);}
	}
	
	.rui .charaTxt.run span{
		left: 0;
		animation: ruiTxt 1s forwards;
	}
	@keyframes ruiTxt{
		from{opacity: 0; transform: translateX(50px);}
		to{opacity: 1; transform: translateX(0);}
	}
	
	.character li.souta .charaTxt span{background: #037fbf; color: #ffffff;}
	.character li.akane .charaTxt span{background: #e50011; color: #ffffff;}
	.character li.yui .charaTxt span{background: #ffdf52;}
	.character li.rui .charaTxt span{background: #16c46c; color: #ffffff; margin-top: -25px;}
	
	.charaTxt.run span{
		animation-delay: 0.25s !important;
	}
	
	.summary2.run{
		font-size: 24px !important;
		line-height: 2em !important;
		font-weight: normal;
		text-align: center;
		margin: 100px auto 0 !important;
		animation: fadeIn 1s forwards;
		animation-delay: 1s;
	}
	.summary2 br.pcNone{
		display: none;
	}
	
	.movie{
		position: relative;
		padding-bottom: 56.25%;
		height: 0px;
		margin-top: 100px;
	}
	
	.movie iframe{
		position: absolute;
		top: 0px;
		left: 0px;
		width: 100%;
		height: 100%;
	}
}

/* SP
-------------------------------------------------- */
@media screen and (max-width:999px){
	main{
		margin-top: 60px;
		font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
	}

	.title{
		background: #b50004;
		padding: 20px 0;
	}

	h1{
		display: block;
		width: 100%;
		max-width: 1300px;
		margin: 0 auto;
		text-align: center;
		font-size: 30px;
		line-height: 30px;
		font-weight: 600;
		color: #ffffff;
	}

	h1 span{
		display: block;
		text-align: center;
		font-size: 14px;
		line-height: 14px;
		position: relative;
		z-index: 1;
		margin-top: 20px;
	}

	h1 span::before{
		content: "";
		display: block;
		width: 82%;
		height: 1px;
		background-image : linear-gradient(to right, #ffffff 2px, transparent 2px);
		background-size: 3px 1px;
		background-repeat: repeat-x; 
		background-position: left bottom;
		position: absolute;
		left: 0;
		top: -10px;
	}

	h1 span::after{
		content: "";
		display: block;
		width: 40px;
		height: 12px;
		background: url("../img/title_darts.png") 0 0 no-repeat;
		background-size: contain;
		position: absolute;
		top: -14px;
		right: 20px;
		z-index: 1;
	}
	
	.wrap{
		background: url("../img/story_bgi.jpg") top center no-repeat;
		background-size: cover;
		background-attachment: fixed;
		padding: 0 20px;
	}
	
	/* 白背景 */
	.whiteBack{
		box-sizing: border-box;
		width: 100%;
		max-width: 1200px;
		padding: 40px 20px;
		background: url("../img/product_bgi.png") center center no-repeat, rgba(255,255,255,0.9);
		background-attachment: fixed, local;
		background-size: contain, auto;
		margin: 0 auto;
		opacity: 0;
		animation: fadeIn 1s forwards;
	}
	
	@keyframes fadeIn{
		from{opacity: 0;}
		to{opacity: 1;}
	}
	
	/* 頭文 */
	.topTxt{
		font-size: 24px;
		line-height: 1.6em;
		text-align: center;
		margin-bottom: 40px;
		opacity: 0;
		animation-delay: 0.5s;
		animation: fadeIn 1s forwards;
	}	
	.topTxt span{
		color: #cc0000;
	}
	
	/* メインビジュアル */
	.mainVisual{
		width: 100%;
		opacity: 0;
		animation: slideIn 1s forwards;
		animation-delay: 1s;
	}
	
	@keyframes slideIn{
		from{
			opacity: 0;
			transform: translateY(50px);
		}
		to{
			opacity: 1;
			transform: translateY(0);
		}
	}
	
	/* アニメーション待機 */
	.standby{opacity: 0;}
	
	/* あらすじ */
	.summary.run{
		box-sizing: border-box;
		width: 100%;
		max-width: 900px;
		margin: 60px auto;
		padding: 0;
		animation: fadeIn 1s forwards;
		animation-delay: 0.5s;
	}
	
	.summary p.run{
		display: block;
		box-sizing: border-box;
		font-size: 18px;
		line-height: 2em;
		font-weight: normal;
		text-align: center;
		position: relative;
		z-index: 1;
		margin-bottom: 0;
		animation: fadeIn 1s forwards;
		animation-delay: 1s;
	}
	
	/* キャラクター */
	.character li{
		align-items: center;
	}
	
	.character li:not(:first-child){
		margin-top: 20px;
	}
	
	.charaImg{
		width: 100%;
		max-width: 630px;
	}
	
	.charaImg img{
		max-width: 100%;
	}
	
	.souta .charaImg.run{
		animation: soutaImg 1s forwards;
	}
	@keyframes soutaImg{
		from{opacity: 0; transform: translateY(-50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.akane .charaImg.run{
		animation: akaneImg 1s forwards;
	}
	@keyframes akaneImg{
		from{opacity: 0; transform: translateY(-50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.yui .charaImg.run{
		animation: yuiImg 1s forwards;
	}
	@keyframes yuiImg{
		from{opacity: 0; transform: translateY(-50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.rui .charaImg.run{
		animation: ruiImg 1s forwards;
	}
	@keyframes ruiImg{
		from{opacity: 0; transform: translateY(-50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.charaTxt.run{
		animation: topSlide 1s forwards;
		animation-delay: 0.5s;
	}
	
	@keyframes topSlide{
		from{opacity: 0; transform: translateY(-50px);}
		to{opacity: 1; transform: translateY(0);}
	}
	
	.charaTxt.run span{
		display: block;
		width: 100%;
		max-width: 540px;
		box-sizing: border-box;
		padding: 15px 0;
		text-align: center;
		font-size: 16px;
		border-radius: 0 0 10px 10px;
	}
	
	.character li.souta .charaTxt.run span{background: #037fbf; color: #ffffff;}
	.character li.akane .charaTxt.run span{background: #e50011; color: #ffffff;}
	.character li.yui .charaTxt.run span{background: #ffdf52;}
	.character li.rui .charaTxt.run span{background: #16c46c; color: #ffffff; margin-top: -25px;}
	
	.summary2.run{
		font-size: 18px !important;
		line-height: 2em !important;
		font-weight: normal;
		text-align: center;
		margin: 60px auto 0 !important;
		animation: fadeIn 1s forwards;
		animation-delay: 1s;
	}
	
	.movie{
		position: relative;
		padding-bottom: 56.25%;
		height: 0px;
		margin-top: 60px;
	}
	
	.movie iframe{
		position: absolute;
		top: 0px;
		left: 0px;
		width: 100%;
		height: 100%;
	}
	
	footer{
		margin-top: 0;
	}
}