@keyframes svg {
  0% {
    stroke-dashoffset: 2000;
    fill: transparent;
  }
  70% {
    fill: #fff;
  }
  100% {
    stroke-dashoffset: 0;
    fill: #fff;
  }
}
.pc {
  display: block;
}

.sp {
  display: none;
}

@keyframes svg2 {
  0% {
    stroke-dashoffset: 2000;
    fill: transparent;
  }
  70% {
    fill: #000;
  }
  100% {
    stroke-dashoffset: 0;
    fill: #000;
  }
}
@keyframes svg3 {
  0% {
    stroke-dashoffset: 2000;
    fill: transparent;
  }
  70% {
    fill: #e60012;
  }
  100% {
    stroke-dashoffset: 0;
    fill: #e60012;
  }
}

.logos .st0 {
  fill: #0c0c0c;
}

@media (min-width: 769px) {
  .logos .st0 {
    fill: #fcfcfc;
  }
}

main h1 svg .st0, main h1 svg .st1 {
  fill: #0c0c0c;
}

@media (min-width: 769px) {
  main h1 svg .st0, main h1 svg .st1 {
    fill: #fcfcfc;
  }
}


#news-area .h2-news svg, #beginners-area h2 svg, #about-area h2 svg {
  height: 90px;
  overflow: visible;
}
#news-area .h2-news .st0, #news-area .h2-news .st1, #beginners-area h2 .st0, #beginners-area h2 .st1, #about-area h2 .st0, #about-area h2 .st1 {
  stroke: transparent;
  fill: transparent;
}
#news-area .h2-news.fade-on .st0, #news-area .h2-news.fade-on .st1, #beginners-area h2.fade-on .st0, #beginners-area h2.fade-on .st1, #about-area h2.fade-on .st0, #about-area h2.fade-on .st1 {
  stroke-dasharray: 2000;
  stroke-dashoffset: 0;
  stroke-width: 0.5;
  stroke: #fff;
  stroke-dashoffset: 2000;
  animation: svg 1.75s forwards ease-in-out;
}

#story-area h2 svg, #character-area h2 svg, #feature-area h2 svg, #howto-area h2 svg, #ticket-area h2 svg, #location-area h2 svg {
  height: 90px;
  overflow: visible;
}
#story-area h2 .st0, #story-area h2 .st1, #character-area h2 .st0, #character-area h2 .st1, #feature-area h2 .st0, #feature-area h2 .st1, #howto-area h2 .st0, #howto-area h2 .st1, #ticket-area h2 .st0, #ticket-area h2 .st1, #location-area h2 .st0, #location-area h2 .st1 {
  stroke: transparent;
  fill: transparent;
}
#story-area h2.fade-on .st0, #story-area h2.fade-on .st1, #character-area h2.fade-on .st0, #character-area h2.fade-on .st1, #feature-area h2.fade-on .st0, #feature-area h2.fade-on .st1, #howto-area h2.fade-on .st0, #howto-area h2.fade-on .st1, #ticket-area h2.fade-on .st0, #ticket-area h2.fade-on .st1, #location-area h2.fade-on .st0, #location-area h2.fade-on .st1 {
  stroke-dasharray: 2000;
  stroke-dashoffset: 0;
  stroke-width: 0.5;
  stroke: #000;
  stroke-dashoffset: 2000;
  animation: svg2 1.75s forwards ease-in-out;
}

body {
  display: none;
}
body.in {
  display: block;
}

