@charset "UTF-8";
@media (min-width: 768px) {
  .scroll-slider {
    position: relative;
    overflow: hidden;
    display: block;
    margin: 0;
    padding: 0;
    height: 100vh;
    padding: 4rem 0 0 0;
    background: transparent;
    perspective: 1000;
  }
  .scroll-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    height: 100%;
    box-sizing: border-box;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
    padding: 5rem 0 5rem 0;
    width: 300%;
    transition-duration: 0.8s;
    transition-timing-function: cubic-bezier(0.64, 0.03, 0.49, 0.94);
  }
  #slidetrigger.left_1 {
    transform: translateX(-33.3%);
  }
  #slidetrigger.left_2 {
    transform: translateX(-66.6%);
  }
  .scroll-slide {
    flex: 1 0 80vw;
    max-width: 100vw;
    /* height: 100%; */
  }
}
p, span, div, h3 {
  letter-spacing: 0.035em;
}

.boundsection {
  padding: 30rem 0;
  position: relative;
}

.boundsection h2 {
  font-size: 15rem;
  text-align: center;
  transform: scale(0.9);
  position: relative;
  width: 30rem;
  margin: 0 auto;
}

.line {
  position: absolute;
  background: #999;
  display: block;
}

.boundsection .leftLine {
  width: 0.2rem;
  height: 0rem;
  top: -5rem;
  left: -10rem;
}

.boundsection .topLine {
  width: 0rem;
  height: 0.2rem;
  top: 0rem;
  left: -15rem;
}

.slideSection h2 {
  position: absolute;
  top: 10rem;
  left: 5rem;
}

/* 雲のアニメーション */
/* ---------- Fog ---------- */
.fogwrapper {
  height: 100vh;
  position: fixed;
  z-index: -1;
  top: 0;
  width: 100%;
  filter: blur(1px) grayscale(0.2) saturate(1.2) sepia(0.2);
  background: #B2B2B2;
}

#foglayer_01, #foglayer_02, #foglayer_03 {
  height: 100%;
  position: absolute;
  width: 200%;
}

#foglayer_01 .image01, #foglayer_01 .image02,
#foglayer_02 .image01, #foglayer_02 .image02,
#foglayer_03 .image01, #foglayer_03 .image02 {
  float: left;
  height: 100%;
  width: 50%;
}

#foglayer_01 {
  animation: foglayer_01_opacity 10s linear infinite, foglayer_moveme 50s linear infinite;
}

#foglayer_02, #foglayer_03 {
  animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 40s linear infinite;
}

/* ---------- Moving Fog ---------- */
/*
  'size: cover' || 'size: 100%'; results remain the same
  'attachment: scroll' can be added or removed; results remain the same
  'attachment: fixed' causing unexpected results in Chrome
  'repeat-x' || 'no-repeat'; results remain the same
*/
#foglayer_01 .image01, #foglayer_01 .image02 {
  background: url("https://raw.githubusercontent.com/danielstuart14/CSS_FOG_ANIMATION/master/fog1.png") center center/cover no-repeat transparent;
}

#foglayer_02 .image01, #foglayer_02 .image02,
#foglayer_03 .image01, #foglayer_03 .image02 {
  background: url("https://raw.githubusercontent.com/danielstuart14/CSS_FOG_ANIMATION/master/fog2.png") center center/cover no-repeat transparent;
}

/* @keyframes foglayer_01_opacity {
  0% { opacity: .4; }
  22% { opacity: .4; }
  40% { opacity: .48; }
  58% { opacity: .4; }
  80% { opacity: .46; }
  100% { opacity: .4; }
}
@keyframes foglayer_02_opacity {
  0% { opacity: .4; }
  25% { opacity: .4; }
  50% { opacity: .4; }
  80% { opacity: .4; }
  100% { opacity: .4; }
}
@keyframes foglayer_03_opacity {
  0% { opacity: .4; }
  27% { opacity: .4; }
  52% { opacity: .4; }
  68% { opacity: .4; }
  100% { opacity: .4; }
} */
/* @keyframes foglayer_moveme {
  0% { left: 0; }
  100% { left: -100%; }
} */
@media only screen and (min-width: 280px) and (max-width: 767px) {
  #foglayer_01 .image01, #foglayer_01 .image02,
  #foglayer_02 .image01, #foglayer_02 .image02,
  #foglayer_03 .image01, #foglayer_03 .image02 {
    width: 100%;
  }
}
/* common */
.secTtl {
  font-size: 20rem;
  position: relative;
  color: #fff;
}

