@charset "utf-8";
/*----------リセット-------------*/

html {
  width: 100%;
  overflow-x: hidden;
  /*font-size: calc(1 / 750 * 100vw);*/
	font-size: 0.1337vw;
}

body {
	color:#fff;
	font-family:YakuHanJP_Noto, 'Noto Sans JP', sans-serif,"メイリオ","Meiryo",verdana,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,"ＭＳ Ｐゴシック","MS PGothic",Sans-Serif;
	 -webkit-text-size-adjust: none;
	background-color:#b094c4;
	width:100%;
	height:100%;
}

a{
	text-decoration:none;
	color:#fff;
}

img{
	margin: 0;
	padding: 0;
	vertical-align:bottom;
	width: 100%;
}	

/*--------------------------------------
loading
----------------------------------------*/
.layout-loading{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:#b094c4;
	z-index:9000;
	display:-ms-flexbox;
	display:flex;
	-ms-flex-pack:center;
	justify-content:center;
	-ms-flex-align:center;
	align-items:center;
	transition:.2s cubic-bezier(.39,.575,.565,1);
}

.layout-loading .loader{
	width:46px;
	height:46px;
	border-radius:100%;
	position:relative;
	border:6px solid #613595;
}

.layout-loading .loader:before{
	width:54px;
	height:54px;
	border-radius:100%;
	position:absolute;
	top:-4px;
	left:-4px;
	display:block;
	content:'';
	background:linear-gradient(to right,#f1dceb 0,rgba(220,117,151,0) 90%);
	transform:translateZ(0);
	animation:spin 2.0s infinite linear;
}

.layout-loading .loader:after{
	width:46px;
	height:46px;
	border-radius:100%;
	position:absolute;
	top:0;
	left:0;
	display:block;
	content:'';
	background:#b094c4;
}

@keyframes spin{
	0%{
		transform:rotate(0deg);
	}
	100%{
		transform:rotate(360deg);
	}
}

.is_loaded .layout-loading{
	opacity:0;
	visibility:hidden;
}

/*--------------------------------------
menu
----------------------------------------*/

#navi_toggle{
	width:90rem;
	height:90rem;
	background-color:#97609a;
	box-sizing:border-box;
	border-radius:0 0 0 10rem;
	position:fixed;
	z-index:6000;
	right:0;
	top:0;
	transition:all 0.6s;
	right: -100rem;
}

#navi_toggle.slideIn{
	right: 0;
}

#navi_toggle span{
	position:absolute;
	left:0;
	right:0;
	margin:auto;
	width:50rem;
	height:3rem;
	background-color:#fff;
	transition:all 0.6s;
}

#navi_toggle span:nth-child(1){
	top:28rem;
}

#navi_toggle span:nth-child(2){
	top:calc(50% - 1.5rem);
}

#navi_toggle span:nth-child(3){
	bottom:28rem;
}

.open #navi_toggle{
	background-color:#b094c4;
}


.open #navi_toggle span{
	width:60rem;
}
.open #navi_toggle span:nth-child(1){
	transform:translateY(15rem) rotate(-25deg);
}

.open #navi_toggle span:nth-child(2){
	opacity:0;
}

.open #navi_toggle span:nth-child(3){
	transform:translateY(-15rem) rotate(25deg);
}

#menu{
	width:100%;
  opacity: 0;
	right: -100vw;
	position: fixed;
	top:0;
	height:100%;
	background-color:#97609a;
	z-index:5000;
	-webkit-transition: all .8s ease;
	 transition: all .8s ease;
}

#sidebar_inner{
	width:100%;
	height:100%;
	position:relative;
	overflow-y: auto;
	overflow-x:hidden;
	-webkit-overflow-scrolling: touch;
}

.open {
	overflow: hidden;
}

.open #menu{
  opacity: 1.0;
	-webkit-transform: translate3d(-100vw,0,0);
	transform: translate3d(-100vw,0,0);
}

#menu ul li:hover{
	cursor:pointer;
}

