@charset "UTF-8";
/* CSS Document */
/* index.html（トップ）と lp03.html（作成プロセス）で共通のスタイル */

:root{
	--black:#414a52;
	--white:#f1f1f4;
	--sky:#d1e1f4;
	--navy:#162c4d;
	--blue:#5588aa;
}




/** 共通項目
******************************/
html,body{
	font-size: 100%;
	background: var(--white);
	color: var(--black);
	scroll-behavior: smooth;
	width: 100%;
	overflow-x: hidden;
}
a{
	color: inherit;
}

/** 日本語テキストのフォント **/
body,
p,
a,
dt,
dd,
li,
h3,
button{
	font-family: "Klee One", "Yu Mincho", "游明朝", serif;
}

/** スマホだけで使う改行など **/
.sp{
	display: none;
}

/** 下からふわっと表示（js で is-visible を付ける） **/
.reveal{
	opacity: 0;
	transform: translateY(100px);
	transition: opacity 1.5s cubic-bezier(.22,.61,.36,1), transform 1.5s cubic-bezier(.22,.61,.36,1);
	will-change: opacity, transform;
}
.reveal.is-visible{
	opacity: 1;
	transform: translateY(0);
}




/** グローバルナビ（背景と重なると色が反転する）
******************************/
.global_nav{
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	padding: 24px 5vw;
	color: #fff;
	mix-blend-mode: difference;
	transition: background-color .4s ease, padding .4s ease;
}
/* スクロールしたら、反転をやめて透過した黒を敷く */
.is-scrolled .global_nav{
	padding-top: 16px;
	padding-bottom: 16px;
	background-color: rgba(0, 0, 0, .55);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	mix-blend-mode: normal;
}

/** ロゴ：ファーストビューでは隠して、スクロール後に画像の色のまま出す **/
.global_nav .logo{
	display: block;
	line-height: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s ease, visibility .4s ease;
}
.is-scrolled .global_nav .logo{
	opacity: 1;
	visibility: visible;
}
.global_nav .logo img{
	width: 52px;
	height: auto;
	transition: opacity .3s;
}
.global_nav .logo:hover img{
	opacity: .7;
}

/** メニュー **/
.g_nav{
	display: flex;
	gap: clamp(16px, 3vw, 40px);
}
.g_nav a{
	position: relative;
	padding: 4px 0;
	font-family: "Cinzel", serif;
	font-size: .75rem;
	letter-spacing: .2em;
}
/* 下線のアニメーション */
.g_nav a::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
.g_nav a:hover::after{
	transform: scaleX(1);
	transform-origin: left;
}

/** ハンバーガーメニュー（スマホだけ） **/
.menu_btn,
.sp_menu{
	display: none;
}




/** ファーストビュー
******************************/
header{
	height: 17vh;
}

#main_visual{
	width: 100%;
	height: calc(100vh - 17vh);
}
/* イラスト */
#main_visual::before{
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background-image: url("../img/mv.webp");
	background-size: 77%;
	background-repeat: no-repeat;
	background-position: top left;
}

/** 名前（イラストに重なると色が反転する） **/
.big_name{
	display: block;
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-weight: 500;
	line-height: .9;
	letter-spacing: -.02em;
	text-align: left;
	color: #fff;
}
.big_name .line{
	display: block;
	overflow: hidden;
	padding-top: .06em;
}
/* 一行ずつ下からスッと出る */
.big_name .line > span{
	display: block;
	transform: translateY(110%);
	animation: lineup 1.2s cubic-bezier(.22,.61,.36,1) forwards;
}
.big_name .line:nth-child(1) > span{ animation-delay: .3s; }
.big_name .line:nth-child(2) > span{ animation-delay: .45s; }

@keyframes lineup{
	to{ transform: translateY(0); }
}

/* PC：左上に置いて、イラストに重ねる */
.title_area .big_name{
	position: absolute;
	top: 96px;
	left: 5vw;
	z-index: 1;
	font-size: clamp(3rem, 8vw, 9rem);
	mix-blend-mode: difference;
}
/* スマホ用のタイトル（PCでは使わない） */
.main_title{
	display: none;
}

