/* eslint-disable */
// Section 02 — Hero. 100vh. Full-bleed process photo placeholder.
// Centered acid-yellow logo with tagline. Bottom-corner micro labels.
// Per-character delays for the entry animations. Keys map to logoAnim values.
const HERO_LOGO_DELAYS = {
settle: { brL: 200, brR: 200, ch: (i) => 420 + i * 80 },
build: { brL: 0, brR: 820, ch: (i) => 120 + i * 90 },
none: null,
};
const HERO_LOGO_ROWS = [
[{ k: 'brL', ch: '[' }, { k: 'ch', ch: 'u' }, { k: 'ch', ch: 'n' }, { k: 'ch', ch: 'i' }],
[{ k: 'ch', ch: 'c' }, { k: 'ch', ch: 'r' }, { k: 'ch', ch: 'a' }, { k: 'ch', ch: 'f' }, { k: 'ch', ch: 't' }, { k: 'brR', ch: ']' }],
];
const HeroLogo = ({ anim = 'settle' }) => {
const delays = HERO_LOGO_DELAYS[anim];
let chIdx = 0;
const renderPiece = (p, i) => {
let cls = 'uc-hero-logo__ch';
let delay = 0;
if (p.k === 'brL') { cls = 'uc-hero-logo__br uc-hero-logo__br--l'; delay = delays?.brL ?? 0; }
else if (p.k === 'brR') { cls = 'uc-hero-logo__br uc-hero-logo__br--r'; delay = delays?.brR ?? 0; }
else { delay = delays ? delays.ch(chIdx) : 0; chIdx += 1; }
return (
{p.ch}
);
};
return (
{HERO_LOGO_ROWS.map((row, r) => (
{row.map(renderPiece)}
))}
);
};
const Hero = ({ tone = 'raking', showCue = true, logoAnim = 'settle' }) => (
{/* dark overlay per spec */}
{/* centred logo + tagline */}
Form through process
{/* call to action */}
{ e.preventDefault(); const el = document.getElementById('contact'); if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' }); }} style={{
fontFamily: 'var(--font-body)', fontSize: 14, letterSpacing: '0.04em',
padding: '15px 30px', textDecoration: 'none',
background: 'var(--color-acid-yellow)', color: 'var(--color-deep-brown)',
fontWeight: 600, cursor: 'pointer',
transition: 'transform 240ms var(--ease-craft), filter 240ms var(--ease-craft)',
}}
onMouseEnter={(e) => { e.currentTarget.style.filter = 'brightness(1.05)'; e.currentTarget.style.transform = 'translateY(-2px)'; }}
onMouseLeave={(e) => { e.currentTarget.style.filter = 'none'; e.currentTarget.style.transform = 'none'; }}
>Book a consultation
{ e.preventDefault(); const el = document.getElementById('projects'); if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' }); }} style={{
fontFamily: 'var(--font-body)', fontSize: 14, letterSpacing: '0.04em',
padding: '15px 30px', textDecoration: 'none',
background: 'transparent', color: 'var(--color-acid-yellow)',
border: '1px solid rgba(253,254,120,0.6)', fontWeight: 500, cursor: 'pointer',
transition: 'background 240ms var(--ease-craft), color 240ms var(--ease-craft)',
}}
onMouseEnter={(e) => { e.currentTarget.style.background = 'rgba(253,254,120,0.12)'; }}
onMouseLeave={(e) => { e.currentTarget.style.background = 'transparent'; }}
>See projects
{/* bottom rule + micro labels */}
{/* scroll cue removed — was overlapping the CTA */}
);
Object.assign(window, { Hero });