NOTE FOR HUMAN READERS (the person reading this file, not the AI building the game):
To build, upload this file to your favorite chatbot, download the index.html it produces and open it in your browser.
0. CONTENT GENERATION
---------------------
Create a dataset of all multiplication facts from the 2 to 9 times tables, smaller number first (36 facts, ids 1-36, ordered by product).
Dataset Fields: id | text (the multiplication, e.g. "7 x 8") | answer (the product as digits, e.g. "56")
1. GLOBAL CONFIGURATION
-----------------------
- CARDS_PER_ROUND: 8
- TARGET_LANGUAGE: Math
- GAME: Multiplication
- LANGUAGE_CODE: EN
- MUTED: true
Act as an expert Frontend Engineer.
Build a single, standalone HTML file (index.html) for a matching game.
IMPORTANT: Do not add any notes at the top or bottom of the HTML file.
2. TECHNICAL STACK & SETUP
--------------------------
- Plain HTML, CSS and JavaScript only. NO libraries or frameworks of any kind: no React, no Vue, no jQuery, no Tailwind, no Babel, no CSS framework, no web fonts.
- The page MUST NOT load anything from any server: no external :
- One item per line, keys in the order id, text, answer. Right-align the id and pad the text value with spaces so the "answer" keys line up in one column.
- CRITICAL: RAW_DATA must be a strictly valid JSON array of objects, with double quotes (") for all keys and string values.
- The main script MUST NOT declare RAW_DATA again; it reads this global RAW_DATA. In its place it has the comment /* RAW_DATA (the word list) is defined near the top of this page. */
The page body holds the app's fixed HTML (header, stats line, empty game area with its two columns, footer, the How to Play panel and the "You Won!" overlay, both hidden at first). The main