CASE FILE No. 10 EXHIBIT: DEADLETTER

BUREAU OF UNDELIVERABLE MAIL · INTERNAL ONLY

The case file on the Dead Letter Office

This is the exhibit opened the way it opens its own envelopes: contents laid on the desk, sender identified, disposition noted. A playable story built from four inks, two typefaces, four photographs, and one rule worth breaking.

Item one. The assignment

Build a playable narrative: the visitor is the night clerk of a dead letter office in February 1954. A shift is three pieces of undeliverable mail. Each is opened and read, and each takes one of three dispositions: return to sender, burn, or deliver anyway, against regulation. Choices set flags; the office notices; a full shift ends in one of four clock-out posters. Everything is staged in print, paper, and lamplight. The letters have to be worth the reading, or none of the machinery matters.

STANDING ORDERS, ABRIDGED

No terminal aesthetic of any kind. No dead ends, no dead buttons. Real copy everywhere. Compositor-only motion on custom curves, and none at all for visitors who ask for none. Playable by touch at 390 pixels. The red ink stays under fifteen percent of any surface.

THE DIRECTOR

Item two. The machine

The engine is a hand-rolled scene graph in two small files. Every scene is a template function of the shift's state; every choice writes a flag and re-enters the graph. A few doors are routed at walk-through time, so the same button can open onto different rooms depending on the night. This is the router, verbatim:

/* Routed targets: a few doors open onto different rooms depending on the night. */
function resolve(id) {
  if (id === '@afterthree') return showFourth(S) ? 'e4' : 'clockout';
  if (id === '@resume') return S.scene === 'hero' ? 'intro' : S.scene;
  if (id === '@punchout') {
    S.ending = computeEnding(S);
    S.done = true;
    S.record.push(S.ending);
    return 'ending';
  }
  if (id === '@newshift') { S = freshState(S.shift + 1, S.record); return 'intro'; }
  return SCENES[id] ? id : null;
}

FROM js/engine.js · THE ROUTER

A decision is one write. The desk accumulates a physical trace of each kind of choice, which the ending poster later reads back as "the desk, as you leave it."

const DESK_BY_FATE = { return: 'stamp', burn: 'ash', deliver: 'pencil' };

function decide(item, fate) {
  if (busy || S.fates[item]) return;
  S.fates[item] = fate;
  if (item !== 'e4' && !S.desk.includes(DESK_BY_FATE[fate])) S.desk.push(DESK_BY_FATE[fate]);
  save();
  go(item + '-after');
}

FROM js/engine.js · A CHOICE IS A WRITE

Endings collapse twenty-seven possible shifts into four rooms, and the hidden fourth envelope opens only for certain clerks. The whole moral bookkeeping of the piece is nine lines:

function computeEnding(S) {
  if (fateCount(S, 'burn') >= 2) return 'ash';
  if (fateCount(S, 'deliver') >= 2) return 'route';
  if (fateCount(S, 'return') >= 2) return 'back';
  return 'scale';
}

function showFourth(S) {
  return fateCount(S, 'deliver') >= 1 || fateCount(S, 'burn') === 3 || S.shift >= 2;
}

FROM js/story.js · FOUR ROOMS, ONE DRAWER

The office noticing you is also just state. The supervisor's notes are keyed to each fate, stage directions inhale the pattern of your choices, and the log line after a delivery is typed RETURNED with a pencil correction underneath, because Pell covers for her clerks. Shifts persist in localStorage; clock out and the record survives you.

Item three. The map

One shift, drawn as the mail sees it. Every item passes the same three stations; the desk keeps the pattern; the pattern picks the door you leave by.

CLOCK IN · 10:07 P.M. THE SORTING ROOM ITEM ONE · THE SCHOOL PICTURE envelope, then contents, then disposition RETURN BURN DELIVER LOGGED · PELL REACTS ITEM TWO · THE MARIGOLD SEED the room already smells of your last answer LOGGED · THE DESK NOTICES ITEM THREE · THE LAST LETTER ten years carried; every hand put it back LOGGED · NO NOTE COMES ONE DELIVERY? ALL BURNED? A SECOND SHIFT? YES THE FOURTH NO PUNCH OUT · 6:04 A.M. ASH · 2+ BURNED BACK · 2+ RETURNED ROUTE · 2+ CARRIED SCALE · ONE OF EACH

Item four. The voices

Typography does all the acting. Four voices, never mixed:

NARRATION · LIBRE CASLON

The office is one girl lighter.

STAGE DIRECTIONS · SMALL CAPS

The stove door opens on its orange room.

ARTIFACTS · SPECIAL ELITE

I have decided to be alive in the spring.

MARGINALIA · THE PENCIL

Not our job to know it. Knowing it anyway.

EVIDENCE CREAM #F0E8D6
the paper, the light

RIBBON BLACK #1A1714
ink, iron, the poster

CASE RED #B3261E
stamps and verdicts only

STAMP BLUE #2B4A8C
postmarks and the pencil

Item five. The evidence

All four photographs are AI-generated imagery, produced with Fal (Nano Banana Pro) for this exhibit and staged in-world as evidence photographs. Nothing depicted exists. The source pigeonhole photograph contains a dim digital clock, an anachronism for 1954; the exhibit buries that band under the hero's lamplight scrim and crops it out of the ending art. Everything else on the site, every stamp, postmark, packet, and paper, is drawn in CSS and SVG.

A wall of wooden pigeonholes at night, bundles of old letters lit by a single desk lamp.
THE WALL, SOURCE, UNCROPPED. NOTE THE CLOCK THE EXHIBIT HIDES.
A brown paper parcel tied with twine under a cone of lamplight, stamps and postmarks on its face.
ITEM TWO, AS RECEIVED · SCALE ENDING
A red RETURN TO SENDER stamp struck twice across fibrous cream paper.
STAMP WORK, STRUCK TWICE · BACK ENDING
A metal tray holding a half burned letter, edges charred, beside an oil lamp and an iron stove.
THE TRAY AT SIX · ASH ENDING

Item six. What the passes caught

Item seven. Colophon

Static HTML, CSS, and hand-rolled JavaScript. No framework, no build step. State lives in localStorage under one key. Landmarks and one heading of the first rank per page; scene changes are announced politely to screen readers; every choice is a real button; motion runs on custom cubic-bezier curves, compositor properties only, and stands down entirely under prefers-reduced-motion. Fictional bureau, fictional towns, fictional dead. The letters are original writing for this exhibit.