@charset "utf-8";
body,div,dl,dt,dd,ul,ol,li,p,h1,h2,h3,h4,h5,h6,th,td,pre,code,blockquote,form,fieldset,legend,input,textarea,figcaption,figure{margin:0;padding:0}
table{border-collapse:collapse;border-spacing:0}
fieldset,img{border:0}
address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal}
li{list-style:none}
caption,th{text-align:left}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}
q:before,q:after{content:''}
abbr,acronym{border:0;font-variant:normal}
sup{vertical-align:text-top}
sub{vertical-align:text-bottom}
input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}
input,textarea,select{font-size:100%;}
legend{color:#FFF}
hr{display:none}
img{max-width: 100%;vertical-align: middle;}
video{max-width: 100%;}
select,input,button,textarea{font-size:99%}
table{font-size:inherit;font:100%;border-collapse:collapse;border-spacing:0}
pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:100%}
article,aside,details,figcaption,figure,footer,header,hgroup,hr,menu,nav,section,main{display:block}*{margin:0;padding:0;box-sizing:border-box;max-height:999999px;outline:none;}*:focus{outline: none;}
button{background-color:transparent;border:none;cursor:pointer;outline:none;padding:0;}
* {box-sizing: border-box;}
/*-----------------------------------------------
 * Bace
 * Modal
 * Header
 * Parts
-------------------------------------------------*/
/*-----------------------------------------------
 * Bace
-------------------------------------------------*/
:root{
	/* color */
	--txtColor: #0D2960;
	--mainColor: #4763FE; 
	--subColor: #6DD6F1; 

	/* font */
	--headFount: "Google Sans Flex", sans-serif;

	/* グラデーション */
	--gradation: linear-gradient(90deg, transparent, var(--subColor) 15%, var(--mainColor) 85%, transparent);
	--gradationBright: linear-gradient(90deg, color-mix(in srgb, var(--subColor) 30%, transparent), color-mix(in srgb, var(--mainColor) 30%, transparent));

	/* 変化速度 */
	--speed: all .3s ease;
}
html {
	/*font-size: 62.5%;*//* 基準を10pxに */
	/* rootのfont-sizeをvwで指定 1440px幅で10px指定 */
	font-size: clamp(9px, .695vw , 12px);
	scroll-behavior: smooth;
}
body {
	text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-family: var(--mainFont);
	font-feature-settings: "palt";
	font-weight: 500;
	font-size: 1.6rem; 
  color: var(--txtColor);
  line-height: 1.6;
  letter-spacing: .05em;
	word-wrap: break-word;
	overflow-x: hidden;
	position: relative;
}
#ja {
	font-family: "Noto Sans JP", sans-serif;
} 
#ja .serif {
	font-family: "Zen Antique", serif;
}
#en {
	font-family: "Google Sans Flex", sans-serif;
}
#en .serif {
	font-family: "Libre Baskerville", serif;;
}
#zh-cn {
	font-family: "Noto Sans SC", sans-serif;
}
#zh-cn .serif {
	font-family: "Noto Serif SC", serif;
}
#zh-tw {
	font-family: "Noto Sans TC","Noto Sans SC", sans-serif; /* タイトルが簡体字のため、繁體中文でも簡体字も指定する */
}
#zh-tw .serif {
	font-family: "Noto Serif TC", serif;
}

