@charset "utf-8";

:root{
  --font-size: 10px;
  --font-size-ajust: 0.666;
  --width-contents: 500px;
  --max-width-modal: 500px;
  --min-width-modal: 500px;
  --animation--button--jump: -1.5rem;
  --pc-bg-display: block;
}
@media screen and (max-width: 900px) {
  :root{
    --font-size: calc(10 / 750 * 100vw);
    --font-size-ajust: 1;
    --width-contents: 100%;
    --max-width-modal: 100%;
    --min-width-modal: auto;
    --animation--button--jump: -1.5rem;
  }
}

html{
  font-size: var(--font-size);
  font-family: sans-serif;
}
img, video{
  width: 100%;
}
a{
  display: block;
}

section{
  position: relative;
}
.contents{
  width: var(--width-contents);
  margin: auto;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.inner{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.dn{
  display: none;
}
.db{
  display: block;
}



/* --------------------------------------------------

pc only

-------------------------------------------------- */
.pcBg{
  display: var(--width-contents);
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: url("../img/pc_bg.jpg") no-repeat center center / cover;
}
.pcBg .--inner{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.pcBg .--side{
  width: calc((100% - var(--width-contents)) / 2);
  height: 100%;
  position: fixed;
  top: 0;
  z-index: 1;
  display: flex;
}
.pcBg .--side.--left{ left: 0; }
.pcBg .--side.--right{ right: 0; }
.pcBg:before{
  content: "";
  display: block;
  width: calc(var(--width-contents) + 5px);
  height: 100%;
  margin: auto;
  background-color: #fff;
  position: relative;
  z-index: 5;
  box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.2);
}
.pcBg__sideArea{
  transition: 0.2s;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.pcBg__sideL img{
  width: 23vw;
  max-width: 402px;
}
.pcBg__sideR img{
  width: 23vw;
  max-width: 352px;
}
@media screen and (max-width: 1100px){
  .pcBg__sideArea{
    opacity: 0;
  }
}



/* --------------------------------------------------

common

-------------------------------------------------- */
h2{
  margin: 0 auto 0;
  position: relative;
  text-align: center;
}
h2 img{
  width: 88.933%;
}
.button-def{
  width: 84.266%;
  margin: auto;
  display: block;
}



/* --------------------------------------------------

animation

-------------------------------------------------- */
.animation_jump{
  display: block;
  animation: animation__jump 2.5s 1s ease infinite;
}
@keyframes animation__jump{
  0% { translate: 0 0; }
  7% { translate: 0 var(--animation--button--jump); }
  14% { translate: 0 0; }
  21% { translate: 0 var(--animation--button--jump); }
  28% { translate: 0 0; }
  100% { translate: 0 0; }
}

@keyframes animation-fade{
  0% { opacity: 0; }
  100% { transform: translate(0, 0); filter: blur(0); opacity: 1; }
}

.animation-stamp{
  display: block;
  animation: animation-stamp 0.5s ease both;
}
@keyframes animation-stamp{
  0% { transform: scale(1.2, 1.2); opacity: 0; }
  100% { transform: scale(1, 1); opacity: 1; }
}

.animation-blur{
  display: block;
  animation: animation-stamp 0.5s ease both;
}
@keyframes animation-blur{
  0% { opacity: 0; filter: blur(1rem); }
  100% { opacity: 1; filter: blur(0); }
}



/* --------------------------------------------------

top

-------------------------------------------------- */
.top-header{
  position: relative;
  background-color: #fee2a0;
  border-bottom: solid 0.4rem #492800;
  padding: 2.133% 0 1.333%;
}
.top-header-logo{
  margin-top: 1.6%;
}
.top-header-logo img:nth-child(1){
  width: 38.533%;
  margin-left: 2.933%;
}
.top-header-logo img:nth-child(2){
  width: 21.466%;
  margin-left: 2.4%;
}

.top-main-kv img{
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.top-main-kv-1{
  width: 33.066%;
  margin: 1.2% 0 0 41.2%;
  z-index: 10;
  transform: translate(-2rem, 0);
  animation: animation-fade 0.5s ease both;
}
.top-main-kv-2{
  width: 36.8%;
  margin: 1.6% 0 0 72.2%;
  z-index: 10;
  transform: translate(2rem, 0);
  animation: animation-fade 0.5s 0.1s ease both;
}
.top-main-kv-3{
  width: 65.733%;
  margin: 17% 0 0 34.2%;
  z-index: 11;
  transform: translate(0, 2rem);
  animation: animation-fade 0.5s 0.2s ease both;
}
.top-main-kv-4{
  width: 31.066%;
  margin: 51.4% 0 0 -3%;
  z-index: 10;
  transform: translate(-2rem, 0);
  animation: animation-fade 0.5s 0.3s ease both;
}

.top-header-play{
  width: 31.866%;
  position: absolute;
  bottom: 0;
  right: 0;
  margin: 1.333%;
}

.top-main{
  padding-bottom: 358.533%;
  background: url("../img/top/bg.jpg") no-repeat center bottom / 100% auto;
  position: relative;
}
.top-main:after{
  content: "";
  display: block;
  background: url("../img/top/deco_chara.png") no-repeat center top / 100% auto;
  width: 90.933%;
  padding-bottom: 28.266%;
  margin: 0 0 2% 6.8%;
  position: absolute;
  bottom: 0;
  left: 0;
}
.top-main-movie{
  width: 46.533%;
  margin: 4.266% 0 0 3.333%;
  padding-bottom: 54%;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.top-main-movie video{
  width: 96%;
  height: 96%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.top-main-movie:before{
  content: "";
  display: block;
  width: 94%;
  height: 94%;
  background: #000;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.top-main-movie:after{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url("../img/top/frame_thumb.png") no-repeat center top / 100% auto;
  position: absolute;
  top: 0;
  left: 0;
}
.top-game{
  position: relative;
  z-index: 20;
}
.top-game-title{
  width: 96.266%;
  margin: 5.866% auto 0;
  position: relative;
  z-index: 3;
}
.top-game-date{
  width: 91.333%;
  margin: 1.733% auto 0;
}
.top-game-text{
  width: 66.933%;
  margin: 3.466% auto 0;
}
.top-game-play{
  width: 87.733%;
  margin: 2.533% 8.266% 0 auto;
}
.top-game-share{
  width: 96.533%;
  margin: 4.133% auto 0;
}
.top-game-atn{
  width: 71.466%;
  margin: 1.066% auto 0;
}
.top-game-info{
  margin: 2.2% 0 0;
}
.top-check-text{
  width: 90.8%;
  margin: 3.6% auto 0;
}
.top-next{
  width: 4.666%;
  margin: 2.533% auto 0;
}
.top-next span{
  display: block;
  margin-bottom: 25%;
  opacity: 0.3;
}
.top-next span:nth-child(1){
  animation: animation-blink 3s 0s ease infinite;
}
.top-next span:nth-child(2){
  animation: animation-blink 3s 0.5s ease infinite;
}
.top-next span:nth-child(3){
  animation: animation-blink 3s 1s ease infinite;
}
@keyframes animation-blink{
  0% { opacity: 0.3; }
  45% { opacity: 0.3; }
  50% { opacity: 1; }
  95% { opacity: 1; }
  100% { opacity: 0.3; }
}



/* --------------------------------------------------

character

-------------------------------------------------- */
#character{
  position: relative;
}
#character:before{
  content: "";
  display: block;
  width: calc(100% + 4px);
  height: 102%;
  position: absolute;
  top: -2px;
  left: 0;
  background: #EAC775;
  background: linear-gradient(0deg,rgba(234, 199, 117, 1) 0%, rgba(234, 199, 117, 1) 40%, rgba(16, 196, 233, 1) 60%, rgba(16, 196, 233, 1) 100%);
}
.character-bg{
  padding-bottom: 305.866%;
  background: url("../img/character/bg.jpg") no-repeat center bottom / 100% auto;
  position: relative;
}
.character-title{
  margin-top: 8.4%;
}
.character-text1{
  width: 94.666%;
  margin: 6.4% auto 0;
}
.character-atn{
  width: 83.6%;
  margin: 4.266% auto 0;
}
.character-list{
  width: 97.6%;
  padding-bottom: 122.533%;
  margin: 4.666% auto 0;
  background: url("../img/character/frame.png") no-repeat center bottom / 100% auto;
  position: relative;
}
.character-text2{
  width: 89.733%;
  margin: 10.933% auto 0%
}
.character-play{
  margin-top: 6.933%;
}
.character-nav{
  margin-top: 9.016%;
}
.character-nav-row{
  display: flex;
  justify-content: center;
  margin-bottom: 3.688%;
  position: relative;
}
.character-nav-row span{
  display: block;
  width: 19.808%;
  margin: 0 1.775% 0;
  cursor: pointer;
  position: relative;
}
.character-nav-row span.active{
  cursor: initial;
}
.character-nav-row span.active:after{
  content: "";
  display: block;
  width: 115.068%;
  padding-bottom: 104.794%;
  background: url("../img/character/active.png") no-repeat center bottom / 100% auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.character-nav-row span.active:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.character-nav-01.active:before{ background: url("../img/character/nav01.png") no-repeat center top / 100% auto; }
.character-nav-02.active:before{ background: url("../img/character/nav02.png") no-repeat center top / 100% auto; }
.character-nav-03.active:before{ background: url("../img/character/nav03.png") no-repeat center top / 100% auto; }
.character-nav-04.active:before{ background: url("../img/character/nav04.png") no-repeat center top / 100% auto; }
.character-nav-05.active:before{ background: url("../img/character/nav05.png") no-repeat center top / 100% auto; }
.character-nav-06.active:before{ background: url("../img/character/nav06.png") no-repeat center top / 100% auto; }

.character-movie{
  width: 93.442%;
  margin: 5.327% auto 0;
  position: relative;
}
.character-movie:after{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  border: solid 0.3rem #492800;
}

.character-detail > div{
  display: none;
}
.character-detail > div.active{
  display: block;
}

.character-image, .character-name{
  opacity: 0;
}
.active .character-image{
  transform: translate(-3rem, 0);
  animation: animation-fade 0.5s ease both;
}
.active .character-name{
  animation: animation-stamp 0.5s 0.3s ease both;
}

.character-detail-01 .character-image{
  width: 38.797%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 -15% 5%;
}
.character-detail-01 .character-name{
  width: 37.704%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 9% 48%;
}

.character-detail-02 .character-image{
  width: 28.825%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 -10.245% 8.196%;
}
.character-detail-02 .character-name{
  width: 45.355%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 9% 43%;
}

.character-detail-03 .character-image{
  width: 28.142%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 -8.879% 18.398%;
}
.character-detail-03 .character-name{
  width: 26.912%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 9% 51.4%;
}

.character-detail-04 .character-image{
  width: 44.808%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 -9.836% 2%;
}
.character-detail-04 .character-name{
  width: 38.934%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 9% 48%;
}

.character-detail-05 .character-image{
  width: 26.912%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 -8.743% 15.163%;
}
.character-detail-05 .character-name{
  width: 37.431%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 9% 43.4%;
}

.character-detail-06 .character-image{
  width: 30.464%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 -9.972% 7.240%;
}
.character-detail-06 .character-name{
  width: 45.355%;
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 5.4% 42.6%;
}


/* --------------------------------------------------

character

-------------------------------------------------- */
.event-bg{
  padding-bottom: 440.266%;
  background: url("../img/event/bg.jpg") no-repeat center bottom / 100% auto;
}
.event-title{
  margin-top: 6%;
}
.event-title:before{
  content: "";
  display: block;
  width: 94.4%;
  padding-bottom: 28.266%;
  background: url("../img/event/deco_title.png") no-repeat center bottom / 100% auto;
  position: absolute;
  margin: -6% 0 0 2.666%;
}
.event-list{
  margin-top: 5.066%;
}
.event-list-02{
  margin-top: 2.4%;
  position: relative;
  padding-bottom: 138.533%;
  background: url("../img/event/list02_bg.png") no-repeat center bottom / 100% auto;
}
.event-list-02:after{
  content: "";
  display: block;
  width: 100%;
  padding-bottom: 112.666%;
  background: url("../img/event/list02_bg2.png") no-repeat center bottom / 100% auto;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto 13.066%;
  z-index: 2;
}
.event-list-02-stamp{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto 0;
  z-index: 1;
  width: calc(100% - 1px);
  overflow: hidden;
}
.event-list-02-stamp:after{
  content: "";
  display: block;
  width: 100%;
  padding-bottom: 0.4rem;
  background: #492800;
  position: absolute;
  bottom: 0;
  left: 0;
}
.event-list-02 video{
  width: calc(100% + 1px);
  filter: drop-shadow(0 0 #000);
}
.event-list-02 img{
  width: 92.666%;
  position: absolute;
  left: 0;
  right: 0;
  margin: 6.133% auto 0;
  z-index: 3;
}
.event-list-03{
  margin-top: 1.333%;
}
.event-list-04{
  margin-top: -0.533;
}
.event-list-05{
  margin-top: -1.6%;
}
.event-ilst-06{
  margin-top: -0.666%;
}




/* --------------------------------------------------

campaign

-------------------------------------------------- */
#campaign{
  position: relative;
}
#campaign:before{
  content: "";
  display: block;
  width: calc(100% + 4px);
  height: 102%;
  position: absolute;
  top: -2px;
  left: 0;
  background: #FEE2A0;
  background: linear-gradient(0deg,rgba(254, 226, 160, 1) 0%, rgba(254, 226, 160, 1) 40%, rgba(233, 113, 86, 1) 60%, rgba(233, 113, 86, 1) 100%);
}
.campaign-bg{
  padding-bottom: 345.2%;
  background: url("../img/campaign/bg.jpg") no-repeat center bottom / 100% auto;  
  position: relative;
}
.campaign-title{
  margin-top: 5.466%;
}
.campaign-title:before{
  content: "";
  display: block;
  width: 100%;
  padding-bottom: 41.866%;
  background: url("../img/campaign/deco_title.png") no-repeat center bottom / 100% auto;
  position: absolute;
  margin: -1.733% 0 0 0;
  z-index: 2;
}
.campaign-list{
  margin-top: 9.2%;
}
.campaign-list > div{
  width: 97.6%;
  margin: 0 auto 5.066%;
  position: relative;
}
.campaign-list > div:last-child{
  margin-bottom: 0;
}
.campaign-list a{
  display: block;
  width: 86.338%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto 10.655%;
}




/* --------------------------------------------------

footer

-------------------------------------------------- */
footer{
  background: #E6C166;
  background: linear-gradient(0deg,rgba(230, 193, 102, 1) 0%, rgba(230, 193, 102, 1) 70%, rgba(254, 226, 160, 1) 100%);
}
footer .content{
  padding-top: 3.333%;
}
.footer-info{
  position: relative;
}
.footer-info a{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto 10.933%;
}
.footer-pagetop{
  width: 19.2%;
  margin: -1.333% 0 0 auto;
  cursor: pointer;
}
.footer-sns{
  margin-top: 2.933%;
}
.footer-sns-text{
  width: 80%;
  margin: 0 auto 0;
}
.footer-sns-link{
  margin-top: 6%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.footer-sns a{
  width: 17.333%;
  margin: 0 2.8% 0;
}
.footer-spec{
  width: 88.666%;
  margin: 9.6% 0 0 3.733%;
}
.footer-notes{
  margin-top: 5.066%;
  cursor: pointer;
}
.footer-company{
  margin-top: 6.933%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.footer-company a{
  margin: 0 4.533% 0;
}
.company-privacy{
  width: 26.933%;
}
.company-contact{
  width: 17.2%;
}
.footer-copyright{
  margin-top: 4%;
}





/* --------------------------------------------------

scroll fade animation.

-------------------------------------------------- */
.js-fade{
  transform: translate(0, 4rem);
  opacity: 0;
}
.js-fade.--r2l{
  transform: translateX(4rem);
}
.js-fade.--l2r{
  transform: translateX(-4rem);
}
.js-fade.--blur{
  transform: translate(0, 0);
  filter: blur(1rem);
  opacity: 0;
}
.js-fade.is-visible{
  animation: animation-fade 0.5s ease both;
}




/* --------------------------------------------------

modal

-------------------------------------------------- */
.snlib--modal{
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.9);
  overflow: auto;
  display: none;
  opacity: 0;
  z-index: 99999;
}
.snlib--modal .modal__outWrap{
  display: table;
  width: 100%;
  height: 100%;
}
.snlib--modal .modal__inWrap{
  display: table-cell;
  width: 100%;
  height: 100%;
  margin: 0 auto 0;    
  padding: 5rem 0 5rem;
  text-align: center;
  vertical-align: middle;
}
.snlib--modal .modal__content{
  width: 93.333%;
  max-width: var(--max-width-modal);
  min-width: var(--min-width-modal);
  background-color: #fff;
  box-sizing: border-box;
  text-align: initial;
  margin: auto;
  position: relative;
  padding: 2rem;
}

/* minigame */
.---modal-minigame .modal__inWrap{
  padding: 10rem 0 16rem;
}
.---modal-minigame .modal__content{
  width: 94.4%;
  max-width: 394px;
  min-width: initial; 
  padding: 0;
  background-color: initial;
}
.---modal-minigame .modal__close_bottom{
  width: 34.943%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto -20%;
}

/* notes */
.---modal-notes .modal__inWrap{
  padding: 10rem 0 16rem;
}
.---modal-notes .modal__content{
  width: 94.4%;
  padding: 0;
  border: solid 0.6rem #e6c166;
  background-color: #000;
}
.---modal-notes .modal__close_bottom{
  width: 26.553%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto -17%;
}

.---modal-notes .modal__main{
  padding: 10% 7% 7%;
}
.note_title{
  width: 31.857%;
  margin: auto;
}
.note_text, .note_text a{
  font-size: calc(2.4rem * var(--font-size-ajust));
  line-height: calc(calc(2.4rem * var(--font-size-ajust)) * 1.5);
  margin-top: 10%;
  color: #fff;
}
.note_text li{
	line-height: 200%;
	padding-left: 1em;
	transform: rotate(0.03deg);
}
.note_text li:before {
	display: inline-block;
	content: "・";
	width: 1em;
	margin-left: -1em;
	color: #fff;
}
.note_text li.no_dot:not(.indent){
  padding-left: 0;
}
.note_text li.no_dot.indent{
  text-indent: -1em;
}
.note_text li.no_dot:before {
	display: inline-block;
	content: "";
	width: auto;
	margin-left: 0;
}
.note_text li.no_indent{
  padding-left: 0em;
}
.note_text li.tl{
	padding-left: 0;  
}
.note_text li.tl:before {
	display: inline-block;
	content: "";
	width: 0;
	margin-left: 0;
}
.note_text li .in li:before {
	display: inline-block;
	content: "";
	width: 0;
	margin-left: 0;
}
.note_text li.mg {
	margin:5% 0 0 ;
  padding-left: 0;
}
.note_text li.mg:first-child {
	margin:0 0 0 ;
}
.note_text li a{
	color: #ffd35d;
  display: inline;
}
.note_text li a:hover{
	color: #00B3FF;
}