Until recently, the FAQ said it plainly: no mobile support, might get to it eventually. "Eventually" turned out to hinge on one design question that took longer to answer than the actual implementation.
The normal way to add touch controls to a platformer is four labeled buttons: Left, Right, Jump, maybe Fire. Straightforward, except this game's entire mechanic is that "left" and "right" aren't fixed to any particular key — the mapping shuffles every level (see the previous post for the full mechanism). Labeling a touch button "Jump" would mean that button's actual behavior changes underneath its own label every single level. That's not translating the desktop experience to mobile, it's removing the entire point of the game for anyone who doesn't have a keyboard.
The touch controls ended up mirroring the physical keyboard layout instead of the logical one: an up button, a left button, a right button, arranged like the arrow key cluster, with no text — just directional arrows, exactly as unlabeled as the arrow keys themselves. Underneath, each button does exactly what the matching physical key would do: pressing the on-screen "up" arrow sets game.keys['ArrowUp'] = true, precisely mirroring the keyboard handler. The shuffle still applies identically on a phone as it does on a keyboard, because as far as the game logic is concerned, nothing changed — it's still just a key being held down.
Weapon fire reads game.keys[' '] continuously while held, so a Fire button just needs to hold that flag the same way. Dash is a one-shot ability call, not a held key, so its button fires useAbility('Dash') directly on tap — no different from how the Shift/E keyboard handler already worked.
The first working version had the dpad and action buttons placed directly at the bottom corners of the screen, which looked fine on a laptop browser window and then completely overlapped the in-game control hint text the moment it was tested on an actual narrow phone viewport. The pause button also landed directly on top of the existing Settings button for the same reason — desktop testing doesn't surface these because there's simply more vertical room to work with. Both got fixed once the layout was checked on a real narrow, short mobile viewport instead of just a resized desktop window.
On a touch device, the controls appear automatically on the platformer and Snake pages — no settings toggle required.