/* fixedBg */
.fixedBg {
  background-image: url(/assets/img/fixedbg_01.png);
  /* background-color:rgba(255,255,255,0.2);
  background-blend-mode:lighten; */
  background-size: 300px;
  background-repeat: repeat;
  background-position: center;
  position: fixed;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  overflow: hidden;
}

.fixedBg .j {
  width: 63rem;
  position: absolute;
  top: -30rem;
  left: 7rem;
  z-index: 2;
}

.fixedBg .a {
  width: 70rem;
  position: absolute;
  right: -12rem;
  top: -35rem;
  z-index: 2;
}

.fixedBg .y {
  width: 91rem;
  position: absolute;
  left: 40rem;
  bottom: -70rem;
  z-index: 2;
}

.changeBgColor {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}

/* index */
.mv {
  height: 100vh;
  display: block;
  padding: 17rem 0 0 29rem;
  position: relative;
}

.mv h1 {
  width: 30rem;
  margin-bottom: 5.2rem;
}

.mv h2 {
  font-size: 4rem;
  line-height: 1.88;
}

.mv h2 span {
  display: block;
  line-height: 1.88;
  animation-delay: 1s;
}

.mv .ttl {
  fill: #000;
  stroke: #000;
  stroke-dasharray: 2000;
  stroke-dashoffset: 0;
  stroke-width: 1;
  animation: hello 3s ease-in 0s;
  display: none;
}

.mv .ttl.in {
  display: block;
}

.scroll {
  position: absolute;
  right: -30rem;
  bottom: -30rem;
  animation: rotate1 30s linear infinite;
  z-index: 1;
  width: 90rem;
}

