If I were to put 2 of these on a page, it would look like

Only by deleting most of it. I don’t have time today to guide you through that, as I’m departing in a few hours.

With IE11 and the nodeList.forEach issue, you can add in support for it using the following code, sourced from https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#Polyfill

if (window.NodeList && !NodeList.prototype.forEach) {
    NodeList.prototype.forEach = function (callback, thisArg) {
        thisArg = thisArg || window;
        for (var i = 0; i < this.length; i++) {
            callback.call(thisArg, this[i], i, this);
        }
    };
}

The best place to put that code is at top of your script.