.pc { 
	display: block; 
}
.sp { 
	display: none; 
}
a { 
	color: var(--subColor); 
	transition: var(--speed);
}
a:hover { 
	opacity: .6; 
}
/* ScrollBar Setting */
::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}
::-webkit-scrollbar-track {
  border-radius: 4px;
  background: #fff;
}
::-webkit-scrollbar-thumb {
	background: var(--mainColor);
	border-radius: 4px;
	margin: 2px;
	box-shadow: none;
}
html{
	scrollbar-color: var(--mainColor) #fff;
	scrollbar-width: thin;
}
.head-title,
.btn-more {
	text-transform: uppercase;
}
@media screen and (width >= 960px) {
	html{
		scroll-padding-top: min(3.9vw, 70px);
	}
}
@media screen and (width <= 959px) {
	html { 
		/* rootのfont-sizeをvwで指定 390px幅で10px指定 */
		font-size: clamp(9px, 2.6vw , 12px);
	}
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}
/* パーティクル */
.particle {
	position: absolute;
	background-color: rgb(161 249 255 / 25%);
	border-radius: 50%;
	bottom: -50px;
	opacity: 0;
	z-index: -1;
}
.has-particle {
	position: relative;
	overflow: hidden;
	z-index: 0;
}
/*-----------------------------------------------
 * loading anime
-------------------------------------------------*/
#op-anime,
#js-loading {
	width: 100vw;
	height: 100vh;
	background-color: #fff;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99;
}
.loading-logo {
	width: 475px;
	height: 100vh;
	display: flex;
	align-items: center;
	position: relative;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	animation: logoAnime 1.5s ease 0s;
}
@keyframes logoAnime {
	0% {
		opacity: 0;
		transform: scale(.9);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}
@media screen and (width <= 959px) {
	.loading-logo {
		width: min(85vw, 400px);
	}
}
/*-----------------------------------------------
 * header
-------------------------------------------------*/
header {
	width: 100%;
	position: fixed;
	top: 0;
	z-index: 2;
}
.menu {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 50px;
}
.menu-lists {
	display: flex;
	gap: 35px;
}
nav {
	font-size: 1.8rem;
	font-weight: 700;
}
nav a {
	display: inline-block;
	color: var(--txtColor);
	font-family: var(--headFount);
	text-decoration: none;
	padding: .1em .5em;
} 

.langSwitch {
	font-size: 1.4rem;
	font-weight: 700;
	position: relative;
	display: flex;
	align-self: stretch;
}
.js-lang-trigger {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	position: relative;
	padding: 0 .5em;
	transition: var(--speed);
}
.js-lang-trigger:hover {
	opacity: .6;
}
.js-lang-trigger::after {
	content: '';
	display: inline-block;
	width: 10px;
	height: 9px;
	background-image: url('../img/icon_arrow.svg');
	background-repeat: no-repeat;
}
.js-lang-trigger.is-open::after {
	transform: rotate(180deg);
}

.langSwitch img {
	width: 19px;
	height: 19px;
}
.lang-dropdown {
	display: none;
	width: 100%;
	text-align: center;
	background-color: rgba(255, 255, 255, .6);
	backdrop-filter: blur(10px);
	position: absolute;
	top: 100%;
}
.lang-dropdown a {
	display: block;
	text-decoration: none;
	color: var(--txtColor);
	padding: .2em .5em;
}
.lang-dropdown .is-active {
	background-color: #fff;
}
.lang-dropdown .is-active a {
	background-image: var(--gradationBright);
}
@media screen and (width >= 960px){
	header.is-blur::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgb(255 255 255 / 60%);
		backdrop-filter: blur(10px);
		z-index: -1;
	}
	nav {
		padding: .7em 0;
	}
	.langSwitch.sp {
		display: none;
	} 
}

@media screen and (width <= 959px) {
	.btn-menu button {
		display: flex;
		flex-direction: column;
    justify-content: center;
    align-items: center;
		width: 11.8vw;
		height: 11.8vw;
		background-color: rgb(255 255 255 / 80%);
		position: fixed;
		top: 15px;
		right: 15px;
		z-index: 1;
	}
	.btn-menu button::before {
		content: '';
		display: inline-block;
		width: calc(100% + 8px);
		height: calc(100% + 8px);
		background-image: /* 左上（縦横）*/ linear-gradient(var(--txtColor), var(--txtColor)), linear-gradient(var(--txtColor), var(--txtColor)), 
											/* 右上（縦横）*/ linear-gradient(var(--txtColor), var(--txtColor)), linear-gradient(var(--txtColor), var(--txtColor)), 
											/* 右下（縦横）*/ linear-gradient(var(--txtColor), var(--txtColor)), linear-gradient(var(--txtColor), var(--txtColor)),
											/* 左下（縦横）*/ linear-gradient(var(--txtColor), var(--txtColor)), linear-gradient(var(--txtColor), var(--txtColor));
    background-size: /* 左上（縦横）*/ 1px 15px, 15px 1px, /* 右上（縦横）*/ 1px 15px, 15px 1px,/* 右下（縦横）*/ 1px 15px, 15px 1px, /* 左下（縦横）*/ 1px 15px, 15px 1px;
    background-position: top left, top left,top right, top right,bottom left, bottom left, bottom right, bottom right;
    background-repeat: no-repeat;
    position: absolute;
    top: -4px;
    left: -4px;
    z-index: -1;
	}
	.btn-menu span {
		display: block;
		width: 65%;
		height: 2px;
		border-radius: 10px;
		background-color: var(--txtColor);
		margin: 3px auto;
		transition: var(--speed);
	}
	.btn-menu.open span:nth-of-type(2) {
		display: none;
	}
	.btn-menu.open span:nth-of-type(1) {
		transform: rotate(45deg);
		position: absolute;
	}
	.btn-menu.open span:nth-of-type(3) {
		transform: rotate(-45deg);
		position: absolute;
	}
	.langSwitch.pc {
		display: none;
	}
	.langSwitch.sp {
		width: 11.5vw;
		height: 11.5vw;
		background-color: rgb(255 255 255 / 80%);
		border-radius: 50%;
		top: 15px;
		left: 15px;
	}
	.langSwitch.sp .js-lang-trigger {
		width: 100%;
		justify-content: center;
	}
	.langSwitch.sp .js-lang-trigger::after {
		content: none;
	}
	.langSwitch.sp img {
		width: 6.4vw;
		height: 6.4vw;
	}
	.langSwitch.sp .lang-dropdown {
		width: 20.5vw;
	}
	.langSwitch.sp .lang-dropdown a {
		font-size: 1.2rem;
		padding: .4em .5em;
	}
	.header-inner {
		width: 100vw;
		height: 100vh;
		background: rgb(255 255 255 / 70%);
		backdrop-filter: blur(10px);
		position: fixed;
		top: 0;
	}
	.menu {
		width: 70%;
		height: 100vh;
		background-color: #fff;
		justify-content: flex-start;
		flex-direction: column;
		margin-left: auto;
		background-image: url(../img/menu_bg_01.webp);
		background-repeat: no-repeat;
		background-position: left -35px bottom 0;
		background-size: 150%;
		gap: 1.5em;
	}
	.menu-inner-logo {
		width: 50vw;
		margin-top: 60px;
	}
	.menu-lists {
		flex-direction: column;
		gap: .3em;
	}
	.menu-item:first-of-type {
		display: none;
	}/* ロゴがあるため、TOPの項目のみ非表示 */
	nav {
		width: 100%;
		font-size: 2.1rem;
	}
	nav a {
		display: block;
		padding-left: 1.8em;
	}
}

