Il problema è che il background-size: cover, lavora sul contenuto del tag <body>, che attualmente è vuoto.
Se non hai del contenuto, devi impostare un'altezza così almeno il browser sa cosa "coprire" .
se metti, ad esempio height:400px; non lascia lo spazio sotto.
Devi pensare che cosa avrà quella pagina, se farà scroll o no, se il contenuto avrà la stessa altezza ecct.
Poi dovresti resettare margin, padding a zero, allineamento testo ecct.
Una volta che hai fatto il reset per tutti i browser ( puoi includere il css, cerca su google normalize), allora
metti il resto