@charset "UTF-8";
/* ==========================================================
  フォント
========================================================== */
/* ===================================================================
CSS information
 file name  :top.css
 style info :トップのスタイル
=================================================================== */
#visual {
  position: relative;
}
@media screen and (min-width: 751px) {
  #visual {
    background-image: -webkit-gradient(linear, left top, right top, from(#142324), to(#070c08));
    background-image: linear-gradient(90deg, #142324 0%, #070c08 100%);
  }
}
@media screen and (max-width: 750px) {
  #visual {
    background: url(../img/top/bg_main_sp.jpg) no-repeat center top/100% auto;
  }
}
@media screen and (min-width: 751px) {
  #visual:before {
    opacity: 0.4;
    content: "";
    display: block;
    background: url(../img/top/bg_main_dot.png) repeat 0 0/20px;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
  }
}
@media screen and (min-width: 751px) {
  #visual:after {
    content: "";
    display: block;
    background-image: url(../img/top/bg_main_pc.png);
    background-image: url(../img/top/bg_main_pc.webp);
    background-repeat: no-repeat;
    background-position: right calc(50% - 30vw) center;
    background-size: auto 100%;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
  }
}
@media screen and (min-width: 1801px) {
  #visual:after {
    background-position: right calc(50% - 24vw) center;
  }
}
#visual .inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
}
@media screen and (min-width: 751px) {
  #visual .inner {
    width: min(96%, 1260px);
    padding: min(1vw, 10px) 0 min(3vw, 40px);
  }
}
@media screen and (max-width: 750px) {
  #visual .inner {
    padding: 4vw 0;
  }
}
@media screen and (min-width: 751px) {
  #visual .inner .main {
    width: 50%;
  }
}
@media screen and (max-width: 750px) {
  #visual .inner .main {
    width: 90%;
    margin: 0 auto;
  }
}
@media screen and (max-width: 750px) {
  :lang(en) #visual .inner .main .txt01 {
    margin-bottom: 10vw;
  }
}
@media screen and (min-width: 751px) {
  #visual .inner .main .txt02 {
    width: min(74%, 451px);
    margin: max(-13vw, -170px) auto min(7vw, 90px);
  }
}
@media screen and (max-width: 750px) {
  #visual .inner .main .txt02 {
    width: 74%;
    margin: -24vw auto 24vw;
  }
}
@media screen and (min-width: 751px) {
  #visual .inner .main .logo {
    width: min(76%, 450px);
    margin: 0 auto min(4.5vw, 60px);
  }
}
@media screen and (max-width: 750px) {
  #visual .inner .main .logo {
    width: 76%;
    margin: 0 auto 32vw;
  }
}
@media screen and (max-width: 750px) {
  #visual .inner .main .movieArea {
    padding-top: 6vw;
  }
}
#visual .inner .main .movieArea ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 20px;
}
@media screen and (max-width: 750px) {
  #visual .inner .main .movieArea ul {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 4vw;
  }
}
#visual .inner .main .movieArea ul li figure {
  border-radius: 10px;
  background: -webkit-gradient(linear, left top, right top, from(#fff600), to(#3ab48b));
  background: linear-gradient(90deg, #fff600, #3ab48b);
  padding: 4px;
}
#visual .inner .main .movieArea ul li figure img {
  width: 100%;
  border-radius: 10px;
}
#visual .inner .main .movieArea ul li p {
  color: #fff600;
  font-size: 1rem;
  font-weight: 500;
  text-align: left;
  margin-top: 0.3rem;
}
@media screen and (max-width: 750px) {
  #visual .inner .main .movieArea ul li p {
    font-size: 3.3vw;
  }
}
#visual .bnrArea {
  z-index: 1;
}
@media screen and (min-width: 751px) {
  #visual .bnrArea {
    position: absolute;
    right: 2rem;
    bottom: 50px;
    width: min(30%, 450px);
  }
}
@media screen and (max-width: 750px) {
  #visual .bnrArea {
    position: relative;
    width: 80%;
    margin: 6vw auto 0;
  }
}
#visual .bnrArea .bnr a img {
  border-radius: 10px;
}

