@charset "UTF-8";

/*-------------------------共通部分-------------------------------*/
html {
	font-size: 100%;
	width:100%;
	height: 100%;
}

body{
	/*日本語フォント*/
	font-family: "BIZ UDPMincho", serif;
	font-weight: 400;
	font-style: normal;
	color: #fff;
	background-color: #000;
	margin:0;
	padding:0;
}
*{
	cursor: url(images/cursor.cur), auto;
	}

a{
	text-decoration: none;
}
img{
	max-width: 100%;
}
.font-english {
	 font-family: "Michroma", sans-serif;
	font-weight: 400;
	font-style: normal;
}
/*-------------------------スクロール-------------------------*/
/*スクロールアイコン*/
.top-scroll {
	text-align:center;
	width:100%;
}
/*スクロールアイコンアニメーション*/
.top-scroll {
animation: fuwafuwa1 3s ease-in-out infinite alternate;
	display: inline-block;
	transition: 1.5s ease-in-out;
}

@keyframes fuwafuwa1 {
0% {
	transform:translate(0, 0) rotate(0deg);
}
50% {
	transform:translate(0, -7px) rotate(0deg);
}
100% {
	transform:translate(0, 0) rotate(0deg);
}}

.left-scroll {
	animation: fuwafuwa2 3s ease-in-out infinite alternate;
	transition: 1.5s ease-in-out;
}

@keyframes fuwafuwa2 {
0% {
	transform:translate(0, 0) rotate(-90deg);
}
50% {
	transform:translate(7px, 0) rotate(-90deg);
}
100% {
	transform:translate(0, 0) rotate(-90deg);
}}

.right-scroll {
	animation: fuwafuwa3 3s ease-in-out infinite alternate;
	transition: 1.5s ease-in-out;
}

@keyframes fuwafuwa3 {
0% {
	transform:translate(0, 0) rotate(90deg);
}
50% {
	transform:translate(-7px, 0) rotate(90deg);
}
100% {
	transform:translate(0, 0) rotate(90deg);
}}

/*-------------------------------ヘッダー------------------------------*/
header{
	z-index: calc(infinity);
	background: #000;
	position:fixed;
	display:flex;
	width:100%;
}

/*ナビゲーション*/
nav {
	width:80%;
}

h1{
	width:20%;
	text-align: center;
}
.pc-menu ul{
	color:#fff;
	justify-content:speace-between;
	display:flex;
	list-style: none;
}
.pc-menu li{
	width:25%;
}
.pc-menu a {
	color: #fff;
	display: flex;
	height: 100%;
	justify-content: center;
	align-items: center;
	position: relative;
}
/*ナビゲーションのアンダーライン*/
nav a::after{
	position: absolute;
	left: 0;
	content: '';
	width: 100%;
	height:2px;
	background: #fff;
	bottom: -5px;
	transform: scale(0, 1);
	transition: transform 0.3s;
}

nav a:hover::after{
	transform: scale(1, 1);
}
/*画像*/
.logo-mini{
	width:80px;
	height:130px;
	object-fit:contain;
}
/*--------------------------ハンバーガーメニュー--------------------------*/
.sp-menu__box {
	position: fixed;  /* 位置を固定 */
	top: 0;  /* 最上部 */
	right: 0;  /* 右端 */
	/* 中の要素を上下中央寄せ */
	display: flex;
	justify-content: center;
	align-items: center;
	/* サイズ指定 */
	height: 50px;
	width: 60px;
	/* 最前面にする */
	z-index: calc(infinity);
	background-color: #000;
}
/* メニューの白線を疑似要素を使って3本作成 */
.sp-menu__box span,	/* 真ん中の線 */
.sp-menu__box span:before,	/* 上の線 */
.sp-menu__box span:after { /* 下の線 */
	/* contentの値を指定しないと疑似要素が生成されない */
	content: "";
	/* ３本線のサイズと色を指定 */
	display: block;
	height: 3px;
	width: 25px;
	border-radius: 3px;
	background-color: #ffffff;
	/* 3本線の位置は絶対位置で指定 */
	position: absolute;
}
/* 上の線の位置 */
.sp-menu__box span:before {
	/* 真ん中の線と離す距離 */
	bottom: 8px;
}
/* 下の線の位置 */
.sp-menu__box span:after {
	/* 真ん中の線と離す距離 */
	top: 8px;
}


	/* チェックボックスは常に非表示 */
	#sp-menu__check {
		display: none;
	}
	/* チェックボックスのチェックがON（スマホ用メニューを開いた状態） */
	/* 真ん中の線 */
	#sp-menu__check:checked ~ .sp-menu__box span {
	/* 透明にして見えなくする */
	background: rgba(255, 255, 255, 0);
	}
	/* 上の線 */
	#sp-menu__check:checked ~ .sp-menu__box span::before {
	/* 真ん中の線との距離を無くす（真ん中の線と同じ位置にする） */
	bottom: 0;
	/* 右に45度傾けてバツの片側の線にする */
	transform: rotate(45deg);
	}
	/* 下の線 */
	#sp-menu__check:checked ~ .sp-menu__box span::after {
	/* 真ん中の線との距離を無くす（真ん中の線と同じ位置にする） */
	top: 0;
	/* 左に45度傾けてバツの片側の線にする */
	transform: rotate(-45deg);
	}
	#sp-menu__check:checked ~ .hamburger__content {
	left: 0;
	}
	/* スマホ用メニュー */
	.sp-menu__content {
	/* 絶対位置で指定   */
	position: fixed;
	/* 画面全体に表示 */
	width: 100%;
	height: 100%;
	/* 開始位置は左上隅 */
	top: 0;
	left: 0;
	/* 前面に表示するがハンバーガーボタンよりは背後 */
	z-index: 90;
	background-color: #000;
	}
	/* スマホ用メニューのリスト */
	.sp-menu__list {
	padding: 70px 10px 0;
	}
	/* スマホ用メニュー項目 */
	.sp-menu__item {
	border-bottom: solid 1px #ffffff;
	text-align: center;
	margin:2rem;
	list-style: none;
	}
	/* スマホ用メニュー項目のリンク */
	.sp-menu__link {
	display: block;
	width: 100%;
	font-size: 15px;
	box-sizing: border-box;
	color: #ffffff;
	text-decoration: none;
	padding: 9px 15px 10px 0;
	}
