@charset "utf-8";

/**
 * Component
 * -------------------------------------------------- */
.c-graphpaper {
	--w: 480;
	--h: 480;
	position: absolute;
	width: min(var(--cw) * var(--w) / var(--aspect), var(--w) * 1px);
	height: min(var(--cw) * var(--h) / var(--aspect), var(--h) * 1px);
	background: var(--graphpaper) center / 72px;
	/* background-attachment: fixed; */
	opacity: .5;
}
@media screen and (max-width: 767.98px) {
	.c-graphpaper {
		--w: 240;
		--h: 240;
		width: calc(var(--cw) * var(--w) / var(--aspect));
		height: calc(var(--cw) * var(--h) / var(--aspect));
		background-size: 36px;
		opacity: .25;
	}
}

.c-circle {
	--w: 186;
	aspect-ratio: 1 / 1;
	width: min(var(--cw) * var(--w) / var(--aspect), var(--w) * 1px);
	height: auto;
	border-radius: 50%;
	background: var(--orange);
}
@media screen and (max-width: 767.98px) {
	.c-circle {
		--w: 186;
		width: calc(--var(--cw) * var(--w) / var(--aspect));
	}
}

.c-building {
	--v: 1.5;
	display: flex;
	align-items: flex-end;
	width: fit-content;
}
.c-building :first-child {
	margin-right: calc(var(--basisgap) * var(--v));
}
.c-building :last-child {
	margin-left: calc(var(--basisgap) * var(--v) * 1.1);
}
.c-building :where(.m1, .m2, .m3) {
	--w: 30;
	--width: min(var(--cw) * var(--w) / var(--aspect), var(--w) * 1px);
	width: var(--width);
	height: auto;
}
.c-building :where(.m1, .m3) {
	aspect-ratio: 3 / 13;
	border-top-right-radius: calc(var(--width) * .3);
	background: var(--gray);
}
.c-building :where(.m2) {
	--w: 150;
	aspect-ratio: 3 / 4;
	border-top-left-radius: calc(var(--width) * .3);
	background: var(--orange);
}
.c-building :where(.m3) {
	--w: 76;
	background: #cacaca;
}
@media screen and (max-width: 767.98px) {
	.c-building :where(.m1, .m2, .m3) {
		--w: 16;
		--width: calc(var(--cw) * var(--w) / var(--aspect));
	}
	.c-building :where(.m2) {
		--w: 64;
	}
	.c-building :where(.m3) {
		--w: 40;
	}
}

.ico {
	width: .75em;
	height: auto;
	fill: none;
	stroke: currentcolor;
}

/* 英訳があるタイトル (ページタイトル) */
.c-title {
	color: var(--gray);
	font-weight: 500;
	--font-basis: 100;
	line-height: 1;
	font-family: var(--font-p);
	letter-spacing: .02em;
}
.c-title ruby,
.c-title rt {
	display: block;
}
.c-title rt {
	color: var(--orange);
	font-weight: 700;
	font-size: 24%;
	letter-spacing: .1em;
}
@media screen and (max-width: 767.98px) {
	.c-title {
		--font-basis: 48;
	}
}

/* ページタイトル */
.p-pagetitle {
	display: grid;
	place-items: center;
	overflow: hidden;
	height: var(--pagetitle-height);
}
.p-pagetitle > * {
	grid-area: 1 / 1;
}
.p-pagetitle .c-title {
	color: black;
}
.p-pagetitle:has(.bg) .c-title {
	color: white;
}
.p-pagetitle .c-title rt {
	margin-top: 1em;
	text-align: center;
}
.p-pagetitle .bg {
	z-index: -1;
	width: 100%;
	height: inherit;
}
.p-pagetitle .bg img {
	height: inherit;
	object-fit: cover;
}

/* 左に横バーがあるタイトル (メンバー/求人情報) */
.c-bartitle {
	font-weight: 700;
	--font-basis: 42;
	line-height: 1.2;
	font-family: var(--font-h);
}
.c-bartitle::before {
	content: "";
	display: inline-block;
	position: relative;
	top: -.1em;
	left: -.75em;
	height: .1905em;
	border-image: linear-gradient(var(--orange), var(--orange)) 1 / 0 0 .1905em / 0 0 0 50vw;
	vertical-align: middle;
}
@media screen and (max-width: 767.98px) {
	.c-bartitle {
		padding-left: 4em;
		--font-basis: 20;
	}
}