/** ラベル（Web Designer — Portfolio） **/
.hero_label{
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-size: 1.05rem;
	font-style: italic;
	line-height: 1.4;
	color: var(--blue);
	opacity: 0;
	animation: fadein 1s ease .9s forwards;
}
.hero_label::before{
	content: "";
	width: 40px;
	height: 1px;
	background: currentColor;
}
/* PC：名前（2行ぶん）のすぐ下に置く。イラストの上着に重なるので水色にする */
header .hero_label{
	position: absolute;
	top: calc(96px + 1.92 * clamp(3rem, 8vw, 9rem) + 20px);
	left: 5vw;
	z-index: 1;
	color: #a8d4f2;
}
@keyframes fadein{
	to{ opacity: 1; }
}

/** SCROLL **/
.scroll_down{
	position: absolute;
	top: 50%;
	right: 14%;
	/* 文字との間 30px ＋ 縦線 85px */
	padding-bottom: 115px;
	font-family: "Cinzel", serif;
	font-size: 14px;
	letter-spacing: .2em;
	writing-mode: vertical-rl;
}
/* 縦線：上から伸びて、下に抜けるように消える */
.scroll_down::before{
	content: "";
	position: absolute;
	bottom: 0;
	left: calc(50% - .5px);
	width: 1px;
	height: 85px;
	background: var(--black);
	animation: scrollline 2s cubic-bezier(.65, 0, .35, 1) infinite;
}
@keyframes scrollline{
	0%{ transform: scaleY(0); transform-origin: top; }
	50%{ transform: scaleY(1); transform-origin: top; }
	50.1%{ transform: scaleY(1); transform-origin: bottom; }
	100%{ transform: scaleY(0); transform-origin: bottom; }
}




/** TOPに戻るボタン（鳥）
******************************/
#page_top{
	position: fixed;
	right: 2.5rem;
	bottom: 2rem;
	z-index: 50;
	font-family: "Cinzel", serif;
	font-size: .7rem;
	letter-spacing: .15em;
	line-height: 1;
	text-align: center;
	/* 白っぽい鳥と白い文字を反転させて、明るい背景では黒っぽく、暗い背景では白っぽく見せる */
	color: #fff;
	mix-blend-mode: difference;
	transition: .3s;
}
#page_top img{
	display: block;
	width: 52px;
	margin: 0 auto 8px;
	animation: poyoyon 2.2s linear infinite;
	transform-origin: bottom center;
}
#page_top span{
	display: block;
	transition: letter-spacing .3s ease;
}
/* カーソルを乗せると、揺れが速くなって文字が広がる */
#page_top:hover img{
	animation-duration: 1s;
}
#page_top:hover span{
	letter-spacing: .3em;
}
/* WORKS（ネイビー）の上では反転するとベージュになるので、反転をやめて白っぽい鳥のまま見せる */
.is-dark #page_top{
	mix-blend-mode: normal;
}
/* 白い作品画像に重なっても埋もれないように、紺色の影でふちどる */
.is-dark #page_top img{
	filter: drop-shadow(0 0 6px rgba(22, 44, 77, .9));
}
.is-dark #page_top span{
	text-shadow: 0 0 6px rgba(22, 44, 77, .9), 0 0 2px rgba(22, 44, 77, .9);
}

/* ぷるんと揺れる */
@keyframes poyoyon{
	0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
	10%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
	15%  { transform: scale(0.9, 1.1) translate(0%, -4%); }
	25%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
	30%  { transform: scale(0.98, 1.02) translate(0%, -2%); }
	35%  { transform: scale(1.0, 1.0) translate(0%, 0%); }
	100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
}




