const { useState, useEffect, useRef } = React; // ============ DATA ============ const SERVICES = [ { n: "01", t: "Social Media", em: "Management", d: "End-to-end feed ownership. Strategy, calendar, posting, community." }, { n: "02", t: "Content", em: "Production", d: "Photo + video shoots engineered for the algorithm. Reels, UGC, stills." }, { n: "03", t: "Creative", em: "Direction", d: "The look, the voice, the world your audience wants to live inside." }, { n: "04", t: "Paid", em: "Campaigns", d: "Meta, TikTok, Pinterest. Creative-led and ROAS-honest." }, { n: "05", t: "Influencer", em: "Partnerships", d: "Sourcing, briefing, negotiating. Matches that land on camera." }, { n: "06", t: "Launch", em: "Strategy", d: "Drop a product or rebrand without silence. Rollouts that actually land." }, ]; const WORK = [ { img: "assets/portfolio-6.png", client: "Boona Signature", tag: "Brand film · 2026", desc: "A signature campaign we shot in-house — red heels, grey sweats, laptop open. The tone we build for every client.", layout: "l" }, { img: "assets/portfolio-3.png", client: "Skyline, Miami", tag: "Editorial · Night", desc: "Rooftop shoot for a hospitality launch. Dual-camera, behind-the-scenes, social-first cut delivered in 48 hours.", layout: "r" }, { img: "assets/portfolio-5.png", client: "The Trio", tag: "Lifestyle · Reels", desc: "Founder storytelling cut into three-week rollout: before the shoot, at the shoot, what we made with it.", layout: "center" }, { img: "assets/portfolio-1.png", client: "Kōnā Sushi", tag: "Hospitality · Content", desc: "Monthly retainer: four shoot days, twenty Reels, a feed that tripled saves inside a quarter.", layout: "l" }, { img: "assets/portfolio-2.png", client: "Nova Beauty", tag: "Beauty · UGC", desc: "Product drop for a clean beauty line. Close-up, fingers-in-frame, let the texture speak.", layout: "r", tall: true }, { img: "assets/portfolio-4.png", client: "Off-Duty", tag: "Lifestyle · Stills", desc: "A day off, captured on film. Sometimes the best feed is the one that doesn't look like one.", layout: "center" }, ]; const FOUNDERS = [ { idx: "01", name: "Founder", last: "One", role: "Creative Director", bio: "Directs the look and voice. Believes a feed should feel like a place, not a channel.", handle: "@boona.media", img: "assets/portfolio-2.png", pos: "center 22%" }, { idx: "02", name: "Founder", last: "Two", role: "Strategy & Social", bio: "Turns ideas into a calendar and a budget. Reads the data so the team doesn't have to.", handle: "@boona.media", img: "assets/portfolio-4.png", pos: "center 28%" }, { idx: "03", name: "Founder", last: "Three", role: "Content & Production", bio: "Shoots and edits. Ships the Reel at the exact hour it performs.", handle: "@boona.media", img: "assets/portfolio-5.png", pos: "center 22%" }, ]; // ============ HOOKS ============ function useInView(options = { threshold: 0.15 }) { const ref = useRef(null); const [inView, setInView] = useState(false); useEffect(() => { if (!ref.current) return; const o = new IntersectionObserver(([e]) => { if (e.isIntersecting) { setInView(true); o.disconnect(); } }, options); o.observe(ref.current); return () => o.disconnect(); }, []); return [ref, inView]; } function useScrollY() { const [y, setY] = useState(0); useEffect(() => { const on = () => setY(window.scrollY); window.addEventListener("scroll", on, { passive: true }); return () => window.removeEventListener("scroll", on); }, []); return y; } // ============ COMPONENTS ============ function Nav() { const y = useScrollY(); const stuck = y > 80; return ( ); } function VideoStage() { const y = useScrollY(); const winH = typeof window !== "undefined" ? window.innerHeight : 800; const p = Math.min(1, y / (winH * 0.9)); const scale = 1 + p * 0.05; const brightness = 1 - p * 0.15; return (
Direction meets execution. Strategy meets production. We run the whole thing from Miami — the shoots, the calendar, the captions, the data.
{s.d}
We met doing the work — styling, shooting, strategizing — and decided we'd rather build it than keep fixing other people's decks.
Tell us about the brand, the audience, and the problem. We'll tell you what we'd do and what it costs.
Miami, Florida
By appointment
Mon — Fri · 9–6 ET
DMs open always