/*
 * htmlのfont-size用
 */

/*
 * font-size可変用
 */

/* -------------------------------------------------
anime
---------------------------------------------------- */

/*高さ・位置・透過が変化して線が上から下に動く*/

.scroll_up {
	-webkit-transform: translateY(30px);
	transform: translateY(30px);
	opacity: 0;
}

.scroll_up.on {
	-webkit-transition: opacity 0.8s ease-in-out, -webkit-transform 0.8s ease-in-out;
	transition: opacity 0.8s ease-in-out, -webkit-transform 0.8s ease-in-out;
	transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
	transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out, -webkit-transform 0.8s ease-in-out;
	-webkit-transform: translateY(0);
	transform: translateY(0);
	opacity: 1;
}

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

nav ul {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
	content: none;
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	text-decoration: none;
}

/* change colours to suit your needs */

ins {
	background-color: #ff9;
	color: #000;
	text-decoration: none;
}

/* change colours to suit your needs */

mark {
	background-color: #ff9;
	color: #000;
	font-style: italic;
	font-weight: bold;
}

del {
	text-decoration: line-through;
}

abbr[title],
dfn[title] {
	border-bottom: 1px dotted;
	cursor: help;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* change border colour to suit your needs */

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}

input,
select {
	vertical-align: middle;
}

ul li,
ol li {
	list-style-type: none; /*リストマーカー無しにする*/
}

html {
	scroll-behavior: smooth;
}

body {
	line-height: 1.85;
	color: #363535;
	font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	letter-spacing: 0.1em;
	font-weight: 500;
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	text-spacing-trim: space-first;
	font-size: 62.5%; /*デフォルト10px*/
	-webkit-tap-highlight-color: transparent; /* リンクがタップされている間の強調をなくす */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-break: strict;
	overflow-wrap: break-word;
	-webkit-text-size-adjust: 100%;
	min-width: 320px;
	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;
	overflow-x: hidden;
}

:target {
	scroll-margin-top: 3rem;
}

::-moz-selection {
	background: #acacac;
}

::selection {
	background: #acacac;
}

img {
	max-width: 100%;
	height: auto;
}

*,
*:before,
*:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

a,
a:hover,
a:visited,
a:active {
	text-decoration: none;
}

::-webkit-scrollbar {
	width: 5px;
}

::-webkit-scrollbar-track {
	background-color: #ccc;
}

::-webkit-scrollbar-thumb {
	background-color: #49a095;
}

.l-header {
	position: fixed;
	z-index: 9999;
	top: 0;
	right: 0;
	width: 50px;
	height: 100vh;
	background: #222222;
}

.l-header__inner {
	height: 100%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column; /* 子要素を垂直に配置 */
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between; /* 子要素を水平中央に配置 */
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center; /* 子要素を垂直中央に配置 */
}

.l-nav-btn {
	width: 50px;
	height: 50px;
	background-color: #222;
	cursor: pointer;
	position: relative;
	z-index: 4;
	margin-top: 80px;
}

.l-nav-btn span {
	display: inline-block;
	-webkit-transition: all 0.4s;
	transition: all 0.4s;
	position: absolute;
	top: 50%;
	height: 2px;
	background-color: #ffffff;
	width: 60%;
	left: 50%;
	-webkit-transform: translateX(-50%) translateY(-50%);
	transform: translateX(-50%) translateY(-50%);
}

.l-nav-btn span:nth-child(1) {
	top: 40%;
}

.l-nav-btn span:nth-child(2) {
	top: 60%;
}

.l-nav-btn.is-active span {
	top: 50%;
}

.l-nav-lists {
	-ms-flex-item-align: end;
	align-self: flex-end; /* 下部に配置 */
	text-align: center;
	-ms-flex-item-align: stretch;
	-ms-grid-row-align: stretch;
	align-self: stretch;
	position: relative;
	z-index: 4;
}

.l-nav-lists li {
	margin-bottom: 15px;
}

.l-nav-lists li i {
	font-size: 24px;
}

.l-nav-global__overlay {
	visibility: hidden;
	opacity: 0;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: calc(100% - 50px);
	height: 100%;
	-webkit-transition: 0.3s;
	transition: 0.3s;
	background: #070707;
	cursor: pointer;
}

.l-nav-global.is-active .l-nav-global__overlay {
	visibility: visible;
	opacity: 0.8;
}

.l-nav-global__contents {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	width: 35svw;
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-transition: 0.2s ease-in-out 0.1s;
	transition: 0.2s ease-in-out 0.1s;
	background: #222;
}

