body, html{
  margin: 0%;
  padding: 0%;
  background-color: #f8f8f8;
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-family:'Montserrat', sans-serif;
  scroll-behavior: smooth;
}
::selection{
  background-color: #fcff56;
  color: #495465;
}
@font-face {
  font-family: "goodtimes";
  src: url(../fonts/GoodTimesRg-Regular.ttf);
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "goodtimes";
  src: url(../fonts/GoodTimesRg-Italic.ttf);
  font-weight: 500;
  font-style: italic;
}
@font-face {
  font-family: "goodtimes";
  src: url(../fonts/GoodTimesBold.ttf);
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "goodtimes";
  src: url(../fonts/GoodTimesBoldItalic.ttf);
  font-weight: 700;
  font-style: italic;
}
@font-face {
  font-family: "goodtimes";
  src: url(../fonts/GoodTimesHeavy.ttf);
  font-weight: 900;
  font-style: normal;
}
@font-face {
  font-family: "goodtimes";
  src: url(../fonts/GoodTimesHv-Italic.ttf);
  font-weight: 900;
  font-style: italic;
}
/* -----noise----- */
.noise::after {
  animation: noise 8s steps(10) infinite;
  background: url("../img/c-bg_noise.png");
  background-size: 8%;
  content: "";
  display: block;
  height: 100%;
  left: 0%;
  position: fixed;
  top: 0%;
  width: 100%;
  z-index: 20000;
  opacity: .08;
  pointer-events: none;
}
@keyframes noise {
  to {
    background-position: 0 0;
  }
  10% {
    background-position: -5% -10%;
  }
  20% {
    background-position: -15% 5%;
  }
  30% {
    background-position: 7% -25%;
  }
  40% {
    background-position: 20% 25%;
  }
  50% {
    background-position: -25% 10%;
  }
  60% {
    background-position: 15% 5%;
  }
  70% {
    background-position: 0 15%;
  }
  80% {
    background-position: 25% 35%;
  }
  90% {
    background-position: -10% 10%;
  }
}
/* -----noise----- */


/* 以下はPCのNAVです */
.nav{
  top: 0;
  left: 0;
  width: calc(100% - 100px);
  padding: 0 50px 0 50px;
  height: 11vh;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  background-image: url(../img/navbg2.png);
  background-size: contain;
  background-color: #f8f8f8;
  /* box-shadow: #b8c0c5 0px 0px 2px; */
  z-index: 500;
}
.PageLogo{
  width: 28px;
}
.PageLogo img{
  width: 100%;

}

.navtext{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 50px;
}
.navtext a{
  text-decoration: none;
  font-weight: 400;
  list-style: none;
  font-size: 14px;
  color: #495465;
  transition: ease 0.3s;
  cursor: pointer;
  cursor: hand;
  display: flex;
  gap: 4px;
  position: relative;
}
.navtext a::after{
  position: absolute;
  left: 0%;
  bottom: -2px;
  content: '';
  width: 0%;
  height: 1px;
  background-color: #495465;
  transition: .3s ease;
  opacity: .5;
}
.navtext a:hover{
  opacity: .5;
}
.navtext a:hover::after{
  animation: line .8s linear forwards;
}

#emoji{
  font-family: apple color emoji,segoe ui emoji,noto color emoji,android emoji,emojisymbols,emojione mozilla,twemoji mozilla,segoe ui symbol;
  margin: 0;
  animation: wave 1s linear infinite;
}
.navtext .active{
  opacity: .5;
  pointer-events: none;
}
.navtext .active::after{
  position: absolute;
  left: 50%;
  bottom: -5px;
  content: '';
  width: 3px;
  height: 3px;
  background-color: #495465;
  opacity: .6;
  border-radius: 50%;
}
/* 以上はPCのNAVです */

/* 動画設定です */

