@charset "UTF-8";

html,
body {
	line-height: 2;
	font-size: 62.5%;
	font-family: "Shippori Mincho", serif;
	font-style: normal;
	font-optical-sizing: auto;
	font-weight: 500;
	color: #262626;
	background: #FFFFFF;
	font-feature-settings: "pwid" 1;
	width: 100%;
	overflow: hidden;
}

body {
	opacity: 0;
}

body.loaded {
	opacity: 1;
}

.abs {
	position: absolute;
	display: block;
}

.rel {
	position: relative;
	display: block;
}

.flexBlock {
	display: flex;
	justify-content: space-between;
}

.column {
	flex-direction: column;
}

.anim {
	transition: 0.3s ease-out;
}

.resizing * {
	transition: none !important;
}

.video-background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100dvh;
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
}

.video-background video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	position: relative;
	display: none;
}

#scroll-attention {
	width: 100%;
	height: 100%;
	position: fixed;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	pointer-events: none;
	top: 0;
	left: 0;
	z-index: 999;
	animation: leftRight 3s ease-in-out infinite;
}

@keyframes leftRight {
	0% {
		transform: translate(-25px, -20px);
	}

	50% {
		transform: translate(25px, -20px);
	}

	100% {
		transform: translate(-25px, -20px);
	}
}

#opening-logo {
	width: 100%;
	height: 100%;
	position: fixed;
	display: block;
	top: 0;
	left: 0;
	background: #FFFFFF;
	z-index: 10000;
}

#opening-logo>h1 {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80px;
	height: 196px;
}

.brush-image {
	width: 100%;
	height: auto;
	mask-image: url('../imgs/brush.png');
	mask-position: center center;
	mask-repeat: no-repeat;
	mask-size: 0 0;
	opacity: 0;
}

.brush-image.visible,
.loaded .brush-image {
	animation: brushReveal 3s cubic-bezier(0.6, 0.05, 0.9, 0.1) forwards;
}

@keyframes brushReveal {
	to {
		opacity: 1;
		mask-size: 250% 250%;
	}
}

.scroll-container {
	position: relative;
	display: flex;
	flex-direction: row-reverse;
	overflow: hidden;
	height: 100dvh;
	width: 100vw;
}

.panel {
	width: 100vw;
	height: 100dvh;
	flex-shrink: 0;
}

.panel.for-panel02Img {
	width: 80vw !important;
}

.for_panel02 {
	width: 80vw;
}

.panel.full {
	min-width: 100vw;
	width: auto;
}

.content {
	text-align: center;
	opacity: 1;
}

h2.vertical-text {
	font-size: 4.0rem;
	letter-spacing: 0.3em;
	font-weight: 600;
}

p.vertical-text {
	font-size: 1.6rem;
	letter-spacing: 0.3em;
	line-height: 2.8;
	font-weight: 500;
}

.panel>.vertical.flexBlock {
	justify-content: center;
	align-items: center;
	flex-direction: row-reverse;
	width: 100%;
	height: 100%;
}

.panel>.vertical.flexBlock>h2.vertical-text {
	transform: translateY(-50%);
	margin-left: 12%
}

.panel>.vertical.flexBlock>p.vertical-text {
	transform: translateY(5%);
}

.vertical-text {
	writing-mode: vertical-rl;
	text-orientation: upright;
	display: inline-block;
	width: auto;
	text-align: left;
	opacity: 0;
}

.vertical-text span {
	display: inline-block;
	opacity: 0;
	transform-origin: center center;
}

.vertical-text.visible span {
	animation: fadeUp 2s forwards;
	filter: blur(1.0em);
	transform: translateY(77px);
}

.vt-separator {
	position: relative;
	display: block;
	padding: 0 15px;
}

@keyframes fadeUp {
	to {
		opacity: 1;
		filter: blur(0);
		transform: translateY(0);
	}
}

.fade-image {
	opacity: 0;
	filter: blur(10px);
	transform: translateY(30px);
}

.panel>.vertical.flexBlock .textArea.flexBlock {
	flex-direction: row-reverse;
	min-width: 15%;
}

