// services.jsx — Services, Process, About, Contact, Footer. function ServicesSection({ accent }) { const [open, setOpen] = React.useState(0); return (
§ 02 What we do

Four suits.
One team.

We don't sub out the interesting parts. Strategy, creative, production, and post — all under one roof, all pointed at your mission.

); } function ProcessSection() { return (
§ 03 How we work

How We
Suit Up.

One team. No middlemen. Just the people making the work, working directly with you.

    {PROCESS.map((p) =>
  1. {p.step}

    {p.name}

    {p.body}

  2. )}
); } function StudioSection() { return (
§ 04 The studio

A full suit, not the
entire
deck of cards

{STUDIO.about}

We keep the team small on purpose. A director, a producer, an editor, a strategist — plus a trusted bench of collaborators we've worked with for years. You get senior hands on every task, and the person who pitched the work is the person who finishes it.

Based
{STUDIO.location}
Founded
{STUDIO.founded}
Clients
{STUDIO.clientCount}
Headcount
2 FULL-TIME
Fig. 01 — The studio, 108 Plymouth St, Brooklyn.
); } function RetainerBanner() { return (
Retainers

Looking for an ongoing creative partner?

Some missions need more than one project. Our retainer plans give you a dedicated team, consistent content, and a partner who's in it for the long haul.

Explore Retainers
); } function ContactSection() { const [name, setName] = React.useState(""); const [email, setEmail] = React.useState(""); const [msg, setMsg] = React.useState(""); const [sent, setSent] = React.useState(false); const [budget, setBudget] = React.useState(""); const [kinds, setKinds] = React.useState([]); const toggle = (k) => setKinds((xs) => xs.includes(k) ? xs.filter((x) => x !== k) : [...xs, k]); const valid = name.trim() && /\S+@\S+\.\S+/.test(email) && msg.trim().length > 6; const submit = (e) => { e.preventDefault(); if (!valid) return; setSent(true); }; return (
§ 05 Start a project

Tell us what
you're making.

A few sentences is enough. We reply to every note within two working days, with a real person's name at the bottom.

Email {STUDIO.email}
Phone {STUDIO.phone}
{sent ?

Got it, {name.split(" ")[0] || "friend"}.

We'll reply by Thursday at the latest — usually sooner. In the meantime, browse the work.

: <>
03 · What are you making?
{["Brand Film", "Campaign", "Identity", "Digital", "Not sure yet"].map((k) => )}
04 · Budget
{["< $5k", "$5-10k", "$10-25k", "$25k+", "Tell me"].map((b) => )}