@charset "utf-8";


/* ================================
 * Common
 * ================================ */

html, body {
	width: 100%;
	font-size: 62.5%;
	letter-spacing: .03em;
	line-height: 1.75;
	color: #fff;
	font-family: Helvetica, "Yu Gothic", 'YuGothic', "Hiragino Kaku Gothic Pro", sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
}

body {
	background: #202023;
    padding-top: constant(safe-area-inset-top);
    padding-right: constant(safe-area-inset-right);
    padding-bottom: constant(safe-area-inset-bottom);
    padding-left: constant(safe-area-inset-left);
}
.font__ja {}
.font__en {}

a {
	transition: all .25s;
	-webkit-transition: all .25s;
}
a:hover {
	opacity: .5;
}
a.noEvent {
	pointer-events: none;
	position: relative;
	cursor: pointer;
}

.pc {
	display: none;
}

.-loaded {
	opacity: 1 !important;
}


.anim__slideIn {
	position: relative;
     transition: all .8s cubic-bezier(0, 0, 0.22, 1.01);
    -webkit-transition: all .8s cubic-bezier(0, 0, 0.22, 1.01);
}
.anim__slideIn[data-emergence=hidden] {
	top: 50px;
	opacity: 0;
}
.anim__slideIn[data-emergence=visible] {
	top: 0;
	opacity: 1;
}

.anim__fadeIn {
     transition: all .8s;
    -webkit-transition: all .8s;
}
.anim__fadeIn[data-emergence=hidden] {
	opacity: 0;
}
.anim__fadeIn[data-emergence=visible] {
	opacity: 1;
}





/* ================================
 * Header
 * ================================ */

header {
	width: 100%;
	background: -moz-linear-gradient(top center, rgba(29,29,31, .7) 0%, rgba(29,29,31, 0) 100%);
	background: -webkit-gradient(linear, center 0, center 100%, from(rgba(29,29,31, .7)), to(rgba(29,29,31, 0)));
	background: linear-gradient(top center, rgba(29,29,31, .7) 0%, rgba(29,29,31, 0) 100%);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 2;
}
header:before {
	content: "";
	width: 60px;
	height: 100vh;
	background: -moz-linear-gradient(right,  rgba(29,29,31,.3) 0%, rgba(29,29,31,0) 100%); /* FF3.6-15 */
	background: -webkit-linear-gradient(right,  rgba(29,29,31,.3) 0%,rgba(29,29,31,0) 100%); /* Chrome10-25,Safari5.1-6 */
	background: linear-gradient(to left,  rgba(29,29,31,.3) 0%,rgba(29,29,31,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	position: absolute;
	top: 0;
	right: 0;
}


header h1 {
	line-height: 1;
	font-size: 1.9rem;
	letter-spacing: -.02em;
	font-weight: bold;
	position: relative;
	top: 0;
}
header h1 a {
	width: 80px;
	margin: 2% 0 2% 5%;
	display: inline-block;
	padding: 10px 5px;
}


.headerNav__main,
.headerNav__sub {
	position: fixed;
	overflow: hidden;
	-webkit-writing-mode: vertical-rl;
	  -ms-writing-mode: tb-rl;
		  writing-mode: vertical-rl;
	right: 0;
}
.headerNav__main { top: 2%; }
.headerNav__sub  { bottom: 2%; }

.headerNav__main li,
.headerNav__sub li {
	float: left;
}

header nav li a {
	line-height: 1;
	position: relative;
}

header nav li a:before {
	content: "";
	width: 0;
	height: 20px;
	background: #fff;
	position: absolute;
	top: 50%;
	right: 0;
	margin-top: -10px;
	transition: all .3s ease-out;
	-webkkit-transition: all .3s ease-out;
}

.headerNav__main li a {
	display: block;
	padding: 10px 12px;
	font-size: 1.65rem;
	letter-spacing: .02em;
	font-weight: bold;
}
.headerNav__sub li a {
	display: block;
	padding: 10px 17px;
	font-size: 1.1rem;
	letter-spacing: .03em;
}

header nav li a:hover  {
	opacity: 1 !important;
}
header nav li a:hover:before  {
	width: 3px;
}




/* ================================
 * Content
 * ================================ */
main, footer {
	opacity: 0;
}



/* ================================
 * Footer
 * ================================ */

footer {
	width: 100%;
	padding: 60px 0 20px;
	margin-top: 5%;
	position: relative;
}

.footer__copy {
	text-align: center;
	letter-spacing: .03em;
	opacity: .5;
	font-size: 1.0rem !important;
}

.footer__pagetop {
	position: absolute;
	top: 0;
	left: 50%;
	margin-left: -25px;
}

.footer__pagetop a {
	width: 50px;
	height: 50px;
	border-radius: 50%;
}
.footer__pagetop a:hover {
	opacity: 1;
	margin-top: -5px;
}

.footer__pagetop a img {
	width: 25px;
	height: 25px;
	transform: translate(50%, 45%);
}
