* feat: we do al il check to move sat and 7 am classes to async
* feat: it is 5 am ohhhhh boy i could go for some mighty mo's rn
* feat: a derek
* feat: undo
* chore: lint
* chore: lint x2
* feat: horizontal line
* feat: dash changed to —
* feat: remove conditional centering if no timeAndLocation found
* style: his majestys style changes
* style: 2
* style: x3
* style: x4
* style: x5
* 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>