@charset "utf-8";
/* CSS Document */

/* loading */
#loader {
	width: 100%;
	height: 100vh;
	background-color: #fff;
	position: relative;
}
#loader img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.hidden {
	opacity: 0;
}


/* top */
.bam-cursor,
.bam-follower {
	display: none;
}
.bam-wrapper {
	width: 100%;
	height: 100%;
}
.bam-inner {
	position: relative;
}
.bam-content {
	position: absolute;
}
.bam-content-fixed {
	position: fixed;
}
.bam-img {
	width: 100%;
	height: auto;
	display: block;
}
.pointer {
	width: 9em;
	height: 9em;
	background-color: rgba(0,255,128,0.2);
	border-radius: 50%;
	font-size: 14px;
	mix-blend-mode: exclusion;
}
.pointer-inner {
	width: 7em;
	height: 7em;
	margin: 1em auto;
	background-color: rgba(0,255,128,0.8);
	border-radius: 50%;
	box-shadow: 0 0 1em rgba(0,255,128,0.6);
	text-align: center;
	line-height: 7em;
	color: #000;
	font-weight: bold;
}
.btn-area {
	width: 100%;
	height: 100%;
	display: block;
	cursor: pointer;
}

/* heimaku */
#heimaku {
	min-height: 130vw;
	background: url(images/bakanomori-heimaku2-sp.png) 0 0 no-repeat;
	background-size: contain;
}
#heimaku .hide {
	display: none;
}

/* sky */
#sky {
	height: 100vh;
	min-height: 150vw;
	background: url(images/sky-sp.png) 0 0 no-repeat;
	background-size: cover;
}
#ufo {
	width: 74px;
	height: 56px;
	background: url(images/ufo-sprite-sp.png) 0 0 no-repeat;
	background-size: 100% auto;
	animation: ufo-anime 5s ease infinite alternate;
	transform-origin:center top;
}
@keyframes ufo-anime {
	0%   { transform: translate(0vw,0vh) scale(0.2) rotate(0deg); }
	10%  { transform: translate(120vw,10vh) scale(0.5) rotate(360deg); }
	20%  { transform: translate(-40vw,20vh) scale(0.75) rotate(0deg); }
	40%  { transform: translate(120vw,60vh) scale(1) rotate(0deg); }
	49.999%  { background-position: 0 0; }
	50%  { transform: translate(40vw,60vh) scale(1) rotate(0deg); background-position: 0 -56px; }
	74.999%  { background-position: 0 -56px; }
	75%  { transform: translate(40vw,62vh) scale(1) rotate(0deg); background-position: 0 0; }
	79.999%  { background-position: 0 0; }
	80%  { transform: translate(40vw,58vh) scale(1) rotate(0deg); background-position: 0 -56px; }
	89.999%  { background-position: 0 -56px; }
	90%  { transform: translate(40vw,100vh) scale(0.1) rotate(0deg); background-position: 0 0; }
	100% { transform: translate(40vw,100vh) scale(0.1) rotate(0deg); }
}
#title {
	top: 10px;
	left: 0;
}
#read {
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	margin: auto;
}
#title,
#read {
	opacity: 0;
	transition: opacity 1s ease-out;
}
#title.inview,
#read.inview {
	opacity: 1;
}

.present-banner {
	top: 160px;
	left: 0;
	right: 0;
	margin: auto;
}
.present-banner .bam-img {
	width: 90vw;
	margin: auto;
}

/* poster */
#poster {
	height: 100vh;
	min-height: 150vw;
	background: #eee;
	background: linear-gradient(to bottom, #eee 0%, #fff 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eee', endColorstr='#fff',GradientType=0 );
}
#poster-frame {
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	width: 100%;
	height: 0;
	background-color: #fff;
	transition: height 1s ease-out;
}
#poster-frame.inview {
	height: 100vh;
}
.poster-frame-inner {
	position: relative;
	height: 100%;
}
#poster-img,
#poster-hover-img {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	width: 0;
	transition: width 1s ease-out;
}
#poster-img.inview {
	width: 100%;
}
#poster-hover-img.inview {
	width: 100%;
	animation: hover-anime 1s ease infinite alternate;
}
#entrance1 {
	top: 50%;
	left: -4.5em;
	margin-top: -4.5em;
	transform: scale(0);
	transition: transform 1s ease-out;
}
#entrance1.inview {
	transform: scale(1);
}
#entrance1 .pointer-inner {
	text-align: right;
	padding-right: 1em;
	box-sizing: border-box;
}
.arrow {
	display: inline-block;
	position: relative;
	height: 10px;
	width: 16px;
	background-color: #000;
}

.arrow::before {
	position: absolute;
	content: "";
	border: solid 10px transparent;
	border-left: solid 10px #000;
	top: -5px;
	left: 12px;
}