/* ハンバーガーボタンを押してチェックがONの時だけ
スマホ用メニューを画面左端に移動する */
#sp-menu__check:checked ~ .sp-menu__content {
	left: 0;
}
/* 変更箇所はコメントの項目のみ */
.sp-menu__content {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;

/* 普段は画面外にするために左端を画面右端の位置にする */
	left: 100%;

	z-index: 90;
	background-color: #000;

/* 右端からゆっくり移動するように表示 */
	transition: all 0.5s;
}


/*--------------------------------スクロールスナップ-------------------------------*/
.scroller {
	overflow-y: scroll;
	scroll-snap-type: y mandatory;
	height: 100vh;
	/*横スクロール禁止*/overflow-x:hidden;
}

.one-container{
	width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    vertical-align: top;
}
/*----------------------top 1ページ目-------------------------*/
.top-container {
	height: 90vh;
	align-items: center;
	display: flex;
	justify-content: space-around;
}
.top-container img{
	object-fit: contain;
	margin-top:6.5rem;
	width:500px;
	height:500px;
}
.main-image{
	padding-top:2.5rem;
	margin-top:0;
}
/*-----------------------TOPタイトル------------------------------*/
.title{
	padding:9rem;
	margin-top:5rem;
	text-align: center;
}
.h-title .sab-story {
	text-align: center;
}
/*-----------------------DLタイトル----------------------------*/
.dl-title{
	padding-top:9rem;
	text-align: center;
}
/*-----------------------top 2ページ目------------------------*/
.sab-story{
	margin-top:3rem;
}
.p-story{
	display: flex;
	align-items: center;
	height:55vh;
	line-height:1.7;
	justify-content: center;
}
.p-story img {
	width:450px;
	height:350px;
	margin-top:-4rem;
	margin-bottom:3.5rem;
	object-fit: contain;
}
.p-story p img{
	margin-top:.5rem;
}

.p-p-story{
	font-size:1.3rem;
}

