>I went back to the game it had restarted
Oh no! Your browser probably decided to clean up the RAM or something. I'm not sure if there's a way for the page to "ask" the platform not to clean it, perhaps I could simulate user input. Will research this later.
Puzzle of the day and increasing penalty are great suggestion, thanks!
Storing the state between levels (just score and level number?) in local storage would do the trick. Erase the state at game over. If the page launches with a state in local storage you know a game didn't finish and can resume from the start of the most recent level
Ah. I was thinking how to actually save all previous levels, but that is not needed, just the level number is needed, you're right.