.image.fade-item {
	overflow: hidden;
	position: relative;
	display: block;
	height: 100%;
}

.image.fade-item img {
	position: absolute;
	display: block;
	opacity: 0;
	filter: blur(10px);
	transform: scale(1.2) translate(-50%, -50%);
	left: 50%;
	top: 50%;
	transition: 3s ease;
	transform-origin: left top;
}

.image.fade-item.visible img {
	opacity: 1;
	filter: blur(0);
	transform: scale(1) translate(-50%, -50%);
}

#panel02>.vertical.flexBlock {
	margin-top: auto;
	margin-bottom: auto;
	height: 72%;
	justify-content: space-between;
}

#panel02 .image.fade-item {
	width: 50%;
}

#panel02 .image.fade-item img {
	height: 100%;
	width: auto;
}

#panel02 .title-area {
	margin-right: 7%;
	transform: translateY(-40%);
}

#panel02 .title-area.flexBlock h2.vertical-text {
	font-size: 3.0rem;
	margin-right: 5%;
	margin-left: 20%;
}

#panel02 .title-area.flexBlock p.vertical-text {
	font-size: 2.0rem;
	transform: translateY(-15%);
}

#panel02 .textArea {
	font-size: 1.4rem;
	height: 380px;
	padding-bottom: 20px;
	word-break: break-all;
	align-self: flex-end;
	margin-right: 5%;
	margin-left: 5%;
	min-width: 15%;
}

#panel02 .textArea>p {
	height: 100%;
	letter-spacing: 0.1em;
	line-height: 2.3;
}

.fixed-panel {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100dvh;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transform: scale(1.2, 1.2);
	transition: 1s cubic-bezier(0.645, 0.045, 0.355, 1);
	z-index: 10;
}

#panel08.fixed-panel {
	transition: 1.7s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.fixed-panel.visible {
	opacity: 1;
	transform: scale(1, 1);
}

#panel02 {
	background: #FFFFFF;
}

#panel02 .title-area.flexBlock {
	flex-direction: row-reverse;
}

.sub-panel {
	display: flex;
	justify-content: center;
	align-items: center;
}

.sub-panel .image.fade-item {
	width: 40%;
	height: 100%;
}

.slide.image.fade-item img {
	transition: 3s ease;
	opacity: 0;
	transform: scale(1) translate(-70%, -50%);
	height: 100%;
	width: auto;
}

.slide.image.fade-item.visible img {
	opacity: 1;
	transform: scale(1) translate(-50%, -50%);
}

.sub-panel>.vertical.flexBlock {
	margin: 7% auto;
	height: 86%;
	width: 70%;
	justify-content: space-between;
}

#panel06>.vertical.flexBlock,
.sub-panel>.vertical.flexBlock {
	min-width: 0;
	min-height: 0;
	overflow: visible;
}

#panel06>.vertical.flexBlock>h2,
#panel06>.vertical.flexBlock>div,
.sub-panel>.vertical.flexBlock>h2,
.sub-panel>.vertical.flexBlock>div {
	flex-shrink: 0;
}

.sub-panel .textArea {
	margin-left: auto;
	padding-bottom: 12%;
	word-break: break-all;
	align-self: flex-end;
}

.sub-panel p.vertical-text {
	font-size: 2.0rem;
}

h2.firstH2 {
	margin-left: 5% !important;
}

h2.secondH2 {
	transform: translateY(-20%) !important;
}

#panel05.panel>.vertical.flexBlock>h2.vertical-text {
	text-align: right;
	transform: translateY(-10%);
}

#panel06 {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	padding-left: 30vw;
}

#panel06 .menu.flexBlock {
	flex-direction: row-reverse;
	font-size: 5.0rem;
	text-align: center;
	align-items: center;
	margin-right: 5vw;
}

#panel06 .menu.flexBlock>div {
	margin: 0 5px;
}

#panel06 .menu.flexBlock>div .img {
	width: 296px;
	aspect-ratio: 1 / 1;
}

