Usted define /top:50%/ y la cuestión es ¿50% de qué?
Como fue tan parco en sus códigos, no se si su html ycss sólo contiene ese código o hay más.
Si resulta que esa caja /#contenido/ es hija del html y ni éste ni body tiene declarado valor para /height/, el valor base para calcular el 50% es 0 (cero), por lo que la mitad de su caja desaparece por arriba.
Solución: añada a sus estilos:
Cita: html, body {
height:100%;
width:100%;
}
Editado:
Respuesta redactada antes de ver el comentario #3