@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500&display=swap');
::selection {
	background: #000;
	color: #fff;
}
::-moz-selection {
 background: #000;
 color:#fff;
}
* {
	outline:none;
}
body {
	font-family: 'Noto Serif JP',"游明朝体", "Yu Mincho", YuMincho, serif;
	font-weight: 500;
	font-size: 14px;
	color: #FFF;
	background-color: #000;
}
a { color: #FFF; }
a:hover { text-decoration: none; }
.sp {display:none !important;}
#allWrap {
	position: fixed;
	left:0;
	right:0;
	top:0;
	bottom:0;
	overflow: hidden;
}
#fullWrap {
	min-width:1200px;
	width:100%;
	overflow: hidden;
	position: relative;
	padding-top:142%;
	min-height: 1700px;
}
.mvov {
	position: fixed;
	left:0;
	top:0;
	width:100%;
	height:100%;
	z-index:51;
	min-width:1200px;
}
.mvbg {
	left:0;
	top:0;
	width:100%;
	padding-top: 142%;
	min-height:1700px;
	position: absolute;
	background: url(../img/mv.jpg) no-repeat center center / 100%;
	min-width: 1200px;
	filter: brightness(3) contrast(3) opacity(0) saturate(0);
}
@keyframes mvan {
	0%{
		filter: brightness(3) contrast(3) opacity(0) saturate(0);
	}
	33% {
		filter: brightness(1) contrast(2) opacity(1) saturate(0.4);
	}
	66% {
		filter: brightness(1) contrast(1) opacity(1) saturate(0.8);
	}
	100% {
		filter: brightness(1) contrast(1) opacity(1) saturate(1);
	}
}
@keyframes mvan_bg {
	0% {
		background-size: 100%;
	}
	100% {
		background-size: 103%;
	}
}
.mvbg.an {
	animation:mvan 3s linear forwards,mvan_bg 4s ease forwards;
}
#modal.an {
	animation:mvan 3s linear forwards,mvan_bg 4s ease forwards;
}
.mvfi {
	position: fixed;
	z-index: 50;
	top: 0;
	left:0;
	width:100%;
	height:100%;
	min-width: 1200px;
	min-height:620px;
}
.mvfi h1 {
	position: absolute;
	width:401px;
	right:45px;
	top:0;
	bottom:0;
	filter:blur(50px);
	opacity:0;
}

.mvfi h1:before {
	content:'';
	position:absolute;
	width: 100%;
	padding-top:28.3935%;
	top:50%;
	transform:translateY(-50%);
	background:url(../img/logo_w.png) no-repeat center center / contain;
}
.mvfi h1:after {
	content:'';
	position:absolute;
	width: 100%;
	padding-top:28.3935%;
	top:50%;
	transform:translateY(-50%);
	background:url(../img/logo_r.png) no-repeat center center / contain;
	opacity:0;
	transition:all 0.5s ease;
}
.mvfi h1.chg:after {
	opacity:1;
}
.mvfi h1.an {
	filter:blur(0);
	opacity:1;
	transition: all 2s ease;
}
#comment {
	position: absolute;
	bottom:0px;
	left:63px;
	width:540px;
	top:0px;
}
#comment > dl {
	position:absolute;
	top:0;
	left:0;
	bottom:0;
	width:100%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
}
#comment  > dl div {
	margin-bottom:70px;
}
#comment > dl div:last-child {
	margin-bottom:0;
}
#comment > dl dt {
	margin-bottom:30px;
}
#comment > dl dd {
	letter-spacing: 0.05em;
	line-height: 2;
	text-shadow: 0px 0px 3px #000000, 0px 0px 3px #000000, 0px 0px 3px #000000, 0px 0px 3px #000000, 0px 0px 3px #000000;
}
#comment > dl dd strong {
	font-size:16px;
	display: block;
	padding-bottom:1em;
	letter-spacing: 0.2em;
	font-weight: 500;
}
.comment__1 dt {
	width:442px;
	height:100px;
	background: url(../img/staff_01.png) no-repeat left center;
}
.comment__2 dt {
	width:326px;
	height:50px;
	background: url(../img/staff_02.png) no-repeat left center;
}
.comment__3 dt {
	width:326px;
	height:50px;
	background: url(../img/staff_03.png) no-repeat left center;
}
.staff dt {
	width:326px;
	height:50px;
	background: url(../img/staff_04.png) no-repeat left center;
}

.staff p{
	line-height: 2.8;
	letter-spacing: .05em;
}
.staff span.small{
	font-size: 12px;
}

