// ============================================ // Hero visual — brand cube + hex motifs // ============================================ const { useEffect, useRef, useState } = React; // ---- Hero brand cube: real logo, subtle float + parallax ---- function BrandCube({ scrollY = 0, mouseX = 0, mouseY = 0 }) { const motion = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--motion')) || 1; // Subtle float + mouse parallax const tx = mouseX * 30 * motion; const ty = mouseY * 20 * motion; const rz = scrollY * 0.02 * motion; // very subtle rotation on scroll const scale = 1 - Math.min(0.15, scrollY * 0.0003 * motion); return ( ); } // ---- Ambient hexagons floating in hero background ---- function AmbientCubes({ scrollY = 0 }) { const motion = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--motion')) || 1; const items = [ { left: '4%', top: '12%', size: 120, opacity: 0.18, d: 0.4 }, { left: '88%', top: '18%', size: 70, opacity: 0.22, d: 0.6 }, { left: '92%', top: '72%', size: 140, opacity: 0.12, d: 0.3 }, { left: '6%', top: '76%', size: 90, opacity: 0.16, d: 0.5 }, { left: '46%', top: '6%', size: 50, opacity: 0.25, d: 0.7 }, { left: '78%', top: '52%', size: 38, opacity: 0.28, d: 0.55 }, ]; return ( ); } Object.assign(window, { BrandCube, AmbientCubes });