#navi{
	width:60%;
	margin:0 auto;
	padding:300rem 0 10%;
}

#navi ul{
	width:100%;
}

#navi ul li{
	width:270rem;
	margin:0 auto 80rem;
}

/*--------------------------------------
main
----------------------------------------*/
#main {
	width:100%;
	height:1110rem;
	overflow:hidden;
	position:relative;
	background-color:#553368;
}

#main ul.bg{
	width:100%;
	height:1110rem;
	overflow:hidden;
	position:relative;
	z-index:1;
}

#main ul.bg li{
	width:100%;
	height:1110rem;
	position:absolute;
	left:0;
	top:0;
}

#main ul.bg li:nth-child(1){
	background: url(../images/bg1.png) no-repeat center center;
	background-size:cover;
}

#main ul.bg li:nth-child(2){
	background: url(../images/bg2.png) no-repeat center center;
	background-size:cover;
}

#main ul.bg li:nth-child(3){
	background: url(../images/bg3.png) no-repeat center center;
	background-size:cover;
}

#main ul.bg li:nth-child(4){
	background: url(../images/bg4.png) no-repeat center center;
	background-size:cover;
}

/*--------------------------------------
scroll
----------------------------------------*/
#scroll {
  width: 100%;
	height:1110rem;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 6;
}

#scroll_img {
  width: 100%;
	height:1110rem;
  background: url(../images/human.png) top center repeat-y;
  background-size: 100% auto;
	animation: bgscroll 20s infinite linear;
}

@keyframes bgscroll {
  0% {
    background-position-y: 0;
  }
  100% {
    background-position-y: -1110rem;
  }
}

#main ul.laurel { 
	width:82.6%;
  justify-content: space-between;
  align-items: start;
	display: flex;
	flex-wrap: wrap;
	position:absolute;
	left:0;
	right:0;
	top:20rem;
	margin:auto;
	z-index:20;
}

#main ul.laurel li:nth-child(1){ 
	width:94rem;
}

#main ul.laurel li:nth-child(2){ 
	width:65rem;
}

#main ul.laurel li:nth-child(3){ 
	width:89rem;
}

#main ul.laurel li:nth-child(4){ 
	width:73rem;
}

#main ul.laurel li:nth-child(5){ 
	width:77rem;
}

#main h1{ 
	width:91.46%;
	height:90rem;
	position:absolute;
	left:0;
	right:0;
	top:110rem;
	margin:auto;
	z-index:20;
}

#main h1 ul{ 
	width:100%;
	height:90rem;
	position:relative;
}

#main h1 ul li{
	width:100%;
	height:90rem;
	position:absolute;
	left:0;
	top:0;
}

#main #army{
	width:550rem;
	height:900rem;
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	margin:auto;
	z-index:10;
}

#main #date{
	width:450rem;
	position:absolute;
	left:0;
	right:0;
	bottom:120rem;
	margin:auto;
	z-index:20;
}

#main #btsarmy{
	width:450rem;
	position:absolute;
	left:0;
	right:0;
	bottom:90rem;
	margin:auto;
	z-index:20;
}

#main #credit{
	width:450rem;
	position:absolute;
	left:0;
	right:0;
	bottom:50rem;
	margin:auto;
	z-index:20;
}

#container {
	width: 88%;
	padding:120rem 0 90rem;
	margin:0 auto;
	position:relative;
}

/*--------------------------------------
news
----------------------------------------*/
#news{
	width:100%;
	margin:0 auto;
	position:relative;
	padding:20rem 0 100rem;
}

#news h2{
	width:300rem;
	margin:0 auto;
	position:relative;
}

#news-area{
	width:100%;
	position:relative;
	color:#fff;
	font-weight:500;
	font-size:24rem;
	line-height:1.4;
}

#news ul{
	width:100%;
	margin:50rem auto 0;
	position:relative;
	color:#fff;
	font-weight:500;
	font-size:24rem;
	line-height:1.4;
}