@keyframes rotate1 {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes hello {
  0% {
    stroke-dashoffset: 2000;
    fill: transparent;
  }
  40% {
    stroke-dashoffset: 2000;
    fill: transparent;
  }
  50% {
    fill: transparent;
  }
  100% {
    stroke-dashoffset: 0;
    fill: #000;
  }
}
.fixedBg .bgTxt {
  fill: transparent;
  stroke: #fff;
  stroke-dasharray: 4000;
  stroke-dashoffset: 0;
  stroke-width: 3;
  animation: bgTxt 3s ease-in 0s both;
  stroke-opacity: 0.3;
}

@keyframes bgTxt {
  0% {
    stroke-dashoffset: 4000;
    fill: transparent;
    stroke: #000;
  }
  40% {
    stroke-dashoffset: 4000;
  }
  50% {
    fill: transparent;
    stroke-opacity: 0.8;
  }
  75% {
    stroke-width: 6;
    stroke: #000;
  }
  100% {
    stroke-dashoffset: 0;
    fill: transparent;
    stroke-opacity: 0.3;
    stroke-width: 6;
    stroke: #fff;
  }
}
/* about */
.about {
  padding: 20rem 0 20rem;
}
.about .aboutTtl {
  margin-top: 20rem;
  text-align: center;
  font-size: 4.8rem;
  line-height: 1.5;
}
.about .aboutTxt {
  text-align: center;
  margin-top: 8rem;
  font-size: 2.4rem;
  line-height: 2;
  letter-spacing: 0.035em;
  font-weight: bold;
}

@media (max-width: 767px) {
  /* about */
  .about {
    padding: 20rem 0 0;
  }
  .about .aboutTtl {
    margin-top: 8rem;
    text-align: center;
    font-size: 2.4rem;
    line-height: 1.5;
  }
  .about .aboutTxt {
    text-align: left;
    margin-top: 4rem;
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.035em;
    font-weight: bold;
    padding: 0 2rem;
  }
}
/* service */
.service {
  padding: 20rem 0 0 0;
}

.service h2 {
  margin: 0 0 5rem auto;
  text-align: right;
}

.serviceBlock {
  display: flex;
  justify-content: center;
}

.serviceBlock li.txtArea {
  width: 60rem;
  position: relative;
  padding: 4.5rem;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.serviceBlock li.txtArea .js-topLine {
  display: block;
  width: 0%;
  height: 0.3rem;
  background: #4A4A4A;
  position: absolute;
  top: 4rem;
  left: 4.5rem;
  transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1);
}

.serviceBlock li.txtArea .js-rightLine {
  display: block;
  height: 113%;
  width: 0.3rem;
  background: #4A4A4A;
  position: absolute;
  top: -4.5rem;
  right: 0;
}

/* .serviceBlock li.txtArea::before{
  content: "";
  display: block;
  width: 200%;
  height: 0.3rem;
  background: #4A4A4A;
  position: absolute;
  bottom: 0rem;
  left: 4.5rem;
} */
.serviceBlock li.txtArea .txt {
  font-size: 2.4rem;
  line-height: 2;
  margin-bottom: 4rem;
  letter-spacing: 0.035em;
}

span {
  letter-spacing: inherit;
}

.serviceBlock li.txtArea .priceBox {
  background: transparent;
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  background-color: rgba(255, 255, 255, 0.7);
  padding: 3rem 4.5rem;
}

.serviceBlock li.txtArea .priceBox h4 {
  font-size: 3.6rem;
  margin-bottom: 2rem;
  font-weight: bold;
}

.serviceBlock li.txtArea .priceBox p {
  font-size: 2rem;
  line-height: 1.7;
  margin-bottom: 4rem;
  font-weight: 600;
}

.serviceBlock li.txtArea .priceBox span {
  font-size: 1.8rem;
}

.serviceBlock li.imgArea {
  width: 60rem;
  position: relative;
  padding: 4.5rem 0 0 3.5rem;
}

.serviceBlock li.imgArea .plxMask {
  width: 95%;
}

.serviceBlock li.imgArea h3 {
  font-size: 14rem;
  position: absolute;
  top: -6rem;
  left: 1rem;
  padding-bottom: 3rem;
  overflow: hidden;
}

.portforio {
  padding: 20rem 0 0 0;
}

.portforio h2 {
  position: relative;
  margin: 0 0 10rem 0;
  color: #000;
}

.portforio a {
  width: 100rem;
  height: 62rem;
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 4.7rem;
  background: #ddd;
  margin: 0 auto;
  font-weight: 500;
  transition-duration: 0.3s;
  position: relative;
  z-index: 3;
  margin: 0 auto 3rem;
  display: block;
  transition-duration: 0.3s;
  box-shadow: 0px 0px 24px 10px rgba(221, 221, 221, 0.5);
}
.portforio a .slider {
  width: 200rem;
  height: 100%;
  display: flex;
}
@media (max-width: 767px) {
  .portforio a .slider {
    width: 100rem;
  }
}
.portforio a .slider img:first-child {
  animation: loopRight1 40s -20s linear infinite;
  width: 50%;
}
.portforio a .slider img:last-child {
  animation: loopRight2 40s linear infinite;
  width: 50%;
}

.loopSliderRight {
  display: flex;
  width: 100vw;
}

.loopSliderLeft {
  display: flex;
  width: 100vw;
  position: relative;
}
.loopSliderLeft img:first-child {
  animation: loopLeft1 50s -25s linear infinite;
}
.loopSliderLeft img:last-child {
  animation: loopLeft2 50s linear infinite;
}

@keyframes loopRight1 {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes loopRight2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
.portforio .popupTxt {
  width: 100%;
  height: 100%;
  background: transparent;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  transform-origin: 50%;
  transition-duration: 0.8s;
  z-index: 2;
}

.portforioLead {
  font-size: 3.2rem;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 8rem;
  color: #ddd;
  font-weight: bold;
}

@media (max-width: 767px) {
  .portforioLead {
    font-size: 2rem;
    margin-bottom: 4rem;
    color: #ddd;
    font-weight: bold;
  }
}
.portforio a:hover {
  box-shadow: 0px 0px 24px -5px rgba(221, 221, 221, 0.9);
}

.portforio a:hover .popupTxt {
  background: rgba(51, 51, 51, 0.8);
}

.portforio .popupTxt span {
  font-size: 6rem;
  letter-spacing: 0.035em;
  color: #000;
  font-weight: bold;
  transform: rotate(0);
  transition-duration: 0.6s;
  transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1);
}

.portforio a:hover .popupTxt span {
  transform: scale(1) rotate(-350deg);
  color: #ddd;
}

.portforio .parallax {
  width: 52rem;
  transform: scale(1.2);
  transform-origin: 100% 30%;
  position: absolute;
  top: 6rem;
  left: 0;
  /* transition-duration: 0.3s; */
  /* transition-delay: 0.2s; */
}

.portforio .note {
  font-size: 2.4rem;
  line-height: 2;
  letter-spacing: 0.035em;
  text-align: center;
  color: #ddd;
}

.contact {
  padding: 20rem 0 10rem 0;
}

.contact h2 {
  position: relative;
  margin: 0 0 10rem 0;
  text-align: right;
}

.contact figure {
  width: 52rem;
  margin: 0 auto 3rem;
}

.contact .note {
  font-size: 2.4rem;
  line-height: 1.5;
  letter-spacing: 0.035em;
  text-align: center;
  color: #000;
  margin-bottom: 1.3rem;
}

.contact .note span {
  color: #000;
  letter-spacing: 0.035em;
}

.linkBlock {
  display: flex;
  justify-content: center;
}

.linkBlock a {
  font-size: 2.4rem;
  line-height: 2;
  letter-spacing: 0.035em;
  text-align: center;
  color: #000;
  margin: 0 2rem;
  position: relative;
}
@media (max-width: 767px) {
  .linkBlock a {
    font-size: 2rem;
  }
}

.linkBlock {
  font-size: 2.4rem;
  line-height: 2;
  letter-spacing: 0.035em;
  text-align: center;
  color: #000;
}
@media (max-width: 767px) {
  .linkBlock {
    font-size: 2rem;
  }
}

.linkBlock a {
  font-size: 2.4rem;
  line-height: 2;
  letter-spacing: 0.035em;
  text-align: center;
  color: #000;
  padding-bottom: 1rem;
}

.linkBlock a:after {
  content: "";
  width: 100%;
  height: 0.2rem;
  background: #000;
  position: absolute;
  bottom: 0.3rem;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

@media (max-width: 767px) {
  .secTtl {
    font-size: 8rem;
    position: relative;
    color: #AAAAAA;
  }
  p, span, div, h3 {
    letter-spacing: 0.035em;
  }
  /* fixedBg */
  .fixedBg {
    background-image: url(/assets/img/fixedbg_01.png);
    background-size: 300px;
    background-repeat: repeat;
    background-position: center;
    position: fixed;
    width: 100vw;
    height: 100vh;
    z-index: -1;
    overflow: hidden;
  }
  .fixedBg .j {
    width: 22.5rem;
    position: absolute;
    top: -8rem;
    left: -5rem;
    z-index: 2;
  }
  .fixedBg .a {
    width: 25rem;
    position: absolute;
    right: -5rem;
    top: -20rem;
    z-index: 2;
  }
  .fixedBg .y {
    width: 26rem;
    position: absolute;
    left: auto;
    right: -2rem;
    bottom: -35rem;
    z-index: 2;
  }
  .changeBgColor {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: transparent;
  }
  /* index */
  .mv {
    height: 100vh;
    display: block;
    padding: 8rem 2rem 0 2rem;
    position: relative;
  }
  .mv h1 {
    width: 24.5rem;
    margin-bottom: 0;
  }
  .mv h1 svg {
    width: 100%;
  }
  .mv h2 {
    font-size: 2.4rem;
    line-height: 1.88;
  }
  .mv h2 span {
    display: block;
    line-height: 1.88;
    animation-delay: 5s;
  }
  .mv .ttl {
    fill: #000;
    stroke: #000;
    stroke-dasharray: 2000;
    stroke-dashoffset: 0;
    stroke-width: 1;
    animation: hello 3s ease-in 0s;
    display: none;
  }
  .mv .ttl.in {
    display: block;
  }
  .scroll {
    position: absolute;
    right: 10.5rem;
    bottom: 4rem;
    animation: rotate1 20s linear infinite;
    z-index: 1;
    width: 16rem;
  }
  @keyframes rotate1 {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  @keyframes hello {
    0% {
      stroke-dashoffset: 2000;
      fill: transparent;
    }
    40% {
      stroke-dashoffset: 2000;
      fill: transparent;
    }
    50% {
      fill: transparent;
    }
    100% {
      stroke-dashoffset: 0;
      fill: #000;
    }
  }
  .fixedBg .bgTxt {
    fill: transparent;
    stroke: #fff;
    stroke-dasharray: 4000;
    stroke-dashoffset: 0;
    stroke-width: 5;
    animation: bgTxt 3s ease-in 0s;
    stroke-opacity: 0.3;
  }
  @keyframes bgTxt {
    0% {
      stroke-dashoffset: 4000;
      fill: transparent;
      stroke: #000;
    }
    40% {
      stroke-dashoffset: 4000;
    }
    50% {
      fill: transparent;
      stroke-opacity: 0.8;
    }
    75% {
      stroke-width: 6;
      stroke: #000;
      fill: transparent;
    }
    100% {
      stroke-dashoffset: 0;
      fill: transparent;
      stroke-opacity: 0.3;
      stroke-width: 5;
    }
  }
  /* service */
  .service {
    padding: 20rem 2rem 0;
  }
  .service h2 {
    margin: 0 -10rem 16rem auto;
    text-align: right;
  }
  .serviceBlock {
    display: flex;
    flex-direction: column;
    flex-direction: column-reverse;
    justify-content: center;
  }
  .service article:not(:last-of-type) {
    margin-bottom: 16rem;
  }
  .serviceBlock li.txtArea {
    width: auto;
    position: relative;
    padding: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .serviceBlock li.txtArea .js-topLine {
    display: none;
  }
  .serviceBlock li.txtArea .js-rightLine {
    display: none;
  }
  /* .serviceBlock li.txtArea::before{
    content: "";
    display: block;
    width: 200%;
    height: 0.3rem;
    background: #4A4A4A;
    position: absolute;
    bottom: 0rem;
    left: 4.5rem;
  } */
  .serviceBlock li.txtArea .txt {
    font-size: 1.6rem;
    margin-bottom: 2rem;
  }
  span {
    letter-spacing: inherit;
  }
  .serviceBlock li.txtArea .priceBox {
    padding: 2rem 2rem;
    margin-bottom: 2rem;
  }
  .serviceBlock li.txtArea .priceBox h4 {
    font-size: 2rem;
    margin-bottom: 0.8rem;
    font-weight: bold;
  }
  .serviceBlock li.txtArea .priceBox p {
    font-size: 1.6rem;
    line-height: 1.7;
    margin-bottom: 2rem;
  }
  .serviceBlock li.txtArea .priceBox span {
    font-size: 1.4rem;
  }
  .serviceBlock li.imgArea {
    width: calc(100vw - 12rem);
    margin: 0 auto 2rem;
    position: relative;
    padding: 0 0 0 0;
  }
  .serviceBlock li.imgArea .plxMask {
    width: 100%;
  }
  .serviceBlock li.imgArea h3 {
    font-size: 6rem;
    position: absolute;
    top: -8rem;
    left: 0rem;
    padding-bottom: 1.5rem;
  }
  .portforio {
    padding: 20rem 2rem 0;
  }
  .portforio h2 {
    position: relative;
    margin: 0 0 7rem -12rem;
    color: #000;
  }
  .portforio a {
    width: 32rem;
    height: 22rem;
    margin: 0 auto 3rem;
    display: block;
    transition-duration: 0.3s;
  }
  .portforio a:hover .popupTxt {
    background: rgba(51, 51, 51, 0.8);
  }
  .portforio .popupTxt span {
    font-size: 2rem;
  }
  .portforio a:hover .popupTxt span {
    transform: scale(1) rotate(0);
    color: #ddd;
  }
  .portforio .parallax {
    width: 33.5rem;
    transform: scale(1.2);
    transform-origin: 100% 30%;
    position: absolute;
    top: 6rem;
    left: 0;
    /* transition-duration: 0.3s; */
    /* transition-delay: 0.2s; */
  }
  .portforio .note {
    font-size: 1.2rem;
  }
  .contact {
    padding: 20rem 0 10rem 0;
  }
  .contact h2 {
    position: relative;
    margin: 0 0 7rem 8rem;
  }
  .contact figure {
    width: 33.5rem;
    margin: 0 auto 3rem;
  }
  .contact .note {
    font-size: 1.6rem;
    margin-bottom: 2rem;
  }
  .contact .note span {
    color: #000;
    letter-spacing: 0.035em;
  }
  .linkBlock {
    /* display: block; */
    justify-content: center;
    flex-direction: column;
  }
  .linkBlock a {
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.035em;
    text-align: center;
    color: #000;
    margin: 0 2rem;
    position: relative;
    display: block;
  }
  .linkBlock {
    font-size: 2rem;
    line-height: 2;
    letter-spacing: 0.035em;
    text-align: center;
    color: #000;
  }
  .linkBlock a {
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.035em;
    text-align: center;
    color: #000;
    padding-bottom: 1rem;
    /* margin-bottom: 1.5rem; */
  }
  .linkBlock span {
    margin-bottom: 1.5rem;
  }
  .linkBlock span:nth-of-type(1) a:after {
    content: "";
    width: 95%;
    height: 0.2rem;
    bottom: 0.2rem;
  }
  .linkBlock span:nth-of-type(2) a:after {
    content: "";
    width: 67%;
    height: 0.2rem;
    bottom: 0.2rem;
  }
}
/* 下層共通 */
.layer .note span {
  color: #333;
}

.layer .linkBlock {
  padding: 2rem 0 16rem;
}

.layer .linkBlock a {
  color: #333;
}

.layer p.copy {
  color: #333;
}

.layer .linkBlock a:after {
  background: #333;
}

.layer .contact {
  padding: 12rem 0 0 0;
}

@media (max-width: 767px) {
  .layer .contact {
    padding: 12rem 0 0 0;
  }
  .layer .linkBlock {
    padding: 0 0 8rem;
  }
}
#works {
  background-image: url(../img/fixedbg_01.png);
  background-size: 300px;
  background-repeat: repeat;
  background-position: center;
  position: relative;
  z-index: 1;
}

#works .noise {
  z-index: 1;
}

#works .kv {
  width: 100%;
  height: 80.5rem;
  position: relative;
  display: flex;
  align-items: left;
  justify-content: center;
  flex-direction: column;
  padding-left: 36rem;
}

#works .kv h1 {
  font-size: 12rem;
  position: relative;
  z-index: 2;
  margin-bottom: 2rem;
  overflow: hidden;
}