#panel06 .menu.flexBlock .fade-item {
	filter: blur(10px);
	opacity: 0;
	transform: scale(0.7);
	transition: 1.8s ease-out;
}

#panel06 .menu.flexBlock .fade-item.visible {
	filter: blur(0px);
	transform: scale(1);
	opacity: 1;
}

#panel06 .menu.flexBlock>div .img>img {
	width: 100%;
}

#panel06 .content.vertical {
	padding-right: 30vw;
	padding-left: 15vw;
}

#panel06 h2.firstH2 {
	margin-left: 5% !important;
	transform: translateY(-20%) !important;
}

#panel06 h2.secondH2 {
	transform: translateY(10%) !important;
}

#panel06 .content.vertical .textArea {
	margin-left: auto;
	align-self: flex-end;
	word-break: break-all;
	padding-bottom: 15%;
}

#panel07 {
	flex-wrap: wrap;
}

#panel07>div {
	width: 33.33%;
	height: 50%;
	background-size: cover !important;
	background-position: center !important;
	opacity: 0;
	transition: 1.8s ease-out;
}

#panel07>div.visible {
	opacity: 1;
}

#panel07>div.img01 {
	background: url("../imgs/img14.jpg") no-repeat;
}

#panel07>div.img02 {
	background: url("../imgs/img12.jpg") no-repeat;
}

#panel07>div.img03 {
	background: url("../imgs/img10.jpg") no-repeat;
}

#panel07>div.img04 {
	background: url("../imgs/img11.jpg") no-repeat;
}

#panel07>div.img05 {
	background: url("../imgs/img13.jpg") no-repeat;
}

#panel07>div.img06 {
	background: url("../imgs/img15.jpg") no-repeat;
}

#panel08 {
	background: #FFFFFF;
}

#panel08:before {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: none;
	background: url("../imgs/bg-part.jpg") no-repeat right bottom;
	background-size: 364px auto;
}

#panel08>.flexBlock {
	width: 80%;
	height: 100%;
	justify-content: space-around;
	align-items: center;
	padding-bottom: 30px;
	position: relative;
}

#panel08>.flexBlock>.img {
	max-width: 104px;
}

#panel08 .info {
	font-size: 1.4rem;
	flex-direction: column;
	text-align: left;
	align-items: flex-start;
	max-width: 400px;
	position: relative;
}

#panel08 .info hr {
	border: none;
	margin: 15px 0 5px;
	border-bottom: 0.5px solid #262626;
	width: 90%;
}

#panel08 .info h2 {
	font-size: 2.0rem;
	margin-bottom: 35px;
}

#panel08 .info dl {
	display: flex;
	flex-wrap: wrap;
}

#panel08 .info dl dt {
	width: 70px;
	margin-right: 16px;
	display: flex;
	justify-content: space-between;
	position: relative;
}

#panel08 .info dl dt:after {
	content: ':';
	position: absolute;
	display: block;
	right: -9px;
}

#panel08 .info dl dd {
	width: calc(100% - 86px);
}

#panel08>.flexBlock .copyright {
	font-size: 1.0rem;
	text-align: center;
	width: 100%;
	position: absolute;
	height: 28px;
	bottom: 1px;
	left: 0;
	right: 0;
	margin: 0 auto;
}

#panel08>.flexBlock .copyright>:nth-child(1) {
	width: 40%;
}

