Зачем там псевдоэлементы?
Просто два фона, один прибит к верху body, другой к низу, остальное цвет.
Множественные фоны пишутся через запятую.
На всякий случай, потому что когда-то вам всё таки придется использовать и псевдо.
Во-первых, отрицательный z-index.
Во-вторых, свойство pointer-events.