Here's the Minesweeper prompt, same style and detail level, with exact rules, difficulty presets, and visuals hardcoded so both models build from identical specs.

Build a single self-contained HTML file (no build step, no external assets other than optional fonts/icons from a CDN) that renders a fully playable Minesweeper game. The game must implement classic Minesweeper rules exactly and match the following specifications.
1. Core Rules (implement precisely)

A grid of cells, some randomly containing mines. The player reveals cells trying to avoid mines.
Revealing a mine ends the game (loss). Revealing all non-mine cells wins.
Each revealed safe cell shows a number = count of mines in its 8 neighbors. A cell with 0 adjacent mines triggers a flood-fill: it auto-reveals all connected zero-cells and their numbered borders (iterative or recursive flood fill).
First-click safety: the player's first click must never be a mine, and ideally should open onto a zero (generate or shuffle mines after the first click so the first cell and its neighbors are clear).
Right-click (or long-press on touch) toggles a flag on an unrevealed cell. Flagged cells cannot be revealed until unflagged. Optionally cycle flag → question mark → none.
Chord/quick-reveal: clicking a revealed number whose adjacent flag count equals the number reveals all remaining unflagged neighbors at once (and can trigger a loss if a flag was wrong).

2. Difficulty Presets

Provide three presets plus the active one shown. Use these exact values:

Beginner — 9×9 grid, 10 mines
Intermediate — 16×16 grid, 40 mines
Expert — 30×16 grid (30 wide, 16 tall), 99 mines
A difficulty selector (buttons or dropdown) starts a fresh game on change.

3. Header / Status Bar

A classic-style status bar above the grid containing: a mine counter (mines remaining = total mines − flags placed, can go negative), a reset button (a smiley face: 🙂 default, 😎 on win, 😵 on loss; clicking it starts a new game with the same difficulty), and an elapsed-time counter (starts on first click, stops on win/loss, counts seconds).

4. Grid Rendering

Render the grid as a CSS Grid or table of square cells. Cells must stay square at all sizes and the whole board must fit common screens (Expert 30-wide should not overflow horizontally; scale cell size down if needed).
Unrevealed cells: raised/beveled look, light grey #C0C0C0 with classic highlight/shadow borders. Revealed cells: flat, slightly darker #BDBDBD with a thin border.
Number colors must follow the classic palette: 1 #0000FF, 2 #008000, 3 #FF0000, 4 #000080, 5 #800000, 6 #008080, 7 #000000, 8 #808080.
Mines render as a black circle/💣; a flagged cell shows a flag 🚩; a question mark shows ❓.
On loss: reveal all mines; the clicked mine cell highlights red #FF0000; cells incorrectly flagged (flag on a non-mine) show a crossed-out mine.

5. Win / Loss Handling

Win: detected when all non-mine cells are revealed. Auto-flag all remaining mines, set the smiley to 😎, stop the timer, and show a subtle win state.
Loss: reveal the board as described, set smiley to 😵, stop the timer, and disable further cell input until reset.

6. Interaction Details

Left-click reveals; right-click toggles flag (suppress the browser context menu on the grid).
Touch support: tap to reveal, long-press (~400ms) to flag.
Prevent flagging/revealing after game over. Prevent revealing a flagged cell.

7. Visual Design & Polish

Clean classic Minesweeper aesthetic, but crisp and modern: a centered game container on a neutral page background #ECECEC, the board in a bordered "window" panel.
Subtle press animation on cell reveal; the flood-fill reveal can cascade with a tiny stagger for visual feedback (optional, must not slow gameplay).
Title "Minesweeper" and the difficulty selector above the status bar.
Fully responsive; usable on mobile (board scales, controls reachable).

8. Constraints

Single .html file. All CSS and JS inline; only optional fonts/icons from a CDN. Must run by opening directly in a browser with no console errors.
Game logic must be correct and self-contained (proper mine placement respecting first-click safety, accurate neighbor counts, correct flood fill, correct win/loss detection).
Do NOT use localStorage/sessionStorage — keep all state in memory.
Code commented at each major section (board generation, reveal/flood-fill, flagging, chording, win/loss).

Success criteria for comparison: rule correctness (first-click safety, flood fill, accurate adjacency counts, chording, win/loss detection); robustness of flag vs. reveal input including right-click and touch; faithful classic visuals with the correct number-color palette; responsive layout that handles the 30-wide Expert board; reset/timer/mine-counter behavior; clean, well-commented code.