Same learning loop in every mode — English sentence with a blank, Korean translation, four candidate words. Only the timing layer changes. Play each one and compare how much attention the rhythm steals from the reading.
Everything here is synthesised. The music is generated live with Web Audio at the tempo you set — no audio files, no licensing. The game clock reads off AudioContext.currentTime, never the animation frame, which is the one thing that keeps a rhythm game from drifting.