{
  "_about": "Every image slot in the funnel. To swap art, replace the file at `src` (or point `src` at a new file in /img). `width` x `height` is the export size in px (3x of the 390 CSS px column); the layout reserves that aspect ratio. `tone` is how the placeholder is drawn: `light` sits on the page, `onblue` sits on the blue gradient. Placeholders are generated by web/tools/gen-placeholders.mjs and say IMG: <slot>.",
  "welcome-hero": {
    "src": "/img/welcome-hero.svg",
    "width": 1170,
    "height": 1200,
    "tone": "light",
    "alt": "The Robosue list with one spam text highlighted",
    "description": "Phone mock of the Robosue list, cropped at the bottom with a fade to the page color. One caught-spam row pops out: wider than the bezel, shadowed, with a green 'Likely spam' chip and a blue 'Report' pill. No real senders."
  },
  "rank-emblem": {
    "src": "/img/rank-emblem.svg",
    "width": 360,
    "height": 360,
    "tone": "light",
    "alt": "",
    "description": "A simple emblem (shield or bubble with an exclamation) for the complaints stat. Decorative. Shown at 88 to 120 px."
  },
  "problem-art": {
    "src": "/img/problem-art.svg",
    "width": 1170,
    "height": 900,
    "tone": "light",
    "alt": "Spam texts spilling out of a phone",
    "description": "Generic received gray bubbles spilling from a phone, slightly rotated. No real brands or numbers."
  },
  "find-art": {
    "src": "/img/find-art.svg",
    "width": 1170,
    "height": 900,
    "tone": "light",
    "alt": "The Robosue Mac app with three spam texts ticked",
    "description": "A Mac window with the Robosue list and three ticked rows."
  },
  "evidence-art": {
    "src": "/img/evidence-art.svg",
    "width": 1170,
    "height": 900,
    "tone": "light",
    "alt": "A sealed evidence envelope",
    "description": "A blue tile with a sealed envelope and two iOS-style notification banners."
  },
  "firm-art": {
    "src": "/img/firm-art.svg",
    "width": 1170,
    "height": 900,
    "tone": "light",
    "alt": "A lock screen notification saying the evidence was received",
    "description": "A lock-screen tile with one banner: 'Your evidence was received'."
  },
  "window-art": {
    "src": "/img/window-art.svg",
    "width": 1170,
    "height": 900,
    "tone": "light",
    "alt": "An old Messages thread",
    "description": "A Messages thread scrolled back to older dates. No real senders."
  },
  "quiz-intro-glyph": {
    "src": "/img/quiz-intro-glyph.svg",
    "width": 360,
    "height": 360,
    "tone": "light",
    "alt": "",
    "description": "Small glyph for the quiz intro (a bubble with a question mark). Decorative."
  },
  "quiz-topic-warranty": {
    "src": "/img/quiz-topic-warranty.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: car warranty. Our own drawing, no third-party logos."
  },
  "quiz-topic-loan": {
    "src": "/img/quiz-topic-loan.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: loans or debt relief."
  },
  "quiz-topic-political": {
    "src": "/img/quiz-topic-political.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: political campaigns (a neutral ballot, no party colors)."
  },
  "quiz-topic-package": {
    "src": "/img/quiz-topic-package.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: a package you didn't order."
  },
  "quiz-topic-toll": {
    "src": "/img/quiz-topic-toll.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: an unpaid toll."
  },
  "quiz-topic-bank": {
    "src": "/img/quiz-topic-bank.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: a bank account alert (no real bank)."
  },
  "quiz-topic-job": {
    "src": "/img/quiz-topic-job.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: job offers."
  },
  "quiz-topic-insurance": {
    "src": "/img/quiz-topic-insurance.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: home or auto insurance quotes."
  },
  "quiz-topic-home": {
    "src": "/img/quiz-topic-home.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: home services (a house with a solar panel or a roof). Our own drawing, no third-party logos."
  },
  "quiz-topic-robocall": {
    "src": "/img/quiz-topic-robocall.svg",
    "width": 480,
    "height": 480,
    "tone": "light",
    "alt": "",
    "description": "Topic glyph: recorded-voice calls."
  },
  "ready-glyph": {
    "src": "/img/ready-glyph.svg",
    "width": 360,
    "height": 360,
    "tone": "light",
    "alt": "",
    "description": "Small glyph for the pre-picker (a checklist). Decorative."
  },
  "celebrate-glyph": {
    "src": "/img/celebrate-glyph.svg",
    "width": 360,
    "height": 360,
    "tone": "onblue",
    "alt": "",
    "description": "Small glyph on the blue sunburst (a white bubble with a check). Decorative."
  },
  "pass-hero": {
    "src": "/img/pass-hero.svg",
    "width": 1170,
    "height": 900,
    "tone": "onblue",
    "alt": "A phone showing evidence sent to the law firm",
    "description": "Sits on the blue sunburst tile. A phone mock with one popped-out row: 'Sent to your law firm'. Transparent background."
  },
  "getapp-mac": {
    "src": "/img/getapp-mac.svg",
    "width": 1170,
    "height": 700,
    "tone": "light",
    "alt": "Robosue on a Mac",
    "description": "A MacBook with the Robosue window open."
  },
  "og": {
    "src": "/img/og.png",
    "width": 1200,
    "height": 630,
    "tone": "onblue",
    "alt": "Robosue",
    "description": "Share card. The gradient sunburst, the white bubble logo and 'Robosue', a one-line tagline, three floating received-bubble stickers. Referenced by index.html (og:image), so keep the same path or update the meta tag."
  },
  "landing-hero": {
    "src": "/img/landing-hero.svg",
    "width": 1440,
    "height": 1500,
    "tone": "onblue",
    "alt": "The Robosue list on an iPhone with one spam text highlighted",
    "description": "Landing hero, right column on the blue gradient (shown up to 480 CSS px wide; 340 px on a phone). An iPhone mock of the Robosue list. ONE row pops out wider than the bezel: white, shadowed, rotated about -3deg, with a generic sender tile, a one-line spam preview, a green 'Likely spam' chip and a blue 'Report' pill. The rows below fade into the blue at the bottom of the phone. Transparent background. No real senders, brands or numbers."
  },
  "landing-step-1": {
    "src": "/img/landing-step-1.svg",
    "width": 780,
    "height": 1200,
    "tone": "light",
    "alt": "Importing spam texts into Robosue",
    "description": "How it works, step 1 (Import). A phone or Mac screenshot of the import screen, top part only: it sits on a light-gray tile and is cropped at the bottom by the tile (about the top 70% shows). Transparent background."
  },
  "landing-step-2": {
    "src": "/img/landing-step-2.svg",
    "width": 780,
    "height": 1200,
    "tone": "light",
    "alt": "Robosue flagging spam texts that may qualify",
    "description": "How it works, step 2 (Find). The Robosue list with a few rows ticked as potential violations. Same framing as landing-step-1: cropped at the bottom by the gray tile. No real senders."
  },
  "landing-step-3": {
    "src": "/img/landing-step-3.svg",
    "width": 780,
    "height": 1200,
    "tone": "light",
    "alt": "Evidence sent to a partner law firm for review",
    "description": "How it works, step 3 (Recover). A 'Sent to your law firm' confirmation with a sealed-envelope mark. Same framing as landing-step-1. Never shows a dollar outcome."
  }
}
