Styling: Shift doesn't get a highlighted background
There should be a separate CSS rule for buttons in a locked state, like:
:stuck { color: foo }
Shift_L:stuck { color: foo }
Shift_L:locked { color: foo }
Stuck in this context is "will get unstuck on next press", and "locked" is "will stay until pressed".
Currently, Shift doesn't change background color when in the stuck state.