@charset "UTF-8";
/* --------------------------------------------------
  mainvisual
-------------------------------------------------- */
#mainvisual {
  position: relative;
  width: 100%;
  overflow: hidden;
  opacity: 0;
  z-index: 1;
  padding-top: 80px; }
#mainvisual .cloud {
  bottom: 50px;
  left: 50%;
  width: 100px;
  height: auto;
  margin-left: -330px; }
#mainvisual #animation_container {
  max-width: 1022px;
  width: 100%;
  height: auto;
  margin: 0 auto; }
#mainvisual #animation_container canvas {
  width: 100%;
  height: auto;
  position: absolute;
  display: block;
  background-color: rgba(255, 255, 255, 0); }
#mainvisual #animation_container #dom_overlay_container {
  width: 100%;
  height: auto;
  pointer-events: none;
  overflow: hidden;
  position: absolute;
  left: 0px;
  top: 0px;
  display: block; }

#mainmoon-hide {
  position: absolute;
  z-index: 20;
  left: -3px;
  top: -3px;
  width: 147px;
  height: 147px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  background: url("/assets/imgs/common/bg.png") repeat top center; }

#mainmoon {
  position: absolute;
  display: block;
  z-index: 0;
  left: 50%;
  top: 250px;
  margin-left: -430px;
  width: 140px;
  height: 140px;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  background-color: #fff04e; }

@media screen and (min-width: 700px) and (max-width: 980px) {
  #mainvisual .cloud {
    display: none; }

  #mainmoon-hide {
    width: 207px;
    height: 207px; }

  #mainmoon {
    top: 90px;
    margin-left: -350px;
    width: 200px;
    height: 200px; } }
@media screen and (max-width: 699px) {
  #mainmoon-hide {
    width: 147px;
    height: 147px; }

  #mainmoon {
    top: 210px;
    margin-left: -310px;
    width: 140px;
    height: 140px; } }
@media screen and (max-width: 599px) {
  #mainvisual {
    padding-top: 100px; }

  #mainmoon-hide {
    width: 207px;
    height: 207px; }

  #mainmoon {
    top: -30px;
    margin-left: -250px;
    width: 200px;
    height: 200px; } }
@media (max-width: 350px) {
  #mainmoon-hide {
    width: 187px;
    height: 187px; }

  #mainmoon {
    top: -30px;
    margin-left: -230px;
    width: 180px;
    height: 180px; } }
/* --------------------------------------------------
  more
-------------------------------------------------- */
.more {
  overflow: hidden;
  width: 200px;
  height: 40px;
  border: 1px solid #aebcbb;
  margin: 0 auto;
  margin-top: 40px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  opacity: 0; }

.more a {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 100;
  text-align: center;
  line-height: 40px;
  color: #114756;
  font-family: "Viga", "Hiragino Kaku Gothic Pro", "YuGothic", "Yu Gothic", "游ゴシック", "メイリオ", "Meiryo", erdana, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", Sans-Serif;
  font-size: 14px; }
.more a span {
  margin-left: -14px; }

@media screen and (max-width: 599px) {
  .more {
    width: 90%;
    height: 36px;
    float: none;
    margin: 0 auto;
    margin-top: 20px;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px; }

  .more a {
    font-size: 12px;
    line-height: 36px; }
  .more a span {
    margin-left: -32px; } }
/* --------------------------------------------------
  works / apps / characterdesign
-------------------------------------------------- */
#works h2, #apps h2, #characterdesign h2 {
  display: inline-block; }
#works h2 span:after, #apps h2 span:after, #characterdesign h2 span:after {
  background-color: #114756;
  border-radius: 2px;
  content: "";
  display: block;
  height: 4px;
  margin-top: 2px; }

#works {
  margin-top: 80px; }
#works .cloud {
  top: -40px;
  right: 0px;
  width: 180px;
  height: auto; }

#apps, #characterdesign {
  margin-top: 120px; }

#characterdesign .box {
  width: 150px;
  padding-right: 16px; }
#characterdesign .box .thumb {
  height: 150px; }