/*-----------------------------------------------
 * TOP
-------------------------------------------------*/
#mv-area {
	position: relative;
}
.logo-inner {
	text-align: center;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 7em;
	filter: drop-shadow(0 0 10px #fff) drop-shadow(0 0 10px #fff) drop-shadow(0 0 10px #fff);
}
.logo,
.release-date,
.store-link {
	opacity: 0;
	visibility: hidden;
}
.logo {
	width: 25.5vw;
	margin: auto;
}
.release-date {
	display: inline-block;
	font-family: var(--headFount);
	font-size: 4.2rem;
	font-weight: 700;
	line-height: 1.2;
	background-image: linear-gradient(90deg, var(--mainColor), var(--subColor));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 0 10px #fff) drop-shadow(0 0 10px #fff);
}
.store-link {
	display: flex;
	justify-content: center;
	position: absolute;
	bottom: 2.5em;
	left: 0;
	right: 0;
	margin: auto;
}
.store-link a {
	display: inline-block;
	filter: drop-shadow(0 0 10px #fff);
}
.store-link img {
	height: clamp(60px, 4.1vw, 65px);
}
@media screen and (width <= 959px) {
	#mv-area {
		padding-bottom: 53.3vw;
	}
	.logo-inner {
		bottom: 6.2em;
	}
	.logo {
		width: 76.9vw;
	}
	.release-date {
		font-size: 4.2rem;
	}
	.store-link {
		bottom: 1.5em;
	}
}
/* guideline */
.btn-guideline {
	padding: .3em;
	background-color: #fff;
	position: absolute;
	bottom: 1em;
	right: 50px;
}
.tab-switch {
	display: flex;
	flex-wrap: wrap;
}
.tab-switch input {
  display: none;
}
.tab-content {
	display: none;
	width: 100%;
	max-height: 400px;
	overflow-y: scroll;
}
.tab-switch label {
	order: -1;
	cursor: pointer;
}
.tab-switch label:has(:checked) {
	background-color: var(--mainColor);
	color: #fff;
}
.tab-switch label:has(:checked) + .tab-content {
	display: block;
}
#guideline-content {
	display: none;
}
.tab-switch,
.single-content {
	background-color: #fff;
}
/* modal */
#js-modal {
	display: none;
}
#js-close {
	width: 90px;
	height: 90px;
	position: absolute;
	top: 50px;
	right: 50px;
}
#js-close span {
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--txtColor);
	transform: rotate(45deg);
}
#js-close span:nth-of-type(2) {
	transform: rotate(-45deg);
}
.modal {
	width: 100vw;
	height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(255,255,255,.8);
}
.modal-inner {
	width: 69.4vw;
	max-height: 600px;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}
