
main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

h1 {
  margin-bottom: 1.5em;
  font-size: 1.875em;
  line-height: 1.2;
  font-weight: 700;
}

.btn {
  display: inline-block;
  position: relative;
  cursor: pointer;
  overflow: hidden;
  margin: 0.375em;
  padding: 0.75em 1.5em;
  font-size: 1.125em;
  text-transform: uppercase;
  letter-spacing: 0.00313em;
  border: none;
  border-radius: 0.125em;
  -webkit-transition: background-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), border-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), box-shadow 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.btn:before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.btn:hover, .btn:focus {
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
  box-shadow: rgba(0, 0, 0, 0.4) 0 0.375em 1.5em -0.375em;
}
.btn:hover:before, .btn:focus:before {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.btn:active {
  -webkit-transform: translateY(-3px);
          transform: translateY(-3px);
  -webkit-transition: -webkit-transform 0s;
  transition: -webkit-transform 0s;
  transition: transform 0s;
  transition: transform 0s, -webkit-transform 0s;
}
.btn--action [class^="word"] {
  display: inline-block;
}
.btn--action [class^="char"] {
  display: inline-block;
  position: relative;
  overflow: hidden;
  z-index: 2;
}
.btn--action [class^="char"].letter-space {
  width: 0.25em;
}
.btn--action [class^="char"] span {
  display: inline-block;
}
.btn--action [class^="char"] span:before {
  content: attr(data-letter);
  display: block;
  position: absolute;
  top: 110%;
  z-index: 3;
}

.btn--one {
  color: black;
  background-color: lightblue;
}
.btn--one:before {
  background-color: #86c5da;
  background: -webkit-linear-gradient(bottom, #86c5da, transparent);
  background: linear-gradient(to top, #86c5da, transparent);
}
.btn--one:hover, .btn--one:focus {
  outline-color: lightblue;
}
.btn--one span:before {
  color: white;
}

.btn--two {
  color: black;
  background-color: darkseagreen;
}
.btn--two:before {
  background-color: #6fa96f;
  background: -webkit-linear-gradient(bottom, #6fa96f, transparent);
  background: linear-gradient(to top, #6fa96f, transparent);
}
.btn--two:hover, .btn--two:focus {
  outline-color: darkseagreen;
}
.btn--two span:before {
  color: white;
}

.btn--three {
  color: white;
  background-color: crimson;
}
.btn--three:before {
  background-color: #ed365b;
  background: -webkit-linear-gradient(bottom, #ed365b, transparent);
  background: linear-gradient(to top, #ed365b, transparent);
}
.btn--three:hover, .btn--three:focus {
  outline-color: crimson;
}
.btn--three span:before {
  color: black;
}

.btn--four {
  color: white;
  background-color: lightslategray;
}
.btn--four:before {
  background-color: #94a2af;
  background: -webkit-linear-gradient(bottom, #94a2af, transparent);
  background: linear-gradient(to top, #94a2af, transparent);
}
.btn--four:hover, .btn--four:focus {
  outline-color: lightslategray;
}
.btn--four span:before {
  color: black;
}

.btn--five {
  color: black;
  background-color: tan;
}
.btn--five:before {
  background-color: #c49c67;
  background: -webkit-linear-gradient(bottom, #c49c67, transparent);
  background: linear-gradient(to top, #c49c67, transparent);
}
.btn--five:hover, .btn--five:focus {
  outline-color: tan;
}
.btn--five span:before {
  color: white;
}
