// page-contact.jsx — Contact and Careers page content const ROLES = [ { dept: 'Creative', t: 'Senior Brand Designer', loc: 'Ludhiana (on-site)', type: 'Full-time' }, { dept: 'Performance', t: 'Performance Marketing Lead', loc: 'Ludhiana / Remote', type: 'Full-time' }, { dept: 'Production', t: 'Video Editor — Reels & Ads', loc: 'Ludhiana (on-site)', type: 'Full-time' }, { dept: 'Automation', t: 'CRM & Automation Engineer', loc: 'Remote (India)', type: 'Full-time' }, { dept: 'Operations', t: 'Client Services Manager', loc: 'Ludhiana', type: 'Full-time' }, ]; function CareersPage({ setRoute }) { return (

Build the studio
with us.

We hire slowly and rarely. When we do, we look for people who’d rather make real work for real businesses than chase awards at a bigger agency in Delhi or Mumbai.

{ROLES.map((r, i) => ( setRoute('contact')}>
{String(i + 1).padStart(2, '0')}

{r.t}

{r.dept} · {r.loc} · {r.type}

Apply
))}

Don't see your role?{' '} setRoute('contact')} style={{ color: 'var(--accent)', cursor: 'pointer', borderBottom: '1px solid currentColor' }}> Write to us anyway {' '}— we keep great people in mind.

); } function ContactPage() { const [form, setForm] = React.useState({ name: '', email: '', phone: '', company: '', service: 'branding', budget: '', timeline: '', message: '' }); const [submitted, setSubmitted] = React.useState(false); const [errors, setErrors] = React.useState({}); const budgets = ['< ₹1L', '₹1–5L', '₹5–15L', '₹15L+', 'Not sure yet']; const update = (k) => (e) => setForm({ ...form, [k]: e.target.value }); const validate = () => { const errs = {}; if (!form.name.trim()) errs.name = 'Required'; if (!form.email.includes('@')) errs.email = 'Need a valid email'; if (!form.message.trim() || form.message.length < 12) errs.message = 'Tell us a bit more'; return errs; }; const submit = (e) => { e.preventDefault(); const errs = validate(); setErrors(errs); if (Object.keys(errs).length === 0) { setSubmitted(true); } }; if (submitted) { return (

Thanks, {form.name.split(' ')[0]}.
We'll reply within a day.

Your message is in our queue — you’ll hear from Satnam directly. In the meantime, here’s a few useful things.

{[ { t: 'Recent case studies', d: 'Township launches, brand relaunches, political campaigns and Bollywood film promos.' }, { t: 'Pricing & retainers', d: 'How we scope brand sprints, monthly retainers and per-seat political campaigns.' }, { t: 'WhatsApp the studio', d: 'For active clients and quick questions — fastest way to reach us most days.' }, ].map((c, i) => (

{c.t}

{c.d}

Open
))}
); } return (

Tell us about
your project.

The more you share, the better our first reply. If you’d rather just say hi, that works too — keep it short.

{budgets.map(b => ( ))}