#works .underLine {
  width: 0;
  height: 0.3rem;
  background: #333333;
  margin-bottom: 2rem;
  animation: underLine 2s 0s cubic-bezier(0.64, 0.03, 0.49, 0.94) both;
}

@keyframes underLine {
  0% {
    width: 0;
  }
  100% {
    width: 73.5rem;
  }
}
#works .kv .bg {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  opacity: 0.1;
  animation: kvo 10s linear infinite;
}

@keyframes kvo {
  0% {
    opacity: 0.1;
  }
  50% {
    opacity: 0.3;
  }
  100% {
    opacity: 0.1;
  }
}
#works .kv .tyt {
  width: 113.7rem;
  height: 99rem;
  background: url(/assets/img/works_mv_txt.png) no-repeat center center/contain;
  position: fixed;
  top: -45rem;
  right: -45rem;
  z-index: -1;
  opacity: 0.05;
  animation: rotate1 70s linear infinite;
}

#works .kv .scroll {
  display: block;
  top: 44vh;
  bottom: auto;
}

/* #works .workList {
  padding: 20rem 0 0;
} */
#works .workList {
  position: relative;
  z-index: 2;
}

#works .workList ul {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  width: 158rem;
  margin: 0 auto;
  padding: 14rem 0 0 0;
}

