@charset "utf-8";

/***********************************************************
////////////////////////////////////////////////////////////

@ DESKTOP

////////////////////////////////////////////////////////////
***********************************************************/


/**************************************
  (head)
**************************************/

/*** logo ***/
#head .logo {
	opacity: 1;
	pointer-events: all;
	transition : all .2s ease;
}
.on_title_image #head .logo {
	opacity: 0;
	pointer-events: none;
	/*display: none;*/
}




/**************************************
  (main)
**************************************/
#main {
	font-size: 18px;
	line-height: 1.8;
	font-family: 'minion-pro', serif;
}



/**************************************
  (page-title)
**************************************/
#page-title {
	position: relative;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

/*** logo ***/
#page-title .logo {
	display: inline-block;
	width: 460px;
	z-index: 1;
}
#page-title .logo .img {
	padding: 0 160px;
	margin-bottom: 20px;
}
#page-title .logo .txt {

}
#page-title .logo .txt svg {
	fill: #fff;
}

/*** slide ***/
#page-title .slide {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
#page-title .slide li {
	
}
#page-title .slide li img {
	width: 100%;
	height: 100vh;
	max-width: 100%;
	max-height: 100%;
	object-fit: cover;
	margin: auto;
}

#page-title .slide::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 160px;
	background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%);
}

#page-title .slide .add-animation {
	animation: zoomUp 16s linear 0s normal both;
}
@keyframes zoomUp {
	0% { transform: scale(1); }
	100% { transform: scale(1.15); }
}

/*** scroll ***/
#page-title .scroll {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	position: absolute;
	left: 50%;
	bottom: 0;
	color: #fff;
	font-size: 16px;
	font-family: 'minion-pro', serif;
	line-height: 1.0;
	letter-spacing: 0.05em;
	transform: translateX(calc(-1140px/2 - 1.4em)) rotate(-90deg);
	transform-origin: bottom left;
}
#page-title .scroll::before {
	content: '';
	display: inline-block;
	width: 110px;
	height: 1px;
	background: #fff;
}




/**************************************
  introduction
**************************************/
#introduction {

}

#introduction .illust {
	width: 140px;
	margin-left: -20px;
}

#introduction .inner::after {
	content: '';
	position: absolute;
	left: -20px;
	bottom: -20px;
	width: 1px;
	height: calc(100% + 20px + 80px);
	background: #000;
}




/**************************************
  myforest
**************************************/
#myforest {

}

#myforest .title {
	z-index: 1;
	height: 311px;
}
#myforest .title .draw {
	position: absolute;
	width: 600px;
	transform: translateX(-10px);
}

#myforest .parallax {
	position: relative;
	margin-top: -200px;
}
#myforest .parallax .frame {
	position: relative;
}
#myforest .parallax .frame .item {
	/*background: rgba(255, 0, 0, 0.1);*/
}
#myforest .parallax .frame .item .image {
	padding-top: 100px;
	padding-bottom: 40px;
}
#myforest .parallax .frame .item .image img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 80vh;
	object-fit: cover;
}
#myforest .parallax .frame .item .cont {

}
#myforest .parallax .frame .item .cont .box {
	position: absolute;
	left: 10px;
	bottom: 0;
	width: 320px;
	padding: 60px 30px;
	background: #fff;
	opacity: 0;
	transition: all 0.9s ease;
}
#myforest .parallax .frame .item.visible .cont .box {
	opacity: 1;
}
#myforest .parallax .frame .item .cont .box .num {
	font-size: 86%;
	line-height: 1.0;
	letter-spacing: 0.2em;
	text-decoration: underline;
	text-underline-offset: 0.3em;
	margin-bottom: 1.5em;
}
#myforest .parallax .frame .item .cont .box .lead {
	font-size: 148%;
	line-height: 1.8;
	margin-bottom: 1.5em;
}
#myforest .parallax .frame .item .cont .box .text {
	
}




/**************************************
  education
**************************************/
#education {

}

#education .title {
	margin-bottom: 30px;
}
#education .title .draw {
	width: 970px;
	transform: translateX(-300px);
}

#education .subpages {
	
}
#education .subpages .item {
	width: 460px;
	margin-bottom: 120px;
}
#education .subpages .item .image {
	margin-bottom: 1.6em;
}
#education .subpages .item .image img {
	display: block;
	width: 100%;
}
#education .subpages .item .lead {
	font-size: 148%;
	line-height: 1.8;
	margin-bottom: 1.2em;
}
#education .subpages .item .text {
	margin-bottom: 1.6em;
}

#education .subpages .item:nth-child(2n) {
	float: right;
	margin-top: -50%;
}

#education .subpages .item:last-child {
	margin-bottom: 0;
}




/**************************************
  synq
**************************************/
#synq {

}

#synq .title {
	margin-bottom: 30px;
}
#synq .title .draw {
	width: 1230px;
	transform: translateX(-80px);
}

#synq .separate {
	display: flex;
	gap: 120px;
	align-items: flex-end;
}
#synq .separate .cont {
	width: 70%;
}
#synq .separate .cont .lead {
	font-size: 148%;
	line-height: 1.8;
	margin-bottom: 1.2em;
}
#synq .separate .cont .text {
	margin-bottom: 1.6em;
}
#synq .separate .image {
	flex-grow: 1;
	margin-top: -10%;
}
#synq .separate .image img {
	display: block;
	width: 100%;
}




/**************************************
  interval
**************************************/
#interval {

}

#interval .image {

}
#interval .image img {
	display: block;
	width: 100%;
	clip-path: url('#interval-image-clip');
}




/**************************************
  event
**************************************/
#event {

}

#event .linkbox {

}
#event .linkbox .morelink  {
	width: 50%;
}