#news ul li{
	width:100%;
	border-bottom:2rem solid #fff;
	margin-bottom:20rem;
	padding-bottom:20rem;
}

#news ul li a{
	display:block;
	width:100%;
	color:#fff;
}


/*--------------------------------------
trailer
----------------------------------------*/
#trailer{
	width:100%;
	margin:0 auto;
	position:relative;
	padding:20rem 0 100rem;
}

#trailer h2{
	width:300rem;
	margin:0 auto;
	position:relative;
}

#trailer #movie {
  position: relative;
  width: 100%;
	margin:50rem auto 0;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

#trailer #movie iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*--------------------------------------
ticket
----------------------------------------*/
#ticket{
	width:100%;
	margin:0 auto;
	position:relative;
	padding:20rem 0 150rem;
}

#ticket h2{
	width:300rem;
	margin:0 auto;
	position:relative;
}

#ticket #same_day{
	width:100%;
	height:80rem;
	margin:60rem auto 0;
	position:relative;
	background-color:#fff;
	border-radius:10rem;
	box-sizing:border-box;
  justify-content: center;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
	color:#97609a;
	font-size:34rem;
	font-weight:700;
}

#ticket p {
	margin:50rem auto 0;
	text-align:center;
	font-size:32rem;
}

#ticket p b{
	font-size:50rem;
	font-weight:700;
	letter-spacing:2rem;
	margin-right:10rem;
}

#ticket p span{
	font-size:26rem;
}

#ticket .caution{
	margin-top:20rem;
	text-align:center;
	padding:0;
}

#ticket .caution p{
	display:inline-block;
	font-size:20rem;
	line-height:1.5;
	position:relative;
  padding-left: 1.5em;
  text-indent: -1.5em;
	text-align:left;
	margin:0;
}

#ticket .caution p::before {
  content: "※";
  color: black;
  margin-right: 0.2em;
  position: relative;
	color:#fff;
}

#ico_x{
	width:80rem;
	height:80rem;
	margin:0 auto;
	position:relative;
  justify-content: center;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
}

#ico_x:before{
	width:80rem;
	height:80rem;
	border-radius:40rem;
	position:absolute;
	top:0;
	left:0;
	content:'';
	background:#97609a;
	z-index:1;
}

#ico_x a{
	display:block;
	width:80rem;
	height:80rem;
	margin:0 auto;
	position:relative;
  justify-content: center;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
	z-index:10;
}

#ico_x a img{
	width:30rem;
	height:30rem;
	position:relative;
	z-index:10;
}

/*--------------------------------------
footer
----------------------------------------*/
#footer{
	width:100%;
	background-color:#97609a;
	position:relative;
	padding:50rem 0;
}

#copyright ul{
	width: 550rem;
	margin:0 auto;
	position:relative;
  justify-content: space-between;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
}

#copyright ul li:nth-child(1){
	width: 35rem;
}

#copyright ul li:nth-child(2){
	font-size:20rem;
	letter-spacing:0.5rem;
}


#footer_link ul{
	width: 370rem;
	position:relative;
	margin:40rem auto 0;
  justify-content: space-between;
  align-items: center;
	display: flex;
	flex-wrap: wrap;
}

#footer_link ul li a{
	font-size:20rem;
	color:#fff;
	text-decoration:none;
	letter-spacing:0.5rem;
}

#footer_link ul li:nth-child(1){
	border-right:2rem solid;
	border-image: linear-gradient(to bottom, #97609a 10%, #fff 10%, #fff 100%, #97609a 100%) 1;
	padding:0 20rem;
}

#footer_link ul li:nth-child(2){
	padding:0 20rem;
}