#about {
  position: relative;
}
#about:before {
  content: "";
  display: block;
  background: url(../img/top/bg_gradation.png) repeat-x 0 0/auto 100%;
  width: 100%;
  position: absolute;
  height: 50px;
  top: -50px;
}
#about:after {
  opacity: 0.2;
  content: "";
  display: block;
  background: url(../img/top/bg_dot.png) repeat 0 0;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 1;
}
@media screen and (min-width: 751px) {
  #about:after {
    background-size: 6px;
  }
}
@media screen and (max-width: 750px) {
  #about:after {
    background-size: 4px;
  }
}
#about .bg {
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  display: block;
  content: "";
  width: 100%;
  height: 100vh;
  position: sticky;
  position: -webkit-sticky;
  top: 0;
  left: 0;
  z-index: -1;
}
@media screen and (min-width: 751px) {
  #about .bg {
    background-image: url(../img/top/bg_content_pc.jpg);
  }
}
@media screen and (max-width: 750px) {
  #about .bg {
    background-image: url(../img/top/bg_content_sp.jpg);
  }
}
#about .inner {
  position: relative;
  z-index: 2;
  overflow: hidden;
  margin-top: -100vh;
}
@media screen and (min-width: 751px) {
  #about .inner {
    padding: min(8vw, 100px) 0 min(6vw, 80px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner {
    padding: 14vw 0 12vw;
  }
}
#about .inner h1 {
  position: relative;
  font-weight: 900;
  -webkit-filter: drop-shadow(0 0 0.2em rgb(0, 0, 0));
          filter: drop-shadow(0 0 0.2em rgb(0, 0, 0));
}
@media screen and (min-width: 751px) {
  #about .inner h1 {
    font-size: clamp(28px, 2.6vw, 34px);
    line-height: 1.4;
    margin-bottom: min(4vw, 50px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner h1 {
    font-size: 5.8vw;
    line-height: 1.75;
    margin-bottom: 6vw;
  }
}
#about .inner h1 span {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #fff), to(#d3f2be));
  background: linear-gradient(180deg, #fff 50%, #d3f2be 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
#about .inner h1 em {
  font-weight: 900;
}
@media screen and (min-width: 751px) {
  #about .inner h1 em {
    font-size: clamp(46px, 5.2vw, 66px);
  }
}
@media screen and (min-width: 751px) {
  #about .inner .main {
    width: min(70%, 875px);
    margin: 0 auto min(4vw, 40px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner .main {
    margin-bottom: 6vw;
  }
}
#about .inner .txt {
  position: relative;
  color: #d3f2be;
  font-weight: 700;
  -webkit-filter: drop-shadow(0 0 0.2em rgb(0, 0, 0));
          filter: drop-shadow(0 0 0.2em rgb(0, 0, 0));
}
@media screen and (min-width: 751px) {
  #about .inner .txt {
    font-size: clamp(18px, 1.8vw, 24px);
    margin-bottom: min(8vw, 100px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner .txt {
    font-size: 4vw;
    margin-bottom: 104vw;
  }
}
#about .inner .chara,
#about .inner .photo {
  position: absolute;
  z-index: 1;
}
@media screen and (min-width: 751px) {
  #about .inner .chara01 {
    width: min(26vw, 411px);
    left: calc(50% - min(49vw, 700px));
    top: min(28vw, 340px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner .chara01 {
    width: 56vw;
    left: 2vw;
    top: 128vw;
  }
}
@media screen and (min-width: 751px) {
  #about .inner .chara02 {
    width: min(17vw, 279px);
    right: calc(50% - min(45vw, 690px));
    top: min(32vw, 400px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner .chara02 {
    width: 36vw;
    right: 4vw;
    top: 136vw;
  }
}
@media screen and (min-width: 751px) {
  #about .inner .photo {
    width: min(21vw, 332px);
    right: calc(50% - min(45vw, 610px));
    top: min(59vw, 760px);
  }
}
@media screen and (max-width: 750px) {
  #about .inner .photo {
    width: 40vw;
    right: 4vw;
    top: 182vw;
  }
}
#about .bgSlide {
  position: relative;
  background: url(../img/top/img_slide.jpg) repeat-x 0 0/auto 100%;
  width: 100%;
}
@media screen and (min-width: 751px) {
  #about .bgSlide {
    height: 230px;
    -webkit-animation: visual-bg-pc 30s infinite linear;
            animation: visual-bg-pc 30s infinite linear;
  }
}
@media screen and (max-width: 750px) {
  #about .bgSlide {
    height: 50vw;
    -webkit-animation: visual-bg-sp 30s infinite linear;
            animation: visual-bg-sp 30s infinite linear;
  }
}
@-webkit-keyframes visual-bg-pc {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: -2044px;
  }
}
@keyframes visual-bg-pc {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: -2044px;
  }
}
@-webkit-keyframes visual-bg-sp {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: -444vw;
  }
}
@keyframes visual-bg-sp {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: -444vw;
  }
}
@media screen and (min-width: 751px) {
  #about .lastTxt {
    width: min(70%, 700px);
    margin: 80px auto 40px;
  }
}
@media screen and (max-width: 750px) {
  #about .lastTxt {
    width: 90%;
    margin: 26vw auto 16vw;
  }
}
@media screen and (min-width: 751px) {
  :lang(en) #about .lastTxt {
    width: min(70%, 687px);
  }
}