.btn-animate-chars {
  color: #131313;
  cursor: pointer;
  border-radius: .25em;
  flex-grow: 1;
  justify-content: center;
  align-items: center;
  max-width: 400px;
  padding: 1.5em 0;
  margin-bottom: 60px;
  font-size: 1em;
  line-height: 1;
  text-decoration: none;
  display: flex;
  position: relative;
  width: 90%;
}

@media (min-width: 768px) {
  .btn-animate-chars {
    margin-bottom: 0;
  }
}


.btn-animate-chars--center {
  margin-left: auto;
  margin-right: auto;
}

.btn-animate-chars__text {
  white-space: nowrap;
  line-height: 1.3;
}

/* Characters */
.btn-animate-chars [data-button-animate-chars] {
  overflow: hidden;
  position: relative;
  display: inline-block;
}

.btn-animate-chars [data-button-animate-chars] span {
  display: inline-block;
  position: relative;
  text-shadow: 0px 1.3em currentColor;
  transform: translateY(0em) rotate(0.001deg);
  transition: transform 0.6s cubic-bezier(0.625, 0.05, 0, 1);
}

.btn-animate-chars:hover [data-button-animate-chars] span {
  transform: translateY(-1.3em) rotate(0.001deg);
}

/* Background */
.btn-animate-chars__bg {
  background-color: #fff;
  border-radius: .25em;
  position: absolute;
  inset: 0;
  transition: inset 0.6s cubic-bezier(0.625, 0.05, 0, 1);
}

.btn-animate-chars:hover .btn-animate-chars__bg {
  inset: 0.125em;
}

.btn-animate-chars--black {
  margin-top: 30px;
  margin-bottom: 0;
}
.btn-animate-chars--black, .btn-animate-chars--black:hover {
  color: #fff;
}
.btn-animate-chars--black .btn-animate-chars__bg {
  background-color: #000;
}