/* youtube */
.modal-youtube-inner {
	position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.modal-youtube-inner iframe {
	position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}
.play {
	position: absolute;
	top: calc((100% - 100px) / 2);
	left: calc((100% - 100px) / 2);
}
.play::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	margin-top: -26px;
	margin-left: -16px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 26px 0 26px 45px;
	border-color: transparent transparent transparent #fff;
}
/* TOP共通 */
section:not(#mv-area) {
	text-align: center;
	padding: 2.5em 15px;
}
section:not(#mv-area) .inner {
	max-width: 1200px;
	margin: auto;
}
#about,
#system {
	background-image: url('../img/bg_top.webp'),url('../img/bg_bottom.webp'),linear-gradient(#ffffff4d,#ffffff4d),linear-gradient(180deg, var(--subColor), #5999F880 40%,transparent);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: top center, bottom center;
}
.head-title {
	font-family: var(--headFount);
	font-size: 4.8rem;
	font-weight: 700;
	color: #fff;
	text-shadow: 1px 1px 0 var(--txtColor),
							-1px -1px 0 var(--txtColor),
							1px -1px 0 var(--txtColor),
							-1px 1px 0 var(--txtColor),
							1px 0 0 var(--txtColor),
							-1px 0 0 var(--txtColor),
							0 1px 0 var(--txtColor),
							0 -1px 0 var(--txtColor),
							3px 3px 0 var(--txtColor);
	text-transform: uppercase;
	position: relative;
	display: inline-block;
	margin-bottom: .2em;
}
#story .head-title::after,
#product .head-title::after {
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-image: var(--gradationBright);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	text-shadow: none;
}
@media screen and (width <= 959px) {
	section:not(#mv-area) {
		padding: 1.5em 15px;
	}
	.head-title {
		font-size: 3.6rem;
	}
}
/* scroll animation */
.js-blur-fadeIn,
.js-bounce {
	opacity: 0;
	visibility: hidden;
}
/* about */
#about {
	position: relative;
	isolation: isolate;
	overflow-x: hidden;
}
.bg-mark {
	position: absolute;
	background-repeat: no-repeat;
	background-size: contain;
	z-index: -1;
} 
.bg-mark01 {
  width: 33vw;
  height: 24vw;
  background-image: url('../img/mark_bluebite_01.png');
  top: 16em;
  left: 6em; 
}
.bg-mark02 {
	width: 24vw;
	height: 17vw;
	background-image: url('../img/mark_bluebite_02.png'); 
	bottom: 3em;
	right: 10em;
}
.about-txt {
	font-size: 2.1rem;
}
.about-em {
	font-size: 3.6rem;
	color: #fff;
	line-height: 1.5;
	text-shadow: 0 2px 10px var(--txtColor),
							 0 2px 10px var(--txtColor),
							 0 2px 15px var(--txtColor);
	margin-bottom: .7em;
}
.about-txt p:not(.about-em) {
	text-shadow: 0 0 10px #fff,
							 0 0 10px #fff,
							 0 0 10px #fff,
							 0 0 10px #fff,
							 0 0 10px #fff,
							 0 0 5px #fff,
							 0 0 5px #fff,
							 0 0 5px #fff;
	margin-bottom: 1em;
}
.about-txt span {
	color: var(--mainColor);
	font-weight: 700;
}
/* youtube */
.js-youtubePlay {
	position: relative;
}
.youtube-inner {
	max-width: 800px;
	margin: 2.5em auto 0;
}
@media screen and (width <= 959px) {
	.bg-mark01 {
		width: 52vw;
		height: 37.7vw;
		top: 14em;
		left: -3em;
	}
	.bg-mark02 {
		width: 40vw;
		height: 28.7vw;
		bottom: 3em;
		right: -1.6em;
	}
	.about-txt {
		font-size: 1.5rem;
	}
	.about-em {
		font-size: clamp(1.8rem, 5.1vw, 2.4rem);
		letter-spacing: 0;
		text-shadow: 0 2px 5px var(--txtColor), 0 2px 8px var(--txtColor), 0 2px 10px var(--txtColor);
		margin-bottom: 1.8em;
	}
}
/* character */
#character {
	background-image: url('../img/bg_chara.webp');
	background-repeat: no-repeat;
	background-size: cover;
	border-top: solid 20px;
	border-bottom: solid 20px;
	border-image: var(--gradationBright) 1;
	position: relative;
}
section#character {
	padding-bottom: 0;
}
#character::before,
#character::after {
	content: '';
	display: inline-block;
	width: 100%;
	height: 5px;
	background-image: var(--gradationBright);
	background-color: #fff;
	position: absolute;
	left: 0;
	z-index: 1;
}
#character::before {
	top: 5px;
}
#character::after {
	bottom: 5px;
}
.chara-inner {
	margin-top: -8em;
}
#character .head-title {
	z-index: 1;
}
#js-chara-slider {
	margin: 0;
}
.chara-copy {
	writing-mode: vertical-rl;
	color: #fff;
	font-size: 2.8rem;
	text-align: left;
	position: absolute;
	top: 3.5em;
  right: 86.5%;
  z-index: 1;
}
.chara-copy > span {
	background-color: var(--mainColor);
	padding: .5em 0;
	-webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.chara-copy > span > span {
	text-combine-upright: all;
	text-orientation: upright;
}
#en .chara-copy {
	width: 100%;
	writing-mode: horizontal-tb;
	right: auto;
	left: 5%;
	top: 65%;
}
#en .chara-copy > span {
	padding: 0 0.4em;
}
.chara-cont {
	display: flex!important;
	justify-content: center;
}
.full-body-cont {
	width: 43.75vw;
	position: relative;
}
.full-body-cont::before,
.full-body-cont::after {
	content: '';
	display: inline-block;
	position: absolute;
}
.full-body-cont::before {
	width: calc(31.25vw + 1.39vw);
	height: calc(34.7vw + 1.39vw);
	background-image: /* 左上（縦横）*/linear-gradient(var(--mainColor),var(--mainColor)),linear-gradient(var(--mainColor),var(--mainColor)),
										/* 右下（縦横）*/linear-gradient(var(--mainColor),var(--mainColor)),linear-gradient(var(--mainColor),var(--mainColor));
	background-size:  /* 左上（縦横）*/2px 80px,80px 2px,
										/* 右下（縦横）*/2px 80px,80px 2px;
	background-position: top left, top left,
												bottom right, bottom right;
	background-repeat: no-repeat;
	top: calc(11vw - 10px);
	left: calc(8.5vw - 10px);
	z-index: -1;
}
.full-body-cont::after {
	width: 31.25vw;
	height: 34.7vw;
	background-color: #fff;
	top: 11vw;
	left: 8.5vw;
	z-index: -1;
}
.chara-detail {
	/*width: 32.6vw;*/
	width: 40vw;
}
.full-body,
.full-body-zoom,
.full-body img,
.full-body-zoom img {
	width: 100%;
	height: 100%;
}
.full-body img,
.full-body-zoom img {
	object-fit: contain;
}
.full-body {
	display: none;
}
.change-btn {
	position: absolute;
	left: 22%;
	top: 23%;
}
.change-btn:hover {
	opacity: .6;
}
.change-btn img {
	width: 50px;
}
.chara-info {
	text-align: left;
	margin-top: 10.4vw;
}
.chara-name {
	font-size: 4.8rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff;
}
#zh-cn .chara-name,
#zh-tw .chara-name {
	font-family: var(--headFount);
}
.chara-info-voice {
	display: flex;
	align-items: baseline;
	margin-bottom: 1.5em;
}
.chara-cv {
	width: 42%;
	font-size: 2.1rem;
	font-weight: 700;
	text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff;
}
#zh-cn .chara-cv,
#zh-tw .chara-cv {
	font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;;
}
.chara-label {
	display: inline-block;
	padding: .2em .5em;
	color: var(--mainColor);
	font-size: 1.8rem;
	font-weight: 700;
	font-family: var(--headFount);
	line-height: 1;
	background-color: #fff;
	background-image: /* 左上（縦横）*/linear-gradient(var(--mainColor),var(--mainColor)),linear-gradient(var(--mainColor),var(--mainColor)),
										/* 右上（縦横）*/linear-gradient(var(--mainColor),var(--mainColor)),linear-gradient(var(--mainColor),var(--mainColor)),
										/* 左下（縦横）*/linear-gradient(var(--mainColor),var(--mainColor)),linear-gradient(var(--mainColor),var(--mainColor)),
										/* 右下（縦横）*/linear-gradient(var(--mainColor),var(--mainColor)),linear-gradient(var(--mainColor),var(--mainColor));
	background-size:  /* 左上（縦横）*/1px 7px,7px 1px,
										/* 右上（縦横）*/1px 7px,7px 1px,
										/* 左下（縦横）*/1px 7px,7px 1px,
										/* 右下（縦横）*/1px 7px,7px 1px;/* 1pxが太さ、7pxが長さ */
	background-position: top left, top left,
												top right, top right,
												bottom left, bottom left,
												bottom right, bottom right;
	background-repeat: no-repeat;
	margin-right: 1em;
}
#en .chara-cv {
	width: 12.5em;
}
#en .chara-label {
	margin-right: .7em;
}
.chara-voice {
	display: flex;
	align-items: center;
}
.voice-btn {
	width: 40px;
}
.voice-btn:hover {
	opacity: .6;
}
.chara-txt {
	max-width: 460px;
	font-size: 1.8rem;
	text-shadow: 0 0 10px #fff,0 0 10px #fff,0 0 10px #fff,0 0 10px #fff,0 0 10px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff;
}
#en .chara-txt {
	font-size: 1.7rem;
}
#character .slick-dots {
	max-width: 470px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	left: 50.7vw;
	bottom: 2em;
}
#character .slick-dots li {
	/*width: 150px;
	height: 70px;*/
	width: min(10.4vw, 150px);
	height: min(4.8vw, 70px);
	border: 1px solid transparent; /* active時のズレ防止 */
	padding: 1px;
	background-color: var(--txtColor);
	/* 八角形にカット */
	clip-path: polygon(
		10px 0, calc(100% - 10px) 0,/* 上辺 */
		100% 10px, 100% calc(100% - 10px), /* 右辺 */
		calc(100% - 10px) 100%, 10px 100%, /* 下辺 */
		0 calc(100% - 10px), 0 10px /* 左辺 */
	);
	margin: 0;
}
#character .slick-dots .slick-active {
	background-color: var(--mainColor);
	padding: 2px;
	border: none;
}
.thumb-cont {
	width: 100%;
	height: 100%;
	background-color: #fff;
	/* 八角形にカット 親要素から少し調整 */
	clip-path: polygon(
		9px 0, calc(100% - 9px) 0,/* 上辺 */
		100% 9px, 100% calc(100% - 9px), /* 右辺 */
		calc(100% - 9px) 100%, 9px 100%, /* 下辺 */
		0 calc(100% - 9px), 0 9px /* 左辺 */
	);
}
.slick-active .thumb-cont {
	background-image: linear-gradient(0deg, color-mix(in srgb, var(--subColor) 30%, transparent), color-mix(in srgb, var(--mainColor) 30%, transparent));;
}
/* 大きいタブレットのみ */
@media screen and (width >= 960px) and (width <= 1200px){
	.chara-info-voice {
		margin-bottom: .5em;
	}
	.chara-txt br:last-of-type {
		display: none;
	}
	#character .slick-dots li {
		width: 120px;
		height: 40px;
	}
	.thumb-cont img {
		height: 100%;
	}
	#en .chara-txt {
		max-width: 500px;
		font-size: 1.6rem;
	}
}
@media screen and (width <= 959px) {
	section#character {
		background-image: url(../img/bg_chara_sp.webp);
		background-position: center top;
		padding-left: 0;
		padding-right: 0;
	}
	.chara-inner {
		margin-top: -5.6em;
	}
	.chara-cont {
		flex-direction: column;
	}
	.chara-copy {
		font-size: 1.8rem;
		top: 26vw;
		right: auto;
		left: 10.2vw;
	}
	#en .chara-copy {
		left: 15px;
		top: 100vw;
		pointer-events: none;
	}
	.full-body, 
	.full-body-zoom, 
	.full-body img, 
	.full-body-zoom img {
		min-height: 135.9vw;
	}
	.full-body-cont {
		width: 100vw;
	}
	.full-body-cont::before {
		width: calc(84.6vw + 7.7vw);
		height: calc(92.3vw + 7.7vw);
		background-size: /* 左上（縦横）*/ 2px 50px, 50px 2px, /* 右下（縦横）*/ 2px 50px, 50px 2px;
		top: calc(34vw - 3.85vw);
		left: calc(8.5vw - 3.85vw);
	}
	.full-body-cont::after {
		width: 84.6vw;
		height: 92.3vw;
		top: 34vw;
	}
	.chara-detail {
		width: 100vw;
		border-top: solid 3px;
		border-bottom: solid 3px;
		border-image: var(--gradationBright) 1;
		padding: .5em 15px  1.5em;
		background-color: rgb(255 255 255 / 80%);
		margin-bottom: 1.5em;
	}
	.chara-info {
		margin-top: 0;
	}
	.chara-name {
		font-size: 4.2rem;
	}
	.chara-cv {
		width: 55%;
		font-size: 1.8rem;
	}
	.chara-label {
		font-size: 1.6rem; 
	}
	.chara-txt {
		font-size: 1.5rem;
		max-width: 100%;
	}
	.change-btn {
		left: auto;
		right: 9.5%;
		top: 80%;
	}

	#character .slick-dots {
		width: calc(100vw - 30px);
		position: static;
		justify-content: center;
		margin: 0 auto 2em;
	}
	#character .slick-dots li {
		width: min(calc((100% - 30px) / 3) , 150px);
		height: min(13.5vw, 70px);
	}
}

