Dove e` sparito il width:100%; height:100%; che c'era nel html e body?
Se non li metti, il 100% che usi sotto non ha senso (non sa a cosa si deve riferire).

PS: il resto del CSS non lo capisco. Manca l'HTML cui si riferisce.
E attento all'ordine: conviene sempre partire dal generale (esterno) e procedere verso il particolare (blocchi piu` interni): il CSS e` "a cascata", ed una definizione successiva sovrascrive una precedente