// 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,
});