@charset "UTF-8"; 

.top-intro {
  position: fixed;
  inset: 0;
  padding: 7vw 0 0 6vw;
  background: #fff;
  z-index: 10000;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.7s ease, visibility 0.7s ease;
}

.top-intro-title {
  position: absolute;
  top: 50%;
  left: 0;
  width: 102vw;
  font-size: 26vw;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--black);
  line-height: 0.9;
  white-space: nowrap;
  transform: translate3d(0, -50%, 0);
  transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
  visibility: hidden;
}

.top-intro-char {
  display: inline-block;
  margin-right: -0.03em;
  transform: translateY(16px);
  opacity: 0;
}

.top-intro-char-space {
  margin-right: 0;
}

.top-intro-break {
  display: block;
  width: 100%;
  height: 0;
}

body.intro-playing {
  overflow: hidden;
}

body.intro-pending .top-hero-title {
  opacity: 0;
}

body.intro-start .top-intro-char {
  animation: introCharIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.intro-ready .top-intro-title {
  visibility: visible;
}

body.intro-move .top-intro-title {
  transform: translate3d(var(--intro-move-x, 0), calc(var(--intro-move-y, 0) - 50%), 0);
}

body.intro-hide .top-intro {
  opacity: 0;
  visibility: hidden;
  transition-delay: 0.15s;
}

@keyframes introCharIn {
  0% {
    transform: translateY(16px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

.top-about {
  padding: 40vw 0 20vw;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  align-items: center;
}

.top-about-text-intro {
  width: 80vw;
  margin: 0 auto 6vw;
  color: #ccc;
  line-height: 1.6;
}

.top-about-text-intro span {
  margin-bottom: 2vw;
  display: block;
  color: var(--black);
  font-size: 12vw;
  font-weight: 700;
}

.top-about-image {
  width: 70%;
  margin-bottom: 15vw;
}

.top-about-text {
  width: 80vw;
  margin: auto;
}

.top-subtitle {
  margin-bottom: 5vw;
  font-size: 4.21vw;
  font-family: var(--gothic);
  font-weight: bold;
  line-height: 2;
}

.top-about-comment {
  margin-bottom: 8vw;
}

.top-about-comment p {
  font-size: 3.42vw;
  font-family: var(--gothic);
  line-height: 2;
  letter-spacing: 0.04em;
}

.top-about-more {
  margin: 0;
}

.top-deco {
  margin-bottom: 20vw;
}

.top-deco .parallax02 {
  background: url(../images/top-deco-bg.jpg)no-repeat top center;
  background-size: cover;
}

.top-deco-container {
  width: 35vw;
  margin: auto;
  padding: 40vw 0;
}

.top-deco-container a {
  display: block;
}

.top-deco-container img {
  display: block;
  width: 100%;
  filter: saturate(0.6);
}

.top-work {
  width: 80vw;
  margin: 0 auto;
  padding: 20vw 0;
}

.top-work-text {
  margin-bottom: 15vw;
}

.top-work-image img {
  width: 100%;
}

.top-work-subtitle {
  margin-bottom: 5vw;
  font-size: 4.21vw;
  font-family: var(--gothic);
  line-height: 2;
}

.top-work-comment {
  margin-bottom: 8vw;
}

.top-work-comment p {
  font-size: 3.42vw;
  font-family: var(--gothic);
  line-height: 2;
  letter-spacing: 0.04em;
}

.top-work-more {
  margin: 0;
}

/* ============================================= 
  pc
================================================*/
@media screen and (min-width: 736px) {
  .top-intro {
    padding-left: 0;
  }

  .top-intro-title {
    top: 50%;
    left: 50%;
    width: auto;
    font-size: 17vw;
    letter-spacing: 0;
    line-height: 1;
    transform: translate3d(-50%, -50%, 0);
  }

  body.intro-move .top-intro-title {
    transform: translate3d(calc(var(--intro-move-x, 0) - 50%), calc(var(--intro-move-y, 0) - 50%), 0);
  }

  
  .top-about {
      width: clamp(840px, 80vw, 1200px);
      margin: 0 auto 120px;
      padding: 120px 0;
  }

  .top-about-image {
      margin-bottom: 80px;
  }

  .top-about-text-intro span {
    font-size: 6rem;
  }

  .top-about-text {
      margin: auto;
  }

  .top-subtitle {
      font-size: 20px;
      font-family: var(--gothic);
  }
  .top-about-comment {
      width: 60%;
      margin-bottom: 60px;
      text-align: justify;
  }

  .top-about-comment p {
      font-size: 16px;
      font-family: var(--gothic);
  }

  .top-work {
      padding: 120px 0;
      display: flex;

  }

  .top-work-text {
      width: 50%;
      padding-right: 60px;
  }

  .top-work-image {
      width: 50%;
      padding-left: 60px;
  }

  .top-work-subtitle {
      font-size: 20px;
      font-family: var(--gothic);
  }

  .top-work-comment p {
      font-size: 16px;
      font-family: var(--gothic);
  }

  .top-deco {
      margin-bottom: 120px;
  }

  .top-deco .parallax02 {
      background: url(../images/top-deco-bg-pc.jpg)no-repeat top center;
      background-size: cover;
  }

  .top-deco-container {
      width: 200px;
      margin: auto;
      padding: 150px 0 200px;
  }
}

/* retina用 ----------------------------------------------- */
@media screen and (min-width: 736px) and (-webkit-min-device-pixel-ratio: 2), screen and (min-width: 736px) and (min-resolution: 2dppx) {
}