/* STORY */
#story {
	font-size: 2.1rem;
}
.story-em {
	font-size: 3.6rem;
	color: #fff;
	margin-bottom: 1em;
}
#zh-cn .about-em,
#zh-cn .story-em,
#zh-cn .story-em-last {
	font-weight: 600;
}
.story-em span {
	text-shadow: 0 0 10px var(--mainColor);
	background-image: var(--gradation);
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	line-height: 1.9;
	padding: 0 1.5em .1em;
}
#story p:not(.story-em,.story-em-last) {
	margin-bottom: 1.2em;
}
#story p:not(.story-em,.story-em-last) span {
	display: inline-block;
	line-height: 1.2;
	padding: 0 .1em .1em;
	background-color: color-mix(in srgb, var(--subColor) 30%, transparent);
}
.story-bg {
	background-image: url(../img/bg_story.webp);
	background-repeat: no-repeat;
	background-size: contain /*42.3vw auto*/;
	background-position: center;
	padding: 8em 0 6em;
	margin: 1.5em 0;
}
.story-bg .story-em {
	font-size: 4.8rem;
} 
.story-bg .story-em span {
	padding: 0 2em .1em;
}
.story-em-last {
	font-size: 3.2rem;
}
.story-em-last span {
	background-image: var(--gradationBright);
	background-size: 100% .4em;
	background-position: left 0 bottom .1em;
	background-repeat: no-repeat;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	padding: 0 .2em;
}
@media screen and (width <= 959px) {
	#story {
		font-size: 1.5rem;
	}
	.story-em {
		font-size: 2rem;
	}
	.story-em span {
		padding: 0 1em .1em;
		letter-spacing: -.03em;
		margin-left: -15px;
		margin-right: -15px;
	}
	#en .story-em span {
		letter-spacing: -.01em;
	}
	#en #story p:not(.story-em,.story-em-last) span {
		display: inline;
		-webkit-box-decoration-break: clone;
  	box-decoration-break: clone;
	}
	.story-bg {
		padding: 6em 0;
	}
	#en .story-bg {
		padding: 4em 0;
	}
	.story-bg .story-em {
		font-size: 3.2rem;
	}
	.story-em-last {
		font-size: 2rem;
		letter-spacing: -.03em;
	}
}