/**************************************
  access
**************************************/
#access {

}

#access .map {

}
#access .map iframe {
	width: 100%;
	aspect-ratio: 16/8;
}




/**************************************
  instagram
**************************************/
#instagram {

}

#instagram .header {
	margin-bottom: 20px;
}
#instagram .header a {
	display: inline-block;
	line-height: 1.0;
	text-decoration: none;
	margin: 0 10px;
	transition: all 0.2s 0s ease;
}
#instagram .header a .icon {
	display: inline-block;
	width: 1.5em;
	vertical-align: middle;
}
#instagram .header a .icon svg {
	transition: all 0.2s 0s ease;
}

#instagram .header a:hover {
	color: #8FB94A;
}
#instagram .header a:hover .icon svg {
	fill: #8FB94A;
}

/*
#instagram .dummy {

}
#instagram .dummy img {
	display: block;
	width: 100%;
}
*/




/**************************************
  contact
**************************************/
#contact {

}






/***********************************************************
////////////////////////////////////////////////////////////

@ TABLET

////////////////////////////////////////////////////////////
***********************************************************/
@media only screen and (max-width: 960px) {

	/**************************************
	(head)
	**************************************/

	/*** logo ***/
	#head .logo {
		
	}


	/**************************************
	  (page-title)
	**************************************/
	#page-title {

	}

	/*** logo ***/
	#page-title .logo {
		width: 90vw;
		max-width: 400px
	}
	#page-title .logo .img {
		padding: 0 32%;
	}

	/*** slide ***/
	#page-title .slide {

	}

	/*** scroll ***/
	#page-title .scroll {
		transform: translateX(0) rotate(-90deg);
	}
	#page-title .scroll::before {
		width: 80px;
	}


	/**************************************
	  introduction
	**************************************/
	#introduction {

	}

	#introduction .illust {
		width: 100px;
		margin-left: -10px;
	}


	/**************************************
	  myforest
	**************************************/
	#myforest {

	}

	#myforest .title {
		height: auto;
		margin-bottom: 30px;
	}
	#myforest .title .draw {
		position: relative;
		width: 140vw;
		max-width: 780px;
		transform: translateX(-36%);
	}

	#myforest .parallax {
		margin-top: auto;
	}

	#myforest .parallax .frame {

	}
	#myforest .parallax .frame .item {
		position: relative;
		margin-bottom: 60px;
	}
	#myforest .parallax .frame .item:last-child {
		margin-bottom: 0;
	}
	#myforest .parallax .frame .item .image {
		position: absolute;
		width: 100%;
		padding: 0;
		top: calc(170px + 4vw);
		z-index: 1;
	}
	#myforest .parallax .frame .item .image img {
		max-height: none;
	}

	#myforest .parallax .frame .item .cont {

	}
	#myforest .parallax .frame .item .cont .box {
		position: relative;
		left: auto;
		bottom: auto;
		width: auto;
		padding: 50px 20px;
		opacity: 1;
	}
	#myforest .parallax .frame .item .cont .box .lead {
		font-size: 140%;
		line-height: 1.4;
		margin-bottom: calc(20px + 64vw);
	}

	#myforest .linkbox {

	}
	#myforest .linkbox .morelink {
		width: auto;
	}


	/**************************************
	  education
	**************************************/
	#education {

	}

	#education .title {

	}

	#education .title .draw {
		width: 160vw;
		max-width: 780px;
		transform: translateX(-30%);
	}

	#education .subpages {

	}
	#education .subpages .item {
		width: auto;
		margin-top: 90px;
		margin-bottom: 70px;
	}
	#education .subpages .item .image {
		margin-bottom: 2em;
	}
	#education .subpages .item .image img {
		width: 100%;
		object-fit: cover;
		aspect-ratio: 16/9;
	}
	#education .subpages .item .lead {
		font-size: 140%;
		line-height: 1.6;
		margin-bottom: 1em;
	}
	#education .subpages .item .text {
		margin-bottom: 1em;
	}

	#education .subpages .item:nth-child(2n) {
		float: none;
		margin-top: 90px;
	}


	/**************************************
	  synq
	**************************************/
	#synq {

	}

	#synq .title {

	}
	#synq .title .draw {
		width: 150vw;
		max-width: 900px;
		transform: translateX(-7%);
	}

	#synq .separate {
		display: block;
	}
	#synq .separate .cont {
		width: auto;
	}
	#synq .separate .cont .capt {
		margin-bottom: 0.6em;
	}
	#synq .separate .cont .lead {
		font-size: 140%;
		line-height: 1.6;
	}
	#synq .separate .cont .text {
		margin-bottom: 1em;
	}

	#synq .separate .image {
		margin: 0 0 2em;
	}



	/**************************************
	  interval
	**************************************/
	#interval {

	}


	/**************************************
	  event
	**************************************/
	#event {

	}

	#event .linkbox {
	
	}
	#event .linkbox .morelink  {
		width: auto;
	}


	/**************************************
	access
	**************************************/
	#access {

	}

	#access .map {

	}
	#access .map iframe {
		aspect-ratio: 1;
	}


	/**************************************
	  instagram
	**************************************/
	#instagram {

	}

	#instagram .header {
		text-align: center;
	}
	#instagram .header a {
		display: inline-flex;
		flex-flow: column;
		align-items: center;
		gap: 6px;
		font-size: 120%;
	}
	#instagram .header a .icon {
		width: 2.0em;
	}
	


}





/***********************************************************
////////////////////////////////////////////////////////////

@ MOBILE

////////////////////////////////////////////////////////////
***********************************************************/
 @media only screen and (max-width: 520px) {
	
}




