canvas fills the screen and applies styling correctly with devicePixelRatio