.l-nav-global.is-active .l-nav-global__contents {
	-webkit-transform: translateX(-50px);
	transform: translateX(-50px);
}

.l-nav-global__list a {
	color: #fff;
	display: block;
	margin-bottom: 1rem;
	font-size: 2rem;
	font-family: "Oswald", "Noto Sans JP";
	opacity: 0;
	font-weight: 300;
	-webkit-transform: translate3d(0, 100%, 0) skewY(5deg);
	transform: translate3d(0, 100%, 0) skewY(5deg);
}

.l-nav-global.is-active li a {
	opacity: 1;
	-webkit-transform: translate3d(0, 0, 0) skewY(0);
	transform: translate3d(0, 0, 0) skewY(0);
	-webkit-transition: 0.4s ease 0.3s;
	transition: 0.4s ease 0.3s;
}

.l-nav-global.is-active li:nth-child(2) a {
	-webkit-transition-delay: 0.4s;
	transition-delay: 0.4s;
}

.l-nav-global.is-active li:nth-child(3) a {
	-webkit-transition-delay: 0.5s;
	transition-delay: 0.5s;
}

.l-nav-global.is-active li:nth-child(4) a {
	-webkit-transition-delay: 0.6s;
	transition-delay: 0.6s;
}

.l-nav-global.is-active li:nth-child(5) a {
	-webkit-transition-delay: 0.7s;
	transition-delay: 0.7s;
}

.l-nav-global.is-active li:nth-child(6) a {
	-webkit-transition-delay: 0.8s;
	transition-delay: 0.8s;
}

.l-nav-global__inner {
	padding: 50px 40px;
}

.l-nav-lists li i {
	color: #ffffff;
}

.l-nav-lists.l-nav-lists--spSns {
	display: none;
}

.l-footer {
	position: relative;
	padding-block: 3.5vh 3vh;
	background: #222222;
	z-index: 99;
	text-align: center;
}

.l-footer__link {
	display: block;
}

/* area */

#l-container {
	overflow-x: hidden;
	position: relative;
	z-index: 99;
}

.l-main {
	overflow: hidden;
}

.scrollgress {
	z-index: 999;
}

.c-btn {
	font-size: clamp(1.25rem, 1.083rem + 0.35vw, 1.5rem);
	display: block;
	background: #49a095;
	color: #ffffff;
	text-align: center;
	border: 2px solid #49a095;
	padding: 0.5rem 0;
	font-family: "Red Hat Display";
	font-size: 1.2rem;
}

.c-btn:hover {
	background: #ffffff;
	color: #49a095;
	-webkit-transition: ease 0.4s;
	transition: ease 0.4s;
}

.c-btn--about {
	width: 300px;
	margin: auto;
}

.c-ttl {
	line-height: 1.4;
	font-size: clamp(1.25rem, -0.528rem + 3.7vw, 2.25rem);
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	font-family: "Oswald", "Noto Sans JP", "Red Hat Display";
	margin-bottom: 2.2rem;
	font-weight: normal;
}

.c-ttl--chara {
	color: #ffffff;
}

.c-charaTtl {
	text-align: center;
	color: #ffffff;
	font-weight: normal;
	font-size: clamp(1.125rem, 1.04rem + 0.18vw, 1.25rem);
	margin-bottom: 1rem;
}

.page_top span {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 1.25vw;
	height: 1.375vw;
	margin: auto;
	overflow: hidden;
	background: url(../img/pagetop_arrow.png) no-repeat;
	background-size: contain;
	text-indent: -9999px;
	animation: ROLLRING 14s linear reverse infinite;
}

.page_top {
	display: block;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	position: absolute;
	right: 100px;
	bottom: 2vw;
	cursor: pointer;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	width: 4.5vw;
	height: 4.5vw;
	overflow: hidden;
	background: url(../img/pagetop_ring.png) no-repeat;
	background-size: contain;
	text-indent: -9999px;
	-webkit-animation: ROLLRING 14s linear normal infinite;
	animation: ROLLRING 14s linear normal infinite;
	will-change: transform;
	z-index: 99999;
}

.ttlText {
	overflow: hidden;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	font-weight: normal;
	font-size: clamp(1.25rem, -0.528rem + 3.7vw, 2.25rem);
	margin-bottom: 2.2rem;
}

.ttlText .small {
	font-size: 0.8em;
}

.ttlText.is-act {
	--y: 0;
}

