* {
	box-sizing: border-box;
}

html {
	--primary: #411CA9;
	font-size: 10px;
	overflow-x: hidden;
	font-size: 2.4154589372vw;
}

body {
	margin: 0;
	font-family: "Montserrat", sans-serif;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
	background-color: #010010;
	min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
	margin: 0;
}

ol,
ul,
dl {
	list-style-type: none;
	margin: 0;
	padding-left: 0;
}

b,
strong {
	font-weight: 700;
}

a {
	background-color: transparent;
	color: inherit;
	text-decoration: none;
}

img {
	vertical-align: middle;
	border-style: none;
	max-width: 100%;
}

table {
	border-collapse: collapse;
}

th {
	font-weight: 400;
	text-align: inherit;
	text-align: -webkit-match-parent;
}

input,
button,
select,
optgroup,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

button,
input {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

select {
	word-wrap: normal;
}

button,
[type=button],
[type=reset],
[type=submit] {
	-webkit-appearance: button;
}

textarea {
	overflow: auto;
	resize: vertical;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
	height: auto;
}

[type=search] {
	outline-offset: -2px;
	-webkit-appearance: none;
}

[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
}

[hidden] {
	display: none !important;
}

.container {
	margin: auto;
	max-width: 133rem;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	width: 100%;
}

.btn {
	text-decoration: none;
	vertical-align: middle;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.btn:hover {
	text-decoration: none;
}

.btn:focus,
.btn.focus {
	outline: 0;
}

.btn:not(:disabled):not(.disabled) {
	cursor: pointer;
}

.header {
	position: fixed;
	inset: 0;
	bottom: initial;
	transition: all 0.3s ease-in-out;
	z-index: 9;
	padding: 1.5rem;
}

.header.is-active {
	padding-top: 1.5rem;
}

.header.is-active::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: rgba(1, 0, 16, 0.8);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.header__wrap {
	justify-content: space-between;
	display: flex;
	align-items: flex-end;
}

.header__logo {
	position: relative;
	z-index: 9;
	width: 14rem;
}

.header-menu__anchor {
	font-weight: 500;
	display: inline-block;
	position: relative;
	font-size: 2rem;
	padding: 1rem;
}

.header-menu__anchor:hover::after {
	width: 100%;
}

.header-menu__anchor::after {
	content: "";
	height: 0.5rem;
	width: 0;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	background: #411CA9;
	bottom: -0.5rem;
	transition: all 0.25s ease-in-out;
}

.header-social {
	display: flex;
	gap: 2rem;
}

.header-social__item {
	width: 3.8rem;
	aspect-ratio: 1;
}

.header-social__item:hover img {
	filter: initial;
}

.header-social__item img {
	width: 100%;
	filter: brightness(0) invert(1);
	transition: all 0.2s ease-in-out;
}

.hamburger-box {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	height: 5rem;
	width: 5rem;
	z-index: 1100;
}

.hamburger-box.is-active .hamburger-inner {
	transition-delay: 0.12s;
	transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	transform: rotate(45deg);
}

.hamburger-box.is-active .hamburger-inner:before {
	transition: top 75ms ease, opacity 75ms ease 0.12s;
	opacity: 0;
	top: 0;
}

.hamburger-box.is-active .hamburger-inner:after {
	transition: bottom 75ms ease, transform 75ms cubic-bezier(0.215, 0.61, 0.355, 1) 0.12s;
	transform: rotate(-90deg);
	bottom: 0;
}

.hamburger-inner:after,
.hamburger-inner:before {
	display: block;
	content: "";
}

.hamburger-inner:after,
.hamburger-inner:before,
.hamburger-inner {
	width: 2.8rem;
	height: 0.2rem;
	background-color: #fff;
	transition: transform 0.15s ease;
	border-radius: 3px;
}

.hamburger-inner {
	position: relative;
	display: block;
	transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
	transition-duration: 75ms;
}

.hamburger-inner:before {
	position: absolute;
	top: -0.8rem;
	transition: top 75ms ease 0.12s, opacity 75ms ease;
}

.hamburger-inner:after {
	position: absolute;
	bottom: -0.8rem;
	transition: bottom 75ms ease 0.12s, transform 75ms cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.footer {
	box-shadow: 0 -0.5rem 0.4rem rgba(115, 253, 170, 0.36);
	background: #010010;
	position: relative;
	z-index: 3;
	padding: 4.5rem 0 3rem;
}

.footer__wrap {
	margin-bottom: 5rem;
	display: flex;
}

.footer__logo {
	margin-bottom: 2.5rem;
	width: 19.2rem;
}

.footer__ttl {
	font-weight: bold;
	font-size: 2.5rem;
	margin-bottom: 2rem;
}

.footer__copyright {
	font-size: 1.6rem;
	font-weight: 500;
	text-align: center;
}

.footer-menu__item:not(:last-child) {
	margin-bottom: 1.5rem;
}

.footer-menu__anchor {
	font-weight: 500;
	transition: all 0.25s ease-in-out;
	font-size: 1.6rem;
}

.footer-menu__anchor:hover {
	opacity: 0.85;
}

.footer-social {
	display: flex;
	gap: 1.8rem;
}

.footer-social__item {
	width: 3.8rem;
	aspect-ratio: 1;
}

.footer-social__item:hover img {
	filter: initial;
}

.footer-social img {
	width: 100%;
	filter: brightness(0) invert(1);
	transition: all 0.2s ease-in-out;
}

.sec-ttl {
	background: linear-gradient(to right, #FF3BFF, #ECBFBF 50%, #5C24FF, #D94FD5);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 500;
	font-size: 2.4rem;
}

.animate_animated {
	animation-duration: 1.5s;
	animation-fill-mode: both;
	animation-timing-function: ease;
}

.animate__imageScale {
	animation-name: imageScale;
}

.fadeIn {
	animation-name: fadeIn;
}

.fadeUp {
	animation-name: fadeUp;
}

.fadeLeft {
	animation-name: fadeLeft;
}

.fadeRight {
	animation-name: fadeRight;
}

.main {
	position: relative;
	max-width: 100vw;
	overflow: hidden;
}

.circle {
	aspect-ratio: 1;
	border-radius: 50%;
	position: absolute;
	z-index: -1;
	filter: blur(139px);
	width: 50vw;
}

.circle.--style01 {
	background: rgba(114, 59, 245, 0.5);
	left: 3rem;
	top: 10rem;
}

.circle.--style02 {
	background: #c595d0;
	top: 70vh;
	right: 8rem;
}

.circle.--style03 {
	background: rgba(252, 79, 245, 0.4);
	top: 150vh;
	left: 5rem;
}

.circle.--style04 {
	background: #5123cf;
	left: 0;
	top: 0;
}

.circle.--style05 {
	background: rgba(252, 79, 246, 0.3);
	right: 4rem;
	top: 150%;
	width: 24.6rem;
}

.circle.--style06 {
	background: rgba(133, 147, 232, 0.6);
	left: 4rem;
	bottom: 90rem;
	width: 72vw;
}

.circle.--style07 {
	background: rgba(115, 253, 170, 0.9);
	right: 5%;
	bottom: 0;
}

.circle.--style08 {
	background: rgba(115, 253, 170, 0.9);
	left: 10%;
	bottom: 30rem;
}

.mv {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 10rem;
}

.mv .container {
	margin-bottom: 6rem;
}

.mv__wrap {
	display: flex;
	align-items: center;
}

.mv__image {
	width: 80%;
}

.mv__image img {
	width: 100%;
}

.mv__ttl {
	font-weight: bold;
	line-height: 1.3;
	font-size: 3rem;
}

.mv__txt {
	font-weight: 500;
	font-size: 2rem;
	margin-bottom: 4rem;
}

.mv-btn {
	display: flex;
	gap: 2rem;
	width: 100%;
}

.mv-btn__item {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	transition: all 0.25s ease-in-out;
	height: 5.3rem;
	border-radius: 5.5rem;
}

.mv-btn__item:hover {
	opacity: 0.85;
}

.mv-btn__item.--btn-primary {
	background-color: #411CA9;
}

.mv-btn__item.--white {
	background-color: #fff;
	color: #010010;
}

.why {
	text-align: center;
	position: relative;
	padding-bottom: 8rem;
}

.why__des {
	font-weight: bold;
	font-size: 2.2rem;
	margin-bottom: 1.5rem;
}

.why__txt {
	font-size: 1.6rem;
	margin-bottom: 1.5rem;
}

.tech {
	position: relative;
	padding-bottom: 8rem;
}

.tech__ttl .sec-ttl {
	text-align: center;
}

.tech-list {
	margin-left: auto;
}

.tech-list__item {
	background: linear-gradient(to right, transparent, rgba(118, 64, 243, 0.9));
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	padding: 1.5rem 1.5rem;
	border-radius: 1rem;
}

.tech-list__item:not(:last-child) {
	margin-bottom: 4rem;
}

.tech-list__ttl {
	font-weight: bold;
	text-align: right;
	font-size: 2.4rem;
	margin-bottom: 1rem;
}

.tech-list__txt {
	background: linear-gradient(to right, #73FDAA, #FFFFFF);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 500;
	text-align: center;
}

.roadmap__ttl {
	text-align: center;
	font-weight: 400;
	font-size: 4rem;
	margin-bottom: 3rem;
}

.roadmap__wrap {
	margin-inline: auto;
	position: relative;
	z-index: 2;
}

.roadmap__lead {
	font-weight: 900;
	text-align: center;
	position: relative;
	font-size: 4rem;
	margin-bottom: 2rem;
}

.roadmap__lead::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
	clip-path: polygon(2rem 0%, 100% 0, 100% 100%, 0 100%, 0 2rem);
	background: linear-gradient(to bottom, rgba(65, 28, 169, 0.6), rgba(65, 28, 169, 0.6));
	opacity: 0.8;
}

.roadmap__lead::after {
	content: "";
	position: absolute;
	inset: 1px;
	z-index: -1;
	clip-path: polygon(2rem 0%, 100% 0, 100% 100%, 0 100%, 0 2rem);
	background: linear-gradient(to bottom, #010010, #242424);
	opacity: 0.8;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.roadmap-list {
	position: relative;
	padding: 2.5rem 1.5rem;
}

.roadmap-list::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
	clip-path: polygon(2rem 0%, 100% 0, 100% 100%, 0 100%, 0 2rem);
	background: linear-gradient(to bottom, rgba(65, 28, 169, 0.6), rgba(65, 28, 169, 0.6));
	opacity: 0.8;
}

.roadmap-list::after {
	content: "";
	position: absolute;
	inset: 1px;
	z-index: -1;
	clip-path: polygon(2rem 0%, 100% 0, 100% 100%, 0 100%, 0 2rem);
	background: linear-gradient(to bottom, #010010, #242424);
	opacity: 0.8;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.roadmap-list__item:not(:last-child) {
	margin-bottom: 2rem;
}

.roadmap-list__ttl {
	color: #DE29E2;
	padding-left: 4rem;
	font-size: 2.4rem;
}

.roadmap-list__txt {
	line-height: 1.2;
	font-size: 2.2rem;
}

.btn-bottom {
	width: 100%;
	margin-inline: auto;
	position: relative;
	margin-top: -1rem;
	height: 20rem;
}

.btn-bottom img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

@media (min-width: 768px) {

html {
	font-size: 0.7518796992vw;
}

body {
	font-size: 1.6rem;
}

.header {
	padding: 6.5rem 6.5rem 1.5rem;
}

.header__box {
	justify-content: space-between;
	display: flex;
	gap: 3rem;
	flex: 1 1;
	max-width: 75%;
}

.header__logo {
	width: 19.2rem;
}

.header-menu {
	display: flex;
	gap: 5.5rem;
}

.header-menu__anchor {
	padding: 0.4rem 0;
	display: block;
	font-size: 2.4rem;
}

.header-social {
	gap: 2.5rem;
}

.hamburger-box {
	display: none;
}

.footer {
	padding: 10rem 0 6rem;
}

.footer__wrap {
	margin-bottom: 5rem;
	justify-content: space-between;
}

.footer__ttl {
	font-size: 3.8rem;
	margin-bottom: 3rem;
}

.footer__txt {
	max-width: 35rem;
}

.footer__copyright {
	text-align: right;
	font-size: 2rem;
}

.footer-menu__item:not(:last-child) {
	margin-bottom: 2rem;
}

.footer-menu__anchor {
	font-size: 2rem;
}

.footer-social {
	gap: 2.5rem;
}

.sec-ttl {
	font-size: 4rem;
}

.sp {
	display: none;
}

.circle {
	width: 24.8rem;
}

.circle.--style01 {
	left: 10rem;
	top: 10rem;
}

.circle.--style02 {
	top: 80vh;
	right: 10rem;
}

.circle.--style03 {
	top: 90vh;
	left: 25rem;
}

.circle.--style04 {
	left: 14rem;
	top: 100%;
}

.circle.--style05 {
	right: 14rem;
	top: 0;
	width: 44.6rem;
}

.circle.--style06 {
	left: 14rem;
	bottom: 60rem;
	width: 46.4rem;
}

.circle.--style07 {
	right: 75%;
}

.circle.--style08 {
	left: 60%;
	bottom: 20rem;
}

.mv {
	padding-top: 16rem;
}

.mv .container {
	margin-bottom: 20rem;
}

.mv__image {
	width: 56.7rem;
}

.mv__body {
	flex: 1 1;
	margin-right: -6rem;
}

.mv__ttl {
	font-size: 7.5rem;
}

.mv__txt {
	max-width: 63rem;
	margin-bottom: 12rem;
}

.mv-btn {
	gap: 6rem;
}

.mv-btn__item {
	height: 5.5rem;
	min-width: 23rem;
}

.why {
	padding-bottom: 15rem;
}

.why__des {
	font-size: 3.2rem;
	margin-bottom: 2rem;
}

.why__txt {
	font-size: 2rem;
	margin-bottom: 2rem;
}

.tech {
	padding-bottom: 10rem;
}

.tech__ttl {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
	width: 60%;
	display: flex;
}

.tech-list {
	width: 70rem;
}

.tech-list__item {
	padding: 2rem;
	border-radius: 1rem;
}

.tech-list__item:not(:last-child) {
	margin-bottom: 9rem;
}

.tech-list__ttl {
	font-size: 3.2rem;
	margin-bottom: 1rem;
}

.tech-list__txt {
	font-size: 2rem;
}

.roadmap__ttl {
	font-size: 8rem;
	margin-bottom: 8rem;
}

.roadmap__wrap {
	width: 66.5rem;
}

.roadmap__lead {
	font-size: 8rem;
}

.roadmap-list {
	padding: 4.5rem 2rem;
}

.roadmap-list__ttl {
	font-size: 3.2rem;
	padding-left: 4rem;
}

.roadmap-list__txt {
	font-size: 3.2rem;
}

.btn-bottom {
	margin-top: -3rem;
	height: 61.9rem;
	max-width: 160.5rem;
}

}

@media (min-width: 1330px) {

html {
	font-size: 10px;
}

}

@media (max-width: 767px) {

.header__box {
	left: 0;
	top: 0;
	right: 0;
	position: absolute;
	z-index: 2;
	padding: 9rem 2rem 5rem;
	opacity: 0;
	visibility: visible;
	transform: translateY(-2rem);
	transition: all 0.25s ease-in-out;
	pointer-events: none;
	max-height: 100vh;
	overflow-y: auto;
	overflow-x: hidden;
}

.header__box.is-active {
	pointer-events: all;
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.header__box::after {
	content: "";
	inset: 0;
	position: absolute;
	background-color: rgba(1, 0, 16, 0.8);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	z-index: -1;
}

.header-menu {
	margin-bottom: 5rem;
}

.header-menu__item:not(:last-child) {
	margin-bottom: 1rem;
}

.header-social {
	justify-content: center;
}

.footer__wrap {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.footer__col:not(:last-child) {
	margin-bottom: 3rem;
}

.footer__logo {
	margin-inline: auto;
}

.pc {
	display: none;
}

.mv {
	margin-bottom: 8rem;
	text-align: center;
}

.mv__wrap {
	flex-direction: column;
}

.mv__ttl {
	margin-bottom: 2.5rem;
}

.mv-btn {
	flex-direction: column;
	align-items: center;
}

.mv-btn__item {
	width: 60%;
}

.tech__ttl {
	margin-bottom: 3rem;
}

.tech-list__txt {
	max-width: 85%;
}

}

@keyframes imageScale {

0% {
	transform: scale(1.1);
}

100% {
	transform: scale(1);
}

}

@keyframes fadeIn {

0% {
	opacity: 0;
}

100% {
	opacity: 1;
}

}

@keyframes fadeUp {

0% {
	opacity: 0;
	transform: translate3d(0, 50px, 0);
}

100% {
	opacity: 1;
	transform: none;
}

}

@keyframes fadeLeft {

0% {
	opacity: 0;
	transform: translate3d(-50px, 0, 0);
}

100% {
	transform: none;
}

}

@keyframes fadeRight {

0% {
	opacity: 0;
	transform: translate3d(50px, 0, 0);
}

100% {
	transform: none;
}

}