#works .workList ul li {
  width: 49rem;
  margin-bottom: 8rem;
}

#works .workList ul li img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

#works .workList ul li figure {
  aspect-ratio: 101/57;
  width: 100%;
  margin-bottom: 1.21rem;
  transition-duration: 0.3s;
  cursor: pointer;
}

#works .workList ul li figure:hover {
  transform: scale(1.02);
}

#works .workList ul li .ploduct {
  font-size: 2rem;
  line-height: 1.5;
}

#works .workList ul li a {
  font-size: 1.6rem;
  line-height: 2;
  color: #333;
}

#works .workList ul li:not(:nth-child(3n)) {
  margin-right: 5.5rem;
}

@media (max-width: 767px) {
  #works .kv {
    width: 100%;
    height: 78vh;
    padding-left: 2rem;
  }
  #works .kv h1 {
    font-size: 7.2rem;
  }
  #works .underLine {
    width: 0;
    height: 0.3rem;
    margin-bottom: 4rem;
    animation: underLine 2s 0s cubic-bezier(0.64, 0.03, 0.49, 0.94) both;
  }
  @keyframes underLine {
    0% {
      width: 0;
    }
    100% {
      width: 29rem;
    }
  }
  #works .kv .bg {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0.1;
    animation: kvo 10s linear infinite;
  }
  @keyframes kvo {
    0% {
      opacity: 0.1;
    }
    50% {
      opacity: 0.8;
    }
    100% {
      opacity: 0.1;
    }
  }
  #works .kv .tyt {
    width: 60.1rem;
    height: 52.4rem;
    top: -9.5rem;
    right: -39.1rem;
    z-index: -1;
    opacity: 0.05;
    animation: rotate1 70s linear infinite;
  }
  #works .kv .scroll {
    display: block;
    top: auto;
    bottom: -16vh;
  }
  #works .workList {
    padding: 20rem 0 0;
  }
  #works .workList ul {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    width: auto;
    padding: 0 2rem;
    margin: 0 auto;
  }
  #works .workList ul li {
    width: 100%;
    margin-bottom: 0;
  }
  #works .workList ul li figure {
    margin-bottom: 1.21rem;
    transition-duration: 0.3s;
    cursor: pointer;
  }
  #works .workList ul li figure:hover {
    transform: scale(1.02);
  }
  #works .workList ul li .ploduct {
    font-size: 1.6rem;
    color: #333;
    line-height: 1.5;
  }
  #works .workList ul li a {
    font-size: 1.4rem;
    color: #333;
    line-height: 2;
  }
  #works .workList ul li:not(:nth-child(3n)) {
    margin-right: 0;
  }
  #works .workList ul li:not(:last-of-type) {
    margin-bottom: 6rem;
  }
}
/* modal */
.modal {
  display: none;
  height: 100vh;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 10000;
}