@media screen and (max-width: 768px) {
	.mobileMode #panel01.panel>.vertical.flexBlock .textArea.flexBlock {
		width: 100%;
	}

	.mobileMode #panel08>.flexBlock .copyright>:nth-child(1) {
		width: 100%;
	}

	.mobileMode #panel01 {
		width: auto;
	}

	.mobileMode #panel01 h2 {
		width: 100vw;
		min-width: 100vw;
		text-align: center;
		display: flex;
		align-items: center;
		transform: translateY(-7%);
		margin-left: 0;
	}

	.mobileMode #panel02>.vertical.flexBlock {
		flex-direction: column;
		height: 100%;
		justify-content: space-around;
	}

	.mobileMode #panel02 .title-area {
		transform: translateY(0);
		margin-right: -60px;
		margin-top: 7%;
	}

	.mobileMode #panel02 .textArea {
		align-self: center;
		font-size: 1.1rem;
		padding-bottom: 1%;
		width: 100%;
		height: 256px;
		display: flex;
		margin-right: 0%;
		margin-left: 0%;
		word-break: inherit
	}

	.mobileMode #panel02 .title-area.flexBlock p.vertical-text {
		transform: translateY(0);
	}

	.mobileMode #panel02 .title-area.flexBlock h2.vertical-text {
		margin-left: 0;
		margin-top: 32%;
	}

	.mobileMode #panel02Img .fade-item {
		width: 100%;
		height: 100%;
		overflow: hidden;
		background: #FFFFFF;
	}

	.mobileMode #panel02Img .fade-item:after {
		content: '';
		background: none;
		border: 20px solid #FFFFFF;
		transition: 2s ease-in-out 2s;
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: 1;
		pointer-events: none;
	}

	.mobileMode #panel02Img .fade-item>img {
		filter: blur(10px);
		transform: scale(1.2) translate(-50%, -50%);
		transition: 3s ease-out;
		opacity: 0;
		width: auto;
		height: 100%;
		display: block;
	}

	.mobileMode #panel02Img .fade-item.visible:after {
		border-width: 0;
	}

	.mobileMode #panel02Img .fade-item.visible>img {
		opacity: 1;
		filter: blur(0px);
		transform: scale(1) translate(-50%, -50%);
	}

	.mobileMode .fixed-panel {
		transition: 1.2s cubic-bezier(0.645, 0.045, 0.355, 1);
	}

	.mobileMode h2.vertical-text {
		font-size: 2.6rem;
	}

	.mobileMode .sub-panel {
		width: auto;
		min-width: 200vw;
	}

	.mobileMode .sub-panel>.vertical.flexBlock {
		margin: 0 auto;
		height: 100%;
		width: 100%;
	}

	.mobileMode .sub-panel .image.fade-item {
		width: 100vw;
		min-width: 100vw;
	}

	.mobileMode .sub-panel.panel>.vertical.flexBlock>h2.vertical-text {
		margin-right: 20vw;
	}

	.mobileMode .sub-panel.panel>.vertical.flexBlock>h2.vertical-text.secondH2 {
		margin-right: 0;
	}

	.mobileMode #panel05.sub-panel {
		width: 230vw;
	}

	.mobileMode #panel07 {
		width: 100vw;
		min-width: 100vw;
	}

	.mobileMode #panel07>div {
		width: 50%;
		height: 33.33%;
	}

	.mobileMode #panel07>div.img01 {
		background: url("../imgs/img10.jpg") no-repeat;
	}

	.mobileMode #panel07>div.img02 {
		background: url("../imgs/img12.jpg") no-repeat;
	}

	.mobileMode #panel07>div.img03 {
		background: url("../imgs/img13.jpg") no-repeat;
		background-position: left bottom !important;
	}

	.mobileMode #panel07>div.img04 {
		background: url("../imgs/img14.jpg") no-repeat;
	}

	.mobileMode #panel07>div.img05 {
		background: url("../imgs/img11.jpg") no-repeat;
	}

	.mobileMode #panel07>div.img06 {
		background: url("../imgs/img15.jpg") no-repeat;
	}

	.mobileMode #panel08::before {
		background-size: 150px auto;
	}

	.mobileMode #panel08>.flexBlock {
		padding-top: 20px;
		width: 100%;
		height: 100%;
		flex-direction: column;
	}

	.mobileMode #panel08>.flexBlock>.img {
		width: 87px;
		margin-bottom: 5%;
	}

	.mobileMode #panel08 .info {
		width: calc(100% - 40px);
	}

	.mobileMode #panel08 .info h2 {
		margin-bottom: 12px;
	}
}

