:root {
	--white: #ffffff;
	--white2: #f0f5ff;
	--gray: #aaaaaa;
	--gray2: #444444;
	--black: #252525;
	--black2: #495055;
	--blue: #1e6fc2;
	--blue2: #0094c3;
	--blue3: #98e1ff;
	--blue4: #f6fbfe;
	--pink: #ff98e8;

	--fs14: calc(14 / 16 * 1rem);
	--fs16: calc(16 / 16 * 1rem);
	--fs20: calc(20 / 16 * 1rem);
	--fs25: calc(25 / 16 * 1rem);
	--fs30: calc(30 / 16 * 1rem);
	--fs40: calc(40 / 16 * 1rem);
	--fs50: calc(50 / 16 * 1rem);
	--fs60: calc(60 / 16 * 1rem);

	--ff1: "Kosugi Maru", sans-serif;
	--ff2: "M PLUS Rounded 1c", sans-serif;
}

html {
	width: 100%;
	height: 100%;
	font-size: 100%;
}

body {
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	color: var(--black);
	font-weight: 500;
	font-size: var(--fs16);
	font-family: "Kosugi Maru", sans-serif;
	line-height: 1.6;
	letter-spacing: 0.1em;
	word-break: break-all;
}

#page {
	display: flex;
	z-index: 0;
	flex-flow: column;
	width: 100%;
	min-height: 100vh;
	background-color: var(--white);
}

a {
	text-decoration: none;
}

img {
	width: 100%;
	height: auto;
}

h2 {
	margin-bottom: 60px;
	padding: 5px 0;
	color: var(--gray2);
	font-weight: 800;
	font-size: var(--fs60);
	font-family: var(--ff2);
	line-height: 0.6;
	text-align: center;
	letter-spacing: 0.0005em;
	background: linear-gradient(180deg, var(--blue2) 15%, var(--black2) 15%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

h2 .jp {
	font-weight: 700;
	font-size: 0.3em;
	font-family: var(--ff1);
}

iframe {
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 9;
	border: 1px solid var(--gray);
}

#main {
	flex: 1;
}

#main.another section {
	padding-top: 60px;
}

#main.another section {
	background-image: repeating-conic-gradient(from 30deg, var(--white2) 0% 60deg, var(--blue4) 0% 120deg);
	background-size: 58px 100px;
	background-color: var(--blue4);
	animation: bgMove 8s linear infinite;
}

.inner {
	width: 95%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 80px 0 100px;
}

.pc {
	display: block;
}

.sp {
	display: none;
}

.img {
	overflow: hidden;
	border-radius: 10px;
}

.more {
	position: relative;
	display: block;
	width: 100%;
	max-width: 250px;
	margin: 40px auto 0;
	padding: 8px 0;
	box-shadow: 0 3px 0 var(--blue3);
	border: 2px solid var(--blue2);
	border-radius: 100px;
	background-color: var(--white);
	color: var(--blue2);
	font-weight: 700;
	font-family: var(--ff2);
	text-align: center;
	transition: all .3s;
	transform: skewX(0.03deg);
}

.more:hover {
	color: var(--white);
	box-shadow: 0 0 0 transparent;
	background-color: var(--blue2);
	transform: translateY(3px);
}

/*LOADING*/
#loading {
	position: fixed;
	z-index: 999;
	width: 100vw;
	height: 100vh;
	background-color: var(--white);
	text-align:center;
}

#loading-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#loading-logo .logo {
	width: 500px;
}
/*-------*/

/*NAV*/
#nav {
	position: fixed;
	top: 0;
	right: -500px;
	bottom: 0;
	z-index: 100;
	opacity: 0;
	display: block;
	width: 480px;
	max-width: 100%;
	height: 100vh;
	background: var(--white);
	overflow-x: hidden;
	overflow-y: auto;
	transition-duration: .5s;
	transition-property: width, right, opacity;
}

.nav-list {
	width: 100%;
	margin: 0 auto;
	z-index: 99;
}

.nav-list ul {
	margin: 0 10px;
}

