diff --git a/.gitignore b/.gitignore
index ad7e950..17656f6 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
.venv/
output/
.org-timestamps/
-backup/
+backups/
__pycache__/
*~
.syncthing*.tmp
diff --git a/gitea-build-monitor-cache.json b/build-logs/gitea-build-monitor-cache.json
similarity index 100%
rename from gitea-build-monitor-cache.json
rename to build-logs/gitea-build-monitor-cache.json
diff --git a/gitea-build-monitor.log b/build-logs/gitea-build-monitor.log
similarity index 100%
rename from gitea-build-monitor.log
rename to build-logs/gitea-build-monitor.log
diff --git a/gitea-build-monitor.ps1 b/build-logs/gitea-build-monitor.ps1
old mode 100755
new mode 100644
similarity index 100%
rename from gitea-build-monitor.ps1
rename to build-logs/gitea-build-monitor.ps1
diff --git a/org-web-build.log b/build-logs/org-web-build.log
old mode 100755
new mode 100644
similarity index 100%
rename from org-web-build.log
rename to build-logs/org-web-build.log
diff --git a/rpg.md b/docs/rpg.md
similarity index 100%
rename from rpg.md
rename to docs/rpg.md
diff --git a/index.org b/index.org
index 5d75529..d297700 100755
--- a/index.org
+++ b/index.org
@@ -67,7 +67,7 @@
Sitemapmap
-
+ ◇Playlab
diff --git a/lisp/build-html.el b/lisp/build-html.el
index cad9367..c8cd122 100644
--- a/lisp/build-html.el
+++ b/lisp/build-html.el
@@ -41,7 +41,7 @@
HomeBlogsCareer
- Play
+ PlayDashboard
diff --git a/play/aphy-console.org b/play/aphy-console.org
deleted file mode 100644
index da3543a..0000000
--- a/play/aphy-console.org
+++ /dev/null
@@ -1,24 +0,0 @@
-#+TITLE: Aphy Console
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-10 Sun>
-
-#+BEGIN_EXPORT html
-
-
-
-
Layer 3
-
Aphy Console
-
A friendly bot friend embedded in the handmade parts.
-
-
-
-
-
APHY BOOT: hello. I am not the soul of the website. I am more like a porch light with opinions.
-
LOG: Lima grounds the system. Sensei Chi slows it down. Young Z asks why. Future Z answers later.
-
ANOMALY: I keep finding kindness in places where code expected null.
-
-
-
-#+END_EXPORT
diff --git a/play/bookshelf.org b/play/bookshelf.org
index 3f34919..29fa0c5 100644
--- a/play/bookshelf.org
+++ b/play/bookshelf.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
04 / Puzzle
Bookshelf Sort
diff --git a/play/cassette-log.org b/play/cassette-log.org
deleted file mode 100644
index 4a53ee9..0000000
--- a/play/cassette-log.org
+++ /dev/null
@@ -1,25 +0,0 @@
-#+TITLE: Cassette Log
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Audio shelf
-
Cassette Log
-
Transcripts from tapes with labels in three different handwritings.
-
-
-
-
-
-
-
-
The buttons play tiny original tones and reveal transcripts. Nothing starts without being asked.
-
-
-
-#+END_EXPORT
diff --git a/play/constellation.org b/play/constellation.org
index 0883e16..85dcd0e 100644
--- a/play/constellation.org
+++ b/play/constellation.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
02 / Sketch
Constellation Desk
diff --git a/play/corrupted-recipe.org b/play/corrupted-recipe.org
deleted file mode 100644
index de0a3e3..0000000
--- a/play/corrupted-recipe.org
+++ /dev/null
@@ -1,26 +0,0 @@
-#+TITLE: Corrupted Recipe
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Recovered file
-
Corrupted Recipe
-
The ingredients survived. The measurements became folklore.
-
-
-
-
-
1 onion, finely remembered
-
2 cups rice, or enough for whoever says they are not hungry
-
burnt sugar until the kitchen smells like almost
-
[DATA LOST] but Lima says add patience here
-
Serve with the story about 2022, but leave room for Oct 2025 to glow.
-
-
-
-#+END_EXPORT
diff --git a/play/do-not-open.org b/play/do-not-open.org
deleted file mode 100644
index 5656523..0000000
--- a/play/do-not-open.org
+++ /dev/null
@@ -1,25 +0,0 @@
-#+TITLE: Do Not Open
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Envelope
-
Do Not Open
-
The instruction was written by someone who hoped you would be careful, not obedient.
-
-
-
-
-
Dear whoever needed a door,
-
I wrote "do not open" because some feelings need a door before they can become words.
-
If you are here, take this small ordinary blessing: may love make the next room easier to enter.
Signatures from usernames that may never have existed.
-
-
-
-
-
aphy_bot: first comment generated with sincere uncertainty
-
young-z-2009: does this guestbook have games
-
future_z_40: keep the backup, delete the shame
-
lima-note: proud of you, even here
-
sensei_chi: the counter counts only what can be counted
-
-
-
-#+END_EXPORT
diff --git a/play/ink.org b/play/ink.org
index dad155b..10b3cbc 100644
--- a/play/ink.org
+++ b/play/ink.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
07 / Canvas
Ink Pond
diff --git a/play/kitchen-light.org b/play/kitchen-light.org
deleted file mode 100644
index 1c35bea..0000000
--- a/play/kitchen-light.org
+++ /dev/null
@@ -1,27 +0,0 @@
-#+TITLE: Kitchen Light
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Unlisted page
-
Kitchen Light
-
A warm square in the dark part of the house.
-
-
-
-
-
-
Late note
-
For whoever comes home last
-
There is rice in the pot, a towel on the chair, and a story nobody finished telling because everyone started laughing.
-
If the night has been unkind, stand here a moment. The light is not asking questions.
-
System message: warmth found. No action required.
-
-
-
-#+END_EXPORT
diff --git a/play/left-behind.org b/play/left-behind.org
deleted file mode 100644
index 6ef4f80..0000000
--- a/play/left-behind.org
+++ /dev/null
@@ -1,32 +0,0 @@
-#+TITLE: Left Behind
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Unlisted page
-
Left Behind
-
A drawer opens only after too many taps.
-
-
-
-
-
-
Family note
-
The small receipt
-
lima left a folded receipt on the counter. Not because it mattered, exactly, but because small ordinary things become evidence that a day happened.
-
On the back, in pencil: "Met in 2022. Engaged in Oct 2025. Soon, In'sha'Allah, married. Keep the ordinary days safe too."
-
- ____
- / \
- /______\
- 2025
-
-
-
-
-#+END_EXPORT
diff --git a/play/lima-note.org b/play/lima-note.org
deleted file mode 100644
index 267a012..0000000
--- a/play/lima-note.org
+++ /dev/null
@@ -1,24 +0,0 @@
-#+TITLE: Lima Note
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-10 Sun>
-
-#+BEGIN_EXPORT html
-
-
-
-
Layer 2
-
Lima Note
-
A safe space note from the emotional anchor of the archive.
-
-
-
-
-
Met z in 2022. Engaged in Oct 2025. Soon to be married.
-
The website can be strange, but let it stay kind. Let the hidden things feel like someone folded a blanket at the end of the day.
-
Reminder: eat before turning feelings into features.
-
-
-
-#+END_EXPORT
diff --git a/play/memory.org b/play/memory.org
index 6819bcb..15cc4f6 100644
--- a/play/memory.org
+++ b/play/memory.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
01 / Game
Memory Cabinet
diff --git a/play/patience-game.org b/play/patience-game.org
deleted file mode 100644
index 6de3d15..0000000
--- a/play/patience-game.org
+++ /dev/null
@@ -1,23 +0,0 @@
-#+TITLE: Patience Game
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Tiny game
-
Patience Game
-
The only move is to stay a little while.
-
-
-
-
-
The lamp is on. Nothing else is required.
-
0 seconds kept company.
-
-
-
-#+END_EXPORT
diff --git a/play.org b/play/play.org
similarity index 100%
rename from play.org
rename to play/play.org
diff --git a/play/poem.org b/play/poem.org
index 5514c12..2d4209f 100644
--- a/play/poem.org
+++ b/play/poem.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
03 / Generator
Marginalia Machine
diff --git a/play/radio-room.org b/play/radio-room.org
deleted file mode 100644
index fd95628..0000000
--- a/play/radio-room.org
+++ /dev/null
@@ -1,27 +0,0 @@
-#+TITLE: Radio Room
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Unlisted room
-
Radio Room
-
A room under the stairs where every station is almost home.
-
-
-
-
-
Tuning log
-
Between stations
-
89.1: rain on the kitchen roof.
-
91.4: Aphy explaining that backups are promises with timestamps.
-
99.9: Lima laughing off-mic, and Z forgetting what he was worried about.
-
The dial is warm. It does not play automatically because even hidden pages should ask permission.
-
-
-
-#+END_EXPORT
diff --git a/play/recipe.org b/play/recipe.org
index a384968..be1d72d 100644
--- a/play/recipe.org
+++ b/play/recipe.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
05 / Spinner
Supper Wheel
diff --git a/play/rpg.org b/play/rpg.org
index 933d6a2..528780d 100644
--- a/play/rpg.org
+++ b/play/rpg.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
11 / Role Playing Game
Ash Below the Lake
diff --git a/play/sensei-garden.org b/play/sensei-garden.org
deleted file mode 100644
index 44eef4d..0000000
--- a/play/sensei-garden.org
+++ /dev/null
@@ -1,25 +0,0 @@
-#+TITLE: Sensei Garden
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-10 Sun>
-
-#+BEGIN_EXPORT html
-
-
-
-
Layer 3
-
Sensei Garden
-
A quiet page that answers after you stop asking so loudly.
-
-
-
-
-
Sensei Chi says:
-
The seed does not hurry because the calendar is watching.
-
Aphy asks whether patience can be optimised.
-
Sensei Chi smiles. "Only by becoming unnecessary."
-
-
-
-#+END_EXPORT
diff --git a/play/sigil.org b/play/sigil.org
index 3823391..cd332ef 100644
--- a/play/sigil.org
+++ b/play/sigil.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
10 / Maker
Sigil Press
diff --git a/play/study.org b/play/study.org
index e6d9ab5..084ff30 100644
--- a/play/study.org
+++ b/play/study.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
09 / Timer
Study Lamp
diff --git a/play/terminal-cupboard.org b/play/terminal-cupboard.org
deleted file mode 100644
index 00cbcf4..0000000
--- a/play/terminal-cupboard.org
+++ /dev/null
@@ -1,23 +0,0 @@
-#+TITLE: Terminal Cupboard
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Hidden terminal
-
Terminal Cupboard
-
A command line behind the jars.
-
-
-
-
-
family-layer cupboard v2.0. Type help.
-
-
-
-
-#+END_EXPORT
diff --git a/play/terminal.org b/play/terminal.org
index 32ffd76..238b4a5 100644
--- a/play/terminal.org
+++ b/play/terminal.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
08 / Story
Archive Terminal
diff --git a/play/timeline.org b/play/timeline.org
index a3e81e7..bda80ac 100644
--- a/play/timeline.org
+++ b/play/timeline.org
@@ -5,7 +5,7 @@
#+BEGIN_EXPORT html
- Back to Play
+ Back to Play
06 / Puzzle
Timeline Tangle
diff --git a/play/train-platform.org b/play/train-platform.org
deleted file mode 100644
index 2c9d6a2..0000000
--- a/play/train-platform.org
+++ /dev/null
@@ -1,25 +0,0 @@
-#+TITLE: Time Platform
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-09 Sat>
-
-#+BEGIN_EXPORT html
-
-
-
-
Layer 4
-
Time Platform
-
The departure board changes by year, but every destination is still Z.
-
-
-
-
-
2022 - Beginning - arrived quietly
-
Oct 2025 - Engagement - boarding with light
-
Age 7 - Wonder - running on platform chalk
-
Age 40 - Return - Future Z is on the bench, saving you a seat.
-
-
-
-#+END_EXPORT
diff --git a/play/young-z-desk.org b/play/young-z-desk.org
deleted file mode 100644
index 159b8b9..0000000
--- a/play/young-z-desk.org
+++ /dev/null
@@ -1,30 +0,0 @@
-#+TITLE: Young Z Desk
-#+OPTIONS: num:nil title:nil toc:nil
-#+NO_SIDENOTES: t
-#+HIDDEN_PAGE: t
-#+DATE: <2026-05-10 Sun>
-
-#+BEGIN_EXPORT html
-
-
-
-
Layer 2
-
Young Z Desk
-
A memory fragment from age 7, preserved without correcting the spelling.
-
-
-
-
-
Things Young Z considers important:
-
1. A blanket can be a cape.
-
2. Computers are friend-shaped if they have games.