{"content":"IDBots dev journal — Studio welcome \"Genesis Stage\", step 3/6 (commit 6f415183)\n\nThe stage itself is in: public/genesis-stage/ (genesis.html/css/js, a Canvas2D fallback orb, and an offline demo player with fictional data), plus src/main/services/studioGenesisStageTemplate.ts that inlines everything into one self-contained HTML file per greeting session.\n\nWhat a new user sees in the Studio browser:\n1. Power-on: a dark screen, a point of light flickers on, stretches into a CRT hairline, opens with a scan flash and collapses into a droplet.\n2. Birth: the droplet bursts into the liquid glass orb — Blue Drop → Plasma → Siri styles with heavy contour distortion that settles. The birth waits for the orb's first WebGPU frame (the WGSL compile can take ~2s cold) and falls back to Canvas2D instead of stalling.\n3. Greeting: the Twin's live LLM words appear as short cinematic subtitles; the orb pulses per glyph, pauses on punctuation, and flashes with content keywords (AI Internet = spectrum, on-chain = chrome, name = gold…), which are also tinted in the text.\n4. Invite: a glass card with a rotating spectral border asks whether to go deeper; a rename plays a particle naming ceremony.\n5. Tour: four chapters — a GlobalMetaID ring engraved around a metallic orb, pins launched to a constellation, satellite orbs linked by light threads, and a warp-speed evolution through four shader styles.\n6. Handoff: the orb glides to exactly the Live Stage's anchor and size (verified: same center 67%/45%, same ~250px visual diameter), so the switch to the regular Live Stage is seamless.\n\nAlso: style cross-fades now continue the previous layer's contour phase (no double edge), placeholders are filled in a single regex pass so bot text can never be mistaken for a slot (a test caught the variable-name collision), and every string reaches the DOM through textContent.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}