@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;
	cursor: default;
}

.font__ja {}
.font__en {}

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

.sp {
	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, .6) 0%, rgba(29,29,31, 0) 100%);
	background: -webkit-gradient(linear, center 0, center 100%, from(rgba(29,29,31, .6)), to(rgba(29,29,31, 0)));
	background: linear-gradient(top center, rgba(29,29,31, .6) 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: 2rem;
	letter-spacing: -.03em;
	font-weight: bold;
	position: relative;
	top: 0
}
header h1 a {
	width: 88px;
	display: inline-block;
	padding: 2% 0;
	margin: 14px 5%;
}


.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: 3%; }
.headerNav__sub  { bottom: 14px; }

.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: 24px;
	background: #fff;
	position: absolute;
	top: 50%;
	right: 0;
	margin-top: -12px;
	transition: all .3s ease-out;
	-webkkit-transition: all .3s ease-out;
}

.headerNav__main li a {
	display: block;
	padding: 14px 19px;
	font-size: 2.1rem;
	letter-spacing: .02em;
	font-weight: bold;
}
.headerNav__sub li a  {
	display: block;
	padding: 14px 24px;
	font-size: 1.2rem;
	letter-spacing: .02em;
}

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




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




/* ================================
 * Cursor
 * ================================ */

#pointer {
    pointer-events: none;
    position: fixed;
    top: -6px;
    left: -4px;
    z-index: 999;

    width: 8px;
    height: 8px;
    mix-blend-mode: exclusion;
    pointer-events: none;
  transform: translate(0,0);
  transition: transform 0.2s;
  transition-timing-function: ease-out;
}

#pointer div {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;

  background: #fff;
  border-radius: 50%;

}




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

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

.footer__copy {
	text-align: center;
	opacity: .5;
	letter-spacing: .05em;
}

.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%);
}
