/* ============================================================
   PROJECT DATA + I18N - trilingual FR / EN / LU
   `motif` keys the hover/preview art (evokes the title - no
   fake screenshots). Real images live on the project pages.
   ============================================================ */

window.PROJECTS = [
  {
    id: "heat",
    motif: "heat",
    video: "portfolio/videos/ICU.mp4",
    year: "2026",
    live: null,
    status: { fr: "En cours", en: "In progress", lu: "Am Gaang" },
    fr: {
      title: "Repérage des îlots de chaleur urbain via LiDAR et OCS",
      word: "Chaleur",
      desc: "Détection des îlots de chaleur urbains à partir de données LiDAR et d'occupation du sol (OCS).",
      tags: ["LiDAR", "OCS", "Climat"],
    },
    en: {
      title: "Urban Heat-Island Detection via LiDAR & Land Cover",
      word: "Heat",
      desc: "Detecting urban heat islands from LiDAR data and land-cover classification (OCS).",
      tags: ["LiDAR", "Land cover", "Climate"],
    },
    lu: {
      title: "Erkennung vun urbanen Hëtzt-Ilotten mat LiDAR an OCS",
      word: "Hëtzt",
      desc: "Erkennung vun urbanen Hëtzt-Ilotten op Basis vu LiDAR-Donnéeën an Buedebedeckung (OCS).",
      tags: ["LiDAR", "OCS", "Klima"],
    },
  },
  {
    id: "drone",
    motif: "drone",
    video: "portfolio/videos/DRONES.mp4",
    year: "2025",
    live: null,
    fr: {
      title: "Simulateur drone OSM",
      word: "Drone",
      desc: "Simulateur géographique de survol en drone, reconstituant le terrain à partir des données OSM & Google.",
      tags: ["Cartographie", "OSM", "3D"],
    },
    en: {
      title: "OSM Drone Simulator",
      word: "Drone",
      desc: "Geographic drone-flyover simulator that reconstructs terrain from OSM & Google data.",
      tags: ["Mapping", "OSM", "3D"],
    },
    lu: {
      title: "OSM Drone-Simulator",
      word: "Drone",
      desc: "Geographesche Simulator fir en Dronenuerfluch, deen d'Terrain aus OSM- a Google-Donnéeën nobaut.",
      tags: ["Kartographie", "OSM", "3D"],
    },
  },
  {
    id: "parking",
    motif: "parking",
    video: "portfolio/videos/PARKING.mp4",
    year: "2025",
    live: null,
    fr: {
      title: "Optimisation de stationnement",
      word: "Parking",
      desc: "Simulateur de création de parkings automatisé : implantation et calepinage générés à la volée.",
      tags: ["Automatisation", "CAO"],
    },
    en: {
      title: "Parking Optimisation",
      word: "Parking",
      desc: "Automated parking-layout generator: placement and bay patterns computed on the fly.",
      tags: ["Automation", "CAD"],
    },
    lu: {
      title: "Parkraum-Optiméierung",
      word: "Parking",
      desc: "Automatiséierte Simulator fir Parkingen ze plangen: Implantatioun a Markéierung live generéiert.",
      tags: ["Automatisatioun", "CAO"],
    },
  },
  {
    id: "dia",
    motif: "flow",
    year: "2024",
    live: null,
    fr: {
      title: "Automatisation du traitement des DIA",
      word: "DIA",
      desc: "Traitement automatisé des Déclarations d'Intention d'Aliéner, de la réception à l'instruction.",
      tags: ["Urbanisme", "Pipeline"],
    },
    en: {
      title: "Automated DIA Processing",
      word: "DIA",
      desc: "Automated processing of French pre-emption declarations (DIA), from intake to review.",
      tags: ["Urban planning", "Pipeline"],
    },
    lu: {
      title: "Automatiséierung DIA",
      word: "DIA",
      desc: "Automatiséiert Behandlung vun den « Déclarations d'Intention d'Aliéner », vum Empfang bis zur Instruktioun.",
      tags: ["Stadtplanung", "Pipeline"],
    },
  },
  {
    id: "cu",
    motif: "city",
    year: "2026",
    live: null,
    status: { fr: "En cours", en: "In progress", lu: "Am Gaang" },
    fr: {
      title: "Simplification de l'instruction droit des sols",
      word: "CU",
      desc: "Instruction automatisée des CUa / CUb et simulateur de potentiel constructible pour les administrés, basé sur le PLUiH.",
      tags: ["PLUiH", "Simulateur"],
    },
    en: {
      title: "Streamlined Planning-Permit Review",
      word: "CU",
      desc: "Automated CUa / CUb instruction and a buildable-potential simulator for citizens, powered by the local plan (PLUiH).",
      tags: ["PLUiH", "Simulator"],
    },
    lu: {
      title: "Vereinfachung vun der Baugenehmegung",
      word: "CU",
      desc: "Automatiséiert Instruktioun vun CUa / CUb an e Simulator vum Baupotenzial fir d'Bierger, baséiert um PLUiH.",
      tags: ["PLUiH", "Simulator"],
    },
  },
  {
    id: "triangulation",
    motif: "triangulate",
    video: "portfolio/videos/TRIANGULATION_FRELONS.mp4",
    year: "2024",
    live: null,
    fr: {
      title: "Repérage des nids de frelons asiatiques par triangulation",
      word: "Frelons",
      desc: "Localisation des nids de frelons asiatiques par triangulation des observations de terrain.",
      tags: ["Géolocalisation", "Biodiversité"],
    },
    en: {
      title: "Hornet-Nest Triangulation",
      word: "Hornets",
      desc: "Locating Asian-hornet nests by triangulating field observations.",
      tags: ["Geolocation", "Biodiversity"],
    },
    lu: {
      title: "Hornessnëster-Triangulatioun",
      word: "Frelons",
      desc: "Lokaliséierung vun asiateschen Hornessnëster duerch Triangulatioun vun Terrainsbeobachtungen.",
      tags: ["Geolokaliséierung", "Biodiversitéit"],
    },
  },
  {
    id: "traps",
    motif: "traps",
    year: "2024",
    live: null,
    fr: {
      title: "Optimisation de l'installation de dispositifs de piégeage frelons asiatiques",
      word: "Pièges",
      desc: "Cartographie de l'optimum de positionnement des pièges à frelons asiatiques sur un territoire.",
      tags: ["Cartographie", "Optimisation"],
    },
    en: {
      title: "Optimal Hornet-Trap Placement",
      word: "Traps",
      desc: "Mapping the optimal placement of Asian-hornet traps across a territory.",
      tags: ["Mapping", "Optimization"],
    },
    lu: {
      title: "Optimal Plazéierung vun Hornessfalen",
      word: "Pièges",
      desc: "Kartographie vun der optimaler Plazéierung vun Hornessfalen op engem Territoire.",
      tags: ["Kartographie", "Optiméierung"],
    },
  },
  {
    id: "fuel",
    motif: "fuel",
    video: "portfolio/videos/CARBURANT.mp4",
    year: "2023",
    live: null,
    fr: {
      title: "Carburant Malin",
      word: "Carburant",
      desc: "Outil open-source de recherche des prix de carburant les moins chers autour de soi.",
      tags: ["Open-source", "Data"],
    },
    en: {
      title: "Fuel Finder",
      word: "Fuel",
      desc: "Open-source tool that finds the cheapest fuel prices around you.",
      tags: ["Open-source", "Data"],
    },
    lu: {
      title: "Sprit-Finder",
      word: "Carburant",
      desc: "Open-Source-Tool fir déi bëllegst Präisser fir Brennstoff an der Ëmgéigend ze fannen.",
      tags: ["Open-source", "Data"],
    },
  },
];

