// Content for Octodus landing — all copy and data lives here.

const TENTACLES = [
  {
    id: 'code',
    icon: 'code',
    label: 'Code',
    one: 'Voice note → 112 dev-ready prompts.',
    deep: 'Describe an idea in plain English. Octodus turns it into structured prompts your team can paste into any code tool.',
  },
  {
    id: 'plan',
    icon: 'calendar',
    label: 'Planning',
    one: 'Pre-call briefings, on time.',
    deep: 'Drop a doc, mention a meeting. Octodus schedules the prep, writes the brief, reminds the team — without a project manager.',
  },
  {
    id: 'research',
    icon: 'search',
    label: 'Research',
    one: 'Patient DNS co-pilot.',
    deep: 'Diagnoses your exact setup, walks step by step, catches when things don\u2019t work, and stays with you until it does.',
  },
  {
    id: 'sales',
    icon: 'briefcase',
    label: 'Sales',
    one: 'Hot lead in chat → demo script in an hour.',
    deep: 'Recognises lead importance from context, files a task, writes the 2.5\u202fmin demo script, reminds you to follow up.',
  },
  {
    id: 'auto',
    icon: 'gear',
    label: 'Automation',
    one: 'Fixed its own bug. While you slept.',
    deep: 'Detects stuck sessions, writes the cleanup script, runs it, sets TTLs, posts the before/after — without a human in the loop.',
  },
  {
    id: 'design',
    icon: 'pen',
    label: 'Design',
    one: '16 revisions. One evening. PDF ready.',
    deep: 'Drop a brief. Get back a 3\u202f\u00d7\u202f2\u202fm pageant banner with iteration after iteration, print-ready by midnight.',
  },
];

const STORIES = [
  {
    n: '01',
    metric: '6',
    unit: 'versions on Gumroad',
    title: 'Zero devs. Six revenue plugins.',
    blurb: 'Michael described a Blender plugin in a voice note. Octodus shipped six versions, a Vercel dashboard, and 15 fixes.',
    avatar: 'public/avatars/michael.webp',
    name: 'Michael',
    role: 'Solo creator',
    accent: 'var(--t-code)',
  },
  {
    n: '02',
    metric: '16',
    unit: 'revisions \u00b7 one evening',
    title: 'Agency quoted 2 weeks.\nOctodus took an evening.',
    blurb: 'A 3\u00d72 m pageant banner. Sixteen revisions, all inside one Telegram thread. Print-ready PDF before midnight.',
    avatar: 'public/avatars/maya.webp',
    name: 'Maya',
    role: 'Event organiser',
    accent: 'var(--t-design)',
  },
  {
    n: '03',
    metric: '27GB',
    unit: '\u2192 124MB at 3:14 AM',
    title: 'Fixed its own bug. No alert. No human.',
    blurb: 'Stuck sessions filling disk to 99%. Detected, root-caused, cleanup script written, run, TTLs set \u2014 before Dan woke up.',
    avatar: 'public/avatars/denis.webp',
    name: 'Dan',
    role: 'Indie engineer',
    accent: 'var(--t-auto)',
  },
  {
    n: '04',
    metric: '\u20bd18M',
    unit: 'grant coordinated',
    title: 'Five organizations.\nOne deadline. No PM.',
    blurb: 'Government grant deadline. 5 orgs aligned, paperwork chased, the final submission stitched together \u2014 just from chat.',
    avatar: 'public/avatars/anastasia.webp',
    name: 'Ana',
    role: 'Programme lead',
    accent: 'var(--t-plan)',
  },
  {
    n: '05',
    metric: 'End to end',
    unit: 'OTP \u00b7 PDF \u00b7 form',
    title: 'Writes the task. Makes coffee. Gets the job.',
    blurb: 'OKX application: tailored CV, Playwright form fill, PDF upload, OTP verification \u2014 zero human input from start to send.',
    avatar: 'public/avatars/nikolay.webp',
    name: 'Nick',
    role: 'Senior engineer',
    accent: 'var(--t-sales)',
  },
  {
    n: '06',
    metric: '2\u00d7',
    unit: 'delivery speed',
    title: '10+ clients. A junior team that never sleeps.',
    blurb: 'Content pipelines, blog SEO, social posts across 10+ concurrent clients. Delivery speed doubled. Zero new hires.',
    avatar: 'public/avatars/elena.webp',
    name: 'Elena',
    role: 'Agency owner',
    accent: 'var(--t-research)',
  },
];

