.df,
.df * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.df img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}

.df {
  position: relative;
  overflow: hidden;
}

.df__ttl {
  position: absolute;
  inset: 0;
  max-width: 270px;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  z-index: 2;
}
@media screen and (max-width: 1500px) {
  .df__ttl {
    width: 18%;
  }
}
@media screen and (max-width: 767px) {
  .df__ttl {
    width: 33.75%;
  }
}

.df__bg {
  position: absolute;
  inset: 0;
}
.df__bg img {
  width: 100%;
  height: 650px;
  max-width: none;
}
@media screen and (max-width: 1920px) {
  .df__bg img {
    width: 1920px;
  }
}
@media screen and (max-width: 1500px) {
  .df__bg img {
    aspect-ratio: 1500/650;
    -o-object-fit: cover;
       object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
@media screen and (max-width: 767px) {
  .df__bg img {
    aspect-ratio: 800/650;
  }
}

.df .loop.anime .loop__list {
  animation-name: loop-infinity;
  animation-duration: 20s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  animation-fill-mode: both;
}
.df .loop.anime .loop__slide {
  animation-name: loop-move, loop-rotate;
  animation-duration: 1s, 3s;
  animation-timing-function: ease-in-out, ease-in-out;
  animation-iteration-count: infinite, infinite;
  animation-direction: alternate, alternate;
}
.df .loop.anime .loop__slide.loop__slide--blue {
  animation-delay: 0s, 0s;
}
.df .loop.anime .loop__slide.loop__slide--gray {
  animation-delay: -0.33s, -1s;
}
.df .loop.anime .loop__slide.loop__slide--red {
  animation-delay: -0.66s, -2s;
}
.df .loop {
  position: relative;
  width: 100%;
  overflow: hidden;
  z-index: 1;
}
.df .loop__wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  overflow: hidden;
  height: 650px;
}
@media screen and (max-width: 1500px) {
  .df .loop__wrap {
    aspect-ratio: 1500/650;
    height: auto;
  }
}
@media screen and (max-width: 767px) {
  .df .loop__wrap {
    aspect-ratio: 800/650;
  }
}
.df .loop__list {
  display: flex;
  justify-content: flex-end;
  list-style: none;
}
.df .loop .loop__slide {
  width: 420px;
}
@media screen and (max-width: 1500px) {
  .df .loop .loop__slide {
    width: 25vw;
  }
}
@media screen and (max-width: 767px) {
  .df .loop .loop__slide {
    width: 50vw;
  }
}
.df .loop .loop__slide > img {
  width: 100%;
}

@keyframes loop-infinity {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}
@keyframes loop-move {
  0% {
    translate: 0 2%;
  }
  100% {
    translate: 0 -2%;
  }
}
@keyframes loop-rotate {
  0% {
    rotate: 5deg;
  }
  100% {
    rotate: -5deg;
  }
}