>
);
}
/* ---------- HERO ---------- */
function Hero() {
const layerRef = useRef(null);
useEffect(() => {
const layer = layerRef.current;
if (!layer) return;
const onMove = (e) => {
const rect = layer.getBoundingClientRect();
const cx = rect.width / 2;
const cy = rect.height / 2;
const dx = (e.clientX - rect.left - cx) / cx;
const dy = (e.clientY - rect.top - cy) / cy;
layer.querySelectorAll("[data-depth]").forEach((node) => {
const d = parseFloat(node.getAttribute("data-depth"));
node.style.transform = `translate(${dx * d}px, ${dy * d}px) rotate(${node.dataset.r || 0}deg)`;
});
};
window.addEventListener("mousemove", onMove);
return () => window.removeEventListener("mousemove", onMove);
}, []);
// scramble effect on the headline word
const [scrambled, setScrambled] = useState("LOUDER");
useEffect(() => {
const target = "LOUDER";
const pool = "QWERTYUIOPASDFGHJKLZXCVBNM#@$%&!?";
let i = 0;
const id = setInterval(() => {
const out = target.split("").map((ch, idx) => {
if (idx < i) return ch;
return pool[Math.floor(Math.random() * pool.length)];
}).join("");
setScrambled(out);
i += 0.5;
if (i >= target.length + 4) i = 0;
}, 80);
return () => clearInterval(id);
}, []);
return (
★✺✦❍No agency BS, est. 2020Made in 🇮🇳★ ★ ★ ★ ★
A design studio for the chronically onlineEST. MMXX · BENGALURU
We make brands{" "}
{scrambled}.
We're a small studio building brands, products and websites that
people actually screenshot. No templated decks. No design-by-committee.
Just sharp work, made loud.
A few projects we're proud of. Click any of them to ask us how we'd do yours.
{cases.map((c, i) => (
{c.visual}
{c.cat}
{c.name} — {c.title}
{c.tag}
))}
);
}
function BigStamp({ text, sub }) {
return (
{text}
{sub}.
SCOOPED FRESH
);
}
function FoldViz() {
return (
FOLD · BALANCENOV 24
₹4,29,810
{[34, 56, 22, 78, 44, 90, 60].map((h, i) => (
))}
+12.4% this month▲ UP
);
}
function HaloViz() {
return (
◯
halo.BREATHE IN
);
}
function BoltViz() {
return (
⚡
BOLT
specialty coffee.
);
}
function PilotViz() {
return (
{["P","I","L","O","T","S"].map((l, i) => (
{l}
))}
PILOT · INDIE GAME STUDIOS · BRAND SYSTEM
);
}
/* ---------- PROCESS ---------- */
function Process() {
const steps = [
{ n: "01", title: <>Interrogate.>, body: "We get nosy. Two weeks of questions, audits and uncomfortable truths. We arrive with opinions; we leave with a brief.", hand: "🔍", rot: "-2deg" },
{ n: "02", title: <>Provoke.>, body: "We sketch the safe option and the unsafe one. We pitch the unsafe one harder. You decide.", hand: "✺", rot: "1.5deg" },
{ n: "03", title: <>Ship.>, body: "We design, build and launch with teeth. Every handoff is dev-ready, every milestone has a date — and it sticks.", hand: "🚀", rot: "-1deg" },
{ n: "04", title: <>Stay.>, body: "We don't ghost after launch. 60-day support, optimization sprints, and a Slack channel we actually answer in.", hand: "♥", rot: "2deg" },
];
return (
How it works · 04 phases
A process that refuses to be generic.
{steps.map((s, i) => (
PHASE {s.n} / 04
{s.title}
{s.body}
{s.hand}
))}
);
}
Object.assign(window, { Cursor, Nav, Hero, Ticker, Services, Work, Process, Furniture });
function Furniture({ num, label, ghost = "", position = "right", stars = true }) {
// Editorial decoration for plain sections: ghost section number, spine label,
// corner crop/registration marks, and a few scattered serif glyphs.
return (