* feat: show async courses in the bottom bar
* fix: hide "Async/Other" header when there are no async courses, off-by-n error
(where n is the number async courses)
* refactor: move types closer to map instead of weird "as boolean"
* refactor: move satisfies to return type
* feat: screenshot whole page, hide certain elements, screenshot fixed size
* refactor: use variants instead of groups and custom rules
* feat: scaled header, smaller body, weird padding/margin changes
* feat: consistent sizing & style regardless of zoom
* feat: use downloadBlob instead of hand-rolled image saving
* fix: be type safe is toBlob returns Promise<null>
* fix: revoke object url when it should be
* fix: animation scheduling
---------
Co-authored-by: Razboy20 <razboy20@gmail.com>