Setup a web microservice that can accept current state, user input, and
returns state changes that result from the input. You can write that in
PHP, Perl, Python, NodeJS, Ruby-on-Rails, etc...

Make your user interface Javascript, maybe using React or Angular so the
page never has to reload. You don't have to get super fancy either - even
just using jQuery you could accomplish this, though React has some nice
state handling features, and Angular is also really good with inferfacing
with microservices.

Yeah - I would do this 100% in Python, but here's the main reason I would
consider this option: Audience. You mentioned that you didn't want to pick
something obscure (Atari 800), and this would definitely expand your
potential audience as well as give you direct experience coding a polyglot
application.