- make viewports resizable.
- set upper and lower limits for viewport size.
- more improvements to viewport resizing.