"use client"; import { motion } from "framer-motion"; import CountUp from "react-countup"; import { useInView } from "react-intersection-observer"; import AnimatedButton from "@/components/ui/AnimatedButton"; /** * "Why Cerkel" home section — achievements & scale. Editorial header, an * annual-report style stats band with scroll-triggered animated counters, * and four differentiators. Brand-strict: Google Sans everywhere, * orange/gold tokens. */ // Image-backed stat cards. Swap the images in /public/images anytime. const STATS = [ { value: 150, suffix: "+", label: ["Projects", "delivered"], sub: "shipped across game, data & AI, web and media work", image: "/images/opt/HeroBanner1.webp", }, { value: 98, suffix: "%", label: ["Client", "retention"], sub: "partners who come back to build the next thing with us", image: "/images/opt/HeroBanner2.webp", }, { value: 40, suffix: "+", label: ["Technology", "specialists"], sub: "senior engineers and designers, no hand-offs to juniors", image: "/images/opt/HeroBanner3.png", }, { value: 12, suffix: "+", label: ["Industries", "served"], sub: "from gaming and media to retail, education and startups", image: "/images/opt/Pillar1.webp", }, ]; const HEAD_WORDS = ["Built", "to", "deliver."]; /* What sets us apart — the four pillars behind the work. */ const DIFFERENTIATORS = [ { no: "01", title: "Innovation", desc: "We bring the latest in AI, engineering and design to every build — tech that moves your metrics, not buzzwords." }, { no: "02", title: "Creativity", desc: "Strategy meets craft. From games to brand campaigns, we make work that stands out and gets remembered." }, { no: "03", title: "Data-Driven", desc: "Every decision is grounded in data and measured against outcomes, so you always know what's working." }, { no: "04", title: "Partnership", desc: "We work as an embedded team that owns outcomes with you — senior, transparent and invested for the long run." }, ]; const container = { hidden: {}, show: { transition: { staggerChildren: 0.12 } } }; const word = { hidden: { yPercent: 120 }, show: { yPercent: 0, transition: { duration: 0.7, ease: [0.21, 0.47, 0.32, 0.98] } }, }; const rise = { hidden: { opacity: 0, y: 40 }, show: { opacity: 1, y: 0, transition: { duration: 0.65, ease: [0.21, 0.47, 0.32, 0.98] } }, }; export default function WhyCerkel() { // Start the counters once the stats band scrolls into view. const { ref: statsRef, inView: statsInView } = useInView({ triggerOnce: true, threshold: 0.35, }); return (
{/* ambient glow + grid texture */}
{/* Editorial header */}
Why Cerkel

{HEAD_WORDS.map((w, i) => ( {w}   ))} Trusted to scale.

The numbers behind the work — and the way of working that earns them, project after project.

More about us
{/* Stats — image-backed stat cards */} {STATS.map(({ value, suffix, label, sub, image }) => ( {/* top accent line */} {/* Number + label + copy */}

{statsInView ? : 0} {suffix}

{label[0]}
{label[1]}

{sub}

{/* Image — fills the lower half */}
{/* blend into the card */}
))}
{/* What sets us apart — four pillars */} What sets us apart.
{DIFFERENTIATORS.map(({ no, title, desc }) => ( {no}

{title}

{desc}

))}
); }