@charset "UTF-8";

/*----------------------------------------
  Base
----------------------------------------*/
html,
body {
	height: 100%;
	font-family: "Noto Sans JP", "ヒラギノ丸ゴ Pro", "MS Pゴシック", sans-serif;
}


:root {
	--main-color: #cb7c7c;
	--sub1-color: #1c706b;
	--sub2-color: #4f4b3a;
	--sub3-corol: #a79857;
	--accent-color: #e75d5d;
	--sub-font: "LXGW WenKai TC", "cursive", "MS Pゴシック", sans-serif;
	--sub-font2: "LXGW Marker Gothic", "ヒラギノ丸ゴ Pro", "MS Pゴシック", sans-serif;
	--main-font: "Noto Sans JP", "ヒラギノ丸ゴ Pro", "MS Pゴシック", sans-serif;
}

.fade-in-text {
	font-size: 2.4375rem;
	font-family: var(--sub-font);
	font-weight: bold;
	color: var(--accent-color);
}


h4 {
	font-family: var(--sub-font);
	font-weight: 700;
	font-size: 2rem;
	letter-spacing: 2.25px;
	color: var(--sub3-corol);
}

h5 {
	font-family: var(--sub-font);
	font-weight: bold;
	font-size: 1.5rem;
	color: var(--accent-color);
}

.portfolio__txt {
	font-family: "Noto Sans JP", "ヒラギノ丸ゴ Pro", "MS Pゴシック", sans-serif;
	color: var(--sub2-color);
	text-align: justify;
}


p {
	font-family: "Noto Sans JP", "ヒラギノ丸ゴ Pro", "MS Pゴシック", sans-serif;
	color: var(--sub2-color);
	text-size-adjust: none;
}

a {
	color: var(--accent-color);
}

.now .container,
.now__2 .container,
.now__me .container {
	background: #f5fbfa;
}

/*----------------------------------------
  Header
----------------------------------------*/

#header .container {
	display: flex;
	justify-content: space-between;
	padding: 2%;
	align-items: center;
	max-width: 100%;
	color: var(--accent-color);
}

.site-logo {
	width: 70px;
	height: auto;
	margin: 4% 0 6% 6%;
}

/*----------------------------------------
  hb
--------------------------*==
/*position:fixed;にし、z-indexの数値を大きくして前面へ*/
#g-nav {
	position: fixed;
	z-index: 999;
	top: 0;
	right: -120%;
	width: 100%;
	height: 100vh;
	background: var(--accent-color);
	transition: all 0.6s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive {
	right: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
	/*ナビの数が増えた場合縦スクロール*/
	position: fixed;
	z-index: 999;
	width: 100%;
	height: 100vh;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

/*ナビゲーション*/
#g-nav ul {
	position: absolute;
	z-index: 999;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#g-nav li {
	text-align: center;
}

#g-nav li a {
	display: block;
	width: 100%;
	padding: 15px;
	color: #fff;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

#g-nav li a span {
	font-size: 0.750rem;
	margin-left: 8px;
}

/*ボタンのためのCSS */
.openbtn {
	position: fixed;
	z-index: 9999;
	top: 10px;
	right: 10px;
	width: 50px;
	height: 50px;
	cursor: pointer;
}

/*×に変化*/
.openbtn span {
	display: inline-block;
	position: absolute;
	left: 14px;
	height: 2px;
	width: 45%;
	border-radius: 1px;
	background: var(--sub2-color);
	transition: all .4s;
}

.openbtn span:nth-of-type(1) {
	top: 15px;
}

.openbtn span:nth-of-type(2) {
	top: 23px;
}

.openbtn span:nth-of-type(3) {
	top: 31px;
}

.openbtn.active span:nth-of-type(1) {
	top: 18px;
	left: 18px;
	transform: translateY(6px) rotate(-45deg);
	width: 30%;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;
}

.openbtn.active span:nth-of-type(3) {
	top: 30px;
	left: 18px;
	width: 30%;
	transform: translateY(-6px) rotate(45deg);
}

/*----------------------------------------
  main
----------------------------------------*/

/*========= main-visual===============*/
.main-visual {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 100%;
}

.site-title__sp {
	position: absolute;
	top: 200px;
	max-width: 60%;
	height: auto;
	background: #e2c1c1;
	opacity: .7;
	padding: 10px 13px;
}

.site-img {
	position: relative;
	z-index: -1;
}

/*site-title(ふわっと出現)*/
/* fadeUp */
.fadeUp {
	animation-name: fadeUpAnime;
	animation-duration: 1.6s;
	animation-fill-mode: forwards;
	opacity: 0;
}

