const { Statement, Eyebrow, Rule } = window.VamshotDesignSystem_18ef2a;
/* SECTION 02 — the core idea. Sticky statement: RENT leaves, OWN arrives. */
/* Mobile gets the same two beats as a stacked reveal — no 340vh scroll jail,
no per-frame transforms, same typography. */
function CoreIdeaStacked() {
const ref = useReveal();
return (
02 — The core idea
A real influencer is borrowed. A NOTHUMAN character is built for your brand.
);
}
function CoreIdea() {
const handheld = useMedia(vsMQ.handheld);
const wrap = React.useRef(null);
const p = useProgress(wrap, !handheld && !vsReduced);
const out = vsRange(p, 0.24, 0.46);
const inn = vsRange(p, 0.42, 0.64);
const copy = vsRange(p, 0.6, 0.82);
if (handheld || vsReduced) return ;
return (
02 — The core idea
0.001 ? 'blur(' + (out * 7) + 'px)' : 'none' }}>
A real influencer is borrowed. A NOTHUMAN character is built for your brand.
);
}
/* SECTION 03 — what we do. Four systems, set as type, not cards. */
const vsSystems = [
{ index: '01', name: 'Character design', lede: 'This is casting, not image generation.', items: ['Face lock.', 'Body.', 'Voice.', 'Wardrobe.', 'Personality.', 'Visual world.'] },
{ index: '02', name: 'Content production', lede: 'Shot without the shoot.', items: ['Video.', 'Reels.', 'Campaigns.', 'Product handling.', 'Locations.', 'Lip sync.'] },
{ index: '03', name: 'Channel operation', lede: 'A character that behaves like a creator.', items: ['Posting.', 'Captions.', 'Comments.', 'Community.', 'Collaborations.'] },
{ index: '04', name: 'Performance creative', lede: 'One face. A hundred angles.', items: ['Multiple hooks.', 'Multiple campaigns.', 'Multiple ad variations.', 'Built for testing.'] }
];
function SystemRow({ index, name, lede, items, delay }) {
const [hover, setHover] = React.useState(false);
return (