/* bakanomori */
#bakanomori {
	height: 125.733vw;
}
#bakanomori-hover-img {
	mix-blend-mode: screen;
	opacity: 0.5;
	animation: hover-anime 1s ease infinite alternate;
}
@keyframes hover-anime {
	0%   { opacity: 0; }
	100% { opacity: 0.85; }
}
#bakanomori-mask {
	width: 100%;
	height: 100%;
	overflow: hidden;
	animation: mask-anime 1s ease infinite alternate;
	border-radius: 50%;
}
@keyframes mask-anime {
	0%   { height: 0; }
	50%  { border-radius: 50%; }
	100% { height: 100%; border-radius: 0; }
}

#entrance2 {
	top: 6%;
	left: 0;
	right: 0;
	margin: auto;
	transform: scale(0);
	transition: transform 1s ease-out;
}
#entrance2.inview {
	transform: scale(1);
}

@media (min-width: 768px) {
	/*body,
	.bam-cursor,
	.bam-follower,
	.btn-area {
		cursor: none;
	}*/
	.bam-cursor,
	.bam-follower {
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		pointer-events: none;
	}
	.bam-cursor {
		z-index: 1001;
		mix-blend-mode: difference;
	}
	.bam-follower {
		z-index: 1001;
	}
	.bam-cursor .pointer {
		width: 0;
		height: 0;
		position: relative;
		transition: 0.4s linear;
	}
	.bam-cursor .pointer-inner {
		width: 0;
		height: 0;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		margin: auto;
		line-height: 0;
		transition: 0.4s linear;
	}
	.bam-cursor.is-active .pointer {
		width: 44px;
		height: 44px;
	}
	.bam-cursor.is-active .pointer-inner {
		width: 32px;
		height: 32px;
	}
	.follower-ufo {
		width: 74px;
		height: 56px;
		background: url(images/ufo-sprite-sp.png) 0 0 no-repeat;
		background-size: 100% auto;
		animation: follower-ufo-anime 0.8s ease infinite alternate;
		transform-origin:center top;
	}
	.bam-follower.is-active .follower-ufo {
		background-position: 0 -56px;
	}
	@keyframes follower-ufo-anime {
		0%   { transform: translateY(10px) }
		100% { transform: translateY(0) }
	}
	.bam-inner {
		width: 1180px;
		margin: auto;
	}
	.bam-img {
		width: auto;
	}
	/* heimaku */
	#heimaku {
		height: 1483px;
		min-height: 1483px;
		background: url(images/bakanomori-heimaku2.png) 0 0 no-repeat;
		background-size: 100% auto;
		border: 4px #000 solid;
	}

	#sky {
		height: 360px;
		min-height: 360px;
		background: url(images/sky.png) 0 0 no-repeat;
		background-size: 100% auto;
		border: 4px #000 solid;
		border-bottom: none;
		box-sizing: border-box;
	}
	#ufo {
		animation: none;
		opacity: 0;
	}
	#title,
	#read {
		z-index: 1;
	}
	#title {
		top: 70px;
		left: 0;
		right: 0;
		margin: auto;
		width: 740px;
	}
	.present-banner {
		top: 20px;
		left: auto;
		right: 20px;
		margin: auto;
		transition: 0.4s;
	}
	.present-banner:hover {
		opacity: 0.75;
	}
	.present-banner .bam-img {
		width: 360px;
	}
	#read {
		top: 640px;
	}
	#poster {
		height: 900px;
		min-height: 900px;
		background: url(images/bakanomori.png) 0 0 no-repeat;
		background-size: 100% auto;
		border: 4px #000 solid;
		border-top: none;
		border-bottom: none;
		box-sizing: border-box;
		transition: height 1s ease-out;
	}
	#poster.inview {
		height: 900px;
		min-height: 900px;
		background: #fff;
	}
	#poster-img,
	#poster-hover-img {
		transition: width 0.4s ease-out;
	}
	#poster-img.inview,
	#poster-hover-img.inview {
		width: 562px;
	}
	#poster-frame {
		transition: height 0.4s ease-out;
	}
	#poster-frame .btn-area {
		width: auto;
		height: auto;
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		margin: auto;
	}
	#poster-frame.inview .btn-area {
		width: 582px;
		height: 785px;
	}
	#poster.hide,
	#poster.hide #poster-frame.inview {
		opacity: 0;
		height: 50vh;
	}
	#bakanomori {
		height: 1119px;
		border: 4px #000 solid;
		border-top: none;
		box-sizing: border-box;
	}
	.bakanomori-btn {
		width: 1034px;
		height: 588px;
		top: 226px;
		left: 19px;
	}
	#bakanomori-img,
	#bakanomori-hover-img {
		width: 100%;
	}
	#bakanomori-hover-img {
		mix-blend-mode: color;
	}
	#entrance1, #entrance2 {
		display: none;
	}

}