feat(marketing): redesign landing as "trusted infrastructure"
ci / gates (push) Has been cancelled
ci / rust (push) Has been cancelled
ci / sandbox-k8s (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / e2e (push) Has been cancelled

Re-skins the playful/consumer feel into disciplined agent-infrastructure,
keeping the animated hero canvas (re-themed) and adding the hierarchy story.

- Palette: re-point coral→ember (#E0584A); add ink/surface/mist/slate-light/
  azure/teal tokens. One accent per viewport; retire the black/coral split-
  headline pattern across all 8 headings (single ink color).
- Typography: hero/section weights 800→~650-675, tighter tracking, smaller
  hero size; uppercase eyebrow label.
- Hero: dark ink base with glowing azure/indigo + faint ember canvas blooms;
  light copy; new positioning ("Build safe, scalable agentic systems" + the
  single-agent-to-company subhead); ember primary CTA + ghost "Read the docs".
- Imagery overhaul (code-built, no mascots): AgentToken chips (CrewStrip,
  OneClick card, footer), AlwaysOn rebuilt as a terminal/log with an approval
  line, SkillsShowcase as duotone lucide cards on Mist, Security as a shield/
  lock motif.
- New HierarchyDiagram section ("One agent, or a whole org chart"): SVG org
  chart with an azure active path and teal human-approval checkpoints on
  sandbox-leaving actions.
- Tests: dark-hero/terminal/eyebrow contrast fixed to AA; refreshed the
  marketing @visual baseline (hero masked).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Omar Sobh
2026-06-15 15:56:58 -07:00
co-authored by Claude Opus 4.8
parent 4b55c4d81e
commit 44512a744f
8 changed files with 436 additions and 150 deletions
+181 -125
View File
@@ -1,24 +1,24 @@
import { Lock, Package, Share2, ShieldCheck, Wand2 } from "lucide-react";
import Image from "next/image";
import Link from "next/link";
import { AgentToken } from "./AgentToken";
import { HeroAmbient } from "./HeroAmbient";
/* Marketing landing — WorkClaw's full section layout/styling reproduced 1:1,
Clawmates-branded with honest claims (no borrowed customer logos, no
unverified SOC 2). Measurements/colours lifted from the live source.
Coral text on light fills uses the AA-safe `coral-strong`; #e95656 stays on
Coral text on light fills uses the AA-safe `coral-strong`; #e0584a stays on
dark fills and solid buttons. */
const ctaCoral =
"inline-flex items-center justify-center rounded-full bg-marketing-coral-strong font-semibold text-white transition-colors hover:bg-[#bd2d2d]";
const ctaGhost =
"inline-flex items-center justify-center rounded-full bg-white font-semibold text-[#0f172a] transition-colors hover:bg-[#f1f3f7]";
"inline-flex items-center justify-center rounded-full bg-marketing-coral-strong font-semibold text-white transition-colors hover:bg-[#a63a2f]";
/* ---------- Hero ---------- */
export function Hero() {
return (
<section
className="relative -mt-[98px] h-[760px] w-full overflow-hidden bg-[#ebf4fd] sm:h-[720px] md:h-[760px] lg:h-[820px] xl:h-[900px] 2xl:h-[963px]"
className="relative -mt-[98px] h-[760px] w-full overflow-hidden bg-[#0b1220] sm:h-[720px] md:h-[760px] lg:h-[820px] xl:h-[900px] 2xl:h-[963px]"
style={{ zIndex: 2 }}
>
{/* Animated ambient backdrop (replaces the hero illustration). */}
@@ -27,44 +27,56 @@ export function Hero() {
className="absolute left-1/2 flex w-full max-w-[720px] -translate-x-1/2 flex-col items-center px-6 text-center"
style={{ top: "clamp(160px, 12.0139vw, 173px)", gap: 48, zIndex: 2 }}
>
<div className="flex flex-col items-center" style={{ gap: 13 }}>
<div className="flex flex-col items-center" style={{ gap: 16 }}>
<span
className="font-[500] uppercase"
style={{ color: "#94a3b8", fontSize: 13, letterSpacing: "0.16em" }}
>
Agentic infrastructure
</span>
<h1
className="m-0 font-extrabold"
className="m-0 font-[675]"
style={{
color: "#161d27",
fontSize: "clamp(49px, 6.667vw, 96px)",
lineHeight: 0.9,
letterSpacing: "-0.04em",
color: "#f5f8fc",
fontSize: "clamp(40px, 5vw, 64px)",
lineHeight: 1.02,
letterSpacing: "-0.02em",
}}
>
Scale your
<br />
<span className="text-marketing-coral-strong">Large World</span>
Build safe, scalable
<br className="hidden sm:inline" /> agentic systems
</h1>
<p
className="m-0 font-medium"
style={{
color: "#475569",
fontSize: "clamp(16px, 1.944vw, 28px)",
lineHeight: 1.3,
letterSpacing: "-0.04em",
maxWidth: 659,
color: "#cbd5e1",
fontSize: "clamp(16px, 1.6vw, 22px)",
lineHeight: 1.45,
letterSpacing: "-0.01em",
maxWidth: 620,
}}
>
Building safe and scalable systems of claws for any domain of work.
From a single agent to an entire company of them with the
hierarchy, controls, and human approvals to run them safely in
production.
</p>
</div>
<div
className="flex w-full flex-col items-stretch justify-center px-4 sm:flex-row sm:items-start sm:px-0"
style={{ gap: 16, maxWidth: 538 }}
className="flex w-full flex-col items-stretch justify-center px-4 sm:flex-row sm:items-center sm:px-0"
style={{ gap: 16, maxWidth: 460 }}
>
<a
href="mailto:[email protected]"
className={`${ctaGhost} h-14 border border-[#e2e8f0] px-10 text-base sm:h-16`}
style={{ filter: "drop-shadow(0 4px 12px rgba(22,29,39,0.08))" }}
className={`${ctaCoral} h-14 px-10 text-base sm:h-16`}
>
Book a demo
</a>
<a
href="https://git.redclaw.dev/osobh/clawmates"
className="inline-flex h-14 items-center justify-center rounded-full border border-white/25 px-10 text-base font-semibold text-white transition-colors hover:bg-white/10 sm:h-16"
>
Read the docs
</a>
</div>
</div>
{/* Soft fade into the white section below. */}
@@ -77,25 +89,38 @@ export function Hero() {
);
}
/* ---------- Crew strip (honest replacement for the company-logo marquee) ---------- */
/* ---------- Crew strip (agent-token roster on the open Claw runtime) ---------- */
const CREW = [
"Marketing Claw",
"Support Claw",
"Research Claw",
"Engineering Claw",
"Ops Claw",
"Growth Claw",
"Analytics Claw",
"Design Claw",
];
export function CrewStrip() {
return (
<div className="relative w-full" style={{ zIndex: 1 }}>
<div className="relative z-[1] flex flex-col items-center gap-6 pt-8 pb-14 lg:gap-8">
<div className="relative w-full bg-white" style={{ zIndex: 1 }}>
<div className="relative z-[1] mx-auto flex max-w-[1120px] flex-col items-center gap-7 px-6 pt-10 pb-14">
<p className="text-center text-[16px] font-semibold text-[#647289]">
A whole crew, built on the open{" "}
<span className="text-marketing-coral-strong">Claw</span> runtime
</p>
<div className="w-full overflow-hidden opacity-75">
<Image
src="/images/marketing/claw-carousel-strip.png"
alt="The clawmate crew"
width={4096}
height={123}
unoptimized
sizes="100vw"
className="block h-auto w-full max-w-none"
/>
<div className="flex w-full flex-wrap items-center justify-center gap-2.5">
{CREW.map((name) => (
<div
key={name}
className="flex items-center gap-2.5 rounded-2xl border border-marketing-border bg-white px-3 py-2"
>
<AgentToken name={name} size={30} />
<span className="text-[13px] font-medium whitespace-nowrap text-marketing-ink">
{name}
</span>
</div>
))}
</div>
</div>
</div>
@@ -118,14 +143,14 @@ export function Pitch() {
>
<div className="flex w-full max-w-[874px] flex-col items-center gap-[40px]">
<h2
className="w-[348px] text-center text-[40px] leading-none font-extrabold tracking-[-1.6px] sm:w-[600px] sm:text-[50px] lg:w-[874px] lg:text-[64px] lg:tracking-[-2.56px]"
className="w-[348px] text-center text-[40px] leading-none font-[650] tracking-[-1.6px] sm:w-[600px] sm:text-[50px] lg:w-[874px] lg:text-[64px] lg:tracking-[-2.56px]"
style={{ color: "#161d27" }}
>
Multiply your brainpower
<br className="hidden lg:block" /> with a team of custom,
<br className="hidden lg:block" /> collaborative{" "}
<br className="inline sm:hidden" />
<span className="text-marketing-coral">AI coworkers</span>
AI coworkers
</h2>
<div className="grid grid-cols-2 justify-items-center gap-x-4 gap-y-8 sm:grid-cols-4 lg:gap-x-0 lg:gap-y-0">
{BADGES.map((b) => (
@@ -165,10 +190,10 @@ export function OneClick() {
<div className="relative" style={{ width: 137, height: 64 }}>
<div
className="absolute top-0 left-0 flex items-center justify-center bg-white"
style={{ width: 64, height: 64, borderRadius: 16, border: "2px dashed #e95656" }}
style={{ width: 64, height: 64, borderRadius: 16, border: "2px dashed #e0584a" }}
>
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden>
<path d="M12 5v14M5 12h14" stroke="#e95656" strokeWidth="2.5" strokeLinecap="round" />
<path d="M12 5v14M5 12h14" stroke="#e0584a" strokeWidth="2.5" strokeLinecap="round" />
</svg>
</div>
<svg
@@ -183,10 +208,10 @@ export function OneClick() {
</div>
<div className="flex max-w-[623px] flex-col gap-4">
<h2
className="m-0 font-extrabold"
className="m-0 font-[650]"
style={{ color: "#161d27", fontSize: "clamp(36px, 5vw, 56px)", lineHeight: 0.9, letterSpacing: "-0.04em" }}
>
<span className="text-marketing-coral">One-click </span>setup
One-click setup
</h2>
<p
className="m-0 max-w-[448px] font-medium"
@@ -203,19 +228,10 @@ export function OneClick() {
style={{ width: 375, maxWidth: "100%", backgroundColor: "white", border: "1px solid #e2e8f0", borderRadius: 32, boxShadow: "0px 17px 40px 0px rgba(0,0,0,0.1)" }}
>
<div
className="relative flex w-full items-end justify-center overflow-hidden"
style={{ height: 208, backgroundColor: "#bfd2ff" }}
className="relative flex w-full items-center justify-center overflow-hidden"
style={{ height: 168, background: "linear-gradient(160deg, #1e293b, #0b1220)" }}
>
<Image
src="/images/marketing/support-claw.png"
alt="A clawmate"
width={1530}
height={1830}
unoptimized
sizes="156px"
className="object-contain object-bottom"
style={{ width: 156, height: 187 }}
/>
<AgentToken name="Sandy Clawson" size={76} />
</div>
<div className="flex w-full flex-col gap-6 px-6">
<div className="flex flex-col gap-4">
@@ -232,7 +248,7 @@ export function OneClick() {
{["Shared with your team", "Talks with other Claws"].map((row) => (
<div key={row} className="flex items-center justify-between">
<span className="font-medium" style={{ color: "#475569", fontSize: 14, letterSpacing: "-0.02em" }}>{row}</span>
<span aria-hidden className="inline-flex items-center justify-end" style={{ width: 36, height: 20, padding: 2, borderRadius: 9999, backgroundColor: "#e95656" }}>
<span aria-hidden className="inline-flex items-center justify-end" style={{ width: 36, height: 20, padding: 2, borderRadius: 9999, backgroundColor: "#e0584a" }}>
<span className="block" style={{ width: 16, height: 16, borderRadius: 9999, backgroundColor: "white", boxShadow: "0px 0px 1px 0px rgba(0,0,0,0.4), 0px 1px 3px 0px rgba(0,0,0,0.1)" }} />
</span>
</div>
@@ -272,8 +288,8 @@ export function Works() {
<img src="/images/marketing/icon-slack.svg" alt="" style={{ width: 46, height: 46 }} />
</div>
<div className="flex max-w-[623px] flex-col gap-4">
<h2 className="m-0 font-extrabold" style={{ color: "#0f172a", fontSize: "clamp(32px, 5vw, 56px)", lineHeight: 0.9, letterSpacing: "-0.04em" }}>
Works <span className="text-marketing-coral">where you do</span>
<h2 className="m-0 font-[650]" style={{ color: "#0f172a", fontSize: "clamp(32px, 5vw, 56px)", lineHeight: 0.9, letterSpacing: "-0.04em" }}>
Works where you do
</h2>
<p className="m-0 max-w-[524px] font-medium" style={{ color: "rgba(10,15,30,0.75)", fontSize: "clamp(16px, 1.4vw, 20px)", lineHeight: 1.6 }}>
Each clawmate has their own computer and can collaborate over
@@ -321,8 +337,8 @@ export function AlwaysOn() {
<div className="relative z-10 flex min-w-0 flex-1 flex-col items-start justify-center gap-8 lg:justify-start lg:pt-[88px]">
<img src="/images/moon.svg" alt="" width={61} height={64} className="block" />
<div className="flex max-w-[623px] flex-col gap-4">
<h2 className="m-0 font-extrabold" style={{ color: "#f8fafc", fontSize: "clamp(36px, 5vw, 56px)", lineHeight: 0.9, letterSpacing: "-0.04em" }}>
Always <span className="text-marketing-coral">on</span>
<h2 className="m-0 font-[650]" style={{ color: "#f8fafc", fontSize: "clamp(36px, 5vw, 56px)", lineHeight: 0.9, letterSpacing: "-0.04em" }}>
Always on
</h2>
<p className="m-0 max-w-[496px] font-medium" style={{ color: "#cbd5e1", fontSize: "clamp(16px, 1.4vw, 20px)", lineHeight: 1.6 }}>
Your team of clawmates get real work done
@@ -331,12 +347,46 @@ export function AlwaysOn() {
</p>
</div>
</div>
<div className="relative flex min-w-0 flex-1 items-center justify-center lg:items-stretch lg:justify-stretch">
<div className="relative w-full lg:hidden" style={{ maxWidth: 543, aspectRatio: "449 / 496" }}>
<Image src="/images/marketing/always-composite.png" alt="A clawmate working through the night" fill unoptimized sizes="543px" className="object-contain" />
</div>
<div className="relative hidden w-full lg:block lg:self-stretch">
<Image src="/images/marketing/always-composite-desktop.png" alt="A clawmate working through the night" fill unoptimized sizes="50vw" className="object-cover object-center" />
<div className="relative z-10 flex min-w-0 flex-1 items-center justify-center lg:py-[64px] lg:pr-[64px]">
<div className="w-full max-w-[520px] overflow-hidden rounded-2xl border border-white/10 bg-[#0b1220] font-mono text-[12.5px] leading-relaxed shadow-2xl">
<div className="flex items-center gap-1.5 border-b border-white/10 px-4 py-3">
<span className="size-2.5 rounded-full bg-white/20" />
<span className="size-2.5 rounded-full bg-white/20" />
<span className="size-2.5 rounded-full bg-white/20" />
<span className="ml-2 text-[11px] text-marketing-slate-light">
marketing-claw · activity
</span>
</div>
<div className="flex flex-col gap-1.5 px-4 py-4 text-marketing-slate-light">
<p>
<span className="text-marketing-slate-light">02:14</span>{" "}
<span className="text-marketing-azure"></span> drafting the weekly
report
</p>
<p>
<span className="text-marketing-slate-light">02:15</span>{" "}
<span className="text-marketing-azure"></span> querying the
analytics warehouse
</p>
<p>
<span className="text-marketing-slate-light">02:17</span>{" "}
<span className="text-marketing-teal"></span> 3 tool calls
completed
</p>
<p className="rounded-md bg-white/[0.04] px-2 py-1.5">
<span className="text-marketing-teal"></span> awaiting human
approval <span className="text-white">send email team@</span>
</p>
<p>
<span className="text-marketing-slate-light">02:19</span>{" "}
<span className="text-marketing-teal"></span> approved by you ·
sent
</p>
<p className="flex items-center gap-2 text-marketing-slate-light">
<span className="inline-block size-2 rounded-full bg-marketing-teal" />
running while you sleep
</p>
</div>
</div>
</div>
</div>
@@ -350,64 +400,54 @@ export function SkillsShowcase() {
<div className="relative w-screen" style={{ left: "50%", marginLeft: "-50vw" }}>
<section
id="deck"
className="flex w-full scroll-mt-24 flex-col items-center overflow-x-hidden bg-[#ebf4fd] px-6 pt-[104px] pb-[104px] sm:pt-[176px] sm:pb-[200px]"
className="flex w-full scroll-mt-24 flex-col items-center overflow-x-hidden bg-marketing-mist px-6 pt-[104px] pb-[104px] sm:pt-[176px] sm:pb-[200px]"
>
<div className="flex w-full flex-col items-center gap-[56px]" style={{ maxWidth: 1014 }}>
<div className="flex max-w-[544px] flex-col items-center gap-4">
<h2 className="text-center text-[32px] leading-none font-extrabold tracking-[-1.28px] text-[#161d27] sm:text-[48px] sm:tracking-[-2.24px] lg:text-[56px]">
Your work, <span className="text-marketing-coral-strong">your way</span>
<h2 className="text-center text-[32px] leading-none font-[650] tracking-[-1.28px] text-[#161d27] sm:text-[48px] sm:tracking-[-2.24px] lg:text-[56px]">
Your work, your way
</h2>
<p className="max-w-[468px] text-center text-[18px] leading-[1.6] font-medium text-[#0a0f1e]/75 sm:text-[20px]">
Teach your clawmates to work the way your company does. Share skills
with your whole team.
</p>
</div>
{/* Desktop */}
<div className="hidden w-full sm:block">
<div className="relative w-full" style={{ aspectRatio: "1014 / 165" }}>
<div className="absolute top-0 left-1/2 -translate-x-1/2 rounded-[16px] bg-[#56b1e9]" style={{ width: "24.46%", aspectRatio: "248 / 163" }} />
<img src="/images/marketing/skills-left.gif" alt="Create skill illustration" className="absolute" style={{ left: "3%", top: "10%", width: "19.7%" }} />
<img src="/images/marketing/skills-center-desktop.svg" alt="" className="absolute left-1/2 z-10 -translate-x-1/2" style={{ top: "6%", width: "60.65%" }} />
<img src="/images/marketing/skills-right.gif" alt="Share skills illustration" className="absolute" style={{ right: "3%", top: "10%", width: "19.7%" }} />
</div>
<div className="mt-4 flex w-full items-start">
<div className="flex w-[23%] flex-col items-center gap-2 text-center">
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-[#161d27]">Create any new skill</h3>
<p className="max-w-[241px] text-[14px] leading-[1.4] text-[#161d27]">Turn your team&apos;s workflows into custom skills simply by chatting.</p>
<div className="grid w-full gap-6 sm:grid-cols-3">
{[
{
Icon: Wand2,
title: "Create any new skill",
body: "Turn your team's workflows into custom skills simply by chatting.",
},
{
Icon: Package,
title: "Install our skill packs",
body: "Get started with our library of battle-tested skills. Tweak as you need.",
},
{
Icon: Share2,
title: "Share skills easily",
body: "Your team builds once and gets the benefits of AI together.",
},
].map(({ Icon, title, body }) => (
<div
key={title}
className="flex flex-col items-center gap-4 rounded-3xl border border-marketing-border bg-white px-6 py-10 text-center"
>
<span
className="flex size-14 items-center justify-center rounded-2xl"
style={{ backgroundColor: "rgba(59,130,246,0.1)" }}
>
<Icon aria-hidden size={26} strokeWidth={1.75} className="text-marketing-azure" />
</span>
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-marketing-ink">
{title}
</h3>
<p className="max-w-[260px] text-[14px] leading-[1.5] text-marketing-slate">
{body}
</p>
</div>
<div className="flex flex-1 flex-col items-center gap-2 text-center">
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-[#161d27]">Install our skill packs</h3>
<p className="max-w-[272px] text-[14px] leading-[1.4] text-[#161d27]">Get started with our library of battle-tested skills. Tweak as you need.</p>
</div>
<div className="flex w-[27%] flex-col items-center gap-2 text-center">
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-[#161d27]">Share skills easily</h3>
<p className="max-w-[247px] text-[14px] leading-[1.4] text-[#161d27]">Your team builds once and gets the benefits of AI together.</p>
</div>
</div>
</div>
{/* Mobile */}
<div className="flex w-full flex-col items-center gap-[80px] sm:hidden">
<div className="flex flex-col items-center gap-4">
<img src="/images/marketing/skills-left.gif" alt="Create skill illustration" className="h-auto w-[160px]" />
<div className="flex flex-col items-center gap-2 text-center">
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-[#161d27]">Create any new skill</h3>
<p className="max-w-[241px] text-[14px] leading-[1.4] text-[#161d27]">Turn your team&apos;s workflows into custom skills simply by chatting.</p>
</div>
</div>
<div className="flex flex-col items-center gap-4">
<img src="/images/marketing/skills-center-desktop.svg" alt="" className="h-auto w-[300px]" />
<div className="flex flex-col items-center gap-2 text-center">
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-[#161d27]">Install our skill packs</h3>
<p className="max-w-[272px] text-[14px] leading-[1.4] text-[#161d27]">Get started with our library of battle-tested skills. Tweak as you need.</p>
</div>
</div>
<div className="flex flex-col items-center gap-4">
<img src="/images/marketing/skills-right.gif" alt="Share skills illustration" className="h-auto w-[160px]" />
<div className="flex flex-col items-center gap-2 text-center">
<h3 className="text-[18px] leading-[1.1] font-semibold tracking-[-0.18px] text-[#161d27]">Share skills easily</h3>
<p className="max-w-[247px] text-[14px] leading-[1.4] text-[#161d27]">Your team builds once and gets the benefits of AI together.</p>
</div>
</div>
))}
</div>
</div>
</section>
@@ -428,21 +468,27 @@ export function Security() {
<section id="security" className="flex w-full flex-col items-center px-6 py-[104px] sm:py-[128px]">
<div className="flex w-full max-w-[1100px] flex-col items-center gap-10">
<div className="flex flex-col items-center gap-4 text-center">
<h2 className="text-[36px] leading-none font-extrabold tracking-[-2.24px] text-[#161d27] sm:text-[48px] lg:text-[56px]">
Enhanced <span className="text-marketing-coral">security</span>
<h2 className="text-[36px] leading-none font-[650] tracking-[-2.24px] text-[#161d27] sm:text-[48px] lg:text-[56px]">
Enhanced security
</h2>
<p className="max-w-[484px] text-[18px] leading-[1.6] text-[#0a0f1e]/75 sm:text-[20px]">
Clawmates is built for security-minded teams, adding a layer of
control and safety on top of the open Claw runtime.
</p>
</div>
<div className="flex items-center justify-center gap-[14px]">
<div className="h-[140px] sm:h-[170px] lg:h-[198px]">
<img src="/images/marketing/security-hand-key.png" alt="Hand inserting a key into a vault" className="h-full w-auto" />
</div>
<div className="-my-[10px] h-[154px] sm:-my-[12px] sm:h-[186px] lg:-my-[14px] lg:h-[217px]">
<img src="/images/marketing/key-snap.gif" alt="A clawmate securing a vault" className="h-full w-auto" />
</div>
<div className="flex items-center justify-center py-2">
<span
className="relative flex items-center justify-center rounded-[28px] border border-marketing-border bg-marketing-mist"
style={{ width: 132, height: 132 }}
>
<ShieldCheck aria-hidden size={64} strokeWidth={1.5} className="text-marketing-azure" />
<span
className="absolute -right-2 -bottom-2 flex size-9 items-center justify-center rounded-full bg-marketing-teal text-white"
style={{ boxShadow: "0 6px 16px rgba(20,184,166,0.4)" }}
>
<Lock aria-hidden size={16} strokeWidth={2} />
</span>
</span>
</div>
<div className="grid w-full grid-cols-1 gap-10 pt-8 sm:grid-cols-2 lg:grid-cols-4">
{SECURITY.map((s) => (
@@ -474,8 +520,18 @@ export function Footer() {
<div className="relative flex w-full flex-col items-center overflow-hidden bg-[#f9fbff] px-6 pt-[127px] pb-[160px] sm:pb-[120px]">
<div className="absolute inset-0 h-full w-full opacity-[0.07]" style={{ backgroundImage: "url('/images/marketing/dot-pattern.svg')", backgroundSize: "cover", backgroundPosition: "center" }} />
<div className="relative flex w-full max-w-[561px] flex-col items-center gap-[40px] sm:gap-[56px]">
<img src="/images/marketing/footer-team.svg" alt="A team working together" className="h-auto w-[140px] sm:w-[190px]" />
<h2 className="text-center text-[40px] leading-none font-extrabold tracking-[-2.56px] text-[#161d27] sm:text-[56px] lg:text-[64px]">
<div className="flex items-center justify-center gap-2.5">
{[
{ n: "Marketing Claw", a: "#3b82f6" },
{ n: "Support Claw", a: "#14b8a6" },
{ n: "Research Claw", a: "#3b82f6" },
{ n: "Ops Claw", a: "#3b82f6" },
{ n: "Growth Claw", a: "#14b8a6" },
].map(({ n, a }) => (
<AgentToken key={n} name={n} size={44} accent={a} />
))}
</div>
<h2 className="text-center text-[40px] leading-none font-[650] tracking-[-2.56px] text-[#161d27] sm:text-[56px] lg:text-[64px]">
Build your AI crew
</h2>
<div className="flex w-full max-w-[454px] flex-col gap-4 sm:flex-row">