@charset "UTF-8";

/* --------------------------------------------------
menu
-------------------------------------------------- */
#nav_toggle {
	cursor:pointer;
	position: fixed;
	box-sizing:border-box;
	right:20rem;
	top:20rem;
	width:70rem;
	height:70rem;
	z-index:900;
}

#nav_toggle::before {
  content: '';
  display: block;
  background: #ac0100;
  position: absolute;
  top: 0;
  left: 0;
	width:70rem;
	height:70rem;
	border-radius:50%;
}


#nav_toggle #nav_inner{
	position: absolute;
	width:30rem;
	height:20rem;
	left:20rem;
	top:25rem;
}

#nav_toggle span {
	position: absolute;
	left: 0;
	width: 100%;
	height:2rem;
	background-color: #fff;
	transition: all 0.6s;
}

#nav_toggle span:nth-of-type(1) {
  top: 0;
}

#nav_toggle span:nth-of-type(2) {
	top:calc(50% - 1rem);
}

#nav_toggle span:nth-of-type(3) {
  bottom: 0;
}

.open #nav_toggle span:nth-of-type(1) {
	-webkit-transform: translateY(9rem) rotate(-45deg);
	transform: translateY(9rem) rotate(-45deg);
}

.open #nav_toggle span:nth-of-type(2) {
  opacity: 0;
}

.open #nav_toggle span:nth-of-type(3) {
	-webkit-transform: translateY(-9rem) rotate(45deg);
	transform: translateY(-9rem) rotate(45deg);
}


#menu{
	width:100%;
	height:100%;
	position: fixed;
	right: -100%;
	top:0;
	height:100%;
	background:rgba(2,11,28,0.95);
	z-index:800;
	-webkit-transition: all .8s ease;
	 transition: all .8s ease;
}

.open #menu{
	right: 0;
}

.menu_inner{
	width:100%;
	height:100%;
	overflow-y: auto;
}

#menu ul{
	width:100%;
	padding:150rem 0 50rem;
	position:relative;
	margin:0 auto;
}

#menu ul li{
	padding-bottom:55rem;
	line-height:1.0;
	text-align:center;
	color:#fff;
	font-size:46rem;
	letter-spacing:2.0rem;
	color:#ac0100;
	font-weight:700;
}

#menu ul li a{
	color:#ac0100;
	display:block;
}


/*--------------------------------------
modal
----------------------------------------*/
#modal{
	width:100%;
	height:120vh;
	background-color:#260304;
	z-index:9000;
	position:fixed;
	left:0;
	top:0;
	display: flex;
  justify-content: center;
  align-items: center;
	flex-wrap: wrap;
	overflow:hidden;
}

#bg_modal1{
	width:100%;
	height:100%;
	position:absolute;
	left:0;
	top:0;
	background: url(../img/bg_monkey1.jpg) no-repeat center center;
	background-size:cover;
	z-index:1;
}

#bg_modal2{
	width:100%;
	height:100%;
	position:absolute;
	left:0;
	top:0;
	background: url(../img/bg_monkey2.jpg) no-repeat center center;
	background-size:cover;
	z-index:2;
	opacity:0;
  transform: scale(1);
  transform-origin:center 20%;
}

#modal_inner{
	width:100%;
	z-index:10;
	position:relative;
	margin:0 auto;
}

#modal_inner #attention{
	width:370rem;
	position:relative;
	margin:0 auto;
}

#modal_inner p.lead1{
	font-size:28rem;
	text-align:center;
	color:#fff;
	font-weight:600;
	padding-top:70rem;
	line-height:1.0;
}

#modal_inner p.lead2{
	font-size:40rem;
	text-align:center;
	color:#d60504;
	font-weight:600;
	padding-top:30rem;
	line-height:1.6;
}

#modal_inner p.lead3{
	font-size:28rem;
	text-align:center;
	color:#ffff;
	font-weight:400;
	padding-top:40rem;
	line-height:1.6;
}