.nav-list li {
	display: block;
	width: 100%;
	height: auto;
	padding: 20px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.2);
	text-align: center;
}

.nav-list li a {
	color: var(--black);
	font-size: var(--fs20);
	font-weight: 700;
	font-family: var(--ff2);
	text-align: center;
	transition-property: color;
	transition-duration: .2s;
}

.nav-list li a:hover {
	color: var(--blue);
}

.nav-list img {
	width: 200px;
}

.open #nav {
	right: 0;
	opacity: 1;
}

.nav-mask {
	opacity: 0;
	position: fixed;
	top: 0;
	right: 0;
	z-index: 98;
	width: 0;
	height: 100vh;
	transition-property: opacity, background, width;
	transition-duration: .5s, .5s, 0s;
	transition-delay: 0s, 0s, .5s;
}

.open .nav-mask {
	opacity: 1;
	position: fixed;
	width: 100vw;
	height: 100vh;
	z-index: 98;
	background: rgba(0, 0, 0, 0.5);
	cursor: pointer;
	transition-property: opacity, background;
	transition-duration: .5s, .5s;
}

.nav-btn {
	display: none;
}

.nav-btn span {
	display: block;
	position: absolute;
	left: 24%;
	width: 30px;
	height: 3px;
	background-color: var(--blue);
	transition: all .4s;
}

.nav-btn span:nth-child(1) {
	top: 34%;
}

.nav-btn span:nth-child(2) {
	top: 49%;
}

.nav-btn span:nth-child(3) {
	top: 64%;
}

.open .nav-btn {
	box-shadow: none;
}

.open .nav-btn span:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}

.open .nav-btn span:nth-child(2) {
	opacity: 0;
}

.open .nav-btn span:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
}

.nav-pc {
	position: fixed;
	width: 100%;
	z-index: 10;
	display: block;
	background-color: rgba(30, 111, 194, 0.8);
}

.nav-pc.UpMove{
	position: fixed;
	width:100%;
	animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime{
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 0;
	transform: translateY(-100px);
	}
}

.nav-pc.DownMove{
	position: fixed;
	width:100%;
	animation: DownAnime 0.5s forwards;
}

