diff --git a/docs/ui/nr-z4nw-room-code.html b/docs/ui/nr-z4nw-room-code.html
new file mode 100644
index 000000000..754ce2c23
--- /dev/null
+++ b/docs/ui/nr-z4nw-room-code.html
@@ -0,0 +1,30 @@
+
The agreed design. The host is shown a six-character room code to read out (or copy); the joiner types it and the two connect. A code lasts 15 minutes and is renewed by itself. Every state is shown with its words exactly as they ship. The Play together button, the first window (Host this game / Join a game), the Connected view, the response-time words and the top-bar chip stay exactly as they are today.
Host — waiting · after Copy invite message · someone joined · code ran out · joiner left · service out of reach · no direct path · service busy
Host this game
✕1. Share the code2. Connected
Tell the other player this code:
K7Q-M4X
⟳ Waiting for the other player to type it…
CancelCopy invite messageCopy code
Host this game
✕1. Share the code2. Connected
Tell the other player this code:
K7Q-M4X
⟳ Waiting for the other player to type it…
Cancel✓ Invite copiedCopy code
Copied: “Play Super Mario Bros. 3 with me in NESER! Open https://neser.rmstdope.eu, press Play together, then Join a game, and type the code K7Q-M4X”
Host this game
✕1. Share the code2. Connected
Tell the other player this code:
K7Q-M4X
⟳ The other player is here — connecting…
Cancel
Host this game
✕1. Share the code2. Connected
Tell the other player this code:
T9W-2HB
The old code ran out, so here is a new one.
⟳ Waiting for the other player to type it…
CancelCopy invite messageCopy code
Host this game
✕1. Share the code2. Connected
Tell the other player this code:
T9W-2HB
The other player left before you were connected. Here is a new code.
⟳ Waiting for the other player to type it…
CancelCopy invite messageCopy code
Host this game
✕1. Share the code2. Connected
Network play can't start right now. NESER couldn't reach its meeting service on the internet. Check that this computer is online, then try again.
CloseTry again
Host this game
✕1. Share the code2. Connected
Couldn't reach the other player. Network play needs both computers on the same network (or the same VPN). Check that, then start again.
CloseStart again
Host this game
✕1. Share the code2. Connected
Too many games are being started right now. Wait a minute, then try again.
CloseTry again
Host — when the other player has a different NESER, the host is not told: their window keeps waiting, and the joiner tells them
Joiner — empty · connecting · wrong code · full · different NESER · service out of reach · too many wrong codes · service busy · no direct path · host left
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
ABC-DEF
Codes never use I, O, 0 or 1.
CancelJoin
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
⟳ Connecting…
Cancel
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4Y
Codes never use I, O, 0 or 1.
There's no game with that code. Check the code with the host and try again.
CancelJoin
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
That game already has two players. Ask the host to start a new game and tell you the new code.
CancelJoin
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
Different versions of NESER. You have NESER 1.3.0 (4f2a9c1), the host has 1.3.0 (b81e07d). You both need the same version to play together — reload the page on both computers.
Close
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
Network play can't start right now. NESER couldn't reach its meeting service on the internet. Check that this computer is online, then try again.
CancelJoin
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4Y
Codes never use I, O, 0 or 1.
Too many wrong codes. Check the code with the host, then press Start again.
CloseStart again
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
Too many games are being started right now. Wait a minute, then try again.
CancelJoin
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
Couldn't reach the other player. Network play needs both computers on the same network (or the same VPN). Check that, then start again.
CloseStart again
Join a game
✕1. Type the host's code2. Connected
Type the code the host tells you.
K7Q-M4X
Codes never use I, O, 0 or 1.
The host closed this game before you were connected. Ask them to start a new one and tell you the new code.
CancelJoin
Phone-sized window — the same window as a sheet from the bottom; the phone shows its capital-letters keyboard