.char {
	display: inline-block;
	-webkit-transform: translateY(var(--y, 110%));
	transform: translateY(var(--y, 110%));
	-webkit-transition: -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
	transition: -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
	transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
	transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1), -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
	-webkit-transition-delay: calc(0.04s * var(--char-index));
	transition-delay: calc(0.04s * var(--char-index));
}

.btn {
	margin: auto;
	position: relative;
	display: block;
	padding: 1rem 4rem;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-align: center;
	font-size: 14px;
	border-radius: 0.5rem;
}

a.btn-svg {
	line-height: 54px;
	width: 304px;
	height: 54px;
	padding: 0;
}

a.btn-svg svg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

a.btn-svg svg rect {
	-webkit-transition: all 400ms ease-out;
	transition: all 400ms ease-out;
	stroke: #555;
	stroke-width: 2;
	stroke-dasharray: 200px, 16px;
	stroke-dashoffset: 70px;
}

a.btn-svg:hover svg rect {
	stroke-dashoffset: 320px;
}

a.btn-svg span {
	color: #555;
}

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

/*機能編  4-1-3　プログレスバー＋数字カウントアップ＋画面が開く*/

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

/* Loading背景画面設定　*/

#splash { /*fixedで全面に固定*/
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 99999;
	text-align: center;
}

/* Loading画像中央配置　*/

#splash_text {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 999;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 100%;
}

/*割れる画面のアニメーション*/

.loader_cover {
	width: 100%;
	height: 50%;
	background: #18232e;
	-webkit-transition: all 1s cubic-bezier(0.04, 0.435, 0.315, 0.9);
	transition: all 1s cubic-bezier(0.04, 0.435, 0.315, 0.9);
	-webkit-transform: scaleY(1);
	transform: scaleY(1);
}

/*上の画面*/

.loader_cover-up {
	-webkit-transform-origin: center top;
	transform-origin: center top;
}

/*下の画面*/

.loader_cover-down {
	position: absolute;
	bottom: 0;
	-webkit-transform-origin: center bottom;
	transform-origin: center bottom;
}

/*クラス名がついたらY軸方向に0*/

.coveranime {
	-webkit-transform: scaleY(0);
	transform: scaleY(0);
}

.progressbar-text {
	font-family: "Red Hat Display", sans-serif;
	font-size: 1.8rem;
}

/* キラッと光るアニメーション */

.glint {
	font-family: "Red Hat Display", sans-serif;
}

.glint .progressbar-text {
	font-style: italic;
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
	text-shadow: 0 0 10px #49a095;
	font-weight: bold;
}

.p-visual {
	height: 100svh;
	position: relative;
	font-family: "Oswald", sans-serif;
	background: url(../img/mv_img02.jpg) no-repeat center center/cover;
	background-attachment: fixed;
}

.p-visual__inner {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	height: 100%;
	z-index: 1;
	position: fixed;
	width: 100%;
}

.p-visual__imgNum {
	width: 30vw;
}

.p-visual__spImg {
	display: none;
}

.scrolldown1 {
	position: fixed;
	left: 40px;
	bottom: 3%;
	height: 50px;
	z-index: 2;
}

.scrolldown1 span {
	position: absolute;
	color: #eee;
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	-webkit-transform: rotate(-90deg);
	transform: rotate(-90deg);
	text-transform: uppercase;
	left: -20px;
	top: -32px;
}

.scrolldown1::after {
	content: "";
	position: absolute;
	top: 0;
	left: 4px;
	width: 1px;
	height: 30px;
	background: #fff;
	-webkit-animation: pathmove 1.4s ease-in-out infinite;
	animation: pathmove 1.4s ease-in-out infinite;
	opacity: 0;
}

.p-visual__img {
	margin: 0 0 0 -57vw;
}

.p-visual__imgNum {
	will-change: filter; /* iOS対策 */
}

.p-visual__imgNum .cls-1 {
	fill: transparent;
	will-change: filter; /* iOS対策 */
}

body.appear .p-visual__imgNum .cls-1 {
	stroke-dasharray: 2000;
	stroke-dashoffset: 0;
	stroke-width: 3;
	-webkit-animation: hello1 2s ease-in 0.2s forwards;
	animation: hello1 2s ease-in 0.2s forwards;
	will-change: filter; /* iOS対策 */
}

.p-about {
	border-top-left-radius: 50px;
	border-top-right-radius: 50px;
	background: #fff;
	position: relative;
	z-index: 10;
	padding: clamp(5rem, 4.167rem + 1.74vw, 6.25rem) clamp(1rem, 0.417rem + 1.22vw, 1.875rem);
	width: calc(100% - 50px);
	height: 100svh;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	overflow: hidden;
}

