Break Open — mechanics

The fork in this look

There are no two doors. The fork is the cut: the question field sits inside the opening of MIND on the −1.85° diagonal it shares with FREE YOUR, and "Or, go your own way ↓" sits above the fold. Typing into the cut and pressing ↵ asks the mind; scrolling is the standard route. Focusing the field widens the slices by 12 px, so the material answers before a word exists. / opens the mind anywhere; Escape returns with scroll and focus preserved. The session cookie keeps the thread.

The standard route

The reading page is the snapshot rendered at build time: 01 MAKE ROOM with a sourced answer in the gap, 02 OPEN MINDS as numbered Dela names in <details> rows, 03 the 03/04/05/06 tablist with Monday selected, 04 AUSTIN with the pass link, 05 ASK. Production adds all four days to the DOM (only Monday exists without JavaScript), the full lineup with the 0/55/110/165 px stagger cycling, and #day-2 hashes that select a tab, so day links round-trip. Partners become a rule-separated name list by tier, no logos; FAQ answers become already-opened sections under ASK.

Asking the mind

Asking. The cut, the ASK. composer, the rail invitation and the two "Ask about…" links open the <dialog>, focus its composer and POST {messages, mode, session} to /api/mind, reading SSE frames like mind.html.

Thinking as material. Each question draws a new numbered section. On submit, two rules drift apart along the cut with the cut-top easing and hold open until the first text frame lands in the gap; the trigger is the submit, not phase: thinking, because a Sonnet arm at between_tools emits none. Waiting lines at 2, 8 and 25 s share the gap.

The big word is renderer-owned. Coverage picks it first (not_in_snapshot → NOT YET, off_topic → STILL OPEN), then the first component (venue → AUSTIN, a day → its numeral, people → OPEN MINDS or the person's name).

Components (no cards, chips, photographs or boxes):

The assistant in the chrome

The dock is the rail. It appears when the hero leaves the viewport and leads with the writing invitation, a live field in production. Because the modal dialog covers the page, the brief's five merge rules collapse to one: each answer links back to its chapter; the link closes the dialog, scrolls, and merges on return by selecting the asked day's tab or opening the named person's <details>. Page requests send mode: "standard" and page.visibleIds (the open speaker, the selected day's sessions), so "What's this one about?" works from the timetable. The thread survives close and reopen.

Data, performance and accessibility

One snapshot, two readers: the build renders the chapters; the dialog fetches a renderer subset on first open. No WebGL and no photographs, so first paint is fonts: subset Dela and the three Alegreya faces to woff2, and size the word slot in vw so font-display: swap cannot reflow it. The thread is not a live region: keep mind.html's single role="status" line. showModal supplies the focus trap, tabs keep arrow keys, split names stay aria-hidden duplicates of a whole name, and motion off removes every animation including the thinking gap. Without JavaScript the page reads completely; the field posts to a server-rendered /ask.

Build plan

Carries over: server.py (POST /api/mind, the SSE frames, the cached prefix, the incremental reader, the sanitizer, append-only sessions, the budget), ported to the wiring's route handler; build_digest and CORE_INSTRUCTIONS; data/ets.sample.json and data/tools/build_fixture.py as snapshot and capture mapping; the catalogue schema, extended with agenda_day, speaker_card, session_card, faq, sources and coverage; and mind.html's non-visual code: streamAnswer, reconcile, the ERR table, the escape link.

New: the visual renderer R in the two-ink grammar; the word map; the cut-open thinking state; the dialog wired to the stream (the keyword table becomes the offline script); the rail field, question links and visibleIds; choices as lines; partners and FAQ chapters; day hashes; the no-JS /ask; font subsets.

Effort: renderer and thread 3–4 days, thinking motion 1, chapters 2, rail and hashes 1, QA at six widths with motion off and no JavaScript 2: two front-end weeks, plus the server port the brief scopes.

Risks