/* ---- CV timeline ---- */
window.RESUME = [
  {
    period: { fr: "2023 - auj.", en: "2023 - now", lu: "2023 - elo" },
    logo: "portfolio/logos/olc-white.png",
    fr: { role: "Directeur urbanisme / habitat et gens du voyage", org: "Communauté de communes Orne Lorraine Confluences", note: "Création d'un Plan Local d'Urbanisme Intercommunal valant Plan Local de l'Habitat (PLUiH), gestion programmes Petites Villes de Demain (+ Opération de Revitalisation du Territoire et Opération Programmée de Rénovation de l'Habitat), concertation et gestion autour des équipements d'accueil des gens du voyage. Gestion plus globale du conseil et de l'accompagnement des élus toutes thématiques de l'urbanisme et de l'habitat (statistique, opérationnel et règlementaire)." },
    en: { role: "Director of Urban Planning / Housing & Travellers", org: "Communauté de communes Orne Lorraine Confluences", note: "Drafted an Intercommunal Local Urban Plan combined with a Local Housing Plan (PLUiH), managed Petites Villes de Demain programmes (plus a Territory Revitalisation Operation and a Programmed Housing Renovation Operation), led consultation and management around facilities for Travellers. Broader advisory role supporting elected officials across all planning and housing topics (statistical, operational and regulatory)." },
    lu: { role: "Direkter Stadtplanung / Logement a Reesend Leit", org: "Communauté de communes Orne Lorraine Confluences", note: "Ausschaffe vun engem Interkommunale Lokale Stadtplang mat Wäert vum Lokale Wunnengsbauplang (PLUiH), Leedung vun de Programmer Petites Villes de Demain (+ Operation zur Revitaliséierung vum Territoire an Programméiert Operatioun zur Wunnengsrenovatioun), Konzertatioun a Verwaltung ronderëm d'Anlagen fir Reesend Leit. Méi global Berodung a Begleedung vun de Gewielten an alle Themen vun der Stadtplanung an dem Wunnen (statistesch, operationell a reglementaresch)." },
  },
  {
    period: { fr: "2021 - 2023", en: "2021 - 2023", lu: "2021 - 2023" },
    logo: "portfolio/logos/metz-white.png",
    fr: { role: "Chargé d'opérations aménagement", org: "Eurométropole de Metz", note: "Urbanisme opérationnel, rédaction de pièces marché et suivi administratif et financier d'opérations sur le plateau de Frescaty et ZAC / ZAE Eurométropolitaines." },
    en: { role: "Development Operations Manager", org: "Eurométropole de Metz", note: "Operational urban planning; drafted procurement documents and managed the administrative and financial follow-up of projects on the Frescaty plateau and Eurometropolis ZAC / ZAE zones." },
    lu: { role: "Operatiounsleeder Aménagement", org: "Eurométropole de Metz", note: "Operationell Stadtplanung; Ausschaffe vu Maartpapeieren an administrative a finanziell Suivi vun Operatiounen op der Plateau de Frescaty an den Eurométropole ZAC / ZAE Zonen." },
  },
  {
    period: { fr: "2019 - 2021", en: "2019 - 2021", lu: "2019 - 2021" },
    logo: "portfolio/logos/thionville-white.png",
    fr: { role: "Chargé de mission puis chef de projet ANRU", org: "Ville de Thionville", note: "Gestion de programme ANRU et politique de la ville (secteurs Côte des Roses et Prés Saint-Pierre / La Milliaire). Rédactions de pièces administrative et suivi technico-financier d'opération de réhabilitation d'envergure en quartiers politique de la ville." },
    en: { role: "Project Officer then ANRU Project Manager", org: "Ville de Thionville", note: "Managed ANRU and urban-policy programmes (Côte des Roses and Prés Saint-Pierre / La Milliaire districts). Drafted administrative documents and provided technical-financial follow-up for large-scale rehabilitation projects in priority urban districts." },
    lu: { role: "Chargé de mission duerno Projetchef ANRU", org: "Ville de Thionville", note: "Leedung vum ANRU-Programm an der Stadtpolitik (Secteuren Côte des Roses a Prés Saint-Pierre / La Milliaire). Ausschaffe vun administrativen Dokumenter an technesch-finanziell Suivi vu grousse Rehabilitatiounsoperatiounen a Quartieren vun der Stadtpolitik." },
  },
  {
    period: { fr: "2013 / 2018", en: "2013 / 2018", lu: "2013 / 2018" },
    logo: "portfolio/logos/ul-white.png",
    fr: { role: "Licence et Master 2 géographie / aménagement du territoire", org: "Université de Lorraine site de Metz", note: "2013 - 2016 : Licence géographie (physique et humaine)\n2016 - 2018 : MASTER 2 Développement Métropolisation et Territoires Transfrontaliers" },
    en: { role: "Bachelor's & Master's in Geography / Regional Planning", org: "Université de Lorraine site de Metz", note: "2013 - 2016: Bachelor's in Geography (physical & human)\n2016 - 2018: Master's in Metropolisation & Cross-Border Territories Development" },
    lu: { role: "Licence a Master 2 Geographie / Raumplanung", org: "Université de Lorraine site de Metz", note: "2013 - 2016: Licence Geographie (physesch a mënschlech)\n2016 - 2018: Master 2 Entwécklung, Metropoliséierung a grenziwwerschreidend Territoiren" },
  },
];

