export default function CharacterBackdrop({ character }) { if (!character) return null; // No motif when no character is selected — let the screen's own background carry it const char = character.toUpperCase(); return ( ); } // ---------- BOLT: starfield + radar scan pings + shooting stars ---------- function BoltBackdrop() { const stars = Array.from({ length: 22 }, (_, i) => ({ x: (i * 43) % 100, y: (i * 79) % 100, size: 2 + (i % 3) * 1.5, })); const scans = [ { x: 15, y: 20, size: 140 }, { x: 82, y: 30, size: 170 }, { x: 25, y: 78, size: 160 }, { x: 78, y: 82, size: 130 }, ]; const shootingStars = [ { top: 10, dur: 6, delay: 0 }, { top: 45, dur: 8, delay: 3 }, { top: 70, dur: 7, delay: 5.5 }, ]; return (
{stars.map((s, i) => (
))} {scans.map((sc, i) => (
))} {shootingStars.map((sh, i) => (
))}
); } // ---------- ZARA: bold glowing star sparkles ---------- function ZaraBackdrop() { const starPath = "M12 0 L14.6 8.5 L23 9.3 L16.5 14.8 L18.7 23 L12 18.1 L5.3 23 L7.5 14.8 L1 9.3 L9.4 8.5 Z"; const sparkles = [ { x: 6, y: 10, s: 26 }, { x: 88, y: 15, s: 20 }, { x: 20, y: 75, s: 24 }, { x: 78, y: 70, s: 32 }, { x: 45, y: 22, s: 18 }, { x: 60, y: 88, s: 22 }, { x: 12, y: 45, s: 19 }, { x: 92, y: 50, s: 24 }, { x: 35, y: 60, s: 16 }, { x: 68, y: 35, s: 21 }, { x: 30, y: 12, s: 15 }, { x: 5, y: 60, s: 18 }, { x: 95, y: 85, s: 20 }, { x: 55, y: 5, s: 17 }, { x: 15, y: 90, s: 22 }, { x: 82, y: 40, s: 15 }, ]; return (
{sparkles.map((sp, i) => (
))}
); } // ---------- NOVA: falling leaves, drift + sway + rotate ---------- function NovaBackdrop() { const leafPath = "M10 0 C16 4, 20 12, 10 22 C0 12, 4 4, 10 0 Z M10 5 L10 20"; const leaves = [ { x: 5, size: 20, dur: 11, delay: 0, sway: 30 }, { x: 18, size: 15, dur: 9, delay: 1.5, sway: 22 }, { x: 32, size: 22, dur: 13, delay: 3, sway: 35 }, { x: 48, size: 17, dur: 10, delay: 0.8, sway: 25 }, { x: 62, size: 19, dur: 12, delay: 4.2, sway: 28 }, { x: 76, size: 16, dur: 8.5, delay: 2.1, sway: 20 }, { x: 88, size: 21, dur: 11.5, delay: 5, sway: 32 }, { x: 95, size: 14, dur: 9.5, delay: 3.6, sway: 18 }, ]; return (
{leaves.map((l, i) => (
))}
); } // ---------- BEEP: bold bouncing glowing dot blips ---------- function BeepBackdrop() { const dots = Array.from({ length: 24 }, (_, i) => ({ x: (i * 43) % 100, y: (i * 89) % 100, size: 7 + (i % 3) * 4, })); return (
{dots.map((d, i) => (
))}
); } // ---------- ECHO: bold, random glitchy scan-lines + fragments ---------- function EchoBackdrop() { const fragments = Array.from({ length: 16 }, (_, i) => ({ x: (i * 61) % 100, y: (i * 137) % 100, w: 25 + (i % 4) * 25, dur: 1.2 + (i % 5) * 0.5, delay: (i * 0.37) % 3, })); return (
{fragments.map((f, i) => (
))}
); } // ---------- MIRA: bubbles + swimming fish ---------- function MiraBackdrop() { const bubbles = Array.from({ length: 16 }, (_, i) => ({ x: (i * 61) % 100, size: 10 + (i % 4) * 7, dur: 7 + (i % 5) * 1.6, delay: i * 0.7, })); const fishPath = "M0 8 C4 0, 16 0, 22 8 C16 16, 4 16, 0 8 Z M22 8 L28 3 L28 13 Z"; const fish = [ { y: 15, size: 34, dur: 22, delay: 0, dir: 1 }, { y: 38, size: 26, dur: 17, delay: 4, dir: -1 }, { y: 60, size: 40, dur: 26, delay: 8, dir: 1 }, { y: 78, size: 22, dur: 15, delay: 2, dir: -1 }, ]; return (
{bubbles.map((b, i) => (
))} {fish.map((f, i) => (
))}
); }