@charset "UTF-8";
html
{
	scroll-behavior: smooth;
}
body
{
	font-family: "Montserrat","Hiragino Sans","Hiragino Kaku Gothic ProN","YuGothic","Yu Gothic",sans-serif;
	font-weight: 100;
	color: #c5ae96;
	overflow: hidden;
	background-color: #000;
}
img
{
	max-width: 100%;
}
/* 見出し(全体) */
h2,h3
{
	font-optical-sizing: auto;
	font-weight: 200;
	letter-spacing: 0.1em;
}
#profile h2,#gallery h2
{
	text-align: center;
	font-size: clamp(20px, 1.9vw, 28px);
	margin-bottom: 40px;
}
#store h2
{
	text-align: center;
	font-size: clamp(20px, 1.9vw, 28px);
	margin-bottom: 10px;
}
@media screen and (max-width: 1080px)
{
	#profile h2,#gallery h2,#store h2
	{
		font-size: clamp(20px, 2.5vw, 32px);
	}
}
/* テキスト(フォントサイズ、改行) */
p
{
	font-size: 16px;
	line-height: 2;
	letter-spacing: 0.12em;
}
@media screen and (max-width: 834px)
{
	h2
	{
		font-size: 20px;
	}
	p
	{
		font-size: 14px;
	}
}
@media screen and (max-width: 430px)
{
	h2,#store h3
	{
		font-size: 16px;
	}
	p,table
	{
		font-size: 13px;
		word-break: keep-all;
	}

}
/* ボタン */
.btn01
{
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	width: 240px;
	margin: 1rem;
	padding: 1rem;
	border: 0.5px solid #c5ae96;
	transition: 0.5s;
	letter-spacing: 0.1em;
	line-height: 1.5;
}
.cv .btn01
{
	margin: 2.67vw 0px 0px 0px;
}
.btn01:hover {
	color: #111;
	background: #c5ae96;
}
@media screen and (max-width: 430px)
{
	.btn01
	{
		width: 200px;
		padding: 0.8rem;
	}
	.cv .btn01
	{
		margin: 10vw;
	}
}
/* ヘッダー */
#header
{
	width: 100vw;
	height: 80px;
	display: grid;
	justify-content: space-between;
	align-items: center;
	grid-template-columns: auto 1fr;
	gap: 80px;
	padding: 0 5vw;
	position: fixed;
	top: 0;
	z-index: 10;	
}
.gnav
{
	display: grid;
	grid-auto-flow: column;
	justify-content: end;
	gap: 40px;
	list-style: none;
}
#header a
{
	font-weight: 300;
	text-decoration: none;
	letter-spacing: 0.13em;
	color: #c5ae96;
	font-size: 16px;
	line-height: 4;
}
#menuButton
{
	display: none;
}
@media screen and (max-width: 1080px)
{
	.gnav
	{
		gap: 20px;
	}
	.gnav li a
	{
		font-size: 14px;
	}
}
@media screen and (max-width: 834px)
{
	#header
	{
		height: 64px;
		padding: 0 20px;
	}
	h1
	{
		width: 140px;
	}
	#header a
	{
		font-size: 13px;
	}
	#menuButton
	{
		justify-self: flex-end;
		display: block;
		width: 30px;
		height: 15px;
	}
	#menuButton:hover
	{
		opacity:0.5;
	}
	.menuButtonInner
	{
	  position: relative;
	  display: block;
	  width: 100%;
	  height: 100%;
	}
	.menuButtonInner span
	{
	  display: block;
	  width: 100%;
	  height: 1px;
	  background-color: #c5ae96;
	  position: absolute;
	  transition: all 0.4s ease-in-out;
	}
	.menuButtonInner span:nth-child(1)
	{
		top: 0;
	}
	.menuButtonInner span:nth-child(2)
	{
		bottom: 0px;
	}
	/* ハンバーガーメニューがクリックで×印になる */
	#menuButton.active
	{
		width: 30px;
		height: 30px;
	}
	#menuButton.active span:nth-child(1)
	{
		top: 15px;
		transform: rotate(45deg);
		background-color: #111;
	}
	#menuButton.active span:nth-child(2)
	{
		bottom: 15px;
		transform: rotate(-45deg);
		background-color: #111;
	}
	/* スマホ用メニューのスタイル */
	#gnavWrap
	{
		display: grid;
		place-items: center;
		place-content: center;
		display: none;
		width: 100vw;
		height: 50vh;
		background-color: #fff;
		position: fixed;
		top: 0px;
		opacity: 0.9;
	}
	.gnav
	{
		grid-auto-flow: row;
		place-items: center;
	}
  }
