body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -2;
}
/* -----------------------------------------------
= kv
----------------------------------------------- */
.kv {
	position: relative;
	padding: 40px 12px 50px;
}
.kv .num {
	display: grid;
	place-content: center;
	position: absolute;
	top: 10px;
	left: 12px;
	width: 54px;
	height: 54px;
	padding-top: 7px;
	color: #000;
	font-size: calc(1rem / 1.6);
	font-weight: 700;
	text-align: center;
}
.kv .num span {
	display: block;
	font-size: calc(1.4rem / 1.6);
}
.kv .box {
	margin-top: 20px;
	font-family: var(--min);
}
.kv .box p {
	margin-bottom: 10px;
	font-size: calc(1.4rem / 1.6);
	font-weight: 200;
	letter-spacing: .12em;
}
.kv .box h1 {
	font-size: calc(2.6rem / 1.6);
	font-weight: 200;
	line-height: calc(33 / 26);
	letter-spacing: .12em;
}
@media print, screen and (min-width: 768px) {/* PC */
.kv {
	max-height: calc(100vh - 140px);
	margin-bottom: 60px;
	padding: 60px 60px 0;
}
.kv .num {
	top: 10px;
	left: 60px;
	width: 90px;
	height: 90px;
	padding-top: 10px;
	font-size: calc(1.4rem / 1.6);
}
.kv .num span {
	font-size: calc(2rem / 1.6);
}
.kv img {
	object-fit: cover;
	max-height: calc(100vh - 140px);
}
.kv .box {
	position: absolute;
	left: 94px;
	bottom: 30px;
	margin: 0;
	color: #fff;
}
.kv .box p {
	margin-bottom: 15px;
	font-size: calc(1.8rem / 1.6);
}
.kv .box h1 {
	font-size: calc(4.4rem / 1.6);
	line-height: calc(56 / 44);
}
}/* @media */
/* -----------------------------------------------
= intro
----------------------------------------------- */
.intro {
	padding: 0 12px 50px;
}
.intro p {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
}
.intro p + p {
	margin-top: 20px;
}
@media print, screen and (min-width: 768px) {/* PC */
.intro {
	max-width: 1380px;
	margin-inline: auto;
	padding: 0 60px 100px;
}
.intro p {
	font-size: calc(1.8rem / 1.6);
	line-height: calc(36 / 18);
}
.intro p + p {
	margin-top: 20px;
}
}/* @media */
/* -----------------------------------------------
= profile
----------------------------------------------- */
.profile {
	padding: 15px 12px 40px;
}
.profile h2 {
	margin-bottom: 35px;
	font-family: var(--en);
	font-size: calc(2rem / 1.6);
	font-weight: 200;
	text-align: center;
}
.profile .item + .item {
	margin-top: 42px;
}
.profile img {
	display: block;
	max-width: 135px;
	margin: 0 auto -67px;
	border: 1px solid #d5d5d5;
	border-radius: 50%;
}
.profile .set {
	padding: 90px 20px 20px 20px;
	background: #fff;
	border: 1px solid #d5d5d5;
}
.profile .name {
	margin-bottom: 20px;
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	letter-spacing: .25em;
}
.profile .name span {
	display: inline-block;
	margin-right: 1.5em;
	font-family: var(--en);
	font-size: calc(2.4rem / 1.6);
	font-weight: 600;
	font-style: italic;
	letter-spacing: .12em;
}
.profile .type {
	display: inline-block;
	min-width: 120px;
	margin-bottom: 20px;
	padding: 2px 5px;
	color: #fff;
	font-size: calc(1.2rem / 1.6);
	letter-spacing: 0;
}
.profile .major {
	margin-bottom: 10px;
	padding-top: 10px;
	border-top: 1px dotted #834664;
	font-size: calc(1.3rem / 1.6);
}
.profile .division {
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 1px dotted #834664;
	font-size: calc(1.3rem / 1.6);
}
.profile .text {
	font-size: calc(1.3rem / 1.6);
}
.profile .note {
	margin-top: 20px;
	font-size: calc(1rem / 1.6);
	text-align: right;
}
@media print, screen and (min-width: 768px) {/* PC */
.profile {
	padding: 0 60px 55px;
}
.profile h2 {
	margin-bottom: 85px;
	font-size: calc(3.6rem / 1.6);
}
.profile .inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
	gap: 100px 80px;
	max-width: 1380px;
	margin-inline: auto;
}
.profile .item {
	position: relative;
}
.profile .item + .item {
	margin-top: 0;
}
.profile img {
	position: absolute;
	top: calc(50% - 90px);
	left: 0;
	z-index: 1;
	max-width: 180px;
	margin: 0;
}
.profile .set {
	margin-left: 114px;
	padding: 20px 30px 20px 90px;
}
.profile .name {
	margin-bottom: 25px;
	font-size: calc(2rem / 1.6);
}
.profile .name span {
	display: block;
	font-size: calc(4rem / 1.6);
}
.profile .type {
	min-width: 228px;
	margin-bottom: 35px;
	padding: 2px 10px;
	font-size: calc(1.6rem / 1.6);
}
.profile .major {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
.profile .division {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
.profile .text {
	margin-bottom: 20px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
.profile .note {
	max-width: 1380px;
	margin: 50px auto 0;
	font-size: calc(1.4rem / 1.6);
}
}/* @media */
/* -----------------------------------------------
= index
----------------------------------------------- */
.index {
	margin-bottom: 60px;
	padding: 20px 10px 25px 55px;
	color: #fff;
	background: url(../../img/work/bg_index_sp.jpg) no-repeat 0 / cover;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 30px 100%);
}
.index h2 {
	margin-bottom: 25px;
	font-family: var(--en);
	font-size: calc(2rem / 1.6);
	font-weight: 200;
}
.index li {
	font-size: calc(1.2rem / 1.6);
	line-height: calc(16 / 12);
}
.index li + li {
	margin-top: 15px;
}
.index li a span {
	display: block;
}
@media print, screen and (min-width: 768px) {/* PC */
.index {
	margin-bottom: 160px;
	padding: 50px calc(60 / 1500 * 100vw);
	background: url(../../img/work/bg_index_pc.jpg) no-repeat 0 / cover;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 250px 100%);
}
.index .inner {
	display: flex;
	max-width: 1500px;
	margin-inline: auto;
}
.index h2 {
	padding-inline: calc(130 / 1500 * 100%) calc(210 / 1500 * 100%);
	font-size: calc(3.6rem / 1.6);
}
.index ul {
	width: calc(994 / 1500 * 100%);
}
.index li {
	font-size: calc(1.8rem / 1.6);
}
.index li + li {
	margin-top: 15px;
}
.index li a {
	display: flex;
	gap: 0 1em;
}
.index li a span:first-child {
	min-width: 130px;
}
.index li a span:last-child {
	flex: 1;
}
}/* @media */
@media print, screen and (max-width: 1023px) and (min-width: 768px) {/* TABLET */
.index {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 100px 100%);
}
.index .inner {
	display: block;
}
.index ul {
	width: auto;
	padding-left: 100px;
}
}/* @media */
@media (hover:hover) {
.index a {
	transition: color .3s;
}
}/* @media */
/* -----------------------------------------------
= side
----------------------------------------------- */
.btn-side {
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 5;
	padding: 5px 20px 5px 40px;
	color: #fff;
	background: #aaaaa0;
	font-family: var(--en);
	font-size: calc(1.8rem / 1.6);
	clip-path: polygon(30px 0, 100% 0, 100% 100%, 0 100%);
	opacity: 0;
	pointer-events: none;
	transition: opacity .4s;
}
.btn-side.is-visible {
	opacity: 1;
	pointer-events: auto;
}
.btn-close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 40px;
	height: 40px;
}
.btn-close::before,
.btn-close::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	background: #fff;
}
.btn-close::before {
	transform: rotate(-45deg);
}
.btn-close::after {
	transform: rotate(45deg);
}
.side.index {
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 6;
	margin-bottom: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .4s;
}
.side.index[aria-hidden="false"] {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}
@media print, screen and (min-width: 768px) {/* PC */
.btn-side {
	right: auto;
	left: 0;
	padding: 2px 55px 2px 20px;
	font-size: calc(2.4rem / 1.6);
	clip-path: polygon(0 0, 100% 0, 75% 100%, 0 100%);
	transform: rotate(-90deg);
	transform-origin: top left;
}
.side.index {
	width: 100%;
	box-sizing: border-box;
}
.side.index .inner {
	max-width: none;
}
}/* @media */
@media (hover:hover) {
.btn-side {
	transition: color .3s;
}
}/* @media */
/* -----------------------------------------------
= talk
----------------------------------------------- */
.talk {
	padding: 0 12px 60px;
}
.talk .set {
	margin: 25px 0 0;
}
.talk .num {
	display: inline-block;
	margin-bottom: 10px;
	padding: 2px 60px 2px 5px;
	color: #fff;
	font-size: calc(1.2rem / 1.6);
	letter-spacing: .04em;
}
.talk h2 {
	margin-bottom: 20px;
	padding-bottom: 5px;
	border-bottom: 1px solid;
	font-family: var(--min);
	font-size: calc(1.8rem / 1.6);
	font-weight: 200;
	line-height: calc(24 / 18);
}
.talk .item {
	display: flex;
	gap: 0 15px;
	margin-bottom: 25px;
}
.talk .name {
	width: 38px;
}
.talk .name span {
	display: block;
	padding-left: .1em;
	font-size: calc(1.4rem / 1.6);
	font-weight: 700;
	text-align: center;
	letter-spacing: .1em;
}
.talk .name img {
	border-radius: 50%;
}
.talk .text {
	flex: 1;
	font-size: calc(1.3rem / 1.6);
}
.talk .img-set {
	display: flex;
	position: relative;
	margin-bottom: 25px;
}
.talk .img-set img {
	width: 50%;
}
.talk .img-set .caption {
	position: absolute;
	left: 50%;
	bottom: -2em;
	width: 50%;
	font-size: calc(.9rem / 1.6);
	text-align: right;
	letter-spacing: .04em;
}
.talk .img {
	width: calc(100% + 24px);
	margin-inline: -12px;
}
.img-large {
	margin-block: -30px 60px;
}
.msg {
	position: relative;
	margin-block: -30px 60px;
	text-align: right;
}
.msg p img {
	width: 166px;
	margin: 10px 10px 0 0;
}
@media print, screen and (min-width: 768px) {/* PC */
.talk {
	max-width: 896px;
	margin-inline: auto;
	padding: 0 40px 200px;
}
.talk .set {
	margin: 0;
}
.talk .num {
	margin-bottom: 30px;
	padding: 2px 90px 2px 10px;
	font-size: calc(2rem / 1.6);
	letter-spacing: .06em;
}
.talk h2 {
	margin-bottom: 30px;
	font-size: calc(2.8rem / 1.6);
	line-height: calc(40 / 28);
}
.talk .item {
	gap: 0 20px;
	margin-bottom: 35px;
}
.talk .name {
	width: 70px;
}
.talk .text {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(28 / 16);
}
.talk .img-set {
	gap: 0 20px;
	max-width: 720px;
	margin: 0 auto 35px;
}
.talk .img-set .caption {
	left: 50%;
	width: auto;
	font-size: calc(.9rem / 1.6);
	text-align: left;
}
.talk .img {
	width: 100%;
	margin: 75px 0 0;
}
.img-large {
	display: block;
	max-width: 1380px;
	margin: -130px auto 200px;
}
.msg {
	max-width: 1380px;
	margin: -130px auto 130px;
}
.msg > img {
	height: auto;
}
.msg p img {
	position: absolute;
	width: 324px;
}
}/* @media */
/* -----------------------------------------------
= other
----------------------------------------------- */
.other {
	padding: 0 12px 67px;
}
.other h2 {
	margin-bottom: 30px;
}
.other h2 span:nth-child(1) {
	display: inline-block;
	margin-right: 2em;
	font-family: var(--en);
	font-size: calc(1.4rem / 1.6);
	font-weight: 600;
}
.other h2 span:nth-child(2) {
	font-family: var(--en);
	font-size: calc(1.2rem / 1.6);
}
.other h2 span:nth-child(3) {
	display: block;
	padding-top: 5px;
	border-top: 1px solid #808080;
	font-size: calc(1.6rem / 1.6);
}
.other ul {
	margin-bottom: 30px;
}
.other ul li + li {
	margin-top: 30px;
}
.other li a {
	display: block;
	position: relative;
}
.other li .title {
	margin-top: 5px;
	font-family: var(--min);
	font-size: calc(1.4rem / 1.6);
	font-weight: 200;
}
@media print, screen and (min-width: 768px) {/* PC */
.other {
	max-width: 1380px;
	margin-inline: auto;
	padding: 0 40px 100px;
}
.other h2 {
	margin-bottom: 40px;
}
.other h2 span:nth-child(1) {
	font-size: calc(1.8rem / 1.6);
}
.other h2 span:nth-child(2) {
	font-size: calc(1.6rem / 1.6);
}
.other h2 span:nth-child(3) {
	font-size: calc(2rem / 1.6);
}
.other ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 40px;
	margin-bottom: 0;
}
.other ul li + li {
	margin-top: 0;
}
.other li .title {
	font-size: calc(1.8rem / 1.6);
}
}/* @media */
@media (hover:hover) {
.other li a .title {
	transition: color .3s;
}
}/* @media */