/* SYSTEM */
.sys-lists {
	max-width: 1000px;
	margin: auto;
}
.sys-list {
	background-color: #fff;
	padding: 10px; /* 白の外枠7px、グラデーション枠3px */
	clip-path: polygon(0 0, calc(100% - 50px) 0,100% 50px, 100% 100%, 0 100%);
	position: relative;
	z-index: 0;
	margin-bottom: 2em;
	/*filter: drop-shadow(0 0 10px var(--mainColor));*/
}
.sys-list::before {
	content: '';
	position: absolute;
	inset: 7px;
	background-image: linear-gradient(90deg, var(--subColor), var(--mainColor));
	clip-path: polygon(0 0, calc(100% - 45px) 0,100% 45px, 100% 100%, 0 100%);
	z-index: -2;
}
.sys-list::after {
	content: '';
	position: absolute;
	inset: 10px;
	background-color: #fff;
	clip-path: polygon(0 0, calc(100% - 43px) 0, 100% 43px, 100% 100%, 0 100%);
	z-index: -1;
}
.sys-list h3 {
	font-size: 3.6rem;
	color: #fff;
	font-weight: 700;
	background-image: var(--gradation);
	text-shadow: 0 0 10px var(--mainColor);
	margin: 1em .9em 1.2em;
}
.sys-cont {
	display: flex;
	max-width: 920px;
	margin: auto;
	gap: 2em;
}
.sys-cont:first-of-type {
	padding-bottom: 2.5em;
  border-bottom: solid 1px;
  border-image: linear-gradient(90deg, var(--subColor), var(--mainColor)) 1;
  margin-bottom: 2.5em;
}
.sys-video,
.js-sys-slider,
.sys-txt {
	width: calc((100% - 2em) / 2);
}
.sys-txt {
	text-align: left;
	/*margin-top: .7em;*/
}
.sys-txt h4 {
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: .7em;
}
.sys-cont:nth-of-type(2) {
	margin-bottom: 2.2em;
}
.sys-cont:nth-of-type(2) .sys-txt {
	order: -1;
}
@media screen and (width <= 959px) {
	.sys-list {
		clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 0 100%);
		margin-bottom: 1.5em;
	}
	.sys-list::before {
		clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
	}
	.sys-list::after {
		clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 0 100%);
	}
	.sys-list h3 {
		font-size: 2rem;
		padding: .1em 0;
		margin: 1.2em .3em .9em;
	}
	.sys-cont {
		display: block;
		margin: 0 .7em;
	}
	.sys-video, 
	.js-sys-slider, 
	.sys-txt {
		width: 100%;
	}
	.sys-txt {
		font-size: 1.4rem;
		text-align: center;
		margin-top: 1em;
	}
	.sys-txt h4 {
		font-size: 1.8rem;
		text-align: center;
	}
	#en .sys-txt p,
	#zh-cn .sys-txt p,
	#zh-tw .sys-txt p {
		text-align: left;
	}
	.sys-cont:first-of-type {
		padding-bottom: 1.2em;
		margin-bottom: 1.5em;
	}
	.sys-cont:nth-of-type(2) {
		margin-bottom: 1.5em;
	}
}

