.preview-section {
  @apply sticky top-[50px];
  .gp-form-field {
    @apply text-center;
    .gp-form-input {
      @apply max-w-full mt-[15px];
    }
  }
  .preview-container {
    @apply border-4 border-solid border-black my-0 mx-auto relative;
    &.desktop-device {
      @apply w-full h-[360px] mb-[50px];
      &:before,&:after {
        content: "";
        @apply absolute left-2/4 bg-black;
        transform: translateX(-50%);
      }
      &:before {
        @apply top-full w-10 h-[54px];
      }
      &:after {
        top: calc(100% + 44px);
        @apply w-[130px] h-[10px];
      }
    }
    &.mobile-device {
      @apply w-[260px] h-[410px];
      .preview-message {
        font-size: 14px !important;
      }
    }
  }
}
.preview-message {
  @apply absolute w-full top-0 left-0 text-center inline-block align-middle break-all;
  &.preview-shadow {
    -webkit-box-shadow: 0px 0px 10px 0px rgba(50, 50, 50, 1);
    -moz-box-shadow: 0px 0px 10px 0px rgba(50, 50, 50, 1);
    box-shadow: 0px 0px 10px 0px rgba(50, 50, 50, 1);
  }
  p {
    font-size: inherit;
  }
  .preview-inner-box {
    @apply relative flex items-center;
    .preview-message-text {
      @apply align-middle inline-block;
    }
    .preview-message-button {
      @apply inline-block border-none py-[5px] px-2.5 align-middle my-0 mr-0 ml-2.5 cursor-pointer rounded w-max;
    }
    .preview-close-button {
      @apply absolute right-[5px] top-[5px] w-2.5 h-2.5 block;
      a {
        @apply block w-2.5 h-2.5;
        svg {
          @apply w-full h-full block;
        }
      }
    }
  }
}
.bounce-animation {
  animation: bounce 5s infinite;
}
@keyframes bounce {
  0% {transform: translateY(0);}
  10% {transform: translateY(-15px);}
  20% {transform: translateY(5px);}
  25% {transform: translateY(0px);}
  30% {transform: translateY(0px);}
  100% {transform: translateY(0);}
}

.flash-animation {
  animation: flash 5s infinite;
}
@keyframes flash {
  0%,20%,40% {opacity: 0.1;}
  10%,30%,50%,100% {opacity: 1;}
}

.flip-animation {
  backface-visibility: visible;
  animation: flip 5s infinite;
}
@keyframes flip {
  0% {transform: perspective(600px) translateZ(0) rotateY(0) scale(1);animation-timing-function: ease-out;}
  20% {transform: perspective(600px) translateZ(150px) rotateY(170deg) scale(1);animation-timing-function: ease-out;}
  25% {transform: perspective(600px) translateZ(150px) rotateY(190deg) scale(1);animation-timing-function: ease-in;}
  30% {transform: perspective(600px) translateZ(0) rotateY(360deg) scale(.95);animation-timing-function: ease-in;}
  35%, 100% {transform: perspective(600px) translateZ(0) rotateY(360deg) scale(1);animation-timing-function: ease-in;}
}

.lightSpeedIn-animation {
  animation: lightSpeedIn 5s infinite;
  animation-timing-function: ease-out;
}
@keyframes lightSpeedIn {
  10%,30% {transform: translateX(10%) skewX(-30deg);opacity: 1;}
  10%,20%,40% {transform: translateX(-10%) skewX(30deg);opacity: 1;}
  0%, 50%, 100% {transform: translateX(0%) skewX(0deg);opacity: 1;}
}

.pulse-animation {
  animation: pulse 5s infinite;
}
@keyframes pulse {
  0% {transform: scale(1);}
  10% {transform: scale(1.2);}
  20% {transform: scale(1);}
  30% {transform: scale(1.15);}
  40%, 100% {transform: scale(1);}
}

.rubberBand-animation {
  animation: rubberBand 5s infinite;
}
@keyframes rubberBand {
  0% {transform: scale(1);}
  10% {transform: scaleX(1.25) scaleY(0.75);}
  20% {transform: scaleX(0.75) scaleY(1.25);}
  30% {transform: scaleX(1.15) scaleY(0.85);}
  40%, 100% {transform: scale(1);}
}

.shake-animation {
  animation: shake 5s infinite;
}
@keyframes shake {
  0% {transform: translateX(0);}
  10%, 16%, 22%, 28%, 33% {transform: translateX(-5px);}
  13%, 19%, 25%, 31%, 37% {transform: translateX(5px);}
  40%, 100% {transform: translateX(0);}
}

.wobble-animation {
  animation: wobble 5s infinite;
}
@keyframes wobble {
  0% {transform: translateX(0%);}
  5% {transform: translateX(-25%) rotate(-5deg);}
  10% {transform: translateX(20%) rotate(3deg);}
  15% {transform: translateX(-15%) rotate(-3deg);}
  20% {transform: translateX(10%) rotate(2deg);}
  25% {transform: translateX(-5%) rotate(-1deg);}
  30%, 100% {transform: translateX(0%);}
}