Nice submission! My highest score was 42 and I ended with 14 coins. I enjoyed the variety of sounds, and how visceral some of them get when you lose.
When I noticed that it was an HTML game, I opened up the source code so I could skim it later. It helped me confirm some assumptions that I made while I played. For example, I could tell by the sound and lack of boundaries that the lanes cycle around a cylinder (modulus 3). I really liked this design decision because I never felt trapped as the game got going; instead, my losses were purely by my mistakes. And the math for that and how you handle panning is cleverly simple in your code!
My biggest snag is how coins are treated like obstacles, but they don’t have a sound to help me catch them. Perhaps a sound makes them too easy to collect, but there would still be skill in navigating the obstacles to reach them! If the randomness is intentional, then I might have put coins behind their own timer separate from the obstacles, so acquiring them feels a little more regular.
Overall, congrats on this solid start with your first game! Keep iterating and keep us updated on your progress. With a bit more polish, it can be great.