/* セクションタイトル */
.c-subject {
	font-weight: 700;
	--font-basis: 42;
	line-height: 1.5;
	font-family: var(--font-h);
	letter-spacing: .1em;
}
@media screen and (max-width: 767.98px) {
	.c-subject {
		--font-basis: 19;
	}
}

/* 段落 */
.c-paragraph {
	--font-basis: 20;
	text-align: justify;
}
@media screen and (max-width: 767.98px) {
	.c-paragraph {
		--font-basis: 14;
	}
}

/* ボタン */
.c-button {
	display: grid;
	grid-auto-flow: column;
	align-items: center;
	justify-content: center;
	z-index: 0;
	position: relative;
	column-gap: .5em;
	width: fit-content;
	min-width: min(var(--cw) * 192 / var(--aspect), 192px);
	height: min(var(--cw) * 72 / var(--aspect), 72px);
	padding: 1em;
	border-radius: 3em;
	color: white;
	--font-basis: 18;
}
.c-button::before {
	content: "";
	z-index: -1;
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: var(--orange);
}
.c-button .ico {
	stroke: currentcolor;
}
@media (hover) {
	.c-button::before {
		transition: scale .4s var(--ease-out);
	}
	.c-button:hover::before {
		scale: 1.12;
		transition-duration: .2s;
		transition-timing-function: var(--ease-back);
	}
}
@media screen and (max-width: 767.98px) {
	.c-button {
		min-width: calc(var(--cw) * 192 / var(--aspect));
		height: auto;
	}
}

/* Speaker Deck */
.c-speakerdeck {
	overflow: hidden;
	width: var(--contents-width);
	margin: var(--sectiongap) auto;
	border-radius: calc(var(--basisgap) / 2);
}


/**
 * ヘッダー
 * -------------------------------------------------- */
:is(.header__logo, .header_contact, .header_drawer) {
	display: flex;
	align-items: center;
	z-index: 6;
	position: fixed;
}
.header__logo {
	--w: min(var(--cw) * 148 / var(--aspect), 148px);
	--h: calc(var(--w) / 4.625);
	top: calc(var(--header-height) / 2 - var(--h) / 2);
	left: var(--basisgap);
	width: var(--w);
	margin-right: auto;
	color: var(--gray);
	fill: currentcolor;
	line-height: 1;
}
.header__logo a {
	color: currentcolor;
}
.header__logo svg {
	width: 100%;
}
@media screen and (max-width: 767.98px) {
	.header__logo {
		width: calc(var(--cw) * 84 / var(--aspect));
	}
}

/* お問い合わせ */
.header_contact {
	top: calc(var(--header-height) / 2 - var(--basisgap) / 3);
	right: min(var(--cw) * 192 / var(--aspect), 192px);
	--font-basis: 20;
	font: 500 var(--font-size) / 1 var(--font-p);
	letter-spacing: 0;
	white-space: nowrap;
}
.header_contact a {
	display: flex;
	color: white;
}
.header_contact span {
	display: flex;
	align-items: center;
	height: calc(var(--basisgap) / 1.5);
	padding-inline: .75em;
}
.header_contact .en {
	padding-top: .05em;
	padding-right: 1em;
	border-bottom-left-radius: .5em;
	font-size: 108%;
	background: var(--gray);
	clip-path: polygon(0 0, 100% 0, calc(100% - .5rem) 100%, 0 100%);
}
.header_contact .ja {
	margin-left: -.5rem;
	padding-top: .1em;
	padding-left: 1em;
	border-top-right-radius: .5em;
	font-size: 96%;
	background: var(--orange);
}
@media screen and (max-width: 767.98px) {
	.header_contact {
		top: calc(var(--header-height) / 2 - 1.25em);
		right: calc(var(--cw) * 104 / var(--aspect));
		--font-basis: 10;
	}
}

/* ドロワー */
.header_drawer {
	display: grid;
	gap: .5em;
	top: calc(var(--header-height) / 2 - .5lh);
	right: var(--basisgap);
	color: var(--gray);
	font-weight: 500;
	--font-basis: 28;
	line-height: 1;
	letter-spacing: 0;
	font-family: var(--font-h);
}
.header_drawer .icon {
	grid-area: 1 / 1;
	width: .75em;
	height: .75em;
	line-height: 0;
	fill: none;
	stroke-width: 3;
	stroke: var(--orange);
}
.header_drawer .icon svg {
	width: 100%;
	height: auto;
}
.header_drawer .label {
	grid-area: 1 / 2;
}
.header_drawer .label[aria-hidden="true"] {
	opacity: 0;
	transition: opacity .2s;
}
.header_drawer[aria-expanded="true"] .-open,
.header_drawer[aria-expanded="false"] .-close {
	visibility: hidden;
}
.header_drawer.is-open :is(.icon, .label) {
	color: white;
	stroke: white;
}
.header_drawer.is-animation :is(.icon, .label) {
	transition: color .2s, stroke .2s;
}
.header_drawer.is-animation:not(.is-open) :is(.icon, .label) {
	transition-delay: .2s;
}
@media screen and (max-width: 767.98px) {
	.header_drawer {
		top: calc(var(--header-height) / 2 - .75em);
		--font-basis: 16;
	}
}

