// Services overview grid โ€” 4 services with brand-hue tints, used on home + services index. const ServicesGrid = ({ heading = true } = {}) => { const ref = React.useRef(null); React.useEffect(() => { if (!window.gsap || !window.ScrollTrigger) return; const cards = ref.current.querySelectorAll(".scard"); window.gsap.from(cards, { scrollTrigger: { trigger: ref.current, start: "top 80%" }, y: 36, opacity: 0, duration: 0.9, stagger: 0.08, ease: "expo.out", }); }, []); const items = [ { n: "01", t: "Programmatic Advertising", d: "DSP-led buying across web, mobile, audio, and DOOH. Audience design, creative ops, brand-safety, and full-funnel attribution โ€” without hidden tech-tax.", tint: "var(--brand-cobalt)", chip: "Demand-side", href: "programmatic.html", kpis: ["DSPs: DV360, TTD, Yahoo, Xandr", "MMP: AppsFlyer, Adjust", "Verification: IAS, DV"], }, { n: "02", t: "CTV Advertising", d: "Premium streaming inventory with creative QA, frequency control, and incremental reach lift modeling. Move TV budgets to the channel where attention actually lives.", tint: "var(--brand-violet)", chip: "Streaming + OTT", href: "ctv.html", kpis: ["Direct + biddable supply", "ACR-based reach planning", "Brand-lift studies"], }, { n: "03", t: "Mobile Development", d: "iOS, Android, and React Native apps shipped end-to-end. Product strategy, design, native engineering, store ops, and a release cadence you can plan a roadmap on.", tint: "var(--brand-orange)", chip: "Engineering", href: "mobile-development.html", kpis: ["Swift, Kotlin, RN", "App Store + Play Store ops", "Live ops & analytics"], }, { n: "04", t: "Cloud Computing", d: "AWS and GCP architecture, DevOps, and managed runtime. We move you to infrastructure-as-code, set the on-call rotation, and keep the bill predictable.", tint: "var(--brand-crimson)", chip: "Infra", href: "cloud-computing.html", kpis: ["AWS / GCP / Azure", "Terraform ยท Kubernetes", "24/7 SRE on-call"], }, ]; return (
{heading && (
What we do

Four practices, one operating model.

We combine media operators with software engineers โ€” so the campaign, the app it runs in, and the dashboard you watch it on all belong to the same team.

)}
{items.map(s => ( { e.currentTarget.style.transform = "translateY(-4px)"; e.currentTarget.style.borderColor = s.tint; e.currentTarget.style.boxShadow = "var(--sh-lg)"; }} onMouseLeave={e => { e.currentTarget.style.transform = "translateY(0)"; e.currentTarget.style.borderColor = "var(--border)"; e.currentTarget.style.boxShadow = "none"; }}>
{s.chip} {s.n}

{s.t}

{s.d}

{s.kpis.map(k => ( {k} ))}
Explore {s.t.split(" ")[0]}
))}
); }; window.ServicesGrid = ServicesGrid;