/** 見出し
******************************/
h2{
	margin: 0 auto;
	padding: 5rem 0 2rem;
	font-family: "Cinzel", serif;
	font-size: clamp(2.4rem, 4vw, 3.4rem);
	font-weight: 500;
	letter-spacing: .12em;
	color: var(--navy);
}
h2 span{
	display: block;
	margin-top: .6rem;
	font-family: "Klee One", "Yu Mincho", "游明朝", serif;
	font-size: .85rem;
	font-weight: 400;
	letter-spacing: .3em;
	color: var(--blue);
}
h2 span::before{
	content: "";
	display: block;
	width: 40px;
	height: 1px;
	margin: 0 auto 1rem;
	background: var(--blue);
}
h3{
	margin: 4rem 0;
	font-size: 2rem;
}
h3 span{
	font-size: 1.4rem;
}




/** WORKS
******************************/
#works{
	position: relative;
	margin: 40px auto 0;
	text-align: center;
}
#works h2{
	margin: 14rem auto 0;
	padding: 0;
}
#works p{
	width: 100%;
	margin: auto;
	line-height: 1.5;
	text-align: left;
}

/** 作品カテゴリの見出し **/
#works h3{
	width: 70%;
	margin: 10rem auto 3rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(65, 74, 82, .2);
	text-align: left;
}
.h3_en{
	display: block;
	margin-bottom: .4rem;
	font-family: "Cinzel", serif;
	font-size: .85rem;
	letter-spacing: .25em;
	color: var(--blue);
}

/** LP制作の説明と、作成プロセスのボタン **/
.wrap{
	display: grid;
	grid-template-columns: 3fr 1fr;
	align-content: center;
	width: 70%;
	margin: 3rem auto 7rem;
}
.wrap .btn{
	margin: auto auto auto 0;
	text-align: left;
}

/** 作成プロセスのボタン（細い枠線＋伸びる矢印） **/
.btn_line{
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 1rem 1.6rem;
	border: 1px solid var(--navy);
	color: var(--navy);
	font-size: .9rem;
	letter-spacing: .1em;
	/* 矢印が伸びても、文字が折り返さないように */
	white-space: nowrap;
	transition: background-color .4s ease, color .4s ease, border-color .4s ease;
}
/* 線の矢印（——→） */
.btn_arrow{
	position: relative;
	width: 32px;
	/* 伸びたときのぶんを先に空けておいて、ボタンの幅を変えない */
	margin-right: 16px;
	height: 1px;
	background: currentColor;
	transition: width .4s ease, margin-right .4s ease;
}
.btn_arrow::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 6px;
	height: 6px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}
/* カーソルを乗せると、塗りつぶされて矢印が伸びる */
.btn_line:hover{
	background-color: var(--navy);
	color: var(--white);
}
.btn_line:hover .btn_arrow{
	width: 48px;
	margin-right: 0;
}

/** 横スライド **/
.slider{
	display: grid;
	grid-auto-flow: column;
	gap: 32px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding: 0 15%;
	padding: 8px 15% 24px;
	/* スクロールバーは隠して、下のバーで進み具合を見せる */
	scrollbar-width: none;
}
.slider::-webkit-scrollbar{
	display: none;
}
.lp_slider{
	grid-auto-columns: min(60vw, 560px);
}
.graphic_slider{
	grid-auto-columns: min(60vw, 300px);
}
.slide{
	scroll-snap-align: start;
	text-align: left;
}
.slide[hidden]{
	display: none;
}
.slide_image{
	padding: 24px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(22, 44, 77, .06);
	transition: transform .3s ease, box-shadow .3s ease;
}
.slide_image:hover{
	transform: translateY(-6px);
	box-shadow: 0 16px 36px rgba(22, 44, 77, .14);
}
.slide_image img{
	width: 100%;
}
/* LP は、横長の LP 画像（1800×1262）と同じ比率の枠に収める。縦長のメルマガも同じ高さになる */
.lp_slider .slide_image img{
	aspect-ratio: 1800 / 1262;
	object-fit: contain;
}
/* グラフィックは正方形の枠に収める */
.graphic_slider .slide_image{
	aspect-ratio: 1;
	padding: 20px;
}
.graphic_slider .slide_image img{
	height: 100%;
	object-fit: contain;
}

