Swapped markup creation to use jQuery, small CSS tweaks

Instead of using strings for markup, I've swapped in jQuery's element creation/manipulation machinery to make this easier to read, to maintain, and to configure.

Small CSS tweaks related to an invalid property value along with a less aggressive opacity solution (individual rgba values for background-color + text)