@keyframes fadeUpAnime {
	from {
		opacity: 0;
		transform: translateY(100px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeUpTrigger {
	opacity: 0;
}

/*========= about me ===============*/
.about-me .container {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 80px 4% 20px 4%;
}

.fade-in-text {
	padding-bottom: 30px;

}

.my-name {
	padding: 65px 0 10px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: 1.25rem;
}

.my-name::after {
	content: "";
	width: 30px;
	height: 2px;
	margin: 7px 0px 10px 0;
	left: 50%;
	background: var(--main-color);
}

.about-me .ja__txt {
	display: block;
	margin-top: 3px;
	font-size: 0.8125rem;
}

.about__innner {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 30px;
	width: 100%;
}

.txt {
	line-height: 1.9;
	letter-spacing: 2px;
	text-align: justify;
}

.photo {
	width: 35%;
	height: auto;
}

/*=== now ====*/
/*=== coding ====*/
.now .container {
	padding: 120px 4% 0 4%;
	margin-top: 35px;
	text-align: center;
}

.now__2 .container {
	padding: 150px 4% 0 4%;
	text-align: center;
}

.wapper__box {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.coding h4,
.de-li h4,
.strength h4 {
	padding-top: 50px;
}

.explain {
	font-family: var(--main-font);
	font-size: 1.3rem;
	font-weight: 400;
	color: var(--accent-color);
	letter-spacing: 1px;
}

.ja__txt {
	display: block;
	margin-top: 3px;
	font-size: 0.8125rem;
}

.wapper__box .txt,
.now__me .txt {
	padding: 30px 0;
}

.illust {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
}

.now__illust {
	width: 220px;
}

.now__img {
	display: block;
	width: 170px;
	height: auto;
	margin: auto;
}

/* タイピング　*/
.TextTyping {
	margin-bottom: 20px;
	color: var(--main-color);
	font-family: var(--sub-font2);
	font-weight: 400;
	font-weight: 400;
	font-weight: 400;
	font-size: 1rem;
	letter-spacing: 1px;
	text-align: center;
	word-break: break-all;
	order: 1;
}

.TextTyping span {
	display: none;
}

/*文字列後ろの線の設定*/
.TextTyping::after {
	content: "|";
	animation: typinganime .8s ease infinite;
}

@keyframes typinganime {
	from {
		opacity: 0
	}

	to {
		opacity: 1
	}
}

.TextTyping span {
	display: none;
}

/*文字列後ろの線の設定*/
.TextTyping::after {
	content: "|";
	animation: typinganime .8s ease infinite;
}

@keyframes typinganime {
	from {
		opacity: 0
	}

	to {
		opacity: 1
	}
}

/*=== strength ====*/
.fade-in-text {
	opacity: 0;
	transform: translateY(100px);
	transition: opacity 1s ease-out, transform 2s ease-out;
	transition-delay: calc(var(--delay) * .3s);
	font-weight: bold;
	text-align: center;
}

.fade-in-text.visible {
	line-height: 1.2;
	opacity: 1;
	transform: translateY(0);
}

/*縦線 */
/*スクロールダウン全体の場所*/
.scrolldown1 {
	position: absolute;
	left: 50%;
	height: 50px;
	margin-top: 64px;
}

/* 線の描写 */
.scrolldown1::after {
	content: "";
	/*描画位置*/
	position: absolute;
	/*線の形状*/
	width: 1px;
	background: var(--sub1-color);
	animation: pathmove 1.4s ease-in-out infinite;
	opacity: 0;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove {
	0% {
		height: 0;
		top: 0;
		opacity: 0;
	}

	30% {
		height: 35px;
		opacity: 1;
	}

	100% {
		height: 0;
		top: 50px;
		opacity: 0;
	}
}

/*=== de-li ====*/
.de-li__illust {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.illust {
	display: flex;
	flex-direction: column;
	gap: 15px;

}

.illust__txt {
	font-size: 0.875rem;
	text-align: center;
	margin-top: 14px;
}

.line-break {
	display: block;
}

.illust__1 {
	width: 35%;
	margin: auto;
}

.illust__2 {
	width: 50%;
	margin: auto;
}


/*=== strength ====*/
.now__me .container {
	padding: 150px 4% 120px 4%;
	text-align: center;
}

.now__me .scrolldown1::after {
	margin-top: -70px;
}

.now__me .txt {
	padding: 65px 0 30px 0;
	font-size: 1rem;
	font-weight: 400;
}

.now__me .ja__txt {
	text-align: center;
}

.now__illust {
	width: 40%;
}

/* 流れるテキスト*/
/*全共通*/
.slide-in {
	overflow: hidden;
	display: inline-block;
}

.slide-in_inner {
	display: inline-block;
}

/*左右のアニメーション*/
.leftAnime {
	opacity: 0;
	/*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
	animation-name: slideTextX100;
	animation-duration: 0.8s;
	animation-fill-mode: forwards;
	opacity: 0;
}

@keyframes slideTextX100 {
	from {
		transform: translateX(-100%);
		/*要素を左の枠外に移動*/
		opacity: 0;
	}

	to {
		transform: translateX(0);
		/*要素を元の位置に移動*/
		opacity: 1;
	}
}

.slideAnimeRightLeft {
	animation-name: slideTextX-100;
	animation-duration: 0.8s;
	animation-fill-mode: forwards;
	opacity: 0;
}

@keyframes slideTextX-100 {
	from {
		transform: translateX(100%);
		/*要素を右の枠外に移動*/
		opacity: 0;
	}

	to {
		transform: translateX(0);
		/*要素を元の位置に移動*/
		opacity: 1;
	}
}

/*=== portfolio ===*/
.portfolio-website .container,
.portfolio-banner .container {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 140px 4% 0 4%;
}

.about__innner dd {
	overflow-wrap: inherit;
}

.portfolio__txt {
	padding-top: 45px;
	overflow-wrap: anywhere;
	line-height: 1.9;
	letter-spacing: 2px;
	text-align: left;
}

.slider span {
	color: var(--sub1-color);
	font-weight: bold;
	text-align: left;
}

.gallery {
	display: flex;
	flex-direction: column;
	padding-top: 50px;
	align-items: center;
	gap: 39px;
	width: 100%;
	overflow-wrap: anywhere;
}

.portfolio {
	position: relative;
	display: flex;
	flex-direction: column;
	max-width: 350px;
	padding: 0 20px;
	border: 1px solid var(--sub2-color);
	background: #faeeee;
}

.portfolio__inner {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.portfolio__inner dt p a,
.portfolio__inner dt p span {
	position: absolute;
	top: -20px;
	display: inline-block;
	padding: 6px 13px;
	border-radius: 8px;
	background: var(--sub2-color);
	color: #fff;
}

.portfolio__inner dt p a:hover {
	background: #1c706b;
}

.portfolio__inner img {
	width: 307px;
	margin-bottom: 10px;
}

.gallery p {
	padding: 15px 0;
	letter-spacing: 1px;
	line-height: 1.8;
}

.portfolio__inner dd a {
	color: var(--sub1-color);
	font-size: 0.875rem;
	font-weight: bold;
	overflow-wrap: inherit;
}

/* banner */
.banner__gallery {
	flex-direction: column;
	align-items: center;
	width: 100%;
	padding: 50px 0 90px 0;
}

.banner__inner_long {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 17px;
	padding-bottom: 35px;
}

.banner__inner_medium {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
}

/*----------------------------------------
  Footer
----------------------------------------*/
.footer {
	max-width: 100%;
	margin-top: 30px;
	background: var(--main-color);
	text-align: center;
}

.footer p {
	padding: 17px 0;
	color: #fff;
	font-weight: bold;
}

small {
	display: block;
	padding: 10px 0;
	font-size: 0.750rem;
	color: #fff;
	background: var(--sub1-color);
}

/*----------------------------------------
  spでは非表示
----------------------------------------*/
@media (max-width:576px) {
	#main-nav {
		display: none;
	}

	.site-title__pc {
		display: none;
	}
}

/*----------------------------------------
  レスポンシブでmainfont対応
----------------------------------------*/

/*----------------------------------------
  レスポンシブ
----------------------------------------*/
@media (min-width:576px) {
	.openbtn {
		display: none;
	}

	.site-title__sp {
		display: none;
	}

	p {
		font-family: "YakuHanJP_Narrow", "Zen Kaku Gothic New";
	}


	/*----------------------------------------
  header &  nav
----------------------------------------*/
	#header .container {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 1% 1.5%
	}

	#g-mnav,
	.openbtn {
		display: none;
	}

	.nav-items {
		display: flex;
		text-align: center;
		gap: 30px;
		line-height: 1.4;
		letter-spacing: 1px;
	}

	.nav-items span {
		font-size: 0.9375rem;
	}

	/*nav 中心から外に線が伸びる（下部）*/
	.nav-items li a {
		/*線の基点とするためrelativeを指定*/
		position: relative;
	}

	.nav-items li a:hover {
		color: var(--sub1-color);
	}

	.nav-items li a::after {
		content: '';
		/*絶対配置で線の位置を決める*/
		position: absolute;
		bottom: -10px;
		left: 10%;
		/*線の形状*/
		width: 80%;
		height: 1px;
		background: var(--sub1-color);
		/*アニメーションの指定*/
		transition: all .3s;
		transform: scale(0, 1);
		/*X方向0、Y方向1*/
		transform-origin: center top;
		/*上部中央基点*/
	}

	/*現在地とhoverの設定*/
	.nav-items li a:hover::after {
		transform: scale(1, 1);
		/*X方向にスケール拡大*/
	}

	/*----------------------------------------
  main
----------------------------------------*/
	/* main-visual */

	.main-visual {
		flex-direction: row;
		align-items: center;
	}

	.site-title__pc {
		margin-left: 35px;
		padding: 45px 23px;
		border: 1.5px solid var(--main-color);
		border-radius: 25px 0 25px 0;
		background: #fff;
		box-shadow: #cb7c7c 3px 3px 0 0;
		opacity: .7;
	}

	.fadeUp {
		display: block;
	}

	.site-img img {
		aspect-ratio: 8 / 6;
		/*正方形にする*/
		object-fit: cover;
		/*画像の歪みを防止して正方形にトリミング*/
		object-position: 100% 75%;
	}

	/* about-me */
	.fade-in-text.visible {
		font-size: 3rem;
	}

	.about-me .container {
		width: 100%;
		padding: 250px 5% 0 5%;
	}

	.my-name {
		padding-top: 100px;
		font-size: 1.375rem;
	}

	.my-name::after {
		height: 3px;
	}

	.about__innner {
		flex-direction: row-reverse;
		justify-content: center;
		padding: 60px 2%;
	}

	.txt {
		max-width: 450px;
	}

	.photo {
		width: 160px;
	}

	/* now */
	.now .container,
	.now__2 .container {
		max-width: 100%;
		padding: 250px 5% 0 5%;
		background: #f5fbfa;
	}

	/* coding */
	.wapper__box {
		flex-direction: row;
		justify-content: center;
		gap: 50px;
		padding: 60px 2% 0 2%;
	}

	.wapper__box .txt {
		max-width: 450px;
	}

	.now__illust {
		width: 120px;
	}

	.illust {
		flex-direction: column;
		justify-content: center;
	}

	.TextTyping {
		font-size: 0.8125rem;
		gap: 20px;
	}

	/*=== de-li ====*/
	.de-li__illust {
		flex-direction: row;
		gap: 90px;
	}

	.now__2 .wapper__box {
		flex-direction: column;
	}

	.illust__1 {
		width: 120px;
	}

	.illust__2 {
		width: 150px;
	}

	.illus__txt {
		letter-spacing: 1px;
		line-height: 1.7;
		margin-top: 20px;
	}

	/* strenght */
	.now__me .container {
		width: 100%;
		padding: 250px 5% 90px 5%;
		background: #f5fbfa;
	}

	.now__me .scrolldown1::after {
		margin-top: -75px;
	}

	.now__me .wapper__box {
		padding-top: 0;
		align-items: baseline;
	}

	.now__me .txt {
		font-size: 1rem;
	}


	/*=== portfolio website====*/
	.portfolio-website .container,
	.portfolio-banner .container {
		width: 100%;
		padding: 250px 5% 0 5%;
	}

	.portfolio__txt {
		max-width: 630px;
		padding-right: 2%;
		padding-left: 2%;
		text-align: justify;
	}

	.gallery {
		flex-direction: row;
		justify-content: center;
		flex-wrap: wrap;
		padding-top: 110px;
		align-items: normal;
		gap: 36px;
		width: 100%;
	}

	.portfolio {
		flex-direction: row;
	}

	.portfolio__inner dd a img {
		width: 703px;
	}


	/*=== portfolio banner====*/
	.portfolio-banner .container {
		padding-bottom: 200px;
	}

	.banner__gallery {
		flex-direction: row;
		padding: 50px 3% 0 3%;
	}

	.banner__inner_medium {
		flex-direction: row;
		justify-content: center;
		align-items: start;
		flex-wrap: wrap;
		padding: 0 3%;
	}

}

/* 追記 */
.now__me .txt {
	font-weight: 400;
}

.now__me .wapper__box .txt {
	font-weight: 400;

}