@keyframes DownAnime{
	from {
		opacity: 0;
		transform: translateY(-100px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.nav-pc.fixed {
	position: fixed;
	z-index: 10;
	top: 0;
	left: 0;
}

.nav-pc-list {
	display: flex;
	justify-content: space-around;
	align-items: center;
	width: 1000px;
	height: 60px;
	margin: 0 auto;
}

.nav-pc-list li {
    list-style: none;
}

.nav-pc-list li a {
    width: 80%;
    color: var(--white);
    font-weight: 900;
    font-family: var(--ff2);
    transition-property: color;
    transition-duration: .2s;
}

.nav-pc-list li img {
    width: 75px;
}
/*---*/

/*HEADER*/
.header {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.header .visual img {
	width: 100%;
	height: 100svh;
	min-height: 800px;
	object-fit: cover;
	object-position: center 10%;
}

.header .logo {
	position: absolute;
	left: 50%;
	bottom: 130px;
	width: 450px;
	max-width: 90%;
	transform: translateX(-50%);
}

.header .date {
	position: absolute;
	left: 50%;
	bottom: 50px;
	width: 500px;
	max-width: 90%;
	transform: translateX(-50%);
	filter: drop-shadow(0 0 5px var(--white));
}

.header .cs {
	position: absolute;
	left: 10px;
	top: 10px;
	width: 300px;
}
/*------*/

/*FOOTER*/
.footer {
	width: 100%;
	height: auto;
	padding: 80px 0 100px;
	background-color: var(--blue);
	color: var(--white);
	font-size: var(--fs14);
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}

.footer ul {
	display: flex;
	list-style: none;
	margin-bottom: 50px;
	justify-content: center;
}

.footer ul li {
	width: 40px;
	margin: 0 20px;

}

.footer .logo {
	width: 60px;
	margin: 0 auto 50px;
}

.footer img {
	transition-duration: 0.2s;
	transition-property: opacity;
}

.footer img:hover {
	opacity: 0.7;
}

.footer .text {
	width: 95%;
	margin: 0 auto;
	text-align: center;
}

.footer .text p {
	padding-bottom: 15px;
}

.footer .text img.img01 {
	width: 13px;
	vertical-align: middle;
}

.footer .text img.img02 {
	width: 49px;
	vertical-align: middle;
}
/*------*/

/*NEWS*/
.news {
	position: relative;
	z-index: 0;
}

.news .square01 {
	position: absolute;
	z-index: -1;
	top: 100px;
	left: 100px;
	width: 200px;
	height: 100px;
	background-color: rgba(152, 225, 255, 0.2);
}

.news .square02 {
	position: absolute;
	z-index: -1;
	top: 50px;
	right: 0;
	width: 150px;
	height: 200px;
	background-color: rgba(255, 152, 232, 0.2);
}

.news .square03 {
	position: absolute;
	z-index: -1;
	bottom: 0;
	right: 500px;
	width: 150px;
	height: 50px;
	background-color: rgba(152, 225, 255, 0.2);
}

.news ul {
	width: 100%;
	max-height: 180px;
	list-style: none;
	overflow-y: scroll;
}

.news ul::-webkit-scrollbar {
	width: 5px;
}

.news ul::-webkit-scrollbar-thumb {
	background-color: var(--blue);
}

.news ul li a {
	position: relative;
	display: flex;
	align-items: center;
	padding: 15px 25px;
	border-bottom: 1px solid var(--gray);
}

.news ul li a:hover .text {
	color: var(--blue);
}

.news ul li:first-of-type {
	border-top: 1px solid var(--gray);
}

.news ul li .date {
	position: relative;
	padding-right: 40px;
	color: var(--blue2);
	font-weight: 900;
	font-family: var(--ff2);
	width: 160px;
	transform: skewX(0.03deg);
}

.news ul li .text {
	width: calc(100% - 160px);
	margin-right: 20px;
	color: var(--black);
	transition: color .2s;
}

.news ul li .text::after {
	content: ">";
	position: absolute;
	top: 50%;
	right: 20px;
	font-weight: 900;
	transform: translateY(-50%);
}
/*----*/

/*STORY*/
.story {
	position: relative;
	z-index: 1;
	box-shadow: 0 0 5px var(--gray);
	background-image: repeating-conic-gradient(from 30deg, var(--white2) 0% 60deg, var(--blue4) 0% 120deg);
	background-size: 58px 100px;
	background-color: var(--blue4);
	animation: bgMove 8s linear infinite;
}

@keyframes bgMove {
	0% {
		background-position: 0 0;
	}

	100% {
		background-position: 116px 100px;
	}
}

.story .area {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.story .area.row {
	flex-direction: row-reverse;
	margin-top: 160px;
}

.story .area .text {
	width: 48%;
}

.story .area p {
	margin-bottom: 20px;
	line-height: 3;
}

.story .area h3 {
	color: var(--blue);
	font-size: var(--fs20);
	font-weight: 900;
}

.story .area .img {
	width: 48%;
	box-shadow: 0 2px 5px var(--gray);
}
/*-----*/

/*CHARACTER*/
.character {
	position: relative;
	z-index: 0;
	background-image: url(../img/common/bg01.jpg);
	background-size: cover;
}

.character .list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 1000px;
	margin: 0 auto;
}

.character .list a {
	width: 18%;
	margin: 0 1%;
	margin-bottom: 40px;
}

.character .list a:nth-of-type(n+6) {
	margin-bottom: 0;
}

.character .list .img {
	position: relative;
	z-index: 1;
	margin-bottom: 5px;
	box-shadow: 0 2px 5px var(--gray);
	background: linear-gradient(135deg, var(--white), var(--blue3));
}


.character .list .img img {
	scale: 1.01;
	transition: scale .4s;
}

.character .list a:hover .img img {
	scale: 1.05;
	overflow: hidden;
}

.character .list .img::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(135deg, var(--blue3), var(--white));
	opacity: 0;
	transition: opacity .4s;
}

.character .list a:hover .img::before {
	opacity: 1;
}

.character .list .text {
	color: var(--black2);
	font-weight: 900;
	text-align: center;
	text-shadow: 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white), 0 0 2px var(--white);
}

.another .character h2 {
	text-align: center;
}

.another .character .list {
	max-width: 900px;
	margin-bottom: 60px;
}

.another .character .list a {
	width: calc((100% / 9) - 1%);
	margin: 0 0.5% 0;
}

.another .character .area .profile {
	display: flex;
	justify-content: space-between;
	max-width: 1000px;
	margin: 0 auto;
}

.another .character .area .profile .left {
	position: relative;
	width: 35%;
}

.another .character .area .profile .left .img {
	display: none;
}

.another .character .area .profile .left .img.is-active {
	display: block;
	animation: change .4s ease;
}

@keyframes change {
	0% {
		transform: translateX(-20px);
		opacity: 0;
	}

	100% {
		transform: translateX(0px);
		opacity: 1;
	}
}

.another .character .area .profile .left img {
	filter: drop-shadow(-10px 4px 0 rgba(152, 225, 255, 0.5));
}

.another .character .area .profile .right {
	width: 60%;
	margin-top: 40px;
}

.another .character .area .profile .right h3 {
	margin-bottom: 40px;
	color: var(--gray2);
	font-size: var(--fs50);
	line-height: 0.65;
}

.another .character .area .profile .right h3 span {
	color: #777777;
	font-size: 0.3em;
}

.another .character .area .profile .right h4 {
	color: var(--blue);
	font-size: var(--fs20);
	font-weight: 700;
	margin-bottom: 20px;
}

.another .character .area .profile .right .cos-btn {
	display: flex;
	justify-content: space-between;
	margin-top: 20px;
}

.another .character .area .profile .right .cos-btn a {
	width: 49%;
}

.another .character .area .profile .right .cos-btn a .img {
	position: relative;
	z-index: 1;
	box-shadow: 0 2px 5px var(--gray);
	background-color: var(--white);
	transition: background .4s;
}

.another .character .area .profile .right .cos-btn a .img::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(135deg, var(--blue3), var(--white));
	opacity: 0;
	transition: opacity .4s;
}

.another .character .area .profile .right .cos-btn a:hover .img::before {
	opacity: 1;
}

.another .character .area .profile .right .cos-btn a.active .img::before {
	opacity: 1;
}
/*---------*/

/*GALLERY*/
.gallery {
	position: relative;
	box-shadow: 0 0 5px var(--gray);
	background-image: repeating-conic-gradient(from 30deg, var(--white2) 0% 60deg, var(--blue4) 0% 120deg);
	background-size: 58px 100px;
	background-color: var(--blue4);
	animation: bgMove 8s linear infinite;
}

.gallery .area {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.gallery .area::after {
	content: "";
	display: block;
	width: 32%;
}

.gallery .area .img {
	width: 32%;
	margin-bottom: 2%;
	box-shadow: 0 2px 5px var(--gray);
}

.gallery .area .img img {
	width: 100%;
}

.another .gallery .area .img img {
	width: 100%;
	transform: scale(1.01);
	transition-duration: .2s;
	transition-property: transform;
}

.another .gallery .area .img img:hover {
	cursor: zoom-in;
	transform: scale(1.1);
}
/*-------*/

/*MOVIE*/
.movie {
	position: relative;
	z-index: 0;
}

.movie .square01 {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 20px;
	width: 300px;
	height: 150px;
	background-color: rgba(255, 152, 232, 0.2);
}

.movie .square02 {
	position: absolute;
	z-index: -1;
	top: 150px;
	left: 0;
	width: 150px;
	height: 350px;
	background-color: rgba(152, 225, 255, 0.2);
}
/*-----*/

/*SYSTEM*/
.system {
	position: relative;
	z-index: 0;
	text-align: center;
}

.system .square01 {
	position: absolute;
	z-index: -1;
	top: 0;
	left: 200px;
	width: 400px;
	height: 150px;
	background-color: rgba(152, 225, 255, 0.2);
}

.system .square02 {
	position: absolute;
	z-index: -1;
	top: 200px;
	right: 150px;
	width: 150px;
	height: 300px;
	background-color: rgba(152, 225, 255, 0.2);
}

.system .square03 {
	position: absolute;
	z-index: -1;
	bottom: 100px;
	left: 50px;
	width: 250px;
	height: 250px;
	background-color: rgba(255, 152, 232, 0.2);
}

.system .square04 {
	position: absolute;
	z-index: -1;
	bottom: 0px;
	left: 200px;
	width: 400px;
	height: 150px;
	background-color: rgba(152, 225, 255, 0.2);
}

.system h3 {
	display: inline-block;
	width: 100%;
	max-width: 400px;
	margin-bottom: 40px;
	padding: 5px 0;
	border-radius: 10px;
	background-color: var(--blue2);
	color: var(--white);
	font-size: var(--fs20);
	font-weight: 700;
}

.system p {
	margin-bottom: 40px;
}

.system .area {
	position: relative;
	display: flex;
	justify-content: space-between;
}

.system .area .arrow {
	position: absolute;
	top: 40%;
	left: 50%;
	width: 100px;
	filter: drop-shadow(0 2px 2px var(--gray));
	transform: translate(-50%, -50%);
}

.system .area .contents {
	width: 48%;
}

.system .area .contents .img {
	margin-bottom: 10px;
	box-shadow: 0 0 5px var(--gray);
}

.system .area .contents h4 {
	margin-bottom: 10px;
	padding: 5px 0;
	border: 2px solid var(--blue2);
	background-color: var(--white);
	color: var(--blue2);
	font-weight: 700;
}

.system h5 {
	color: var(--blue2);
	font-size: var(--fs20);
	margin: 80px 0 20px;
}

.system h5:first-of-type {
	margin: 20px 0;
}

.system .area .contents p {
	margin-bottom: 0;
}

.another .system .area {
	margin-bottom: 120px;
}

.another .system .area.area02 {
	margin-bottom: 60px;
}

.another .system .area.area02 .contents {
	width: 32%;
}

.another .system .area.area03 {
	margin-bottom: 10px;
}

.another .system .area.area03 .contents {
	width: 32%;
}

.another .system .area.area04 {
	margin-bottom: 10px;
}

.another .system .area.area05 {
	justify-content: center;
	margin-bottom: 10px;
}
/*------*/

/*SPECIAL*/
.special {
	background-color: var(--blue);
	background-image:  radial-gradient(#0094c3 1.3px, transparent 1.3px), radial-gradient(#0094c3 1.3px, #1e6fc2 1.3px);
	background-size: 52px 52px;
	background-position: 0 0,26px 26px;
}

.special h2 {
	color: var(--white);
	-webkit-text-fill-color: inherit;
}

.special .select {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.special .select::after {
	content: "";
	width: 32%;
}

.special .select .banner {
	width: 32%;
}

.special .select .banner .img {
	position: relative;
	overflow: hidden;
	margin-bottom: 5px;
	border-radius: 10px;
}

.special .select .banner .img img {
	transform: scale(1.01);
	transition-duration: .2s;
	transition-property: transform;
}

.special .select .banner .img:hover img {
	transform: scale(1.1);
}

.special .select .banner p {
	color: var(--white);
}

.another .special h2 {
	color: var(--gray2);
	background: linear-gradient(180deg, var(--blue2) 15%, var(--black2) 15%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.another .special .select .banner .img {
	box-shadow: 0 0 10px var(--gray);
}

.another .special .select .banner p {
	color: var(--black);
}
/*------*/

/*SHOP*/
.shop {
	display: block;
	padding: 40px 10px 0;
	text-align: center;
}

.shop h3 {
	margin-bottom: 20px;
	color: var(--blue);
	font-size: var(--fs25);
	font-weight: 700;
	text-align: center;
}

.shop h4 {
	margin-bottom: 80px;
	font-size: var(--fs20);
	font-weight: 700;
	text-align: center;
}

.shop .area {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	max-width: 900px;
	margin: 0 auto 40px;
}

.shop .area .contents {
	display: block;
	width: 48%;
	margin-bottom: 80px;
}

.shop .area .contents .img {
	width: 100%;
	margin-bottom: 20px;
	box-shadow: 0 0 5px var(--gray);
}

.shop .area .contents .text {
	width: 100%;
}

.shop .contents .text h5 {
	margin-bottom: 10px;
	color: var(--blue);
	font-size: var(--fs20);
	font-weight: 900;
}

.shop .contents .text .text01 {
	margin-bottom: 5px;
	color: var(--blue2);
	font-size: var(--fs14);
}

.shop .contents .text .text02 {
	margin-bottom: 20px;
}

.shop .more {
	margin-top: 0;
}

.shop.off .more {
	pointer-events: none;
	color: var(--gray);
	border: 2px solid var(--gray);
	box-shadow: 0 3px 0 var(--gray);
}
/*----*/

/*limited*/
.limited {
	display: block;
}

.limited h3 {
	margin-bottom: 20px;
	color: var(--blue);
	font-size: var(--fs25);
	font-weight: 700;
	text-align: center;
}

.limited h4 {
	margin-bottom: 10px;
	color: var(--blue);
	font-size: var(--fs20);
	font-weight: 700;
}

.limited .area {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	max-width: 1000px;
	margin: 0 auto 40px;
}

.limited .contents {
	position: relative;
	width: 48%;
	margin-bottom: 80px;
}

.limited .contents img {
	border-radius: 10px;
	box-shadow: 0 2px 5px #666;
	margin-bottom: 10px;
}

.limited .contents a {
	color: var(--blue2);
	text-decoration: underline;
}
/*-------*/

/*PRODUCT*/
.product {
	position: relative;
	z-index: 0;
}

.product .square01 {
	position: absolute;
	z-index: -1;
	top: 150px;
	right: 200px;
	width: 200px;
	height: 100px;
	background-color: rgba(152, 225, 255, 0.2);
}

.product .square02 {
	position: absolute;
	z-index: -1;
	top: 200px;
	right: 150px;
	width: 150px;
	height: 150px;
	background-color: rgba(152, 225, 255, 0.2);
}

.product .square03 {
	position: absolute;
	z-index: -1;
	top: 400px;
	left: 50px;
	width: 150px;
	height: 250px;
	background-color: rgba(152, 225, 255, 0.2);
}

.product .square04 {
	position: absolute;
	z-index: -1;
	bottom: 0px;
	left: 350px;
	width: 250px;
	height: 80px;
	background-color: rgba(255, 152, 232, 0.2);
}

.product .img {
	width: 100%;
	max-width: 350px;
	margin: 0 auto 80px;
}

.product .text {
	display: flex;
	border-bottom: 1px solid var(--gray);
}

.product .text h3 {
	margin-bottom: 10px;
	color: var(--gray2);
	font-size: var(--fs30);
	font-weight: 800;
	font-family: var(--ff2);
	text-align: center;
	background: linear-gradient(180deg, var(--blue2) 40%, var(--black2) 40%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.product .text h3 span {
	color: var(--blue);
}

.product .text dl {
	display: flex;
	flex-wrap: wrap;
	border-top: 1px solid var(--gray);
	padding: 40px 0 20px;
}

.product .text dt {
	width: 120px;
	margin-bottom: 20px;
	color: var(--blue);
	font-weight: 700;
}

.product .text dd {
	width: calc(100% - 120px);
	margin-bottom: 20px;
}

.product .text dd span {
	font-size: var(--fs14);
}

.product .text .spec {
	width: 65%;
	margin: 0 auto;
}

.product .text .staff {
	position: relative;
	width: 35%;
}

.product .text .staff .sd01 {
	position: absolute;
	right: 0;
	bottom: 0;
	background-image: url(../img/common/sd01.png);
	background-size: contain;
	background-repeat: no-repeat;
	width: 150px;
	height: 200px;
}
/*-------*/

@media screen and (max-width:1200px){
	body {
		/*480px-1200px fs14-fs16*/
		font-size: clamp(0.875rem, 0.792rem + 0.28vw, 1rem);
	}

	h2 {
		/*480px-1200px fs40-fs60*/
		font-size: clamp(2.5rem, 1.667rem + 2.78vw, 3.75rem);
	}

	.nav-btn {
		display: block;
		opacity: 1;
		position: fixed;
		top: 20px;
		right: 20px;
		z-index: 101;
		width: 60px;
		height: 60px;
		border: 2px solid var(--blue);
		border-radius: 100px;
		background-color: var(--white);
		cursor: pointer;
		transition: all .5s;
		-webkit-tap-highlight-color: transparent;
	}

	.nav-bg {
		background-color: transparent;
		box-shadow: none;
	}

	.nav-pc {display: none;}
	/*----*/

	/*NEWS*/
	.news .inner {
		display: block;
	}

	.news h2 {
		margin-bottom: revert;
	}
	/*----*/

	/*STORY*/
	.story .area {
		display: block;
	}

	.story .area .text {
		width: 100%;
		margin-bottom: 40px;
	}

	.story .area .text p {
		line-height: 2.5;
	}

	.story .area .img {
		width: 100%;
		max-width: 800px;
		margin: 0 auto;
	}

	.story .area h3 {
		/*480px-1200px fs16-fs20*/
		font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
	}
	/*-----*/

	/*CHARACTER*/
	.another .character .area .profile .right h3 {
		/*480px-1200px fs35-fs50*/
		font-size: clamp(2.188rem, 1.563rem + 2.08vw, 3.125rem);
	}

	.another .character .area .profile .right h4 {
		/*480px-1200px fs16-fs20*/
		font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
	}
	/*---------*/

	/*SYSTEM*/
	.system h5 {
		/*480px-1200px fs16-fs20*/
		font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
	}
	/*------*/

	/*SHOP*/
	.shop h3 {
		/*480px-1200px fs20-fs25*/
		font-size: clamp(1.25rem, 1.042rem + 0.69vw, 1.563rem);
	}

	.shop h4 {
		/*480px-1200px fs16-fs20*/
		font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
	}

	.shop .contents .text h5 {
		/*480px-1200px fs16-fs20*/
		font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
	}

	.shop .area {
		width: 100%;
	}
	/*----*/

	/*LIMITED*/
	.limited h3 {
		/*480px-1200px fs20-fs25*/
		font-size: clamp(1.25rem, 1.042rem + 0.69vw, 1.563rem);
	}

	.limited .area .contents .text h4 {
		/*480px-1200px fs16-fs20*/
		font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
	}
	/*-------*/

	/*PRODUCT*/
	.product .text dt {
		width: 100%;
		margin-bottom: 0;
	}

	.product .text dd {
		width: 100%;
	}
	/*-------*/
}

@media screen and (max-width:800px) {
	#page {
		background-attachment: scroll;
	}

	.pc {
		display: none;
	}

	.sp {
		display: block;
	}

	#loading-logo {
		width: 100%;
	}

	#loading-logo .logo {
		width: 80%;
	}

	.nav-btn {
		top: 10px;
		right: 10px;
	}

	/*HEADER*/
	.header .visual img {
		min-height: 100svh;
	}

	.header .cs {
		width: 50%;
	}
	/*------*/

	/*NEWS*/
	.news .square01 {
		top: 15%;
		left: 5%;
		width: 25%;
		height: 15%;
	}

	.news .square02 {
		top: 5%;
		width: 15%;
		height: 25%;
	}

	.news .square03 {
		right: 40%;
		width: 30%;
		height: 5%;
	}

	.news ul {
		max-height: 260px;
	}

	.news ul li {
		display: block;
	}

	.news ul li .date {
		width: 100%;
		padding-right: 0;
	}

	.news ul li .text {
		width: calc(100% - 30px);
		margin-right: 0;
	}

	.news ul li .text::after {
		right: 10px;
	}

	.news ul li a {
		display: block;
		padding: 15px 0;
	}
	/*----*/

	/*CHARACTER*/
	.character .list a {
		width: 31%;
	}

	.another .character .area .profile {
		display: block;
	}

	.another .character .area .profile .left {
		position: relative;
		width: 50%;
		margin: 0 auto;
	}

	.another .character .area .profile .right {
		width: 100%;
		margin-top: 40px;
	}
	/*---------*/

	/*GALLERY*/
	.gallery .area .img {
		width: 48%;
		margin-bottom: 30px;
	}

	.gallery .area::after {
		width: 49%;
	}
	/*------*/

	/*MOVIE*/
	.movie .square01 {
		width: 30%;
	}

	.movie .square02 {
		width: 20%;
	}
	/*-----*/

	/*SYSTEM*/
	.system .square01 {
		left: 10%;
		width: 40%;
		height: 8%;
	}

	.system .square02 {
		top: 40%;
		right: 0;
		width: 30%;
	}

	.system .square03 {
		bottom: 5%;
		left: 0;
		width: 20%;
		height: 10%;
	}

	.system .square04 {
		left: 15%;
		width: 40%;
		height: 8%;
	}

	.system h5 span {
		display: none;
	}

	.system .area {
		display: block;
	}

	.system .area .contents {
		width: 100%;
		margin-bottom: 40px;
	}

	.system .area .arrow {
		display: none;
	}

	.another .system .area.area02 .contents {
		width: 100%;
	}

	.another .system .area.area03 .contents {
		width: 100%;
		margin-bottom: 20px;
	}

	.another .system .area.area04 .contents {
		margin-bottom: 20px;
	}

	.another .system .area.area05 .contents {
		margin-bottom: 20px;
	}
	/*------*/

	/*SPECIAL*/
	.special .select .banner {
		width: 48%;
		margin-bottom: 20px;
	}

	.special .select::after {
		width: 48%;
	}
	/*------*/

	/*SHOP*/
	.shop .area .contents {
		width: 100%;
	}

	.shop .area .contents .text .link {
		width: 90%;
		padding: 10px 0;
	}
	/*----*/

	/*LIMITED*/
	.limited .area .contents {
		width: 100%;
	}
	/*-------*/

	/*PRODUCT*/
	.product .square01 {
		top: 5%;
		right: 10%;
		width: 25%;
	}

	.product .square02 {
		top: 10%;
		right: 5%;
		width: 15%;
	}

	.product .square03 {
		top: 40%;
		left: 5%;
		width: 15%;
	}

	.product .square04 {
		bottom: 0;
		left: 40%;
		width: 30%;
	}

	.product .text {
		display: block;
		padding: 40px 0;
		border-bottom: none;
	}

	.product .text .spec, .product .text .staff {
		width: 100%;
	}

	.product .text .spec {
		margin-bottom: 40px;
	}

	.product .text .spec dt, .product .text .staff dt, .product .text .spec dd, .product .text .staff dd {
		width: 100%;
	}

	.product .text .spec dt, .product .text .staff dt {
		margin-bottom: 0;
		padding-bottom: 0;
	}
	/*-------*/
}

@media screen and (max-width:480px) {
	.chara-select .button01 {
		margin: 0 5px;
	}

	.chara-select .button02 {
		display: none;
	}

	.another .character .list a {
		width: calc((100% / 5) - 1%);
	}
}

@media screen and (max-width:320px) {

	.footer-sns {
		width: 80%;
		margin: 0 auto 15%;
	}

	.footer-sns li {
		margin: 0 5%;
	}

	.footer-logo-eg {
		margin-bottom: 15%;
	}

	.footer-logo-eg img {
		width: 25%;
	}
}