.slide_info{
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 14px;
}
.slide_number{
	margin-right: auto;
	font-family: "Cinzel", serif;
	font-size: 1.4rem;
	color: var(--blue);
}
.slide_info a{
	padding-bottom: 2px;
	border-bottom: 1px solid var(--blue);
	font-size: .9rem;
	transition: color .3s;
}
.slide_info a::after{
	content: "→";
	margin-left: 8px;
}
.slide_info a:hover{
	color: var(--blue);
}
#works .slide_type{
	margin-top: 12px;
	font-size: .8rem;
	letter-spacing: .1em;
	color: var(--blue);
}

/** 絞り込みボタン **/
.filter{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 70%;
	margin: 0 auto 24px;
}
.filter_btn{
	padding: .5rem 1.4rem;
	border: 1px solid var(--navy);
	border-radius: 999px;
	background: transparent;
	color: var(--navy);
	font-size: .85rem;
	cursor: pointer;
	transition: background .3s, color .3s;
}
.filter_btn:hover{
	background: var(--sky);
}
.filter_btn.is-active{
	background: var(--navy);
	color: var(--white);
}

/** 進み具合のバーと矢印 **/
.slider_control{
	display: flex;
	align-items: center;
	gap: 12px;
	width: 70%;
	margin: 16px auto 0;
}
.slider_bar{
	flex: 1;
	height: 2px;
	margin-right: 12px;
	background: rgba(65, 74, 82, .15);
}
.slider_bar span{
	display: block;
	width: 0;
	height: 100%;
	background: var(--navy);
	transition: width .2s;
}
.slider_btn{
	width: 48px;
	height: 48px;
	border: 1px solid var(--navy);
	border-radius: 50%;
	background: transparent;
	color: var(--navy);
	font-size: 1rem;
	cursor: pointer;
	transition: background .3s, color .3s, opacity .3s;
}
.slider_btn:hover{
	background: var(--navy);
	color: var(--white);
}
.slider_btn:disabled{
	opacity: .3;
	cursor: default;
	background: transparent;
	color: var(--navy);
}

/** 動画 **/
.movie{
	width: 50%;
	margin: 2rem auto;
}
.movie iframe{
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}
.movie_p{
	width: 70%;
	margin: 1rem auto;
	font-size: 1rem;
	text-align: center;
}
#works .movie_p p{
	text-align: center;
}

/** クリックで拡大表示 **/
.zoom{
	cursor: zoom-in;
}
#zoomback{
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	/* ナビ（100）・TOPボタン（50）・スマホのメニュー（200〜210）より上に出す */
	z-index: 300;
	justify-content: center;
	align-items: center;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, .7);
}
#zoomimg{
	max-width: 90%;
	max-height: 90%;
	object-fit: contain;
	transition: transform .3s ease-in-out;
}




/** WORKS に入ったら背景をネイビーに（js で is-dark を付ける）
******************************/
html,
body,
#works h2,
#works h2 span,
#works h3,
.h3_en,
#works .inner_wrap p,
.slide_number,
.slide_info a,
#works .slide_type,
.filter_btn,
.slider_btn,
.slider_bar span,
.movie_p p{
	transition: color .8s ease, background-color .8s ease, border-color .8s ease;
}
html.is-dark,
.is-dark body{
	background-color: var(--navy);
}
.is-dark #works,
.is-dark #works h2,
.is-dark #works h3,
.is-dark #works .inner_wrap p,
.is-dark .movie_p p{
	color: var(--white);
}
.is-dark #works h2 span,
.is-dark .h3_en,
.is-dark .slide_number,
.is-dark #works .slide_type{
	color: var(--sky);
}
.is-dark #works h2 span::before{
	background: var(--sky);
}
.is-dark #works h3{
	border-color: rgba(241, 241, 244, .25);
}
.is-dark .btn_line{
	border-color: var(--white);
	color: var(--white);
}
.is-dark .btn_line:hover{
	background-color: var(--white);
	color: var(--navy);
}
.is-dark .slide_info a{
	border-color: var(--sky);
	color: var(--white);
}
.is-dark .filter_btn,
.is-dark .slider_btn,
.is-dark .slider_btn:disabled{
	border-color: var(--white);
	color: var(--white);
}
.is-dark .filter_btn:hover{
	background: rgba(241, 241, 244, .15);
}
.is-dark .filter_btn.is-active,
.is-dark .slider_btn:hover{
	background: var(--white);
	color: var(--navy);
}
.is-dark .slider_btn:disabled{
	background: transparent;
}
.is-dark .slider_bar{
	background: rgba(241, 241, 244, .2);
}
.is-dark .slider_bar span{
	background: var(--white);
}