.p-about__inner {
	max-width: 1700px;
	margin-inline: auto;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	position: relative;
	z-index: 4;
}

.p-about__bg {
	position: absolute;
	z-index: 3;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0%;
	width: 100%;
	height: 300px;
	background-repeat: repeat-x;
	background-image: url(../img/loop-logo.png);
	background-size: 1900px 300px;
	-webkit-animation: loop 50s linear infinite;
	animation: loop 50s linear infinite;
}

.p-about__img {
	width: 46%;
	position: relative;
	z-index: 6;
	-webkit-filter: drop-shadow(5px 5px 15px #c7c7c7);
	filter: drop-shadow(5px 5px 15px #c7c7c7);
}

.p-about__img .flow {
	position: absolute;
}

.p-about__img .A {
	width: 58%;
	top: 0%;
	right: -15%;
	-webkit-transition-delay: 1.5s !important;
	transition-delay: 1.5s !important;
}

.p-about__img .B {
	width: 49%;
	bottom: -6%;
	right: -6%;
}

.p-about__img .C {
	width: 98%;
	-webkit-transition-delay: 1s !important;
	transition-delay: 1s !important;
}

.p-about__img .p-about__imgItem {
	-webkit-transform: translateY(30px);
	transform: translateY(30px);
	opacity: 0;
	-webkit-transition: all 1.2s ease-out;
	transition: all 1.2s ease-out;
}

.p-about__img .p-about__imgItem.is-active {
	-webkit-transform: translateY(0);
	transform: translateY(0);
	opacity: 1;
}

.p-about__box {
	width: 46%;
	margin-right: 2%;
}

.p-about__ttl {
	font-size: min(60px, 3.2vw);
	margin-bottom: 2.5rem;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.1em;
}

.p-about__ttl .num {
	font-family: "Red Hat Display", sans-serif;
	font-size: 1.1em;
}

.p-about__ttl .color {
	background: -webkit-gradient(linear, left top, right top, from(#0090f7), color-stop(#ba62fc), color-stop(#f2416b), color-stop(#f55600), color-stop(#f2416b), color-stop(#ba62fc), color-stop(#0090f7), color-stop(#ba62fc), color-stop(#f2416b), to(#f55600));
	background: linear-gradient(90deg, #0090f7, #ba62fc, #f2416b, #f55600, #f2416b, #ba62fc, #0090f7, #ba62fc, #f2416b, #f55600);
	background-size: 300% 100%;
	color: rgba(0, 0, 0, 0);
	-webkit-background-clip: text;
	background-clip: text;
	display: inline-block;
	-webkit-animation: gradientAnimation 4s linear infinite;
	animation: gradientAnimation 4s linear infinite;
}

.p-about__txt {
	font-size: 16px;
	margin-bottom: 3.5rem;
	width: 100%;
}

.AN-bg-infinite-logo {
	position: absolute;
	top: 18%;
	z-index: 2;
	width: 100%;
	left: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-transform: skew(15deg, 345deg);
	transform: skew(15deg, 345deg);
	font-family: "Red Hat Display";
	pointer-events: none;
}

.AN-bg-infinite-logo span {
	color: #f5f4f4;
	font-size: 300px;
	font-weight: 300;
	white-space: nowrap;
	margin-right: 50px;
}

.AN-bg-infinite-logo span:nth-child(1) {
	-webkit-animation: TextFlowingLoop 120s -60s linear infinite;
	animation: TextFlowingLoop 120s -60s linear infinite;
}

.AN-bg-infinite-logo span:nth-child(2) {
	-webkit-animation: TextFlowingLoop2 120s linear infinite;
	animation: TextFlowingLoop2 120s linear infinite;
}

.mask-bg {
	position: relative;
}

.mask-bg::after {
	background: #fff;
	content: "";
	display: block;
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 100%;
}

.mask-bg.is-animated::after {
	-webkit-animation: mask-bg 1s 0.3s cubic-bezier(0.8, 0, 0.17, 1) forwards;
	animation: mask-bg 1s 0.3s cubic-bezier(0.8, 0, 0.17, 1) forwards;
}

.item {
	background: #fff;
	position: relative;
	z-index: 5;
	padding: 80px 30px;
	width: calc(100% - 50px);
	overflow: hidden;
}

.item--chara {
	background: #f5f4f4;
}

.item--chara:before {
	display: none;
}

.item--others {
	margin-top: -80px;
	padding-top: 0;
}

.item__blk {
	margin-bottom: 120px;
}

.item__blk--chara {
	margin-bottom: 0px;
}

.item__inner {
	max-width: 1600px;
	margin-inline: auto;
}

.item__wrap {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: (1fr)[3];
	grid-template-columns: repeat(3, 1fr);
	gap: 50px 2.5%;
}

.item__wrap--single {
	-ms-grid-columns: 1fr;
	grid-template-columns: 1fr;
	justify-items: center;
}

.item__wrap--single a {
	max-width: 285px;
}

.item__wrap--chara {
	-ms-grid-columns: 1fr 1fr;
	grid-template-columns: 1fr 1fr;
}

.item__wrap--others {
	-ms-grid-columns: 1fr 1fr 1fr 1fr;
	grid-template-columns: 1fr 1fr 1fr 1fr;
}

.item__box {
	margin-bottom: 3rem;
}

.item__box--chara {
	margin-bottom: 4.5rem;
}

/* モーダルのスタイリング */

.modal {
	display: none; /* 初期状態では非表示 */
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0, 0, 0, 0.8);
}

.modal-content {
	background-color: #ffffff;
	margin: auto;
	padding: 50px 20px;
	border-radius: 0px;
	width: clamp(43.75rem, 22.917rem + 43.4vw, 75rem);
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

/* 閉じるボタンのスタイリング */

.close {
	color: #6c757d;
	position: absolute;
	top: 0px;
	right: 10px;
	font-size: 28px;
	font-weight: bold;
	cursor: pointer;
}

.close:hover,
.close:focus {
	color: #343a40;
	text-decoration: none;
	cursor: pointer;
}

/* リンクのスタイル */

.modalBtn {
	color: #222222;
	text-decoration: none;
	cursor: pointer;
	display: block;
}

a.modalBtn:hover {
	color: #222222;
}

/* JSONデータがない場合の要素の非表示 */

.hide {
	display: none;
}

/* カードのスタイリング */

.col {
	background-color: #fff;
	padding: 15px 10px 25px;
	border-radius: 5px;
	-webkit-transition: all 0.4s ease-in;
	transition: all 0.4s ease-in;
	text-align: center;
	width: 100%;
}

.col__img {
	margin-bottom: 15px;
	width: 100%;
}

.col__img img {
	width: 100%;
}

.col__ttl {
	font-family: "Oswald", "Noto Sans JP";
	margin-bottom: 1rem;
	font-size: 1.2rem;
	color: #363535;
	line-height: 1.3;
	font-weight: normal;
}

.col__ttl--jp {
	font-size: clamp(1.125rem, 0.958rem + 0.35vw, 1.375rem);
	font-family: "Noto Sans JP";
}

.col__colors {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.col__color {
	display: inline-block;
	vertical-align: middle;
	text-align: center;
	width: 1rem;
	height: 1rem;
	line-height: 24px;
	border-radius: 50%;
	background: #000;
	border: #000 1px solid;
	margin-inline: 0.2em;
}

.col__color--white {
	background: #fff;
	border: #999999 1px solid;
}

.col__color--clear {
	background: #fff;
	border: #999999 1px solid;
}

.col__color--aurora {
	background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(229, 162, 255)), to(rgb(152, 233, 157)));
	background-image: linear-gradient(180deg, rgb(229, 162, 255), rgb(152, 233, 157));
	border: #E5CDE7 1px solid;
}

.col__color--green {
	background: #29921c;
	border: #29921c 1px solid;
}

.col__color--lightgreen {
	background: #8cd482;
	border: #8cd482 1px solid;
}

.col__color--blue {
	background: #22adb7;
	border: #22adb7 1px solid;
}

.col__color--blue02 {
	background: #646B7C;
	border: #646B7C 1px solid;
}

.col__color--gray {
	background: #AFAFA5;
	border: #AFAFA5 1px solid;
}

.col__color--lightgray {
	background: #cfcfcf;
	border: #cfcfcf 1px solid;
}

.col__color--beige {
	background: #CAB4A6;
	border: #CAB4A6 1px solid;
}

.col__color--camel {
	background: #ca9c1c;
	border: #ca9c1c 1px solid;
}

.col__color--brown {
	background: #CAB4A6;
	border: #CAB4A6 1px solid;
}

.col__color--black {
	background: #333333;
	border: #333333 1px solid;
}

.col__color--silver {
	background: #e6e6e6;
	border: #e6e6e6 1px solid;
}

.col__color--red {
	background: #db2d2d;
	border: #db2d2d 1px solid;
}

.col__color--navy {
	background: #2040a7;
	border: #2040a7 1px solid;
}

.col__color--pink {
	background: #f197a1;
	border: #f197a1 1px solid;
}

.col__color--purple {
	background: #c720d6;
	border: #c720d6 1px solid;
}

.col__color--berry {
	background: #3d3bc4;
	border: #3d3bc4 1px solid;
}

.col__color--neongreen {
	background: #89eb70;
	border: #89eb70 1px solid;
}

.col__color--neonpink {
	background: #e680b8;
	border: #e680b8 1px solid;
}

.col__color--purpleRed {
	background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(219, 87, 205)), to(rgb(237, 47, 47)));
	background-image: linear-gradient(180deg, rgb(219, 87, 205), rgb(237, 47, 47));
	border: #f197a1 1px solid;
}

.col__color--greenBlue {
	background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(144, 245, 154)), to(rgb(4, 202, 255)));
	background-image: linear-gradient(180deg, rgb(144, 245, 154), rgb(4, 202, 255));
	border: #22adb7 1px solid;
}

