Josh -- Thanks a ton!!!. This does solve the problem perfectly in Firefox, and still works fine in Chrome and Edge.
It does break things for IE 11, though. Strangely, CodePen won't even show the HTML or CSS code in IE 11 (it does that for my Pen as well).
The overall problem is devilish. The HTML is slightly different for IE < Edge because preserve-3d is not supported. I hate to give up the animation, because it's so nice (and IE users don't deserve to see it
). The button rotates 45 degrees to show the bottom edge, which becomes a standard progress bar. The button text changes to describe the upgrade steps. The width of the bar and the text are done with JavaScript inside a sequence of Ajax calls to the various upgrade processors.
In IE < Edge, there's no 3d rotation, and the whole button becomes the progress bar, though the text still gets updated. With your code, there's no progress bar in IE, though the text still changes. Everything I've done to fix that either makes the progress bar cover the text, or shows no progress. I can't figure out why, since that part was working and your code shouldn't affect the IE button.
What makes it so horrible is that 90% of the changes I make to style the button mess up the 3D.
Since your code works fine everywhere but IE < Edge, I'm re-doing the IE CSS to show the progress bar in the bottom margin of the button. I'm close (fingers crossed) to making that work. That should make it work fine in older versions of IE as well.
Thanks again. It could have taken me forever to find your solution.