hai un posizionamento inatteso perche' l' elemento e' in posizionamento relativo,
quindi nel normale flusso di visualizzazione del documento,
quindi dipendente da eventuali margini/padding di elementi che lo contengono (nella fattispecie il body)
che tu non ti sei preoccupato di azzerare

altrimenti settalo in posizionamento assoluto e il problema non sussiste


poi, per questi calcoli e' futile basarsi sullo schermo perche' non e' detto che la finestra venga massimizzata, quindi basati sulle dimensioni della parte visibile del documento (viewport)

ciao