#modalContent {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

#modalContent .modal__leftCol {
	margin: 0 1.5rem 0 0;
	width: 46%;
	text-align: center;
}

#modalContent .modal__rightCol {
	width: 50%;
}

#modalContent .modal__rightCol .name {
	margin-bottom: 0.5rem;
	font-size: 1.4rem;
	font-weight: bold;
}

#modalContent .modal__rightCol .text {
	font-size: 0.9rem;
	margin-bottom: 2rem;
}

.modalLink {
	width: 49%;
	margin-bottom: 0.2rem;
}

.modalLink a {
	display: block;
	padding: 0.8rem 0.2rem;
	text-align: center;
	background: #49a095;
	border: 1px solid #49a095;
	color: #fff;
	margin-bottom: 0.3rem;
	font-size: 0.8rem;
}

.modalLink a:hover {
	background: #ffffff;
	color: #49a095;
	-webkit-transition: ease 0.2s;
	transition: ease 0.2s;
}

.modal__rightBox {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

@media (hover: hover) {

.item__wrap--img a:hover {
	opacity: 0.7;
	-webkit-transition: all 0.2s;
	transition: all 0.2s;
}

}

@media (any-hover: hover) {

.col:hover {
	-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 18px 50px -10px;
	box-shadow: rgba(0, 0, 0, 0.2) 0px 18px 50px -10px;
}

}

@media (min-width: 768px) {

.is-sp {
	display: none !important;
}

.is-pc {
	display: block !important;
}

}

@media (max-width: 768px) {

.is-pc {
	display: none;
}

.is-sp {
	display: block;
}

}

@media screen and (max-width: 767px) {

.l-header {
	height: 50px;
	top: 15px;
	right: 15px;
}

.l-header__inner {
	height: inherit;
}

.l-nav-btn {
	margin-top: 0px;
}

.l-nav-btn span:nth-child(1) {
	top: 17px;
}

.l-nav-btn span:nth-child(2) {
	top: 34px;
}

.l-nav-btn.is-active {
	background-color: #fff;
}

.l-nav-btn.is-active span {
	top: 50%;
	background-color: #222;
}

.l-nav-lists {
	display: none;
}

.l-nav-global__overlay {
	width: 100%;
}

.l-nav-global__contents {
	width: 80svw;
}

.l-nav-global.is-active .l-nav-global__contents {
	-webkit-transform: translateX(0px);
	transform: translateX(0px);
}

.l-nav-global__list a {
	font-size: 1.2rem;
}

.l-nav-global__inner {
	padding: 80px 25px 30px;
	height: 100svh;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.l-nav-lists li i {
	font-size: 30px;
}

.l-nav-lists.l-nav-lists--spSns {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.l-nav-lists.l-nav-lists--spSns li {
	margin-right: 0.8rem;
}

.l-footer__link {
	width: 120px;
	margin: auto;
}

.c-btn {
	font-size: 1rem;
}

.c-ttl {
	font-size: 1.5rem;
	margin-bottom: 1.5rem;
}

.page_top span {
	width: 3vw;
	height: 3.3vw;
}

.page_top {
	width: 15vw;
	height: 15vw;
	right: 5vw;
	bottom: 4vw;
}

.ttlText {
	font-size: 1.75rem;
	margin-bottom: 1.5rem;
}

.p-visual {
	height: auto;
	background: none;
}

.p-visual__inner {
	-webkit-box-orient: vertical;
	-webkit-box-direction: reverse;
	-ms-flex-direction: column-reverse;
	flex-direction: column-reverse;
	position: relative;
	height: auto;
	display: block;
}

.p-visual__imgNum {
	width: 80vw;
}

.p-visual__spImg img {
	display: block;
}

.p-visual__spImg {
	display: block;
	position: relative;
}

.scrolldown1 {
	left: 20px;
	display: none;
}

.scrolldown1 span {
	left: -19px;
}

.p-visual__img {
	margin: auto;
	z-index: 9;
	position: absolute;
	top: 30%;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.p-about {
	width: 100vw;
	height: auto;
	padding: 5rem 1.5rem;
}

.p-about__inner {
	-webkit-box-orient: vertical;
	-webkit-box-direction: reverse;
	-ms-flex-direction: column-reverse;
	flex-direction: column-reverse;
}

.p-about__img {
	width: 100%;
	margin-bottom: 2.5rem;
}

.p-about__img .A {
	width: 57%;
	top: -16%;
	right: -5%;
	-webkit-transition-delay: 0.5s !important;
	transition-delay: 0.5s !important;
}

.p-about__img .B {
	width: 49%;
	bottom: -9%;
	right: -2%;
}

.p-about__img .C {
	width: 80%;
	-webkit-transition-delay: 0s !important;
	transition-delay: 0s !important;
}

.p-about__box {
	width: 100%;
}

.p-about__ttl {
	font-size: 6.8vw;
	margin-bottom: 2rem;
}

.p-about__txt {
	font-size: 13px;
	margin-bottom: 2.5rem;
	width: 100%;
}

.item--others {
	margin-top: -180px;
}

.item {
	width: 100%;
	padding: 80px 15px;
}

.item__blk {
	margin-bottom: 80px;
}

.item__blk--chara {
	margin-bottom: 0px;
}

.item__wrap {
	-ms-grid-columns: (1fr)[2];
	grid-template-columns: repeat(2, 1fr);
	gap: 2%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.item__wrap--chara {
	-ms-grid-columns: 1fr;
	grid-template-columns: 1fr;
}

.item__wrap--others {
	gap: 0;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.item__wrap--others a {
	width: 48%;
}

.item__box--chara {
	margin-bottom: 0rem;
}

.item__box--others {
	margin-bottom: 0rem;
}

.modal-content {
	height: 86svh;
	width: 86svw;
	overflow-y: scroll;
}

.close {
	top: -5px;
}

.col {
	width: 49%;
	padding: 10px 5px 20px;
}

.col__ttl {
	font-size: 1rem;
}

.col__color {
	width: 0.8rem;
	height: 0.8rem;
}

#modalContent {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

#modalContent .modal__leftCol {
	width: 100%;
	margin: 1.4rem auto 0.5rem;
}

#modalContent .modal__rightCol {
	width: 100%;
}

#modalContent .modal__rightCol .name {
	font-size: 1.2rem;
}

#modalContent .modal__rightCol .text {
	font-size: 0.8rem;
}

.modalLink a {
	font-size: 0.7rem;
}

}

@-webkit-keyframes PageAnime {

0% {
	-webkit-transform-origin: left;
	transform-origin: left;
	-webkit-transform: scaleX(0);
	transform: scaleX(0);
}

50% {
	-webkit-transform-origin: left;
	transform-origin: left;
	-webkit-transform: scaleX(1);
	transform: scaleX(1);
}

50.001% {
	-webkit-transform-origin: right;
	transform-origin: right;
}

100% {
	-webkit-transform-origin: right;
	transform-origin: right;
	-webkit-transform: scaleX(0);
	transform: scaleX(0);
}

}

@keyframes PageAnime {

0% {
	-webkit-transform-origin: left;
	transform-origin: left;
	-webkit-transform: scaleX(0);
	transform: scaleX(0);
}

50% {
	-webkit-transform-origin: left;
	transform-origin: left;
	-webkit-transform: scaleX(1);
	transform: scaleX(1);
}

50.001% {
	-webkit-transform-origin: right;
	transform-origin: right;
}

100% {
	-webkit-transform-origin: right;
	transform-origin: right;
	-webkit-transform: scaleX(0);
	transform: scaleX(0);
}

}

@-webkit-keyframes PageAnimeAppear {

0% {
	opacity: 0;
}

100% {
	opacity: 1;
}

}

@keyframes PageAnimeAppear {

0% {
	opacity: 0;
}

100% {
	opacity: 1;
}

}

@-webkit-keyframes load1 {

0%,80%,100% {
	-webkit-box-shadow: 0 0;
	box-shadow: 0 0;
	height: 1em;
}

40% {
	-webkit-box-shadow: 0 -2em;
	box-shadow: 0 -2em;
	height: 2.2em;
}

}

@keyframes load1 {

0%,80%,100% {
	-webkit-box-shadow: 0 0;
	box-shadow: 0 0;
	height: 1em;
}

40% {
	-webkit-box-shadow: 0 -2em;
	box-shadow: 0 -2em;
	height: 2.2em;
}

}

@-webkit-keyframes fadeUpAnime {

from {
	opacity: 0;
	-webkit-transform: translateY(50px);
	transform: translateY(50px);
}

to {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

}

@keyframes fadeUpAnime {

from {
	opacity: 0;
	-webkit-transform: translateY(50px);
	transform: translateY(50px);
}

to {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

}

@-webkit-keyframes pathmove {

0% {
	height: 0;
	top: 10px;
	opacity: 0;
}

30% {
	height: 30px;
	opacity: 1;
}

100% {
	height: 0;
	top: 50px;
	opacity: 0;
}

}

@keyframes pathmove {

0% {
	height: 0;
	top: 10px;
	opacity: 0;
}

30% {
	height: 30px;
	opacity: 1;
}

100% {
	height: 0;
	top: 50px;
	opacity: 0;
}

}

@-webkit-keyframes ROLLRING {

0% {
	-webkit-transform: rotateZ(0deg);
	transform: rotateZ(0deg);
}

100% {
	-webkit-transform: rotateZ(360deg);
	transform: rotateZ(360deg);
}

}

@keyframes ROLLRING {

0% {
	-webkit-transform: rotateZ(0deg);
	transform: rotateZ(0deg);
}

100% {
	-webkit-transform: rotateZ(360deg);
	transform: rotateZ(360deg);
}

}

@-webkit-keyframes loop {

from {
	background-position: 0 0;
}

to {
	background-position: -1900px 0; /* 画像のマイナス幅 */
}

}

@keyframes loop {

from {
	background-position: 0 0;
}

to {
	background-position: -1900px 0; /* 画像のマイナス幅 */
}

}

@-webkit-keyframes gradientAnimation {

0% {
	background-position: 0% 0%;
}

100% {
	background-position: 100% 0%;
}

}

@keyframes gradientAnimation {

0% {
	background-position: 0% 0%;
}

100% {
	background-position: 100% 0%;
}

}

@keyframes PageAnimeAppear {

0% {
	opacity: 0;
}

100% {
	opacity: 1;
}

}

@-webkit-keyframes hello1 {

0% {
	stroke: #fff;
	stroke-dashoffset: 2000;
	fill: transparent;
}

90% {
	stroke-dashoffset: 0;
	fill: transparent;
}

100% {
	stroke: #fff;
	fill: #fff;
	-webkit-filter: drop-shadow(10px 10px 15px rgba(0, 0, 0, 0.5));
	filter: drop-shadow(10px 10px 15px rgba(0, 0, 0, 0.5));
	will-change: filter; /* iOS対策 */
}

}

@keyframes hello1 {

0% {
	stroke: #fff;
	stroke-dashoffset: 2000;
	fill: transparent;
}

90% {
	stroke-dashoffset: 0;
	fill: transparent;
}

100% {
	stroke: #fff;
	fill: #fff;
	-webkit-filter: drop-shadow(10px 10px 15px rgba(0, 0, 0, 0.5));
	filter: drop-shadow(10px 10px 15px rgba(0, 0, 0, 0.5));
	will-change: filter; /* iOS対策 */
}

}

@-webkit-keyframes TextFlowingLoop {

0% {
	-webkit-transform: translateX(102%);
	transform: translateX(102%);
}

to {
	-webkit-transform: translateX(-102%);
	transform: translateX(-102%);
}

}

@keyframes TextFlowingLoop {

0% {
	-webkit-transform: translateX(102%);
	transform: translateX(102%);
}

to {
	-webkit-transform: translateX(-102%);
	transform: translateX(-102%);
}

}

@-webkit-keyframes TextFlowingLoop2 {

0% {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

to {
	-webkit-transform: translateX(-210%);
	transform: translateX(-210%);
}

}

@keyframes TextFlowingLoop2 {

0% {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

to {
	-webkit-transform: translateX(-210%);
	transform: translateX(-210%);
}

}

@-webkit-keyframes mask-bg {

0% {
	width: 100%;
}

100% {
	width: 0%;
}

}

@keyframes mask-bg {

0% {
	width: 100%;
}

100% {
	width: 0%;
}

}

/*# sourceMappingURL=map/style.css.map */