#op {
  display: none;
}
#op .pc .op-txt {
  opacity: 0;
}
#op .pc .op-txt.none {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: all 0.5s;
}
#op .pc .op-txt p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#op .pc .op-txt p .st0, #op .pc .op-txt p .st1 {
  fill: #fcfcfc;
}
#op .pc .op-txt.txt01 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
  opacity: 1;
}
#op .pc .op-txt.txt01 p {
  width: 826px;
  height: 151px;
}
#op .pc .op-txt.txt01.fade {
  opacity: 0;
}
#op .pc .op-txt.txt02 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt02 p {
  width: 1104px;
  height: 151px;
}
#op .pc .op-txt.txt03 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt03 p {
  width: 888px;
  height: 157px;
}
#op .pc .op-txt.txt04 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt04 p {
  width: 958px;
  height: 151px;
}
#op .pc .op-txt.txt04 p svg .st0 {
  fill: #fff;
}
#op .pc .op-txt.txt05 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt05 p {
  width: 674px;
  height: 212px;
  top: 45%;
}
#op .pc .op-txt.txt06 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt06 p {
  width: 1097px;
  height: 154px;
}
#op .pc .op-txt.txt07 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt07 p {
  width: 896px;
  height: 151px;
}
#op .pc .op-txt.txt08 {
  background: #0c0c0c;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt08 p {
  width: 872px;
  height: 153px;
}
#op .pc .op-txt.txt09 {
  background: #fcfcfc;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 9999;
}
#op .pc .op-txt.txt09 p {
  width: 988px;
  height: 153px;
}
#op .pc .op-txt.txt09 p .st0, #op .pc .op-txt.txt09 p .st1 {
  fill: #0c0c0c;
}
#op .pc .op-txt.show {
  opacity: 1;
}
#op .pc .op-txt.fade {
  opacity: 0;
  transition: all 0.5s;
  pointer-events: none;
}
#op .pc .skip {
  position: fixed;
  bottom: 50px;
  z-index: 9999;
  right: 0;
  width: 161px;
}
#op .pc .skip.fade {
  opacity: 0;
  transition: all 0.5s;
  pointer-events: none;
}
#op .pc .skip .st0 {
  fill: #EEEEEE;
}
#op .pc .skip .st1 {
  fill: #000000;
}
#op .skip {
  cursor: pointer;
}

#news-area .read h2 .st0, #news-area .read h2 .st1 {
  stroke: transparent;
  fill: transparent;
}
#news-area .read h2.fade-on .st0, #news-area .read h2.fade-on .st1 {
  stroke-dasharray: 2000;
  stroke-dashoffset: 0;
  stroke-width: 0.5;
  stroke: #e60012;
  stroke-dashoffset: 2000;
  animation: svg3 1.75s forwards ease-in-out;
}

.gnavi {
  opacity: 0;
  pointer-events: none;
  top: -10%;
  transition: all 0.5s;
}
.gnavi.is-fixed {
  position: fixed;
  top: 0;
  opacity: 1;
  pointer-events: auto;
  transition: all 0.5s;
}

#header {
  opacity: 0;
  pointer-events: none;
  top: -10%;
  transition: all 0.5s;
}
#header.is-fixed {
  position: fixed;
  top: 0;
  opacity: 1;
  pointer-events: auto;
  transition: all 0.5s;
}

.follow-btn {
  right: -30%;
  transition: all 0.5s;
}
.follow-btn.is-fixed {
  right: 0;
  transition: all 0.5s;
}
.follow-btn.is-fixed.is-remove {
  right: -30%;
  transition: all 0.5s;
}

.gnavi .navi-contents .current a::before {
  background: #e60012;
  display: block;
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  transform: scale(1, 1);
  transform-origin: center top;
  transition: transform 0.3s;
  width: 100%;
  height: 4px;
}

.bg-video.none {
  display: none;
}