/* 白表示用 */
:is(.header__logo, .header_drawer) {
	z-index: 6;
	pointer-events: none;
}
.l-header :is(.header__logo, .header_drawer) {
	z-index: 8;
	pointer-events: auto;
	color: transparent;
}
.l-header .header_drawer.is-animation {
	pointer-events: none;
}
[data-page="home"] > :is(.header__logo, .header_drawer) {
	transition: color .2s;
}
[data-page="home"] > :is(.header__logo, .header_drawer).is-white {
	color: white;
}
.l-shadow {
	pointer-events: none;
	z-index: 6;
	position: absolute;
	inset: 0 0 auto;
	clip-path: inset(0);
	height: var(--pagetitle-height);
}
.l-shadow :is(.header__logo, .header_drawer) {
	color: white;
}


/**
 * ナビゲーション
 * -------------------------------------------------- */
.l-nav {
	z-index: 7;
	position: fixed;
	inset: 0;
	overflow: hidden;
}
.nav_panel {
	content: "";
	position: absolute;
	inset: 0 0 0 auto;
	width: min(var(--cw) * 660 / var(--aspect), 660px);
	max-width: calc(100% - var(--basisgap));
	border-top-left-radius: var(--radius);
	background: var(--gray);
	filter: drop-shadow(0 0 16px #0004);
}
.nav_container {
	display: grid;
	grid-template-rows: 1fr auto;
	position: absolute;
	inset: 0 0 0 auto;
	width: min(var(--cw) * 660 / var(--aspect), 660px);
	max-width: calc(100% - var(--basisgap));
	height: 100dvh;
	color: white;
}

/* メニュー */
.nav_menu {
	place-self: center;
	position: relative;
	padding-top: calc(var(--basisgap) * 2);
	font-weight: 500;
	--font-basis: 32;
	line-height: 1;
	letter-spacing: .01em;
}
.nav_menu .privacy-policy {
	display: none;
}
.nav_menu a {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: 1em 0;
}
.nav_menu a::before {
	content: "";
	display: inline-block;
	width: .75em;
	height: .75em;
	background: var(--maru) center / 100% no-repeat;
	scale: 0;
	transition: scale .4s var(--ease-back);
}
.nav_menu .label {
	display: inline-block;
}
.nav_menu .label [lang="ja"] {
	margin-left: 1em;
	font-weight: 400;
	font-size: 50%;
}
.nav_menu .ico {
	position: relative;
	margin-left: .5em;
	font-size: 50%;
	vertical-align: baseline;
}
.l-nav .copyright {
	justify-self: center;
	position: relative;
	padding: calc(var(--basisgap) / 2) 1em var(--basisgap);
	--font-basis: 14;
}
@media (hover) {
	.nav_menu .label {
		transition: translate .4s var(--ease-out);
	}
	.nav_menu a .label {
		translate: -.75em 0;
	}
	.nav_menu a:hover .label,
	.nav_menu a:focus .label {
		translate: 0;
	}
	.nav_menu a:hover::before,
	.nav_menu a:focus::before {
		scale: 1;
	}
}
.nav_menu a[aria-current="page"] .label {
	translate: 0;
}
.nav_menu a[aria-current="page"]::before {
	scale: 1;
}
@media screen and (max-width: 767.98px) {
	.nav_menu {
		--font-basis: 20;
	}
	.nav_menu a {
		padding: .75em 0;
	}
	.l-nav .copyright {
		--font-basis: 10;
	}
}

/* 仕組み */
.l-nav:not(.is-active) {
	display: none;
}
.header_drawer.is-animation :is(.icon, .label) {
	animation: menuClose .4s both;
}
.header_drawer.is-animation.is-open :is(.icon, .label) {
	animation: menuOpen .4s both;
}
.nav_container.is-open {
	clip-path: inset(0);
}
.nav_container:not(.is-open) {
	clip-path: inset(0 0 0 100%);
}
.nav_panel:not(.is-open) {
	opacity: 0;
	scale: .8 1;
	translate: 20% 0;
	transform-origin: right bottom;
}
.nav_container.is-motion {
	transition: clip-path .4s var(--ease-inout);
}
.nav_container.is-motion.is-open {
	transition-timing-function: var(--ease-out);
}
.nav_panel.is-motion {
	transition: opacity .4s var(--ease-out), scale .4s var(--ease-inout), translate .4s var(--ease-inout);
}
.nav_panel.is-motion.is-open {
	transition-duration: .3s;
	transition-timing-function: var(--ease-out), var(--ease-back), var(--ease-out);
}
.nav_panel.is-motion:not(.is-open) {
	transition-delay: .1s;
}
@keyframes menuOpen {
	from, to { scale: .8; }
	25% { scale: 1.2; }
	50% { scale: .94; }
	75% { scale: 1.02; }
	to { scale: 1; }
}
@keyframes menuClose {
	from, to { scale: .8; }
	25% { scale: 1.2; }
	50% { scale: .94; }
	75% { scale: 1.02; }
	to { scale: 1; }
}


/**
 * フッター
 * -------------------------------------------------- */
.l-footer {
	margin-top: calc(var(--sectiongap) * 1.5);
	color: white;
	background: var(--gray);
}
.footer_image {
	--w: min(var(--cw) * 1104 / var(--aspect), 1104px);
	position: relative;
	overflow: hidden;
	fill: var(--gray);
}
.footer_image img {
	min-height: 400px;
	margin-block: -2%;
	object-fit: cover;
}
.footer_image svg {
	position: absolute;
	inset: auto 0 0;
	width: var(--w);
	margin-inline: auto;
	bottom: calc(var(--w) / -4.625 / 3)
}
@media screen and (max-width: 767.98px) {
	.footer_image {
		--w: calc(var(--cw) - var(--basisgap));
	}
}

/* メニュー */
.footer_menu {
	padding-top: calc(var(--basisgap) * 1.5);
	padding-inline: 1em;
	font-weight: 500;
	--font-basis: 24;
	letter-spacing: .01em;
}
.footer_menu a {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .5em 0;
}
.footer_menu a::before {
	content: "";
	display: inline-block;
	width: .75em;
	height: .75em;
	background: var(--maru) center / 100% no-repeat;
	scale: 0;
	transition: scale .4s var(--ease-back);
}
.footer_menu .label {
	display: inline-block;
}
.footer_menu .label [lang="ja"] {
	margin-left: 1em;
	font-weight: 400;
	font-size: 50%;
}
.footer_menu .ico {
	position: relative;
	margin-left: .5em;
	font-size: 50%;
	vertical-align: baseline;
}
@media (hover) {
	.footer_menu .label {
		transition: translate .4s var(--ease-out);
	}
	.footer_menu .label {
		translate: -.75em 0;
	}
	.footer_menu a:hover .label,
	.footer_menu a:focus .label {
		translate: 0;
	}
	.footer_menu a:hover::before,
	.footer_menu a:focus::before {
		scale: 1;
	}
}
.footer_menu a[aria-current="page"] .label {
	translate: 0;
}
.footer_menu a[aria-current="page"]::before {
	scale: 1;
}
@media print, (min-width: 768px) {
	.footer_menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		column-gap: 2em;
		max-width: 80%;
		margin-inline: auto;
	}
}
@media screen and (max-width: 767.98px) {
	.footer_menu {
		--font-basis: 16;
		padding-inline: calc(var(--basisgap) * 1.5);
	}
	.footer_menu a {
		padding: .25em 0;
	}
}

