:root {
  --pageBlack: #262626;
  --pageYellow: #ffd83e;
  --pagePurple: #552b55;
  --pageRed: #E1332d;
  --pageGreen: #2ce771;
  --pageGrey: #212121;
  --lightBlue: #42a8de;

}
body {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  font-family: sans-serif;
  background-color: var(--pageGrey);
}
a {
  text-decoration: none;
  padding: 15px 30px;
  color: #00aeff;
  font-size: 19px;
  letter-spacing: 3px;
  border: 2px solid var(--lightBlue);
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
  transition: all .5s;
}
a:hover {
  color: white
}
.wave {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: calc(100% + 22px);
  background-color: var(--lightBlue);
  transition: all 1s; 
  z-index: -1;

}
a:hover .wave {
  top: 0;

}
.wave:before {
  content: '';
  position: absolute;
  top: -22px;
  left: 0;
  width: 100%;
  height: 22px;
  background:url(../../img/wave.png);
  animation: wavy 0.5s linear infinite;
}
@keyframes wavy {
  0% {background-position-x: 0}
  100% {background-position-x: 118px;}
}