@font-face {
  font-family: 'Balsamiq Sans';
  font-display: swap;
  src: url('../files/balsamiq-sans-v3-latin-regular.woff2') format('woff2')
}

@font-face {
  font-family: 'Kosugi Maru';
  font-display: swap;
  src: url('../files/kosugi-maru-v6-latin_japanese-regular.woff2') format('woff2')
}

body {
  background: #ccc url(../img/bg.png);
  box-sizing: border-box;
  color: #333;
  font-size: 16px;
  font-family: 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'メイリオ', 'Meiryo', 'ＭＳ Ｐゴシック', "MS PGothic", sans-serif;
  margin: 0;
  overflow-x: hidden;
  padding: 0;
  transform: rotate(0.03deg);
}

img {
  border: none;
  height: auto;
  max-width: 100%;
  width /***/:auto;
}

ul {
  margin: 0;
  padding: 0;
}

li {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.loader-bg {
  animation: load 2s linear 0s forwards;
  background: #09c;
  position: absolute;
  height: 100vh;
  top: 0;
  left: 0;
  overflow: hidden;
  position: fixed;
  width: 100%;
  z-index: 9999;
}

@keyframes load {
    0% { opacity: 1; height: 100vh; }
    70% { opacity: 1; height: 100vh; }
    100% { opacity: 0; height: 0; z-index:-1;}
}

.loading {
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  position: absolute;
  top: 50%;
}

.info {
  margin: 40px 0 40px 0;
  text-align: center;
}

.info ul {
  display: flex;
  justify-content: center;
  font-size: 120%;
  font-weight: bold;
  margin-top: 20px;
}

.info ul li {
  margin: 10px;
}

.info ul li a {
  border-radius: 5px;
  bottom: 3px;
  color: #fff;
  font-family: 'Kosugi Maru', sans-serif;
  left: -2px;
  letter-spacing: 4px;
  padding: 10px 20px 10px 20px;
  position: relative;
  text-decoration: none;
  transition: all .3s ease;
}

.info ul li:nth-child(1) a {
  background: #06f;
  border-bottom: 7px solid #039;
}

.info ul li:nth-child(2) a {
  background: #f36;
  border-bottom: 7px solid #c03;
}

.info ul li:nth-child(3) a {
  background: #6c9;
  border-bottom: 7px solid #396;
}

.info ul li:nth-child(1) a:hover {
  border-bottom: 2px solid #039;
  bottom: 0;
  left: 0;
}

.info ul li:nth-child(2) a:hover {
  border-bottom: 2px solid #c03;
  bottom: 0;
  left: 0;
}

.info ul li:nth-child(3) a:hover {
  border-bottom: 2px solid #396;
  bottom: 0;
  left: 0;
}

.caution {
  background: #fff;
  border-radius: 10px;
  margin: 0 auto;
  margin-top: 30px;
  padding :10px;
  text-align: left;
  width: 70%;
}

.caution h3 {
  color: #fff;
  background: #c00;
  margin-bottom: 20px;
  text-align :center;
}

.caution strong {
  color: #f60;
}

.caution .centering {
  text-align: center;
}

h2 {
  color: #fff;
  border-radius:  20px 30px 20px 30px;
  font-family: 'Balsamiq Sans' , cursive;
  margin:  0 auto;
  margin-top: 40px;
  letter-spacing: 5px;
  padding: 5px 10px 5px 10px;
  text-align: center;
  width: 50%;
}

.sub1 {
  background: #06c url(../img/image_manbow.png) no-repeat top right;
  text-shadow: 0 0 2px #000;
}

.sub2 {
  background: #f63 url(../img/image_vaira.png) no-repeat center right;
  text-shadow: 0 0 2px #000;
}

.visual {
  animation: move 5s infinite linear;
  background: url(../img/bg_visual.png) ;
  height: 300px;
  position: relative;
  text-align: center;
  width: 100%;
}

@keyframes move {
  0% { background-position: 0 }
  100% { background-position: -720px; }
}

.visual .logo img {
  max-height: 250px;
  position: relative;
  width: auto;
  z-index: 1;
}

.visual .atama {
  animation: image .3s ease infinite;
  bottom: 5px;
  left: 10%;
  position: absolute;
  z-index: 0;
}

@keyframes image {
  0% { bottom: 5px; }
  50% { bottom: 3px; transform: skewx(2deg); }
  100% { bottom: 5px; }
}

.visual .face {
  animation: face 3s ease 2s infinite;
  left: 100%;
  position: absolute;
  top: 10px;
  z-index: 0;
}

@keyframes face {
  0% { left: 100%; top: 10px; width: 0; }
  50% { left: 50%; top: 60%; width: 50px; transform: rotate(0deg); }
  100% { left: 0; width: 0; transform: rotate(364deg); }
}

.visual .mai {
  animation: mai1 7s ease 3s infinite,mai2 4s linear 3s infinite;
  top: 20px;
  position: absolute;
  opacity: 0;
  right: 0;
  z-index: 0;
}

@keyframes mai1 {
  0% { right: 0; opacity: 0;}
  50% { right: 10%; opacity: 1; }
  70% { right: 10%; opacity: 1; }
  80% { right: 0; opacity: 0;  }
  100% { right: 0; opacity: 0; }
}

@keyframes mai2 {
  0% { top: 20px; }
  50% { top: 40px; }
  100% { top: 20px; }
}

.youtube {
  background: #000;
  margin: 0 auto;
  max-width: 720px;
  width: 80%;
}
.youtube a{
  border: 2px solid #fff;
  display: block;
  position: relative;
  transition: all .3s ease;
}

.youtube a:hover{
  opacity: .6
}

.youtube a::before{
  background: url(../img/youtube.png) center center / 100px 70px no-repeat;
  content:"";
  display: block;
  width: 100%;
  height: 64px;
  margin: -32px auto 0;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  z-index: 1;
}

.youtube a img {
  width: 100%;
}

.story {
  background: rgba(0,153,204,0.7);
  border-radius: 10px;
  color: #fff;
  font-family: 'Kosugi Maru', sans-serif;
  margin: 0 auto;
  margin-top: 40px;
  line-height: 2;
  padding: 30px;
  text-align: center;
  width: 80%;
}

.story strong {
  color: #ff6;
  font-size: 120%;
}

.chara {
  background: rgba(255,102,51,0.7);
  border-radius: 10px;
  color: #fff;
  font-family: 'Kosugi Maru', sans-serif;
  margin: 0 auto;
  margin-top: 40px;
  padding: 30px;
  width: 80%;
}

.chara ul {
  align-items: center;
  display: flex;
  flex-wrap :wrap;
  justify-content: center;
  margin-bottom: 20px;
}

.chara ul li h4 {
  color: #f63;
  font-size: 120%;
  margin-bottom: 20px;
}

.chara ul li h4 span {
  background: #fff;
  border-radius: 30px;
  padding: 5px 10px 5px 10px;
}

.chara ul li:nth-child(1) {
  padding: 10px;
  text-align: center;
  width: 35%;
}

.chara ul li:nth-child(2) {
  padding: 10px;
  width: 60%;
}


footer {
  color: #fff;
  background: url(../img/bg_footer.png) repeat-x;
  font-weight: bold;
  margin-top: 40px;
  height: 69px;
  padding-top: 40px;
  text-align: center;
  width: 100%;
}

footer a {
  color: #9ff;
}

@media screen and (max-width: 1024px){

body {
  font-size: 14px;
}

h2 {
  width: 80%;
}

.info ul {
  display: block;
}

.info ul li {
  margin: 0 auto;
  margin-top: 30px;
}

.info ul li a {
  display :block;
  margin: 0 auto;
  width: 50%;
}

.story,
.chara {
  width: 95%;
}

}

@media screen and (max-width: 768px){

.info ul li a {
  display :block;
  margin: 0 auto;
  width: 70%;
}

.chara ul {
  display :block;
}

.chara ul li:nth-child(1),
.chara ul li:nth-child(2) {
  margin: 0 auto;
  width: 95%;
}

.youtube a::before{
  background: url(../img/youtube.png) center center / 50px 35px no-repeat;
  content:"";
  display: block;
  width: 100%;
  height: 35px;
  margin: -15px auto 0;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  z-index: 1;
}

}