/* メインビジュアル */
#mv
{
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 100vh;
	gap: 3vw;
	height: 100vh;
	padding: 4vw 3vw;
	background-image: linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,1)),url("../images/mainvisual.jpg");
	background-size: cover;
	background-position: center;
}
.mvImage
{
	display: grid;
	place-content: center;
}
.mvImage img
{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pageTitle
{
	display: grid;
	place-content: center;
	place-items: center;
}
.mvName
{
	font-weight: 100;
	font-size:  5.3vw;
	text-align: justify;
}
.mvSubName
{
	font-weight: 300;
	font-size: 2vw;
	letter-spacing: 0.3em;
	text-align: justify;
}
.mvTitle
{
	margin-top: 30px;
	font-size: 2.3vw;
	letter-spacing: 0.06em;
	text-align: justify;
	font-weight: 300;
}
@media screen and (max-width: 834px)
{
	#mv
	{
		place-content: center;
  		place-items: center;
		grid-template-columns: none;
		grid-template-rows: none;
		padding: 9vw 3vw;	
	}
	
	.mvImage
	{
		display: block;
		max-width: 80vw;
	}
	.pageTitle
	{
		align-self: start;
	}
	.mvName
	{
		display:  none;
	}
	.mvSubName
	{
		margin-top: 10px;
		font-size: 4vw;
		letter-spacing: 0.2em;
	}
	.mvTitle
	{
		margin-top: 10px;
		font-size: 2.3vw;
	}
}
/* プロフィール */
#profile
{
	margin: 8vw;
}
#profile .col2
{
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 20px;
}
#gridParent
{
	display: grid;
	grid-template-columns: 20vw;
	grid-template-rows: 20vw 20vw;
	grid-gap: 2vw;
	place-content: start center;
}
#gridParent img
{
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1 / 1;
}
.cvName
{
	text-align: left;
	font-weight: 100;
	font-size: clamp(20px, 1.9vw, 28px);
	margin-bottom: 20px;
}
.no-wrap
{
	white-space: nowrap;
}
table
{
	letter-spacing: 0.1em;
	margin-bottom: 40px;
}
th
{
	text-align: left;
	font-weight: 200;
	padding: 2vw 0px;
}
td
{
	vertical-align : top;
	padding-right: 20px;
}
.photo01
{
	text-align: right;
}
.photo02
{
	height: 25vh;
}
.photo01 img,.photo02 img
{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.photo01 img
{
	max-width: 40vw;
	aspect-ratio: 3 / 2;
}
@media screen and (max-width: 1080px)
{
	#profile .col2
	{
		grid-template-columns: 1fr;
	}
	#gridParent
	{
		display: none;
	}
	.btnCenter
	{
		text-align: center;
	}
	#profile h2
	{
		text-align: left;
	}
}
@media screen and (min-width: 1080px)
{
	.photo01,.photo02
	{
		display: none;
	}
}
/* ギャラリー */
#gallery
{
	background-color: #fff;
	padding: 8vw;
}
#gallery h2
{
	padding-right: 25px;
}
#galleryGridParent
{
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 2vw;
}
.modalOpen img
{
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 3 / 2;
}
/* 以下、作品群の配置決定用 */
.modalOpen:nth-child(1)
{
	grid-column: 1 / 2;
	grid-row: 1 / 3;
}
.modalOpen:nth-child(2)
{
	grid-column: 2 / 3;
	grid-row: 1 / 2;
}
.modalOpen:nth-child(3)
{
	grid-column: 3 / 4;
	grid-row: 1 / 2;
}
.modalOpen:nth-child(4)
{
	grid-column: 2 / 3;
	grid-row: 2 / 3;
}
.modalOpen:nth-child(5)
{
	grid-column: 3 / 4;
	grid-row: 2 / 3;
}
@media screen and (max-width: 1080px)
{
	#gallery h2
	{
		padding-right: 0px;
	}
}
@media screen and (max-width: 750px)
{
	#gallery
	{
		padding: 8vw 2vw 2vw 2vw;
	}
	#galleryGridParent
	{
		display: inline;
	}
	.modalOpen:nth-child(2) img
	{
		aspect-ratio: 1 / 1;
	}
	.modalOpen:nth-child(3)
	{
		display: none;
	}
	.modalOpen:nth-child(5)
	{
		display: none;
	}
}
/* 作品を購入する */
#store
{
	padding: 8vw 0vw;
	text-align: center;
	background-image: linear-gradient(rgba(0,0,0,0.8),rgba(0,0,0,0.5)),url("../images/store_img.jpg");
	background-size: cover;
	background-position: center;
}
#store p
{
	margin: 40px;
}
@media screen and (max-width: 750px)
{
	#store
	{
		padding: 7vw;
	}
}
/* アニメーション */
#gridParent div
{
	opacity: 0;
}
.fadeUp
{
	animation-name: fadeUpAnime;
	animation-duration: 2s;
	animation-fill-mode: forwards;
	opacity: 0;
}
@keyframes fadeUpAnime
{
  from
  {
    opacity: 0;
	transform: translateY(50px);
  }
  to
  {
    opacity: 1;
	transform: translateY(0px);
  }
}
/* じわっと出現 */
.blur
{
	animation-name: blurAnime;
	animation-duration: 3s;
	animation-fill-mode: forwards;
}
.modalBlur
{
	animation-name: blurAnime;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}
@keyframes blurAnime
{
	from
	{
		filter: blur(10px);
		transform: scale(1.02);
		opacity: 0;
	}
	to
	{
		filter: blur(0px);
		transform: scale(1);
		opacity: 1;
	}
}

/* ギャラリー画像　hover時エフェクト */
.modalOpen
{
	position: relative;
	overflow: hidden;
}
.modalOpen img
{
	position: static;
	transition-duration: 1s;
}
.modalOpen img:hover
{
	transform: scale(1.15, 1.15);
	filter: brightness(70%);
}

/* モーダル設定 */
.modal
{
	display: none;
	position: fixed;
	z-index: 1;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	overflow: auto;
	background-color: rgba(0,0,0,0.5);
}
.modal-box
{
	display: grid;
	place-content: center;
	place-items: center;
	gap: 15px;
	background-color: #fff;
	color: #111;
	margin: 10% auto;
	padding: 5%;
	max-width: 640px;
	width: 90%;
	border-radius: 10px;
	animation-name: modalopen;
	animation-duration: 1s;
	position: relative;
}
.modal-box img
{
	width: 90%;
}
#modal1 .modal-box
{
	max-width: 800px;
}
.modal-box p
{
	font-size: 12px;
	font-weight: 300;
	line-height: 1.5;
	text-align: center;
}
.modalClose
{
	position: absolute;
	top: 20px;
	right: 20px;
	transform: translate(50%, -50%);
	font-size: 30px;
	font-weight: 100;
}