diff --git a/docs/plans/2026-03-20-header-meter-implementation.md b/docs/plans/2026-03-20-header-meter-implementation.md
new file mode 100644
index 0000000..2cce6ce
--- /dev/null
+++ b/docs/plans/2026-03-20-header-meter-implementation.md
@@ -0,0 +1,388 @@
+# Header Text Player Meter — Implementation Plan
+
+> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
+
+**Goal:** Add a gradient fill meter to the "ROOM CODE:" header that visually indicates lobby fill (playerCount / maxPlayers), animating left-to-right from the header color (pink) to white, with a pulse effect at 100%.
+
+**Architecture:** The existing `RoomCodeDisplay` component gains meter state tracking and a `requestAnimationFrame` interpolation loop. CSS `background-clip: text` with a dynamic `linear-gradient` replaces the flat `header.style.color`. The `OverlayManager` already broadcasts `playerCount` and `maxPlayers` in context — no state management changes needed.
+
+**Tech Stack:** Vanilla JS (ES modules), CSS `background-clip: text`, `requestAnimationFrame`.
+
+---
+
+### Task 1: Revert Player List Default to Unchecked
+
+**Files:**
+- Modify: `optimized-controls.html:669` (the `player-list-enabled` checkbox)
+
+**Step 1: Remove the `checked` attribute**
+
+In `optimized-controls.html`, change:
+
+```html
+
+```
+
+to:
+
+```html
+
+```
+
+**Step 2: Verify in browser**
+
+Open `http://localhost:8080/optimized-controls.html`, expand Player List Settings, confirm the checkbox is unchecked by default.
+
+**Step 3: Commit**
+
+```bash
+git add optimized-controls.html
+git commit -m "fix: disable player list by default"
+```
+
+---
+
+### Task 2: Update `#header` CSS for Gradient Text Support
+
+**Files:**
+- Modify: `optimized-controls.html` — `