Relleno inset vertical

Relleno inset vertical: botón en CSS. Copia las reglas, o el prompt que reproduce el resultado.

inset-filloutlinepillbox-shadowbottom-up

CSS
.btn-147 {
  font: 600 14px/1 system-ui,sans-serif;
  color: #be123c;
  background: transparent;
  border: 2px solid #be123c;
  border-radius: 999px;
  padding: 12px 26px;
  cursor: pointer;
  box-shadow: inset 0 0 0 0 #be123c;
  transition: box-shadow .25s,color .25s
}
.btn-147:hover {
  box-shadow: inset 0 -48px 0 0 #be123c;
  color: #fff
}
.btn-147:focus-visible {
  outline: 2px solid #be123c;
  outline-offset: 3px
}
.btn-147:active {
  box-shadow: inset 0 -48px 0 0 #9f1239;
  border-color: #9f1239
}
HTML
<button class="btn-147">Subscribe</button>
Prompt

Una píldora de contorno rosa: fondo transparente, borde de 2px #be123c, texto rosa de 14px semibold, padding de 12px por 26px. Al pasar el cursor un relleno rosa sube desde abajo (box-shadow inset con un offset vertical de -48px) y el texto se vuelve blanco, 250ms. En active usa el #9f1239 más oscuro. Foco con outline rosa de 2px y offset de 3px.