/** ABOUT
******************************/
#about{
	margin: 300px 0 0;
	text-align: center;
}
#about p{
	padding: 0 0 1rem;
	font-size: calc(2rem / 1.618);
	line-height: 1.6;
}
.about_container{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 70%;
	margin: 0 auto 5rem;
}
.about_text{
	flex: 6;
	text-align: left;
}
.about_image{
	flex: 4;
}
.about_image img{
	max-width: 100%;
	height: auto;
}
.message_container{
	width: 70%;
	margin: 7rem auto 0;
}

/** キャラクター：上下にふわふわ **/
.fuwafuwa{
	animation: fuwafuwa 4s ease-in-out infinite;
}
@keyframes fuwafuwa{
	50%{ transform: translateY(-12px); }
}

/** スキル **/
.skill{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 5%;
}
.skill img{
	width: 30px;
	padding-left: 1rem;
}
.skill dt{
	padding: 0 0 1.5rem;
	font-size: 1.5rem;
}
.skill dd{
	display: flex;
	align-items: flex-end;
	padding: 0 0 1rem;
}
#about .skill dd p{
	padding: 0 0 0 1rem;
}




/** CONTACT
******************************/
#contact{
	position: relative;
	overflow: hidden;
	width: 100%;
	margin: 250px auto 0;
	padding: 0 0 11rem;
	text-align: center;
}
#contact h2{
	padding: 5rem 0;
}
#contact p{
	padding: 0 0 2rem;
	font-size: calc(2rem / 1.618);
	line-height: 1.6;
}
#contact .contact_mail{
	display: inline-block;
	margin-top: 1rem;
	padding: 0 0 .4rem;
	border-bottom: 1px solid var(--blue);
	font-family: "Cinzel", serif;
	font-size: clamp(1.2rem, 2.4vw, 1.8rem);
	letter-spacing: .05em;
	color: var(--navy);
}




/** 作成プロセス（lp03.html）
******************************/
#process{
	margin: 0 auto;
	text-align: center;
}
#process h2{
	margin: 3rem 0;
}
#process h3{
	width: 70%;
	margin: 3rem auto 1.5rem;
	text-align: left;
}
#process p{
	width: 70%;
	margin: auto;
	padding: 0 0 3rem;
	line-height: 1.5;
	text-align: left;
}
#process img{
	max-width: 100%;
}
#process .wrap{
	grid-template-columns: 1fr 1fr;
	margin: 3rem auto;
}
#process .inner_wrap img{
	width: 70%;
}
#process .img{
	display: flex;
	justify-content: space-around;
	width: 50%;
	margin-left: 15%;
}
#process .btn{
	margin: 3rem auto;
	text-align: center;
}
/* このページを閉じるボタン */
#process .close{
	display: block;
	width: 20%;
	margin: 3rem auto 5rem;
	padding: 1.5rem 3rem;
	border: 1px solid var(--black);
	background-color: var(--white);
	color: var(--black);
}