/*-----------------------top ３ページ目-----------------------*/
.p-news{
	margin:-2rem;
	text-align: center;
}
.p-news ul{
	margin-top:-3rem;
	text-align:left;
	display:inline-block;
	list-style: none;
}
.p-news li{
	line-height:2;
}
.dl-logo {
	text-align: center;
}
.dl-logo img{
	object-fit:contain;
	width:100%;
	width:250px;
	height:300px;
}
li img{
	width:15px;
	margin-right:10px;
}
/*--------------------------ABOUTページ---------------------------*/
.pro-title{
	padding-top:11.5rem;
	text-align: center;
}
.prologue {
	line-height:1.7;
	text-align: center;
	padding:5rem;
}
.tutorial{
	padding-top: 10rem;
	padding-bottom: .5rem;
	text-align: center;
	line-height:1.7;
}
.tutorial img{
	width:750px;
	height:600px;
	object-fit: contain;
	margin-top:-3rem;
}
.ep-about{
	height:100vh;
	background-image: url(images/keyimg_pc.webp);
	background-repeat:no-repeat;
	background-position: center center;
	background-size: contain;
	background-attachment: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	
}
.ep-about img{
	width:400px;
	

}
/*----------------------------DL CONTACTページ----------------------------*/
.dl-container{
	display:flex;
	flex-direction:column;
	align-items:center;
	height:500px;
}
.dl-p{
	text-align: center;
	color: #fff;
	margin: auto;
}
/*フォーム お問い合わせ*/
.form{
	display:flex;
	flex-direction:column;
	align-items:center;
	height:100%;
	margin:4rem 2rem 5.7rem 2rem;
}
.form p{
	padding:2rem;
}
/*お問い合わせ欄*/
.cp_iptxt {
	position: relative;
	width: 30%;
	margin: 10px 5%;
	padding-bottom:3rem;
}
.cp_iptxt input[type='text'] {
	font: 16px/150px sans-serif;
	box-sizing: border-box;
	width: 100%;
	padding: 0.3em;
	transition: 0.3s;
	letter-spacing: 1px;
	color: #aaaaaa;
	border: 1px solid #fff;
	border-radius: 4px;
}
.ef input[type='text']:focus {
	border: 1px solid #9a8feb;
	outline: none;
	box-shadow: 0 0 5px 1px rgba(218,60,65, .5);
}
/*送信ボタン*/
.button10 {
	display: inline-block;
	background: linear-gradient(to right, #ed47ff 0%, #39f4ff 45%, #ed47ff 100%);
	background-size: 200% auto;  
	color: #fff;
	border-radius: 20px;
	padding: 10px 30px;
	text-decoration: none;
	font-size: 1em;
	transition: .5s;
}
.button10:hover {
	color: #fff;
	background-position: right center;
}
/*-------------------フッター-------------------------------*/
footer{
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;

}
.copy-right{
	width:100%;
	bottom: 0;
	padding:.5rem;
	background-color: #000;
	color: #fff;
	text-align: center;
}

/*--------------------キャラページ-------------------------------*/
.characters{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
	grid-column-gap: 0px;
	grid-row-gap: 0px;
}
.p-characters{
	grid-area: 1 / 2 / 2 / 3;
	padding-top:50px;
	padding-left:10px;
	}
.p-characters * {
	width: 11rem;
	line-height:1.7;
}
.img-characters{
	grid-area: 1 / 1 / 3 / 2;
	display:flex;
	justify-content: center;
	align-items: center;
}
.btn-characters{
	grid-area: 2 / 2 / 3 / 3;
	padding-left:10px;
	padding-top:10px;
}
.neon {
	width: 500px;
	height: 500px;
	object-fit: contain;
	padding-bottom:10px;
}


/*---←---*/
.right-scroll{
	
	width: 100px;
	height: 100px;
	object-fit: contain;
	
}
/*---→---*/
.left-scroll{
	width: 100px;
	height: 100px;
	object-fit: contain;
}
.btn1{

	width: 100px;
	height: 100px;
	object-fit: contain;
}

.btn2{
	width: 100px;
	height: 100px;
	object-fit: contain;
}




/*---------------------------メディアクエリ------------------------------------*/

/* 画面サイズが1000px以下の時はPC用メニューは非表示 */
@media screen and (max-width: 600px) {
	.pc-menu {
		display: none;
}
}
/* 画面サイズが600px以上の時はスマホ用メニューは非表示 */
@media screen and (min-width: 601px) {
	.sp-menu {
	display: none;
}
}

@media (max-width: 600px){
/*top1*/
.logo-mini{
	height:auto;
}
.top-container {
	flex-direction:column;
		}
.top-container img{
	object-fit: contain;
	height:250px;
	margin-top:4rem;
}
.main-image{
	padding-top:0;
}
/*top2*/
.top-scroll{
	display:none;
}
.left-scroll{
	display:none;
}
.right-scroll{
	display:none;
}
.title{
	padding:5rem 5rem 1rem 5rem;
}
.p-story{
	display:flex;
	flex-direction:column;
	margin:0 2rem 0 2rem;
}
.p-story p{
	font-size:10px;
}
.p-story img{
	margin-top:1rem;
	height:200px;
	object-fit: contain;
}
/*top3*/
.p-news{
	font-size:12px;
	margin:4rem;
	}
.dl-logo img{
	width:250px;
	height:130px;
	object-fit: contain;
}
/*footer*/
/*about*/
.pro-title{
	padding:6rem 3rem 1rem 3rem;
}
.prologue{
	padding:1rem 3rem 1rem 3rem;
}
.tutorial{
	padding: 5.5rem 0 .5rem 0;
}
.ep-about{
	height:100vh;
	background-image: url(images/keyimg_sp.webp);
	background-repeat:no-repeat;
	background-position: center center;
	background-size: contain;
	background-attachment: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	
}
.ep-about img{
	width:300px;
	margin-top:10rem;
}
/*characters*/
.dl-title{
	padding:4.5rem 0 4.5rem 0;
}
.neon{
	height:420px;
	width:180px;
	object-fit: contain;
}
.dl-container{
	height:440px;
	}
.dl-p{
		margin:2rem;
		padding:1rem 2rem 1rem 2rem;
}
.form{
	margin:1rem 2rem 5rem 2rem;
}
.cp-ipxt{
	z-index:-1;
}
.form p{
	padding:.5rem;
}
.cp_iptxt{
	width:100%;
	margin:20px 8%;
}
}