Original prompt
Build a polished Memory card matching (concentration) game as a single self-contained HTML document using vanilla HTML, CSS, and JavaScript only - no frameworks. Board: a 4x4 grid of 16 cards forming 8 pairs; pair faces share the same distinguishable symbol (emoji, letter, or colored shape). Cards start face-down and positions shuffle every New Game. Gameplay: clicking a face-down card flips it face-up; at most two cards may be face-up at once and extra clicks while two are showing are ignored; if the two revealed cards match they stay face-up locked and can never be flipped again, otherwise both flip back face-down after a consistent 500 ms delay; one move equals one attempt to match a pair of flips, and the move count displays live. When all 8 pairs are matched show a clear win message with the total moves used. A New Game button reshuffles the deck, resets the move counter to 0, hides the win message and returns all cards face-down. Style: modern responsive card flip animations with clear face-down versus face-up versus locked-matched visual states, desktop layout. 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 shuffled 4x4 board of 16 cards with obvious face-down/face-up/locked states, (2) enforce the two-card flip limit, lock matched pairs, flip mismatches back after a fixed delay, and count moves as pairs of flips, (3) detect the win when all 8 pairs match and announce total moves, (4) reshuffle and fully reset state on New Game, 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.