/* ---- UI strings ---- */
window.I18N = {
  fr: {
    statusOpen: "Ouvert aux opportunités",
    heroIntro: "Alter Locus : Etat d'esprit visant à imaginer et façonner le lieu, l'endroit, la place d'aujourd'hui et de demain.",
    portfolioTag: "Portfolio · ’26",
    tagline: "Reponsable de projets en urbanisme, je conçois et développe des outils interactifs pour l'urbanisme, le territoire et l'open-data.",
    scroll: "Défiler",
    navWork: "Projets",
    navCV: "Parcours",
    navAbout: "À propos",
    navContact: "Contact",
    workTitle: ["Quelques projets singuliers...", ""],
    workCount: (n) => `${String(n).padStart(2, "0")} projets · ’23-’26`,
    cvTitle: "Parcours",
    cvKicker: "Parcours",
    aboutTitle: "À propos",
    aboutKicker: "Profil",
    aboutBig: "Je conçois et développe des outils relatifs aux domaines de l'urbanisme et la data géographique de A à Z - du premier prototype à l'interface aboutie et utilisable.",
    aboutP1: "Animé par la volonté d'être acteur de la transformation de nos territoires, j'apprécie particulièrement conjuguer mon expérience sur les trois pilliers de l'urbanisme (statistique, opérationnel et règlementaire) avec mon attrait pour l'intelligence artificielle. ",
    aboutP1m: "",
    facts: [
      ["Focus", "Urbanisme · Data · Build"],
      ["Outils", "Suite Microsoft OFFICE / ARCGIS / QGIS / VS STUDIO CODE / \nADOBE ILLUSTRATOR / PHOTOSHOP / Usager régulier CLAUDE IA - MISTRAL - GEMINI - CHAT GPT"],
      ["Localisation", "GRAVELOTTE - FRANCE"],
      ["Statut", "Ouvert aux opportunités / Curieux de découvrir votre monde professionnel & votre territoire"],
    ],
    units: { km: "kilomètres", m: "mètres", mm: "millimètres", kg: "kilogrammes", g: "grammes", mg: "milligrammes", l: "litres", ml: "millilitres" },
    dist: {
      kicker: "Géographie",
      title: ["Quelle distance", "nous sépare ?"],
      lead: "Mon point de départ : Gravelotte. Entrez l'adresse de votre structure et je calcule l'itinéraire en voiture.",
      placeholder: "Adresse de votre entreprise…",
      button: "Calculer l'itinéraire",
      loading: "Calcul de l'itinéraire…",
      from: "Gravelotte",
      byCar: "en voiture",
      drive: "de trajet",
      notFound: "Adresse introuvable. Précisez la ville ou le pays.",
      error: "Itinéraire indisponible pour le moment.",
      hint: "Essayez « 12 rue de la Paix, Luxembourg »",
    },
    co2: {
      kicker: "Empreinte",
      lead: "Votre visite de ce portfolio représente :",
      of: "de CO₂",
      equiv: "soit l'équivalent de",
      car: "en voiture",
      jet: "en jet privé",
      beer: "de bière produite",
      note: "Estimation live à partir des données chargées et du temps passé sur la page. Détendez-vous, c'est microscopique.",
    },
    contactKicker: "Discutons",
    contactBig: ["Prendre", "contact"],
    contactLine: "Un poste ou un projet en tête ? ",
    linkEmail: "Email",
    linkVisit: "LinkedIn ↗",
    linkTop: "Haut de page ↑",
    copy: "Portfolio",
    preview: "aperçu",
    live: "démo live",
    open: "Ouvrir",
    view: "Voir",
    close: "Fermer",
    pageNote: "Visuels et démo sur la page du projet",
  },
  en: {
    statusOpen: "Open to opportunities",
    heroIntro: "Alter Locus: a mindset aiming to imagine and shape the place, the location, the space of today and tomorrow.",
    portfolioTag: "Portfolio · ’26",
    tagline: "Urban-planning project manager - I design and build interactive tools for planning, territory and open data.",
    scroll: "Scroll",
    navWork: "Work",
    navCV: "Resume",
    navAbout: "About",
    navContact: "Contact",
    workTitle: ["A few unusual projects...", ""],
    workCount: (n) => `${String(n).padStart(2, "0")} projects · ’23-’26`,
    cvTitle: "Resume",
    cvKicker: "Career",
    aboutTitle: "About",
    aboutKicker: "Profile",
    aboutBig: "I design and build tools across urban planning and geographic data from A to Z - from the first prototype to the polished, usable interface.",
    aboutP1: "Driven by the will to be an active part of the transformation of our territories, I especially enjoy combining my experience across the three pillars of urban planning (statistical, operational and regulatory) with my passion for artificial intelligence. ",
    aboutP1m: "",
    facts: [
      ["Focus", "Urban planning · Data · Build"],
      ["Toolkit", "Microsoft OFFICE suite / ARCGIS / QGIS / VS STUDIO CODE / \nADOBE ILLUSTRATOR / PHOTOSHOP / Regular user of CLAUDE AI - MISTRAL - GEMINI - CHAT GPT"],
      ["Based in", "GRAVELOTTE - FRANCE"],
      ["Status", "Open to opportunities / Curious to discover your professional world & your territory"],
    ],
    units: { km: "kilometres", m: "metres", mm: "millimetres", kg: "kilograms", g: "grams", mg: "milligrams", l: "litres", ml: "millilitres" },
    dist: {
      kicker: "Geography",
      title: ["How far apart", "are we?"],
      lead: "My starting point: Gravelotte. Enter your organisation's address and I'll compute the driving route.",
      placeholder: "Your company's address…",
      button: "Get the route",
      loading: "Computing route…",
      from: "Gravelotte",
      byCar: "by car",
      drive: "drive",
      notFound: "Address not found. Add a city or country.",
      error: "Route unavailable right now.",
      hint: "Try “12 rue de la Paix, Luxembourg”",
    },
    co2: {
      kicker: "Footprint",
      lead: "Your visit to this portfolio represents:",
      of: "of CO₂",
      equiv: "the equivalent of",
      car: "by car",
      jet: "by private jet",
      beer: "of beer brewed",
      note: "Live estimate from data loaded and time spent on the page. Relax - it's microscopic.",
    },
    contactKicker: "Let’s talk",
    contactBig: ["Get", "in touch"],
    contactLine: "Have a role or a project in mind? ",
    linkEmail: "Email",
    linkVisit: "LinkedIn ↗",
    linkTop: "Back to top ↑",
    copy: "Portfolio",
    preview: "preview",
    live: "live demo",
    open: "Open",
    view: "View",
    close: "Close",
    pageNote: "Visuals & demo on the project page",
  },
  lu: {
    statusOpen: "Op fir Opportunitéiten",
    heroIntro: "Alter Locus: eng Denkweis déi drop ausgeriicht ass den Ort, d'Plaz vun haut a muer z'erdenken an ze gestalten.",
    portfolioTag: "Portfolio · ’26",
    tagline: "Projetleeder am Beräich Stadtplanung - ech entwéckelen interaktiv Tools fir Raumplanung, Territoire an Open Data.",
    scroll: "Scrollen",
    navWork: "Projeten",
    navCV: "Parcours",
    navAbout: "Iwwer mech",
    navContact: "Kontakt",
    workTitle: ["E puer aussergewéinlech", "Projeten..."],
    workCount: (n) => `${String(n).padStart(2, "0")} Projeten · ’23-’26`,
    cvTitle: "Parcours",
    cvKicker: "Karriär",
    aboutTitle: "Iwwer mech",
    aboutKicker: "Profil",
    aboutBig: "Ech entwéckelen Tools an de Beräicher Stadtplanung a geographesch Donnéeën vun A bis Z - vum éischte Prototyp bis zur fäerdeger, benotzbarer Interface.",
    aboutP1: "Ugedriwwen vun der Wëll, en Acteur vun der Transformatioun vun eisen Territoiren ze sinn, kombinéieren ech gär meng Erfarung op den dräi Pilieren vun der Stadtplanung (statistesch, operationell a reglementaresch) mat menger Begeeschterung fir kënschtlech Intelligenz. ",
    aboutP1m: "",
    facts: [
      ["Focus", "Stadtplanung · Data · Build"],
      ["Tools", "Microsoft OFFICE Suite / ARCGIS / QGIS / VS STUDIO CODE / \nADOBE ILLUSTRATOR / PHOTOSHOP / Reegelméissege Benotzer vu CLAUDE AI - MISTRAL - GEMINI - CHAT GPT"],
      ["Standuert", "GRAVELOTTE - FRANKRÄICH"],
      ["Statut", "Op fir Opportunitéiten / Virwëtzeg fir Är professionell Welt an Äert Territoire z'entdecken"],
    ],
    units: { km: "Kilometer", m: "Meter", mm: "Millimeter", kg: "Kilogramm", g: "Gramm", mg: "Milligramm", l: "Liter", ml: "Milliliter" },
    dist: {
      kicker: "Geographie",
      title: ["Wéi wäit si mir", "auserneen?"],
      lead: "Mäin Ausgangspunkt: Gravelotte. Gitt d'Adress vun Ärer Struktur an, an ech berechnen d'Streck mam Auto.",
      placeholder: "D'Adress vun Ärer Entreprise…",
      button: "Streck berechnen",
      loading: "Streck gëtt berechent…",
      from: "Gravelotte",
      byCar: "mam Auto",
      drive: "Fahrt",
      notFound: "Adress net fonnt. Gitt eng Stad oder e Land un.",
      error: "Streck am Moment net verfügbar.",
      hint: "Probéiert « 12 rue de la Paix, Lëtzebuerg »",
    },
    co2: {
      kicker: "Foussofdrock",
      lead: "Är Visite vun dësem Portfolio entsprécht:",
      of: "CO₂",
      equiv: "dat entsprécht",
      car: "mam Auto",
      jet: "mam Privatjet",
      beer: "Béier produzéiert",
      note: "Live-Schätzung op Basis vun de gelueden Donnéeën an der Zäit op der Säit. Maacht Iech keng Suergen - et ass mikroskopesch.",
    },
    contactKicker: "Schwätze mer",
    contactBig: ["Huelt", "Kontakt"],
    contactLine: "En Poste oder e Projet am Kapp? ",
    linkEmail: "Email",
    linkVisit: "LinkedIn ↗",
    linkTop: "Erop ↑",
    copy: "Portfolio",
    preview: "Apercu",
    live: "Live Demo",
    open: "Opmaachen",
    view: "Kucken",
    close: "Zoumaachen",
    pageNote: "Visuell & Demo op der Projetsäit",
  },
};
