Implement proper viewport scaling