body{
  width: 100dvw;
  height: 100dvh;
  overflow: hidden;

  position: relative;
}
header{
  position: fixed;
  top: 60px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);

  z-index: 20;
}
  .menu{
    width: auto;
    height: 40px;
    display: flex;
    align-items: center;
  }
    .menu ul{
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 50px;
    }
      .menu ul li{
        width: auto;
      }
        .menu ul li a{
          font-size: 1.25rem;
          color: var(--color-green);
          font-weight: bolder;
          text-transform: uppercase;
          font-family: var(--font-family-en);

          cursor: pointer;
        }

main{
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;

  width: 300%;
  height: 100%;

  display: flex;
}
.page{
  position: relative;
  width: 100%;
  height: 100%;
}
.top{
}
  .top section{
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;

    width: 100%;
    height: 100%;
  }
  .hero{
    z-index: 1;
  }
    .hero .hero-block{
      width: 100%;
      height: 100%;
      position: relative;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      overflow: hidden;
    }
      .hero-background-video{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        width: 50%;
        height: 50%;
        z-index: 1;
      }
        .hero-background-video video{
          width: 100%;
          height: 100%;
          object-fit: cover;
        }
      .hero-overlay{
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 2;
      }
        .hero-overlay img{
          height: 100%;
          width: 100%;
          object-fit: cover;
        }
  .frame{
    box-sizing: border-box;
    padding: 30px;
    z-index: 11;
  }
   .frame-outline{
    position: relative;
    box-sizing: border-box;
    width: 100%;
    height: 100%;

    border-radius: 30px;
    border: solid 2px #80c2b5;
   }
    .frame-contents{
      box-sizing: border-box;
      position: absolute;
      bottom: 30px;

      width: 100%;
    }
      .frame-contents-list{
        width: 100%;
        max-height: 110px;
        height: auto;
        display: flex;
        justify-content: left;
        align-items: stretch;
        padding: 0;
      }
        .frame-contents-list li{
          flex: 1;
          padding: 0 30px;

          display: flex;
          flex-direction: column;
          justify-content: flex-start;
          gap: 10px;

          border-left: solid 1px #80c2b5;
        }
        .frame-contents-list li:first-child{
          border-left: none;
        }
          .frame-contents-list .list-sec-box{
            display: flex;
            flex-direction: column;
            gap: 0.3rem;
          }
          .frame-contents-list .list-sec-box.p-1{
            height: 55px;
          }
          .frame-logo{
            object-fit: contain;
            width: 100%;
            height: 100%;
          }
          .frame-contents-list li h3{
            font-size: 1.2rem;
            font-weight: bold;
            color: var(--color-green);

            font-family: var(--font-family-en);
          }
          .frame-contents-list li h4{
            font-size: 1rem;
            font-weight: bold;
            color: var(--color-green);

            font-family: var(--font-family-en);
          }
          .frame-contents-list li h5{
            font-size: 0.8rem;
            font-weight: bold;
            color: var(--color-green);

            font-family: var(--font-family-en);
          }
          .frame-contents-list li p{
            font-size: 0.8rem;
            font-weight: bold;
            color: var(--color-green);

            font-family: var(--font-family-en);
          }
          .frame-contents-list li p span{
            font-size: 1.7rem;
          }
          .frame-contents-list li .frame-line{
            width: 90%;
            border-top: 1px solid #80c2b5;
          }
            .list-item-2 p{
              font-size: 0.7rem !important;
            }
            .list-item-2 h5{
              font-size: 0.7rem !important;
            }
          .hm-logo{
            width: 30px;
            height: auto;
          }

.works{
  overflow-y: scroll;
}
  .works .gallery{
    box-sizing: border-box;
    width: 100%;
    padding: 20vh 120px;
  }
    .gallery-box{
      max-width: 1500px;
      width: 100%;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: flex-start;
      row-gap: 30px;
    }
      .gallery-item{
        position: relative;
        width: 31.5%;
        aspect-ratio: 3 / 2;
        height: auto;
      }
        .gallery-item a{
          display: block;
          position: absolute;
          top: 0;
          left: 0;
          bottom: 0;
          width: 100%;
          aspect-ratio: 3 / 2;
          height: auto;
          cursor: pointer;
          border-radius: 20px;
        }
          .gallery-item a img{
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            aspect-ratio: 3 / 2;
            height: auto;
            object-fit: cover;
            border-radius: 20px;
            transition: 0.5s;
          }
          .gallery-item a h4{
            position: absolute;
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;

            color: #000000;

            font-size: var(--subtitle-font-size);

            opacity: 0;
            visibility: hidden;
            transition: 0.5s;
          }
          .gallery-item a:hover img{
            opacity: 0.1;
            transition: 0.2s;
          }
          .gallery-item a:hover h4{
            opacity: 1;
            visibility: visible;
          }