.twitter {
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	display: flex;
	width:100%;
	align-content: center;
	flex-wrap: wrap;
}
.comment__twitter {
	position:relative;
	width:507px;
	height:59px;
}
.comment__twitter a {
	display: block;
	height:59px;
	position: relative;
	border:1px solid #FFF;
	overflow: hidden;
}
.comment__twitter a span {
	display: block;
	height:57px;
	text-indent: -9788px;
	background:url(../img/btn_twitter.png) no-repeat 162px center / 210px auto;
	z-index:55;
	position:relative;
}
.comment__twitter a:before,
.comment__twitter a:after {
	content:'';
	position: absolute;
	height:57px;
	transform: skewX(-45deg);
	background:rgba(0,0,0,0.75);
	top:0;
	width:calc(100% + 58px);
	transition:all 0.3s ease;
}
.comment__twitter a:before {
	left:calc(-100% - 87px);
}
.comment__twitter a:after {
	left:calc(100% + 29px);
}
.comment__twitter a:hover:before,
.comment__twitter a:hover:after {
	left:-29px;
}
#footer {
	position: absolute;
	left:0;
	right:0;
	bottom:0;
	height:84px;
	padding:0 63px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.share {
	display: flex;
	height:44px;
	width: 100%;
	margin-top:20px;
}
.share dt {
	width:58px;
	height:44px;
	background:url(../img/share_text.png) no-repeat left center / 45px auto;
}
.share dd {
	width:44px;
	height:44px;
}
.share dd a {
	display: block;
	height:44px;
	transition: all 0.5s ease;
}
.share dd a:hover {
	transform:translateY(-5px);
}
.share__twitter a {
	background:url(../img/icon_twitter_w.svg) no-repeat center center / 20px auto;
}
.share__facebook a {
	background:url(../img/icon_facebook_w.svg) no-repeat center center / 20px auto;
}
.share__line a {
	background:url(../img/icon_line_w.svg) no-repeat center center / 20px auto;
}
.copyright {
	font-size:10px;
	text-align: right;
	letter-spacing: 0.1em
}
.js-effect {
transform: translate3d(-20px, 60px, 0);
transition: all 1s ease;
opacity: 0;
filter: blur(20px);
pointer-events: none;
}
.js-effect-none {
opacity: 1;
filter: blur(0px);
}
.js-effect__on {
opacity: 1;
transform: translate3d(0, 0, 0);
filter: blur(0);
pointer-events: auto;
}
#footer.js-effect {
	transform: translate3d(0, 25px, 0);
}
#footer.js-effect.js-effect__on {
	transform: translate3d(0, 0, 0);
}
.footer__left {
	display: flex;
	align-items: center;
}
.footer__contact {
	width:150px;
	height:35px;
}
.footer__contact a {
	display: block;
	height:30px;
	border:1px solid #FFF;
	overflow: hidden;
	text-decoration: none;
	position: relative;
}
.footer__contact a span {
	display: block;
	height:28px;
	font-size:12px;
	text-align: center;
	line-height: 27px;
	position: relative;
	z-index: 3;
	letter-spacing: 0.1em;
	padding-left:0.1em;
}
.footer__contact a:before,
.footer__contact a:after {
	content:'';
	position: absolute;
	height:28px;
	transform: skewX(-45deg);
	background:rgba(255,255,255,0.1);
	top:0;
	width:calc(100% + 28px);
	transition:all 0.3s ease;
}
.footer__contact a:before {
	left:calc(-100% - 42px);
}
.footer__contact a:after {
	left:calc(100% + 14px);
}
.footer__contact a:hover:before,
.footer__contact a:hover:after {
	left:-14px;
}
.footer__contactText {
	font-size:10px;
	margin-left:15px;
	margin-bottom:5px;
	text-shadow: 0px 0px 3px #000000, 0px 0px 3px #000000, 0px 0px 3px #000000, 0px 0px 3px #000000, 0px 0px 3px #000000;
	letter-spacing: 0.1em;
	font-weight: 400;
}
#scrollContainer {
	width:100%;
	min-width:1200px;
	position: absolute;
}
.bnr {
	position: absolute;
	width:401px;
	left:36px;
	bottom:90px;
	padding-top:220px;
	display: flex;
	justify-content: center;
	align-items: center;
	pointer-events: none;
}
.bnr a {
	display: block;
	pointer-events: auto;
	width:348px;
	height:45px;
	z-index:9999;
	margin:0 auto;
	transition: all 0.3s ease;
}
.bnr a:hover {
	opacity:0.7;
}
.logoU__bnr {
	position: absolute;
	top:50%;
	margin-top:60px;
	right:60px;
	filter:blur(50px);
	opacity:0;
}
.logoU__bnr.an {
	filter:blur(0px);
	opacity:1;
	transition: all 2s ease;
	pointer-events: auto;
	z-index:5000;
}
.logoU__bnr a {
	transition:all 0.3s ease;
}
.logoU__bnr a:hover{
	opacity:0.7;
}

/**---------- modal ----------**/
* {
	margin: 0;
	padding: 0;
}

#modal{
    position: absolute;
    bottom: 0px;
    left: 63px;
    width: 460px;
    height:520px;
    top: 50%;
    margin-top: -260px;
    z-index: 1000;
	transition:all 0.5s ease;
}

/* モーダル全体(背景＋本体) */
.js-modal-open {
	width: 458px;
	height: 220px;
	overflow: hidden;
	position: relative;
	display: block;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: 0.5s;
	background-position: center center;
	background-size: cover;
}

.js-modal-open:hover::after {
	opacity: .75;
}

.modal-play {
	width: 48px;
	height: 48px;
}

.modal-play:before {
	content: url(../img/icon_play.png);
}
.modal-name {
	padding:10px 0 25px;
	font-size:20px;
}
.modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	height: 100vh;
	width: 100%;
}

/* モーダル背景 */
.modal-bg {
	position: absolute;
	height: 100vh;
	width: 100%;
	background: rgba(0, 0, 0, 0.8);
}

/* モーダル本体 */
.modal-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 960px;
	height: 540px;
	background: #fff;
}

body.fixed {
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0;
}

.js-modal-close.close-btn{
	position: absolute;
	top: 0;
	right: -84px;
}

.notice {
	width:480px;
	position: absolute;
	right:0;
	top:50%;
	margin-top:60px;
	filter:blur(50px);
	opacity:0;
}
.notice.an {
	filter:blur(0);
	opacity:1;
	transition: all 2s ease;
}
.notice li {
	height:36px;
	margin-bottom:4px;
	border:1px solid #2b2b2b;
	border-right:none;
}
.notice1 {
	background:#000 url(../img/notice1.png) no-repeat center center;
}
.notice2 {
	background:#000 url(../img/notice2.png) no-repeat center center;
}