#characterdesign .box .thumb img {
  width: 150px;
  height: 150px; }

@media screen and (min-width: 700px) and (max-width: 980px) {
  #works {
    margin-top: 40px; }
  #works .cloud {
    top: -25px;
    width: 140px;
    height: auto; }

  #apps, #characterdesign {
    margin-top: 40px; }

  #characterdesign .box {
    width: 97px;
    padding-right: 13px; }
  #characterdesign .box .thumb {
    height: 97px; }
  #characterdesign .box .thumb img {
    width: 97px;
    height: 97px; } }
@media screen and (max-width: 699px) {
  #works {
    margin-top: 40px; }

  #apps, #characterdesign {
    margin-top: 40px; }

  #characterdesign .box {
    width: 83px;
    padding-right: 10px; }
  #characterdesign .box .thumb {
    height: 83px; }
  #characterdesign .box .thumb img {
    width: 83px;
    height: 83px; } }
@media screen and (max-width: 599px) {
  #apps, #characterdesign {
    margin-top: 60px; }

  #characterdesign .box {
    width: 93px; }
  #characterdesign .box .thumb {
    height: 93px; }
  #characterdesign .box .thumb img {
    width: 93px;
    height: 93px; }

  #works .cloud {
    top: 0px;
    right: 20px;
    width: 80px;
    height: auto; } }
@media (max-width: 350px) {
  #characterdesign .box {
    width: 80px; }
  #characterdesign .box .thumb {
    height: 80px; }
  #characterdesign .box .thumb img {
    width: 80px;
    height: 80px; }

  #works .cloud {
    width: 60px;
    height: auto; } }
/* --------------------------------------------------
  asobi
-------------------------------------------------- */
#asobi {
  padding-top: 80px;
  height: 488px;
  width: 100%;
  background: url("/assets/imgs/home/asobi.png") no-repeat center bottom;
  position: relative; }
#asobi a {
  position: absolute;
  left: 50%;
  display: block;
  background: url("/assets/imgs/home/asobi_enter-off.png") no-repeat center bottom;
  top: 438px;
  margin-left: -100px;
  width: 200px;
  height: 130px; }
@media screen and (min-width: 700px) and (max-width: 980px) {
  #asobi a {
    top: 288px;
    margin-left: -75px;
    width: 150px;
    height: 98px;
    background-size: 150px auto; } }
#asobi a:hover {
  background-image: url("/assets/imgs/home/asobi_enter-over.png"); }

#asobi.notenter {
  background: url("/assets/imgs/home/asobi-noenter.png") no-repeat center bottom; }

@media screen and (min-width: 700px) and (max-width: 980px) {
  #asobi, #asobi.notenter {
    padding-top: 20px;
    background-size: 600px auto;
    height: 366px; } }

@media screen and (max-width: 599px) {
  #asobi {
    padding-top: 10px; }
  #asobi a {
    top: 198px;
    margin-left: -50px;
    width: 100px;
    height: 65px;
    background-size: 100px auto; }

  #asobi, #asobi.notenter {
    padding-top: 20px;
    background-size: 400px auto;
    height: 244px; } }
/* --------------------------------------------------
  news
-------------------------------------------------- */
#news {
  width: 100%;
  background-color: #FFF;
  padding-bottom: 80px; }
#news h2 {
  padding-top: 80px;
  margin-bottom: 20px;
  font-size: 32px;
  color: #6fc7d0; }
#news h2 span {
  padding-bottom: 0px;
  border-bottom: none; }
#news li {
  width: 100%;
  display: block;
  /*border-bottom: dashed 1px $color-light;*/
  background-image: linear-gradient(to right, #1b8793, #1b8793 1px, rgba(0, 0, 0, 0) 1px, rgba(0, 0, 0, 0) 4px);
  background-size: 5px 1px;
  background-position: bottom;
  background-repeat: repeat-x; }
#news li a {
  width: 100%;
  display: block;
  padding-top: 20px;
  padding-bottom: 10px; }
#news li a:hover p {
  color: #78cbd3;
  transition: color 0.2s; }
