@charset "UTF-8";

* {
	-webkit-text-size-adjust:100%;
}
*, *:before, *:after {
	box-sizing: border-box;
}
/*
html::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	display: block;
	content: '';
	width: 100%;
	height: 1000%;
	background: url(../img/pc.jpg) no-repeat center top;
	background-size: contain;
	opacity: .25;
}
*/

html, body {
	margin: 0;
	padding: 0;
	border: 0;
}

html {
	height: 100%;
	font-size: 62.5%;
	background-color: #fff;
}
body {
	font-family: YuGothic, "Yu Gothic", Meiryo, sans-serif;
	font-weight: bold;
	font-style: normal;
	text-align: left;
	font-size: 3.23vw;
	line-height: 1.75;
	font-feature-settings: "palt";
	color: #222;
	vertical-align: middle;
	letter-spacing: .04em;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position: relative;
	padding: 2.5% 0;
}
a         { text-decoration: none; display: inline-block; }
a:link    { color: #ff0000; }
a:visited { color: #ff0000; }
a:hover   { color: #ff0000; }
a:active  { color: #ff0000; }
*:hover,
*:hover * {
	transition: all .15s;
}
::-moz-selection {
	color: #fff;
	background-color: #ff0000;
}
::selection {
	color: #fff;
	background-color: #ff0000;
}
section {
/* 	overflow: hidden; */
/* 	opacity: .8; */
}
h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-weight: bold;
}
h2 {
	margin-bottom: 7vw;
	font-size: 3vw;
}
h3 {
	margin-bottom: 1.6vw;
	font-size: 3vw;
	position: relative;
}
h3 span {
	display: inline-block;
	margin-left: .5em;
}
p {
	margin: 0;
}
em {
	font-style: normal;
}
address {
	font-style: normal;
}
figure {
	margin: 0;
}
img,
svg {
	display: block;
	width : 100%;
	height : auto;
}
ul,
ol,
dl,
dt,
dd {
	margin: 0;
	padding: 0;
	list-style: none;
}
div.cont_width {
	margin: 0 auto;
	width: 90vw;
}
div.cont_width > section {
	margin-bottom: 7vw;
	padding-top: 7vw;
	position: relative;
}
div.cont_width > section::before {
	position: absolute;
	top: 0;
	left: 0;
	content: '';
	display: block;
	width: 6.28vw;
	height: 6.05vw;
	background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 262.2 252.5"><path d="M163 97h99l-80 60 31 95-82-58-82 58 31-95L0 97h100l31-97 32 97z"/></svg>') no-repeat center center;
}
section.profile div.cont_width > section::before {
	background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 262.2 252.5"><path fill="%23ffffff" d="M163 97h99l-80 60 31 95-82-58-82 58 31-95L0 97h100l31-97 32 97z"/></svg>') no-repeat center center;
}

section.about,
section.profile,
section.info {
	position: relative;
}
body::before,
article > header div::before,
article > header div::after,
section.about::before,
section.about::after,
section.profile::before,
section.profile::after,
section.info::before,
section.info::after,
body::after {
	position: absolute;
	top: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 0;
	padding-top: 2.5%;
	background-repeat: repeat-x;
	background-position: left center;
	background-size: 5% auto;
}
body::before,
section.about::before,
section.info::after,
section.about::after {
	background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 20"><rect fill="%23000000" x="0" y="0" width="20" height="20" /></svg>');
}
section.about::before,
section.info::before,
body::after {
	background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 20"><rect fill="%23000000" x="20" y="0" width="20" height="20" /></svg>');
}
article > header div::before,
section.profile::before {
	background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 20"><rect fill="%23ffffff" x="0" y="0" width="20" height="20" /></svg>');
}
article > header div::after,
section.profile::after {
	background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 20"><rect fill="%23ffffff" x="20" y="0" width="20" height="20" /></svg>');
}
article > header div::after,
section.about::after,
section.profile::after,
section.info::after,
body::after {
	top: auto;
	bottom: 0;
}
section.about::after,
section.info::after {
	width: 100%;
}

.pc { display: none; }
.sp { display: block; }



/*header*/
article > header {
	position: relative;
	width: 100%;
	background-color: #000;
}
article > header::before {
	content:"";
	display: block;
	padding-top: 56%;
}
article > header div {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
}
article > header h1 {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 64.88%;
	height: 42%;
	text-align: center;
	transform: translate(-50%,-50%);
}
article > header h1 svg {
	display: inline-block;
	fill: #fff;
}
article > header h1 svg g {
	animation-duration: .15s;
	transform-origin: center;
	animation-fill-mode: forwards;
}
article > header h1 svg g#logo_txt_b {
	opacity: 0;
	transform: scale(1.5);
	animation-name: logo_txt_b;
	animation-delay: 1s;
}
article > header h1 svg g#logo_txt_a {
	opacity: 0;
	transform: scale(1.5);
	animation-name: logo_txt_a;
	animation-delay: 1.15s;
	animation-duration: 3s;
}
article > header h1 svg g#logo_txt_d {
	opacity: 0;
	transform: scale(1.5);
	animation-name: logo_txt_d;
	animation-delay: 1.3s;
}
article > header h1 svg g#logo_icon {
	opacity: 0;
	transform: translateY(-300%);
	animation-name: logo_icon;
	animation-delay: 2s;
	animation-duration: .5s;
}
@keyframes logo_txt_b {
	90%  {
		opacity: 1;
		transform: scale(.95);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}
@keyframes logo_txt_a {
	4%  {
		opacity: 1;
		transform: scale(.95);
	}
	5% {
		opacity: 1;
		transform: scale(1);
	}
	30% {
		opacity: 1;
		transform: scale(1);
	}
	35% {
		opacity: 0;
		transform: scale(1) translateY(300%);
	}
	100% {
		opacity: 0;
		transform: scale(1) translateY(300%);
	}
}
@keyframes logo_txt_d {
	90%  {
		opacity: 1;
		transform: scale(.95);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}
@keyframes logo_icon {
	40% {
		opacity: 1;
		transform: translateY(2%);
	}
	60% {
		opacity: 1;
		transform: translateY(-1%);
	}
	80% {
		opacity: 1;
		transform: translateY(1%);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}



/*about*/
section.about {
	padding: 11vw 0 10.5vw;
}
section.about div.cont_width {
	position: relative;
}
section.about div.cont_width::before {
	position: absolute;
	right: 0;
	bottom: 65vw;
	content: '';
	display: block;
	width: 28vw;
	height: 27vw;
	background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 262.2 252.5"><path d="M163 97h99l-80 60 31 95-82-58-82 58 31-95L0 97h100l31-97 32 97z"/></svg>') no-repeat center center;
}
section.about p {
	font-size: 4.22952vw;
	line-height: 2.16;
	letter-spacing: .2rem;
}
section.about p:nth-of-type(1) {
	margin-bottom: 9vw;
}
section.about p:nth-of-type(2) {
	margin-bottom: 10vw;
}
section.about p:nth-of-type(2) em {
	font-size: 4.5vw;
}
section.about p:nth-of-type(3) {
	margin-bottom: 21.5vw;
}
section.about p:nth-of-type(3) svg {
	width: 90vw;
}
section.about p:nth-of-type(4) {
	letter-spacing: .085em;
}



/* profile */
section.profile {
	padding: 12.5vw 0 6vw;
	color: #fff;
	background-color: #000;
}
section.profile section.vision p {
	font-size: 6.47vw;
	line-height: 1.42;
	letter-spacing: .15em;
}
section.profile section.vision p span {
	display: inline-block;
	margin-left: .5em;
	font-size: 3.02vw;
	line-height: 3;
	vertical-align: top;
	letter-spacing: .1em;
}
section.profile section.way p {
	font-size: 3.02vw;
	letter-spacing: .22em;
}
section.profile section.way p em {
	font-size: 8.62vw;
	line-height: 1.25;
}
section.profile section.value p {
	font-size: 3.77vw;
	letter-spacing: .12em;
}
section.profile section.domain dt {
	font-size: 5vw;
	line-height: 1.5;
	letter-spacing: .05em;
}
section.profile section.domain dd {
	margin-bottom: 1.75vw;
	font-size: 3.02vw;
	line-height: 1.6;
	letter-spacing: .14em;
}



/* info */
section.info {
	padding: 12.5vw 0 6vw;
}
section.info section.member > ul {
	display: flex;
	margin-bottom: 1vw;
}
section.info section.member > ul > li:nth-of-type(1) {
	width: 57.4%;
}
section.info section.member p.name {
	margin-bottom: .5vw;
	font-size: 5.39vw;
	line-height: 1.4;
	letter-spacing: .075em;
}
section.info section.member > ul > li:nth-of-type(2) p.name {
	letter-spacing: .2em;
}
section.info section.member p.name span.en {
	display: block;
	font-size: 3.23vw;
	letter-spacing: .075em;
}
section.info section.member ul.position li {
	letter-spacing: .1em;
}
section.info section.portfolio,
section.info section.address {
	padding-top: 7vw;
	position: relative;
}
section.info section.portfolio p {
	letter-spacing: .12em;
}
section.info section.address address {
	letter-spacing: .09em;
}
section.info section.address address h5 {
	font-size: 3.23vw;
}
section.info section.address address h6 {
	display: inline-block;
	font-size: 3vw;
}
section.info section.address address h6::after {
	content: '/';
	display: inline-block;
	margin-left: .2em;
}
section.info section.address address p {
	font-size: 2.75vw;
}
section.info section.address address h6 + p {
	display: inline-block;
}



/*PC*/
@media screen and (min-width: 481px) {


	body {
		font-size: 1.8rem;
		padding: 20px 0;
	}
	h2 {
		margin-bottom: 40px;
		font-size: 1.68rem;
	}
	h3 {
		margin-bottom: .7rem;
		font-size: 1.68rem;
	}
	div.cont_width > section {
		margin-bottom: 3.8rem;
		padding-top: 4rem;
	}
	div.cont_width > section::before {
		width: 3.5rem;
		height: 3.4rem;
	}
	body::before,
	article > header div::before,
	article > header div::after,
	section.about::before,
	section.about::after,
	section.profile::before,
	section.profile::after,
	section.info::before,
	section.info::after,
	body::after {
		padding-top: 20px;
		background-size: 40px auto;
		background-position: center center;
	}
	div.cont_width {
		width: 720px;
		transform: translateX(20px);
	}
	.pc { display: block; }
	.sp { display: none; }



/*header*/
	article > header {
		height: 400px;
	}
	article > header::before {
		display: none;
	}
	article > header h1 {
		width: 486.62px;
		height: 174px;
	}



/*about*/
	section.about {
		padding: 88px 0 108px;
	}
	section.about div.cont_width::before {
		right: 0;
		bottom: auto;
		top: 30.5rem;
		width: 262.17px;
		height: 252.4541px;
	}
	section.about p {
		font-size: 2.354rem;
		letter-spacing: .3rem;
	}
	section.about p:nth-of-type(1) {
		margin-bottom: 5.2rem;
	}
	section.about p:nth-of-type(2) {
		margin-bottom: 5.6rem;
	}
	section.about p:nth-of-type(2) em {
		font-size: 2.522rem;
	}
	section.about p:nth-of-type(3) {
		margin-bottom: 12.2rem;
	}
	section.about p:nth-of-type(3) svg {
		width: 48.5rem;
	}



/* profile */
	section.profile {
		padding: 92px 0 48px;
	}
	section.profile section.vision p {
		font-size: 3.6rem;
	}
	section.profile section.vision p span {
		font-size: 1.68rem;
	}
	section.profile section.way p {
		font-size: 1.68rem;
		letter-spacing: .21em;
	}
	section.profile section.way p em {
		font-size: 4.8rem;
		line-height: 1.3;
	}
	section.profile section.value p {
		font-size: 2.1rem;
	}
	section.profile section.domain dt {
		font-size: 3rem;
		line-height: 1.4;
	}
	section.profile section.domain dd {
		margin-bottom: 1.2rem;
		font-size: 1.68rem;
	}



/* info */
	section.info {
		padding: 96px 0 60px;
	}
	section.info section.member > ul > li:nth-of-type(1) {
		width: 49%;
	}
	section.info section.member p.name {
		margin-bottom: .8rem;
		font-size: 3rem;
		line-height: 1.6;
	}
	section.info section.member > ul > li:nth-of-type(2) p.name {
		letter-spacing: .15em;
	}
	section.info section.member p.name span.en {
		display: inline-block;
		margin-left: .5em;
		font-size: 1.8rem;
		line-height: 2.6;
		vertical-align: top;
	}
	section.info section.portfolio,
	section.info section.address {
		padding-top: 4rem;
	}
	section.info section.address address h5,
	section.info section.address address h6,
	section.info section.address address p {
		font-size: 1.8rem;
	}



}