/*--------------------------------------
animation
----------------------------------------*/

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fade {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes blur {
  0% {
    filter: blur(40px);
  }
  100% {
    filter: blur(0);
  }
}

@keyframes zoomOut {
  from {
    opacity: 0;
    transform:scale(1.1) translateY(40px);
  }
  to {
    opacity: 1;
    transform:scale(1.0) translateY(0);
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform:scale(0.9);
  }
  to {
    opacity: 1;
    transform:scale(1.0);
  }
}

@keyframes fadeInUp {
	0% { transform: translateY(40px) ; opacity:0;}
	100% { transform: translateY(0) ; opacity:1;}
}

@keyframes fadeInDown {
	0% { transform: translateY(-100px) ; opacity:0;}
	100% { transform: translateY(0) ; opacity:1;}
}

@keyframes slideRight {
	0% { transform: translateX(150px) ; opacity:0;}
	100% { transform: translateX(0) ; opacity:1;}
}

@keyframes slideDown {
	0% { transform: translateY(-100px) ; opacity:0;}
	100% { transform: translateY(0) ; opacity:1;}
}


ul.laurel li,
#date,
#btsarmy,
#credit,
#army,
#logo ul li,
#main ul.bg li{
	opacity:0;
}

.is_loaded #main ul.bg li:nth-child(1){
  animation: fade 5.0s cubic-bezier(.17,.62,.17,.92) 0.2s infinite;
}

.is_loaded #main ul.bg li:nth-child(2){
  animation: fade 4.0s cubic-bezier(.17,.62,.17,.92) 0.4s infinite;
}

.is_loaded #main ul.bg li:nth-child(3){
  animation: fade 5.4s cubic-bezier(.17,.62,.17,.92) 0.6s infinite;
}

.is_loaded #main ul.bg li:nth-child(4){
  animation: fade 4.6s cubic-bezier(.17,.62,.17,.92) 0.8s infinite;
}

.is_loaded #logo ul li:nth-child(1){
  animation: zoomOut 2.0s cubic-bezier(.17,.62,.17,.92) 1.0s forwards;
}

.is_loaded #logo ul li:nth-child(2){
  animation: zoomOut 2.0s cubic-bezier(.17,.62,.17,.92) 1.2s forwards;
}

.is_loaded #logo ul li:nth-child(3){
  animation: zoomOut 2.0s cubic-bezier(.17,.62,.17,.92) 1.4s forwards;
}

.is_loaded #logo ul li:nth-child(4){
  animation: zoomOut 2.0s cubic-bezier(.17,.62,.17,.92) 1.6s forwards;
}

.is_loaded #logo ul li:nth-child(5){
  animation: zoomOut 2.0s cubic-bezier(.17,.62,.17,.92) 1.8s forwards;
}

.is_loaded #army{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 0.6s forwards;
}

.is_loaded #date{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 2.4s forwards;
}

.is_loaded #btsarmy{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 2.6s forwards;
}

.is_loaded #credit{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 2.8s forwards;
}

.is_loaded ul.laurel li:nth-child(1){
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 2.0s forwards;
}

.is_loaded ul.laurel li:nth-child(2){
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 2.1s forwards;
}

.is_loaded ul.laurel li:nth-child(3){
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 2.2s forwards;
}

.is_loaded ul.laurel li:nth-child(4){
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 2.3s forwards;
}

.is_loaded ul.laurel li:nth-child(5){
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 2.4s forwards;
}

#news h2,
#news #news-area{
	opacity:0;
}

#news.is_loaded h2{
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 0.6s forwards;
}

#news.is_loaded #news-area{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 1.0s forwards;
}

#trailer h2,
#trailer #movie{
	opacity:0;
}

#trailer.is_loaded h2{
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 0.6s forwards;
}

#trailer.is_loaded #movie{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 1.0s forwards;
}

#ticket .caution,
#ticket h2,
#ticket #same_day,
#ticket .price{
	opacity:0;
}

#ticket.is_loaded h2{
  animation: zoomIn 1.6s cubic-bezier(.17,.62,.17,.92) 0.6s forwards;
}

#ticket.is_loaded #same_day{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 1.0s forwards;
}

#ticket.is_loaded .price{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 1.2s forwards;
}

#ticket.is_loaded .caution{
  animation: fadeInUp 1.6s cubic-bezier(.17,.62,.17,.92) 1.4s forwards;
}