.movie-wrap.show {
  /* overflow: auto; */
  transform: scaleY(1);
}

.modal.is_show {
  display: block;
}

.modal_bg {
  background: unset;
  height: 100vh;
  position: absolute;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.7);
}

.modal-content {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  width: 70%;
}

.movie-wrap {
  position: relative;
  background-color: #000;
  width: 100%;
  height: 80vh;
  /* padding-top: 56.25%; */
  /* transform: scale(0.7,0.7); */
  transform: scaleY(0);
  transition: transform 0.3s ease;
}

.movie-wrap .scr-wrap {
  width: 100%;
  height: 100%;
  transition: all 0.4s ease 0.5s;
  opacity: 0;
  overflow: auto;
}

.movie-wrap .scr-wrap.show {
  opacity: 1;
}

.close {
  font-size: 20px;
  width: 1.4em;
  height: 1.4em;
  border-radius: 100%;
  position: absolute;
  right: -3rem;
  top: -3rem;
  background: #000;
  cursor: pointer;
  transition-duration: 0.3s;
}

.close::before {
  position: absolute;
  top: 0.2em;
  left: 0.6em;
  width: 0.2em;
  height: 1em;
  content: "";
  background-color: #FFF;
  transform: rotate(45deg);
}

.close::after {
  position: absolute;
  top: 0.6em;
  left: 0.2em;
  width: 1em;
  height: 0.2em;
  content: "";
  background-color: #FFF;
  transform: rotate(225deg);
}

