@charset 'UTF-8';
/* =====================================================
* Vendor
* ================================================== */

html.lenis,
html.lenis body {
	height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
	overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
	-ms-scroll-chaining: none;
	overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
	pointer-events: none;
}

.lenis.lenis-autoToggle {
	transition-duration: 1ms;
	transition-property: overflow;
	transition-behavior: allow-discrete;
}

/* =====================================================
* Base
* ================================================== */

/* -----------------------------------------------------
 * Init
 * -------------------------------------------------- */

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

/* normalize overwrite */

html {
	position: relative;
	min-height: 100%;
	font-family: 'Heisei Kaku Gothic Std', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic Medium', 'YuGothic', 'Meiryo', sans-serif;
	font-size: 62.5%;
}

body {
	height: 100%;
	margin: 0;
	padding: 0;
	background: #fff;
	color: #000;
	font-size: 1.6rem;
	line-height: 1.5;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: unset;
}

:where(h1, h2, h3, h4, h5, h6) {
	margin: 0;
}

:where(ul) {
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(figure) {
	margin: 0;
}

:where(p) {
	margin: 0;
}

:where(a) {
	color: #000;
	text-decoration: none;
}

:where(em) {
	font-weight: 700;
	font-style: normal;
}

:where(img) {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

:where(video) {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

:focus-visible {
	outline: 2px solid #00194a;
	outline-offset: 2px;
}

/* =====================================================
 * Module
 * ================================================== */

/* -----------------------------------------------------
 * Button
 * -------------------------------------------------- */

.c-btn {
	transition: opacity 0.2s ease;
}

.c-btn {
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 7px 24px;
	border: 0;
	border-radius: 4px;
	background-color: #000;
	color: #fff;
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.8;
	text-decoration: none;
}

/* -----------------------------------------------------
 * Community / SNS section
 * -------------------------------------------------- */

.p-community {
	position: relative;
}

.p-community-row {
	position: relative;
}

.p-community-row-inner {
	position: relative;
	max-width: 1440px;
	margin: 0 auto;
}

.p-community-row {
  /* 黄色行: 高さ250px、右カラム(531px)が右端まで伸びる */;
}

.p-community-row.cl-yellow {
	height: 250px;
}

.p-community-row.cl-yellow::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	left: calc(50% + 189px);
	height: 100%;
	background-color: #ffaf00;
}

.p-community-row {
  /* 紺行: 高さ514px */;
}

.p-community-row.cl-navy .p-community-row-inner {
	height: 100%;
}

.p-community-row.cl-navy {
  /* 紺背景: 214pxから右端まで（左端50px以上の白帯を確保） */;
}

.p-community-row.cl-navy::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	left: max(60px, 50% - 506px);
	height: 100%;
	background-color: #00194a;
}

.p-community-row.cl-navy {
  /* 濃紺: 右カラム(531px)が右端まで重なる */;
}

.p-community-row.cl-navy::after {
	content: '';
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
	left: calc(50% + 189px);
	height: 100%;
	background-color: #000528;
}

.p-community-coming {
	position: relative;
	z-index: 1;
	padding: 60px 0 0 max(80px, 50% - 506px);
}

.p-community-coming p {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 2rem;
	font-weight: 500;
	line-height: 2;
}

.p-community-content {
	position: relative;
	z-index: 2;
	padding: 89px 0 90px max(145px, 50% - 441px);
}

.p-community-heading {
	color: #fff;
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 4.8rem;
	font-weight: 500;
	line-height: 0.98;
}

.p-community-links {
	margin-top: 28px;
}

.p-community {
  /* グリッド装飾: 右カラム上に繰り返し配置 */;
}

.p-community-deco {
	position: absolute;
	z-index: 3;
	top: 0;
	right: 0;
	bottom: 0;
	left: calc(50% + 449px);
	background: url('../img/bg_grid.webp') left top;
	background-size: auto 544px;
	pointer-events: none;
}

/* -----------------------------------------------------
 * Introduction
 * -------------------------------------------------- */

.p-intro {
	position: relative;
	padding: 149px 0 0;
}

.p-intro-body {
	position: relative;
	padding-left: max(80px, 50% - 506px);
}

.p-intro-text {
	max-width: 491px;
	padding: 0 0 27px;
}

.p-intro-text p {
	margin: 2em 0 0;
	font-size: 2rem;
	font-weight: 500;
	line-height: 2.3;
	letter-spacing: -0.02em;
}

.p-intro-text p:first-child {
	margin-top: 0;
}

.p-intro-logo {
	position: absolute;
	bottom: 125px;
	left: calc(50% + 189px);
	width: 317px;
	aspect-ratio: 317/252;
}

.p-intro-logo img {
	display: block;
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

/* -----------------------------------------------------
 * Key Visual
 * -------------------------------------------------- */

.p-kv {
	position: relative;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 1440/810;
}

.p-kv-img {
	display: block;
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/* -----------------------------------------------------
 * SNS Links
 * -------------------------------------------------- */

.p-links-sns {
	display: flex;
	gap: 0 16px;
}

/* -----------------------------------------------------
 * Opening
 * -------------------------------------------------- */

.p-opening {
	display: flex;
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background-color: #fff;
	transition: opacity 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.p-opening.is-hidden {
	opacity: 0;
	pointer-events: none;
}

.p-opening-img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/* -----------------------------------------------------
 * Scroll Animation
 * -------------------------------------------------- */

.js-scroll-anim {
	opacity: 0;
	transition: opacity 2s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 2s cubic-bezier(0.215, 0.61, 0.355, 1);
	transition: opacity 2s cubic-bezier(0.215, 0.61, 0.355, 1), transform 2s cubic-bezier(0.215, 0.61, 0.355, 1);
	transition: opacity 2s cubic-bezier(0.215, 0.61, 0.355, 1), transform 2s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 2s cubic-bezier(0.215, 0.61, 0.355, 1);
	-webkit-transform: translateY(100px);
	transform: translateY(100px);
}

.is-loaded .js-scroll-anim.is-visible {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

/* -----------------------------------------------------
 * Display
 * -------------------------------------------------- */

.u-show-br-sp {
	display: none;
}

.u-show-br-pc {
	display: none;
}

.u-visually-hidden {
	position: absolute !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	white-space: nowrap !important;
}

/* -----------------------------------------------------
 * Text
 * -------------------------------------------------- */

/* font-family
---------------------------------------- */

.u-font-en {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
}

.u-font-ja {
	font-family: 'Heisei Kaku Gothic Std', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic Medium', 'YuGothic', 'Meiryo', sans-serif !important;
}

/* text-align
---------------------------------------- */

.u-al-left {
	text-align: left !important;
}

.u-al-center {
	text-align: center !important;
}

.u-al-right {
	text-align: right !important;
}

/* writing-mode
---------------------------------------- */

.u-wm-rl {
	-ms-writing-mode: tb-rl !important;
	-webkit-writing-mode: vertical-rl !important;
	writing-mode: vertical-rl !important;
}

/* =====================================================
 * Layout
 * ================================================== */

/* -----------------------------------------------------
 * footer
 * -------------------------------------------------- */

.l-footer-copyright {
	position: absolute;
	z-index: 1;
	bottom: 14px;
	left: 10px;
	margin: 0;
	color: #000;
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.l-footer-copyright > span {
	display: inline-block;
	width: 1em;
	-webkit-transform: rotateZ(90deg);
	transform: rotateZ(90deg);
}

/* -----------------------------------------------------
 * layout
 * -------------------------------------------------- */

.l-wrapper {
	overflow: hidden;
	min-width: 320px;
}

.l-main {
	background-color: #fff;
}

/* =====================================================
 * Page
 * ================================================== */

@media screen and (min-width: 1280px) {
	.u-hide-pc {
		display: none !important;
	}

	.u-show-pc {
		display: block !important;
	}

	.u-show-br-pc {
		display: inline-block !important;
	}
}

@media screen and (max-width: 1279px) {
	.p-intro-logo {
		left: calc(50% + 189px);
		width: 24.765625vw;
	}
}

@media screen and (max-width: 979px) {
	.c-btn {
		padding: 0.8vw 2.6666666667vw 0.2666666667vw;
		font-size: 3.2vw;
	}

	.p-community {
		margin-top: 28.2666666667vw;
	}

	.p-community-row.cl-yellow {
		height: 40vw;
	}

	.p-community-row.cl-yellow::after {
		left: 63.7333333333vw;
	}

	.p-community-row.cl-navy::before {
		left: 0;
	}

	.p-community-row.cl-navy::after {
		left: 63.7333333333vw;
	}

	.p-community-coming {
		position: absolute;
		top: -105.8666666667vw;
		left: 5.6vw;
		padding: 0;
	}

	.p-community-coming p {
		font-size: 4.5333333333vw;
	}

	.p-community-content {
		padding: 15.2vw 5.3333333333vw 10.1333333333vw;
	}

	.p-community-heading {
		font-size: 6.4vw;
	}

	.p-community-links {
		margin-top: 5.3333333333vw;
	}

	.p-community-deco {
		left: 79.2vw;
		background-size: auto 106.6666666667vw;
	}

	.p-intro {
		padding: 25.0666666667vw 0 0;
	}

	.p-intro-body {
		padding-right: 5.3333333333vw;
		padding-left: 5.3333333333vw;
	}

	.p-intro-text {
		max-width: none;
		padding: 0 0 5.3333333333vw;
	}

	.p-intro-text p {
		font-size: 4.8vw;
		line-height: 2;
	}

	.p-intro-logo {
		position: static;
		width: 42.6666666667vw;
		margin-top: 52.2666666667vw;
		margin-left: auto;
	}

	.p-kv {
		aspect-ratio: 375/673;
	}

	.js-scroll-anim {
		-webkit-transform: translateY(40px);
		transform: translateY(40px);
	}

	.u-hide-sp {
		display: none !important;
	}

	.u-show-sp {
		display: block !important;
	}

	.u-show-br-sp {
		display: inline-block !important;
	}

	.l-footer-copyright {
		bottom: 58.6666666667vw;
		left: 2.1333333333vw;
		font-size: 3.7333333333vw;
	}
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
	body {
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
}

@media (hover: hover) {
	.c-btn:hover {
		opacity: 0.7;
	}
}