
@charset "utf-8";

@-ms-viewport {
    width: device-width;
}


/* 全体
------------------------------------------------*/
/* webフォント読み込み  */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&display=swap');
html[lang="ja"] {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  }

ul, ol, dl { 
	list-style: none;
}

body {
	margin: 0;
	padding: 0;
	overflow: scroll;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-weight: 400!important;
	background: linear-gradient(-90deg,rgb(205, 120, 198) 0%, rgb(88, 177, 232) 100%);

}
a{
	text-decoration: none;
}

 /*  ================================================================  */
/* 全体　背景へBG  */
 /*  ================================================================  */
  /*  全体へのpadding　一括指定  */
.wrapper {
	width: 100%;
	margin: 0 auto;
	overflow: hidden;
}
@media screen and (min-width:641px) { /*- PC -*/
	.wrapper,  .wrapper_inner, footer {
		width: 640px;
	}
}
.wrapper_inner{
	height: auto;
	background: linear-gradient(180deg, rgba(255,98,146,0.8) 0%, rgba(126,74,198,0.8) 40%, rgba(8,149,252,0.8) 50%, rgba(255, 255, 255, 1) 60%, rgba(255, 255, 255, 1) 100%);
}
/*  ================================================================  */
/* wrap_01
/*  ================================================================  */
.wrap_01{ /*-　親　-*/
	position: relative;
	height: 56vw; /* 高さ後で調整  */
}
@media screen and (min-width:641px) { /*- PC -*/
	.wrap_01{ 
		height: 370px; /* 高さ調整  */
	}
}
.wrap_01_bg{
	position: absolute;
	top:0;
	width: 100%;
}
.wrap_01_bg img{
	width: 100%;
}
.wrap_01_logo{
	position: absolute;
	top:0;
	right: 0;
}
.wrap_01_logo img{
	width: 20vw;
	margin-left: 10vw;
}
@media screen and (min-width:641px) { /*- PC -*/
	.wrap_01_logo img{
		width: 70%;
		margin-left: 30%;
	}
}

.wrap_01_readwrap{
	position: absolute;
	z-index: 2;
	top: 2vw;
	left: 2vw;
}
.wrap_01_read01{
	width: 100%;
	margin-bottom: -3.2%;
	animation-delay: 1s;
}
.wrap_01_read02{
	width: 100%;
	margin-left: 1%;
	animation-delay: 1.3s;

}
.wrap_01_read03{
	width: 100%;
	margin-left: 3%;
	margin-top: -3.2%;
	animation-delay: 1.6s;

}
.wrap_01_read01 img{
	width: 35vw;
}
.wrap_01_read02 img{
	width: 45vw;
}
.wrap_01_read03 img{
	width: 45vw;
}

@media screen and (min-width:641px) { /*- PC -*/
	.wrap_01_readwrap{
		top: 3%;
		left: 2%;
		width: 70%;
	}
	.wrap_01_read02{
		width: 100%;
		margin-bottom: -2%;
	}
	.wrap_01_read01 img{
		width: 60%;
	}
	.wrap_01_read02 img{
		width: 70%;
	}
	.wrap_01_read03 img{
		width: 70%;
	}
}
.wrap_01_gamewrap{
	position: relative;
	z-index: 1;
	top: 15vw;
	left: -7%;
	width: 73vw;
	transform:rotate(-6deg);
}
@media screen and (min-width:641px) { /*- PC -*/
	.wrap_01_gamewrap{
		top: 20%;
		width: 100%;
	}
}
.wrap_01_gamewrap img{
	width: 70%;  /*-　スマホ　ゲーム画面サイズ　-*/
}
.wrap_01_game_bg{
	position: absolute;
	animation-delay: 3s;
}
.wrap_01_game_txt01{
	position: absolute;
	animation-delay: 4s;

}
.wrap_01_game_txt02{
	position: absolute;
	animation-delay: 4.5s;

}
.wrap_01_game_txt03{
	position: absolute;
	animation-delay: 5s;

}
.wrap_01_game_txt04{
	position: absolute;
	animation-delay: 5.5s;
}

/*  ================================================================  */
/* wrap_02
/*  ================================================================  */
.wrap_02{ /*-　親　-*/
	position: relative;
	height:  100vw /* 高さ後で調整  */
}

@media screen and (min-width:641px) { /*- PC -*/
	.wrap_02{ 
		height: 700px; /* 高さ調整  */
	}
}
.wrap_02_bg{
	position: absolute;
	width: 100%;

}
.wrap_02_bg img{
	width: 100%;
}

