// Main App — composes everything const { useState: useStateApp, useEffect: useEffectApp, useRef: useRefApp } = React; function WorkSection({ num, label, accent, items, count, layout, onOpen, sectionId, verticalItems, campaigns, onOpenCampaign }) { const ref = window.useReveal(); const hasVertical = verticalItems && verticalItems.length > 0; const hasCampaigns = campaigns && campaigns.length > 0; return (
// {num}

{label.split('/').map((part, i) => i % 2 === 1 ? /{part}/ : {part} )}

{count} films
{items.map((it, i) => ( ))}
{hasCampaigns && (
// campaigns

Vertical Films /campaigns/

{campaigns.length} brands
{campaigns.map((c) => ( ))}
)} {hasVertical && (
// shorts + reels

Vertical /shorts/

{verticalItems.length} films
{verticalItems.map((it, i) => ( ))}
)}
); } function FlipkartSection({ data, onOpen }) { const ref = window.useReveal(); return (
// 03

Virtual Production /live/

First-of-its-kind

// I direct consistent virtual production lives and live streams for Flipkart, pioneering real-time CG & broadcast pipelines on this scale.

); } const ACCENT_PRESETS = { amber: { '--accent': '#ffa940', '--accent-soft': 'rgba(255,169,64,0.12)', '--accent-line': 'rgba(255,169,64,0.35)' }, red: { '--accent': '#ff5a47', '--accent-soft': 'rgba(255,90,71,0.12)', '--accent-line': 'rgba(255,90,71,0.35)' }, cyan: { '--accent': '#5ad6ff', '--accent-soft': 'rgba(90,214,255,0.12)', '--accent-line': 'rgba(90,214,255,0.35)' }, acid: { '--accent': '#b8ff3a', '--accent-soft': 'rgba(184,255,58,0.12)', '--accent-line': 'rgba(184,255,58,0.35)' }, white: { '--accent': '#f5f5f5', '--accent-soft': 'rgba(245,245,245,0.10)', '--accent-line': 'rgba(245,245,245,0.30)' }, }; function App() { const lb = window.useLightboxState(); const data = window.WORK_DATA; const [activeCampaign, setActiveCampaign] = useStateApp(null); // Tweaks defaults const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "cyan", "density": "default" }/*EDITMODE-END*/; const [tweaks, setTweak] = window.useTweaks(TWEAK_DEFAULTS); // Apply accent + density to root useEffectApp(() => { const root = document.documentElement; const preset = ACCENT_PRESETS[tweaks.accent] || ACCENT_PRESETS.amber; Object.entries(preset).forEach(([k, v]) => root.style.setProperty(k, v)); root.setAttribute('data-density', tweaks.density); }, [tweaks.accent, tweaks.density]); return ( <> setActiveCampaign(null)} onPlayVideo={lb.open} /> setTweak('accent', v)} options={[ { value: 'amber', label: 'Amber' }, { value: 'red', label: 'Red' }, { value: 'cyan', label: 'Cyan' }, { value: 'acid', label: 'Acid' }, { value: 'white', label: 'Mono' }, ]} /> setTweak('density', v)} options={[ { value: 'cozy', label: 'Cozy' }, { value: 'default', label: 'Default' }, { value: 'dense', label: 'Dense' }, ]} /> ); } ReactDOM.createRoot(document.getElementById('root')).render();