Para transformar o código proposto em um grid, bastava transformar a classe do elemento pai "grid" em um flex:
.grid{
display: flex;
flex-wrap:wrap;
}
O atributo display: flex;
faria os elementos filhos ficarem lado a lado em linha, e o atributo flex-wrap:wrap;
faria os elementos quebrarem de linha ao chegarem no final da mesma.