/**
 * Case studies. Translatable strings are `{ ru, en }` objects, resolved by
 * the component via `pick(lang, …)`. `kind` tells the visual layer which
 * preview composition to render (real screenshots vs. mocked terminals/chat).
 */

const CASES = [
  {
    id: 'kroi',
    n: '01',
    kind: 'kroi',
    name: 'Krói',
    url: 'kroi.site',
    accent: '#ff4520',
    bgGradient:
      'radial-gradient(ellipse at 30% 20%, rgba(255, 64, 32, 0.12), transparent 60%),' +
      'radial-gradient(ellipse at 80% 80%, rgba(102, 58, 243, 0.18), transparent 60%)',
    category: { ru: 'Бренд-ритейл · одежда', en: 'Brand retail · apparel' },
    headline: {
      ru: 'Премиальный e-com для дроп-релизов российского бренда одежды.',
      en: 'Premium e-com for the drop releases of a Russian fashion brand.',
    },
    body: {
      ru: 'Сайт в эстетике "тёмного редактора моды": крупная типографика, drop-структура коллекций, корзина с тонкими микро-анимациями. Подключили оплату, отгрузки и аналитику воронки.',
      en: '"Dark fashion editor" aesthetic: oversized type, drop-based collection structure, a cart with subtle micro-animations. We wired up payments, shipping, and funnel analytics.',
    },
    metrics: [
      { label: { ru: 'СРОК',       en: 'TIMELINE'   }, value: '14d' },
      { label: { ru: 'CR / ВИЗИТ', en: 'CR / VISIT' }, value: '4.7%' },
      { label: { ru: 'LIGHTHOUSE', en: 'LIGHTHOUSE' }, value: '94' },
    ],
    tags: ['Next.js 14', 'Sanity CMS', 'Stripe', 'Yandex.Metrica'],
  },
  {
    id: 'avangard',
    n: '02',
    kind: 'avangard',
    name: 'Avangard Style',
    url: 'avangardstyle.kg',
    accent: '#5b96f7',
    bgGradient:
      'radial-gradient(ellipse at 20% 30%, rgba(34, 80, 168, 0.30), transparent 60%),' +
      'radial-gradient(ellipse at 80% 70%, rgba(168, 216, 245, 0.10), transparent 60%)',
    category: { ru: 'Корпорат · стройка', en: 'Corporate · construction' },
    headline: {
      ru: 'Корпоративный сайт строительной компании с 25-летней историей.',
      en: 'Corporate site for a construction company with a 25-year history.',
    },
    body: {
      ru: 'Единый портал группы компаний: корпоративный сайт + лендинги отдельных проектов (ЖК «Легенда», Tamchy Resort), 3D-туры по объектам и LIVE-трансляции со строек. Один CMS, общий бренд, разные посадочные.',
      en: 'A single portal for the group: a corporate site plus dedicated landings for individual projects (Legenda residential, Tamchy Resort), 3D tours of completed buildings, and live construction-cam streams. One CMS, one brand, distinct landings.',
    },
    metrics: [
      { label: { ru: 'ОБЪЕКТОВ',     en: 'PROJECTS'      }, value: '195' },
      { label: { ru: 'ЛЕТ В РЫНКЕ',  en: 'YRS IN MARKET' }, value: '25' },
      { label: { ru: 'СТРАНИЦ',      en: 'PAGES'         }, value: '48' },
    ],
    tags: ['Next.js', 'Strapi', 'i18n', '3D Tour API'],
  },
  {
    id: 'bilal',
    n: '03',
    kind: 'bilal',
    name: 'Bilal',
    url: 'bilal.kg',
    accent: '#5b3ddc',
    bgGradient:
      'radial-gradient(ellipse at 70% 30%, rgba(102, 58, 243, 0.22), transparent 60%),' +
      'radial-gradient(ellipse at 20% 80%, rgba(168, 216, 245, 0.12), transparent 60%)',
    category: { ru: 'Производство · опт', en: 'Manufacturing · wholesale' },
    headline: {
      ru: 'Лендинг для оптового производителя детской и мужской одежды.',
      en: 'Landing for a wholesale manufacturer of kids’ and menswear.',
    },
    body: {
      ru: 'Чистый одностраничник с понятной структурой направлений пошива, формой заявки и интеграцией звонка прямо со страницы. Адаптив, мобильное меню, минимум визуального шума.',
      en: 'A clean one-pager with a clear sewing-line structure, an inquiry form, and click-to-call wired to the page. Responsive, mobile menu, minimal visual noise.',
    },
    metrics: [
      { label: { ru: 'СРОК',     en: 'TIMELINE' }, value: '7d' },
      { label: { ru: 'ЗВОНКИ +', en: 'CALLS +'  }, value: '+220%' },
      { label: { ru: 'ЗАЯВКИ',   en: 'LEADS'    }, value: '38/мес' },
    ],
    tags: ['Astro', 'Tilda Refactor', 'Webhook', 'amoCRM'],
  },
  {
    id: 'wb-parser',
    n: '04',
    kind: 'parser',
    name: 'WB Pricewatch',
    url: 'internal · wb-pricewatch',
    accent: '#663af3',
    bgGradient:
      'radial-gradient(ellipse at 50% 0%, rgba(102, 58, 243, 0.30), transparent 60%),' +
      'radial-gradient(ellipse at 0% 100%, rgba(168, 216, 245, 0.10), transparent 60%)',
    category: { ru: 'Скрипт · парсер', en: 'Script · scraper' },
    headline: {
      ru: 'Парсер цен Wildberries для оптовика косметики — 4 200 SKU.',
      en: 'Wildberries price scraper for a cosmetics wholesaler — 4,200 SKUs.',
    },
    body: {
      ru: 'Cron-задача каждые 30 минут собирает цены конкурентов, складывает в Postgres, рисует дашборд в Grafana и шлёт в telegram алерт, если кто-то ушёл ниже минимальной розничной цены.',
      en: 'A cron job runs every 30 min to collect competitor prices, stores them in Postgres, builds a Grafana dashboard, and pings Telegram if someone goes below MAP.',
    },
    metrics: [
      { label: { ru: 'SKU',     en: 'SKUS'    }, value: '4 200' },
      { label: { ru: 'ЧАСТОТА', en: 'CADENCE' }, value: '30 min' },
      { label: { ru: 'UPTIME',  en: 'UPTIME'  }, value: '99.6%' },
    ],
    tags: ['Python', 'Playwright', 'Postgres', 'Grafana'],
  },
  {
    id: 'tg-leads',
    n: '05',
    kind: 'tg',
    name: 'Lead Funnel Bot',
    url: 'internal · @codaro_leads',
    accent: '#5b96f7',
    bgGradient:
      'radial-gradient(ellipse at 80% 20%, rgba(102, 58, 243, 0.28), transparent 60%),' +
      'radial-gradient(ellipse at 10% 80%, rgba(168, 216, 245, 0.10), transparent 60%)',
    category: { ru: 'Telegram-бот · продажи', en: 'Telegram bot · sales' },
    headline: {
      ru: 'Telegram-бот для приёма и квалификации заявок небольшой студии.',
      en: 'A Telegram bot for intake and qualification of leads at a small studio.',
    },
    body: {
      ru: '4-шаговая воронка с подбором услуги, бюджета и сроков. Заявки уходят в Notion и канал команды, на каждую назначается ответственный за час. Месячная стоимость хостинга — $0.',
      en: 'A 4-step funnel that asks for service, budget, and timeline. Leads go to Notion and the team channel, with an owner assigned within an hour. Monthly hosting cost — $0.',
    },
    metrics: [
      { label: { ru: 'СРЕДНИЙ ОТВЕТ', en: 'AVG REPLY'   }, value: '47 min' },
      { label: { ru: 'CR ВОРОНКИ',    en: 'FUNNEL CR'   }, value: '62%' },
      { label: { ru: 'ЗАЯВОК / МЕС',  en: 'LEADS / MO'  }, value: '124' },
    ],
    tags: ['grammY', 'Notion API', 'Cloudflare Workers'],
  },
];

window.CASES = CASES;