.wrap_02_readwrap{
	position: absolute;
	z-index: 2;
	width: 100%;
	top:35%;
	margin-left: -3%;
}
.wrap_02_readwrap img{
	width: 105%;
}
.wrap_02_read01{
	animation-delay: 5.7s;
}
.wrap_02_read02{
	margin-top: -14.5vw;
	animation-delay: 6s;

}

@media screen and (min-width:641px) { /*- PC -*/
	.wrap_02_read02{
		margin-top: -12%;
	}
}

@media screen and (max-width:470px) { /*-小さめSP-*/
	.wrap_02_read02{
		margin-top: -17vw;
	}
}
@media screen and (max-width:390px) { /*-より小さめSP-*/
	.wrap_02_read02{
		margin-top: -19vw;
	}
}
.wrap_02_dlwrap{
	position: relative;
	top:82.5%;
	background: linear-gradient(180deg,rgba(255, 255, 255, 0) 0%,rgba(255, 255, 255,1) 30% rgba(255, 255, 255,1) 100%);

}

.wrap_02_dl_txt{
	position: absolute;
	z-index: 3;
	bottom: -1vw;
	/*-animation: fadein-out  infinite  alternate; /*-alternate 逆再生-*/
	animation-duration: 1.5s;
}

@media screen and (min-width:641px) { /*- PC -*/
	.wrap_02_dl_txt{
		margin-top: -12%;
		bottom: -5px;
	}
}
@media screen and (max-width:470px) { /*-小さめSP-*/
	.wrap_02_dl_txt{
		padding-top: 20vw;
		bottom: 0;
	}
}
/* ============================================================================ */
/* ============================================================================ */
/* フェードイン・フェードアウトを繰り返す */
@keyframes fadein-out {
	0% {
		opacity: 0;
		}
	20% {
		opacity: 0;
		}
	100% {
		opacity:1;
	}
}
/* ============================================================================ */
/* ============================================================================ */


.wrap_02_dl_txt img{
	width: 100%;
}
.wrap_02_dl_btnwrap{
	position: absolute;
	display: flex;
}
.wrap_02_dl_btn01 img{
	width: 100%;
}
.wrap_02_dl_btn02 img{
	width: 100%;
}

/* footer =================================================== */
footer {
	position: relative;
	background: linear-gradient(-90deg,rgba(212, 168, 208,1) 0%, rgba(154, 203, 233,1) 100%);
    padding: 1vw 0 10vw 0;
    margin: 0 auto;
    text-align: center;
}

footer img {
    width: 100%;
}

footer p {
    margin-top: 2vw;
    margin-bottom: 1vw;
    font-size: 2vw;
	color: #fff;
}


@media screen and (min-width:641px) { /*- PC -*/
	footer {
		padding: 5% 0 18% 0;
		width: 100%;
		
	}
	
	footer img {
		width: 100%;
	}
	
	footer p {
		margin-top: 5%;
		margin-bottom: 2%;
		font-size: xx-small;
	}
	
}
@media screen and (max-width:470px) { /*-小さめSP-*/
	.wrap_02_read02{
		margin-top: -17vw;
	}
}
@media screen and (max-width:390px) { /*-より小さめSP-*/
	.wrap_02_read02{
		margin-top: -19vw;
	}
}
/* ========================================================================== 
　 モーダル
============================================================================ */