// Chat scenes — three vignettes that auto-rotate in the live demo
const SCENES = [
  {
    id: 'voice',
    chip: 'VOICE NOTE \u2192 112 PROMPTS',
    chipColor: 'var(--t-code)',
    messages: [
      { kind: 'user', name: 'Max', avatar: '#a855f7', voice: '0:47', text: 'voice note' },
      { kind: 'typing' },
      { kind: 'bot', text: 'Got it. Travel app, affiliate monetisation, budget splitting. Building you 112 prompts:' },
      { kind: 'bot-list', items: [
        '50 feature builds',
        '12 affiliate monetisation prompts',
        '18 testing prompts',
        '+ master setup',
      ] },
      { kind: 'user-short', name: 'Max', avatar: '#a855f7', text: 'You are a machine!' },
    ],
  },
  {
    id: 'photo',
    chip: 'PHOTO \u2192 PUBLISHED ARTICLE',
    chipColor: 'var(--t-design)',
    messages: [
      { kind: 'user-photo', name: 'Marco', avatar: '#f59e0b', label: 'royal-oak.jpg \u00b7 1.2\u202fMB' },
      { kind: 'user-short', name: 'Marco', avatar: '#f59e0b', text: 'Need a blog post on this.' },
      { kind: 'typing' },
      { kind: 'bot', text: 'Draft ready. 3 paragraphs, SEO-tuned. Telegram caption attached. Cover image generated.' },
      { kind: 'bot-status', items: [
        { label: 'Blog post',   status: 'Live \u00b7 17:30' },
        { label: 'TG channel',  status: 'Posted' },
        { label: 'Cover image', status: 'Generated' },
      ] },
    ],
  },
  {
    id: 'bug',
    chip: 'SELF-HEAL \u00b7 3:14 AM',
    chipColor: 'var(--t-auto)',
    messages: [
      { kind: 'bot-alert', text: 'Disk at 99%. Stuck sessions detected. Investigating.' },
      { kind: 'bot', text: 'Root cause: 27\u202fGB in /tmp/sessions \u2014 no TTL. Drafting cleanup script.' },
      { kind: 'typing' },
      { kind: 'bot-status', items: [
        { label: 'Cleanup script', status: 'Ran' },
        { label: 'TTLs',           status: 'Set' },
        { label: 'Disk',           status: '27\u202fGB \u2192 124\u202fMB' },
      ] },
      { kind: 'user-short', name: 'Dan', avatar: '#3b82f6', text: 'wait what \ud83d\ude2e' },
    ],
  },
];

const PARTNERS = [
  { src: 'public/partners/anthropic.png', name: 'Anthropic' },
  { src: 'public/partners/googlecloud.png', name: 'Google Cloud' },
  { src: 'public/partners/eigenlayer.png', name: 'EigenLayer' },
  { src: 'public/partners/ditto.png', name: 'Ditto' },
];

const HOW_STEPS = [
  { n: '01', title: 'Add @octodus_bot to your group chat.', body: 'Telegram first. Slack, WhatsApp & Discord arriving this year.' },
  { n: '02', title: 'Mention it like a teammate.', body: 'Send a message, voice note, photo, or document. No prompt engineering, no dashboards.' },
  { n: '03', title: 'Watch it do the work.', body: 'It writes, designs, codes, coordinates and even fixes its own bugs \u2014 inside the chat the team already uses.' },
];

const PRICING = [
  {
    name: 'Solo',
    price: '$50',
    suffix: '/ person / month',
    tag: '$15 credits \u00b7 no card \u00b7 never expire',
    bullets: [
      'Lives in a private DM',
      'Same engine as Team',
      'Standard action quota',
      'Telegram-native today',
    ],
    cta: 'Claim credits',
    highlight: false,
  },
  {
    name: 'Team',
    price: '$50',
    suffix: '/ seat / month',
    tag: '$15 credits to start \u00b7 no card \u00b7 never expire',
    bullets: [
      'Lives in your group chat',
      'Higher action quota',
      'Longer context window',
      'Per-team memory & rules',
    ],
    cta: 'Set up Team',
    highlight: true,
  },
  {
    name: 'Enterprise',
    price: 'Talk',
    suffix: 'to us',
    tag: 'custom \u00b7 SSO + residency',
    bullets: [
      'Dedicated onboarding',
      'Custom integrations',
      'Priority infrastructure',
      'Quarterly reviews',
    ],
    cta: 'Contact sales',
    highlight: false,
  },
];

// Export to window so other Babel files can use it
Object.assign(window, { TENTACLES, STORIES, SCENES, PARTNERS, HOW_STEPS, PRICING });