/** 右上の × ボタン **/
#process .close_top{
	position: fixed;
	top: 5%;
	right: 4%;
}
#process .close_top a{
	display: block;
	position: relative;
	top: 0;
	width: 100%;
	height: 100%;
	padding: 10px 9px;
	background-color: var(--black);
	color: var(--white);
	font-family: "Kiwi Maru", serif;
	font-size: 33px;
	opacity: .7;
}
#process .close_top a:hover{
	opacity: 1;
}




/** フッター
******************************/
footer{
	width: 100%;
	padding: 1rem 5px 0;
	background: var(--black);
	color: var(--white);
}
.footer_area{
	display: grid;
	grid-template-columns: 1.8fr 1fr 1fr 1fr 1fr;
	gap: 1rem;
	align-items: center;
	margin: 2rem 7rem 3rem 2rem;
	text-align: center;
}
/* メニューは、グローバルナビと同じフォント */
.footer_area a{
	font-family: "Cinzel", serif;
}
/* 屋号は、ファーストビューの名前と同じフォント */
.footer_yago{
	margin: 2% 0;
	font-size: 1.5rem;
	color: var(--white);
}
.footer_yago a,
.footer_yago span{
	display: block;
	font-family: "Cormorant Garamond", "Times New Roman", serif;
}
/* コピーライト */
.copyright{
	margin: 10px auto 0;
	padding: 10px;
	border-top: solid .1px;
	font-family: "Cinzel", serif;
	font-size: .7rem;
	text-align: center;
}




