/* global React */
// Home page — all sections
function Home({ t, navigate, tweaks }) {
const s = t.home;
return (
);
}
// ── Hero ─────────────────────────────────────────────────────
function Hero({ t, navigate, variant = 'editorial' }) {
const s = t.home;
return (
{/* top meta strip */}
{s.heroEyebrow}
LAT -23.5505 · LON -46.6333 · GMT-3
{s.heroStatus}
{s.heroStatusDetail}
{s.heroTitleA}
{s.heroTitleB}
{s.heroTitleC}
{/* Bottom hero rail */}
{[
{ n: '312', l: 'engagements' },
{ n: '47', l: 'CVEs published' },
{ n: '14', l: 'senior operators' },
{ n: '24h', l: 'scoping response' },
].map((it, i) => (
0{i + 1} / 04
{it.n}
{it.l}
))}
);
}
function HeroCorners() {
return (
<>
{['tl', 'tr', 'bl', 'br'].map((pos) => {
const style = {
position: 'absolute', width: 40, height: 40,
border: '1px solid var(--accent-dim)',
};
if (pos.includes('t')) style.top = 88; else style.bottom = 32;
if (pos.includes('l')) style.left = 32; else style.right = 32;
if (pos === 'tl') { style.borderRight = 'none'; style.borderBottom = 'none'; }
if (pos === 'tr') { style.borderLeft = 'none'; style.borderBottom = 'none'; }
if (pos === 'bl') { style.borderRight = 'none'; style.borderTop = 'none'; }
if (pos === 'br') { style.borderLeft = 'none'; style.borderTop = 'none'; }
return
;
})}
>
);
}
// ── Trust strip ─────────────────────────────────────────────
function Trust({ t }) {
const s = t.home;
return (
{s.trustEyebrow}
{s.trustNote}
{s.trustTags.map((tag, i) => (
{/* Redaction bar overlay */}
· {tag}
))}
);
}
// ── Services overview ───────────────────────────────────────
function ServicesOverview({ t, navigate }) {
const s = t.home;
const items = t.services.items;
return (
{s.servicesEyebrow}
{s.servicesTitle}
{s.servicesSub}
{items.map((svc, i) => (
navigate('services', svc.slug)} t={t}/>
))}
);
}
function ServiceCard({ svc, index, onClick, t }) {
const [hovered, setHovered] = useState(false);
return (
);
}
// ── Methodology ─────────────────────────────────────────────
function Methodology({ t }) {
const s = t.home;
const [active, setActive] = useState(0);
return (
{s.methodEyebrow}
{s.methodTitle}
{s.methodSub}
{/* Left: stepper */}
{s.methodSteps.map((step, i) => {
const isActive = i === active;
return (
);
})}
{/* Right: detail panel */}
PHASE {s.methodSteps[active].n} / 05
{s.methodSteps[active].t}
{s.methodSteps[active].k}
{s.methodSteps[active].d}
{/* progress bar */}
);
}
// ── Industries ───────────────────────────────────────────────
function Industries({ t }) {
const s = t.home;
return (
{s.industriesEyebrow}
{s.industriesTitle}
{s.industriesSub}
{s.industries.map((it, i) => (
e.currentTarget.style.background = 'var(--bg-1)'}
onMouseLeave={(e) => e.currentTarget.style.background = 'transparent'}>
0{i + 1} / 0{s.industries.length}
{it.k}
{it.d}
))}
);
}
// ── Differentiators ──────────────────────────────────────────
function Differentiators({ t }) {
const s = t.home;
return (
{s.diffEyebrow}
{s.diffTitle}
{s.diffs.map((it, i) => (
))}
);
}
// ── Metrics ──────────────────────────────────────────────────
function Metrics({ t }) {
const s = t.home;
return (
{s.metricsEyebrow}
{s.metricsTitle}
{s.metrics.map((m, i) => (
))}
);
}
// ── Certifications strip on home ─────────────────────────────
function CertsStrip({ t, navigate }) {
return (
{t.certifications.eyebrow}
{t.certifications.title}
{t.certifications.sub}
{t.certifications.items.map((c, i) => (
e.currentTarget.style.background = 'var(--bg-1)'}
onMouseLeave={(e) => e.currentTarget.style.background = 'var(--bg-0)'}>
{c.k}
{c.d}
· {c.c}
))}
);
}
// ── Final CTA ─────────────────────────────────────────────────
function FinalCTA({ t, navigate }) {
const s = t.home;
return (
{s.ctaTitle}
{s.ctaSub}
{s.ctaAside}
);
}
Object.assign(window, { Home, Hero, Trust, ServicesOverview, Methodology, Industries, Differentiators, Metrics, CertsStrip, FinalCTA });