function Sequence() {
const { Plate } = window.NotHumanDesignSystem_3e0b8e;
const steps = [['Character', 'studio', 'The face'], ['Product', 'stone', 'In hand'], ['Content', 'dusk', 'On feed'], ['Campaign', 'warm', 'In market'], ['Social', 'clay', 'Always on']];
const [i, setI] = React.useState(0);
const [vis, setVis] = React.useState(false);
const ref = React.useRef(null);
const ms = 2800;
React.useEffect(() => { const io = new IntersectionObserver(([e]) => setVis(e.isIntersecting), { threshold: 0.3 }); io.observe(ref.current); return () => io.disconnect(); }, []);
React.useEffect(() => {
if (!vis || window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
const t = setTimeout(() => setI((i + 1) % steps.length), ms); return () => clearTimeout(t);
}, [i, vis]);
return (
{steps.map(([n, tone, cap], k) => (
setI(k)} aria-pressed={k === i}>
{n} {String(k + 1).padStart(2, '0')}
))}
);
}
function CharacterSystem({ mobile }) {
const { CharacterViewer } = window.NotHumanDesignSystem_3e0b8e;
const traits = [['Voice', 'One tone, every channel.'], ['Personality', 'A clear point of view.'], ['Language', 'Speaks to each market.'], ['Culture', 'Local context, global reach.']];
return (
<>
{traits.map(([k, v]) =>
{k} {v} )}
>
);
}
function HomePage({ go }) {
const { Button, SectionLabel, SectionHeader, ServiceCard, ProjectGrid, CharacterViewer, ThreeScene, CTASection, ImageReveal } = window.NotHumanDesignSystem_3e0b8e;
const mobile = useIsMobile();
const [ideaImage, setIdeaImage] = React.useState(0);
const link = (r) => (e) => { e.preventDefault(); go(r); };
return (
Digital character studio India → Global
Digital characters for modern brands.
We create digital people, content and campaigns that brands can use everywhere.
Explore our work
Book a meeting
{mobile
? (
)
: (
)
}
AVA / 01
{String(ideaImage + 1).padStart(2, '0')} / 05 · {
['STUDIO', 'APPAREL', 'PRODUCT', 'SOCIAL', 'CAMPAIGN'][ideaImage]
}
{['STUDIO', 'APPAREL', 'PRODUCT', 'SOCIAL', 'CAMPAIGN'].map((label, index) => (
setIdeaImage(index)}
style={{
border: 'none',
background: ideaImage === index ? '#e5eaee' : 'transparent',
borderRadius: '8px',
padding: '13px 8px',
cursor: 'pointer',
fontFamily: 'var(--font-mono)',
fontSize: '11px',
letterSpacing: '0.08em',
color: '#697078'
}}
>
{String(index + 1).padStart(2, '0')} {label}
))}
{NH_SERVICES.map((s) => (
{String(s.index + 1).padStart(2, '0')} / {s.title}
{s.title}
{s.description}
{s.tags.join(' · ')}
))}
All work} />
({ ...p, href: '#/work/' + p.id, category: p.index + ' / ' + p.category }))} onSelect={(p) => go('work/' + p.id)} />
About
Built in India. Designed for everywhere.
NotHuman is a digital character studio creating recognizable people, content and creative systems for modern brands.
India → Global
About the studio
} />
);
}
Object.assign(window, { HomePage });