/*モーダルを開くボタン*/
.modal-open{
	text-align: center;
	display: inline-block;
    justify-content: center;
	color: #6e7db1;
	background: rgba(255, 255, 255,0.55);
	margin: 0 auto;
	border-radius: 5px;
	padding: 5px 10px;
	cursor: pointer;
	font-weight: 400;
	font-size: 2vw;

}
@media screen and (min-width:641px) { /*- PC -*/
	.modal-open{
		font-size: 0.8em;
	}
	
	footer img {
		width: 100%;
	}
	
	footer p {
		margin-top: 5%;
		margin-bottom: 2%;
		font-size: xx-small;
		color: #fff;
	}
	
}
/*モーダル本体の指定 + モーダル外側の背景の指定*/
.modal-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    background: rgba(0, 0, 0, 0.5);
    padding: 40px 20px;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    box-sizing: border-box;
}
/*モーダル本体の擬似要素の指定*/
.modal-container:before{
	content: "";
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}
/*モーダル本体に「active」クラス付与した時のスタイル*/
.modal-container.active{
	opacity: 1;
	visibility: visible;
	z-index: 100;
}
/*モーダル枠の指定*/
.modal-body{
	position: relative;
	display: inline-block;
	vertical-align: middle;
	max-width: 500px;
	width: 90%;
	
}
/*モーダルを閉じるボタンの指定*/
.modal-close{
	position: absolute;
	z-index: 1000;
	display: flex;
    align-items: center;
    justify-content: center;
	top: -50px;
	right: -25px;
	width: 50px;
	height: 50px;
	font-size: 43px;
	font-weight: 600;
	color: #ffffff;

}
/*モーダル内のコンテンツの指定*/
.modal-content{
	background: #fff;
	text-align: center;
	height: 130vw;
	overflow: auto;
}
@media screen and (min-width:641px) { /*- PC -*/
/*モーダル内のコンテンツの指定*/
.modal-content{
	height: 70vh;
}
	
}
.modal-content p{
	background: linear-gradient(-90deg,rgba(212, 168, 208,1) 0%, rgba(154, 203, 233,1) 100%);
	z-index: 10;
	position: sticky;
	top: 0;
	display: inline-block;
	width: 100%;
	color: #fff;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: bold;
	font-size: large;
	margin-top: 0;
	padding: 10px 0;

}
.modal-content dl{
	font-family: 'Noto Sans JP', sans-serif;
	padding: 0px 20px 20px 20px;
}
.modal-content dt{
	opacity: 0.8;
	font-size: 0.9em;
	font-weight: 600;
	margin: 0 0 2% 0;
}
.modal-content dd{
	font-size: 0.95em;
	margin-left: 0;
	margin-top: 10%;
	margin-bottom: 3%;
	color: #b1c2ff;


}
/* ============================================================================ */
/* ============================================================================ */
 /*  ================================================================  */
