Quanto ao trecho a seguir:
Para terminar, eu quero que sempre que o mouse estiver por cima do meu elemento, o cursor, o visualizador do mouse seja a mão e não a seta, para mostrar para o meu usuário que isso aqui é clicável.
Se a condição é "sempre que o mouse estiver por cima do meu elemento", entende-se que se deseja pôr a formatação/estilo do cursor quando e enquanto ocorrer tal ação (ou evento).
Nesse caso, a inclusão da linha cursor: pointer não deveria ser inserida no bloco do seletor .enviar:hover em vez de ser inserida no bloco do seletor .enviar?
Eu vi que funciona nas duas formas (inserido em .enviar ou em .enviar:hover), mas ao menos a semântica não estaria mais correta se a propriedade cursor estivesse sendo editada sob .enviar:hover?