#news li div {
  color: #6fc7d0;
  font-family: "Viga", "Hiragino Kaku Gothic Pro", "YuGothic", "Yu Gothic", "游ゴシック", "メイリオ", "Meiryo", erdana, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", Sans-Serif;
  font-size: 14px;
  float: left;
  width: 90px; }
#news li p {
  color: #114756;
  font-size: 14px;
  transition: color 0.2s; }

@media screen and (min-width: 700px) and (max-width: 980px) {
  #news {
    padding-bottom: 60px; }
  #news h2 {
    padding-top: 60px;
    margin-bottom: 0px; } }
@media screen and (max-width: 599px) {
  #news {
    padding-bottom: 40px; }
  #news h2 {
    padding-top: 40px;
    margin-bottom: 0px;
    font-size: 24px; }
  #news h2 span {
    padding-bottom: 0px; }
  #news li {
    width: 90%;
    margin: 0 auto; }
  #news li a {
    padding-top: 10px; }
  #news li div {
    font-size: 12px;
    float: none;
    width: 100%;
    padding-bottom: 6px; }
  #news li p {
    font-size: 14px;
    float: none; } }
/* --------------------------------------------------
  contact
-------------------------------------------------- */
#contact {
  width: 100%;
  background: url("/assets/imgs/common/bg.png") repeat top center;
  padding-bottom: 80px; }
#contact h2 {
  padding-top: 80px;
  margin-bottom: 20px;
  font-size: 32px;
  color: #f7f6f3; }
#contact h2 span {
  padding-bottom: 0px;
  border-bottom: none; }
#contact p {
  width: 100%;
  display: block;
  text-align: center;
  font-size: 18px;
  color: #f7f6f3; }
#contact .btn {
  overflow: hidden;
  width: 380px;
  height: 54px;
  margin: 0 auto;
  margin-top: 20px;
  background-color: #f7f6f3;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px; }
#contact .btn a {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 100;
  text-align: center;
  line-height: 54px;
  color: #6fc7d0;
  font-size: 18px;
  font-weight: bold; }
#contact .btn.pc::before, #contact .btn.pc::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: ''; }
#contact .btn.pc, #contact .btn.pc::before, #contact .btn.pc::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .2s;
  transition: all .2s; }
#contact .btn.pc {
  position: relative;
  z-index: 2; }
#contact .btn.pc:hover {
  background-color: #114756;
  color: #6fc7d0; }
#contact .btn.pc::before, #contact .btn.pc::after {
  top: 0;
  width: 50%;
  height: 100%;
  background-color: #f7f6f3; }
#contact .btn.pc::before {
  right: 0; }
#contact .btn.pc::after {
  left: 0; }
#contact .btn.pc:hover::before, #contact .btn.pc:hover::after {
  width: 0; }

@media screen and (min-width: 700px) and (max-width: 980px) {
  #contact {
    padding-bottom: 60px; }
  #contact h2 {
    padding-top: 60px; } }
@media screen and (max-width: 599px) {
  #contact {
    padding-bottom: 40px; }
  #contact h2 {
    padding-top: 40px;
    margin-bottom: 10px;
    font-size: 24px; }
  #contact h2 span {
    padding-bottom: 0px; }
  #contact p {
    width: 90%;
    margin: 0 auto;
    font-size: 14px;
    text-align: left;
    line-height: 1.4; }
  #contact p br {
    display: none; }
  #contact .btn {
    width: 90%;
    float: none;
    margin: 0 auto;
    margin-top: 20px; }
  #contact .btn a {
    font-size: 14px; } }
/* --------------------------------------------------
  swiper
-------------------------------------------------- */
.swiper-container {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 1; }

.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column; }

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box; }

.swiper-container-android .swiper-slide, .swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  -moz-transform: translate3d(0px, 0, 0);
  -o-transform: translate(0px, 0px);
  -ms-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0); }

.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex: 0 0 auto;
  flex-shrink: 0;
  position: relative; }

@media screen and (max-width: 599px) {
  .swiper-container {
    width: 90%; } }