#modal_inner #btn_entry{
	width:380rem;
	margin:80rem auto 0;
}

#modal_inner #btn_exit{
	width:300rem;
	margin:30rem auto 0;
}

@keyframes title_ani {
  0% {
    transform: none;
  }
  33% {
    transform: none;
  }
  33.3% {
    transform: skewX(10deg);
  }
  33.6% {
    transform: skewX(-10deg);
  }
  33.9% {
    transform: none;
  }
  66% {
    transform: none;
  }
  66.3% {
    transform: skewX(5deg);
  }
  66.6% {
    transform: skewX(-5deg);
  }
  66.9% {
    transform: none;
  }
  77% {
    transform: none;
  }
  77.3% {
    transform: skewX(30deg);
  }
  77.6% {
    transform: skewX(-30deg);
  }
  77.9% {
    transform: none;
  }
}

@keyframes blur {
  0% {
	  opacity: 0;
    filter: blur(40rem);
  }
  100% {
	  opacity: 1;
    filter: blur(0);
  }
}

@keyframes blur2 {
  0% {
	  opacity: 0;
    filter: blur(60rem);
		transform: scale(1.2,1.2);
  }
  100% {
	  opacity: 1;
    filter: blur(0);
		transform: scale(1,1);
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

#modal_inner #attention img{
  animation: title_ani 3.0s cubic-bezier(0.19, 1, 0.22, 1) infinite;
}

#attention,
p.lead1,
p.lead2 span,
p.lead3,
#btn_entry,
#btn_exit{
	opacity:0;
}

.is-loaded #attention{
  animation: fadeIn 2s ease 0.8s forwards;
}

.is-loaded p.lead1{
  animation: blur 2s ease 1.2s forwards;
}

.is-loaded p.lead2 span:nth-child(2){
  animation: blur 2s ease 1.8s forwards;
}
.is-loaded p.lead2 span:nth-child(6){
  animation: blur 2s ease 2.0s forwards;
}
.is-loaded p.lead2 span:nth-child(4){
  animation: blur 2s ease 2.2s forwards;
}
.is-loaded p.lead2 span:nth-child(1){
  animation: blur 2s ease 2.4s forwards;
}
.is-loaded p.lead2 span:nth-child(7){
  animation: blur 2s ease 2.6s forwards;
}
.is-loaded p.lead2 span:nth-child(5){
  animation: blur 2s ease 2.8s forwards;
}
.is-loaded p.lead2 span:nth-child(3){
  animation: blur 2s ease 3.0s forwards;
}
.is-loaded p.lead2 span:nth-child(8){
  animation: blur 2s ease 3.2s forwards;
}

.is-loaded p.lead3{
  animation: blur 2s ease 3.4s forwards;
}

.is-loaded #btn_entry{
  animation: blur2 2s ease 4.4s forwards;
}

.is-loaded #btn_exit{
  animation: blur2 2s ease 4.8s forwards;
}

#bg_modal2.is-active {
  animation: flashFade 0.8s ease forwards;
}

@keyframes flashFade {
  0%   { opacity: 0; }
  10%  { opacity: 0.6; }
  20%  { opacity: 0; }
  40%  { opacity: 1; }
  100% { opacity: 0; }
}

#bg_modal2.is-stopflash {
  animation: none !important;
}

#bg_modal2.is-zoomout {
  opacity: 1;
  transform: scale(1.8);
	transition: transform 800ms cubic-bezier(.15,.9,.25,1), opacity 600ms ease;
}

#btn_entry,
#btn_exit{
  pointer-events: none;
}

.is-anim-finished #btn_entry,
.is-anim-finished #btn_exit{
  pointer-events: auto;
}



/*--------------------------------------
top
----------------------------------------*/
#bg {
	width:100%;
  height: 100vh;
	position:relative;
	background: url(../img/story_img.jpg) no-repeat center top;
	background-size:cover;
	z-index:0;
	position:fixed;
	left:0;
	top:0;
}

