Original prompt
Build a top-down 2D arcade driving game as a single self-contained HTML document using HTML5 canvas and vanilla JavaScript only - do NOT use Three.js or any game engine. The player steers a car along one continuous drivable track while a viewport camera keeps the car centered or smoothly following. The single track must pass through visually distinct sections IN ORDER: an open section, then a darker narrower tunnel section, then a bridge section crossing water or a differently colored surface, and finally a finish line; sections should be labeled or clearly color-coded with simple flat graphics (rectangles, circles, colored paths - realistic physics not required). Place at least 3 obstacles on or near the track. Implement collision detection between car and obstacles (simple distance or axis-aligned box checks are fine): on collision reset the car back to the start of the track and show a brief crash message. Arcade steering via arrow keys and/or WASD with momentum-free responsive turning is expected. Reaching the finish line triggers a clear win state showing elapsed finish time. On-screen instructions list the controls, and simple UI messages announce collision and win states. SCORING & PERSISTENT HIGH-SCORE BOARD (REQUIRED): The game MUST award points for gameplay actions and maintain a persistent high-score table. When a run finishes, prompt the player to enter their name/initials and record it with the score. Save the top 5 scores (name + score) to localStorage, load and display them on startup and on the game-over screen, and write a new entry whenever a run finishes. Scores must survive restarting the page. Every new game MUST start with the score reset to 0 - never carry over the previous game's score into the next session. SUCCESS CRITERIA: the page must (1) render a scrolling top-down track with camera follow and the ordered open/tunnel/bridge/finish sections visibly distinct, (2) steer the car with keyboard input using arcade-style movement wired to arrow/WASD handlers, (3) detect car-obstacle collisions, reset the car to the start and message the crash, (4) detect finishing the lap, show the win state with time, and support restart, and (5) auto-start / render its initial state without any user gesture so the headless renderer captures a non-blank frame. OUTPUT FORMAT: Respond with the COMPLETE, self-contained HTML document in ONE single ```html code block. Do NOT split the code across multiple blocks, do NOT include a thinking summary inside the block, and do NOT place any prose, explanation, or comments between the opening and closing of the code block. The entire document (doctype through </html>) must be inside one fenced code block so it can be extracted and rendered verbatim. OUTPUT REQUIREMENT: Respond with ONLY the raw, runnable source code in a single fenced code block, with the first line starting at column 0 (no leading indentation). Do not include any thinking, explanation, summary, or prose before or after the code, and keep comments inside the code minimal.