Hey, thanks for the kind words! Glad you had a chance to stretch out and explore the space. :)
Great question about storing the poem lines - if I was re-making this from scratch today, I'd likely come up with a much different (and more modular) solution, but this thing is built in Twine 1 (lol) and was very much a learn-as-I-went thing.
Essentially each potential line you can pick is attached to a Twine passage titled with the exact same text. Navigating to that passage then allows the game to store the passage title as a variable's value using the passage() function. Then it's just a matter of keeping track of which line of the poem's 14 lines the player has reached, each of which is its own variable. Whenever you read your own poem, the game prints each the value of each variable in order (hence why you can't rearrange anything after the fact!)
I suppose that, in fiction, I liked the idea of getting locked in to your order, as if you're writing down the lines in pen as you find them in a notebook or playing a game of exquisite corpse with yourself. But I'm not sure which came first - that impulse or the mechanical limitations I built for myself :)
Thanks for playing!