@charset "UTF-8";

@keyframes heartbeat {
	0% {
		transform: scale(1) rotate(-15deg);
	}
	30% {
		transform: scale(.9) rotate(-15deg);
	}
	60% {
		transform: scale(1.1) rotate(-15deg);
	}
	100% {
		transform: scale(1) rotate(-15deg);
	}
}
@keyframes heartbeat2 {
	0% {
		transform: scale(1) rotate(15deg);
	}
	30% {
		transform: scale(.9) rotate(15deg);
	}
	60% {
		transform: scale(1.1) rotate(15deg);
	}
	100% {
		transform: scale(1) rotate(15deg);
	}
}

div.kv {
	height: 50vw;
	margin-top: 60px;
	display: flex;
	position: relative;
}
div.kv div.kv-image {
	width: 100%;
	height: 100%;
	background: url("/img/kv-pc.png") no-repeat;
	background-size: cover;
	order: 2;
}
div.kv a.r18 {
	width: 17vw;
	height: 15vw;
	padding-top: 4vw;
	position: absolute;
	right: 5%;
	bottom: 5%;
	transform: rotate(15deg);
	background: url("/img/parts-r18.svg") no-repeat;
	background-size: contain;
	filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .3));
	color: #ffff96;
	font-size: 2vw;
	font-weight: bold;
	text-align: center;
}
div.kv a.r18:hover {
	animation: heartbeat2 1s infinite;
}
div.kv a.r18 strong {
	display: block;
	color: #ffffff;
	font-size: 1.9vw;
}
div.kv a.r18 span.more {
	color: #333333;
	font-size: 1.3vw;
	font-weight: normal;
}
div.kv a.dvd {
	width: 18vw;
	height: 20vw;
	padding-top: 15vw;
	position: absolute;
	left: 5%;
	bottom: 5%;
	background: url("/img/parts-dvd.png") no-repeat center;
	background-size: contain;
	color: #ffff96;
	font-size: 2vw;
	font-weight: bold;
	text-align: center;
}
div.kv a.dvd span.more {
	color: #333333;
	font-size: 1.3vw;
	font-weight: normal;
}
div.kv div.movies {
	width: 30%;
	height: 100%;
	display: flex;
	flex-direction: column;
	order: 1;
	background: #fff4f4 radial-gradient(#ffdede 1.5px, transparent 1.5px);
	background-size: 15px 15px;
}
div.kv div.movies h2 {
	padding: 10px;
	background: #fff4f4;
}
div.kv div.movies div.movie {
	width: 83%;
	height: 14vw;
	margin: 6vw auto 0;
	position: relative;
}
div.kv div.movies div.movie::after {
	width: 8vw;
	height: 5vw;
	padding-top: 2.5vw;
	position: absolute;
	top: -20px;
	right: -20px;
	transform: rotate(15deg);
	background: url("/img/parts-heart.svg") no-repeat;
	color: #f73173;
	font-size: 1.6vw;
	text-align: center;
}
div.kv div.movies iframe {
	width: 100%;
	height: 100%;
}
div.kv div.movies div.pv {
	margin-top: 3vw;
}
div.kv div.movies div.pv::after {
	content: "PV";
}
div.kv div.movies div.tvcm {
	margin-top: 6vw;
}
div.kv div.movies div.tvcm::after {
	content: "TV CM";
}
div.kv div.movies div.official {
	margin-top: 2vw;
}
div.kv div.movies div.official h3 {
	border-bottom: 1px solid #f73173;
	color: #f73173;
	font-size: 1.4vw;
	text-align: center;
}
div.kv div.movies div.official div.caption {
	padding: 0 0 10px 0;
	position: relative;
	text-align: center;
}
div.kv div.movies div.official div.caption a {
	color: #ff81ab;
	font-size: 1vw;
	font-weight: bold;
}

.container section h2 {
	position: absolute;
	top: -50px;
	left: 20px;
	z-index:1;
}
.container section:nth-child(2n+1) h2 {
	right: 20px;
	left: auto;
}

