Nabend!
Du gibst deinem 'Hintergrundbild' nen z-index von 1. Wo liegt denn der z-index deines Textes? Nicht bei 2. Du gibst dem body einen z-index von 2. Alle darin enthaltenen elemente liegen damit definiv auf z-index 2 in der Ebene in der sich dein body befindet. Neben einem body ist aber selten noch etwas anderes im html bereich. Jedenfalls nichts was man sieht.
Du hast also erfolgreich deenen Body vor den head geschoben! Das war aber nicht, was Du wolltest...