// ──────────────────────────────────────────────────────────────
// i18n — language context + switcher + dictionaries.
// Languages: English (source), Ukrainian, Russian, Slovak, Swedish.
// Pages main / about / cv / contact are hand-localised here.
// photographs / essays carry an AI-machine-translation note (see i18n-content.jsx).
// ──────────────────────────────────────────────────────────────

const LANGS = [
  { code: 'en', label: 'EN', native: 'English' },
  { code: 'uk', label: 'UA', native: 'Українська' },
  { code: 'ru', label: 'RU', native: 'Русский' },
  { code: 'sk', label: 'SK', native: 'Slovenčina' },
  { code: 'sv', label: 'SV', native: 'Svenska' },
];

const LangCtx = React.createContext({ lang: 'en', setLang: () => {} });
function useLang() { return React.useContext(LangCtx).lang; }

function LangProvider({ children }) {
  const [lang, setLangState] = React.useState(() => {
    try { return localStorage.getItem('pp-lang') || 'en'; } catch { return 'en'; }
  });
  const setLang = (l) => { setLangState(l); try { localStorage.setItem('pp-lang', l); } catch {} };
  return <LangCtx.Provider value={{ lang, setLang }}>{children}</LangCtx.Provider>;
}

// Merge English defaults with the active language so partial dicts never break.
function tr(section, lang) {
  const s = (window.I18N && window.I18N[section]) || {};
  return { ...(s.en || {}), ...(s[lang] || {}) };
}

// Single-button language switcher with a dropdown list.
function LangSwitch() {
  const { lang, setLang } = React.useContext(LangCtx);
  const [open, setOpen] = React.useState(false);
  const ref = React.useRef(null);
  const cur = LANGS.find((l) => l.code === lang) || LANGS[0];

  React.useEffect(() => {
    if (!open) return;
    const h = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); };
    const esc = (e) => { if (e.key === 'Escape') setOpen(false); };
    document.addEventListener('mousedown', h);
    document.addEventListener('keydown', esc);
    return () => { document.removeEventListener('mousedown', h); document.removeEventListener('keydown', esc); };
  }, [open]);

  return (
    <div ref={ref} style={{ position: 'relative', fontSize: 12 }}>
      <button type="button" className="pp-langbtn" aria-haspopup="listbox" aria-expanded={open}
              onClick={() => setOpen((o) => !o)}>
        <span style={{ width: 7, height: 7, borderRadius: '50%', border: '1px solid currentColor', display: 'inline-block', opacity: 0.7 }} />
        <span style={{ letterSpacing: '0.06em', fontWeight: 500 }}>{cur.label}</span>
        <span style={{ fontSize: 9, opacity: 0.7, transform: open ? 'rotate(180deg)' : 'none', transition: 'transform .15s' }}>▼</span>
      </button>
      {open && (
        <div className="pp-langmenu" role="listbox">
          {LANGS.map((l) => (
            <button key={l.code} type="button" role="option" aria-selected={l.code === lang}
                    className={'pp-langopt' + (l.code === lang ? ' is-active' : '')}
                    onClick={() => { setLang(l.code); setOpen(false); }}>
              <span style={{ width: 24, color: l.code === lang ? THEME.red : 'var(--mute)' }}>{l.label}</span>
              <span>{l.native}</span>
            </button>
          ))}
        </div>
      )}
    </div>
  );
}