@media screen and (max-width: 768px) {
  .modal-content {
    width: 100%;
  }
  .close {
    top: -8rem;
    right: 3rem;
  }
  .movieLink {
    padding-top: 36.2rem;
  }
  .movieLink h2 {
    width: 39.2rem;
    margin-left: 0;
    position: relative;
    margin-bottom: 7rem;
  }
  .movieLink .lead {
    font-size: 3rem;
    line-height: 1.6;
    margin-left: 0;
    margin-bottom: 9rem;
  }
  .movieWrap {
    display: block;
    margin-bottom: 4.3rem;
  }
  .movieBox a {
    width: 100%;
    margin-bottom: 2.6rem;
  }
  .movieBox a::after {
    width: 8rem;
    height: 8rem;
  }
  .movieBox p {
    text-align: center;
    font-size: 2.8rem;
    font-family: YuGothic, "Yu Gothic Medium", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W6", "ヒラギノ角ゴ Pro W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
    margin-bottom: 10rem;
  }
}
.reserveList {
  max-width: 1000px;
  margin: 0 auto 20rem;
}

@media (max-width: 767px) {
  .reserveList {
    max-width: 1000px;
    padding: 0 2rem;
    margin: auto;
  }
}
.reserve {
  background: #000 !important;
}

@media (max-width: 767px) {
  #works.reserve .kv {
    height: 50vh;
  }
  #works.reserve .kv h1 {
    font-size: 5.6rem;
  }
  #works.reserve .workList {
    padding: 0 0 10rem 0;
  }
}
/* background noise  */
.noise {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.03;
  z-index: 3;
}/*# sourceMappingURL=style.css.map */