/* Hero, Product Lines, App Catalogue */ const ACCENT = { cyan: { c: '#00E5FF', glow: 'var(--edge-cyan)', gShadow: '0 0 24px rgba(0,229,255,0.35)' }, violet: { c: '#7B2CFF', glow: 'var(--edge-violet)', gShadow: '0 0 24px rgba(123,44,255,0.35)' }, magenta: { c: '#FF2BD1', glow: 'var(--edge-magenta)', gShadow: '0 0 24px rgba(255,43,209,0.35)' }, }; /* ===================== HERO ===================== */ const heroStyles = { wrap: { position: 'relative', overflow: 'hidden', minHeight: '92vh', display: 'flex', alignItems: 'center', padding: '96px 40px 64px', }, inner: { position: 'relative', zIndex: 2, maxWidth: 1280, margin: '0 auto', width: '100%', }, grid: { display: 'grid', gridTemplateColumns: '1.15fr 1fr', gap: 80, alignItems: 'center', }, gridStack: { display: 'grid', gridTemplateColumns: '1fr', gap: 64, justifyItems: 'center', textAlign: 'center', }, eyebrow: { fontFamily: 'var(--font-display)', fontSize: 11, letterSpacing: '0.28em', textTransform: 'uppercase', color: 'var(--gfc-cyan)', marginBottom: 28, display: 'inline-flex', alignItems: 'center', gap: 12, textShadow: 'var(--glow-xs-cyan)', padding: '8px 14px', border: '1px solid rgba(0,229,255,0.25)', borderRadius: 999, background: 'rgba(0,229,255,0.04)', }, dot: { width: 6, height: 6, borderRadius: '50%', background: 'var(--gfc-cyan)', boxShadow: 'var(--glow-sm-cyan)' }, h1: { fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 'clamp(44px, 6.8vw, 96px)', letterSpacing: '0.06em', textTransform: 'uppercase', lineHeight: 0.98, margin: 0, color: '#fff', }, h1a: { color: 'var(--gfc-cyan)', textShadow: '0 0 24px rgba(0,229,255,.45)' }, h1b: { color: 'var(--gfc-magenta)', textShadow: '0 0 24px rgba(255,43,209,.45)' }, h1gradient: { background: 'var(--grad-hero)', WebkitBackgroundClip: 'text', backgroundClip: 'text', color: 'transparent', }, sub: { marginTop: 28, maxWidth: 560, fontSize: 18, lineHeight: 1.6, color: 'var(--fg-2)' }, ctas: { marginTop: 40, display: 'flex', gap: 16, flexWrap: 'wrap' }, imgWrap: { position: 'relative', aspectRatio: '1/1', width: '100%', maxWidth: 520, justifySelf: 'end' }, img: { width: '100%', height: '100%', objectFit: 'contain', position: 'relative', zIndex: 1, filter: 'drop-shadow(0 0 60px rgba(123,44,255,0.5)) drop-shadow(0 0 30px rgba(255,43,209,0.3))', animation: 'gfc-float 6s ease-in-out infinite', }, rings: { position: 'absolute', inset: '8%', borderRadius: '50%', border: '1px solid rgba(0,229,255,0.18)', animation: 'gfc-spin 40s linear infinite', }, rings2: { position: 'absolute', inset: '20%', borderRadius: '50%', border: '1px dashed rgba(255,43,209,0.2)', animation: 'gfc-spin 55s linear infinite reverse', }, stats: { marginTop: 56, display: 'flex', gap: 48, paddingTop: 28, borderTop: '1px solid var(--border)', flexWrap: 'wrap', }, statVal: { fontFamily: 'var(--font-display)', fontSize: 32, fontWeight: 700, color: '#fff', letterSpacing: '0.06em' }, statLab: { fontFamily: 'var(--font-mono)', fontSize: 11, color: 'var(--fg-4)', marginTop: 4, letterSpacing: '0.12em', textTransform: 'uppercase' }, /* centered variant */ centerHead: { textAlign: 'center', maxWidth: 980, margin: '0 auto' }, cubeInline: { width: 220, height: 220, margin: '0 auto 32px' }, }; const GFCHero = ({ t, layout = 'split', taglineKey = 'a', onCta }) => { const tg = t.hero['tagline_' + taglineKey] || t.hero.tagline_a; const gradient = taglineKey === 'c'; const headline = ( <>
{t.hero.sub}
{t.hero.sub}
{t.brands.sub}
{t.apps.sub}