C'erano DUE errori di sintassi, di quelli che IE non rileva ma che non piacciono ad altri browser:
l'ordine delle pseudoclassi e i nomi degli id.
In questi casi i validatori di solito sono un buon aiuto (non trovano ttuto, ma una buona parte).

Inoltre facendo le cose per been, si evitano anche eventuali erorri di interpretazione in nuove versioni dei browser.