.about{
  overflow-y: scroll;
}
  .about .vmv{
    width: 100%;
    padding-top: 30vh;
  }
    .about-box{
      max-width: 900px;
      width: 100%;
      margin: 0 auto;

      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .about-box-2{
      margin-top: 100px;
    }
      .about-box h2{
        font-size: 2rem;
        font-weight: bold;
        color: var(--color-green);
      }
      .about-box p{
        font-size: 1.25rem;
        font-weight: bold;
        color: var(--color-green);
      }
      .vmv-list{
        display: flex;
        flex-direction: column;
        gap: 30px;
        margin-top: 50px;
      }
        .vmv-item{
          display: flex;
          flex-direction: column;
          gap: 5px;
        }
          .vmv-item h4{
            font-size: 2rem;
            font-weight: bold;
            margin: 0;
            color: var(--color-green);
          }
          .vmv-item p{
            font-size: 1rem;
            font-weight: bolder;
            color: var(--color-green);
          }

  .about .info{
    width: 100%;
    padding: 30dvh 0;
  }
    .info-list{
      display: flex;
      flex-direction: column;
      gap: 20px;
      margin-top: 50px;
    }
      .info-item{
        display: flex;
        justify-content: space-between;
        gap: 20px;

        border-bottom: solid 1px #80c2b5;
      }
      a.info-item{
        cursor: pointer;
      }
        .info-item p{
          font-size: 1rem;
          line-height: 2rem;
          padding-bottom: 10px;
        }
        .info-right{
          text-align: right;
        }

@media screen and (max-width: 1200px) {
  .hero-background-video{
    width: 50%;
    height: 30%;
    overflow: hidden;
  }
  .hero-overlay{
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    width: 100%;
    height: auto;
  }
  .gallery{
    box-sizing: border-box;
    padding: 0 100px;
  }
    .gallery-box{
      width: 100%;
    }
      .gallery-item{
        width: 46%;
      }
  .vmv{
    box-sizing: border-box;
    padding: 30dvh 100px 0 100px !important;
  }
  .info{
    box-sizing: border-box;
    padding: 30dvh 100px !important;
  }
  }

@media screen and (max-width: 767px) {
  .hero-background-video{
    width: 50%;
    height: 25%;
  }
  .hero-overlay{
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    width: 130%;
    height: auto;
  }
  .list-item-2 p{
    font-size: 0.6rem !important;
  }
  .list-item-2 h5{
    font-size: 0.6rem !important;
  }
  .frame{
    padding: 15px;
  }
  .gallery{
    padding: 30dvh 20px !important;
  }
      .gallery-item{
        width: 100%;
      }
  .vmv{
    padding: 30dvh 20px 0 20px !important;
  }
  .info{
    padding: 15dvh 20px !important;
  }

  .about-box p{
    font-size: 1.25rem;
    font-weight: bold;
    color: var(--color-green);
  }
  .vmv-list{
    margin-top: 75px;
    gap: 60px;
  }
  .vmv-item{
    gap: 20px;
  }
  .vmv-item h4{
    font-size: 1.25rem;
  }
  .vmv-item p{
    font-size: 0.7rem;
  }
  .info-item p{
    font-size: 0.7rem;
  }
  .
}

#cursor-info {
  position: fixed;
  color: var(--color-green);
  font-size: 14px;
  pointer-events: none;
  white-space: nowrap;
  font-family: sans-serif;
}

#custom-cursor {
  position: fixed;
  width: 20px;
  height: 20px;
  pointer-events: none;
  z-index: 9999;
  margin: -10px 0 0 -10px;
}

#custom-cursor::before,
#custom-cursor::after {
  content: "";
  position: absolute;
  background: var(--color-green);
}

#custom-cursor::before {
  width: 2px;
  height: 20px;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}

#custom-cursor::after {
  width: 20px;
  height: 2px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

@media screen and (max-width: 440px){
.frame-contents-list li{
  justify-content: space-between;
  gap: 0;
}
}