@media screen and (min-width: 768px) {
  body main.top {
    background: #000000;
  }
  body main.top article {
    margin-top: -100px;
    padding-top: 0;
    color: #ffffff;
  }
  body main.top article section hgroup h2 {
    line-height: 160%;
    font-size: 70px;
    font-weight: 800;
    font-family: "Montserrat";
  }
  body main.top article section hgroup p {
    line-height: 180%;
    font-size: 15px;
    font-weight: 500;
  }
  body main.top article section.hero {
    padding-top: 0;
  }
  body main.top article section.hero .movie {
    width: 100%;
    height: 100svh;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
  }
  body main.top article section.hero .movie .bg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
  body main.top article section.hero .movie .bg .video {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
  body main.top article section.hero .movie .bg .video video {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    object-fit: cover;
  }
  body main.top article section.hero .movie h1 {
    width: 1000px;
  }
  body main.top article section.hero .movie h1 img {
    width: 100%;
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7500%) hue-rotate(315deg) brightness(103%) contrast(101%);
  }
  body main.top article section.service {
    padding-bottom: 350px;
  }
  body main.top article section.service:after {
    content: "";
    width: 100%;
    height: 250px;
    display: block;
    background: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgb(255, 255, 255) 100%);
    position: absolute;
    left: 0;
    bottom: 0;
  }
  body main.top article section.service .bg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    filter: blur(10px);
  }
  body main.top article section.service .bg .video {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
  body main.top article section.service .bg .video video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
  }
}
@media screen and (min-width: 768px) and (aspect-ratio: 1.7777777778), screen and (min-width: 768px) and (min-aspect-ratio: 1.7777777778) {
  body main.top article section.service .bg .video video {
    width: 100%;
    min-height: 100%;
  }
}
@media screen and (min-width: 768px) and (max-aspect-ratio: 1.7777777778) {
  body main.top article section.service .bg .video video {
    min-width: 100%;
    height: 100%;
  }
}
@media screen and (min-width: 768px) {
  body main.top article section.service hgroup {
    margin-bottom: 110px;
  }
  body main.top article section.service p.text {
    margin-bottom: 80px;
    line-height: 180%;
    font-size: 26px;
    font-weight: 700;
  }
  body main.top article section.works, body main.top article section.member, body main.top article section.about, body main.top article section.recruit {
    background: #ffffff;
    color: #000000;
  }
  body main.top article section.works hgroup, body main.top article section.member hgroup, body main.top article section.about hgroup, body main.top article section.recruit hgroup {
    margin-bottom: 50px;
  }
  body main.top article section.about ul {
    margin-bottom: 100px;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
  }
  body main.top article section.about ul li {
    width: 50%;
  }
  body main.top article section.about ul li a {
    padding: 100px 10% 210px 10%;
    width: 100%;
    height: 100%;
    display: block;
    box-sizing: border-box;
    position: relative;
  }
  body main.top article section.about ul li a h3, body main.top article section.about ul li a p.text {
    position: relative;
    z-index: 1;
  }
  body main.top article section.about ul li a h3 {
    margin-bottom: 50px;
  }
  body main.top article section.about ul li a h3 span, body main.top article section.about ul li a h3 small {
    display: block;
  }
  body main.top article section.about ul li a h3 span {
    line-height: 160%;
    font-size: 50px;
    font-weight: 800;
    font-family: "Montserrat";
  }
  body main.top article section.about ul li a h3 small {
    line-height: 180%;
    font-size: 15px;
    font-weight: 500;
  }
  body main.top article section.about ul li a p.text {
    font-size: 20px;
    line-height: 180%;
    font-weight: 500;
  }
  body main.top article section.about ul li a p.read_more {
    right: 50px;
    bottom: 50px;
  }
  body main.top article section.about ul li a span.bg {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    overflow: hidden;
  }
  body main.top article section.about ul li a span.bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body main.top article section.recruit {
    padding-bottom: 150px;
  }
  body main.top article section.recruit .images {
    margin-bottom: 100px;
  }
  body main.top article section.recruit .images ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
  }
  body main.top article section.recruit .images ul li {
    width: 100%;
    aspect-ratio: 500/375;
  }
  body main.top article section.recruit .images ul li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media screen and (max-width: 767px) {
  body main.top {
    background: #000000;
  }
  body main.top article {
    margin-top: -80px;
    padding-top: 0;
    color: #ffffff;
  }
  body main.top article section hgroup h2 {
    line-height: 160%;
    font-size: 35px;
    font-weight: 800;
    font-family: "Montserrat";
  }
  body main.top article section hgroup p {
    line-height: 180%;
    font-size: 13px;
    font-weight: 500;
  }
  body main.top article section.hero {
    padding-top: 0;
  }
  body main.top article section.hero .movie {
    width: 100%;
    height: 100svh;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
  }
  body main.top article section.hero .movie .bg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
  body main.top article section.hero .movie .bg .video {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
  body main.top article section.hero .movie .bg .video video {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    object-fit: cover;
  }
  body main.top article section.hero .movie h1 {
    width: 70%;
  }
  body main.top article section.hero .movie h1 img {
    width: 100%;
    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7500%) hue-rotate(315deg) brightness(103%) contrast(101%);
  }
  body main.top article section.service {
    padding-bottom: 234px;
  }
  body main.top article section.service:after {
    content: "";
    width: 100%;
    height: 150px;
    display: block;
    background: linear-gradient(to bottom, rgb(0, 0, 0) 0%, rgb(255, 255, 255) 100%);
    position: absolute;
    left: 0;
    bottom: 0;
  }
  body main.top article section.service .bg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    filter: blur(10px);
  }
  body main.top article section.service .bg .video {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
  body main.top article section.service .bg .video video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
  }
}
@media screen and (max-width: 767px) and (aspect-ratio: 1.7777777778), screen and (max-width: 767px) and (min-aspect-ratio: 1.7777777778) {
  body main.top article section.service .bg .video video {
    width: 100%;
    min-height: 100%;
  }
}
@media screen and (max-width: 767px) and (max-aspect-ratio: 1.7777777778) {
  body main.top article section.service .bg .video video {
    min-width: 100%;
    height: 100%;
  }
}
@media screen and (max-width: 767px) {
  body main.top article section.service hgroup {
    margin-bottom: 75px;
  }
  body main.top article section.service p.text {
    margin-bottom: 48px;
    line-height: 180%;
    font-size: 15px;
    font-weight: 700;
  }
  body main.top article section.works, body main.top article section.member, body main.top article section.about, body main.top article section.recruit {
    background: #ffffff;
    color: #000000;
  }
  body main.top article section.works hgroup, body main.top article section.member hgroup, body main.top article section.about hgroup, body main.top article section.recruit hgroup {
    margin-bottom: 50px;
  }
  body main.top article section.works {
    padding-top: 100px;
  }
  body main.top article section.about {
    padding-bottom: 100px;
  }
  body main.top article section.about ul {
    margin-bottom: 75px;
  }
  body main.top article section.about ul li a {
    padding: 50px;
    width: 100%;
    height: 375px;
    display: block;
    box-sizing: border-box;
    position: relative;
  }
  body main.top article section.about ul li a h3, body main.top article section.about ul li a p.text {
    position: relative;
    z-index: 1;
  }
  body main.top article section.about ul li a h3 {
    margin-bottom: 25px;
  }
  body main.top article section.about ul li a h3 span, body main.top article section.about ul li a h3 small {
    display: block;
  }
  body main.top article section.about ul li a h3 span {
    line-height: 160%;
    font-size: 30px;
    font-weight: 800;
    font-family: "Montserrat";
  }
  body main.top article section.about ul li a h3 small {
    line-height: 180%;
    font-size: 15px;
    font-weight: 500;
  }
  body main.top article section.about ul li a p.text {
    font-size: 15px;
    line-height: 180%;
    font-weight: 500;
  }
  body main.top article section.about ul li a p.read_more {
    right: 25px;
    bottom: 25px;
  }
  body main.top article section.about ul li a span.bg {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    overflow: hidden;
  }
  body main.top article section.about ul li a span.bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body main.top article section.recruit {
    padding-bottom: 100px;
  }
  body main.top article section.recruit .images {
    padding-bottom: 75px;
  }
  body main.top article section.recruit .images ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
  }
  body main.top article section.recruit .images ul li {
    width: 100%;
    aspect-ratio: 500/375;
  }
  body main.top article section.recruit .images ul li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media (orientation: portrait) {
  .horizontal {
    display: none;
  }
  .vertical {
    display: block;
  }
}
@media (orientation: landscape) {
  .horizontal {
    display: block;
  }
  .vertical {
    display: none;
  }
}