@media screen and (max-width: 368px) {
	.mobileMode #panel08>.flexBlock>.img {
		width: 70px;
	}

	.mobileMode #panel08 .info h2 {
		font-size: 1.8rem;
		margin-bottom: 15px;
	}

	.mobileMode #panel08 .info {
		font-size: 1.2rem;
	}

	.mobileMode #panel08 .info dl dt {
		width: 60px;
		margin-right: 14px;
	}

	.mobileMode #panel08 .info dl dd {
		width: calc(100% - 74px);
	}
}

@media screen and (max-width: 375px) and (max-height: 760px) {
	.mobileMode #panel06 .menu.flexBlock>div .img {
		width: 230px;
	}

	.mobileMode #panel06 .menu.flexBlock {
		font-size: 4.3rem;
	}
}

@media screen and (max-height: 600px) {
	.desktopMode .panel>.vertical.flexBlock>h2.vertical-text {
		font-size: 2.6rem;
		margin-left: 10%;
		transform: translateY(-25%);
	}

	.desktopMode p.vertical-text {
		font-size: 1.2rem;
	}

	.desktopMode #panel02>.vertical.flexBlock {
		height: 90%;
	}

	.desktopMode #panel02 .title-area {
		margin-right: 3%;
		transform: translateY(-10%);
	}

	.desktopMode #panel02 .title-area.flexBlock p.vertical-text {
		font-size: 1.5rem;
	}

	.desktopMode #panel02 .title-area.flexBlock h2.vertical-text {
		font-size: 2.4rem;
		margin-right: 2%;
		margin-left: 10%;
	}

	.desktopMode #panel02 .textArea {
		font-size: 1.1rem;
		height: 70%;
		padding-bottom: 2%;
		margin-left: 0;
	}

	.desktopMode #panel01.panel>.vertical.flexBlock>h2.vertical-text {
		transform: translateY(-35%);
	}

	.desktopMode #panel01.panel>.vertical.flexBlock>.textArea {
		transform: translateY(5%);
	}

	.desktopMode #panel03.panel>.vertical.flexBlock>h2.vertical-text {
		transform: translateY(0%);
	}

	.desktopMode .sub-panel>.vertical.flexBlock {
		width: 82%;
	}

	.desktopMode #panel06 h2.firstH2 {
		transform: translateY(-1%) !important;
		margin-left: 3% !important;
	}

	.desktopMode #panel06 h2.secondH2 {
		transform: translateY(33%) !important;
	}

	.desktopMode #panel06 .content.vertical .textArea {
		height: 80%;
		min-width: 50vw;
	}

	.desktopMode #panel06 .menu.flexBlock>div .img {
		width: 196px;
	}

	.desktopMode #panel06 .menu.flexBlock {
		font-size: 3.8rem;
		margin-right: 5vw;
	}

	.desktopMode #panel08:before {
		background-size: 182px auto;
	}

	.desktopMode #panel08>.flexBlock {
		width: 90%;
	}

	.desktopMode #panel08 .info {
		width: 380px;
	}

	.desktopMode #panel08>.flexBlock>.img {
		max-width: 94px;
		margin-right: 10px;
	}

	.desktopMode #panel05.panel>.vertical.flexBlock>h2.vertical-text {
		transform: translateY(0%);
		font-size: 2.2rem;
	}
}

.flexBlock.sp-only,
.sp-only {
	display: none !important;
}

.pc-only {
	display: block !important;
}

br.pc-only {
	display: inline !important;
}

span.pc-only {
	display: inline-block !important;
}

.flexBlock.pc-only {
	display: flex !important;
}

@media screen and (max-width:768px) {

	br.pc-only,
	span.pc-only,
	.flexBlock.pc-only,
	.pc-only {
		display: none !important;
	}

	.sp-only {
		display: block !important;
	}

	.flexBlock.sp-only {
		display: flex !important;
	}

	br.sp-only {
		display: inline !important;
	}
}

.desktopMode .desktop-only {
	display: block !important;
}

.desktopMode .mobile-only {
	display: none !important;
}

.mobileMode .desktop-only {
	display: none !important;
}

.mobileMode .mobile-only {
	display: block !important;
}