/* GALLERY */
.js-gallery-slider {
	opacity: 0;
	visibility: hidden;
}
.js-gallery-slider.slick-initialized {
	opacity: 1;
	visibility: visible;
	transition: opacity .2s ease;
}
/* PUBLICITY */
#ja .publicity-title {
  font-family: "Noto Sans JP", "PingFang SC", "Microsoft YaHei", "PingFang TC", "Microsoft JhengHei", sans-serif;
}
#en .publicity-title {
  font-family: "Google Sans Flex", "Noto Sans JP", "PingFang SC", "Microsoft YaHei", "PingFang TC", "Microsoft JhengHei", sans-serif;
}
#zh-cn .publicity-title {
  font-family: "Noto Sans SC", "Hiragino Kaku Gothic ProN", "Yu Gothic", "PingFang TC", "Microsoft JhengHei", sans-serif;
}
#zh-tw .publicity-title {
  font-family: "Noto Sans TC", "Hiragino Kaku Gothic ProN", "Yu Gothic", "PingFang SC", "Microsoft YaHei", sans-serif;
}


/* PRODUCT */
.product-lists {
	text-align: left;
	max-width: 600px;
	margin: 0 auto 1em;
}
.product-list {
	font-size: 1.8rem;
	font-weight: 700;
	display: flex;
	border-bottom: solid 1px var(--mainColor);
	border-bottom: solid 1px;
  border-image: linear-gradient(90deg, var(--subColor), var(--mainColor)) 1;
  padding: .7em .5em;
  gap: 1em;
}
.product-list dt {
	width: 35%;
	color: var(--mainColor);
}
.product-list dd {
	width: 65%;
}
@media screen and (width <= 959px) {
	.product-list {
		font-size: 1.5rem;
	}
}

