/* ============================================================ Guero's Group — Brand marks + Sahel-inspired generated art ============================================================ */ /* ---------- Sahel scene palette ---------- */ let __ssid = 0; const SAHEL_TONES = { dawn: { s0: "#F8E8C6", s1: "#ECB877", sun: "#F0A24E", d: ["#E7C78D", "#D7AD6A", "#C0934F"], sil: "#5A4632", grd: "#CCA063" }, day: { s0: "#E9ECE2", s1: "#EAD8AE", sun: "#F4E6B6", d: ["#E3C78C", "#D1A967", "#BA8F4F"], sil: "#5A4632", grd: "#CB9C60" }, dusk: { s0: "#F4D2A0", s1: "#C75E2C", sun: "#EA7A38", d: ["#CA8B53", "#B1713D", "#8F5A2F"], sil: "#3A2C1E", grd: "#9F6F3D" }, }; function rng(seed) { let s = seed * 9301 + 49297; return () => { s = (s * 9301 + 49297) % 233280; return s / 233280; }; } /* Flat-topped acacia silhouette */ function Acacia({ x, y, s, fill }) { return ( ); } /* Vehicle side silhouettes (approx) */ function VehicleSil({ type, color }) { const v = { sedan: "M30 52 Q34 40 46 38 L70 24 Q80 18 96 18 L150 18 Q170 18 184 30 L214 38 Q230 42 234 52 Z", suv: "M28 54 L32 36 Q34 26 50 24 L70 22 Q78 14 100 14 L160 14 Q182 14 190 26 L214 34 Q232 38 236 54 Z", van: "M26 56 L28 24 Q30 14 48 13 L186 13 Q210 13 214 30 L232 40 Q238 46 238 56 Z", pickup: "M22 54 L26 34 Q28 24 44 22 L74 22 Q82 14 104 14 L138 14 Q150 14 152 24 L152 42 L238 42 L238 54 Z", truck: "M20 56 L22 22 Q24 14 40 14 L96 14 L100 40 L150 40 L160 22 Q164 16 182 16 L214 16 Q236 18 238 40 L238 56 Z", }[type] || "M30 52 Q34 40 46 38 L70 24 Q80 18 96 18 L150 18 Q170 18 184 30 L214 38 Q230 42 234 52 Z"; return ( ); } /* Minaret + low-rise Niamey skyline */ function Skyline({ color }) { return ( {/* minaret */} ); } function SahelScene({ variant = "dunes", seed = 1, subject = null, style, className = "" }) { const id = useRef("ss" + (++__ssid)).current; const r = rng(seed + 1); const toneKey = ["dawn", "day", "dusk"][Math.floor(r() * 3)]; const p = SAHEL_TONES[toneKey]; const sunX = 60 + Math.floor(r() * 280); const showSky = true; return ( {/* dust haze */} {variant === "town" && } {/* dunes */} {/* acacias */} {variant !== "town" && <> {r() > 0.5 && } } {/* road for fleet/road variants */} {(variant === "road" || subject) && <> } {subject && } ); } /* ---------- Part tile (warm gradient + category icon) ---------- */ function PartTile({ icon = "box", seed = 1, style, className = "" }) { const id = useRef("pt" + (++__ssid)).current; const tones = [["#F0D9B8", "#E0A86A"], ["#EAD3AE", "#D69256"], ["#EFC9A0", "#D98A52"], ["#E8D2B0", "#CDA063"]]; const c = tones[seed % tones.length]; return (
{Array.from({ length: 9 }).map((_, i) => )}
); } Object.assign(window, { SahelScene, PartTile, VehicleSil });