/* 画面全体　キラキラ 装飾 */
.deco_kira {
	position: relative;
	top: -140vh;
	list-style: none;
	margin: 0;
	padding: 0;
	z-index:  1;
	width: 100%;
	height: auto;
	mix-blend-mode: hard-light;
	filter: drop-shadow(0 0 5px #fff);
}

@media screen and (min-width:641px) { /*- PC -*/
	.deco_kira {
		width: 640px;
	}
}

.deco_kira li:nth-child(1) {
	position: absolute;
	top: 50vh;
	left: 5vh;
	-webkit-animation: decokira 4.2s ease infinite;
	        animation: decokira 4.2s ease infinite;
}

.deco_kira li:nth-child(2) {
	position: absolute;
	right: 14vh;
	top: 2vh;
	-webkit-animation: decokira_mini 3.5s ease infinite;
	        animation: decokira_mini 3.5s ease infinite;
}

.deco_kira li:nth-child(3) {
	position: absolute;
	top: 58vh;
	left: 23vh;
	-webkit-animation: decokira 5.8s ease infinite;
	        animation: decokira 5.8s ease infinite;
}

.deco_kira li:nth-child(4) {
	position: absolute;
	right: 10vh;
	top: 33vh;
	-webkit-animation: decokira 3.9s ease infinite;
	        animation: decokira 3.9s ease infinite;
}

.deco_kira li:nth-child(5) {
	position: absolute;
	right: 50vh;
	top: 15vh;
	-webkit-animation: decokira 4.7s ease infinite;
	        animation: decokira 4.7s ease infinite;
}

.deco_kira li:nth-child(6) {
	position: absolute;
	left: 0vh;
	top: 45vh;
	-webkit-animation: decokira_mini 3.2s ease infinite;
	        animation: decokira_mini 3.2s ease infinite;
}

.deco_kira li:nth-child(7) {
	position: absolute;
	right: 28vh;
	top: 65vh;
	-webkit-animation: decokira 5.1s ease infinite;
	        animation: decokira 5.1s ease infinite;
}

.deco_kira li:nth-child(8) {
	position: absolute;
	right: 6vh;
	top: 40vh;
	-webkit-animation: decokira_mini 4.4s ease infinite;
	        animation: decokira_mini 4.4s ease infinite;
}

.deco_kira li:nth-child(9) {
	position: absolute;
	left: 50vh;
	top: 79vh;
	-webkit-animation: decokira_mini 3.6s ease infinite;
	        animation: decokira_mini 3.6s ease infinite;
}

.deco_kira li:nth-child(10) {
	position: absolute;
	right: 20vh;
	top: 36vh;
	-webkit-animation: decokira_mini 5.5s ease infinite;
	        animation: decokira_mini 5.5s ease infinite;
}

.deco_kira li:nth-child(11) {
	position: absolute;
	right: 6vh;
	top: 65vh;
	-webkit-animation: decokira 4.9s ease infinite;
	        animation: decokira 4.9s ease infinite;
}

/* キラキラのアニメーション */
@keyframes decokira {
	0% {
		opacity: 0;
		transform: scale(0, 0);
	}
	30% {
		opacity: 0.7;
		transform: scale(1, 1.3);
	}
	60% {
		opacity: 0;
		transform: scale(2, 2.6);
		filter: blur(1px);
	}
	100% {
		opacity: 0;
	}
}

@keyframes decokira_mini {
	0% {
		opacity: 0;
		transform: scale(0, 0);
	}
	20% {
		opacity: 0.7;
		transform: scale(0.4, 0.5);
	}
	40% {
		opacity: 0;
		transform: scale(1, 2);
	}
	100% {
		opacity: 0;
	}
}



/* ============================================================================ */
/* ============================================================================ */
 /*  ================================================================  */
/* btnをキラッとさせる */
/* =======================================================  */
.reflection_left {
	position: relative;
	overflow: hidden;
  }
  .reflection_left::after {
	content: "";
	display: block;
	width: 30px;
	height: 100%;
	position: absolute;
	mix-blend-mode: lighten;
	top: -180px;
	left: 0;
	background-color: #FFF;
	opacity: 0;
	-ms-transform: rotate(45deg);
	    transform: rotate(45deg);
	animation: reflect_left 4s ease-in-out infinite;
  }
  @keyframes reflect_left {
	0% { -webkit-transform: scale(0) rotate(45deg); transform: scale(0) rotate(45deg); opacity: 0; }
	80% { -webkit-transform: scale(0) rotate(45deg); transform: scale(0) rotate(45deg); opacity: 0.5; }
	81% { -webkit-transform: scale(4) rotate(45deg); transform: scale(4) rotate(45deg); opacity: 1; }
	100% { -webkit-transform: scale(50) rotate(45deg); transform: scale(50) rotate(45deg); opacity: 0; }
  }


  .reflection_right {
	position: relative;
	overflow: hidden;
  }
  .reflection_right::after {
	content: "";
	display: block;
	width: 30px;
	height: 100%;
	position: absolute;
	mix-blend-mode: lighten;
	top: -180px;
	left: 0;
	background-color: #FFF;
	opacity: 0;
	transform: rotate(45deg);
	animation: reflect_right 4s ease-in-out infinite;
  }
  @keyframes reflect_right {
	0% { -webkit-transform: scale(0) rotate(45deg); transform: scale(0) rotate(45deg); opacity: 0; }
	80% { -webkit-transform: scale(0) rotate(45deg); transform: scale(0) rotate(45deg); opacity: 0.5; }
	81% { -webkit-transform: scale(4) rotate(45deg); transform: scale(4) rotate(45deg); opacity: 1; }
	100% { -webkit-transform: scale(50) rotate(45deg); transform: scale(50) rotate(45deg); opacity: 0; }
  }


/* ============================================================================ */
/* ============================================================================ */
/* ゲーム画面　上下移動アニメーション */

.huwahuwa01{
	animation: huwahuwa 1.8s ease-in-out infinite alternate-reverse;
}
.huwahuwa02{
	animation: huwahuwa 1s ease-in-out infinite alternate-reverse;
}
.huwahuwa03{
	animation: huwahuwa 2s ease-in-out infinite alternate;
}
@keyframes huwahuwa {
	0% {
		transform: translateY(-2%);
	  }
	  100% {
		transform: translateY(1%);
	  }
}


/* ============================================================================ */
/* ============================================================================ */



/* ============================================================================ */
/*  ================================================================  */
  /*  bgに流す用動画 */
/* ============================================================================ */
/* ============================================================================ */
video {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	object-fit: fill;
	mix-blend-mode:lighten;
	opacity: 0.5;
	/* グラデーションマスクを適用 */
-webkit-mask-image: linear-gradient(to bottom, rgb(255, 255, 255) 70%, rgba(255, 255, 255, 0));
	mask-image: linear-gradient(to bottom, rgb(255, 255, 255) 70%, rgba(255, 255, 255, 0));
}