/* footer */
footer {
	text-align: center;
	background-image: linear-gradient(90deg, var(--mainColor), var(--subColor));
	padding: 2em 0;
}
.footer-logo {
	width: 20.8vw;
	filter: drop-shadow(0 0 8px #fff) drop-shadow(0 0 8px #fff);
	margin: 0 auto 1em;
	transition: var(--speed);
}
.footer-logo:has(a:hover) {
	opacity: .6;
}
.footer-logo a:hover {
	opacity: 1;
}
.footer-sns {
	margin-bottom: 2em;
}
.footer-sns p {
	font-family: var(--headFount);
  font-size: 2.4rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 1px 1px 0 var(--txtColor), -1px -1px 0 var(--txtColor), 1px -1px 0 var(--txtColor), -1px 1px 0 var(--txtColor), 1px 0 0 var(--txtColor), -1px 0 0 var(--txtColor), 0 1px 0 var(--txtColor), 0 -1px 0 var(--txtColor), 2px 2px 0 var(--txtColor);
  text-transform: uppercase;
  margin-bottom: .6em;
}
.footer-sns ul {
	display: flex;
	justify-content: center;
	gap: 1.2em;
}
.footer-sns a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 200px;
	height: 50px;
	font-family: var(--headFount);
	font-size: 1.8rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	padding: 4px;
	padding-top: .3em;
	clip-path: polygon(
		7px 0, calc(100% - 7px) 0,/* 上辺 */
		100% 7px, 100% calc(100% - 7px), /* 右辺 */
		calc(100% - 7px) 100%, 7px 100%, /* 下辺 */
		0 calc(100% - 7px), 0 7px /* 左辺 */
	);
	background-color: #14171a;
	position: relative;
	z-index: 0;
}
.footer-sns a::before {
	content: '';
	position: absolute;
	inset: 3px;
	background-color: #fff;
	clip-path: polygon(
		5px 0, calc(100% - 5px) 0,/* 上辺 */
		100% 5px, 100% calc(100% - 5px), /* 右辺 */
		calc(100% - 5px) 100%, 5px 100%, /* 下辺 */
		0 calc(100% - 5px), 0 5px /* 左辺 */
	);
	z-index: -2;
}
.footer-sns a::after {
	content: '';
	position: absolute;
	inset: 4px;
	clip-path: polygon(
		5px 0, calc(100% - 5px) 0,/* 上辺 */
		100% 5px, 100% calc(100% - 5px), /* 右辺 */
		calc(100% - 5px) 100%, 5px 100%, /* 下辺 */
		0 calc(100% - 5px), 0 5px /* 左辺 */
	);
	z-index: -1;
} 
.sns-x {
	text-transform: uppercase;
}
.sns-x a::after {
	background-color: #14171a;
}
.sns-yt a,
.sns-yt a::after {
	background-color: #e0436d;
}
.sns-dc a,
.sns-dc a::after {
	background-color: #525dd2;
}
.footer-notice {
	font-size: 1.2rem;
	color: #fff;
	padding: 0 15px;
	margin-bottom: 2em;
}
.footer-copy {
	font-family: var(--headFount);
	font-size: 1.2rem;
	color: #fff;
	letter-spacing: 0;
}
@media screen and (width <= 959px) {
	.footer-logo {
		width: 64vw;
	}
	.footer-sns p {
		font-size: 1.8rem;
	}
	.footer-sns ul {
		flex-direction: column;
		align-items: center;
		gap: .7em;
	}
}

/*-----------------------------------------------
 * NEWS
-------------------------------------------------*/
.wp-block-embed-youtube .wp-block-embed__wrapper {
	position: relative;
	padding-top: 56.25%;
}
.wp-block-embed-youtube iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
/* youtube非公開用 */
#news-detail .youtube {
	width: 100%;
	padding-top: 56.25%;
	position: relative;
	margin: 1.5em auto;
	transform: none;
	-webkit-transform: none;
	top: 0;
	left: 0;
}
#news-detail iframe[src*="youtu"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}