// CaseStudyDepth — full client-result teardowns (index + detail views).
// Ported from the "Case Studies depth breakdown" Design Code handoff into a
// self-contained React/Babel component. No standalone nav/footer — it lives
// inside BreakdownsPage, above the YouTube breakdown grid. CTAs call onCTA()
// which opens the site's existing roadmap-call modal.
function CaseStudyDepth({ onCTA }) {
  const ref = React.useRef(null);

  React.useEffect(() => {
    const root = ref.current;
    if (!root) return;

const CASES = [
  {
    brand: "MediaLuv",
    niche: "Branding & Animation Agency",
    service: "Offer & Pricing, Sales Process, Paid Ads",
    timeframe: "First 7 Months",
    badge: "$159K Closed",
    title: "How Ryan Maloney Closed $159K By Fixing His Offer, His Pricing, And His Sales Process",
    cardTitle: "$159K closed — repriced existing clients plus a paid ads system aimed at medical practices",
    cardBlurb: "Twelve years of great work and word-of-mouth revenue that rose and fell with the economy. We narrowed the offer, replaced custom quotes with three tiers, and built a sales process Ryan actually wanted to run.",
    statA: "$159K", statALabel: "Closed Since Starting With Us",
    statB: "$90K", statBLabel: "Largest Deal — 12-Month Airline Retainer",
    statC: "$59K", statCLabel: "Beauty Brand Deal From The Same List",
    founder: "Ryan Maloney", videoLength: "14:20",
    site: "medialuv.com", siteUrl: "https://medialuv.com/",
    logo: "assets/logo-medialuv.png",
    videoUrl: "https://www.youtube.com/embed/zaehyhMGqUA",
    quote: "Sales is not selling or saying the right thing, trying to trick someone into buying from you. It's coaching. It's figuring out where they are and where they want to be and helping them get to that point.",
    quoteBy: "Ryan Maloney — Founder, MediaLuv",
    overview: [
      "Ryan Maloney started MediaLuv in 2013 after a decade inside agencies and broadcast — Turner Broadcasting in 2005, then startups, then agency work where he was the designer, motion designer, and editor fulfilling every project. What he never got access to was how those agencies were actually landing the work.",
      "His own inbound came from personal projects. An animated music video for Asher Roth took off, leads followed, and within a couple of years he had more clients at night than his full-time job. So he built the business the way most talented creatives do: make great work, let the work generate demand. That works — until it doesn't. Any dip in the economy, any round of layoffs at a client, and the roller coaster starts. Retainers disappeared when his champion left the company two or three months in.",
      "Positioning was the deeper issue. He was a motion designer to one client, a graphic designer to another, an editor to a third, an illustrator to a fourth — which meant fulfillment was different every time and no single message could be marketed. Corporate retainers averaged around $50K a year but were billed hourly, so a strong month was followed by a month where they didn't need him, with no idea whether they'd come back.",
      "The work was to flip the business: commit to marketing and sales as the engine, with fulfillment — the part Ryan loves and can hire for — behind it. We narrowed the offer, replaced custom quotes with three pricing tiers, rebuilt the sales call, and launched a paid ads system targeting medical practices."
    ],
    challenge: [
      "All new business came from word of mouth — uncontrollable, and it dried up whenever the economy dipped",
      "Positioning changed per client: motion design, graphic design, editing, illustration",
      "Fulfillment ran differently on every project because the offer was never defined",
      "Hourly and per-project quoting meant unpredictable months on ~$50K-a-year corporate accounts",
      "Retainers evaporated when the internal champion left the company",
      "Ryan hated sales calls and sent proposals instead — by his own count, hundreds of lost deals",
      "Single-price custom quotes invited clients to negotiate the scope down mid-project"
    ],
    strategy: [
      { n: 1, title: "Narrowed The Offer To One Thing He Sells", paras: [
        "The first fix wasn't a channel — it was clarity. Being a motion designer, a graphic designer, an editor, and an illustrator depending on who asked made both marketing and delivery impossible to systemize.",
        "We defined exactly what MediaLuv does and who it's for. That single decision is what made every later step possible: consistent messaging, a repeatable fulfillment process, and a promise specific enough to put behind paid ads."
      ]},
      { n: 2, title: "Replaced Custom Quotes With Three Pricing Tiers", paras: [
        "Every deal used to be a single custom number — per project, per hour, or per month — which gave the client one thing to do with it: push it down. Ryan's words: they'd lock a price, then halfway through decide the video only needed to be a minute instead of three, and cut the budget.",
        "Three tiers changed the dynamic completely. Ryan put the same tiers in front of the same clients he already had, and watched them negotiate against themselves — anchoring on the top tier, reaching for the bottom, and landing in the middle. Higher deal values, an easier conversation, and no mid-project scope games."
      ]},
      { n: 3, title: "Reactivated The Existing Client List With The New Structure", paras: [
        "The fastest revenue wasn't new leads — it was the same relationships priced correctly. We ran the new offer and tiers back through clients Ryan had already worked with.",
        "A beauty brand closed at $59K. An airline closed at $90K on a twelve-month agreement. Same work, same relationships, different packaging and pricing."
      ]},
      { n: 4, title: "Rebuilt The Sales Call — And The Mindset Behind It", paras: [
        "Ryan came in hating sales, believing better work should mean fewer sales calls. The reframe he names as the biggest shift: sales isn't saying the right thing to trick someone into buying — it's coaching. Find out where they are, where they want to be, and build the bridge.",
        "On top of that we installed the mechanics: a structured call flow, the objections that come up in nearly every conversation, and one hard rule — have the conversation. Sending a proposal and hoping is how the previous decade of deals were lost."
      ]},
      { n: 5, title: "Launched The Paid Ads System Into A Defined Market", paras: [
        "With a clear offer, real pricing, and a working sales process, paid acquisition became worth turning on. We aimed it at medical companies and practices — a market that buys consistently and isn't subject to the same creative-budget swings.",
        "That system produced the first closed deal outside the existing list, and it's the part that removes the word-of-mouth dependency: controllable lead flow instead of waiting to be found."
      ]}
    ],
    impact: [
      "$159K closed across repriced existing clients and the new ads system",
      "$90K twelve-month airline retainer — the largest deal in the business's history",
      "$59K beauty brand deal from a client relationship that already existed",
      "Three pricing tiers replaced custom quotes, ending mid-project scope cuts",
      "A defined offer, so fulfillment is repeatable and hireable",
      "Paid ads running into medical practices instead of relying on word of mouth"
    ],
    closing: "Twelve years of MediaLuv ran on the belief that great work generates demand. It does — right up until the market moves. Ryan now has an offer, a price structure, and a sales process he owns, and paid ads feeding all three."
  },
  {
    brand: "Wild Gravity",
    niche: "Video Agency For Fortune 500 Brands",
    service: "New Retainer Arm, Meta Ads, CRM & Sales Training",
    timeframe: "Ongoing",
    badge: "+$180K In Video Retainers",
    title: "How Wild Gravity Added $180K In Video Retainers Without Touching Their Enterprise Business",
    cardTitle: "$180K in new video retainers from an SMB arm built alongside Amazon and Microsoft work",
    cardBlurb: "A video agency for Fortune 500 brands — Amazon, Microsoft, Coke, LEGO, the NFL, the NBA — on enterprise cycles that all tighten at once. We helped them build a second line of business that raises the floor.",
    statA: "$180K", statALabel: "Added In Video Retainers",
    statB: "$5–15K", statBLabel: "Monthly Retainer Range Per Client",
    statC: "0 → CRM", statCLabel: "Sales Infrastructure Before Us",
    founder: "John & Jonathan", videoLength: "11:46",
    site: "wildgravity.net", siteUrl: "https://www.wildgravity.net/",
    logo: "assets/logo-wild-gravity.png",
    videoUrl: "https://www.youtube.com/embed/SE2A63tlqgM",
    quote: "Our ability to sell to these customers has increased tenfold. We're much more familiar and more comfortable with the sales process, which is overall a valuable thing.",
    quoteBy: "Jonathan — Wild Gravity",
    overview: [
      "Wild Gravity is a video agency serving Fortune 500 brands — creative services, production, post-production, and visual effects under one roof. Their anchor clients are Amazon and Microsoft, and they've produced for Coke, LEGO, Hasbro, Dungeons & Dragons, the NFL and the NBA. This is not an agency with a quality problem.",
      "It had a floor problem. Enterprise clients move in the same patterns — when the money is flowing at one it's usually flowing at another, and they pull back around the same time too. Feast or famine at a high level is still feast or famine, and it makes a whole quarter painful for reasons entirely outside your control.",
      "The fix John and Jonathan wanted was a second line of business: social media retainers for small and medium local businesses, deliberately uncorrelated with enterprise budget cycles. Recurring revenue that covers monthly overhead so the enterprise work becomes profit rather than survival.",
      "Everything they'd built to that point had come from relationships and reputation — completely organic, with no CRM and no paid acquisition of any kind. So the build here was infrastructure: the Meta ads platform, a CRM with real pipeline and deal stages, a repeatable sales process, and the reps to run all three."
    ],
    challenge: [
      "Enterprise clients tighten budgets on the same cycle, so revenue swung together",
      "No recurring revenue to cover monthly overhead between large projects",
      "One hundred percent of business came from relationships and reputation — nothing repeatable",
      "No CRM, no pipeline stages, no deal tracking anywhere in the business",
      "No experience with Meta ads, which is technical and confusing from the outside",
      "The SMB buyer operates completely differently from an enterprise client — an entirely new sales motion to learn",
      "Real internal resistance: the new arm felt off-brand next to enterprise work"
    ],
    strategy: [
      { n: 1, title: "Built A Second Line Of Business On Purpose", paras: [
        "Rather than chase more enterprise logos, we designed a separate offer for small and medium local businesses: a monthly social content retainer, priced and delivered independently of the enterprise pipeline.",
        "The strategic point was correlation. A local business buys content on its own schedule, so when enterprise clients pause for a quarter the floor holds. Overhead gets covered by the retainer arm and enterprise revenue becomes profit instead of rent money."
      ]},
      { n: 2, title: "Stood Up The Meta Ads Platform With Them", paras: [
        "Wild Gravity had never run paid acquisition. We set the ads platform up and then walked them through the ins and outs — done with them, not handed over as a deliverable they couldn't operate.",
        "Ongoing calls stayed hands-on through launch and iteration, so the capability now lives inside the agency rather than with a vendor."
      ]},
      { n: 3, title: "Installed A CRM With Real Pipeline And Deal Stages", paras: [
        "An agency doing enterprise work at this level had been running entirely on relationships with no CRM at all. For a high-volume SMB motion that isn't survivable.",
        "We built the pipeline, the deal stages, and the tracking for the new arm — which is what turned a set of promising conversations into a forecastable pipeline with $180K closed and more moving through it."
      ]},
      { n: 4, title: "Trained The Sales Process For A Different Buyer", paras: [
        "Selling a $10K-a-month retainer to a local business owner has nothing in common with a procurement conversation at Microsoft. We ran structured sales training against the new motion: how to approach these businesses, what to charge, how to run the call.",
        "The reps compounded fast. Both founders now read the pattern early enough to tell within minutes whether a caller is a fit — and can spot what the ones that actually close have in common."
      ]},
      { n: 5, title: "Extended The Same System To The Personal Brand", paras: [
        "John is launching a book, Hacking Advertising, alongside the agency work. The same ads capability now runs his pre-sales campaigns — something he simply couldn't do before.",
        "It also feeds the email list, with an automation platform behind it to message new followers consistently. One skill set, applied to both the agency and the personal brand."
      ]}
    ],
    impact: [
      "$180K in video retainers added, with more deals in the pipeline",
      "A second line of business uncorrelated with enterprise budget cycles",
      "Retainers of $5–15K per month covering monthly overhead",
      "First CRM in the company's history, with real pipeline and deal stages",
      "Meta ads run in-house by the founders, not outsourced",
      "The same ads system driving book pre-sales and email list growth for John's personal brand"
    ],
    closing: "The enterprise business didn't change — Amazon, Microsoft and the rest are still there. What changed is that a quiet quarter from any one of them no longer decides the year. Both founders say the same thing about it: they wish they'd started sooner."
  },
  {
    brand: "Tori Stauffer",
    niche: "Branding, SEO, and Web Agency",
    service: "Offer Restructure & Sales Process",
    timeframe: "First 2 Weeks",
    badge: "$45K Deal In Week Two",
    title: "How Tori Closed A $45K Deal Two Weeks In — Before Running A Single Ad",
    cardTitle: "$45K from one restructured offer, closed in week two with no ads running",
    cardBlurb: "Tori had 14 years of photography behind her and a video offer capped at three months. We restructured the packages into 12-month commitments — the first person she pitched signed at $45K.",
    statA: "$45K", statALabel: "Single Deal Closed",
    statB: "3 → 12 Mo", statBLabel: "Client Commitment Length",
    statC: "2 Weeks", statCLabel: "Time In Before It Closed",
    founder: "Tori Stauffer", videoLength: "9:40",
    site: "toristauffer.com", siteUrl: "https://toristauffer.com/",
    logo: "assets/logo-tori-stauffer.png",
    quote: "The tweaks you made were no-duh tweaks — and they were worth the investment on their own. That's why I sold that client.",
    quoteBy: "Tori Stauffer — Founder, toristauffer.com",
    overview: [
      "Tori Stauffer has been a photographer for 14 years and focused on brand work for the last four, running a content studio that covers branding, content, and web for her clients. She added video to her offerings last year and it tripled the business.",
      "So the problem was never capability or demand. It was structure and the confidence to charge for it. Her longest video package ran three months. Social management ran three months. The year-long branding package she did have was being phased out — meaning nearly everything she sold was a one-off with a short ceiling on it, and every engagement had to be resold a quarter later.",
      "She'd first looked at working with us the previous October and waited, unsure of her own footing in video. By the time she came back, video had already tripled her branding revenue and the real gap was commercial: how the offer was packaged, how long clients committed for, and what she was allowed to expect from them in return.",
      "We didn't rebuild what she does. We took what was already strong and restructured how it's sold. Two weeks in, she closed $45K — from a brand new prospect, not a reactivation, with no ads running at all."
    ],
    challenge: [
      "Video packages capped at three months, so every client had to be resold quarterly",
      "The one long-term branding package was being phased out",
      "Almost all revenue came from one-off engagements with no recurring floor",
      "Confidence in the offer lagged behind the actual quality of the work",
      "Reluctance to guarantee results, because expectations on the client were never defined",
      "No paid acquisition running, so growth depended entirely on conversations she happened to have",
      "No structured way to learn what clients actually valued about the work"
    ],
    strategy: [
      { n: 1, title: "Kept The Offer, Restructured The Term", paras: [
        "Nothing about Tori's craft needed changing, and we said so on the first call. What needed changing was the shape of the package: the same strengths, built into a structure a client commits to for twelve months instead of three.",
        "These were small hinges on a big door. Her reaction after saying the new offer out loud once was that it made obvious sense — and it's the change that produced the $45K deal."
      ]},
      { n: 2, title: "Built The Path From One-Off To Recurring", paras: [
        "We mapped how a project client moves into an ongoing engagement, so the work she already delivers naturally extends rather than ending at a deliverable.",
        "That reframes every future sale. Instead of selling one-off packages forever, the default is a longer-term relationship — the thing she says she'd still be missing if she hadn't made the jump."
      ]},
      { n: 3, title: "Set Expectations On The Client, Not Just Herself", paras: [
        "Business owners tend to assume every outcome rests on them, which is exactly why guarantees feel dangerous. We flipped it: a guarantee is reasonable when the client has clear obligations too.",
        "Once the requirements on the client were written down, standing behind results stopped being a risk. Boundaries and fit criteria became part of the offer instead of an afterthought."
      ]},
      { n: 4, title: "Ran Structured Client Feedback Calls", paras: [
        "We had Tori run real conversations with existing clients about what the work actually did for them. The feedback didn't match what she'd assumed — several of the biggest benefits weren't in her marketing at all.",
        "That reshaped her messaging using her clients' own language, and produced video testimonials as a byproduct she hadn't planned for."
      ]},
      { n: 5, title: "Added Ads Capability So Results Retain Clients", paras: [
        "The next layer is running ads — both for her own acquisition and for her clients. A content studio that can tie content to tangible client results doesn't have a retention problem.",
        "That's what makes the twelve-month structure hold: the client keeps paying because the work keeps producing something they can measure."
      ]}
    ],
    impact: [
      "$45K deal closed two weeks in, from a brand new prospect",
      "Client commitments restructured from three months to twelve",
      "Half of last year's total revenue already booked by March",
      "Guarantees now possible because client-side expectations are defined",
      "Messaging rewritten around what clients actually say the work delivers",
      "Video testimonials captured as a byproduct of the feedback process"
    ],
    closing: "Tori's work was already good enough to command this. What changed was the structure around it — and the first person she pitched with the new structure said yes at $45K, before a single ad was live."
  },
  {
    brand: "Content Factory ATX",
    niche: "Marketing, Growth & Digital Agency",
    service: "Paid Ads Scale, Metrics, Pre-Call Nurture",
    timeframe: "90 Days",
    badge: "$70K → $186K Per Month",
    title: "How Content Factory ATX Went From $70K To $186K Per Month In 90 Days",
    cardTitle: "$70K to a record $186K month in 90 days — sales and marketing only",
    cardBlurb: "Hassan didn't need another cookie-cutter program. He knew the problem was sales and marketing, so that's all we touched: ad spend, real metrics, and a nurture system that warms prospects before the call.",
    statA: "$186K", statALabel: "Record Month Revenue",
    statB: "+166%", statBLabel: "Growth In 90 Days",
    statC: "90 Days", statCLabel: "Time To Record Month",
    founder: "Hassan", videoLength: "13:05",
    videoUrl: "https://www.youtube.com/embed/DGKUNCmG6fE",
    site: "thecontentfactoryatx.com", siteUrl: "https://www.thecontentfactoryatx.com/",
    logo: "assets/logo-content-factory.png",
    quote: "Once I had knowledge of those data points, it changed everything — because then you can actually make decisions that are smart.",
    quoteBy: "Hassan — Founder, Content Factory ATX",
    overview: [
      "Content Factory ATX is a done-for-you content and ads agency out of Austin, founded in 2019 on top of Hassan's 15 years in video production. Scriptwriting through production, posting, and distribution — handled end to end, with a studio clients can shoot in.",
      "By the time we spoke he had already been through the coaching circuit. His frustration with all of it was the same: every program drops you into the same cookie-cutter sequence because most people start in the same place. He wasn't most people, and he didn't need his fulfillment rebuilt.",
      "He'd already diagnosed it himself — sales and marketing, plus some sharpening of the offer. So that's the only thing we worked on. Thirty to forty-five days of concentrated focus on acquisition and conversion, nothing else.",
      "July closed at $130K. August closed at $186K — a record month, up from $70K when we started."
    ],
    challenge: [
      "Fulfillment was already dialed, but every coaching program insisted on starting there",
      "Ad spend was capped by fear of losing money rather than by performance",
      "No working grasp of cost per lead, cost per booked call, show rate, or close rate",
      "Without those metrics, every decision about the funnel was a guess",
      "Sales team members sitting in roles that didn't fit them",
      "Prospects arriving on calls cold, expecting to decide on a $25–30K engagement in 45 minutes",
      "Email list sitting unused — he knew it was powerful but not how to run it"
    ],
    strategy: [
      { n: 1, title: "Fixed Only The Broken Thing", paras: [
        "The first decision was what not to do. No fulfillment overhaul, no systems rebuild, no starting from module one. He'd correctly identified sales and marketing as the constraint, and we agreed to work exclusively there.",
        "That focus is why 90 days was enough. All of the effort landed on the one part of the business that was actually limiting revenue."
      ]},
      { n: 2, title: "Made The Numbers Visible, Then Spent Into Them", paras: [
        "We built the funnel view: cost per lead, cost per booked call, show rate, close rate, revenue per call. Before that, a slow week had no explainable cause.",
        "With those data points in hand, scaling stopped being a leap of faith. As long as the KPIs held, more spend was simply more revenue — and the honest part of the job was reassurance, holding the line through the sales cycle instead of judging results day to day."
      ]},
      { n: 3, title: "Rebuilt Pre-Call Nurture So Closers Aren't Convincing", paras: [
        "Prospects now arrive having seen who the agency is, how the process works, documented results, and the price point — before the call is ever held.",
        "The framing that stuck with him: a closer should be closer to a cashier than a convincer. Some prospects now cancel themselves when the investment isn't a fit, which frees the slot for someone who is."
      ]},
      { n: 4, title: "Turned Email Into A Weekly Proof Machine", paras: [
        "Instagram stories disappear in 24 hours. We set up an email platform and a weekly cadence built around results and written case studies, so proof accumulates instead of evaporating.",
        "Prospects now mention the emails on calls. It's the cheapest warming mechanism in the business, and it runs on work the agency was already producing."
      ]},
      { n: 5, title: "Sold The Result, Not The Deliverable Count", paras: [
        "Ten videos a month or twenty-five — clients don't buy the number. They buy the outcome and the process that produces it, which is exactly where this agency was already strong.",
        "We also moved people into roles that fit them on the sales side. Same team, better placement, materially better conversion."
      ]}
    ],
    impact: [
      "$186K record month, up from $70K in 90 days",
      "$130K in July followed by $186K in August",
      "Cost per lead, cost per call, show rate and close rate tracked and acted on weekly",
      "Ad spend scaled deliberately against KPIs instead of fear",
      "Weekly email nurture warming prospects before every call",
      "Sales roles reassigned to fit the people in them"
    ],
    closing: "Nothing about the fulfillment changed — it was already the reason clients stay. What changed is that acquisition became a set of numbers he can turn up. In his words, it's turning on the faucet."
  },
  {
    brand: "GM Media",
    niche: "Marketing Agency",
    service: "Paid Ads, Deal Structure, Team & Delegation",
    timeframe: "Ongoing",
    badge: "$1.53M On ~$67K Ad Spend",
    title: "How GM Media Turned Roughly $67K Of Ad Spend Into $1.53M In Revenue",
    cardTitle: "$1.53M in revenue on about $67K of ad spend — a medical agency that started with no marketing of its own",
    cardBlurb: "Max and Gage were fully reliant on referrals with no marketing of their own. Their own dashboards now show $1,528,518 in revenue generated on roughly $67K in ad spend — about a 23x return, and still climbing.",
    statA: "$1.53M", statALabel: "Revenue Generated",
    statB: "~23x", statBLabel: "Return On Ad Spend",
    statC: "$67K", statCLabel: "Total Ad Spend",
    founder: "Max & Gage", videoLength: "12:18",
    site: "gmm3dia.com", siteUrl: "https://www.gmm3dia.com/",
    logo: "assets/logo-gm-media.png",
    videoUrl: "https://www.youtube.com/embed/eChB4ohDcCY",
    videoNote: "Recorded earlier in the engagement, when GM Media had closed about $556K. The verified totals at the top of this page are current — pulled from their own revenue and ad dashboards.",
    proof: [
      { src: "assets/gm-proof-stripe.png", caption: "Stripe — $925K in gross volume processed" },
      { src: "assets/gm-proof-revenue.png", caption: "Whop — $112,419.52 in gross revenue" },
      { src: "assets/gm-proof-quickbooks.png", caption: "QuickBooks — $491,099.56 in total income", wide: true },
      { src: "assets/gm-proof-meta.png", caption: "Meta Ads — $66,878.69 total ad spend across 203,568 accounts reached", wide: true }
    ],
    revenueTotal: {
      total: "$1,528,518",
      sources: [
        { label: "Stripe", value: "$925,000" },
        { label: "Whop", value: "$112,419.52" },
        { label: "QuickBooks", value: "$491,099.56" }
      ]
    },
    quote: "I didn't think I'd get here this quickly. The return on investment has been unbelievable.",
    quoteBy: "Gage — Co-Founder, GM Media",
    overview: [
      "GM Media helps medical professionals grow on social media — paid ads and organic working together. Max and Gage had the craft and the ambition. What they didn't have was any marketing of their own.",
      "Everything came from word of mouth and referrals. All of the energy went into fulfilling for clients and none of it into the business itself, so growth had no mechanism behind it. Gage's own description of the problem was lack of direction — not lack of drive.",
      "Deal structure was the other half. Out-of-state clients were on month-to-month arrangements around $1,000 a month with almost no margin, and there was no written agreement defining a term at all. The value being delivered was worth many multiples of that.",
      "We ran ads into their market, restructured those engagements into six- and twelve-month agreements at real prices, and built the team and delegation to carry the volume — all still running off a landing page instead of a website.",
      "The video interview below was recorded earlier in the engagement — at that point they had closed about $556K in seven months. It kept compounding. Their own Stripe, revenue, and ad dashboards now show $1,528,518 in total revenue generated against $66,878.69 in ad spend — roughly a 23x return."
    ],
    challenge: [
      "One hundred percent of new business came from word of mouth and referrals",
      "No marketing of their own — all energy went into client fulfillment",
      "Out-of-state clients on $1,000-a-month deals with almost no margin",
      "Month-to-month with no written term, so nothing was locked in",
      "Both founders shooting, editing, and handling day-to-day tasks themselves",
      "No accountability structure to keep growth work moving week to week",
      "Early ad testing looked flat, which is exactly when most owners quit"
    ],
    strategy: [
      { n: 1, title: "Put Marketing Behind A Product That Already Worked", paras: [
        "The foundation was genuinely good — the results for medical clients were real. That's the prerequisite most agencies skip, and it's why the ads worked as fast as they did.",
        "We built the ad strategy, increased lead flow, and filled the calendar. About a month in the testing looked inconclusive and both founders were ready to doubt it. We held the line for a few more days — and they closed $72K in a single day. Those same ads have since produced over $1.5M in revenue — on roughly $67K of total spend."
      ]},
      { n: 2, title: "Rebuilt Deal Structure And Pricing", paras: [
        "Month-to-month at $1,000 was leaving nearly all the value on the table. We restructured into six- and twelve-month agreements priced against what the work actually produces for a medical practice.",
        "Average deal size is now around $45K. The close rate has stayed high enough that price is going up again — the clearest possible signal the old pricing was wrong."
      ]},
      { n: 3, title: "Gave The Growth Work Direction And Accountability", paras: [
        "The missing piece wasn't ambition, it was sequence: what to work on this week, in what order, and someone checking that it moved.",
        "Every call ends with the next one scheduled and the next block defined. That cadence is what turned intent into seven straight months of compounding results."
      ]},
      { n: 4, title: "Built The Team So The Founders Stopped Doing Everything", paras: [
        "As volume climbed we mapped which tasks had to leave the founders' hands and who needed to be hired to take them. The team is now seven to eight people: three editors, sales, and content strategists alongside Max and Gage.",
        "That's what protects delivery quality at this growth rate — and it took a real load off both founders, who are working their way out of shooting entirely."
      ]},
      { n: 5, title: "Worked The Client Journey And Back End", paras: [
        "With acquisition producing, the focus moved to what happens after the sale: onboarding, communication, and the experience that keeps a $45K client renewing.",
        "They've also opened their first office space — a team that had been distributed now works together a couple of days a week, which changes how the company sees itself."
      ]}
    ],
    impact: [
      "$1,528,518 in total revenue generated — verified from their own revenue dashboards",
      "About $67K ($66,878.69) in total ad spend behind it — roughly a 23x return",
      "$72K closed in a single day off the ad system",
      "Average deal size up from ~$1K per month to ~$45K per engagement",
      "Six and twelve-month agreements replacing month-to-month with no term",
      "Team grown to seven or eight, including three editors and dedicated sales",
      "Still no website — all of it running off a landing page"
    ],
    closing: "The original interview captured the first ~$556K. The system kept running: their own dashboards now show $1,528,518 in revenue on about $67K of ad spend — better than a 23x return. Same craft, same team, with a marketing engine behind it that pays back more than twenty times what goes in."
  },
  {
    brand: "Ballad",
    niche: "Full Service Marketing Agency",
    service: "Lead Flow, Sales Architecture, Delivery Systems",
    timeframe: "First Few Months",
    badge: "$42K Closed On $4.4K Ad Spend",
    title: "How Julian Turned $4,425 In Ad Spend Into $42K — And Went Full-Time Instead Of Job Hunting",
    cardTitle: "$42K closed on $4,425 of ad spend, and five deals signed in six weeks",
    cardBlurb: "Julian was deciding whether to go get another job. We gave the business direction, consistent lead flow, and a sales structure — five closes in six weeks later, the decision made itself.",
    statA: "$42K", statALabel: "Closed To Date",
    statB: "9.5x", statBLabel: "Return On Total Ad Spend",
    statC: "5 Deals", statCLabel: "Closed In Six Weeks",
    founder: "Julian", videoLength: "15:30",
    videoUrl: "https://www.youtube.com/embed/KHQsg6EpLP4",
    site: "balladny.com", siteUrl: "https://balladny.com/",
    logo: "assets/logo-ballad.png",
    quote: "It wasn't a blind faith leap — it was a calculated risk. I got the go-ahead to say yes, I'm doing this, plus the tools to make good decisions with it.",
    quoteBy: "Julian — Founder, balladny.com",
    overview: [
      "Ballad is Julian's agency, focused on the design industry — product brands in furniture, lighting and wallpaper through to interior designers, architects, and custom home builders. He'd built it on the side of a full-time job.",
      "Then the job ended, and he was in limbo. The real question wasn't a tactic, it was a fork in the road: go find another job, or commit to this properly. He was waffling, and waffling burns savings.",
      "Under that sat a set of concrete gaps. No consistent way to generate leads. No reliable way to fill a calendar. No systems for delivering the work at the standard he wanted. And a jack-of-all-trades offer — should he sell websites too? — with no framework for deciding what to build first and what to leave for later.",
      "We handled both halves: the order of operations on the business, and the commitment that turned a hesitant side project into a full-time company. $42K closed on $4,425.53 of ad spend."
    ],
    challenge: [
      "Actively deciding between building the agency and going back to a job",
      "No consistent lead source and no predictable way to book calls",
      "No delivery systems — the work was good, the process behind it wasn't built",
      "A jack-of-all-trades offer with no criteria for what to include or drop",
      "No sense of priority: what to fix first, what to invest in, what could wait",
      "Roughly 15 serious sales calls early on with nothing closing",
      "Entering with the wrong question — will this work? — instead of how do I make it work"
    ],
    strategy: [
      { n: 1, title: "Triaged The Business Into An Order Of Operations", paras: [
        "There are always a hundred things worth fixing in an agency. We ranked them by what produces revenue now versus what can wait, and worked strictly down that list.",
        "That included cutting the sprawl in the offer. Deciding what Ballad does not sell was as valuable as deciding what it does."
      ]},
      { n: 2, title: "Built Consistent Lead Flow Into A Defined Niche", paras: [
        "The design industry is a specific market with specific buyers — product brands, interior designers, architects, custom home builders. We built acquisition against exactly that audience rather than a general video-production message.",
        "$4,425.53 in total ad spend has produced $42K in closed business — roughly a 9.5x return while the system is still young."
      ]},
      { n: 3, title: "Handed Him What's Working On Ads Right Now", paras: [
        "Creative formats decay fast. What worked for years at a stretch four years ago now shifts in months, and testing that alone is expensive.",
        "Julian gets the current read — which formats are hitting, which are fading — from our own spend and from every other operator in the group testing in parallel. He implements proven concepts instead of paying to discover them."
      ]},
      { n: 4, title: "Gave Him The Architecture Of A Sales Call", paras: [
        "He came in confident he was articulate, and assumed that made him good at sales. Being a good talker and running a good call are different skills.",
        "We taught the structure: what each part of the call is for, when to press, when to back off — without turning into someone else on the phone. His words for the shift: he used to worry about messing up, now he wants to see what a prospect can throw at him."
      ]},
      { n: 5, title: "Held The Line Through The Dry Spell", paras: [
        "Around fifteen serious conversations went by without a close. That's the point most owners decide the whole thing is broken.",
        "We tweaked the call and kept him taking them. He then closed five deals in six weeks. The other shift he names as the biggest: moving from is this going to work to what's actually inside my control."
      ]}
    ],
    impact: [
      "$42K closed on $4,425.53 in total ad spend",
      "Roughly 9.5x return on ad spend to date",
      "Five deals closed in a six-week stretch",
      "A consistent lead source and calls booked on purpose, not by chance",
      "Delivery systems built so the work scales past one person",
      "Full-time on the agency instead of back in a job search"
    ],
    closing: "Julian's own framing is the honest one: no program changes your life — you do. What a system does is stack the odds, and cut the time and money you'd otherwise burn finding the path yourself."
  },
  {
    brand: "Changeover Media",
    niche: "Real Estate Marketing Agency",
    service: "Offer Cuts, Pricing, Move Up-Market",
    timeframe: "This Year",
    badge: "On Track To 3x Video Revenue",
    title: "How JJ Cut 35% Of His Revenue On Purpose And Tripled The Video Business",
    cardTitle: "One retainer from $1,500 to $7,800 a month — after deliberately firing a third of the revenue",
    cardBlurb: "JJ was doing listing photos and 3D tours for agents. We helped him kill that line, move up to brokerage-level strategy, and reprice the value he was already delivering.",
    statA: "3x", statALabel: "On Track To Triple Video Revenue",
    statB: "$1.5K → $7.8K", statBLabel: "Monthly Retainer On One Client",
    statC: "-35%", statCLabel: "Revenue Deliberately Cut",
    founder: "JJ", videoLength: "16:24",
    site: "changeovermedia.com", siteUrl: "https://changeovermedia.com/",
    logo: "assets/logo-changeover-media.png",
    videoUrl: "https://www.youtube.com/embed/NTNZZ3-0Zn0",
    quote: "I thought my mindset was good going in. What I realized is I was thinking too small — there are people who pay these bigger retainers, and I was providing far more value than I gave myself credit for.",
    quoteBy: "JJ — Founder, Changeover Media",
    overview: [
      "Changeover Media works in the real estate industry. JJ started out doing what he'd learned at a real estate marketing company: listing photos, property videos, 3D tours — everything an agent needs to sell a house. COVID made that work urgent, and it launched the business.",
      "Then he noticed something about his own product. In a hot market the content wasn't selling the house; the house was going to sell anyway. What the content actually did was win the agent their next listing. He wasn't in the business of selling houses — he was in the business of growing his clients' businesses.",
      "The first real move was subtraction. The agent-level listing work represented roughly 30–35% of revenue, some of it from clients he'd had for five or six years, and we agreed it had to go. He told them the service was ending and found them someone else to handle it.",
      "What replaced it is strategic work at the brokerage and franchisee level — where the buyer doesn't just want more listings, they want more agents, better retention, and a point of view on where a changing industry is heading. Same industry, entirely different conversation, and he's on track to triple the video business this year."
    ],
    challenge: [
      "A third of revenue tied up in low-ticket listing photos, videos, and 3D tours",
      "Long-tenured agent clients who'd need to be transitioned out",
      "The real estate agent was no longer the right buyer as the market softened",
      "Retainers priced far below the value being delivered — one at $1,500 a month",
      "Thinking too small about what the market would actually pay",
      "Lead generation was the part of the business he hated most",
      "No time to translate concepts he'd already learned into his specific model"
    ],
    strategy: [
      { n: 1, title: "Killed The Line That Was Capping The Business", paras: [
        "Cutting 30–35% of revenue is the least comfortable recommendation in this entire page, and it was the right one. The listing work anchored Changeover to a buyer with shrinking budgets and no strategic ceiling.",
        "He handled it well: told the clients directly, and referred them to someone who could keep serving them. That freed the capacity everything else needed."
      ]},
      { n: 2, title: "Moved Up To The Brokerage Level", paras: [
        "The new buyer is the franchisee running an office. Their problems are bigger than listings — recruiting agents, retaining them, and navigating an industry in the middle of real structural change.",
        "JJ's advantage there is tenure. He's been in the industry longer than many of their agents, so he can coach an individual agent on their value proposition and talk brokerage economics with the owner. That's a strategic partner, not a vendor."
      ]},
      { n: 3, title: "Repriced An Existing Client From $1,500 To $7,800 A Month", paras: [
        "One client's retainer had him editing a podcast and posting some social — maintenance work, split with a marketing agency that was exiting. Rather than replace that agency's scope, he looked at where the client was actually headed.",
        "They were launching sister ventures that needed the same things built from scratch: social, newsletters, YouTube, professional content to sell a new offering. He took over the full scope and went to them with a plan for the new venture. The retainer went from $1,500 to $7,800 a month."
      ]},
      { n: 4, title: "Built A Distribution Partnership Into The Deal", paras: [
        "Part of that agreement makes Changeover a strategic partner on the client's new business — a community of franchise owners across the country — and they market his services to their members for a share of the revenue.",
        "That solves the part of the business he genuinely dislikes. He isn't doing manual outreach; he's having sales conversations and delivering, with someone else feeding the top of the funnel."
      ]},
      { n: 5, title: "Set A Recurring Base, Then Sold Projects On Top", paras: [
        "Real estate moves constantly, so the model is a retainer that guarantees a baseline plus additional projects billed as they come. One title company client on a monthly filming retainer adds two or three extra projects almost every month.",
        "The base covers the business and lets him breathe. Growth comes from expanding scope inside accounts that already trust him."
      ]}
    ],
    impact: [
      "On track to triple video revenue this year",
      "One retainer raised from $1,500 to $7,800 per month",
      "30–35% of revenue intentionally cut to make room for better work",
      "Positioned at brokerage and franchisee level instead of individual agents",
      "A partner distributing his services to a national franchise-owner community",
      "Recurring base plus add-on projects, with clients expanding scope on their own"
    ],
    closing: "JJ didn't need a new skill set — he had the relationships and the industry knowledge already. He needed permission to drop the work that was holding the ceiling down, and a straight answer on what his value was actually worth."
  },
  {
    brand: "Peacock Media",
    niche: "Medical Marketing and Web Design Agency",
    service: "Niche Change, Paid Ads, Offer Build",
    timeframe: "2 Months Back In",
    badge: "$127K On $7K Ad Spend",
    title: "How Sarah Collected $127K On $7,068.88 Of Ad Spend — As A Mother Of Two",
    cardTitle: "$127K collected, all from paid ads, on $7,068.88 of total spend",
    cardBlurb: "Sarah was making films for musician friends — an audience with no budget. She changed avatar to physicians and medical clinics, learned ads, and has collected $127K, every lead from paid ads, on $7,068.88 of total spend — with more still authorized on client payment plans.",
    statA: "$127K", statALabel: "Collected So Far",
    statB: "$7,068.88", statBLabel: "Total Ad Spend",
    statC: "100%", statCLabel: "Of Leads From Paid Ads",
    founder: "Sarah", videoLength: "14:52",
    site: "peacockmediaofficial.com", siteUrl: "https://www.peacockmediaofficial.com/",
    logo: "assets/logo-peacock-media.png",
    videoUrl: "https://www.youtube.com/embed/PTN7bf5njyI",
    videoNote: "Recorded earlier in the engagement, when Sarah had closed about $70K on roughly $1,800 of ad spend. Her own numbers now: $127K collected on $7,068.88 in total ad spend — with several clients on payment plans, so the authorized total runs higher than the account balance shows. The figures at the top of this page are the current ones.",
    proofIntro: "Sarah's own report to us — the ad account total and what she's collected so far.",
    proof: [
      { src: "assets/peacock-proof-slack.png", caption: "Sarah's own numbers: $7,068.88 total ad spend and $127K collected so far — with more authorized on client payment plans", wide: true }
    ],
    quote: "The biggest mistake small business owners make is thinking they have to do everything and figure it all out themselves. You don't.",
    quoteBy: "Sarah — Founder, peacockmediaofficial.com",
    overview: [
      "Sarah spent more than twenty years as a full-time touring singer-songwriter before turning a long-standing interest in filmmaking into a company about seven years ago. The craft was never in question. The business model was: classic creative feast or famine.",
      "Her original avatar was the world she came from — fellow singer-songwriters and artist friends. Beautiful work, custom-scoped for every client, and structurally unscalable, because artists generally don't have budgets. The same effort aimed at a different industry is worth many times more.",
      "She started with us in September, got the system set up, and then had to step away for about five months to move and have her second daughter. She restarted in April. Since then she's collected $127K — every lead from paid ads, on $7,068.88 of total spend — and because several clients are on payment plans, the authorized total runs higher than what's landed in the account so far.",
      "The strategic work was picking the right buyer, building an offer those buyers actually need, and getting comfortable enough with ads that launching a new one takes minutes instead of a week of second-guessing."
    ],
    challenge: [
      "Original avatar — musicians and artists — had no real budget for high-end work",
      "Every engagement custom-scoped to the individual client, so nothing repeated",
      "Feast or famine revenue with no predictable pipeline",
      "No paid acquisition experience, and real anxiety about ad creative",
      "No time for cold outreach as a working mother of two",
      "A five-month break for a move and a new baby to restart from",
      "Wanted a business that could be sold in 5–10 years, not a freelance career"
    ],
    strategy: [
      { n: 1, title: "Changed The Avatar To One With Budget", paras: [
        "We moved her out of the music industry entirely and into medical — the same filmmaking and storytelling skill, aimed at buyers who can pay for it and measure the return.",
        "This is the single highest-leverage change in her business. Comparable work, a fraction of the friction on price."
      ]},
      { n: 2, title: "Built Two Clear Offers For Two Clear Buyers", paras: [
        "First: physicians building a personal brand — launching a supplement line, opening a practice, selling books, chasing speaking engagements. They usually have a start, but a fragmented online ecosystem. She handles brand positioning, storytelling, and film.",
        "Second: medical clinics that need authority and trust-building content and stronger positioning in their market, typically because they can't capitalize on the lead-generation systems they already have. Two avatars, two defined problems, one skill set."
      ]},
      { n: 3, title: "Made Ads Simple Enough To Actually Run", paras: [
        "Early on the ad creative was in her head — overthought, intimidating, a bottleneck. Now she builds a static text-image ad with a clear angle in about five minutes and loads it.",
        "That's what $7,068.88 of spend producing $127K looks like: not a clever media buy, but a person who stopped hesitating and kept feeding the account with new angles."
      ]},
      { n: 4, title: "Outsourced Everything Outside Her Zone", paras: [
        "Website fixes, automation platform builds, and the technical scaffolding clients need go to reliable outsourcing partners rather than onto her plate.",
        "She stays on messaging, content creation, and execution — the work she's best at and the work the client is really paying for. It's also what makes the model survivable with two small children."
      ]},
      { n: 5, title: "Took Her Out Of Fulfillment And Built The Team Behind It", paras: [
        "We moved Sarah off the delivery floor — bringing in and training a dedicated team, then documenting the work as SOPs so quality stopped depending on her doing it herself.",
        "That build ran in parallel with the acquisition work, not after it: new demand and new capacity arrived together, so growth never outran what the business could deliver."
      ]},
      { n: 6, title: "Mapped A Customer Success Manager Structure", paras: [
        "We mapped a CSM function to own the client after the sale — onboarding, ongoing check-ins, retention, and post-sale support — with each stage written down rather than improvised.",
        "Every client now gets the same experience regardless of who is handling them, and renewals and referrals no longer hinge on Sarah's personal attention."
      ]},
      { n: 7, title: "Created A Social Media Manager Structure", paras: [
        "We defined a Social Media Manager role with SOPs for content planning, publishing cadence, and community engagement, so client-facing content ships on a schedule instead of in bursts.",
        "Sarah stays on the creative direction clients are actually paying for; the role owns everything downstream of it."
      ]},
      { n: 8, title: "Built It To Be Sold, Not Just Worked In", paras: [
        "Her stated values are sustainability, efficiency, scalability, and providing for her family — with a real goal of selling the business and exiting early.",
        "That's why predictability mattered more than any single month's revenue. A pipeline you can forecast is an asset; a string of custom one-offs is a job. Her next target is $500K by the end of the year."
      ]}
    ],
    impact: [
      "$127K collected so far, every dollar traced back to paid ads",
      "$7,068.88 in total ad spend behind that revenue",
      "Every lead generated by paid ads — no cold outreach at all",
      "Several clients on payment plans, so the authorized total runs higher than what's collected",
      "Two defined avatars with defined offers, replacing custom one-offs for musicians",
      "Technical delivery outsourced so she works on messaging and content only",
      "Owner out of day-to-day fulfillment, with a trained team running to documented SOPs",
      "A Customer Success Manager structure mapped for onboarding, retention, and post-sale support",
      "A Social Media Manager structure standardizing content planning, publishing, and community engagement",
      "Team roles and SOPs built alongside the acquisition work, so delivery scaled with demand"
    ],
    closing: "Sarah's skill never changed — the audience did. Point twenty years of storytelling ability at buyers who can pay for it, run consistent ads, and $7,068.88 turns into $127K collected. And because the team, the SOPs, and the CSM and Social Media Manager structures were built alongside the ads rather than after them, delivery scaled with the demand instead of trailing it."
  },
  {
    brand: "Owl House Agency",
    niche: "Home Services Agency",
    service: "Offer Build, Client Reactivation, Sales Training",
    timeframe: "Ongoing",
    badge: "$170K From Reactivations",
    title: "How Jonathan Reactivated $170K From A 20-Year Client List — With $0 In Ad Spend Behind It",
    cardTitle: "$170K reactivated from a two-decade client list — with no paid ads behind any of it",
    cardBlurb: "Jonathan ran a project-based creative agency for 20 years with no retainers and brutal feast-or-famine. We built a new offer and had him call his entire old client list — almost nobody bought the offer, but the conversations reopened project work that now totals $170K, including a $75K project off a referral from that same list.",
    statA: "$170K", statALabel: "Closed From Reactivations",
    statB: "$75K", statBLabel: "Largest Single Project",
    statC: "$0", statCLabel: "Ad Spend Behind It",
    founder: "Jonathan",
    site: "owlhouseagency.com", siteUrl: "https://owlhouseagency.com/",
    logo: "assets/logo-owl-house.png", logoPlate: true,
    videoUrl: "https://www.youtube.com/embed/4n2DkY7LEBU",
    videoNote: "Recorded earlier in the engagement, when Jonathan had reactivated about $92K. He's since closed a $75K project off a referral from that same list — his own reported total is now $170K, still with $0 in ad spend behind it. The figures at the top of this page are the current ones.",
    proofIntro: "Jonathan's own message to us the day he closed it — the receipt behind the updated number.",
    proof: [
      { src: "assets/owl-proof-slack.png", caption: "Jonathan, the day he closed it: a $75K project off a referral — $170K total from reactivations", wide: true }
    ],
    quote: "Carving out a big chunk of my savings to have someone tell me how to run the business for a year was a real leap of faith — but it's paid off four-fold already, and I'm only three months in.",
    quoteBy: "Jonathan — Founder, Owl House Agency",
    overview: [
      "Jonathan started a creative agency in 2005 with two partners — over 20 years ago. They built up national and healthcare clients and a body of socially-aware documentary work for good causes. At its peak the team was ten or eleven full-time people plus a roster of freelance camera, sound, and color crew.",
      "What the business never cracked was recurring revenue. Everything ran as big one-off projects for large national companies with slow-moving marketing teams — 18 to 24 months could pass between jobs, with nothing Jonathan could do to influence the timing. Some years were excellent; other years he and his partner paid the staff before themselves. Feast and famine, sometimes stretched across whole years.",
      "With his longtime partner stepping back to pursue a YouTube channel and exit gracefully, Jonathan is launching a new agency this year — started in January — aimed at a different buyer: home-service business owners reached through paid ads. With his partner's blessing he's also free to reactivate any client from their 20 years of relationships. For two decades the partner owned sales while Jonathan ran operations, so delivery was never the problem — selling was the gap.",
      "The work was to build a real offer, learn the mechanics of sales for the first time, and turn a dormant two-decade client list into revenue while the new paid-acquisition engine gets built."
    ],
    challenge: [
      "20 years of project-based work with no retainer model — revenue swung feast-to-famine, sometimes across entire years",
      "Big national clients moved on 18–24 month buying cycles he had no way to influence",
      "His business partner had always owned sales; Jonathan ran operations with no framework for selling",
      "A brand-new agency and a brand-new target market — home-service business owners — to build from scratch",
      "No repeatable lead system; every past project had come through his partner's relationships",
      "Real hesitation about carving out a big chunk of savings while his future income was uncertain"
    ],
    strategy: [
      { n: 1, title: "Built A New Offer Worth Reaching Out About", paras: [
        "In the first couple of months we built a clean, packaged offer he could actually put in front of people — a concrete reason to reopen a conversation instead of a vague 'let's catch up.'",
        "That distinction did the heavy lifting. As Jonathan put it: 'I'd love to chat' opens no doors, but 'I've got an exciting new thing that might work for you' opens plenty — even when the thing itself isn't the eventual sale."
      ]},
      { n: 2, title: "Ran The Entire 20-Year Client List Back Through It", paras: [
        "Jonathan reached out to his whole legacy list — government, healthcare, and First Nations clients built up over more than a decade — leading with the new offer.",
        "About one in ten wrote back wanting to hear more. Almost nobody bought the actual offer he was pitching — but reopening the conversations was the real point."
      ]},
      { n: 3, title: "Turned Reopened Conversations Into Project Revenue", paras: [
        "On those calls, several clients said the retainer didn't fit their buying cycle — then added, 'but while I've got you, we've got a project we want off the ground this month. Want to bid on it?'",
        "He closed a couple of $30K deals plus smaller single-day shoots, and later a $75K project off a referral from that same list — $170K in total, none of it from the offer he thought he was selling."
      ]},
      { n: 4, title: "Installed The Sales Mechanics He'd Never Been Taught", paras: [
        "Delivery was never Jonathan's problem; the mechanics of selling were. We worked the structure of a sales conversation, the buyer psychology underneath it, and a reading list to go deeper.",
        "The reframe that landed: sales isn't the dirty underbelly of business — it's finding an authentic voice for something you genuinely believe helps people."
      ]},
      { n: 5, title: "Built The Acquisition Engine For The Home-Services Pivot", paras: [
        "Alongside the reactivations we set up the Meta ads system, automations, and AI-assisted workflows to reach home-service business owners — the owner sitting in his truck waiting for his kid who sees an ad and thinks 'this might be my solution.'",
        "It's the channel his local peers are ignoring — many were still talking about newspaper ads — and it's the second revenue stream coming online now, on top of the reactivation money already in the door."
      ]}
    ],
    impact: [
      "$170K closed from reactivating the legacy client list — with $0 in ad spend behind any of it",
      "A couple of $30K project deals, additional single-day shoots, and a $75K project off a referral from that same list",
      "A strong multiple on the investment already — before the paid-ads engine is even live",
      "A packaged offer and a repeatable reason to reopen any past-client conversation",
      "Sales mechanics and buyer psychology learned for the first time in 20 years",
      "Meta ads, automations, and cold outreach built and coming online for the home-services market"
    ],
    closing: "Twenty years of great work never produced a predictable month. Jonathan turned a dormant client list into $170K — including a $75K project off a referral — with zero ad spend behind it, and now has both an offer and an acquisition engine to build the scalable, retainer-based business he set out to create."
  },
  {
    brand: "Algonquin Digital",
    niche: "Video Production Agency",
    service: "CRM & Sales Systems, Paid Ads, Offer & Messaging",
    timeframe: "First Year",
    badge: "$50K Deal, Founder Hands-Off",
    title: "How Josh's First-Ever Salesperson Closed A $50K Deal From Ads — With Him Off The Call Entirely",
    cardTitle: "$50K closed from ads — by the first salesperson he ever hired, with the founder off the call entirely",
    cardBlurb: "Josh built a media production company on social work, one-offs, and word of mouth. We installed the CRM, the ad system, and a results-based offer — then his first-ever sales hire closed a $50K deal from those ads, and Josh never touched the call.",
    statA: "$50K", statALabel: "Deal Closed From Ads",
    statB: "1st", statBLabel: "Sales Hire — She Closed It",
    statC: "0", statCLabel: "Founder Time On The Call",
    founder: "Josh",
    site: "algonquindigital.com", siteUrl: "https://algonquindigital.com/",
    logo: "assets/logo-algonquin.svg",
    videoUrl: "https://www.youtube.com/embed/L8j14jfoyFg",
    quote: "I knew I could set up the sales systems myself — but it would've taken years. So I thought, why not go to the people who already know what they're doing and get it into the business right now?",
    quoteBy: "Josh — Founder, Algonquin Digital",
    overview: [
      "Josh runs Algonquin Digital, a media production company based in central Ontario and serving clients across the province. It started as just him and grew from there — he was always after a real team, not a freelance lifestyle. Three to four years in, the work had been mostly social content, one-off event and promo videos, and word of mouth.",
      "Repeat clients came back consistently, but the whole engine still ran on the founder. What Josh knew he needed was back-end sales infrastructure — a CRM and a real process — so leads stopped getting lost in an inbox. He could have built it himself, but it would have taken years; he'd rather buy the expertise and get it running now.",
      "The bigger shift was positioning. The old message centered on organic content — a nice-to-have that competes for discretionary budget. We repositioned around business results and lead generation, with paid ads added to the offer, which turned 'I'd like my social to look better' into an urgent, budget-backed conversation with more serious businesses.",
      "The work: install the CRM and sales process, stand up a paid-ads engine with messaging that attracts the right buyer, and get Josh out of the sales seat entirely — so his first-ever salesperson could carry the close."
    ],
    challenge: [
      "Sales depended entirely on the founder — Josh had always closed himself and wanted off the calls",
      "The business ran on social one-offs and word of mouth, with no repeatable acquisition",
      "No CRM and no sales process, so leads sat in an inbox and slipped through the cracks",
      "Messaging centered on organic content — a nice-to-have that competes for scraps of budget",
      "Hiring a salesperson only works with curated lead flow to feed them — the half most agencies skip",
      "Too many small clients straining the team for little profit, instead of fewer, bigger relationships"
    ],
    strategy: [
      { n: 1, title: "Installed The CRM And Sales Process First", paras: [
        "The CRM was the reason Josh reached out in the first place. Rather than reinvent the wheel over years, we dropped in an organized pipeline and process so no lead gets stuck in an inbox or forgotten.",
        "That foundation is what made everything after it — ads, a sales hire, bigger deals — actually trackable and repeatable."
      ]},
      { n: 2, title: "Repositioned The Offer Around Results, Not Content", paras: [
        "We moved the messaging from 'make your social look better' — a vanity nice-to-have — to 'get more leads and grow the business,' and added paid ads to the offering.",
        "That single shift changes who shows up: from people casually wanting content to serious owners with an urgent business need and the budget to act on it."
      ]},
      { n: 3, title: "Built The Paid-Ads Engine With Aligned Messaging", paras: [
        "We leaned on the ad expertise to get lead cost and call cost down — but the real unlock was messaging that matches the service, so the right people click, arrive expecting exactly what Algonquin delivers, and can already see the quality.",
        "No apples-and-oranges gap between the ad and the offer, which is exactly where most agencies quietly lose their conversions."
      ]},
      { n: 4, title: "Made The Intake Smooth Enough To Convert", paras: [
        "Once a lead comes in, the follow-up and experience are seamless — prospects feel immediately that this team knows what it's doing.",
        "Paired with aligned messaging, that's what turns paid clicks into booked calls that actually close."
      ]},
      { n: 5, title: "Fed The First Sales Hire So She Could Close", paras: [
        "Josh had never hired a salesperson before. The piece most agency owners and online service businesses miss is that a closer needs curated lead flow to work — a salesperson alone doesn't fix acquisition.",
        "With the ad system feeding her real leads, his first-ever hire closed a $50K deal — and Josh wasn't on the call at all."
      ]}
    ],
    impact: [
      "$50K deal closed from paid ads — the first deal his new salesperson ever closed",
      "Founder completely hands-off on the call — sales no longer depends on Josh",
      "CRM and a real sales process installed, so leads stop getting lost",
      "Offer repositioned from organic content to lead-gen and results, attracting bigger clients",
      "Lead cost and call cost driven down with messaging aligned to the service",
      "A team of five moving toward fewer, larger, higher-LTV client relationships"
    ],
    closing: "Josh already had a good team and happy repeat clients — what he didn't have was a sales engine that ran without him. Now the CRM, the ads, and the offer do the heavy lifting, and the clearest proof is a $50K deal closed by someone other than the founder. In Eric's words: it can happen 100 more times."
  },
  {
    brand: "The Creator Mode",
    niche: "Coaching & Consulting Company",
    service: "Lead Gen & Paid Ads, Sales Structure, Business Systems",
    timeframe: "First 2 Months",
    badge: "$43K In Two Months",
    title: "How Matt Stone Added $43K In Two Months By Turning His Craft Into A Real Business",
    cardTitle: "$43K added in two months — from feast-or-famine and word-of-mouth to self-run ads and a real sales process",
    cardBlurb: "Matt Stone spent a decade behind a camera — brilliant creative work, but feast-or-famine income and zero lead flow. We gave him the business systems, the sales structure, and the confidence to run his own ads. He added $43K in two months.",
    statA: "$43K", statALabel: "Added In Two Months",
    statB: "2 Mo", statBLabel: "From Skeptic To Paid Off",
    statC: "0 → Ads", statCLabel: "Owns His Lead Gen Now",
    founder: "Matt Stone",
    site: "thecreatormode.com", siteUrl: "https://www.thecreatormode.com/",
    logo: "assets/logo-creator-mode.png",
    videoUrl: "https://www.youtube.com/embed/Oqc1CnFhnDU",
    quote: "It was a shortcut worth paying for. I probably would've figured a lot of this out eventually — but a lot slower and a lot less organized. The real question was: how serious am I about actually building this business?",
    quoteBy: "Matt Stone — Founder, The Creator Mode",
    overview: [
      "Matt Stone got his start filming skateboarding and surf videos with friends, bought his first camera at 21, and turned it into a decade behind the lens. He traveled the world full-time — living out of vans and buses — built a following on his YouTube channel Dare Happy Trails, and shot everything from travel content to live-streamed racing events.",
      "Beautiful work and real talent, but classic creative feast-or-famine. A big contract would land, then nothing for a stretch. He'd floated the idea of retainers years earlier, but traveling full-time made consistency impossible, so the business stayed mostly one-off jobs with no predictable floor.",
      "After moving back to the US and settling near Sacramento, his video work started growing fast — and Matt knew the ceiling was business skill, not craft. He was a creative first: great with people, decent at generating leads for clients, but missing the processes, SOPs, and real sales structure to scale. He'd been seeing the ads for a while and, though genuinely skeptical, decided to bet on himself.",
      "The work was to make Matt operate like a business owner instead of an editor — install lead generation and his own paid ads, bring structure to a sales ability he already had, and give him the confidence to run all of it himself."
    ],
    challenge: [
      "Classic creative feast-or-famine — a big contract, then nothing for stretches",
      "Almost entirely one-off jobs, with no retainer base or predictable floor",
      "No real lead generation — everything came from word of mouth, which always dried up",
      "A creative by background, missing the business processes and SOPs to scale",
      "Naturally good with people, but no structure to his sales conversations",
      "Genuinely skeptical of programs — and unsure the investment would pay off"
    ],
    strategy: [
      { n: 1, title: "Shifted Him From Creative To Business Owner", paras: [
        "The biggest unlock wasn't a tactic — it was a reframe: work on the business, not just in it. Stop treating the day as shooting and editing, and start running it like a company.",
        "By Matt's own account, that mindset shift — and the confidence that came with it — is what made every system after it actually stick."
      ]},
      { n: 2, title: "Installed Lead Gen And His Own Paid Ads", paras: [
        "Matt had built ads for other people for years but never for himself. We got him running his own — and it turned out easier than any client campaign he'd made.",
        "Now he tests creative, sees which ads bring the best leads and calls, and tweaks from there. Consistent lead flow replaced word of mouth that always ran out."
      ]},
      { n: 3, title: "Brought Structure To A Natural Sales Ability", paras: [
        "Matt was already great at connecting with people; what he lacked was a repeatable structure. Our team reviewed his actual sales calls — unprompted — and gave direct, specific feedback.",
        "Same authentic conversations, now with a framework and a clear direction, so calls stop going off the rails and start closing."
      ]},
      { n: 4, title: "Built The Confidence To Run It All", paras: [
        "By his own account, the biggest takeaway was confidence — walking into pitches and the sales process knowing he had the skills and the backing to execute.",
        "That confidence is what turns knowledge into action: he implemented fast instead of researching forever."
      ]},
      { n: 5, title: "Compounded It Into $43K In Two Months", paras: [
        "Systems, ads, and sales structure stacked up quickly — $43K added to the business in the first two months, from a standing start of word-of-mouth and one-offs.",
        "As Matt put it, it was a shortcut worth paying for: he'd have found some of this eventually, but far slower and far less organized."
      ]}
    ],
    impact: [
      "$43K added to the business in the first two months",
      "Running his own paid ads — testing creative and generating leads and calls on demand",
      "A repeatable sales structure layered onto his natural people skills",
      "Consistent lead generation replacing unpredictable word of mouth",
      "Operating as a business owner — working on the business, not just editing",
      "The confidence to pitch, sell, and execute without second-guessing"
    ],
    closing: "Matt was already a gifted creative with a following and real client work — what he was missing was the business layer underneath it. Two months in, with his own ads running, a real sales process, and $43K added, he's stopped riding the feast-or-famine wave and started building something that scales. And it's only the beginning."
  },
  {
    brand: "Giard & Co.",
    niche: "Brand Marketing Agency",
    service: "Implementation Systems, Offer Packaging, Team Scaling",
    timeframe: "Ongoing",
    badge: "Contractors Doubled",
    title: "How Teddy Doubled His Contractor Team By Systemizing The Delivery Side Of His Agency",
    cardTitle: "Contractors doubled — a Shark Tank alum systemized his agency's implementation so he could stay on strategy",
    cardBlurb: "Teddy Giard has built and exited multi-million-dollar brands (Kanga Coolers, from Shark Tank). Running his marketing firm Giard & Co., implementation was eating the time he needed for strategy. We systemized delivery and packaged his offer — and he doubled his contractor team.",
    statA: "2x", statALabel: "Contractors, Doubled",
    statB: "5", statBLabel: "Programs Vetted — Ours Won",
    statC: "Custom → Tiers", statCLabel: "Offer Restructured",
    founder: "Teddy Giard",
    site: "giard.co", siteUrl: "https://giard.co/",
    logo: "assets/logo-giard.svg",
    videoUrl: "https://www.youtube.com/embed/m_xp6Jubm3w",
    quote: "I signed up for five different programs and monitored all their automation flows — because whatever a company's lead system looks like is exactly what they're going to teach you. You guys had the strongest one.",
    quoteBy: "Teddy Giard — Founder, Giard & Co.",
    overview: [
      "Teddy Giard is a serial operator based in Greenville, South Carolina. His first company, Kanga Coolers, started in college, landed on Shark Tank, and scaled to multi-million-dollar revenue before he exited. He then ran brand and capital strategy for Island Coastal Lager, raising money through crowdfunding and digital marketing.",
      "Today he runs Giard & Co., a marketing firm that launches and scales lifestyle brands — aligning a brand's product-development timeline with its marketing-production timeline, so founders who live inside their product finally get marketing on the same calendar.",
      "The firm's work is two halves: build the strategy, then implement it. Teddy's strength — and where his time is worth the most — is strategy and business development. But implementation was eating that time. He didn't need craft; he needed an operating system so delivery could run without him in every detail.",
      "He also chose the program the hard way: he signed up for five competing programs and studied each one's automation and lead flow first — reasoning that whatever a company's own lead machine looks like is exactly what they'll teach you to build. Ours was the strongest, so he joined."
    ],
    challenge: [
      "Implementation was consuming the time Teddy needed for strategy and business development",
      "His sales offering ran outside a typical client's scope — hard to price and package cleanly",
      "No standardized operating system for delivery, so the business leaned on him",
      "Wanted the confidence that systems — not his constant attention — were running the machine",
      "A sophisticated operator (Shark Tank, a multi-million exit) who needed a program that could keep up",
      "Skeptical enough to vet five competing programs before committing to one"
    ],
    strategy: [
      { n: 1, title: "Showed Him Behind The Curtain Of A Well-Oiled Machine", paras: [
        "The biggest shift was simply seeing what a truly systemized operation looks like from the inside — the CRM, the pipeline, the management structure, the follow-up cadence.",
        "He'd been a lead in our own system first, so he knew the machine worked because he'd watched it work on him — then rebuilt his business around that reference model."
      ]},
      { n: 2, title: "Packaged A Bespoke Offer Into Quantifiable Tiers", paras: [
        "Teddy's offering ran a bit outside a typical client's scope, and he'd struggled to package it. Working one-on-one with Ethan, we structured it into clear, quantifiable tiers.",
        "That turned a hard-to-explain custom service into something repeatable he could sell and deliver against."
      ]},
      { n: 3, title: "Handed Over The Framework, Not Just The Tools", paras: [
        "Teddy runs a different software stack suited to his industry — and that's fine. We gave him the framework and the concepts — follow-up cadence, pipeline logic, management structure — and he applied them to his own automations.",
        "As he put it: it's Sony versus Canon. The tool doesn't matter; the concepts behind how you use it do."
      ]},
      { n: 4, title: "Systemized Implementation So He Could Stay On Strategy", paras: [
        "The whole reason Teddy joined was to streamline implementation and win back his time for strategy and business development. We built the delivery system that made that separation real.",
        "With implementation running on rails, he could step back from the day-to-day of delivery with confidence."
      ]},
      { n: 5, title: "Scaled The Team On Top Of The System", paras: [
        "A repeatable operating system is what makes hiring safe — you can hand work off because the process, not the founder, guarantees the outcome.",
        "On that foundation Teddy doubled the number of contractors in his business — scaling capacity without scaling chaos."
      ]}
    ],
    impact: [
      "Doubled the number of contractors on his team",
      "Implementation systemized, freeing his time for strategy and business development",
      "A bespoke offer restructured into clear, quantifiable tiers",
      "A proven framework applied to his own industry-specific software stack",
      "Confidence that the systems — not his constant attention — run the machine",
      "A repeatable operating system that makes scaling the team safe"
    ],
    closing: "Teddy didn't need to be taught marketing — he'd already built and exited a Shark Tank brand. What he needed was the operating system underneath the work, so implementation could run without him and he could scale. He doubled his contractor team on that foundation — and he only joined after personally stress-testing five competitors first."
  },
  {
    brand: "Fours Media",
    niche: "Full Service Brand & Performance Agency",
    service: "Paid Inbound System, Retainer Offer, CRM & Attribution",
    timeframe: "First 5 Months",
    badge: "$266K On $12K Ad Spend",
    title: "How Tyler Graham Turned $12K Of Ad Spend Into $266K In Deals — After Years Of Nothing But Referrals",
    cardTitle: "$266K in deals on $12K of ad spend — the first repeatable acquisition system in the agency's history",
    cardBlurb: "Fours Media has served 300+ clients with Ninja, Everlast, Sonoma Raceway and Mickey Hart in the portfolio — and every bit of it came from word of mouth and people finding them locally. No inbound system, no attribution, no paid social ever run. Five months in, $12K of ad spend has produced $266K in deals, including two twelve-month agreements at $72K and $66K.",
    statA: "$266K", statALabel: "In Deals — First 5 Months",
    statB: "~22x", statBLabel: "Return On Ad Spend",
    statC: "$12K", statCLabel: "Total Ad Spend",
    founder: "Tyler Graham",
    site: "foursmedia.com", siteUrl: "https://foursmedia.com/",
    logo: "assets/logo-fours-media.png",
    proofIntro: "Tyler's own message to us at the five-month mark — the spend and the deals, in his words.",
    proof: [
      { src: "assets/fours-proof-slack.png", caption: "Tyler's own numbers: $12K in ad spend and $266K in deals — including two twelve-month agreements at $72K and $66K", wide: true }
    ],
    quote: "I just been locked in — one was 12 month 72k and the other is 66k 12 month. Currently spent 12k in ad spend and have 266k in deals.",
    quoteBy: "Tyler Graham — Founder, Fours Media",
    overview: [
      "Tyler Graham runs Fours Media, a full-service brand and performance agency in the Bay Area, founded in 2018. Brand strategy, creative and video production, paid media, and conversion work under one roof — over 300 clients served, with Ninja, Everlast, Yendo, Mickey Hart, Sonoma Raceway and Golden State Cider in the portfolio. Their own line for it: performance marketing killed brand soul, and they're bringing it back.",
      "None of that was the problem. Acquisition was. Asked on our first call how Fours got clients, Tyler's answer was blunt — it's a bit sporadic, word of mouth and people just finding us locally, plus repeat business. That produced $530K top line in 2025, roughly $40–50K a month, with no way to influence which months were good ones. A Google Ads campaign had launched about a week before we spoke and was still in the learning phase. That was the entire history of paid acquisition in the business.",
      "The infrastructure underneath was thin for the same reason. CallRail tracking calls, Apollo sitting mostly unused, a Monday.com CRM that inbound leads never automatically reached — his own description was 'a bit sloppy,' with no attribution process cleaned up. Lead volume had never been high enough to expose any of it.",
      "The target was $100K a month in retainers, then $200K, then a seven-figure month. Tyler named the constraint himself before we ever pitched him: consistent, qualified leads. So that's the only thing we worked on — a paid inbound system, a productized retainer offer, and the CRM and qualification to run both. Five months later he'd spent $12K on ads and had $266K in deals, including two twelve-month agreements at $72K and $66K."
    ],
    challenge: [
      "All new business came from word of mouth and people finding them locally — his own word for it was 'sporadic'",
      "A Google Ads campaign one week old and still in its learning phase was the only paid acquisition ever run",
      "$530K top line in 2025 — about $40–50K a month, entirely dependent on who happened to refer him",
      "A 'sloppy' CRM: CallRail, an underused Apollo, and a Monday board that inbound leads never automatically reached",
      "No attribution process, so there was no way to know what a lead or a channel was actually worth",
      "No defined vertical — interior designers, restaurants, construction — so messaging had nothing specific to aim at",
      "Tyler's days went to client relations, managing the team, and delivery: working in the business instead of on it"
    ],
    strategy: [
      { n: 1, title: "Fixed The One Constraint He'd Already Named", paras: [
        "Tyler diagnosed it himself on the first call — consistent, qualified leads. Everything else was in good shape: 300-plus clients served, a portfolio most agencies would trade for, and a retainer model already in place.",
        "So we didn't touch fulfillment, creative, or positioning of the work. The entire engagement pointed at the single thing limiting revenue, which is why five months was enough to move the number this far."
      ]},
      { n: 2, title: "Built The Paid Inbound System He'd Never Run For Himself", paras: [
        "Fours had been running paid media for clients for years and had never built a proven inbound engine for Fours. We installed the same system that put Tyler on a call with us — ads, funnel, and booking flow — rebuilt around the problem Fours solves and who it solves it for.",
        "Our media buyer built it with him rather than handing over a deliverable, so the capability now lives inside the agency. $12K of spend into that system has produced $266K in deals."
      ]},
      { n: 3, title: "Productized The Retainer Offer Into Twelve-Month Agreements", paras: [
        "Tyler already believed in retainers, so this was a structure change, not a category change: package the offer, price it against the outcome it produces, and compete on value instead of price.",
        "That's the difference between interest and commitment. The two largest deals from the new system are both twelve-month agreements — $72K and $66K — rather than the short project work referrals used to bring in."
      ]},
      { n: 4, title: "Qualified Hard So A Small Budget Still Produced Deals", paras: [
        "Volume without a filter just fills a calendar with people who can't buy. We ran the leads against budget, authority, need, and timing before a call was ever booked, so Tyler's time went to conversations that could actually close.",
        "That discipline is why $12K — a modest budget by any agency standard — turned into $266K in signed deals instead of a busy calendar and nothing to show for it."
      ]},
      { n: 5, title: "Cleaned Up The CRM And Held The Work Accountable", paras: [
        "Leads stopped landing in an inbox and waiting to be typed into Monday by hand. With routing and attribution in place, every lead is tracked from ad to booked call to closed deal — so decisions run on numbers instead of guesses.",
        "The other half was cadence. Tyler said outright that what he most needed was accountability and carved-out time to work on the business; a private channel with our team and standing one-on-ones are what kept the growth work moving every week."
      ]}
    ],
    impact: [
      "$266K in deals in the first five months — about half of the agency's entire 2025 top line",
      "$12K in total ad spend behind it, roughly a 22x return",
      "Two twelve-month agreements at $72K and $66K, replacing sporadic project work",
      "The first repeatable inbound acquisition system in the business's history",
      "Lead routing and attribution cleaned up, so leads stop sitting in an inbox untracked",
      "Growth that no longer depends on who happens to refer him this month"
    ],
    closing: "Fours Media never had a quality problem — 300-plus clients and a portfolio with Ninja, Everlast and Sonoma Raceway on it settle that. What it never had was any say in how many clients next month brings. Five months and $12K of ad spend later, Tyler has $266K in deals, two twelve-month agreements, and a machine he can turn up."
  },
  {
    brand: "Stack Media",
    niche: "Commercial & Corporate Agency",
    service: "Sales Process, Pitch Structure & Positioning",
    timeframe: "Ongoing",
    badge: "$124K Deal Closed",
    title: "How Roman Closed A $124K Deal By Pitching It Live Instead Of Emailing A 50-Page Proposal",
    cardTitle: "$124K on one deal — four times his old pitch, after three straight months of crickets",
    cardBlurb: "Fifteen years of making videos people actually enjoy watching, and every project started as a blank slate with the client writing the brief. We rebuilt the sales process — short proposal, presented live, priced in options — and the first client he ran it on took the biggest one.",
    statA: "$124K", statALabel: "Single Deal Closed",
    statB: "4x", statBLabel: "Larger Than He'd Have Pitched Before",
    statC: "4 Videos", statCLabel: "Captured In A Single Day",
    founder: "Roman Johnson", videoLength: "8:28",
    site: "stickwithstack.com", siteUrl: "https://www.stickwithstack.com/",
    logo: "assets/logo-stack-media.png", logoPlate: true,
    videoUrl: "https://player.vimeo.com/video/901282164",
    quote: "Something I learned from you guys is to get on the same side of the table — and really be an advisor as opposed to an order taker.",
    quoteBy: "Roman Johnson — Founder, Stack Media",
    overview: [
      "Roman started making videos at his church about fifteen years ago — volunteering first, then on staff for a couple of years — and what he loved making was entertaining, genuinely funny work. The way that found the marketplace was the most organic route there is: he put things on the internet, somebody saw them, and then wanted to talk about doing something for their business. Back when comedy rap videos were a thing, he made comedy rap videos, and one thing led to another.",
      "Fifteen years later Stack Media is a Tulsa-based video company built on that same instinct — corporate video that people actually want to watch. The craft was never the issue. In his own words, the problem was that he did anything and everything, and every project was a blank slate.",
      "That shows up as a sales problem long before it shows up anywhere else. A client would come to him, he'd ask what kind of video they needed, they'd describe it, and he'd go build something extremely customized around their description. Usually it turned out great. Sometimes it didn't — because they were telling him what they needed instead of him diagnosing the problem and prescribing the fix.",
      "He came to us wanting clients on a recurring basis, and he came during a dry spell: some months good, some months terrible, and a three-month stretch that was basically crickets. What moved first wasn't lead flow — it was the way he pitched. The next real opportunity closed at $124K for four videos, all captured in one day."
    ],
    challenge: [
      "Every project started as a blank slate — no defined offer, so nothing about the work was repeatable",
      "The client wrote the brief; Roman built to it instead of diagnosing the actual problem",
      "Revenue swung month to month, including a three-month stretch that was 'basically crickets'",
      "No recurring client structure — the thing he explicitly came to us to fix",
      "Deals were pitched by emailing a 50-page proposal with a note to 'set aside 30 minutes'",
      "Prospects either never read it, scrolled straight to the number, or never called back",
      "By his own account the root cause was nerves: a self-described people pleaser avoiding the pitch",
      "One price, one option — nothing for a client to choose between and no way to anchor value"
    ],
    strategy: [
      { n: 1, title: "Killed The Emailed Proposal", paras: [
        "The old motion was to hear the client out, disappear, and sweat every detail of a fifty-page proposal — then email the link with 'set aside 30 minutes to go through this when you get a chance.' Roman's own read on what happened next: they didn't read it, or they scrolled to the number, or they simply never called back.",
        "He was about to do exactly that on this deal. The instruction was blunt — do not send it. A proposal handed over unattended is a document being judged on price alone, with nobody in the room to frame what it's worth."
      ]},
      { n: 2, title: "Built A Short Proposal And Presented It Live", paras: [
        "We replaced the fifty-page document with a short one, and replaced the email with a meeting. He set the call, walked them through the proposal himself, and — the part almost everyone skips — took them through the numbers portion out loud.",
        "That single change is the whole story of this deal. Same agency, same client, same work; the difference is that somebody was there to present it, answer the objection in real time, and ask for the business."
      ]},
      { n: 3, title: "Pitched Options Instead Of One Number", paras: [
        "Instead of a single custom quote, he presented different options at different levels of investment. That gives the buyer something to decide between rather than something to negotiate down, and it lets them size the engagement to their own ambition.",
        "They took the biggest one: $124K for four videos, captured in a single day. Roman's estimate of what he'd have pitched under the old process was roughly a quarter of that."
      ]},
      { n: 4, title: "Reframed The Discomfort As The Job", paras: [
        "Roman named the real obstacle himself — being nervous and afraid to pitch. He's a people pleaser, he likes being liked, and confrontation or objection felt wrong enough to avoid. Emailing the scary number and hoping is what that avoidance looks like in practice, and it quietly destroys a conversion rate.",
        "The training work here was as much identity as mechanics: the discomfort is where the sale lives, and where you actually help a business owner make a change. Have the real conversation instead of routing around it."
      ]},
      { n: 5, title: "Moved Him From Order Taker To Advisor", paras: [
        "The phrase he repeats back is getting on the same side of the table. Not 'what do you want?' — a diagnosis, then a prescription. You don't walk into a doctor's office and name your own surgery; you describe the symptom and the professional tells you what it takes to fix it.",
        "Most clients can't specify what they need because they can't see the full extent of their own problem. Being the content consultant who diagnoses it is what justifies both the recommendation and the price — and it's the identity shift that makes packages and tiers land instead of feeling pushy."
      ]}
    ],
    impact: [
      "$124K closed on a single deal — roughly four times his previous pitch on the same kind of work",
      "Four videos captured in one shoot day, so the deal size didn't come from four times the labor",
      "The emailed proposal is gone; deals are presented live, numbers included",
      "Options replaced the single custom quote, letting clients choose up instead of negotiating down",
      "The pitch is no longer avoided — the uncomfortable part of the call is now the point of it",
      "Positioning moved from order taker to advisor, so the diagnosis comes before the deliverable"
    ],
    closing: "Roman didn't need better videos — fifteen years of work settles that. What he needed was to stop handing his value to a client over email and hoping. He rebuilt the sales process, presented the next opportunity himself with real options on the table, and the client picked the biggest one at $124K. He'll be the first to say it's the start rather than the finish: the offer and the recurring structure are still being built underneath it."
  },
  {
    brand: "DreamVision Media",
    niche: "Commercial and Branding Agency",
    service: "Paid Acquisition System, Offer & Sales Coaching",
    timeframe: "Ongoing",
    badge: "$183K Closed — Left His Job",
    title: "How Scott Closed $183K In Video Deals And Walked Away From His Full-Time Job",
    cardTitle: "$183K in closed deals — and the head-of-marketing job he finally quit",
    cardBlurb: "Twenty years of work with Toyota, A24, Post Malone and TaylorMade, and he was still taking a slice of what agencies charged triple for. We built the acquisition system and stayed on the phone through the months before it clicked. $183K in deals later, the full-time job is gone.",
    statA: "$183K", statALabel: "In Closed Deals So Far",
    statB: "Quit", statBLabel: "Left His Full-Time Marketing Job",
    statC: "20 Yrs", statCLabel: "In The Craft Before The Business Caught Up",
    founder: "Scott Thompson", videoLength: "18:04",
    site: "dreamvision.media", siteUrl: "https://dreamvision.media/",
    logo: "assets/logo-dreamvision.png",
    videoUrl: "https://player.vimeo.com/video/961691315",
    quote: "Your guys' service is not cheap — but it is worth every penny. You can't get a different result from doing the same thing.",
    quoteBy: "Scott Thompson — Founder, DreamVision Media",
    overview: [
      "Scott Thompson runs DreamVision Media out of San Diego — story-driven commercial and brand video, with two decades of work behind it for Toyota, Nissan, BenQ, Kaged, TaylorMade, A24 and Post Malone. He describes himself as an artist first and foremost, which is exactly how he frames the problem: put the art in front and never think about the business, and you will make beautiful work while you starve.",
      "He is not a stranger to business either. He likes metrics, he likes numbers, and he ran a clothing company for ten years before this. What he'd never had was a repeatable way to bring in his own clients. His pipeline was a website he'd optimized for SEO — a long game he described as praying somebody walks in the door — plus agencies who funneled him work, charged the client triple, and handed him a slice of the pie for doing the actual creative.",
      "Underneath it was the career math nobody in film says out loud. He watched his heroes — the guys who were essentially him three years in the future — struggling to make money. A great DP can give thirty days of their life to a feature and clear twelve to twenty grand for the month. He decided he didn't want to be the eighty-five-year-old DP on set with no time freedom, and he'd seen our ads for years.",
      "So he joined while still working full time as head of marketing at a multimillion-dollar company — running their brand, their billboards, their packaging — and put whatever hours were left into the system. This one is worth being honest about: he did not close a deal for months and months. Then it turned. $183K in closed deals later, the job is gone and the clients are his."
    ],
    challenge: [
      "Artist-first, business-last — beautiful work and years of struggling to build a business around it",
      "Most of the pipeline came through agencies charging triple and passing down a fraction",
      "The rest was an SEO'd website: a long-term play that amounted to waiting to be found",
      "Trapped in the traditional film hierarchy — DP, operator, director — where the work rarely matches the pay",
      "Living in California, where a six-figure year no longer clears the bar it used to",
      "A full-time head-of-marketing job eating the hours the business needed",
      "Wanted to run ads for years but had never built a funnel that worked — YouTube tutorials ended at the first roadblock",
      "No deals at all for the first several months in the program"
    ],
    strategy: [
      { n: 1, title: "Built An Acquisition System He Owns", paras: [
        "The whole point was to stop being findable and start being in control. We built the front end he'd always wanted to try but never got working alone: an offer, a page it leads to, ads that drive it, and a booking flow that puts a real prospect on a call with him.",
        "That replaces the two things he'd been living on — agency scraps and SEO patience — with a channel he can turn up. His own framing: why leave it up to chance when you can build a system that brings it predictably?"
      ]},
      { n: 2, title: "Cut Out The Middleman On Price", paras: [
        "For years the agencies funneling him work were the ones getting paid. They'd charge triple, hand him the creative, and keep the margin — while he was the talent actually making the product real.",
        "Now the deals are his: he sets the price and he sets the parameters. Same craft, same portfolio, without a layer above him taking two thirds of it. The full-circle detail he points out himself — he's the one hiring editors now, having been someone else's editor before."
      ]},
      { n: 3, title: "Coached Him Through The Months Before It Worked", paras: [
        "This is the part of his story we won't dress up. Some clients close in week two; Scott didn't close for months and months, while balancing a demanding full-time job. He's blunt that the coaching is the only reason he didn't fall off and give up.",
        "He'd tried the free version before — learning funnels off YouTube — and the difference isn't the information, it's what happens at the roadblock. Being able to get a real answer from a coach the same week is what kept the next step moving instead of the whole thing stalling."
      ]},
      { n: 4, title: "Sold Retainers Instead Of Chasing Gigs", paras: [
        "He could have filled his calendar with random gigs the day he quit — plenty of people wanted him to shoot or edit for them. That's the trap: a few grand a project, forever, with the people handing out the gigs making the real money.",
        "Recurring client work changes the arithmetic. Retainers cover the floor, the acquisition system replaces clients as they naturally fall off, and the business stops being a treadmill of one-off jobs."
      ]},
      { n: 5, title: "Replaced The Job Before Leaving It", paras: [
        "He hated the job and was going to quit either way. The difference is what he'd have been quitting into — his own words, scrambling to scrape by, taking every gig he could get, buying gear with the proceeds, and repeating that cycle indefinitely.",
        "Instead the income was already replaced when he walked. And the reason it matters to him isn't the money by itself: it's margin. Time to be creative, and the finances to hire people — because you can't create anything when every hour is sold to someone else."
      ]}
    ],
    impact: [
      "$183K in closed deals since starting with us",
      "Left a full-time head-of-marketing role at a multimillion-dollar company",
      "Client relationships that are his own, priced by him instead of by an agency taking the margin",
      "A paid acquisition system replacing SEO patience and agency referrals",
      "Retainer revenue creating a floor instead of a rolling series of one-off gigs",
      "Hiring editors for his own team — the role he used to fill on someone else's",
      "Margin in the schedule to make the creative work he picked up a camera for in the first place"
    ],
    closing: "Scott's portfolio was never the problem — twenty years, and a client list most filmmakers would trade for. What he lacked was a way to reach clients that didn't route through somebody else's markup. His own advice to anyone on the fence is characteristically direct: it isn't cheap, it isn't easy, and the question that changed things for him wasn't whether the system works — it was how he was going to make it work for him."
  },
  {
    brand: "Harp Media Company",
    niche: "Performance Marketing Agency",
    service: "Pricing Structure, Retainer Terms & Lead Generation",
    timeframe: "First 4 Months",
    badge: "$92.8K vs $12K Old Pricing",
    title: "How Alex Harp Turned $12K Of Deals Into $92,800 Without Changing The Work",
    cardTitle: "$92,800 closed in four months — the same deals would have been $12K at his old prices",
    cardBlurb: "Alex lost his biggest client and came looking for lead flow. What he didn't know he was missing was the pricing structure. He ran the numbers himself: the deals he closed from January would have been about $12K written the old way. They came to $92,800.",
    statA: "$92,800", statALabel: "Closed Since January",
    statB: "~7.7x", statBLabel: "The Same Deals At His Old Pricing",
    statC: "1 → 12 Mo", statCLabel: "One-Off Videos To Year-Long Packages",
    founder: "Alex Harp", videoLength: "6:33",
    site: "harpmediacompany.com", siteUrl: "https://harpmediacompany.com/",
    logo: "assets/logo-harp-media.png", logoPlate: true,
    videoUrl: "https://player.vimeo.com/video/824911424",
    videoNote: "Recorded four months into the year Alex is describing, with $92,800 closed since that January. Harp Media Company has kept building since — it now runs paid media, CRM and automation for clients alongside the video work.",
    quote: "I was not thinking big enough. I didn't have a good pricing structure, so I was leaving a ton of money on the table.",
    quoteBy: "Alex Harp — Founder, Harp Media Company",
    overview: [
      "Alex Harp runs Harp Media Company out of Nashville. It started the way most of these do — he made videos, and clients found him by word of mouth. His description of the sales process before us is three words long: asking everybody and anyone.",
      "What sent him looking for help wasn't ambition, it was a hole in the floor. He'd landed the biggest client of his career the year before, gotten used to that income, and then lost them. He had no idea how he'd make that kind of money again. Joining was, in his words, a leap of faith that he'd learn something he didn't already know.",
      "What he came for was leads: a system that brings people who need videos to him, instead of him chasing everyone he's ever met. What he got first was something he didn't know he needed — a pricing structure, and the mindset underneath it. He'd been quoting the same numbers for so long that they had stopped being a decision and started being a fact.",
      "The arithmetic he did himself is the whole case study. Since the first of January he'd closed $92,800. Priced the way he used to price, the identical set of deals would have come to roughly $12,000."
    ],
    challenge: [
      "Every new client came from word of mouth — his own summary was asking everybody and anyone",
      "Lost his single biggest client, and with it the income level he'd built his life around",
      "Sold one video at a time: someone asks for a video, he makes it for about $3K, the relationship ends",
      "No recurring terms at all, so every month started from zero regardless of how good the last one was",
      "Pricing had gone unchanged so long it read as a hard ceiling rather than a choice",
      "Limiting beliefs he didn't know he had — he says he didn't realize mindset was the gap until he was inside the program",
      "Manual processes everywhere that should have been automated",
      "No paid acquisition, and no ability to turn demand up or down on purpose"
    ],
    strategy: [
      { n: 1, title: "Replaced One-Off Videos With Three, Six And Twelve-Month Terms", paras: [
        "The old shape of a deal was a single video for around three grand, delivered, done. The new one puts three-month, six-month and twelve-month packages in front of the client and lets them choose the depth of the relationship.",
        "Alex is clear that this isn't a squeeze — consistency is what actually works for the client, so a longer term delivers them more value, and it happens to be worth several times more to him. The lifetime value of a client moved from a few thousand dollars into the tens of thousands."
      ]},
      { n: 2, title: "Rebuilt The Pricing Structure Itself", paras: [
        "Terms are only half of it; the numbers on the page were the other half. We built the structure he now presents, and he started presenting it to every new client from January onward.",
        "He ran the comparison himself afterward and it's the most useful number in this entire teardown: $92,800 closed, versus about $12,000 for the same deals under his old prices. Nothing about the work changed. What changed was what he asked for."
      ]},
      { n: 3, title: "Fixed The Mindset That Set The Old Numbers", paras: [
        "This is the part he didn't sign up for. He joined for leads and discovered that the ceiling was internal — quoting the same figures for years until they felt like the market rate rather than a decision he was making.",
        "It's a common trap: someone said no once, so the price became a fact. An outside operator who has already been past that level can see what you can't see from inside it. Alex names the mindset work as the thing that unlocked the next stage of income for the business."
      ]},
      { n: 4, title: "Built A Lead System He Can Turn Up Or Down", paras: [
        "Word of mouth isn't a channel, it's weather. We installed the acquisition system that brings people who actually need videos to him, so the pipeline stops depending on who happens to think of him this month.",
        "His own framing of why it matters: he can turn the volume of incoming work up and down on purpose. After losing a client big enough to reshape his year, that control is the thing he calls irreplaceable."
      ]},
      { n: 5, title: "Added Ads As A Service — And Automated The Back End", paras: [
        "Learning to run ads for himself opened a second door: he started running them for clients too, which turns a video vendor into a partner generating leads, and gives him a natural reason to hold a longer retainer.",
        "Alongside it we automated the small repeating pieces of the operation. Less friction per client is what makes the next stage — hiring editors and scaling the team — actually possible rather than theoretical."
      ]}
    ],
    impact: [
      "$92,800 closed in the first four months of the year",
      "About 7.7x what the same deals would have produced under his old pricing",
      "One-off ~$3K videos replaced with three, six and twelve-month packages",
      "Client lifetime value moved from a few thousand dollars into the tens of thousands",
      "Word-of-mouth dependence replaced by a lead system he controls the volume on",
      "Ads added as a client service, not just an acquisition channel for himself",
      "Hiring editors and building toward a much larger operation than he'd pictured"
    ],
    closing: "Alex went looking for leads after losing the client his income depended on, and found that the more expensive problem was the number he'd been quoting for years without questioning it. Same videos, same skill, same city — $92,800 instead of $12,000. His own read on where it goes from here is that he hasn't cracked the surface yet, and the target he says out loud is a million-dollar year."
  },
  {
    brand: "JWCannon Creative",
    niche: "Commercial Branding Agency",
    service: "Niche Positioning, Paid Acquisition & Retainer Offer",
    timeframe: "First Year",
    badge: "$123K Closed",
    title: "How Jason Kindig Closed $123K By Trading The Top Google Ranking For A System He Controls",
    cardTitle: "$123K closed — including a single $78K twelve-month deal with half collected up front",
    cardBlurb: "Twenty years of photography and video, the top listing on Google in every category he cared about, and still waiting for the phone to ring. Jason niched into orthopedics, built acquisition he can turn up or down, and closed $123K — $78K of it on one twelve-month agreement.",
    statA: "$123K", statALabel: "Closed Since Starting With Us",
    statB: "$78K", statBLabel: "Largest Deal — 12 Months, 50% Up Front",
    statC: "SEO → Ads", statCLabel: "From Waiting To Be Found To Turning Leads On",
    founder: "Jason Kindig", videoLength: "12:34",
    site: "jwcannoncreative.com", siteUrl: "https://www.jwcannoncreative.com/",
    logo: "assets/logo-jwcannon.png", logoPlate: true,
    videoUrl: "https://www.youtube.com/embed/j68LayJZ2vQ",
    videoNote: "Recorded earlier in the engagement, when Jason had closed $45K in retainers. He has since signed a $78K twelve-month deal with a surgeon, half of it collected up front — the $123K at the top of this page is the two combined.",
    proofIntro: "Jason's own message to the group the day he signed the $78K deal — the receipt behind the updated number.",
    proof: [
      { src: "assets/jwc-proof-slack.png", caption: "Jason the day he signed it: a $78K twelve-month deal with a surgeon, 50% collected up front", wide: true }
    ],
    quote: "Even if you're the top spot, it doesn't matter — you're just kind of waiting and hoping for something to come in.",
    quoteBy: "Jason Kindig — Chief Creative, JWCannon Creative",
    overview: [
      "Jason Kindig has been shooting since 2003 — corporate and commercial photography for more than twenty years, moving into video around 2017. JWCannon Creative is a Dallas team of eight with, by their own count, over 150 years of combined experience, flying all over the country for client projects and event work.",
      "The thing that nagged at him wasn't the work, it was the shape of the business. He'd read The E-Myth years ago and it stuck: build something scalable. He just could never see how a shop like his would get there. When our ads started showing up he watched them over and over, went through the case studies, and eventually hit one or two that sounded exactly like him. Then he called.",
      "His acquisition was SEO, and he was genuinely excellent at it — top listing across every category for years. That's precisely what makes his diagnosis worth reading twice: even in the number one spot, you're still waiting and hoping something comes in. It's the same feast-and-famine cycle the rest of the industry lives in, just with better rankings. And Google results have been sliding out from under everyone since.",
      "The other half was the part he calls the bigger draw. For two years he'd shoot a beautiful video, hand it over, and have no idea what it did for the client. No ROI to point to means no argument for the next invoice. So the build here was a niche, an acquisition system he can turn up and down at will, and an offer where the client's result is the product."
    ],
    challenge: [
      "One hundred percent of new business came from SEO — a top ranking that still amounts to waiting to be found",
      "Google results sliding for everyone, with no second channel underneath",
      "The feast-and-famine cycle he says the entire industry is stuck in",
      "A completely general offer — his own line is that he shoots everything from egg rolls to private jets",
      "No way to show a client what a video actually did for them, so nothing to justify the next one",
      "Retention resting on whether the client liked the video, not on a result they could measure",
      "Wanted to be the producer and strategist, but the business still depended on him personally",
      "Couldn't see a scalable version of the company, despite having wanted one for years"
    ],
    strategy: [
      { n: 1, title: "Picked One Niche And Built The Whole System Around It", paras: [
        "Going from egg rolls to private jets is fun and it markets to nobody. We narrowed him into orthopedics — a group he genuinely likes working with, that has real budget, and that needs exactly what he makes.",
        "The point isn't that he can only ever shoot orthopedics. It's that the funnel, the ads and the messaging are built for one sector at a time. Advertising that says 'we help everybody' converts like advertising that says nothing."
      ]},
      { n: 2, title: "Replaced Waiting To Be Found With A Volume Dial", paras: [
        "He'd already won the SEO game and it still left him at the mercy of whoever happened to search that week. Paid acquisition changed the relationship: leads he can turn on, scale up, or throttle back when the calendar fills.",
        "For a business that had only ever had one channel — and one now visibly in decline — that control is the structural fix underneath every number on this page."
      ]},
      { n: 3, title: "Made The Client's Result The Product", paras: [
        "This is the change Jason says drew him in most. Delivering a beautiful video and never knowing what it did is a retention problem waiting to happen: the client looks back, asks what they got, and nobody can answer.",
        "Now the engagements are built around outcomes — organic foundations for a surgeon with elite credentials and no online presence, and qualified consults at volume for a clinic that wants them repeatable. His words for the goal: clients who would lose money by not renewing."
      ]},
      { n: 4, title: "Structured It As Retainers, Not Projects", paras: [
        "One-off shoots restart the sales process every time. Twelve-month agreements turn the same relationships into a floor — and they're what let him plan crews, hires and capacity instead of reacting to whatever books next.",
        "The largest one so far is a $78K twelve-month deal with a surgeon, half of it collected up front. The clinic behind one of these relationships has seventeen to twenty other surgeons inside the same company."
      ]},
      { n: 5, title: "Coached Him Through The Deals Themselves", paras: [
        "The strategy work didn't stop at the funnel. While he was competing against other vendors on these deals, he was working directly with our coaches on what to send, what to say, and how to nurture the client through the final stretch — the things he credits with pushing them over the edge.",
        "His honest framing of the whole program: he's confident he could have figured it out alone, three or four years and a lot more money from now. What he bought was a distilled version, and once it clicked he could see how to run it again."
      ]}
    ],
    impact: [
      "$123K closed — $45K in retainers by the time we filmed, plus a $78K deal after it",
      "A single $78K twelve-month agreement with a surgeon, 50% collected up front",
      "Orthopedics as a defined niche, replacing a completely general offer",
      "Paid acquisition running alongside SEO, with volume he controls",
      "Engagements built on client results — organic foundations and qualified consults — instead of deliverables",
      "A renewal: he re-upped with us at the end of the first program",
      "An expansion path inside existing accounts, one of which has 17–20 more surgeons in the same company"
    ],
    closing: "Jason's business was never short on skill or even on rankings — he'd already won the channel most agencies are still fighting over, and it still left him waiting. What changed is that he now picks a market, turns leads on, sells a result rather than a deliverable, and holds the relationship for twelve months at a time. He built most of this from scratch in a year while running two other businesses. His own read: he has the first two clients of this kind, and he wants ten or fifteen."
  }
];

    // --- display order: Ballad, Content Factory, then the rest ---
    const order = [4, 12, 14, 2, 16, 10, 5, 3, 13, 15, 0, 1, 6, 7, 8, 9, 11];
    const list = order.map((n) => CASES[n]).filter(Boolean);

    const esc = (s) => String(s == null ? "" : s)
      .replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");

    // Each case study gets a stable slug (from its brand name) for deep links.
    function slugify(s) {
      return String(s || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
    }
    const slugs = list.map(function (c) { return slugify(c.brand); });

    let state = { view: "index", i: 0 };

    function logoBox(c, mode) {
      // mode: "card" | "hero"
      const plate = !!c.logoPlate;
      const wrap = mode === "hero"
        ? "width: min(560px, 62vw); height: clamp(90px, 12vw, 170px); margin: 0 auto; display: flex; align-items: center; justify-content: center;"
        : "position: relative; width: 78%; max-width: 300px; height: 92px; display: flex; align-items: center; justify-content: center;";
      const plateExtra = plate
        ? (mode === "hero"
            ? " background: #fff; border-radius: 20px; padding: 22px 34px;"
            : " background: #fff; border-radius: 14px; padding: 14px 20px;")
        : "";
      const img = '<img src="./' + esc(c.logo) + '" alt="' + esc(c.brand) + ' logo" loading="lazy" decoding="async" style="width: 100%; height: 100%; object-fit: contain; display: block;">';
      return '<div class="cs-logo cs-logo-' + mode + (plate ? ' cs-logo-plate' : '') + '" style="' + wrap + plateExtra + '">' + img + '</div>';
    }

    function statBox(val, label, variant) {
      // variant: "ghost" | "red"
      const box = variant === "red"
        ? "border-radius: 20px; background: rgba(232,18,60,0.12); border: 1px solid rgba(232,18,60,0.4); padding: 16px 22px; min-width: 190px;"
        : "border-radius: 20px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); padding: 16px 22px; min-width: 190px;";
      const num = variant === "red"
        ? "font-size: 30px; font-weight: 800; letter-spacing: -0.02em; color: #E8123C; font-variant-numeric: tabular-nums;"
        : "font-size: 30px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums;";
      const lab = variant === "red"
        ? "font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-top: 4px;"
        : "font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.36); margin-top: 4px;";
      return '<div style="' + box + '"><div style="' + num + '">' + esc(val) + '</div><div style="' + lab + '">' + esc(label) + '</div></div>';
    }

    function indexHTML() {
      const intro =
        '<div style="max-width: 1280px; margin: 0 auto;">' +
          '<div style="display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04); border-radius: 999px; padding: 7px 16px; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #E8123C; margin-bottom: 22px;">Client Result Teardowns</div>' +
          '<h2 style="font-size: clamp(34px, 4.6vw, 60px); font-weight: 800; line-height: 1.04; letter-spacing: -0.02em; margin: 0 0 18px; max-width: 1000px;">Real Agencies. Real Numbers. <span style="color: #E8123C;">No Fluff.</span></h2>' +
          '<p style="font-size: 18px; line-height: 1.65; color: rgba(255,255,255,0.78); max-width: 760px; margin: 0 0 40px;">Every breakdown below is a full teardown — what was broken, what we built, and exactly what it produced. Open one and read the whole system.</p>' +
        '</div>';

      const cards = list.map((c, idx) => {
        return '' +
        '<div data-cs-open="' + idx + '" class="cs-card" style="cursor: pointer; width: 100%; border-radius: 36px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); background: #2A0911; display: grid; grid-template-columns: minmax(260px, 34%) 1fr;">' +
          '<div class="cs-card-media" style="position: relative; min-height: 260px; background: linear-gradient(135deg, #3A0C18 0%, #1F080D 60%, #120609 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; overflow: hidden;">' +
            '<div style="position: absolute; inset: 0; background: radial-gradient(circle at 82% 12%, rgba(232,18,60,0.35), transparent 62%);"></div>' +
            logoBox(c, "card") +
            '<div class="cs-card-brand" style="position: relative; font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.7); margin-top: 14px; text-align: center;">' + esc(c.brand) + '</div>' +
            '<div class="cs-card-bar" style="position: relative; width: 48px; height: 3px; background: #E8123C; margin-top: 12px;"></div>' +
            '<div style="position: absolute; bottom: 18px; left: 22px; right: 22px; display: flex; align-items: center; justify-content: center;">' +
              '<span style="font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; background: rgba(232,18,60,0.92); border-radius: 999px; padding: 6px 13px;">' + esc(c.badge) + '</span>' +
            '</div>' +
          '</div>' +
          '<div class="cs-card-body" style="padding: 34px 38px; display: flex; flex-direction: column; gap: 22px;">' +
            '<div style="display: flex; align-items: flex-start; justify-content: space-between; gap: 24px;">' +
              '<div style="font-size: clamp(20px, 1.9vw, 30px); font-weight: 700; line-height: 1.28; letter-spacing: -0.015em; max-width: 720px;">' + esc(c.cardTitle) + '</div>' +
              '<span style="flex: none; width: 44px; height: 44px; border-radius: 50%; background: #E8123C; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700;">&rarr;</span>' +
            '</div>' +
            '<div style="font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.56); max-width: 760px;">' + esc(c.cardBlurb) + '</div>' +
            '<div class="cs-stats" style="display: flex; flex-wrap: wrap; gap: 14px; margin-top: auto;">' +
              statBox(c.statA, c.statALabel, "ghost") +
              statBox(c.statB, c.statBLabel, "red") +
              statBox(c.statC, c.statCLabel, "ghost") +
            '</div>' +
          '</div>' +
        '</div>';
      }).join("");

      return intro +
        '<div style="max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px;">' + cards + '</div>';
    }

    function detailHTML(i) {
      const cs = list[i];
      const prev = list[(i - 1 + list.length) % list.length];
      const next = list[(i + 1) % list.length];

      const meta =
        '<span><span style="color: rgba(255,255,255,0.36);">Client:</span> <span style="font-weight: 700; color: #fff;">' + esc(cs.brand) + '</span></span>' +
        '<span><span style="color: rgba(255,255,255,0.36);">Focus:</span> ' + esc(cs.service) + '</span>' +
        '<span><span style="color: rgba(255,255,255,0.36);">Timeframe:</span> ' + esc(cs.timeframe) + '</span>' +
        (cs.siteUrl ? '<a href="' + esc(cs.siteUrl) + '" target="_blank" rel="noopener" style="display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #E8123C;">' + esc(cs.site) + ' &rarr;</a>' : '');

      const statCards =
        '<div style="border-radius: 28px; background: #FFFFFF; color: #0A0608; padding: 32px;">' +
          '<div style="font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(10,6,8,0.55); margin-bottom: 12px;">' + esc(cs.statALabel) + '</div>' +
          '<div style="font-size: clamp(40px, 5vw, 64px); font-weight: 800; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums;">' + esc(cs.statA) + '</div>' +
        '</div>' +
        '<div style="border-radius: 28px; background: #E8123C; color: #fff; padding: 32px; box-shadow: 0 10px 30px rgba(232,18,60,0.35);">' +
          '<div style="font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.78); margin-bottom: 12px;">' + esc(cs.statBLabel) + '</div>' +
          '<div style="font-size: clamp(40px, 5vw, 64px); font-weight: 800; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums;">' + esc(cs.statB) + '</div>' +
        '</div>' +
        '<div style="border-radius: 28px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); padding: 32px;">' +
          '<div style="font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.56); margin-bottom: 12px;">' + esc(cs.statCLabel) + '</div>' +
          '<div style="font-size: clamp(40px, 5vw, 64px); font-weight: 800; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums;">' + esc(cs.statC) + '</div>' +
        '</div>';

      const overview = (cs.overview || []).map((p) =>
        '<p style="margin: 0;">' + esc(p) + '</p>').join("");

      const videoSection = (cs.videoUrl)
        ? '<section style="margin-bottom: 72px;">' +
            '<h3 style="font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 ' + (cs.videoNote ? '10px' : '22px') + ';">Hear It From The Owner</h3>' +
            (cs.videoNote ? '<p style="display: inline-flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,0.62); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 12px 16px; margin: 0 0 22px; max-width: 760px;"><span style="flex: none; width: 7px; height: 7px; border-radius: 50%; background: #E8123C;"></span>' + esc(cs.videoNote) + '</p>' : '') +
            '<div style="position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 36px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); background: #0A0608;">' +
              '<iframe src="' + esc(cs.videoUrl) + '" title="Client interview" loading="lazy" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="true" style="position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block;"></iframe>' +
            '</div>' +
          '</section>'
        : '';

      const proofSection = (cs.proof && cs.proof.length)
        ? '<section style="margin-bottom: 72px;">' +
            '<h3 style="font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 10px;">Verified Proof</h3>' +
            '<p style="font-size: 17px; color: rgba(255,255,255,0.56); margin: 0 0 26px; max-width: 720px;">' + esc(cs.proofIntro || 'Pulled straight from the client’s own revenue dashboards — the receipts behind the numbers above.') + '</p>' +
            '<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start;">' +
              cs.proof.map(function (p) {
                return '<figure style="' + (p.wide ? 'grid-column: 1 / -1; ' : '') + 'margin: 0; border-radius: 20px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); background: #fff;">' +
                  '<img src="./' + esc(p.src) + '" alt="' + esc(p.caption) + '" loading="lazy" decoding="async" style="width: 100%; height: auto; display: block;">' +
                  '<figcaption style="padding: 12px 18px; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; color: rgba(255,255,255,0.72); background: #12080b; border-top: 1px solid rgba(255,255,255,0.08);">' + esc(p.caption) + '</figcaption>' +
                '</figure>';
              }).join("") +
            '</div>' +
            (cs.revenueTotal
              ? '<div style="margin-top: 24px; border-radius: 24px; border: 1px solid rgba(232,18,60,0.35); background: linear-gradient(135deg, rgba(232,18,60,0.12), rgba(232,18,60,0.04)); padding: 28px 32px;">' +
                  '<div style="font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.55); margin-bottom: 6px;">Total Revenue Generated</div>' +
                  '<div style="display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px;">' +
                    '<div style="font-size: clamp(40px, 5vw, 64px); font-weight: 800; letter-spacing: -0.03em; line-height: 1;">' + esc(cs.revenueTotal.total) + '</div>' +
                    '<div style="font-size: 16px; color: rgba(255,255,255,0.6);">across three independent sources</div>' +
                  '</div>' +
                  '<div style="display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px;">' +
                    cs.revenueTotal.sources.map(function (s) {
                      return '<div style="flex: 1 1 180px; border-radius: 16px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03); padding: 16px 18px;">' +
                        '<div style="font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 6px;">' + esc(s.label) + '</div>' +
                        '<div style="font-size: 22px; font-weight: 800; letter-spacing: -0.02em;">' + esc(s.value) + '</div>' +
                      '</div>';
                    }).join("") +
                  '</div>' +
                '</div>'
              : '') +
          '</section>'
        : '';

      const quoteSection = (cs.quote)
        ? '<section class="cs-quote" style="margin-bottom: 72px; border-radius: 36px; border: 1px solid rgba(232,18,60,0.4); background: rgba(232,18,60,0.08); padding: 48px 52px;">' +
            '<div style="font-size: clamp(24px, 2.6vw, 38px); font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; max-width: 1100px; text-wrap: pretty;">&ldquo;' + esc(cs.quote) + '&rdquo;</div>' +
            '<div style="display: flex; align-items: center; gap: 12px; margin-top: 26px;">' +
              '<span style="width: 34px; height: 3px; background: #E8123C;"></span>' +
              '<span style="font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.7);">' + esc(cs.quoteBy) + '</span>' +
            '</div>' +
          '</section>'
        : '';

      const challenge = (cs.challenge || []).map((ch) =>
        '<div style="display: flex; align-items: flex-start; gap: 14px; border-radius: 20px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); padding: 22px 24px;">' +
          '<span style="flex: none; width: 8px; height: 8px; border-radius: 50%; background: #E8123C; margin-top: 9px;"></span>' +
          '<span style="font-size: 16px; line-height: 1.55; color: rgba(255,255,255,0.78);">' + esc(ch) + '</span>' +
        '</div>').join("");

      const strategy = (cs.strategy || []).map((s) => {
        const paras = (s.paras || []).map((p) => '<p style="margin: 0;">' + esc(p) + '</p>').join("");
        return '<div class="cs-strategy-step" style="display: grid; grid-template-columns: 72px 1fr; gap: 28px; border-radius: 28px; background: #2A0911; border: 1px solid rgba(255,255,255,0.08); padding: 32px 36px;">' +
          '<div style="width: 64px; height: 64px; border-radius: 50%; background: #E8123C; color: #fff; font-size: 24px; font-weight: 800; display: flex; align-items: center; justify-content: center;">' + esc(s.n) + '</div>' +
          '<div>' +
            '<h3 style="font-size: clamp(20px, 1.8vw, 28px); font-weight: 700; letter-spacing: -0.01em; margin: 0 0 14px;">' + esc(s.title) + '</h3>' +
            '<div style="display: flex; flex-direction: column; gap: 14px; font-size: 17px; line-height: 1.65; color: rgba(255,255,255,0.78); max-width: 980px;">' + paras + '</div>' +
          '</div>' +
        '</div>';
      }).join("");

      const impact = (cs.impact || []).map((im) =>
        '<div style="display: flex; align-items: flex-start; gap: 14px; border-bottom: 1px solid rgba(255,255,255,0.08); padding-bottom: 16px;">' +
          '<span style="flex: none; width: 22px; height: 22px; border-radius: 50%; background: #E8123C; color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 3px;">&rarr;</span>' +
          '<span style="font-size: 17px; font-weight: 600; line-height: 1.5; color: #fff;">' + esc(im) + '</span>' +
        '</div>').join("");

      return '<div style="max-width: 1280px; margin: 0 auto;">' +
        '<div data-cs-index="1" style="display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: rgba(255,255,255,0.56); cursor: pointer; margin-bottom: 34px;">&larr; All case studies</div>' +
        '<h2 style="font-size: clamp(34px, 4.6vw, 64px); font-weight: 800; line-height: 1.06; letter-spacing: -0.02em; margin: 0 0 26px; max-width: 1200px; text-wrap: pretty;">' + esc(cs.title) + '</h2>' +
        '<div style="display: flex; flex-wrap: wrap; gap: 8px 32px; font-size: 14px; color: rgba(255,255,255,0.56); margin-bottom: 44px;">' + meta + '</div>' +

        '<div class="cs-hero" style="position: relative; width: 100%; aspect-ratio: 21 / 9; border-radius: 36px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); background: linear-gradient(135deg, #3A0C18 0%, #1F080D 55%, #120609 100%); display: flex; align-items: center; justify-content: center; margin-bottom: 22px;">' +
          '<div style="position: absolute; inset: 0; background: radial-gradient(circle at 88% 8%, rgba(232,18,60,0.4), transparent 58%);"></div>' +
          '<div style="position: relative; text-align: center; padding: 0 28px;">' +
            logoBox(cs, "hero") +
            '<div style="font-size: 14px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.7); margin-top: 20px;">' + esc(cs.brand) + '</div>' +
            '<div style="width: 72px; height: 3px; background: #E8123C; margin: 20px auto 0;"></div>' +
          '</div>' +
          '<div style="position: absolute; bottom: 26px; left: 32px; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; background: rgba(232,18,60,0.92); border-radius: 999px; padding: 9px 18px;">' + esc(cs.badge) + '</div>' +
        '</div>' +

        '<div class="cs-statcards" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-bottom: 72px;">' + statCards + '</div>' +

        '<section class="cs-overview" style="margin-bottom: 72px; display: grid; grid-template-columns: minmax(200px, 280px) 1fr; gap: 48px; align-items: start;">' +
          '<h3 style="font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0;">Overview</h3>' +
          '<div style="display: flex; flex-direction: column; gap: 20px; max-width: 900px; font-size: 19px; line-height: 1.65; color: rgba(255,255,255,0.78);">' + overview + '</div>' +
        '</section>' +

        proofSection +
        videoSection +
        quoteSection +

        '<section style="margin-bottom: 72px;">' +
          '<h3 style="font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 10px;">The Challenge</h3>' +
          '<p style="font-size: 17px; color: rgba(255,255,255,0.56); margin: 0 0 26px; max-width: 720px;">What was actually broken before we touched anything.</p>' +
          '<div class="cs-challenge-grid" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px;">' + challenge + '</div>' +
        '</section>' +

        '<section style="margin-bottom: 72px;">' +
          '<h3 style="font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 10px;">Our Strategy</h3>' +
          '<p style="font-size: 17px; color: rgba(255,255,255,0.56); margin: 0 0 32px; max-width: 720px;">The exact build, step by step, in the order we ran it.</p>' +
          '<div style="display: flex; flex-direction: column; gap: 20px;">' + strategy + '</div>' +
        '</section>' +

        '<section style="margin-bottom: 72px;">' +
          '<h3 style="font-size: clamp(28px, 3vw, 44px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 26px;">Final Impact</h3>' +
          '<div class="cs-impact-box" style="border-radius: 36px; background: linear-gradient(135deg, #3A0C18 0%, #1F080D 60%, #120609 100%); border: 1px solid rgba(255,255,255,0.08); padding: 40px 44px;">' +
            '<div class="cs-impact-grid" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px 40px;">' + impact + '</div>' +
            '<p style="font-size: 18px; line-height: 1.65; color: rgba(255,255,255,0.78); margin: 28px 0 0; max-width: 900px;">' + esc(cs.closing) + '</p>' +
          '</div>' +
        '</section>' +

        '<section class="cs-cta" style="margin-bottom: 60px; border-radius: 36px; background: #E8123C; padding: 56px 48px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px; box-shadow: 0 10px 30px rgba(232,18,60,0.35);">' +
          '<div style="max-width: 720px;">' +
            '<h3 style="font-size: clamp(30px, 3.6vw, 48px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.08; margin: 0 0 16px;">Want Results Like This In Your Agency?</h3>' +
            '<p style="font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.9); margin: 0;">We&rsquo;ll audit your marketing, sales &amp; fulfillment and map the fastest path to your next retainer. No fluff. No gimmicks.</p>' +
          '</div>' +
          '<button data-cs-cta="1" style="background: #0A0608; color: #fff; font-size: 17px; font-weight: 700; padding: 20px 38px; border-radius: 999px; white-space: nowrap; border: 0; cursor: pointer; font-family: Poppins, Arial, sans-serif;">Schedule Demo &rarr;</button>' +
        '</section>' +

        '<div class="cs-nav" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; padding-bottom: 8px;">' +
          '<div data-cs-nav="prev" style="cursor: pointer; border-radius: 28px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03); padding: 28px 30px;">' +
            '<div style="font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #E8123C; margin-bottom: 10px;">&larr; Previous</div>' +
            '<div style="font-size: 19px; font-weight: 700; line-height: 1.35;">' + esc(prev.title) + '</div>' +
          '</div>' +
          '<div data-cs-nav="next" style="cursor: pointer; border-radius: 28px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03); padding: 28px 30px; text-align: right;">' +
            '<div style="font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #E8123C; margin-bottom: 10px;">Next &rarr;</div>' +
            '<div style="font-size: 19px; font-weight: 700; line-height: 1.35;">' + esc(next.title) + '</div>' +
          '</div>' +
        '</div>' +
      '</div>';
    }

    function scrollToTop() {
      // keep the section anchored in view rather than jumping the whole window
      try { root.scrollIntoView({ behavior: "smooth", block: "start" }); } catch (e) {}
    }

    function render() {
      root.innerHTML = state.view === "index" ? indexHTML() : detailHTML(state.i);
    }

    // --- URL <-> view sync so each case study is a shareable deep link ---
    function currentSlug() {
      return (window.location.hash || "").replace(/^#/, "");
    }
    function applyRoute(doScroll) {
      const idx = slugs.indexOf(currentSlug());
      const next = idx >= 0 ? { view: "detail", i: idx } : { view: "index", i: 0 };
      const changed = next.view !== state.view || next.i !== state.i;
      state = next;
      render();
      if (doScroll && changed) scrollToTop();
    }
    function goToCase(i) {
      const target = "#" + slugs[i];
      if (window.location.hash !== target) history.pushState(null, "", target);
      applyRoute(true);
    }
    function goToIndex() {
      if (window.location.hash) history.pushState(null, "", window.location.pathname + window.location.search);
      applyRoute(true);
    }

    function onClick(e) {
      const openEl = e.target.closest("[data-cs-open]");
      if (openEl && root.contains(openEl)) {
        goToCase(parseInt(openEl.getAttribute("data-cs-open"), 10) || 0);
        return;
      }
      if (e.target.closest("[data-cs-index]")) {
        goToIndex(); return;
      }
      const navEl = e.target.closest("[data-cs-nav]");
      if (navEl && root.contains(navEl)) {
        const dir = navEl.getAttribute("data-cs-nav");
        const n = list.length;
        goToCase(dir === "prev" ? (state.i - 1 + n) % n : (state.i + 1) % n);
        return;
      }
      if (e.target.closest("[data-cs-cta]")) {
        if (typeof onCTA === "function") onCTA();
        return;
      }
    }
    function onPop() { applyRoute(false); }

    root.addEventListener("click", onClick);
    window.addEventListener("popstate", onPop);
    applyRoute(false); // open the deep-linked case (if any) on load
    return () => {
      root.removeEventListener("click", onClick);
      window.removeEventListener("popstate", onPop);
    };
  }, [onCTA]);

  const MOBILE_CSS = `
[data-mf="case-study-depth"], [data-mf="case-study-depth"] * { box-sizing: border-box; }
[data-mf="case-study-depth"] { overflow-x: hidden; }
@media (max-width: 768px) {
  [data-mf="case-study-depth"] { padding: 36px 16px 8px !important; }
  [data-mf="case-study-depth"] section { margin-bottom: 40px !important; }
  [data-mf="case-study-depth"] h2 { font-size: 30px !important; line-height: 1.08 !important; }
  .cs-card { grid-template-columns: 1fr !important; border-radius: 22px !important; }
  .cs-card-media { min-height: 0 !important; padding: 60px 20px 42px !important; }
  /* normalize every card logo into one consistent, padded lockup */
  .cs-logo-card { width: 62% !important; max-width: 200px !important; height: 44px !important; }
  .cs-logo-card.cs-logo-plate { width: 66% !important; max-width: 210px !important; padding: 8px 16px !important; height: 54px !important; border-radius: 12px !important; }
  .cs-card-brand { margin-top: 16px !important; }
  .cs-card-bar { margin-top: 12px !important; }
  .cs-card-body { padding: 22px 20px !important; gap: 16px !important; }
  .cs-card-body > div:first-child > div { font-size: 21px !important; }
  .cs-stats { gap: 10px !important; }
  .cs-stats > div { min-width: 0 !important; flex: 1 1 calc(50% - 5px) !important; padding: 14px 14px !important; }
  .cs-stats > div > div:first-child { font-size: 24px !important; }
  .cs-statcards { grid-template-columns: 1fr !important; margin-bottom: 40px !important; }
  .cs-quote { padding: 28px 24px !important; }
  .cs-impact-box { padding: 26px 22px !important; }
  .cs-overview { grid-template-columns: 1fr !important; gap: 14px !important; }
  .cs-overview > div { font-size: 17px !important; }
  .cs-challenge-grid { grid-template-columns: 1fr !important; }
  .cs-strategy-step { grid-template-columns: 1fr !important; gap: 14px !important; padding: 24px 20px !important; border-radius: 22px !important; }
  .cs-strategy-step > div:first-child { width: 52px !important; height: 52px !important; font-size: 20px !important; }
  .cs-impact-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .cs-hero { aspect-ratio: auto !important; min-height: 200px !important; padding: 40px 18px !important; border-radius: 22px !important; }
  .cs-hero .cs-logo-hero { height: 58px !important; width: 66vw !important; max-width: 300px !important; }
  .cs-hero .cs-logo-hero.cs-logo-plate { height: 74px !important; padding: 12px 20px !important; border-radius: 14px !important; }
  .cs-cta { padding: 30px 22px !important; border-radius: 22px !important; gap: 20px !important; }
  .cs-cta button { width: 100% !important; text-align: center !important; }
  .cs-nav { grid-template-columns: 1fr !important; }
  .cs-nav [data-cs-nav="next"] { text-align: left !important; }
}
`;

  return (
    <section data-mf="case-study-depth" style={{
      background: '#0A0608', color: '#fff',
      padding: '64px 44px 8px',
      borderTop: '1px solid rgba(255,255,255,0.06)',
      fontFamily: 'Poppins, Arial, sans-serif',
    }}>
      <style dangerouslySetInnerHTML={{ __html: MOBILE_CSS }}/>
      <div ref={ref}/>
    </section>
  );
}
window.CaseStudyDepth = CaseStudyDepth;