/** スマホ
****************************************/
@media screen and (max-width: 600px), print{

	.sp{
		display: block;
	}


	/** グローバルナビ：上に固定せず、ページと一緒に流れる **/
	.global_nav,
	.is-scrolled .global_nav{
		position: absolute;
		padding: 20px 5vw;
		background-color: transparent;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		mix-blend-mode: difference;
	}
	/* スマホでは、ロゴは出さない */
	.is-scrolled .global_nav .logo{
		opacity: 0;
		visibility: hidden;
	}

	/** スクロールしたらハンバーガーを出す **/
	.menu_btn{
		position: fixed;
		top: 16px;
		right: 16px;
		z-index: 210;
		display: block;
		width: 48px;
		height: 48px;
		border: none;
		border-radius: 50%;
		background: rgba(0, 0, 0, .55);
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
		cursor: pointer;
		opacity: 0;
		visibility: hidden;
		transition: opacity .3s, visibility .3s;
	}
	.is-scrolled .menu_btn,
	.menu-open .menu_btn{
		opacity: 1;
		visibility: visible;
	}
	.menu_btn span{
		position: absolute;
		left: 14px;
		width: 20px;
		height: 1.5px;
		background: #fff;
		transition: transform .3s, opacity .3s;
	}
	.menu_btn span:nth-child(1){ top: 17px; }
	.menu_btn span:nth-child(2){ top: 23px; }
	.menu_btn span:nth-child(3){ top: 29px; }
	/* 開いたら × にする */
	.menu-open .menu_btn span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
	.menu-open .menu_btn span:nth-child(2){ opacity: 0; }
	.menu-open .menu_btn span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

	.sp_menu{
		position: fixed;
		top: 0;
		left: 0;
		z-index: 200;
		display: flex;
		justify-content: center;
		align-items: flex-start;
		padding-top: 24%;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, .8);
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
		opacity: 0;
		visibility: hidden;
		transition: opacity .4s, visibility .4s;
	}
	.menu-open .sp_menu{
		opacity: 1;
		visibility: visible;
	}
	.menu-open body{
		overflow: hidden;
	}
	.sp_menu li{
		text-align: center;
	}
	.sp_menu a{
		display: block;
		padding: 1.5rem 0;
		font-family: "Cinzel", serif;
		font-size: 2.2rem;
		letter-spacing: .1em;
		text-align: left;
		color: #fff;
	}


	/** ファーストビュー **/
	header{
		height: 0;
	}
	.title_area,
	header .hero_label{
		display: none;
	}
	#main_visual{
		height: 100vh;
	}
	#main_visual::before{
		background-size: 94%;
		background-position: bottom 7% left;
	}
	/* スマホ用のタイトル */
	.main_title{
		display: block;
		position: absolute;
		top: 20%;
		left: 10%;
	}
	.main_title .big_name{
		font-size: 13vw;
		mix-blend-mode: difference;
	}
	.main_title .hero_label{
		display: block;
		margin-top: 16px;
	}
	.main_title .hero_label::before{
		display: none;
	}
	.scroll_down{
		top: 44%;
		padding-bottom: 70px;
	}
	.scroll_down::before{
		height: 55px;
	}


	/** TOPに戻るボタン **/
	#page_top{
		right: 1rem;
		bottom: 1.5rem;
		font-size: .6rem;
	}
	#page_top img{
		width: 40px;
	}


	/** 見出し **/
	h2{
		margin: 5rem 0 2rem;
		padding: 0;
	}
	h3{
		margin: 0 0 2rem;
		font-size: 1.4rem;
		text-align: center;
	}
	h3 span{
		font-size: 1rem;
	}


	/** WORKS **/
	#works{
		margin: 0 auto;
	}
	#works h3{
		width: 88%;
		margin: 3rem auto 1.5rem;
		text-align: left;
	}
	.wrap{
		display: block;
		width: 88%;
		margin: 3rem auto 3rem;
	}
	.wrap .btn{
		margin: 4rem auto 2rem;
		text-align: center;
	}
	.inner_wrap{
		margin-top: -1rem;
	}
	.slider{
		gap: 20px;
		scroll-padding: 0 5%;
		padding: 8px 5% 20px;
	}
	.lp_slider{
		grid-auto-columns: 82vw;
	}
	.graphic_slider{
		grid-auto-columns: 62vw;
	}
	.slide_image{
		padding: 14px;
	}
	.slider_control,
	.filter{
		width: 90%;
	}
	.slider_btn{
		width: 40px;
		height: 40px;
	}
	.movie{
		width: 80%;
	}
	#works .movie_p p{
		text-align: left;
	}


	/** ABOUT **/
	#about{
		margin: .3rem 0 0;
	}
	#about p{
		font-size: 1rem;
	}
	.about_container{
		flex-direction: column-reverse;
		width: 80%;
		margin: 0 auto 1rem;
	}
	.about_image img{
		max-width: 70%;
	}
	.message_container{
		width: 80%;
		margin: 5rem auto 0;
	}
	.skill{
		grid-template-columns: 1fr 1fr;
	}
	.skill dt{
		font-size: 1rem;
	}


	/** CONTACT **/
	#contact{
		margin: 0;
		padding: 0 0 7rem;
	}
	#contact h2{
	padding: 2rem 0 1rem;
}
	#contact p{
		margin: 0;
		padding: .5rem 0;
		font-size: 1rem;
	}


	/** 作成プロセス（lp03.html） **/
	#process h2{
		margin: 3rem 0;
	}
	#process .wrap{
		width: 100%;
		margin: auto;
	}
	#process h3{
		margin: 2rem auto 1.5rem;
	}
	#process p{
		padding: 0 0 1rem;
	}
	#process .img{
		justify-content: center;
		gap: 10%;
		width: 44%;
		margin: auto;
	}
	#process .btn{
		margin: 3rem auto 4rem;
	}
	#process .close{
		width: 60%;
		margin: 3rem auto;
		padding: 1.1rem 2rem;
	}
	#process .close_top{
		top: 3%;
		right: 5%;
	}


	/** フッター **/
	footer{
		padding: .5rem 0 0;
	}
	.footer_area{
		font-size: .5rem;
		margin: 0 5% 0 2%;
	}
	.footer_yago{
		font-size: .5rem;
	}
	.footer_yago span{
		margin: 2% 0;
	}
	.copyright{
		margin: 1% auto 0;
		padding: 1%;
		font-size: .4rem;
	}

}	/** END スマホ **/