.p-top {
	width:100%;
	height:1090rem;
	position:relative;
	background: url(../img/mainvisual.jpg) no-repeat center top;
	background-size:100% auto;
}

.p-top__hero,
.p-hero,
.p-hero__box{
	width:100%;
	height:100%;
	position:relative;
}

#production{
	width:330rem;
	position:relative;
	margin:0 auto;
	padding-top:50rem;
}

#logo ul{
	width:590rem;
	position:relative;
	margin:65rem auto 0;
  justify-content: space-between;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
}

#logo ul li:nth-child(1){
	width:105rem;
}

#logo ul li:nth-child(2){
	width:85rem;
}

#logo ul li:nth-child(3){
	width:90rem;
}

#logo ul li:nth-child(4){
	width:100rem;
}

#logo ul li:nth-child(5){
	width:120rem;
}

#logo ul li:nth-child(6){
	width:90rem;
}

#date{
	width:220rem;
	position:relative;
	margin:0 auto;
}

#credit{
	width:490rem;
	position:relative;
	margin:0 auto;
}

#catch{
	width:100%;
	position:absolute;
	right:0;
	top:580rem;
}

#lead{
	width:750rem;
	position:relative;
	margin:0 auto;
	padding-top:450rem;
}

#r15{
	width:55rem;
	position:absolute;
	right:0;
	bottom:5rem;
}

#production,
#date,
#credit,
#lead,
#bnr,
#logo ul li,
#catch ul li {
  opacity: 0;
}

/*--------------------------------------
contents
----------------------------------------*/
#mvtk{
	width:100%;
	margin:-8rem auto 0;
	position:relative;
	background: url(../img/bg.jpg) no-repeat center top #000;
	background-size:100% auto;
}

#bottom{
	width:100%;
	margin:0 auto;
	position:relative;
	background-color:#000;;
}

#navi{
	padding-bottom:50rem;
}

#navi ul{
	width:490rem;
	margin:60rem auto 0;
  justify-content: space-between;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
}

#navi ul li{
	width:490rem;
	margin-bottom:30rem;
	box-sizing:border-box;
	border:2rem solid #ac0101;
	background-color:#000;
}

/*--------------------------------------
mvtkWidget
----------------------------------------*/
#bnr ul.bnr_block{
	width:540rem;
	margin:50rem auto 0;
	position:relative;
}

#bnr ul.bnr_block li{
	width:100%;
	margin-bottom:20rem;
	position:relative;
}

#mvtkWidget{
	position:relative;
	z-index:10;
	padding-top:60rem;
}

#mvtk-widgets-container{
	margin:0 auto;
}

ul.bnr_mvtk{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16rem;
	margin:40rem auto 0;
	padding-bottom:50rem;
}

ul.bnr_mvtk li{
	width:232rem;
}

/*--------------------------------------
trailer
----------------------------------------*/
#trailer{
	width:100%;
	position:relative;
	background-color:#230000;
	padding-bottom:70rem;
}

#trailer h2{
	width:250rem;
	position:relative;
	margin:0 auto;
	padding:60rem 0 30rem;
}

.movie {
  width: 660rem;
	margin:0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40rem;
  position: relative;
  z-index: 10;
}

.movie__item {
  width: 100%;
  aspect-ratio: 16 / 9;
}

.movie__item iframe {
  width: 100%;
  height: 100%;
}

.movie__nav {
  padding: 0;
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10rem;
}

.movie__nav-item {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  line-height: 1.8;
  width: 325rem;
  font-weight: 500;
  min-height: 50rem;
  background: #fff;
  color: #ac0100;
  box-sizing: border-box;
  padding: 4rem 10rem;
  font-size: 24rem;
  transition-duration: .3s;
  transition-property: background;
}

