.top {
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.top-bg {
  background-image: url(../img/common/bg-bottom.png);
  background-position: top center;
  background-size: 50px auto;
  background-repeat: repeat-x;
}

.top-image {
  position: absolute;
  width: 65%;
  top: 20px;
  right: 0;
}

.top-logo {
  position: absolute;
  width: 44%;
  top: 16%;
  left: 0;
}

.top-sign {
  position: absolute;
  width: 20%;
  top: 34%;
  left: 12%;
  animation: swing 4s ease-out forwards;
}

.top-note {
  position: absolute;
  width: 40%;
  bottom: 6%;
  left: 8%;
  font-size: 14px;
  font-weight: 600;
  padding-left: 1em;
  text-indent: -1em;
}

@keyframes swing {
  0% {
    transform: rotate(25deg);
  }

  10% {
    transform: rotate(-20deg);
  }

  20% {
    transform: rotate(15deg);
  }

  30% {
    transform: rotate(-12deg);
  }

  40% {
    transform: rotate(9deg);
  }

  50% {
    transform: rotate(-6deg);
  }

  60% {
    transform: rotate(4deg);
  }

  70% {
    transform: rotate(-2deg);
  }

  80% {
    transform: rotate(1deg);
  }

  90% {
    transform: rotate(-0.5deg);
  }

  100% {
    transform: rotate(0deg);
  }
}


@media screen and (min-width: 1px) and (max-width: 743px) {

  .top {
    aspect-ratio: 1 / 1.386;
  }

  .top-bg {
    background-image: url(../img/common/sp-bg-top.png);
    background-size: 8% auto;
    background-repeat: repeat-x;
    background-position: top center;
  }

  .top-image {
    width: 120%;
    top: 30%;
    right: -10%;
    z-index: 2;
  }

  .top-logo {
    width: 100%;
    top: 1%;
    left: 0;
    text-align: center;
    z-index: 1;
  }

  .top-logo img {
    width: 77%;
  }

  .top-sign {
    position: absolute;
    width: 40%;
    top: 50%;
    left: 30%;
    z-index: 3;
  }

  .top-note {
    width: 100%;
    bottom: 2%;
    left: 0;
    text-align: center;
    font-size: 2.3vw;
    font-weight: 500;
    z-index: 3;
    text-shadow:
      0 0 4px #fff,
      0 0 4px #fff,
      0 0 4px #fff,
      0 0 4px #fff,
      0 0 4px #fff,
      0 0 4px #fff,
      0 0 4px #fff,
      0 0 4px #fff;
  }
}

@media screen and (min-width: 744px) and (max-width: 1024px) {
  .top {
    aspect-ratio: 1 / 0.6;
  }

  .top-bg {
    background-image: url(../img/common/sp-bg-top.png);
    background-position: top center;
    background-size: 30px auto;
    background-repeat: repeat-x;
  }

  .top-note {
    position: absolute;
    width: 40%;
    bottom: 5%;
    left: 6%;
    font-size: 12px;
  }

}

@media screen and (min-width: 1025px) {
  .top {
    aspect-ratio: 1 / 0.6;
  }

}