@keyframes wave{
  0%{
    transform: rotate(0);
  }
  50%{
    transform: rotate(-15deg);
  }
  100%{
    transform: rotate(0);
  }
}
@keyframes line{
  0%{
    left: 0;
    width: 0;
  }
  20%{
    left: 0;
    width: 100%;
  }
  40%{
    left: 100%;
    width: 0;
  }
  60%{
    left: 0%;
    width: 0;
  }
  80%{
    left: 0%;
    width: 50%;
  }
  100%{
    left: 50%;
    width: 0px;
  }
}
.hamburger{
  display: none;
}
.globalMenuSp{
  display: none;
}
.navbg{
  display: none;
}
@media screen and (max-width: 1080px){
  .nav{
    width: calc(100% - 70px);
    padding: 0 35px 0 35px;
  }
  .PageLogo{
    width: 28px;
  }
  .noise::after {
    background-size: 12%;
  }
}
@media screen and (max-width: 767px){
  .noise::after {
    background-size: 24%;
  }
  .navtext{
    display: none;
  }
  .nav{
    width: calc(100% - 40px);
    padding: 0 20px;
    height: 9vh;
  }
  .PageLogo{
    width: 25px;
    height: 31px;
  }
  .hamburger{
    display: block;
    width : 30px;
    cursor: pointer;
    text-align: center;
  }
  .hamburger span {
    display : block;
    width   : 100%;
    height  : 1px ;
    background : #495465;
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition   : 0.3s ease-in-out;
    transition        : 0.3s ease-in-out;
  }

  .hamburger span:nth-child(1) {
    margin-bottom: 10px;
  }
    /* ナビ開いてる時のボタン */
    .hamburger.active span:nth-child(1) {
      margin-bottom: 0%;
      -webkit-transform: rotate(-45deg);
      -moz-transform   : rotate(-45deg);
      transform        : rotate(-45deg);
    }
    
    .hamburger.active span:nth-child(2){
      -webkit-transform: rotate(45deg);
      -moz-transform   : rotate(45deg);
      transform        : rotate(45deg);
    }
  nav.globalMenuSp {
    position: fixed;
    z-index : 400;
    top  : 9vh;
    left : 0;
    height: 430px;
    color: #495465;
    background-color: #f8f8f8;
    text-align: center;
    transform: translateY(-100%);
    transition: all 0.6s;
    width: 100%;
    display: block;
    font-size: 15px;
  }
  nav.globalMenuSp ul {
    margin: 0 auto;
    padding: 0px;
    width: 100%;
    cursor: pointer;
  }
  nav.globalMenuSp ul li {
    list-style-type: none;
    padding: 20px 0;
    width: 100%;
  }
  nav.globalMenuSp ul li a{
    padding: 0;
    margin: 0;
    line-height: 0;
  }
  nav.globalMenuSp ul li:hover{
    background :rgba(221, 221, 221, 0.571);
  }
  
  nav.globalMenuSp ul li a {
    display: block;
    color: #000;
    padding: 1em 0;
    text-decoration :none;
  }
  /* このクラスを、jQueryで付与・削除する */
  nav.globalMenuSp.active {
    transform: translateY(0%);
  }
  .navbg{
    display: block;
    position: fixed;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 100vh;
    background-color: #495465;
    opacity: 0;
    z-index: 350;
    transition: all .6s;
    pointer-events: none;
  }
  .navbg.active{
    opacity: .4;
  }
  .navsp{
    width: calc(100% - 30px);
    position: absolute;
    left: 30px;
    top: 50px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 65px;
    justify-content: flex-start;
    
  }
  .navsp a{
    width: 100%;
    text-decoration: none;
    text-align: start;
    color: #495465;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: .03rem;
    display: flex;
  }
  #emoji{
    font-size: 17px;
    margin-left: 4px;
  }
  .navsp .active{
    opacity: .5;
  }
  .monster2{
    position: absolute;
    width: 85px;
    top: 90px;
    right: 0;
    clip-path: inset(0px);
    transform-origin: right bottom;
    animation-delay: 3s;
  }
  .monster2 img{
    transform: translateX(150%);
    width: 100%;
    animation: monster 10s infinite;
  }
}

@keyframes monster{
  0%{
    transform: translateX(150%);
  }
  60%{
    transform: translateX(0%);
  }
  62%{
    transform: translateX(0%);
  }
  67%{
    transform: translateX(150%);
  }
  100%{
    transform: translateX(150%);
  }
}