diff --git a/design/arcade/arcade_bedlam.png b/design/arcade/arcade_bedlam.png
index b5e3e74..0ca2a68 100644
Binary files a/design/arcade/arcade_bedlam.png and b/design/arcade/arcade_bedlam.png differ
diff --git a/design/arcade/arcade_bedlam.svg b/design/arcade/arcade_bedlam.svg
index 6624a05..5f81315 100644
--- a/design/arcade/arcade_bedlam.svg
+++ b/design/arcade/arcade_bedlam.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/design/arcade/arcade_menu.png b/design/arcade/arcade_menu.png
index e3a6ae0..bba8e0c 100644
Binary files a/design/arcade/arcade_menu.png and b/design/arcade/arcade_menu.png differ
diff --git a/design/arcade/arcade_menu.svg b/design/arcade/arcade_menu.svg
index 65d71f0..3c338b2 100644
--- a/design/arcade/arcade_menu.svg
+++ b/design/arcade/arcade_menu.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/design/arcade/build-arcade.py b/design/arcade/build-arcade.py
index 613964c..c4fac36 100644
--- a/design/arcade/build-arcade.py
+++ b/design/arcade/build-arcade.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""Orbit Arcade: logo, games menu and an OrbitHive Bedlam play screen, as design proofs. Original artwork; nothing here is in the app.
-The game list beyond Bedlam and Snake is a suggestion, and scores are placeholders."""
+Paul approved this game list on 2 November 2026: small games only, to keep the app small. Scores are placeholders."""
import math, random, subprocess
from pathlib import Path
HERE = Path(__file__).parent
@@ -78,7 +78,7 @@ for j in range(5):
for i in range(9 - (j % 2)):
if (j == 4 and i % 3 == 1): continue
arena += piece(150 + i * 92 + (j % 2) * 46, 300 + j * 80, 50, rnd.choice(PIECES))
-write('arcade_menu', 1920, 1080, '' + comb(1920, 1080) + stars(1920, 1080) + mark(30, 2, .23) + text(176, 76, 'ORBIT', 25, '#F5F7FF', 'Barlow', 'font-weight="600" letter-spacing="9"') + text(174, 130, 'ARCADE', 56, 'url(#honey)', 'Anton', 'letter-spacing="2"') +
+write('arcade_menu', 1920, 1080, '' + comb(1920, 1080) + stars(1920, 1080) + mark(30, 24, .23) + text(176, 76, 'ORBIT', 25, '#F5F7FF', 'Barlow', 'font-weight="600" letter-spacing="9"') + text(174, 130, 'ARCADE', 56, 'url(#honey)', 'Anton', 'letter-spacing="2"') +
'' + stars(1100, 900, 70, 11) + '' + arena + bee(190, 760, 1.2) + '' +
'' + text(380, 742, 'ORBITHIVE', 30, '#F5F7FF', 'Barlow', 'font-weight="600" letter-spacing="10"') + text(376, 842, 'BEDLAM', 104, 'url(#honey)', 'Anton', 'letter-spacing="3"') +
tiles + text(48, 978, 'Best score', 26, '#AEBBD2') + text(190, 978, '48,200', 30, '#FFFFFF', 'Barlow', 'font-weight="600"') + text(320, 978, 'Wave 12', 26, '#AEBBD2') + text(48, 1038, 'OK Play', 26, '#AEBBD2') + text(190, 1038, '◄►▲▼ Choose a game', 26, '#AEBBD2') + text(480, 1038, 'Back Leave the arcade', 26, '#AEBBD2'))
@@ -93,7 +93,7 @@ for j in range(7):
aim = ''.join(f'' for k in range(1, 7))
write('arcade_bedlam', 1920, 1080, '' + stars(1920, 1080, 130) + '' +
'' + hive_pieces + aim + piece(960, 930, 58, '#3FC1FF') + '' +
- mark(40, 16, .2) + text(160, 72, 'ORBITHIVE', 22, '#F5F7FF', 'Barlow', 'font-weight="600" letter-spacing="7"') + text(158, 134, 'BEDLAM', 62, 'url(#honey)', 'Anton', 'letter-spacing="2"') +
+ mark(40, 34, .2) + text(160, 72, 'ORBITHIVE', 22, '#F5F7FF', 'Barlow', 'font-weight="600" letter-spacing="7"') + text(158, 134, 'BEDLAM', 62, 'url(#honey)', 'Anton', 'letter-spacing="2"') +
text(60, 250, 'SCORE', 26, '#AEBBD2', 'Barlow', 'font-weight="600" letter-spacing="4"') + text(60, 320, '12,450', 68, '#FFFFFF', 'Anton') + text(60, 410, 'WAVE', 26, '#AEBBD2', 'Barlow', 'font-weight="600" letter-spacing="4"') + text(60, 480, '7', 68, '#FFFFFF', 'Anton') + bee(210, 760, 1.5) +
text(1540, 250, 'NEXT', 26, '#AEBBD2', 'Barlow', 'font-weight="600" letter-spacing="4"') + piece(1590, 320, 48, '#FF5A4F') + text(1540, 450, 'BEST', 26, '#AEBBD2', 'Barlow', 'font-weight="600" letter-spacing="4"') + text(1540, 520, '48,200', 56, '#FFFFFF', 'Anton') +
text(1540, 640, '◄► Aim', 26, '#AEBBD2') + text(1540, 682, 'OK Fire', 26, '#AEBBD2') + text(1540, 724, 'Back Pause', 26, '#AEBBD2'))
diff --git a/docs/roadmap.md b/docs/roadmap.md
index 8371daf..5f9bf8e 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -95,6 +95,8 @@ Paul's ideas, 1 November 2026. Not fixes and not scheduled.
- **Subtitles default (Paul, 1 November 2026):** a setting behind the gear for subtitles on or off by default, in the viewer's language where a programme has it.
- **Orbit Drive-In name (Paul, 1 November 2026):** decided, replacing OrbitOffice. Event types inside it are Orbit Marquee, Orbit Double Bill, Orbit Triple Bill and The Late Show. The briefs and design/interface still show the old name.
+- **Orbit Arcade (Paul, 2 November 2026):** the look in design/arcade is approved: logo, honeycomb menu and Bedlam screen. Games are OrbitHive Bedlam, Snake, Block Drop, Brick Break, Pairs and Patience. Small games only, so the app stays small: drawn in code with no game engine, and measured for size when built. Not scheduled.
+
## Channel numbers
Paul's direction, 1 November 2026: 101, 102 and 103 should become Orbit 1, Orbit 2 and Orbit Three. Today 102 is After Dark and 103 is Vortex, so they'll move when the generic channel list arrives, with a tested migration. Other numbers aren't mapped yet.