// ──────────────────────────────────────────────────────────────
// Dictionaries
// ──────────────────────────────────────────────────────────────
const I18N = {
  // ── navigation labels ───────────────────────────────────────
  nav: {
    en: { main: 'Main', about: 'About me', cv: 'CV', projects: 'Projects', photographs: 'Photographs', essays: 'Essays', contact: 'Contact' },
    uk: { main: 'Головна', about: 'Про мене', cv: 'Резюме', projects: 'Проєкти', photographs: 'Фотографії', essays: 'Есеї', contact: 'Контакти' },
    ru: { main: 'Главная', about: 'Обо мне', cv: 'Резюме', projects: 'Проекты', photographs: 'Фотографии', essays: 'Эссе', contact: 'Контакты' },
    sk: { main: 'Domov', about: 'O mne', cv: 'Životopis', projects: 'Projekty', photographs: 'Fotografie', essays: 'Eseje', contact: 'Kontakt' },
    sv: { main: 'Hem', about: 'Om mig', cv: 'CV', projects: 'Projekt', photographs: 'Fotografier', essays: 'Essäer', contact: 'Kontakt' },
  },

  // ── shared chrome (footer, ai-note) ─────────────────────────
  chrome: {
    en: { aiNote: 'Machine-translated by AI — the original of this page is in English.' },
    uk: { aiNote: 'Автоматичний переклад, виконаний ШІ — оригінал цієї сторінки англійською.' },
    ru: { aiNote: 'Автоматический перевод, выполненный ИИ — оригинал этой страницы на английском.' },
    sk: { aiNote: 'Strojovo preložené umelou inteligenciou — originál tejto stránky je v angličtine.' },
    sv: { aiNote: 'Maskinöversatt av AI — originalet på den här sidan är på engelska.' },
  },

  footer: {
    en: { awake: 'currently awake · probably writing', copy: 'V.O.', ver: 'v. 04.26 — last edit: just now' },
    uk: { awake: 'не сплю · мабуть, пишу', copy: 'В.О.', ver: 'вер. 04.26 — остання правка: щойно' },
    ru: { awake: 'не сплю · вероятно, пишу', copy: 'В.О.', ver: 'вер. 04.26 — последняя правка: только что' },
    sk: { awake: 'práve hore · pravdepodobne píšem', copy: 'V.O.', ver: 'v. 04.26 — posledná úprava: práve teraz' },
    sv: { awake: 'vaken just nu · skriver troligen', copy: 'V.O.', ver: 'v. 04.26 — senast ändrad: nyss' },
  },

  // ── home / masthead (Direction B) ───────────────────────────
  home: {
    en: {
      bio: `I do <span class="red">environmental and sustainability science</span>, thrilled about communications, and trying to push the field to consider prioritisation and effectiveness of the sustainability action. The blood of blood of natural sciences. Currently doing my master's at <b>LUCSUS, Lund University</b>, on a Swedish Institute scholarship. Before that: two and a half years modelling warm rocks under the Vienna Basin (GIS/geothermal), two years of synthesis for anti-cancer 2PA fluorescent dyes in Bratislava (organic/analytical chemistry), and several youth education NGOs in Ukraine.`,
      bio2: `My latest work asks whether the environmental damage of wars follows a <span class="red">power law</span>, and what that would mean for longtermist sustainability. Most current predictions of the environmental impact of great power conflict rest on linear extrapolations of known damage — which could be a large policy mistake. I would be glad to talk, whether you have something to say or just want to listen.`,
      currently: 'currently', currentlyVal: 'MSc Sustainability Science', currentlySub: 'LUCSUS · Lund · Year 2/2',
      writes: 'writes about', writesVal: 'sustainability, fieldwork, Ukraine, accidental careers',
      featured: 'Featured photographs', frames: 'frames', viewSeries: 'view series →',
      recent: 'Recent essays', all: (n) => `all ${n} essays →`,
      selected: 'Selected work',
    },
    uk: {
      bio: `Я займаюся <span class="red">наукою про довкілля та сталий розвиток</span>, захоплений комунікацією і намагаюся підштовхнути галузь до питань пріоритизації та ефективності сталих дій. Кров від крові природничих наук. Зараз здобуваю магістратуру в <b>LUCSUS, Лундський університет</b>, як стипендіат Шведського інституту. До цього: два з половиною роки моделювання теплих порід під Віденським басейном (ГІС/геотермія), два роки синтезу протиракових 2PA флуоресцентних барвників у Братиславі (органічна/аналітична хімія) і кілька молодіжних освітніх НГО в Україні.`,
      bio2: `Моя остання робота досліджує, чи підпорядковується екологічна шкода від воєн <span class="red">степеневому закону</span> — і що це означало б для довгострокової сталості. Більшість нинішніх прогнозів екологічного впливу конфлікту великих держав спираються на лінійну екстраполяцію відомих збитків, а це може виявитися великою політичною помилкою. Буду радий поговорити — і якщо вам є що сказати, і якщо просто хочеться послухати.`,
      currently: 'зараз', currentlyVal: 'Магістр сталого розвитку', currentlySub: 'LUCSUS · Лунд · 2/2 рік',
      writes: 'пише про', writesVal: 'сталий розвиток, польову роботу, Україну, випадкові кар’єри',
      featured: 'Обрані фотографії', frames: 'кадрів', viewSeries: 'дивитися серію →',
      recent: 'Останні есеї', all: (n) => `усі ${n} есеї →`,
      selected: 'Обрані роботи',
    },
    ru: {
      bio: `Я занимаюсь <span class="red">наукой об окружающей среде и устойчивом развитии</span>, увлечён коммуникацией и пытаюсь подтолкнуть область к вопросам приоритизации и эффективности устойчивых действий. Кровь от крови естественных наук. Сейчас учусь в магистратуре <b>LUCSUS, Лундский университет</b>, стипендиат Шведского института. До этого: два с половиной года моделирования тёплых пород под Венским бассейном (ГИС/геотермия), два года синтеза противораковых 2PA флуоресцентных красителей в Братиславе (органическая/аналитическая химия) и несколько молодёжных образовательных НКО в Украине.`,
      bio2: `Моя последняя работа исследует, подчиняется ли экологический ущерб от войн <span class="red">степенному закону</span> — и что это значило бы для долгосрочной устойчивости. Большинство нынешних прогнозов экологического воздействия конфликта великих держав опираются на линейную экстраполяцию известного ущерба, а это может оказаться крупной политической ошибкой. Буду рад поговорить — и если вам есть что сказать, и если просто хочется послушать.`,
      currently: 'сейчас', currentlyVal: 'Магистр устойчивого развития', currentlySub: 'LUCSUS · Лунд · 2/2 год',
      writes: 'пишет о', writesVal: 'устойчивом развитии, полевой работе, Украине, случайных карьерах',
      featured: 'Избранные фотографии', frames: 'кадров', viewSeries: 'смотреть серию →',
      recent: 'Последние эссе', all: (n) => `все ${n} эссе →`,
      selected: 'Избранные работы',
    },
    sk: {
      bio: `Venujem sa <span class="red">environmentálnej vede a udržateľnosti</span>, nadchýna ma komunikácia a snažím sa posunúť odbor k otázkam prioritizácie a účinnosti udržateľného konania. Krv z krvi prírodných vied. Momentálne študujem magisterský program na <b>LUCSUS, Lundská univerzita</b>, ako štipendista Švédskeho inštitútu. Predtým: dva a pol roka modelovania teplých hornín pod Viedenskou panvou (GIS/geotermia), dva roky syntézy protirakovinových 2PA fluorescenčných farbív v Bratislave (organická/analytická chémia) a niekoľko mládežníckych vzdelávacích NGO na Ukrajine.`,
      bio2: `Moja najnovšia práca skúma, či environmentálne škody z vojen sledujú <span class="red">mocninový zákon</span> — a čo by to znamenalo pre dlhodobú udržateľnosť. Väčšina súčasných predpovedí environmentálneho dopadu konfliktu veľmocí stojí na lineárnej extrapolácii známych škôd, čo môže byť veľká politická chyba. Rád sa porozprávam — či už máte čo povedať, alebo si len chcete vypočuť.`,
      currently: 'teraz', currentlyVal: 'Mgr. veda o udržateľnosti', currentlySub: 'LUCSUS · Lund · 2/2 rok',
      writes: 'píše o', writesVal: 'udržateľnosti, terénnej práci, Ukrajine, náhodných kariérach',
      featured: 'Vybrané fotografie', frames: 'záberov', viewSeries: 'pozrieť sériu →',
      recent: 'Najnovšie eseje', all: (n) => `všetkých ${n} esejí →`,
      selected: 'Vybraná práca',
    },
    sv: {
      bio: `Jag sysslar med <span class="red">miljö- och hållbarhetsvetenskap</span>, brinner för kommunikation och försöker föra fältet mot frågor om prioritering och effektivitet i hållbarhetsarbetet. Blod av naturvetenskapens blod. Läser just nu min master vid <b>LUCSUS, Lunds universitet</b>, med stipendium från Svenska institutet. Dessförinnan: två och ett halvt år med modellering av varma bergarter under Wienbäckenet (GIS/geotermi), två år av syntes av cancerhämmande 2PA-fluorescerande färgämnen i Bratislava (organisk/analytisk kemi), och flera ungdomsutbildnings-NGO:er i Ukraina.`,
      bio2: `Mitt senaste arbete undersöker om krigens miljöskador följer en <span class="red">potenslag</span> — och vad det i så fall skulle betyda för långsiktig hållbarhet. De flesta nuvarande prognoser för stormaktskonflikters miljöpåverkan vilar på linjär extrapolering av kända skador, vilket kan vara ett stort policymisstag. Jag pratar gärna — oavsett om du har något att säga eller bara vill lyssna.`,
      currently: 'just nu', currentlyVal: 'Master i hållbarhetsvetenskap', currentlySub: 'LUCSUS · Lund · år 2/2',
      writes: 'skriver om', writesVal: 'hållbarhet, fältarbete, Ukraina, oavsiktliga karriärer',
      featured: 'Utvalda fotografier', frames: 'bildrutor', viewSeries: 'visa serie →',
      recent: 'Senaste essäer', all: (n) => `alla ${n} essäer →`,
      selected: 'Utvalt arbete',
    },
  },

  // ── about ────────────────────────────────────────────────────
  about: {
    en: {
      kicker: '~/ostroukhov/about',
      heading: `I was born in <span class="pp-em">Donetsk</span>. A lovely city, was at least.`,
      prose: [
        `My family left in 2018. Kyiv for a while, then Bratislava for university: chemistry first, because a professor at my school said I was good at it and offered a job that covered the study costs. At eighteen that is a sufficient reason. I was good at it — but the positive impact seemed limited.`,
        `So I continued into environmental studies, finished the bachelor's at the top of my year (avg. 1.00, 99th percentile), and accidentally became a research assistant in a geology lab on the side. <span class="red">One degree, and a lot of work in parallel.</span>`,
        `For two and a half years I helped build a play-fairway system for low-temperature geothermal exploration in the Vienna Basin. ArcGIS, ArcPy, a lot of CorelDraw at midnight. Meanwhile, in the lab, I was synthesising thiazole-orange derivatives that fluoresce in the near-infrared — the rare kind of chemistry that actually involves colourful liquids, and a candidate for photodynamic cancer therapy.`,
        `In 2025 I took a Swedish Institute scholarship to Lund and started a master's in sustainability science. I came here because I had begun to suspect that the bottleneck on solving humanity's problems is not the chemistry or the geology, but the institutions. I still suspect this, and am actively trying to find out if I am wrong.`,
        `Outside of all that: I co-founded two Ukrainian non-formal education NGOs (<i>ProSvita</i>, then <i>Media Bober</i>), where I edited and wrote and stood in front of rooms of teenagers and tried to teach them what a primary source is. I currently help run <b>Effective Altruism Lund</b> and represent students on several university boards. I also photograph nature and activist protests. I read more than is healthy and write less than I should.`,
        `<span class="red">If you are looking for an elevator pitch:</span> I am an environmental scientist who can also do chemistry, GIS, and edit your prose. I am most useful at the boundary between a lab and a policy memo.`,
      ],
      glanceLabel: 'at a glance',
      glance: [['born', '2004 · Donetsk, UA'], ['now', 'Lund, SE'], ['doing', 'MSc, sustainability sci.'], ['was', 'geothermal · photochem.'], ['writes', 'essays · fieldnotes'], ['shoots', 'digital full frame, 35mm']],
      citiesLabel: 'cities · in order',
      cities: ['Donetsk, UA · 2004 — 2018', 'Kyiv, UA · 2018 — 2022', 'Bratislava, SK · 2022 — 2025', 'Ostrava, CZ · 2023 — 2025', 'Lund, SE · 2025 — now'],
      langLabel: 'languages',
      langNames: ['Ukrainian','Russian','English','Slovak','Swedish','Spanish','German'],
      wrongLabel: 'known to be wrong about',
      wrong: ['How long admin work takes.', 'The number of essays I will finish this year.', 'Swedish prepositions, all of them.'],
    },
    uk: {
      kicker: '~/ostroukhov/про-мене',
      heading: `Я народився в <span class="pp-em">Донецьку</span>. Гарне місто — принаймні було.`,
      prose: [
        `Моя родина виїхала 2018-го. Спершу Київ, потім Братислава на навчання: хімія першою, бо професор у школі сказав, що мені вона дається, і запропонував роботу, яка покривала витрати на навчання. У вісімнадцять це достатня причина. Мені вона давалася — але позитивний вплив здавався обмеженим.`,
        `Тож я продовжив в екологічних студіях, закінчив бакалаврат найкращим на курсі (середній 1.00, 99-й перцентиль) і принагідно став асистентом-дослідником у геологічній лабораторії. <span class="red">Один диплом — і багато роботи паралельно.</span>`,
        `Два з половиною роки я допомагав будувати play-fairway систему для низькотемпературної геотермальної розвідки у Віденському басейні. ArcGIS, ArcPy, багато CorelDraw опівночі. Паралельно в лабораторії я синтезував похідні тіазолового оранжевого, що флуоресціюють у ближньому інфрачервоному — рідкісний різновид хімії, який справді має справу з кольоровими рідинами, і кандидат для фотодинамічної терапії раку.`,
        `2025 року я отримав стипендію Шведського інституту до Лунда й розпочав магістратуру з науки про сталий розвиток. Я приїхав сюди, бо почав підозрювати, що вузьке місце у розв'язанні проблем людства — не хімія і не геологія, а інституції. Я досі так вважаю і активно намагаюся з'ясувати, чи не помиляюся.`,
        `Поза всім цим: я співзаснував дві українські НГО неформальної освіти (<i>ProSvita</i>, потім <i>Media Bober</i>), де редагував, писав і стояв перед аудиторіями підлітків, намагаючись пояснити, що таке першоджерело. Зараз допомагаю керувати <b>Effective Altruism Lund</b> і представляю студентів у кількох університетських радах. Також фотографую природу та акції протесту. Читаю більше, ніж корисно, і пишу менше, ніж мав би.`,
        `<span class="red">Якщо потрібен короткий пітч:</span> я науковець про довкілля, який також вміє в хімію, ГІС і редагування текстів. Найкорисніший я на межі між лабораторією і policy-запискою.`,
      ],
      glanceLabel: 'коротко',
      glance: [['народився', '2004 · Донецьк, UA'], ['зараз', 'Лунд, SE'], ['роблю', 'магістр, сталий розвиток'], ['було', 'геотермія · фотохімія'], ['пише', 'есеї · польові нотатки'], ['знімає', 'цифра, повний кадр, 35мм']],
      citiesLabel: 'міста · по черзі',
      cities: ['Донецьк, UA · 2004 — 2018', 'Київ, UA · 2018 — 2022', 'Братислава, SK · 2022 — 2025', 'Острава, CZ · 2023 — 2025', 'Лунд, SE · 2025 — зараз'],
      langLabel: 'мови',
      langNames: ['Українська','Російська','Англійська','Словацька','Шведська','Іспанська','Німецька'],
      wrongLabel: 'у чому я зазвичай помиляюся',
      wrong: ['Скільки часу займає адміністративна робота.', 'Скільки есеїв я допишу цього року.', 'Шведські прийменники, усі без винятку.'],
    },
    ru: {
      kicker: '~/ostroukhov/обо-мне',
      heading: `Я родился в <span class="pp-em">Донецке</span>. Хороший город — по крайней мере, был.`,
      prose: [
        `Моя семья уехала в 2018-м. Сначала Киев, потом Братислава на учёбу: химия первой, потому что профессор в школе сказал, что мне она даётся, и предложил работу, покрывавшую расходы на обучение. В восемнадцать это достаточная причина. Мне она давалась — но положительный эффект казался ограниченным.`,
        `Так что я продолжил в экологических исследованиях, окончил бакалавриат лучшим на курсе (средний 1.00, 99-й перцентиль) и попутно стал ассистентом-исследователем в геологической лаборатории. <span class="red">Один диплом — и много работы параллельно.</span>`,
        `Два с половиной года я помогал строить play-fairway систему для низкотемпературной геотермальной разведки в Венском бассейне. ArcGIS, ArcPy, много CorelDraw за полночь. Параллельно в лаборатории я синтезировал производные тиазолового оранжевого, флуоресцирующие в ближнем инфракрасном — редкий вид химии, который действительно имеет дело с цветными жидкостями, и кандидат для фотодинамической терапии рака.`,
        `В 2025 году я получил стипендию Шведского института в Лунд и начал магистратуру по науке об устойчивом развитии. Я приехал сюда, потому что начал подозревать, что узкое место в решении проблем человечества — не химия и не геология, а институции. Я по-прежнему так думаю и активно пытаюсь выяснить, не ошибаюсь ли.`,
        `Помимо всего этого: я соосновал две украинские НКО неформального образования (<i>ProSvita</i>, затем <i>Media Bober</i>), где редактировал, писал и стоял перед аудиториями подростков, пытаясь объяснить, что такое первоисточник. Сейчас помогаю руководить <b>Effective Altruism Lund</b> и представляю студентов в нескольких университетских советах. Ещё фотографирую природу и акции протеста. Читаю больше, чем полезно, и пишу меньше, чем следовало бы.`,
        `<span class="red">Если нужен короткий питч:</span> я учёный об окружающей среде, который также умеет в химию, ГИС и редактуру текстов. Полезнее всего я на границе между лабораторией и policy-запиской.`,
      ],
      glanceLabel: 'вкратце',
      glance: [['родился', '2004 · Донецк, UA'], ['сейчас', 'Лунд, SE'], ['делаю', 'магистр, устойчивое развитие'], ['было', 'геотермия · фотохимия'], ['пишет', 'эссе · полевые заметки'], ['снимает', 'цифра, полный кадр, 35мм']],
      citiesLabel: 'города · по порядку',
      cities: ['Донецк, UA · 2004 — 2018', 'Киев, UA · 2018 — 2022', 'Братислава, SK · 2022 — 2025', 'Острава, CZ · 2023 — 2025', 'Лунд, SE · 2025 — сейчас'],
      langLabel: 'языки',
      langNames: ['Украинский','Русский','Английский','Словацкий','Шведский','Испанский','Немецкий'],
      wrongLabel: 'в чём я обычно ошибаюсь',
      wrong: ['Сколько времени занимает административная работа.', 'Сколько эссе я допишу в этом году.', 'Шведские предлоги, все без исключения.'],
    },
    sk: {
      kicker: '~/ostroukhov/o-mne',
      heading: `Narodil som sa v <span class="pp-em">Donecku</span>. Krásne mesto — aspoň bývalo.`,
      prose: [
        `Rodina odišla v roku 2018. Najprv Kyjev, potom Bratislava na štúdium: najskôr chémia, lebo profesor na mojej škole povedal, že mi ide, a ponúkol prácu, ktorá pokryla náklady na štúdium. V osemnástich je to dostatočný dôvod. Naozaj mi šla — ale pozitívny dopad sa zdal obmedzený.`,
        `Tak som pokračoval v environmentálnych štúdiách, dokončil bakalára ako najlepší v ročníku (priemer 1.00, 99. percentil) a popri tom sa mimochodom stal výskumným asistentom v geologickom laboratóriu. <span class="red">Jeden titul a veľa práce popri ňom.</span>`,
        `Dva a pol roka som pomáhal stavať play-fairway systém pre nízkoteplotný geotermálny prieskum vo Viedenskej panve. ArcGIS, ArcPy, veľa CorelDraw o polnoci. Medzitým som v laboratóriu syntetizoval deriváty tiazolovej oranžovej, ktoré fluoreskujú v blízkej infračervenej oblasti — vzácny druh chémie, ktorý naozaj pracuje s farebnými kvapalinami, a kandidát na fotodynamickú liečbu rakoviny.`,
        `V roku 2025 som získal štipendium Švédskeho inštitútu do Lundu a začal magisterské štúdium vedy o udržateľnosti. Prišiel som sem, lebo som začal tušiť, že úzkym miestom pri riešení problémov ľudstva nie je chémia ani geológia, ale inštitúcie. Stále si to myslím a aktívne zisťujem, či sa nemýlim.`,
        `Okrem toho všetkého: spoluzaložil som dve ukrajinské NGO neformálneho vzdelávania (<i>ProSvita</i>, potom <i>Media Bober</i>), kde som redigoval, písal a stál pred miestnosťami plnými tínedžerov a snažil sa im vysvetliť, čo je primárny zdroj. Momentálne pomáham viesť <b>Effective Altruism Lund</b> a zastupujem študentov v niekoľkých univerzitných radách. Fotografujem tiež prírodu a protestné akcie. Čítam viac, než je zdravé, a píšem menej, než by som mal.`,
        `<span class="red">Ak hľadáte krátku vizitku:</span> som environmentálny vedec, ktorý vie aj chémiu, GIS a zredigovať váš text. Najužitočnejší som na hranici medzi laboratóriom a policy memom.`,
      ],
      glanceLabel: 'v skratke',
      glance: [['narodený', '2004 · Doneck, UA'], ['teraz', 'Lund, SE'], ['robí', 'Mgr., udržateľnosť'], ['bolo', 'geotermia · fotochémia'], ['píše', 'eseje · terénne poznámky'], ['fotí', 'digitál, full frame, 35 mm']],
      citiesLabel: 'mestá · po poradí',
      cities: ['Doneck, UA · 2004 — 2018', 'Kyjev, UA · 2018 — 2022', 'Bratislava, SK · 2022 — 2025', 'Ostrava, CZ · 2023 — 2025', 'Lund, SE · 2025 — teraz'],
      langLabel: 'jazyky',
      langNames: ['Ukrajinčina','Ruština','Angličtina','Slovenčina','Švédčina','Španielčina','Nemčina'],
      wrongLabel: 'v čom sa pravidelne mýlim',
      wrong: ['Ako dlho trvá administratíva.', 'Koľko esejí tento rok dokončím.', 'Švédske predložky, úplne všetky.'],
    },
    sv: {
      kicker: '~/ostroukhov/om-mig',
      heading: `Jag föddes i <span class="pp-em">Donetsk</span>. En vacker stad — det var den i alla fall.`,
      prose: [
        `Min familj lämnade 2018. Kyiv ett tag, sedan Bratislava för universitetet: kemi först, för att en professor på min skola sa att jag var bra på det och erbjöd ett jobb som täckte studiekostnaderna. Vid arton är det ett tillräckligt skäl. Jag var bra på det — men den positiva effekten kändes begränsad.`,
        `Så jag fortsatte in i miljövetenskap, tog kandidatexamen bäst i min årskull (snitt 1.00, 99:e percentilen) och blev på köpet forskningsassistent i ett geologilabb vid sidan av. <span class="red">En examen, och mycket arbete parallellt.</span>`,
        `I två och ett halvt år hjälpte jag till att bygga ett play-fairway-system för lågtemperaturgeotermisk prospektering i Wienbäckenet. ArcGIS, ArcPy, mycket CorelDraw vid midnatt. Samtidigt syntetiserade jag i labbet tiazolorange-derivat som fluorescerar i nära infrarött — den sällsynta sortens kemi som faktiskt handlar om färgglada vätskor, och en kandidat för fotodynamisk cancerbehandling.`,
        `2025 tog jag ett stipendium från Svenska institutet till Lund och började en master i hållbarhetsvetenskap. Jag kom hit för att jag hade börjat misstänka att flaskhalsen för att lösa mänsklighetens problem inte är kemin eller geologin, utan institutionerna. Jag misstänker det fortfarande, och försöker aktivt ta reda på om jag har fel.`,
        `Utöver allt detta: jag var med och grundade två ukrainska NGO:er för icke-formell utbildning (<i>ProSvita</i>, sedan <i>Media Bober</i>), där jag redigerade och skrev och stod framför rum fulla av tonåringar och försökte lära dem vad en primärkälla är. Just nu hjälper jag till att driva <b>Effective Altruism Lund</b> och representerar studenter i flera universitetsstyrelser. Jag fotograferar också natur och aktivistprotester. Jag läser mer än vad som är nyttigt och skriver mindre än jag borde.`,
        `<span class="red">Om du vill ha en hisspitch:</span> jag är en miljövetare som också kan kemi, GIS och redigera din text. Jag är mest användbar i gränslandet mellan ett labb och ett policy-PM.`,
      ],
      glanceLabel: 'i korthet',
      glance: [['född', '2004 · Donetsk, UA'], ['nu', 'Lund, SE'], ['gör', 'master, hållbarhet'], ['var', 'geotermi · fotokemi'], ['skriver', 'essäer · fältanteckningar'], ['fotar', 'digitalt, fullformat, 35 mm']],
      citiesLabel: 'städer · i ordning',
      cities: ['Donetsk, UA · 2004 — 2018', 'Kyiv, UA · 2018 — 2022', 'Bratislava, SK · 2022 — 2025', 'Ostrava, CZ · 2023 — 2025', 'Lund, SE · 2025 — nu'],
      langLabel: 'språk',
      langNames: ['Ukrainska','Ryska','Engelska','Slovakiska','Svenska','Spanska','Tyska'],
      wrongLabel: 'vad jag brukar ha fel om',
      wrong: ['Hur lång tid administration tar.', 'Hur många essäer jag hinner klart i år.', 'Svenska prepositioner, allihop.'],
    },
  },

  // ── contact ──────────────────────────────────────────────────
  contact: {
    en: {
      kicker: '~/ostroukhov/contact',
      heading: `<span class="pp-em">Write to me</span>. I read everything; <span style="color:var(--mute)">I reply to most.</span>`,
      lEmail: 'email', lPhone: 'phone', lSignal: 'signal', phoneNote: 'preferred', lPhysical: 'physical', physicalVal: 'Lund, Skåne · Sweden', lLocal: 'local time', lElsewhere: 'elsewhere', lOldPortfolio: 'old portfolio (canva)',
      goodLabel: 'good reasons to write',
      good: ['You read something here and disagreed precisely.', 'Research collaboration — climate, energy, sustainability.', "You're in Lund and want a coffee.", 'You want to commission an essay or a piece of editing.', 'You are a Ukrainian student looking for tutoring.'],
      worseLabel: 'worse reasons',
      worse: ['“Quick AI question.”', '“Just hopping on a call.”', 'Crypto, NFTs, Web3.', 'You want to argue about Russia in my replies.'],
      respLabel: 'response time',
      respVal: '≤ 48h in term time. Up to a week in field season. Honest.',
    },
    uk: {
      kicker: '~/ostroukhov/контакти',
      heading: `<span class="pp-em">Напишіть мені</span>. Я читаю все; <span style="color:var(--mute)">відповідаю на більшість.</span>`,
      lEmail: 'пошта', lPhone: 'телефон', lSignal: 'signal', phoneNote: 'бажано', lPhysical: 'фізично', physicalVal: 'Лунд, Сконе · Швеція', lLocal: 'місцевий час', lElsewhere: 'деінде', lOldPortfolio: 'старе портфоліо (canva)',
      goodLabel: 'добрі причини написати',
      good: ['Ви прочитали тут щось і точно не погодилися.', 'Наукова співпраця — клімат, енергетика, сталий розвиток.', 'Ви в Лунді й хочете кави.', 'Ви хочете замовити есей чи редагування.', 'Ви український студент, який шукає репетитора.'],
      worseLabel: 'гірші причини',
      worse: ['«Швидке питання про ШІ».', '«Просто заскочити на дзвінок».', 'Крипта, NFT, Web3.', 'Ви хочете сперечатися про Росію в моїх відповідях.'],
      respLabel: 'час відповіді',
      respVal: '≤ 48 год під час семестру. До тижня в польовий сезон. Чесно.',
    },
    ru: {
      kicker: '~/ostroukhov/контакты',
      heading: `<span class="pp-em">Напишите мне</span>. Я читаю всё; <span style="color:var(--mute)">отвечаю на большинство.</span>`,
      lEmail: 'почта', lPhone: 'телефон', lSignal: 'signal', phoneNote: 'лучше', lPhysical: 'физически', physicalVal: 'Лунд, Сконе · Швеция', lLocal: 'местное время', lElsewhere: 'в других местах', lOldPortfolio: 'старое портфолио (canva)',
      goodLabel: 'хорошие причины написать',
      good: ['Вы прочитали здесь что-то и точно не согласились.', 'Научное сотрудничество — климат, энергетика, устойчивое развитие.', 'Вы в Лунде и хотите кофе.', 'Вы хотите заказать эссе или редактуру.', 'Вы украинский студент, ищущий репетитора.'],
      worseLabel: 'причины похуже',
      worse: ['«Быстрый вопрос про ИИ».', '«Просто запрыгнуть на созвон».', 'Крипта, NFT, Web3.', 'Вы хотите спорить о России в моих ответах.'],
      respLabel: 'время ответа',
      respVal: '≤ 48 ч в учебное время. До недели в полевой сезон. Честно.',
    },
    sk: {
      kicker: '~/ostroukhov/kontakt',
      heading: `<span class="pp-em">Napíšte mi</span>. Čítam všetko; <span style="color:var(--mute)">odpovedám na väčšinu.</span>`,
      lEmail: 'e-mail', lPhone: 'telefón', lSignal: 'signal', phoneNote: 'radšej', lPhysical: 'fyzicky', physicalVal: 'Lund, Skåne · Švédsko', lLocal: 'miestny čas', lElsewhere: 'inde', lOldPortfolio: 'staré portfólio (canva)',
      goodLabel: 'dobré dôvody napísať',
      good: ['Niečo ste tu prečítali a presne ste nesúhlasili.', 'Výskumná spolupráca — klíma, energetika, udržateľnosť.', 'Ste v Lunde a chcete kávu.', 'Chcete si objednať esej alebo redakciu textu.', 'Ste ukrajinský študent a hľadáte doučovanie.'],
      worseLabel: 'horšie dôvody',
      worse: ['„Rýchla otázka o AI.“', '„Len skočiť na hovor.“', 'Krypto, NFT, Web3.', 'Chcete sa v mojich odpovediach hádať o Rusku.'],
      respLabel: 'čas odozvy',
      respVal: '≤ 48 h počas semestra. Až týždeň v terénnej sezóne. Úprimne.',
    },
    sv: {
      kicker: '~/ostroukhov/kontakt',
      heading: `<span class="pp-em">Skriv till mig</span>. Jag läser allt; <span style="color:var(--mute)">jag svarar på det mesta.</span>`,
      lEmail: 'e-post', lPhone: 'telefon', lSignal: 'signal', phoneNote: 'helst', lPhysical: 'fysiskt', physicalVal: 'Lund, Skåne · Sverige', lLocal: 'lokal tid', lElsewhere: 'annorstädes', lOldPortfolio: 'gammal portfölj (canva)',
      goodLabel: 'goda skäl att skriva',
      good: ['Du läste något här och höll inte med, precist.', 'Forskningssamarbete — klimat, energi, hållbarhet.', 'Du är i Lund och vill ta en kaffe.', 'Du vill beställa en essä eller en redigering.', 'Du är ukrainsk student och söker handledning.'],
      worseLabel: 'sämre skäl',
      worse: ['”Snabb AI-fråga.”', '”Bara hoppa på ett samtal.”', 'Krypto, NFT:er, Web3.', 'Du vill bråka om Ryssland i mina svar.'],
      respLabel: 'svarstid',
      respVal: '≤ 48 h under terminen. Upp till en vecka i fältsäsong. Ärligt.',
    },
  },
};

Object.assign(window, { LANGS, LangCtx, useLang, LangProvider, tr, LangSwitch, I18N });