.movie__nav-item:hover,
.movie__nav-item.is-active {
  background: #ac0100;
	color:#fff;
  cursor: pointer;
}

/*--------------------------------------
introduction
----------------------------------------*/
#introduction{
	width:100%;
	position:relative;
	background: url(../img/intro_bg.png) no-repeat center bottom #e50a84;
	background-size:100% auto;
	padding-bottom:50rem;
}

#introduction h2{
	width:430rem;
	position:relative;
	margin:0 auto;
	padding:80rem 0 40rem;
}

#intro_main{
	width: 100%;
	height:450rem;
	position:relative;
	margin:0 auto;
}

#intro_main ul{
	width: 100%;
	height:450rem;
	position:relative;
}

#intro_main ul{
	width: 100%;
	height:450rem;
	position:relative;
}

#intro_main ul li:nth-child(1){
	width: 260rem;
	position:absolute;
	left:70rem;
	top:0;
}

#intro_main ul li:nth-child(2){
	width: 280rem;
	position:absolute;
	right:70rem;
	top:0;
}

#intro_main ul li:nth-child(3){
	width: 750rem;
	position:absolute;
	left:0;
	top:108rem;
}

#intro_main ul li:nth-child(4){
	width: 750rem;
	position:absolute;
	left:0;
	top:0;
}

#intro_main ul li:nth-child(5){
	width: 160rem;
	position:absolute;
	left:0;
	bottom:0;
}

#intro_main ul li:nth-child(6){
	width: 130rem;
	position:absolute;
	left:230rem;
	bottom:0;
}

#intro_main ul li:nth-child(7){
	width: 115rem;
	position:absolute;
	left:430rem;
	bottom:0;
}

#intro_main ul li:nth-child(8){
	width: 135rem;
	position:absolute;
	right:0;
	bottom:0;
}

#intro_catch{
	width: 610rem;
	position:relative;
	margin:0 auto;
}

#introduction p{
	width:670rem;
	margin:30rem auto 0;
	font-size:28rem;
	font-weight:600;
	line-height:1.7;
}

/*--------------------------------------
story
----------------------------------------*/
#story{
	width:100%;
	position:relative;
	background-color:#000;
	margin-top:800rem;
	padding:60rem 0 100rem;
}

#story h2{
	width:190rem;
	position:relative;
	margin:0 auto;
}

#story p{
	width:670rem;
	margin:30rem auto 0;
	font-size:28rem;
	font-weight:600;
	line-height:1.7;
}

/*--------------------------------------
scroll
----------------------------------------*/
#scroll{
  position: relative;
  width: 100%;
	height:256rem;
}

#dot{
  width: 100%;
	height: 256rem;
	background: url(../../../assets/img/dot.gif);
	position: absolute;
	z-index: 110;
	mix-blend-mode: multiply;
	opacity:0;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation: photoscroll 24s linear infinite;
	pointer-events: none;
  transition: .2s;
}

#scroll.add_dot #dot{
	opacity:0.6;
}

#scroll_img {
	background: url(../../../assets/img/scroll_img.jpg) repeat-x;
	background-size: auto 100%;
	width: 120%;
	height: 256rem;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation: photoscroll 24s linear infinite;
	pointer-events: none;
	z-index: 100;
}

@keyframes photoscroll {
 0% {background-position: 0 0;}
 100% {background-position: -2300rem 0;}
}

/*--------------------------------------
cast
----------------------------------------*/
#cast{
	width:100%;
	position:relative;
	padding:20rem 0;
	background-color:#000;
}

#cast h2{
	width:140rem;
	position:relative;
	margin:0 auto;
	padding:60rem 0 40rem;
}

#cast ul{
	width:650rem;
	margin:0 auto;
	display: flex;
  justify-content: start;
  align-items: stretch;
	flex-wrap: wrap;
	position:relative;
}

#cast ul li{
	width:100%;
	position:relative;
	margin-bottom:30rem;
}