@media (max-width: 1650px) {
  #op .pc .op-txt {
    opacity: 0;
  }
  #op .pc .op-txt.none {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: all 0.5s;
  }
  #op .pc .op-txt p {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  #op .pc .op-txt p .st0, #op .pc .op-txt p .st1 {
    fill: #fcfcfc;
  }
  #op .pc .op-txt.txt01 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
    opacity: 1;
  }
  #op .pc .op-txt.txt01 p {
    width: 73.9vw;
    height: auto;
  }
  #op .pc .op-txt.txt01.fade {
    opacity: 0;
  }
  #op .pc .op-txt.txt02 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt02 p {
    width: 98.8vw;
    height: 190px;
  }
  #op .pc .op-txt.txt03 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt03 p {
    width: 79.4vw;
    height: auto;
  }
  #op .pc .op-txt.txt04 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt04 p {
    width: 81.9vw;
    height: auto;
  }
  #op .pc .op-txt.txt05 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt05 p {
    width: 52.9vw;
    height: auto;
    top: 47%;
  }
  #op .pc .op-txt.txt06 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt06 p {
    width: 98.1vw;
    height: auto;
  }
  #op .pc .op-txt.txt07 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt07 p {
    width: 80.2vw;
    height: auto;
  }
  #op .pc .op-txt.txt08 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt08 p {
    width: 73.5vw;
    height: auto;
  }
  #op .pc .op-txt.txt09 {
    background: #fcfcfc;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .pc .op-txt.txt09 p {
    width: 84vw;
    height: auto;
  }
  #op .pc .op-txt.txt09 p .st0, #op .pc .op-txt.txt09 p .st1 {
    fill: #0c0c0c;
  }
  #op .pc .op-txt.show {
    opacity: 1;
  }
  #op .pc .op-txt.fade {
    opacity: 0;
    transition: all 0.5s;
    pointer-events: none;
  }
  #op .pc .skip {
    position: fixed;
    bottom: 50px;
    z-index: 9999;
    right: 0;
    width: 161px;
  }
  #op .pc .skip.fade {
    opacity: 0;
    transition: all 0.5s;
    pointer-events: none;
  }
  #op .pc .skip .st0 {
    fill: #EEEEEE;
  }
  #op .skip {
    cursor: pointer;
  }
}
@media (max-width: 768px) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  #news-area .h2-news svg, #beginners-area h2 svg, #about-area h2 svg {
    height: 172px;
    overflow: visible;
  }
  #news-area .h2-news .st0, #news-area .h2-news .st1, #beginners-area h2 .st0, #beginners-area h2 .st1, #about-area h2 .st0, #about-area h2 .st1 {
    stroke: transparent;
    fill: transparent;
  }
  #news-area .h2-news.fade-on .st0, #news-area .h2-news.fade-on .st1, #beginners-area h2.fade-on .st0, #beginners-area h2.fade-on .st1, #about-area h2.fade-on .st0, #about-area h2.fade-on .st1 {
    stroke-dasharray: 2000;
    stroke-dashoffset: 0;
    stroke-width: 0.5;
    stroke: #fff;
    stroke-dashoffset: 2000;
    animation: svg 1.75s forwards ease-in-out;
  }

  #story-area h2 svg, #character-area h2 svg, #feature-area h2 svg, #howto-area h2 svg, #ticket-area h2 svg, #location-area h2 svg {
    height: 172px;
    overflow: visible;
  }
  #story-area h2 .st0, #story-area h2 .st1, #character-area h2 .st0, #character-area h2 .st1, #feature-area h2 .st0, #feature-area h2 .st1, #howto-area h2 .st0, #howto-area h2 .st1, #ticket-area h2 .st0, #ticket-area h2 .st1, #location-area h2 .st0, #location-area h2 .st1 {
    stroke: transparent;
    fill: transparent;
  }
  #story-area h2.fade-on .st0, #story-area h2.fade-on .st1, #character-area h2.fade-on .st0, #character-area h2.fade-on .st1, #feature-area h2.fade-on .st0, #feature-area h2.fade-on .st1, #howto-area h2.fade-on .st0, #howto-area h2.fade-on .st1, #ticket-area h2.fade-on .st0, #ticket-area h2.fade-on .st1, #location-area h2.fade-on .st0, #location-area h2.fade-on .st1 {
    stroke-dasharray: 2000;
    stroke-dashoffset: 0;
    stroke-width: 0.5;
    stroke: #000;
    stroke-dashoffset: 2000;
    animation: svg2 1.75s forwards ease-in-out;
  }

  #op .sp .op-txt {
    opacity: 0;
  }
  #op .sp .op-txt.none {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: all 0.5s;
  }
  #op .sp .op-txt p {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  #op .sp .op-txt p .st0, #op .sp .op-txt p .st1 {
    fill: #fcfcfc;
  }
  #op .sp .op-txt.txt01 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
    opacity: 1;
  }
  #op .sp .op-txt.txt01 p {
    width: 97.9vw;
    height: auto;
  }
  #op .sp .op-txt.txt01.fade {
    opacity: 0;
  }
  #op .sp .op-txt.txt02 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt02 p {
    width: 98.3vw;
    height: auto;
  }
  #op .sp .op-txt.txt03 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt03 p {
    width: 95.5vw;
    height: auto;
  }
  #op .sp .op-txt.txt04 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt04 p {
    width: 95.8vw;
    height: auto;
  }
  #op .sp .op-txt.txt05 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt05 p {
    width: 96vw;
    height: auto;
    top: 45%;
  }
  #op .sp .op-txt.txt06 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt06 p {
    width: 96.2vw;
    height: auto;
  }
  #op .sp .op-txt.txt07 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt07 p {
    width: 97.7vw;
    height: auto;
  }
  #op .sp .op-txt.txt08 {
    background: #0c0c0c;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt08 p {
    width: 95.4vw;
    height: auto;
  }
  #op .sp .op-txt.txt09 {
    background: #fcfcfc;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  #op .sp .op-txt.txt09 p {
    width: 96.3vw;
    height: auto;
  }
  #op .sp .op-txt.txt09 p .st0, #op .sp .op-txt.txt09 p .st1 {
    fill: #0c0c0c;
  }
  #op .sp .op-txt.show {
    opacity: 1;
  }
  #op .sp .op-txt.fade {
    opacity: 0;
    transition: all 0.5s;
    pointer-events: none;
  }
  #op .sp .skip {
    position: fixed;
    bottom: 50px;
    z-index: 9999;
    right: 0;
    width: 260px;
  }
  #op .sp .skip.fade {
    opacity: 0;
    transition: all 0.5s;
    pointer-events: none;
  }
  #op .sp .skip .st0 {
    fill: #EEEEEE;
  }
  #op .sp .skip .st1 {
    fill: #000000;
  }

  .gnavi {
    opacity: 0;
    top: 0;
    pointer-events: none;
  }
  .gnavi .navi-contents {
    display: block;
    pointer-events: none;
  }
  .gnavi a {
    pointer-events: none;
  }
  .gnavi.is-fixed {
    position: fixed;
    top: 0;
    opacity: 0;
    pointer-events: auto;
    transition: all 0.5s;
  }
  .gnavi.is-fixed.active {
    opacity: 1;
  }
  .gnavi.is-fixed.active .navi-contents {
    pointer-events: auto;
  }
  .gnavi.is-fixed.active a {
    pointer-events: auto;
  }
  .gnavi.active {
    opacity: 1;
  }
  .gnavi.active .navi-contents {
    pointer-events: auto;
  }
  .gnavi.active a {
    pointer-events: auto;
  }

  .btn-menu.close {
    width: 134px;
    height: 134px;
    background: url(../images/btn-menu-close.jpg) no-repeat;
    background-size: 100%;
  }
  .btn-menu.close img {
    opacity: 0;
    transition: all 0.5s;
  }

  .follow-btn {
    right: -100%;
    transition: all 0.5s;
  }
  .follow-btn.is-fixed {
    right: 0;
    transition: all 0.5s;
  }
  .follow-btn.is-fixed.is-remove {
    right: -100%;
    transition: all 0.5s;
  }
}