# Puzzle Box Format Constants

> 30-second mood/mystery microserial. Atmospheric, VO-driven, mystery-box engagement.

## Episode Constraints

| Constant | Value | Enforcement |
|----------|-------|-------------|
| `EPISODE_DURATION` | 30 seconds | Target |
| `TOTAL_EPISODES` | 16 | Hard |
| `NARRATIVE_MIN_WORDS` | 40 | Soft warning |
| `NARRATIVE_MAX_WORDS` | 80 | Hard fail |
| `GENERATION_BATCH_SIZE` | 4 | — |

## Puzzle Box Structure (30 Seconds)

| Beat | Duration | Function |
|------|----------|----------|
| `ENTRY_IMAGE` | 2-5s | Wordless visual. Audience arrives in feeling. |
| `VOICE` | 16-20s | VO fragment over 3-4 shots. Overheard memory. Orthogonal to visuals. |
| `LINGER` | 6-8s | Held closing image. Unresolved. The ellipsis. |
| `ORACLE` | 10s (off-clock) | Mood-fork vote. |

THE FRAGMENT is metadata, not a beat. Embedded in VOICE or image choice.

# Note: Visual specs are in breakdown.json, not in episodes

## VO Rules

| Constant | Value |
|----------|-------|
| `VO_FREQUENCY` | 10-12 of 16 episodes |
| `VO_MAX_WORDS` | 60 |
| `VO_REGISTER` | Overheard memory (half-understood by speaker) |
| `VO_RULE` | Orthogonal — must NOT describe current visual |
| `VO_FOUND_DOCUMENT` | Clinical register permitted when quoting diegetic documents |
| `SILENT_EPISODES` | 4-6 per series |

## Rhythm System

| Tag | Shots | Characteristics |
|-----|-------|----------------|
| SUSPENDED | 1-2 | Near-static, time stopped |
| LAYERED | 3-4 | Juxtaposition, images that rhyme |
| KINETIC | 5-8 | Fast cuts — FRACTURE events only |
| DRIFT | 2-3 | Slow camera movement as meaning |

| Constant | Value |
|----------|-------|
| `MAX_CONSECUTIVE_RHYTHM` | 2 |

## Ending Taxonomy (Resonance)

Types: RHYME, WITHHOLD, DISSONANCE, OBJECT, ABSENCE

| Constant | Value |
|----------|-------|
| `MAX_CONSECUTIVE_ENDING` | 1 |
| `MIN_TYPES_PER_EXPOSURE` | 3 of 5 |

## FRACTURE Events

| Constant | Value |
|----------|-------|
| `PRIMARY_FRACTURE_EXPOSURE` | 2 (eps 5-6) |
| `SHIFT_FRACTURE_EXPOSURE` | 3 (eps 9-10) |
| `GHOST_FRACTURE` | Optional, Exposures 2-4 |
| `FRACTURE_RULE` | Fallen Angels — break in first 5s, 25s aftermath |

## Voting — Dungeon Master System

| Constant | Value |
|----------|-------|
| `VOTE_EVERY_EPISODE` | true |
| `WORLD_VOTE_EPISODES` | 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15 |
| `ORACLE_VOTE_EPISODES` | 4, 8, 12, 16 (Exposure-final) |
| `WORLD_VOTE_TYPE` | Environmental/sensory (what's behind the door, not whether to open it) |
| `ORACLE_VOTE_TYPE` | Mood-fork (emotional register, not plot) |
| `VOTE_MAX_WORDS` | 15 |
| `VOTE_OPTIONS` | 2 (binary) |
| `WORLD_VOTE_OPTION_WORDS` | 1-3 |
| `ORACLE_VOTE_OPTION_WORDS` | 1-2 |

## Exposures × Sequences (Nested Arc)

### Exposures (Mood Layer)

| Exposure | Episodes | Function |
|----------|----------|----------|
| THE MOOD | 1-4 | Establish world, voice, central absence |
| THE FRACTURE | 5-8 | Counter-fragments, dissonance emerges |
| THE SHIFT | 9-12 | Recontextualization, fragments rearrange |
| THE TRUTH | 13-16 | Emotional convergence, not plot resolution |

### Sequences (Story Layer)

| Seq | Episodes | Name |
|-----|----------|------|
| 1 | 1-2 | INCITING |
| 2 | 3-4 | ESCALATION |
| 3 | 5-6 | THE TOLL |
| 4 | 7-8 | MIDPOINT |
| 5 | 9-10 | FALLOUT |
| 6 | 11-12 | ALL IS LOST |
| 7 | 13-14 | THE RALLY |
| 8 | 15-16 | CLIMAX |

## Emotional Beat Schedule (6 Required)

| Episode | Beat | Tolerance |
|---------|------|-----------|
| 3 | THRESHOLD | ±1 |
| 8 | MIDPOINT | ±1 |
| 11 | VULNERABILITY | ±1 |
| 12 | ALL_IS_LOST | ±1 |
| 15 | FRACTURE_RECONCILIATION | ±1 |
| 16 | RESOLUTION | ±1 |

## Thread Continuity

| Constant | Value |
|----------|-------|
| `STALE_THRESHOLD` | 4 |
| `MIN_THREAD_COUNT` | 3 |
| `MAX_THREAD_COUNT` | 6 |
| `THREAD_RESOLUTION_WINDOW` | 2 |

## Fragment Linkage

| Constant | Value |
|----------|-------|
| `LINKAGE_REQUIRED_FROM` | 5 |
| `MIN_BACKWARD_REFS` | 1 per episode in Exposures 2-4 |

## Validation

Per-episode check: "Does this episode leave more open than it closes, with a specific emotional charge and at least one backward connection?"

1. Open question count: maintained or increased
2. Emotional specificity: mood nameable in one word
3. Fragment activation (Exposures 2-4): ≥1 prior element recontextualized
4. LINGER resonance: final image contains unresolved tension
5. Orthogonality: no VO line describes current visual

## Goal-Backward Checkpoints

| Checkpoint | Episode | Threads Resolved | Emotional Beats |
|------------|---------|------------------|-----------------|
| Exposure 1 | 4 | 0 | 0/6 |
| Exposure 2 | 8 | 0-1 | 2/6 |
| Exposure 3 | 12 | 1-2 | 4/6 |
| Exposure 4 | 16 | 3+ | 6/6 |