#cast ul li:last-child{
	margin-bottom:0;
}

#cast ul li dl{
	width:100%;
	display: flex;
  justify-content: space-between;
  align-items: center;
	flex-wrap: wrap;
	position:relative;
}

#cast ul li dl dt{
	width:320rem;
	position:relative;
}

#cast ul li dl dd{
	width:300rem;
	position:relative;
}

#cast ul li .cast_img{
	width:320rem;
	height:168rem;
	overflow:hidden;
}

#cast ul li span{
	display:block;
	font-size:24rem;
	font-weight:600;
	color:#ac0100;
	line-height:1.0;
	letter-spacing:1.4rem;
}

#cast ul li p{
	font-size:26rem;
	font-weight:600;
	line-height:1.0;
	margin-top:10rem;
	letter-spacing:1.4rem;
}

/*--------------------------------------
staff
----------------------------------------*/
#staff{
	width:100%;
	background-color:#000;
	position:relative;
	padding-bottom:140rem;
}

#staff h2{
	width:160rem;
	position:relative;
	margin:0 auto;
	padding:60rem 0 40rem;
}

#staff p{
	font-size:26rem;
	font-weight:600;
	line-height:1.0;
	margin:0 auto 20rem;
	text-align:center;
	letter-spacing:1.4rem;
}

#staff span{
	font-size:20rem;
	line-height:1.0;
}

#staff span.pos{
	font-size:24rem;
	font-weight:600;
	color:#ac0100;
}

/* --------------------------------------------------
animation
-------------------------------------------------- */
/*
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translateY(-60px);
    transform: translateY(-60px);
		pointer-events: none;
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
		pointer-events: auto;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(30px);
    transform: translateY(30px);
		pointer-events: none;
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
		pointer-events: auto;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale(0.8);
    transform:scale(0.8);
  }
  to {
    opacity: 1;
    -webkit-transform: scale(1.0);
    transform:scale(1.0);
  }
}

@keyframes zoomOut {
  from {
    opacity: 0;
    -webkit-transform: scale(1.2);
    transform:scale(1.2);
  }
  to {
    opacity: 1;
    -webkit-transform: scale(1.0);
    transform:scale(1.0);
  }
}

@keyframes poyon {
  0%   { transform: scale(0.3, 0.3); }
  20%  { opacity: 1; transform: scale(1.1, 1.1); }
  40%  { opacity: 1; transform: scale(0.8, 0.8); }
  60%  { opacity: 1; transform: scale(1.05, 1.05); }
  80%  { opacity: 1; transform: scale(0.95, 0.95); }
  100% { opacity: 1; transform: scale(1.0, 1.0); }
}

@keyframes blur {
  0% {
	  opacity: 0;
    filter: blur(40rem);
  }
  100% {
	  opacity: 1;
    filter: blur(0);
  }
}

@keyframes maskIn {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  100% {
    clip-path: inset(-10px);
  }
}

#navi ul li,
.c-sns,
.c-share{
	opacity:0;
}

.c-sns,
.c-share {
  opacity: 0;
  pointer-events: none;
}

.is-loaded #navi ul li:nth-child(1){
  animation: fadeInUp 1.0s cubic-bezier(.17,.67,.3,.92) 5.6s forwards;
}

.is-loaded #navi ul li:nth-child(2){
  animation: fadeInUp 1.0s cubic-bezier(.17,.67,.3,.92) 5.8s forwards;
}

.is-loaded #navi ul li:nth-child(3){
  animation: fadeInUp 1.0s cubic-bezier(.17,.67,.3,.92) 6.0s forwards;
}

.is-loaded .c-sns{
	animation: fadeInUp 1.0s cubic-bezier(.17,.67,.3,.92) 6.2s forwards;
}

.is-loaded .c-share{
	animation: fadeInUp 1.0s cubic-bezier(.17,.67,.3,.92) 6.4s forwards;
}
*/