// screens-a.jsx — Hero, World, Characters (screens 01-03) /* ════════════════════════════════════════════════════════════ 01 · HERO — let the story speak first ════════════════════════════════════════════════════════════ */ function Screen01Hero({ copy }) { const s = copy.screens.hero; return ( {/* Bare screenshot, no browser-chrome wrapper. Click to enlarge via Zoomable; backdrop click / Esc dismiss. */} ); } /* ════════════════════════════════════════════════════════════ 02 · WORLD — one page, a whole world behind it ════════════════════════════════════════════════════════════ */ function Screen02World({ copy }) { const s = copy.screens.world; return ( {/* Bare screenshot, no browser-chrome wrapper. Click to enlarge via Zoomable; backdrop click / Esc dismiss. */} ); } /* ════════════════════════════════════════════════════════════ 03 · CHARACTERS — a name carries a fate ════════════════════════════════════════════════════════════ */ function CharacterSilhouette({ idx }) { // Shared by the writing screen's reference chip. const seeds = [ { hair: "M50 32 c12 0 18 8 18 18 v6 c0 3 -2 5 -5 6 c-8 2 -18 2 -26 0 c-3 -1 -5 -3 -5 -6 v-6 c0 -10 6 -18 18 -18 z" }, { hair: "M50 26 c14 0 20 10 20 22 v6 c0 3 -2 5 -5 6 c-10 3 -20 3 -30 0 c-3 -1 -5 -3 -5 -6 v-6 c0 -12 6 -22 20 -22 z" }, { hair: "M50 34 c14 0 22 6 22 14 v8 c0 3 -2 5 -5 6 c-10 2 -24 2 -34 0 c-3 -1 -5 -3 -5 -6 v-8 c0 -8 8 -14 22 -14 z" }, { hair: "M30 34 q20 -16 40 0 v22 c0 3 -2 5 -5 6 c-10 3 -20 3 -30 0 c-3 -1 -5 -3 -5 -6 z" }, ]; const s = seeds[idx % seeds.length]; return ( ); } function Screen03Characters({ copy }) { const s = copy.screens.characters; return ( {/* Bare screenshot, no browser-chrome wrapper. Click to enlarge via Zoomable; backdrop click / Esc dismiss. */} ); } Object.assign(window, { Screen01Hero, Screen02World, Screen03Characters, CharacterSilhouette, });