I'm glad to hear that the core concept worked in the end! I wasn't sure how it would be received, so I'm glad it ended up being interesting.
I hadn't thought about the gray color of the shapes influencing guesses at all; that is a very fair point.
As for how I implemented the textboxes, I was just using the textbox macro in Twine in the Sugarcube 2 format. You can define a passage for the textbox to send you to in the macro itself. It's fully explained here: https://www.motoslave.net/sugarcube/2/docs/#macros-macro-textbox
Thanks for the kind words!