div.introduction .frame {
	padding: 30px 40px 80px;
}
div.introduction .text {
	padding: 20px 30px;
	position: relative;
	border: 3px solid #f85b8f;
	border-radius: 13px;
	color: #f85b8f;
	font-size: 20px;
	font-weight: bold;
}
div.introduction .text::before {
	width: 120px;
	position: absolute;
	left: 20px;
	top: 20px;
	content: url("/img/bg-heart.svg");
	transform: rotate(-10deg);
	z-index: 1;
}
div.introduction p {
	position: relative;
	z-index: 2;
	padding-bottom: 15px;
}
div.introduction p:last-child {
	padding-bottom: 0;
}

div.blocks {
	overflow: hidden;
}

div.next-story .frame {
	padding: 60px 0 0;
}
a.next-story-link {
	max-width: 300px;
	padding: 15px;
	position: absolute;
	top: -50px;
	right: 150px;
	z-index: 2;
	background: #faeaea;
	box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
	border-radius: 10px;
	color: #f73173;
	text-align: center;
}
div.next-date {
	width: 150px;
	height: 130px;
	padding-top: 30px;
	position: absolute;
	top: -20px;
	right: -70px;
	transform: rotate(15deg);
	background: url("/img/parts-heart2.svg") no-repeat center/contain;
	color: #ffffff;
	text-align: center;
}
a.next-story-link:hover div.next-date {
	animation: heartbeat2 1s infinite;
}
a.next-story-link img {
	margin-bottom: 5px;
}
a.next-story-link span.next {
	font-size: 12px;
}
a.next-story-link span.date {
	font-size: 26px;
	line-height: 26px;
}
a.next-story-link span.more {
	color: #333333;
	font-size: 14px;
}
div.next-story span.next-title {
	display: block;
	overflow: hidden;
	font-size: 16px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

section.news {
	position: relative;
	background: #eaf4f7;
}
section.news div.blocks {
	padding: 40px 10px;
	display: flex;
}
section.news a.news-block {
	width: 28%;
	margin-right: 8%;
	padding: 25px 15px 35px;
	position: relative;
	background: #ffffff;
	border: 1px solid #d7dee1;
	border-radius: 15px;
}
section.news a.news-block:hover {
	background: #fffff5;
}
section.news a.news-block:last-child {
	margin-right: 0;
}
section.news a.news-block div.date {
	color: #aaaaaa;
	font-size: 16px;
	font-family: noto-sans, sans-serif;
	text-align: center;
}
section.news a.news-block div.title {
	overflow: hidden;
	color: #333333;
	font-size: 18px;
	text-align: center;
}
section.news a.news-block div.more {
	position: absolute;
	right: 15px;
	bottom: 10px;
	color: #539aaf;
	font-size: 16px;
	text-align: right;
}

section.lineup {
	background: #fff4f4 url("/img/bg-circle.svg") top left no-repeat;
	background-size: cover;
}
section.lineup div.banner {
	margin-bottom: 40px;
	position: relative;
	z-index: 2;
	text-align: center;
}
section.lineup div.banner a {
	display: inline-block;
	background: #ffffff;
}
section.lineup div.banner a:hover img {
	opacity: .8;
}
section.lineup div.blocks {
	padding: 0 10px 150px;
	background: url("/img/bg-moon.svg") left 20px bottom 20px no-repeat;
	overflow: visible;
}
section.lineup div.blocks::after {
	display: block;
	clear: both;
	content: "";
}
section.lineup .lineup-block {
	width: 30%;
	margin-right: 5%;
	margin-bottom: 80px;
	float: left;
	position: relative;
	background: #f73173;
	border: 9px solid #ff98ba;
}
section.lineup .lineup-block:nth-child(3n-1) {
	top: 60px;
}
section.lineup .lineup-block:nth-child(3n) {
	margin-right: 0;
	top: 120px;
}
section.lineup .lineup-block.trial::after {
	width: 77px;
	position: absolute;
	bottom: 75px;
	left: -20px;
	content: url("/img/lineup-trial.svg");
	filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, .3));
}
section.lineup .lineup-block.free::after {
	width: 77px;
	position: absolute;
	bottom: 75px;
	left: -20px;
	content: url("/img/lineup-free.svg");
	filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, .3));
}
section.lineup .lineup-block div.book-info {
	height: 232px;
	padding: 10px 10px 25px;
	position: relative;
	overflow: hidden;
}
section.lineup .lineup-block div.number {
	color: #ff81ab;
	font-family: noto-sans, sans-serif;
	font-size: 64px;
	font-weight: bold;
	line-height: 1em;
}
section.lineup .lineup-block span.sharp {
	font-size: 42px;
}
section.lineup .lineup-block div.title {
	padding: 20px 0 10px;
	color: #ffffff;
	font-size: 24px;
	font-weight: bold;
	text-align: center;
}
section.lineup .lineup-block div.author {
	color: #ffffff;
	font-size: 16px;
	text-align: center;
}
section.lineup .lineup-block div.links {
	background: #ffc6d8;
}
section.lineup .lineup-block div.links a {
	padding: 10px;
	display: block;
	position: relative;
	color: #f73173;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
}
section.lineup .lineup-block div.links a:hover {
	background: #fff4f7;
	color: #ff74a2;
}
section.lineup .lineup-block div.links a:first-child {
	border-bottom: 1px solid #ff98ba;
}
section.lineup .lineup-block div.links a::after {
	height: 1em;
	margin: auto 0;
	position: absolute;
	top: 0;
	right: 5px;
	bottom: 0;
	z-index:1;
	content: "→";
	line-height: 1em;
}
section.lineup .lineup-block div.date {
	width: 110px;
	height: 95px;
	padding-top: 25px;
	position: absolute;
	top: -30px;
	right: -30px;
	transform: rotate(15deg);
	background: url("/img/parts-heart.svg") no-repeat;
	filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, .3));
	color: #f73173;
	font-size: 16px;
	text-align: center;
}
section.lineup .anime-block {
	display: block;
	border: 10px solid #ff98ba;
	box-shadow: 0px 3px 6px rgba(0, 0, 0, .3);
	border-radius: 30px;
	transition: background 1s;
}
section.lineup .anime-block:hover {
	background: #fdfdfd;
}
section.lineup .anime-block:hover div.title {
	color: #f73173;
}
section.lineup .anime-block div.thumbnail {
	height: 15vw;
	border-radius: 20px 20px 0 0;
}
section.lineup .anime-block div.thumbnail.anime1 {
	background: url("/img/story01-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime2 {
	background: url("/img/story02-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime3 {
	background: url("/img/story03-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime4 {
	background: url("/img/story04-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime5 {
	background: url("/img/story05-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime6 {
	background: url("/img/story06-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime7 {
	background: url("/img/story07-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime8 {
	background: url("/img/story08-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime9 {
	background: url("/img/story09-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime10 {
	background: url("/img/story10-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime11 {
	background: url("/img/story11-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.thumbnail.anime12 {
	background: url("/img/story12-thumbnail1.png") center/cover;
}
section.lineup .anime-block div.book-info {
	height: 180px;
	padding-bottom: 10px;
}
section.lineup .anime-block div.number {
	font-size: 54px;
	text-align: center;
}
section.lineup .anime-block div.title {
	padding-top: 10px;
	transition: color 1s;
}
section.lineup .anime-block div.link {
	padding: 0 10px 10px;
	color: #6c0132;
	font-size: 18px;
	text-align: right;
}
section.lineup .anime-block.free::after {
	bottom: 0;
}

section.sns {
	position: relative;
	background: #e3faff url("/img/bg-dot-blue.svg") left bottom no-repeat;
}
section.sns .frame {
	height: 530px;
}
section.sns .links {
	padding-top: 80px;
}
section.sns .links a {
	margin: 0 25px;
	display: inline-block;
	background: #ffffff;
	border-radius: 100%;
}
section.sns .links a img {
	vertical-align: top;
}
section.sns .links a:hover img {
	opacity: .8;
}
section.sns .timeline {
	position: absolute;
	top: -50px;
	right: 40px;
	background: #ffffff;
	box-shadow: -25px 25px 0 rgb(196, 230, 237, .4);
	border: 20px solid #ffffff;
}
section.sns .timeline iframe {
	border-bottom: 1px solid #ffffff !important;
}

section.link {
	padding-bottom: 40px;
	background: #fff8e6;
}
section.link > .frame {
	padding-bottom: 50px;
	background: url("/img/link-eternity.svg") no-repeat left 80px top 20px;
}
section.link .links {
	background: #f0e3c1;
}
section.link .links .frame {
	padding: 30px 40px;
	overflow: hidden;
}
section.link .links a {
	width: 30%;
	margin-right: 5%;
	display: inline-block;
	vertical-align: bottom;
}
section.link .links a:last-child {
	margin-right: 0;
}
section.link .links a img {
	width: 100%;
	vertical-align: top;
}
section.link .links a.banner-eternity:hover img {
	filter: brightness(120%);
}
section.link .links a.banner-alphapolis:hover,
section.link .links a.banner-eternity-anime:hover {
	background: #ffffff;
	border-radius: 30px;
}
section.link .links a.banner-alphapolis:hover img,
section.link .links a.banner-eternity-anime:hover img {
	opacity: .8;
}

@media (max-width: 768px) {
	div.kv {
		height: auto;
		margin-top: 0;
		margin-bottom: 50%;
		display: block;
	}
	div.kv div.kv-image {
		width: 100%;
		height: 142vw;
		position: relative;
		background-image: url("/img/kv-sp.png");
	}
	div.kv div.movies {
		width: 100%;
		padding: 0 0 20vw;
	}
	div.kv div.movies div.movie {
		height: 47vw;
	}
	div.kv div.movie div.pv {
		margin-top: 6vw;
	}
	div.kv div.movies div.movie::after {
		width: 20vw;
		height: 12vw;
		padding-top: 5.5vw;
		font-size: 4vw;
	}
	div.kv div.movies div.official {
		margin-top: 5vw;
	}
	div.kv div.movies div.official h3 {
		font-size: 4.5vw;
	}
	div.kv div.movies div.official div.caption a {
		font-size: 3.5vw;
	}
	div.kv a.r18 {
		width: 50%;
		height: 30%;
		padding-top: 12%;
		right: 5%;
		left: auto;
		bottom: -35%;
		transform: rotate(15deg);
		font-size: 5.5vw;
	}
	div.kv a.r18 strong {
		font-size: 6vw;
	}
	div.kv a.r18 span.more {
		font-size: 4.5vw;
	}
	div.kv a.dvd {
		width: 50%;
		height: 40%;
		padding-top: 7%;
		left: 5%;
		left: auto;
		bottom: -40%;
		font-size: 3.5vw;
	}

	div.next-story .frame {
		padding: 0 40px 80px;
	}
	a.next-story-link {
		margin: 0 auto;
		display: block;
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
	}
	div.next-date {
		top: -50px;
		right: -20px;
	}

	section.news div.blocks {
		flex-direction: column;
	}
	section.news a.news-block {
		width: 100%;
		margin-bottom: 40px;
		margin-right: 0;
		float: none;
		display: block;
	}
	section.news a.news-block:last-child {
		margin-bottom: 0;
	}
	section.news a.news-block div.title {
		height: 44px;
	}

	section.lineup div.blocks {
		padding-bottom: 200px;
	}
	section.lineup .lineup-block {
		width: 100%;
		margin: 40px 0 0 0;
		float: none;
	}
	section.lineup .lineup-block:last-child {
		margin-bottom: 0;
	}
	section.lineup .lineup-block:nth-child(3n),
	section.lineup .lineup-block:nth-child(3n-1) {
		top: 0;
	}
	section.lineup .lineup-block div.book-info {
		height: auto;
		padding-bottom: 60px;
	}
	section.lineup .anime-block div.thumbnail {
		height: 50vw;
	}
	section.lineup .anime-block div.book-info {
		padding-bottom: 10px;
	}

	section.sns .frame {
		height: auto;
	}
	section.sns .links {
		padding: 20px 0;
		text-align: center;
	}
	section.sns .timeline {
		position: static;
	}

	section.link > .frame {
		padding-top: 130px;
		background-position: center bottom 10px;
	}
	section.link .links a {
		width: 100%;
		margin-right: 0;
		margin-bottom: 30px;
		display: block;
		float: none;
	}
	section.link .links a:last-child {
		margin-bottom: 0;
	}
}
