function BrandMarquee() { // Target consistent visual weight — most logos pinned by HEIGHT (cap-height match). // Wordmark-only logos (no symbol, just text) get a slightly smaller height // so their wordmark length doesn't dominate the row. const brands = [ { src: 'assets/brands/comp-ai-w.png', alt: 'Comp AI', height: 32 }, { src: 'assets/brands/bros-of-decay-w.png', alt: 'Bros of Decay', height: 44 }, { src: 'assets/brands/sarizza-w.png', alt: 'Sarizza', height: 26 }, { src: 'assets/brands/finova-money-w.png', alt: 'Finova Money', height: 32 }, { src: 'assets/brands/avenue-7-w.png', alt: 'Avenue 7 Media', height: 46 }, { src: 'assets/brands/mediazilla-w.png', alt: 'MediaZilla', height: 22 }, ]; const renderBrand = (b, i) => (
{b.alt} e.currentTarget.style.opacity = '1'} onMouseLeave={(e) => e.currentTarget.style.opacity = '0.6'} />
); return (
{[...brands, ...brands, ...brands].map((b, i) => renderBrand(b, i))}
); } Object.assign(window, { BrandMarquee });