/* コピーライト */
.l-footer .copyright {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(var(--basisgap) / 2);
	margin-top: var(--basisgap);
	padding: var(--basisgap) 1em;
	fill: currentcolor;
	--font-basis: 12;
	letter-spacing: .1em;
	text-align: center;
}
.l-footer .copyright small {
	font-size: inherit;
}
@media screen and (max-width: 767.98px) {
	.l-footer .copyright {
		--font-basis: 10;
	}
	.l-footer .copyright svg {
		width: calc(var(--cw) * 80 / var(--aspect));
	}
}


/**
 * ローダー
 * -------------------------------------------------- */
.l-loader {
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100lvh;
	background: white;
}
.l-loader:not(.is-loading) {
	opacity: 0;
}
.l-loader.is-motion {
	transition: opacity .6s;
}
.l-loader.is-motion.is-loading {
	transition-duration: .3s;
}


/**
 * 基礎
 * -------------------------------------------------- */
.u-visuallyhidden {
	position: absolute;
	overflow: hidden;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
	margin: -1px;
	white-space: nowrap;
	clip: rect(0 0 0 0);
}
:where(svg[viewBox="0 0 148 32"]) {
	aspect-ratio: 148 / 32;
	height: auto;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}
body {
	overflow-x: clip;
	overscroll-behavior: auto;
	color: black;
	font: 400 1em / 1.75 var(--font-p);
	font-feature-settings: "palt" 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	background: white;
}
.has-scrollbar {
	overflow-y: scroll;
}
:root {
	--orange: #e24c00;
	--gray: #706f70;
	--whitesmoke: #e4e4e4;
	--font-h: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, "Yu Gothic", "YuGothic", "游ゴシック体", "游ゴシック", sans-serif;
	--font-p: "IBM Plex Sans JP", sans-serif;
	--ease-in: cubic-bezier(.2,0,.6,0);
	--ease-out: cubic-bezier(.2,1,.6,1);
	--ease-inout: cubic-bezier(.6,0,.2,1);
	--ease-back: cubic-bezier(.2,1.8,.6,1);
	--graphpaper: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbAAAAGwAgMAAAC1INi5AAAADFBMVEUAAAAdHR0dHR0dHR2EDraWAAAAA3RSTlMAcK+TIANRAAAA30lEQVR4Xu3ZsQkAIAwAwSzpJi7ndNoYNzCgXBrF5hDSfZzp+yx4+QGDwWAwGAwGg8FgMBis5Yy83HuJWTilP7ONMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMplPr1DAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDKZTF4xODYPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDq1Tm0bYTAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYTKfWqWEwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGEyn1qlf2UYYDAaDwWAwGAwGgy3tOLXxegtGDgAAAABJRU5ErkJggg==');
	--dot: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="%23e24c00"><circle cx="5" cy="5" r="1"/></svg>');
	--maru: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><circle fill="none" stroke="%23e24c00" stroke-width="3" cx="9" cy="9" r="7"/></svg>');
}
body {
	--cw: 100vw; /* ≒100cqi */
	--aspect: 1440;
	--basisgap: min(var(--cw) * 48 / var(--aspect), 48px);
	--sectiongap: min(var(--basisgap) * 3);
	--header-height: min(var(--cw) * 180 / var(--aspect), 180px);
	--contents-width: min(var(--cw) * 1344 / var(--aspect), 1344px);
	--radius: min(var(--cw) * 200 / var(--aspect), 200px);
	--pagetitle-height: min(var(--cw) * 700 / var(--aspect), 700px);
	--breakout: calc(50% - var(--cw) / 2);
}
:where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,figcaption,button,time,.c-button) {
	--font-basis: 20;
	--font-size: min(var(--cw) * var(--font-basis) / var(--aspect), var(--font-basis) * .0625rem);
	font-size: var(--font-size);
}
:where(p,ul,ol,dl,figcaption,time) {
	letter-spacing: .1em;
}
@media print, (min-width: 768px) {
	.u-mdonly { display: none !important; }
}
@media screen and (max-width: 767.98px) {
	.u-dtonly { display: none !important; }
	body {
		--aspect: 375;
		--basisgap: calc(var(--cw) * 24 / var(--aspect));
		--header-height: calc(var(--cw) * 64 / var(--aspect));
		--contents-width: calc(var(--cw) - var(--basisgap) * 2);
		--radius: calc(var(--cw) * 80 / var(--aspect));
		--pagetitle-height: calc(var(--cw) * 480 / var(--aspect));
	}
	:where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,figcaption,button,time,.c-button) {
		--font-size: calc(var(--cw) * var(--font-basis) / var(--aspect));
	}
}
*,*::before,*::after{box-sizing:border-box;}
:where(ul,ol){list-style:none;padding:0;}
:where(img,svg,video,iframe){vertical-align:middle;}
:where(img[height],picture>img,video[height]){height:auto;}
:where(body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,dl,dd){margin:0;}
:where(img,picture,video,iframe){display:inline-block;max-width:100%;}
:where(a){color:inherit;text-decoration:inherit;text-decoration-skip-ink:auto;}
:where(button){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;color:inherit;background:none;}
:where(sub){vertical-align:baseline;}
@media(hover){:where(a[href],button){cursor:pointer;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}}