/* global React */
// i18n.jsx — translations for EN / DE / RU.
// DE and RU avoid anglicisms in body prose. Proper nouns (ComfyUI, Flux,
// Kling, Seedance, ElevenLabs, n8n, Web3, NFT, x402, LoRA, Calendly) stay
// as-is. Body text is conversational and rendered one sentence per line.

const STORAGE_KEY = "kev.lang";
const SUPPORTED = ["en", "de", "ru"];

const TR = {
  en: {
    "nav.work": "Work",
    "nav.services": "Services",
    "nav.approach": "Approach",
    "nav.voices": "Voices",
    "nav.cta": "Let’s chat",

    "hero.eyebrow": "Visual Artist · Copywriter · Builder",
    "hero.headline": "Bring your story to life.",
    "hero.sub": "Immortalize your narratives, stories and messages as short films and animations that stay gripping for years.",
    "hero.cta": "Let’s chat",
    "hero.seeWork": "See the work",
    "hero.portraitName": "Kevin Germin",
    "hero.portraitRole": "Director · Copywriter · Builder",

    "worked.label": "Worked For",

    "work.eyebrow": "Selected",
    "work.title": "Frames from the reel.",
    "work.disclaimer": "Following are snippets, not the full film, to preserve privacy.",
    "work.playFull": "Play full video",
    "work.play": "Play",
    "work.pause": "Pause",
    "work.fullscreen": "Fullscreen",
    "work.exitFullscreen": "Exit fullscreen",
    "work.1.tag": "Brand · Snippet",
    "work.1.title": "A brand, told in motion.",
    "work.1.body": "Engaging brand reels are scroll-stoppers. Pair them with a storyline and your brand becomes an arc people want to see episodes of.",
    "work.2.tag": "Personal Brand · Video Portfolio",
    "work.2.title": "A personal brand, told in dynamic frames.",
    "work.2.body": "Whether you want your personal avatar to fight, run, paint, or whatever else you have in mind — I can bring it to life, no matter the complexity.",
    "work.3.tag": "Private · Memory Film",
    "work.3.title": "A life, relived in minutes.",
    "work.3.body": "Animations of someone’s own life — old photographs brought back to motion — are remembered far longer than the photos themselves. It’s easier to revisit a film than to dig through albums every time. In this example, a shining star of the universe walks the birthday guest home after work, where his loved ones surprise him with a journey back to childhood and a meeting with his late father. His father gently sets him on the motorbike, and his whole life flashes by: growing up, youth, the wedding, the faces of friends, the embraces of those he loves. A film outside of time. A piece families rewatch across generations.",
    "work.4.tag": "Reactions · Emotion",
    "work.4.title": "Strangers, in tears.",
    "work.4.body": "Audiences reacting to films I made for people I’ve never met. The work travels, lands, and stays with them for years.",

    "approach.eyebrow": "Method",
    "approach.title.a": "Making people ",
    "approach.title.laugh": "laugh",
    "approach.title.and": " and ",
    "approach.title.cry": "cry",
    "approach.title.dot": ".",
    "approach.lede": "Private commissions have moved entire rooms. Because every short film is built around a real person, a real message, and the architecture of how an audience binds to a story.",
    "approach.1.title": "Discovery",
    "approach.1.body": "During the briefing, we set up the stage and go through the emotional cues you want featured. Goals, constraints, and the unsaid thing.",
    "approach.2.title": "Scene Definition",
    "approach.2.body": "Every cut earns its place. We map the beats before a single frame is rendered.",
    "approach.3.title": "Faithful Representation",
    "approach.3.body": "Your vision, sharpened, never replaced. Iteration until it reads as yours.",
    "approach.4.title": "Connection",
    "approach.4.body": "Story is bonding. We build it deliberately so an audience can’t look away.",
    "approach.coda": "With a network of copywriters consulting nine-figure brands, every script crosses a high bar before a single shot is planned.",

    "services.eyebrow": "Services",
    "services.title": "Five crafts, one signature.",
    "services.animationsLabel": "Animations",
    "services.1.title": "Copywriting",
    "services.1.lede": "Words that move 9-figure brands. From brand voice to web3-native cadence.",
    "services.1.b1": "Marketing copy for brands, projects and Web3",
    "services.1.b2": "Social copy for posts, captions and threads",
    "services.1.b3": "Personal branding and founder voice",
    "services.1.b4": "Web3-native language and tone of voice",
    "services.2.title": "For Brands",
    "services.2.lede": "Animation you can’t look away from. Frames that lodge in memory. Projects that outlive the campaign.",
    "services.2.b1": "Image films and campaign animations for serious brands and ambitious campaigns",
    "services.2.b2": "Action animation: NFT collections, fight and duel formats brought to life",
    "services.2.b3": "Bespoke animation at any complexity",
    "services.2.b4": "",
    "services.3.title": "For Private Clients",
    "services.3.lede": "Anniversary films where time loses its grip and the faces of those who came before learn to breathe again.",
    "services.3.b1": "Anniversary films: old footage carefully turned into living cinema",
    "services.3.b2": "Returning the smiles and gazes of those no longer with us",
    "services.3.b3": "Storylines that weave fragments of memory into a single film",
    "services.3.b4": "Immortalising the moments that would otherwise slip away",
    "services.4.title": "Automations",
    "services.4.lede": "Leaner workflows that hand you hours back per day. Whether the work lives in spreadsheets or AI tooling.",
    "services.4.b1": "Workflow audits to find the loops worth automating",
    "services.4.b2": "Considering automations via Python, n8n or smart contracts to automate office, tool or payment processes",
    "services.4.b3": "AI tooling wired into the systems you already use",
    "services.4.b4": "Hours per day reclaimed for the work that actually matters",
    "services.5.title": "Decentralization & DeFi",
    "services.5.lede": "Advisory on building in decentralized tech and finance. I’m shipping two products of my own: Enki Art, the artist marketplace, and a decentralized social-media app for creators. And now what to watch out for in Decentralized Finance.",
    "services.5.b1": "Strategy and product advisory for decentralized teams",
    "services.5.b2": "Hands-on building: x402 micropayments, on-chain identity, royalty rails",
    "services.5.b3": "Education on anything in Decentralized Finance and Crypto",
    "services.5.b4": "Consulting on custody solutions for retail and enterprises",

    "tools.eyebrow": "Stack",
    "tools.title": "The instruments.",
    "tools.lede": "Each of these slots into automated workflows. That’s what makes animation accessible at speed.",

    "tools.nano-banana.role": "Concept & Photoreal Imagery",
    "tools.nano-banana.headline": "Both engines, playing off each other.",
    "tools.nano-banana.body": "I run Nano Banana and Flux side by side and play with their outputs against each other. Where one hits the mood, the other nails the realism. Iterating between them is how I hit the nail on a generation.",
    "tools.chatgpt-img.role": "Choreography & Concept Art",
    "tools.chatgpt-img.headline": "Choreography sheets the video model can read.",
    "tools.chatgpt-img.body": "ChatGPT Image 2 is perfect for creating storyboards and workflows. A single image can hold camera movements, scene descriptions and character behaviour at once — currently the best and easiest way to craft a story for the video model to follow.",
    "tools.flux.role": "Photoreal Stills",
    "tools.flux.headline": "Where most of the brand-film stills are born.",
    "tools.flux.body": "Flux carries the photoreal load. Skin, fabric, light. I run dedicated LoRA stacks per project so faces and product details stay consistent across an entire sequence.",
    "tools.comfyui.role": "Custom Workflows",
    "tools.comfyui.headline": "Custom models and bespoke artstyles.",
    "tools.comfyui.body": "ComfyUI is where I plug in custom-trained models or build very distinct artstyles. When a project needs a look nothing off-the-shelf can deliver. The node graph keeps every step reproducible.",
    "tools.seedance.role": "Stills → Motion",
    "tools.seedance.headline": "First frame to first move.",
    "tools.seedance.body": "Where a portrait earns velocity. I use Seedance for the moments that have to feel hand-keyed. A glance, a breath, a turn. Without falling into the obvious AI cadence.",
    "tools.kling.role": "Camera Direction",
    "tools.kling.headline": "Complex shots that have to look directed.",
    "tools.kling.body": "Best cinematic generator for short cuts, with 4K output. When you want pure eye-candy, this is the first choice.",
    "tools.elevenlabs.role": "Voice & Sound",
    "tools.elevenlabs.headline": "Voice. Restored, cloned, or freshly directed.",
    "tools.elevenlabs.body": "From bringing an old voicemail back to broadcast quality to building a brand voice for narration. I script around the voice the same way a screenwriter does.",
    "tools.n8n.role": "Pipelines & Custom Tooling",
    "tools.n8n.headline": "Pipelines, custom tools, and the right developers when it counts.",
    "tools.n8n.body": "I wire n8n flows for the everyday work. When n8n hits its ceiling I build the missing piece in Python. And when a project calls for smart contracts or full decentralized applications, I bring in developers who own that craft so the project ships without compromise.",
    "tools.agents.role": "Proprietary Agents",
    "tools.agents.headline": "Internal copilots I built myself.",
    "tools.agents.body": "Scene planners, script doctors, asset-triage agents. They run during production so I can spend more time on the parts only a human should touch.",

    "builder.eyebrow": "Beyond the frame · Enki Art",
    "builder.title.a": "Building tools that give artists ",
    "builder.title.em": "real income.",
    "builder.lede1": "Enki Art is the marketplace I’m building — currently in closed beta, launching on Solana, Base and LUKSO. Artists upload their prompts. Buyers pay per usage. Royalties route back to the artist every time the work is generated. Built so creative output earns the way software does.",
    "builder.lede2": "At hackathons and between productions I lead small teams shipping the plumbing behind it. Crypto-native, conference regular, stubbornly at the pulse of what’s next.",
    "builder.rail1.k": "x402",
    "builder.rail1.v": "On-chain micropayments for creative output",
    "builder.rail2.k": "APIs",
    "builder.rail2.v": "Glue between models, marketplaces and wallets",
    "builder.rail3.k": "Databases",
    "builder.rail3.v": "Provenance, editions, royalty rails",
    "builder.rail4.k": "Small teams",
    "builder.rail4.v": "Designers and developers, shipping in days",
    "builder.railsLabel": "Under the hood",
    "builder.chainsLabel": "Launching on",
    "builder.showcase.caption": "Enki Art · marketplace preview",
    "builder.showcase.placeholder": "Enki Art marketplace screenshot",

    "voices.eyebrow": "Voices & Recognition",
    "voices.title": "What the room says afterwards.",
    "voices.q1": "Kevin Germin understood excellently how to successfully put his extremely sound and broad expertise into daily practice.",
    "voices.q2": "Both Kevin Germin’s workload and his work efficiency were always exceptional. Due to his very high quick comprehension and organizational strength, he could familiarize himself extremely quickly with new tasks and was thus versatile.",
    "voices.q3": "What sets Kevin apart is his generalist profile paired with strong execution. He is creative, systems-minded, and able to zoom out to understand strategy while still engaging deeply with details.",
    "voices.q4": "Spot on in so many ways! Thanks, Kev! 💖",

    "award.of": "of 140",
    "award.eyebrow": "Recognition · PsyopAnime",
    "award.title": "Top 10% in a viral animation competition.",
    "award.body": "One of 140 entrants. Task: Create a controversial storyline. Voiced the scenes from the original audio and composed the frames. Proved that I can take on any task, no matter the topic or difficulty.",
    "award.handle": "Find me as @0xKiriKev in the shoutout.",
    "award.cta": "Read the announcement",

    "cta.eyebrow": "Begin",
    "cta.title.a": "Got something ",
    "cta.title.em": "to build together?",
    "cta.priceNote": "Every animation is unique in scope. A film can cost anywhere from a few to several thousand euros. So let’s chat and figure out what yours requires.",
    "cta.button": "Let’s chat",
    "cta.meta1": "Calendly",
    "cta.meta2": "Replies within 24h",
    "cta.meta3": "Berlin · worldwide",

    "footer.name": "Kevin Germin",
    "footer.role": "Visual Artist, Copywriter & Consultant",

    "brief.eyebrow": "Let’s chat",
    "brief.title.a": "What do you want to ",
    "brief.title.em": "chat about?",
    "brief.choose": "Choose…",
    "brief.optional": "optional",
    "brief.required": "required",
    "brief.submit": "Send the brief",
    "brief.sending": "Sending…",
    "brief.error": "Couldn’t send right now.",
    "brief.fallback": "Open mail client instead",
    "brief.sent.title": "Thanks for reaching out!",
    "brief.sent.body": "I’ll reply to you shortly.",
    "brief.close": "Close",

    "brief.service.label": "What’s on your mind?",
    "brief.service.animations": "Animations",
    "brief.service.automations": "Automations",
    "brief.service.defi": "DeFi & Decentralization",
    "brief.service.copywriting": "Copywriting",

    "brief.animations.type.label": "What kind of animation?",
    "brief.animations.type.o1": "Brand film",
    "brief.animations.type.o2": "Personal brand",
    "brief.animations.type.o3": "Memory film (private)",
    "brief.animations.type.o4": "Something else",
    "brief.animations.duration.label": "Approximate length",
    "brief.animations.duration.o1": "Less than 1 minute",
    "brief.animations.duration.o2": "1 – 3 minutes",
    "brief.animations.duration.o3": "3 – 5 minutes",
    "brief.animations.duration.o4": "More than 5 minutes",

    "brief.automations.type.label": "What needs to be automated?",
    "brief.automations.type.o1": "Spreadsheets / data work",
    "brief.automations.type.o2": "Company processes",
    "brief.automations.type.o3": "AI tooling into existing systems",
    "brief.automations.type.o4": "Smart contracts / on-chain payments",
    "brief.automations.type.o5": "Something else",
    "brief.automations.tools.label": "Tools you already use",
    "brief.automations.tools.placeholder": "e.g. Notion, Airtable, Excel, n8n",

    "brief.defi.need.label": "What kind of help?",
    "brief.defi.need.o1": "Education on DeFi & crypto",
    "brief.defi.need.o2": "Custody solutions",
    "brief.defi.need.o3": "Asset / strategy breakdown",
    "brief.defi.need.o4": "Product advisory",
    "brief.defi.need.o5": "Something else",
    "brief.defi.audience.label": "Who is it for?",
    "brief.defi.audience.o1": "Me personally",
    "brief.defi.audience.o2": "Retail audience",
    "brief.defi.audience.o3": "Enterprise / team",
    "brief.defi.audience.o4": "Mixed",

    "brief.copywriting.format.label": "What format?",
    "brief.copywriting.format.o1": "Sales page",
    "brief.copywriting.format.o2": "Email sequence",
    "brief.copywriting.format.o3": "Marketing consulting",
    "brief.copywriting.format.o4": "Brand voice / tone",
    "brief.copywriting.format.o5": "Web3 / NFT copy",
    "brief.copywriting.format.o6": "Something else",

    "brief.budget.label": "Budget range",
    "brief.budget.placeholder": "Open",
    "brief.budget.o1": "Less than €300",
    "brief.budget.o2": "€300 – €1,000",
    "brief.budget.o3": "More than €1,000",

    "brief.contact.methodLabel": "How should I reach you?",
    "brief.contact.valueLabel": "Your contact",
    "brief.contact.email": "Email",
    "brief.contact.x": "X (Twitter)",
    "brief.contact.telegram": "Telegram",
    "brief.contact.placeholder.email": "you@example.com",
    "brief.contact.placeholder.x": "@yourhandle",
    "brief.contact.placeholder.telegram": "@yourhandle or t.me/…",

    "brief.description.label": "Project description",
    "brief.description.placeholder": "What’s the project? What does success look like? Anything I should know upfront.",
  },

  // ──────────────────────────────────────────────────────────────
  // DEUTSCH — keine Anglizismen außer Eigennamen (Werkzeuge, x402,
  // Web3, NFT, KI, LoRA, Calendly).
  // ──────────────────────────────────────────────────────────────
  de: {
    "nav.work": "Arbeiten",
    "nav.services": "Leistungen",
    "nav.approach": "Methode",
    "nav.voices": "Stimmen",
    "nav.cta": "Lass uns reden",

    "hero.eyebrow": "Visueller Künstler · Texter · Entwickler",
    "hero.headline": "Erwecke deine Geschichte zum Leben.",
    "hero.sub": "Verewige deine Erzählungen, Geschichten und Aussagen als Kurzfilme und Animationen, die über Jahre fesselnd bleiben.",
    "hero.cta": "Lass uns reden",
    "hero.seeWork": "Zur Arbeit",
    "hero.portraitName": "Kevin Germin",
    "hero.portraitRole": "Regie · Texter · Entwickler",

    "worked.label": "Gearbeitet für",

    "work.eyebrow": "Ausgewählte Arbeiten",
    "work.title": "Bilder aus der Filmrolle.",
    "work.disclaimer": "Es folgen Ausschnitte, nicht der ganze Film, zum Schutz der Privatsphäre.",
    "work.playFull": "Vollständiges Video abspielen",
    "work.play": "Abspielen",
    "work.pause": "Pause",
    "work.fullscreen": "Vollbild",
    "work.exitFullscreen": "Vollbild verlassen",
    "work.1.tag": "Marke · Ausschnitt",
    "work.1.title": "Eine Marke, in Bewegung erzählt.",
    "work.1.body": "Mitreißende Markenfilme sind Scrollstopper. In einen Erzählbogen verpackt wird aus deiner Marke eine Serie, von der man neue Folgen sehen will.",
    "work.2.tag": "Personenmarke · Videoportfolio",
    "work.2.title": "Eine Personenmarke, in dynamischen Bildern erzählt.",
    "work.2.body": "Egal ob dein persönlicher Avatar kämpfen, laufen, malen oder etwas ganz anderes soll — ich erwecke ihn zum Leben, egal wie komplex.",
    "work.3.tag": "Privat · Erinnerungsfilm",
    "work.3.title": "Ein Leben, in Minuten neu erlebt.",
    "work.3.body": "Animationen aus dem eigenen Leben, in denen alte Fotografien wieder in Bewegung kommen, bleiben länger in Erinnerung als die Fotos selbst. Ein Film lässt sich leichter wieder ansehen als jedes Mal das Album hervorzuholen. In diesem Beispiel bringt ein leuchtender Stern des Universums den Geburtstagsmenschen nach Feierabend nach Hause, wo seine Liebsten ihn mit einer Reise in die Kindheit überraschen und ihn dem verstorbenen Vater wieder begegnen lassen. Der Vater setzt ihn behutsam aufs Motorrad, und sein ganzes Leben zieht vorbei: das Erwachsenwerden, die Jugend, die Hochzeit, die Gesichter von Freunden, die Umarmungen geliebter Menschen. Ein Film außerhalb der Zeit. Ein Werk, das Familien über Generationen hinweg wieder ansehen.",
    "work.4.tag": "Reaktionen · Emotion",
    "work.4.title": "Fremde, in Tränen.",
    "work.4.body": "Zuschauer, die auf Filme reagieren, die ich für Menschen gemacht habe, die ich nie getroffen habe. Die Arbeit reist, kommt an und bleibt jahrelang.",

    "approach.eyebrow": "Methode",
    "approach.title.a": "Menschen zum ",
    "approach.title.laugh": "Lachen",
    "approach.title.and": " und ",
    "approach.title.cry": "Weinen",
    "approach.title.dot": " bringen.",
    "approach.lede": "Private Produktionen haben ganze Räume bewegt. Weil jeder Kurzfilm um einen echten Menschen, eine echte Botschaft und den bewussten Aufbau echter Bindung herum entsteht.",
    "approach.1.title": "Anforderungsanalyse",
    "approach.1.body": "Im Briefing setzen wir die Bühne und gehen die emotionalen Akzente durch, die im Film auftauchen sollen. Ziele, Grenzen, und das Unausgesprochene.",
    "approach.2.title": "Szenendefinition",
    "approach.2.body": "Jeder Schnitt muss sich seinen Platz verdienen. Wir legen den Rhythmus fest, bevor ein einziges Bild gerendert wird.",
    "approach.3.title": "Treue Umsetzung",
    "approach.3.body": "Deine Vision, geschärft, nie ersetzt. So lange überarbeitet, bis sich das Ergebnis wie deins anfühlt.",
    "approach.4.title": "Bindungsaufbau",
    "approach.4.body": "Geschichte ist Bindung. Wir bauen sie bewusst auf, damit das Publikum nicht mehr wegschauen kann.",
    "approach.coda": "Mit einem Netzwerk aus Textern, die neunstellige Marken beraten, muss jedes Drehbuch eine hohe Hürde nehmen, bevor das erste Bild geplant wird.",

    "services.eyebrow": "Leistungen",
    "services.title": "Fünf Handwerke, eine Handschrift.",
    "services.animationsLabel": "Animationen",
    "services.1.title": "Texten",
    "services.1.lede": "Worte, die neunstellige Marken bewegen. Vom Markenton bis zur Web3-Sprache.",
    "services.1.b1": "Werbetexte für Marken, Projekte und Web3",
    "services.1.b2": "Texte für soziale Netzwerke: Beiträge, Bildunterschriften, Themenreihen",
    "services.1.b3": "Personenmarken und Gründerstimmen",
    "services.1.b4": "Web3-Sprache und Markenton",
    "services.2.title": "Für Marken",
    "services.2.lede": "Animation, von der man den Blick nicht abwenden kann. Bilder, die im Gedächtnis bleiben. Projekte, die unsterblich werden.",
    "services.2.b1": "Imagefilme und Kampagnenanimationen für ernsthafte Marken und ambitionierte Kampagnen",
    "services.2.b2": "Action-Animation: NFT-Sammlungen, Kampf- und Duellformate zum Leben erweckt",
    "services.2.b3": "Maßgeschneiderte Animation in jeder Komplexität",
    "services.2.b4": "",
    "services.3.title": "Für Privatpersonen",
    "services.3.lede": "Jubiläumsfilme, in denen die Zeit ihre Macht verliert und die Gesichter der Vorfahren wieder Atem holen.",
    "services.3.b1": "Jubiläumsfilme: behutsam verwandeln wir alte Aufnahmen in lebendiges Kino",
    "services.3.b2": "Wir bringen das Lächeln und die Blicke derer zurück, die nicht mehr bei uns sind",
    "services.3.b3": "Geschichten, die Splitter der Erinnerung zu einem Film verweben",
    "services.3.b4": "Verewigung der Momente, die sonst verloren gehen",
    "services.4.title": "Automatisierungen",
    "services.4.lede": "Schlankere Abläufe, die dir Stunden pro Tag zurückgeben. Egal ob die Arbeit in Tabellen oder in KI-Werkzeugen steckt.",
    "services.4.b1": "Ablaufanalyse: die Schleifen finden, die sich wirklich lohnen",
    "services.4.b2": "Automatisierungen via Python, n8n oder Smart Contracts für Büro-, Werkzeug- und Zahlungsprozesse",
    "services.4.b3": "KI-Werkzeuge sauber in die bestehenden Systeme eingebunden",
    "services.4.b4": "Stunden pro Tag zurück für die Arbeit, die wirklich zählt",
    "services.5.title": "Dezentralisierung & DeFi",
    "services.5.lede": "Beratung beim Bauen in dezentraler Technik und Finanzwesen. Aktuell baue ich zwei eigene Produkte: Enki Art, den Marktplatz für Künstler, und eine dezentrale Anwendung für soziale Netzwerke. Und worauf man im Bereich Decentralized Finance achten muss.",
    "services.5.b1": "Strategie- und Produktberatung für dezentrale Teams",
    "services.5.b2": "Praktisches Bauen: x402-Mikrozahlungen, On-Chain-Identität, Vergütungsschienen",
    "services.5.b3": "Aufklärung zu allem rund um Decentralized Finance und Krypto",
    "services.5.b4": "Beratung zu Verwahrungslösungen für Privatpersonen und Unternehmen",

    "tools.eyebrow": "Werkzeuge",
    "tools.title": "Die Instrumente.",
    "tools.lede": "Jedes davon lässt sich in automatisierte Abläufe einbinden. So wird Animation in hoher Geschwindigkeit zugänglich.",

    "tools.nano-banana.role": "Konzept- und Realbilder",
    "tools.nano-banana.headline": "Beide Werkzeuge, im Wechselspiel.",
    "tools.nano-banana.body": "Nano Banana und Flux laufen bei mir parallel, und ich spiele die Ergebnisse gegeneinander aus. Wo das eine die Stimmung trifft, holt das andere den Realismus. Das Hin und Her ist, wie ich den Nagel auf den Kopf treffe.",
    "tools.chatgpt-img.role": "Choreografie & Konzeptkunst",
    "tools.chatgpt-img.headline": "Choreografie-Bögen, die das Videomodell lesen kann.",
    "tools.chatgpt-img.body": "ChatGPT Image 2 ist perfekt, um Storyboards und Abläufe zu erstellen. Ein einziges Bild kann Kamerabewegungen, Szenenbeschreibungen und Charakterverhalten gleichzeitig tragen — aktuell der beste und einfachste Weg, eine Geschichte zu bauen, an der das Videomodell entlanggeht.",
    "tools.flux.role": "Photoreale Standbilder",
    "tools.flux.headline": "Hier entstehen die meisten Standbilder für Markenfilme.",
    "tools.flux.body": "Flux trägt die photoreale Last. Haut, Stoff, Licht. Ich fahre projektspezifische LoRA-Stapel, damit Gesichter und Produktdetails über eine ganze Sequenz hinweg gleich bleiben.",
    "tools.comfyui.role": "Eigene Abläufe",
    "tools.comfyui.headline": "Eigene Modelle und unverkennbare Stilrichtungen.",
    "tools.comfyui.body": "In ComfyUI binde ich eigentrainierte Modelle ein oder baue völlig unverkennbare Stilrichtungen. Wenn ein Projekt einen Look braucht, den nichts von der Stange liefern kann. Der Knotengraph hält jeden Schritt reproduzierbar.",
    "tools.comfyui.body": "Jedes Projekt bekommt seinen eigenen Graphen. Restauration, Neubeleuchtung, Bewegungsgrundlage, Farbabstimmung, Hochskalieren. ComfyUI ist das Studiosystem, das den Rest wiederholbar macht.",
    "tools.seedance.role": "Standbilder → Bewegung",
    "tools.seedance.headline": "Vom ersten Bild zur ersten Bewegung.",
    "tools.seedance.body": "Hier gewinnt ein Porträt Geschwindigkeit. Seedance setze ich für Momente ein, die handgemacht wirken müssen. Ein Blick, ein Atemzug, eine Drehung. Ohne in den typischen KI-Rhythmus zu fallen.",
    "tools.kling.role": "Kameraführung",
    "tools.kling.headline": "Komplexe Einstellungen, die inszeniert wirken müssen.",
    "tools.kling.body": "Der beste kinematografische Generator für kurze Cuts, mit 4K-Ausgabe. Wenn es um reines Augenfutter geht, ist das die erste Wahl.",
    "tools.elevenlabs.role": "Stimme und Ton",
    "tools.elevenlabs.headline": "Stimme. Restauriert, geklont oder neu inszeniert.",
    "tools.elevenlabs.body": "Von der Restauration einer alten Anrufbeantworter-Aufnahme in Sendequalität bis zum Aufbau einer Markenstimme für die Erzählung. Ich schreibe für die Stimme, wie es ein Drehbuchautor tun würde.",
    "tools.n8n.role": "Abläufe & Eigene Werkzeuge",
    "tools.n8n.headline": "Abläufe, eigene Werkzeuge und die richtigen Entwickler, wenn es darauf ankommt.",
    "tools.n8n.body": "Ich verdrahte n8n-Abläufe für die tägliche Arbeit. Stößt n8n an seine Grenzen, baue ich das fehlende Stück in Python nach. Und wenn ein Projekt Smart Contracts oder vollständige dezentrale Anwendungen verlangt, hole ich Entwickler dazu, die genau das beherrschen. So liefert das Projekt ohne Abstriche.",
    "tools.agents.role": "Eigene Assistenten",
    "tools.agents.headline": "Interne Assistenten, die ich selbst gebaut habe.",
    "tools.agents.body": "Szenenplaner, Drehbuchberater, Helfer für die Sichtung von Material. Sie laufen während der Produktion, damit ich mehr Zeit für die Teile habe, die nur ein Mensch berühren sollte.",

    "builder.eyebrow": "Jenseits des Bildes · Enki Art",
    "builder.title.a": "Werkzeuge, die Künstlern ",
    "builder.title.em": "echte Einkommensquellen geben.",
    "builder.lede1": "Enki Art ist der Marktplatz, den ich baue — aktuell in geschlossener Beta, Launch auf Solana, Base und LUKSO. Künstler laden ihre Prompts hoch. Käufer zahlen pro Nutzung. Vergütungen fließen jedes Mal zurück, wenn die Arbeit erneut genutzt wird. Gebaut, damit kreative Arbeit so verdient wie Software.",
    "builder.lede2": "Auf Hackathons und zwischen Produktionen leite ich die kleinen Teams, die die Infrastruktur dahinter bauen. Krypto-nah, regelmäßig auf Konferenzen, störrisch am Puls dessen, was als Nächstes kommt.",
    "builder.rail1.k": "x402",
    "builder.rail1.v": "Mikrozahlungen in der Blockchain für kreative Arbeit",
    "builder.rail2.k": "Schnittstellen",
    "builder.rail2.v": "Bindeglied zwischen Modellen, Marktplätzen und digitalen Geldbörsen",
    "builder.rail3.k": "Datenbanken",
    "builder.rail3.v": "Herkunft, Auflagen, Vergütungsschienen",
    "builder.rail4.k": "Kleine Teams",
    "builder.rail4.v": "Gestalter und Entwickler, ausgeliefert in Tagen",
    "builder.railsLabel": "Unter der Haube",
    "builder.chainsLabel": "Launch auf",
    "builder.showcase.caption": "Enki Art · Vorschau auf den Marktplatz",
    "builder.showcase.placeholder": "Screenshot vom Enki Art Marktplatz",

    "voices.eyebrow": "Stimmen und Anerkennung",
    "voices.title": "Was der Raum hinterher sagt.",
    "voices.q1": "Kevin Germin verstand es hervorragend, sein außerordentlich fundiertes und breites Fachwissen erfolgreich in die tägliche Praxis umzusetzen.",
    "voices.q2": "Sowohl das Arbeitspensum als auch die Arbeitseffizienz von Kevin Germin waren stets außergewöhnlich. Durch seine sehr hohe Auffassungsgabe und Organisationsstärke konnte er sich extrem schnell in neue Aufgaben einarbeiten und war damit vielseitig einsetzbar.",
    "voices.q3": "Was Kevin auszeichnet, ist sein Generalisten-Profil gepaart mit starker Umsetzung. Er ist kreativ, systemisch denkend und in der Lage, herauszuzoomen, um die Strategie zu erfassen, während er sich weiterhin tief mit den Details auseinandersetzt.",
    "voices.q4": "In so vielen Punkten genau richtig! Danke, Kev! 💖",

    "award.of": "von 140",
    "award.eyebrow": "Anerkennung · PsyopAnime",
    "award.title": "Top 10% in einem viralen Animationswettbewerb.",
    "award.body": "Einer von 140 Teilnehmern. Aufgabe: Eine kontroverse Storyline erstellen. Die Szenen anhand der Originalstimmen vertont und die Bilder dazu gestaltet. Bewiesen, dass ich jede Aufgabe übernehmen kann, egal welches Thema oder welche Schwierigkeit.",
    "award.handle": "In der Würdigung findest du mich als @0xKiriKev.",
    "award.cta": "Zur Ankündigung",
    "award.videoLabel": "Den Film ansehen",
    "award.videoPlaceholder": "Videoplatzhalter — folgt in Kürze",

    "cta.eyebrow": "Los geht’s",
    "cta.title.a": "Hast du etwas, ",
    "cta.title.em": "das wir gemeinsam bauen sollten?",
    "cta.priceNote": "Jede Animation ist im Aufwand einzigartig. Ein Animationsfilm kann zwischen wenigen und mehreren tausend Euro kosten. Lass uns deshalb kurz reden, damit wir gemeinsam einschätzen können, wie groß der Aufwand bei deinem Projekt wirklich ist.",
    "cta.button": "Lass uns reden",
    "cta.meta1": "Calendly",
    "cta.meta2": "Antwort innerhalb von 24 Stunden",
    "cta.meta3": "Berlin · weltweit tätig",

    "footer.name": "Kevin Germin",
    "footer.role": "Visueller Künstler, Texter & Berater",

    "brief.eyebrow": "Lass uns reden",
    "brief.title.a": "Worüber möchtest du dich ",
    "brief.title.em": "gern unterhalten?",
    "brief.choose": "Wählen…",
    "brief.optional": "optional",
    "brief.required": "Pflichtfeld",
    "brief.submit": "Brief senden",
    "brief.sending": "Wird gesendet…",
    "brief.error": "Senden hat gerade nicht geklappt.",
    "brief.fallback": "Stattdessen E-Mail-Programm öffnen",
    "brief.sent.title": "Danke für deine Nachricht!",
    "brief.sent.body": "Ich melde mich gleich bei dir zurück.",
    "brief.close": "Schließen",

    "brief.service.label": "Was beschäftigt dich gerade?",
    "brief.service.animations": "Animationen",
    "brief.service.automations": "Automatisierungen",
    "brief.service.defi": "DeFi & Dezentralisierung",
    "brief.service.copywriting": "Texten",

    "brief.animations.type.label": "Welche Art Animation?",
    "brief.animations.type.o1": "Markenfilm",
    "brief.animations.type.o2": "Personenmarke",
    "brief.animations.type.o3": "Erinnerungsfilm (privat)",
    "brief.animations.type.o4": "Etwas anderes",
    "brief.animations.duration.label": "Ungefähre Länge",
    "brief.animations.duration.o1": "Weniger als 1 Minute",
    "brief.animations.duration.o2": "1 – 3 Minuten",
    "brief.animations.duration.o3": "3 – 5 Minuten",
    "brief.animations.duration.o4": "Mehr als 5 Minuten",

    "brief.automations.type.label": "Was soll automatisiert werden?",
    "brief.automations.type.o1": "Tabellen / Datenarbeit",
    "brief.automations.type.o2": "Unternehmensprozesse",
    "brief.automations.type.o3": "KI-Werkzeuge in bestehende Systeme",
    "brief.automations.type.o4": "Smart Contracts / On-Chain-Zahlungen",
    "brief.automations.type.o5": "Etwas anderes",
    "brief.automations.tools.label": "Werkzeuge, die ihr bereits nutzt",
    "brief.automations.tools.placeholder": "z.B. Notion, Airtable, Excel, n8n",

    "brief.defi.need.label": "Welche Art von Unterstützung?",
    "brief.defi.need.o1": "Aufklärung zu DeFi & Krypto",
    "brief.defi.need.o2": "Verwahrungslösungen",
    "brief.defi.need.o3": "Anlagen- / Strategieerklärung",
    "brief.defi.need.o4": "Produktberatung",
    "brief.defi.need.o5": "Etwas anderes",
    "brief.defi.audience.label": "Für wen ist es?",
    "brief.defi.audience.o1": "Für mich persönlich",
    "brief.defi.audience.o2": "Privatkunden",
    "brief.defi.audience.o3": "Unternehmen / Team",
    "brief.defi.audience.o4": "Gemischt",

    "brief.copywriting.format.label": "Welches Format?",
    "brief.copywriting.format.o1": "Verkaufsseite",
    "brief.copywriting.format.o2": "E-Mail-Strecke",
    "brief.copywriting.format.o3": "Marketing-Beratung",
    "brief.copywriting.format.o4": "Markenton",
    "brief.copywriting.format.o5": "Web3 / NFT-Texte",
    "brief.copywriting.format.o6": "Etwas anderes",

    "brief.budget.label": "Budgetrahmen",
    "brief.budget.placeholder": "Offen",
    "brief.budget.o1": "Weniger als 300 €",
    "brief.budget.o2": "300 – 1.000 €",
    "brief.budget.o3": "Mehr als 1.000 €",

    "brief.contact.methodLabel": "Wie soll ich dich erreichen?",
    "brief.contact.valueLabel": "Dein Kontakt",
    "brief.contact.email": "E-Mail",
    "brief.contact.x": "X (Twitter)",
    "brief.contact.telegram": "Telegram",
    "brief.contact.placeholder.email": "du@beispiel.de",
    "brief.contact.placeholder.x": "@deinhandle",
    "brief.contact.placeholder.telegram": "@deinhandle oder t.me/…",

    "brief.description.label": "Projektbeschreibung",
    "brief.description.placeholder": "Worum geht es? Wie sieht Erfolg aus? Alles, was ich vorab wissen sollte.",
  },

  // ──────────────────────────────────────────────────────────────
  // РУССКИЙ — без англицизмов в прозе. Проп. сущ. и названия
  // инструментов (ComfyUI, Flux, Kling, Seedance, ElevenLabs, n8n,
  // Web3, NFT, x402, LoRA, Calendly) остаются.
  // ──────────────────────────────────────────────────────────────
  ru: {
    "nav.work": "Работы",
    "nav.services": "Услуги",
    "nav.approach": "Метод",
    "nav.voices": "Отзывы",
    "nav.cta": "Поговорим",

    "hero.eyebrow": "Визуальный художник · Автор текстов · Создатель",
    "hero.headline": "Оживи свою историю.",
    "hero.sub": "Увековечь свои рассказы, истории и послания в коротких фильмах и анимациях, которые держат внимание годами.",
    "hero.cta": "Поговорим",
    "hero.seeWork": "К работам",
    "hero.portraitName": "Кирилл Гермин",
    "hero.portraitRole": "Режиссёр · Автор текстов · Создатель",

    "worked.label": "Работал для",

    "work.eyebrow": "Избранное",
    "work.title": "Кадры из ролика.",
    "work.disclaimer": "Далее идут фрагменты, не полный фильм, чтобы сохранить конфиденциальность.",
    "work.playFull": "Смотреть полное видео",
    "work.play": "Воспроизвести",
    "work.pause": "Пауза",
    "work.fullscreen": "Полный экран",
    "work.exitFullscreen": "Выйти из полного экрана",
    "work.1.tag": "Марка · Фрагмент",
    "work.1.title": "Бренд в движении.",
    "work.1.body": "Захватывающие бренд-ролики останавливают скролл. А когда к ним добавляется сюжет, бренд превращается в историю, у которой хочется смотреть новые серии.",
    "work.2.tag": "Личный бренд · Видеопортфолио",
    "work.2.title": "Презентация личного бренда через динамичные кадры.",
    "work.2.body": "Хочешь, чтобы твой персональный аватар дрался, бегал, рисовал — или делал что-то совсем другое? Я оживлю его, какой бы сложной ни была задача.",
    "work.3.tag": "Частное · Фильм-воспоминание",
    "work.3.title": "Жизнь, прожитая за несколько минут.",
    "work.3.body": "Анимации о собственной жизни, в которых старые фотографии оживают, запоминаются куда дольше, чем сами снимки. Фильм проще пересмотреть, чем каждый раз перебирать альбом. В этом примере сияющая звезда Вселенной провожает именинника после рабочего дня домой, где его ждёт сюрприз от близких — путешествие в детство и встреча с ушедшим отцом. Папа с нежностью сажает его на мотоцикл, и перед глазами проносится вся жизнь: взросление, юность, свадьба, лица друзей и объятия любимых. Кино вне времени. Шедевр, который семьи пересматривают поколениями.",
    "work.4.tag": "Реакции · Эмоции",
    "work.4.title": "Эмоциональный резонанс.",
    "work.4.body": "Это когда ты собираешь видео для людей, которых никогда не видел, а в итоге управляешь сердцебиением всего зала.",

    "approach.eyebrow": "Метод",
    "approach.title.a": "Заставляю людей ",
    "approach.title.laugh": "смеяться",
    "approach.title.and": " и ",
    "approach.title.cry": "плакать",
    "approach.title.dot": ".",
    "approach.lede": "Частные постановки трогали целые залы. Потому что каждый короткий фильм строится вокруг реального человека, реального послания и того, как зритель привязывается к истории.",
    "approach.1.title": "Анализ задачи",
    "approach.1.body": "На обсуждении задачи мы выстраиваем сцену и проговариваем эмоциональные акценты, которые ты хочешь увидеть в фильме. Цели, ограничения, и то, что не сказано.",
    "approach.2.title": "Определение сцен",
    "approach.2.body": "Каждый монтажный стык должен заслужить своё место. Мы выстраиваем ритм до того, как будет отрисован первый кадр.",
    "approach.3.title": "Точное воплощение",
    "approach.3.body": "Твоё видение, заострённое, не подменённое. Переработки, пока не читается как твоё.",
    "approach.4.title": "Связь со зрителем",
    "approach.4.body": "История это связь. Мы строим её намеренно, чтобы зритель не мог отвести взгляд.",
    "approach.coda": "С сетью авторов, консультирующих марки с девятизначными оборотами, каждый сценарий проходит высокую планку до того, как спланирован первый кадр.",

    "services.eyebrow": "Услуги",
    "services.title": "Пять ремёсел, один почерк.",
    "services.animationsLabel": "Анимации",
    "services.1.title": "Тексты",
    "services.1.lede": "Слова, которые двигают бренды с девятизначным оборотом. От голоса марки до ритма Web3.",
    "services.1.b1": "Тексты для марок, проектов и Web3",
    "services.1.b2": "Тексты для соцсетей: записи, подписи, цепочки",
    "services.1.b3": "Личные марки и голос основателя",
    "services.1.b4": "Web3-язык и общий тон",
    "services.2.title": "Для брендов",
    "services.2.lede": "Анимация, от которой невозможно отвести взгляд. Кадры, застывающие в памяти. Проекты, обретающие бессмертие.",
    "services.2.b1": "Разработка и производство имиджевых фильмов и анимации для крупного бизнеса, амбициозных рекламных компаний.",
    "services.2.b2": "Экшен-анимация: профессиональное оживление NFT-коллекции, игровых поединков и дуэлей.",
    "services.2.b3": "Авторская анимация любой сложности.",
    "services.2.b4": "",
    "services.3.title": "Для частных клиентов",
    "services.3.lede": "Юбилейные фильмы, в которых время теряет силу, а лица предков обретают дыхание.",
    "services.3.b1": "Юбилейные фильмы: бережно превращаем старые кадры в живое кино",
    "services.3.b2": "Возвращаем улыбки и взгляды тех, кого уже нет рядом",
    "services.3.b3": "Сюжетные линии, сплетающие осколки памяти в единое кино",
    "services.3.b4": "Увековечивание ускользающих мгновений",
    "services.4.title": "Автоматизации",
    "services.4.lede": "Более лёгкие процессы, возвращающие часы каждый день. Будь то работа в таблицах или с ИИ-инструментами.",
    "services.4.b1": "Аудит процессов: находим циклы, которые стоит автоматизировать",
    "services.4.b2": "Автоматизации на Python, n8n или смарт-контрактах для офисных, инструментальных и платёжных процессов",
    "services.4.b3": "ИИ-инструменты, аккуратно встроенные в существующие системы",
    "services.4.b4": "Часы каждый день возвращаются на ту работу, что действительно важна",
    "services.5.title": "Децентрализация и DeFi",
    "services.5.lede": "Консультирование по созданию проектов в децентрализованных технологиях и финансах. Сейчас я выпускаю два собственных продукта: Enki Art — маркетплейс для художников, и децентрализованное приложение для социальных сетей. А также — на что обращать внимание в децентрализованных финансах.",
    "services.5.b1": "Стратегия и продуктовое консультирование для децентрализованных команд",
    "services.5.b2": "Практическая работа: микроплатежи x402, on-chain идентичность, отчисления",
    "services.5.b3": "Просвещение по всем темам Decentralized Finance и крипты",
    "services.5.b4": "Консультирование по решениям хранения активов для частных клиентов и компаний",

    "tools.eyebrow": "Инструменты",
    "tools.title": "Инструменты.",
    "tools.lede": "Каждый из них встраивается в автоматизированные процессы. Именно это делает анимацию доступной на высокой скорости.",

    "tools.nano-banana.role": "Концепт и фотореализм",
    "tools.nano-banana.headline": "Два инструмента, в перекрёстной игре.",
    "tools.nano-banana.body": "Nano Banana и Flux я запускаю параллельно и разыгрываю их результаты друг против друга. Где один попадает в настроение, второй берёт реализм. Именно переключение между ними попадает в точку.",
    "tools.chatgpt-img.role": "Хореография и концепт-арт",
    "tools.chatgpt-img.headline": "Хореографические листы, которые читает видеомодель.",
    "tools.chatgpt-img.body": "ChatGPT Image 2 идеально подходит для раскадровок и пайплайнов. Одно изображение может содержать движения камеры, описание сцены и поведение персонажа сразу — сейчас это лучший и самый простой способ собрать историю, по которой пойдёт видеомодель.",
    "tools.flux.role": "Достоверные стоп-кадры",
    "tools.flux.headline": "Здесь рождается большинство стоп-кадров для фирменных фильмов.",
    "tools.flux.body": "Flux несёт всю фотореалистичную нагрузку. Кожа, ткань, свет. Я держу отдельные стеки LoRA под проект, чтобы лица и детали изделия оставались согласованными во всей последовательности.",
    "tools.comfyui.role": "Авторские процессы",
    "tools.comfyui.headline": "Собственные модели и узнаваемые стили.",
    "tools.comfyui.body": "В ComfyUI я подключаю собственно обученные модели или выстраиваю выраженные стили. Когда проекту нужен вид, который готовые решения не дают. Граф узлов держит каждый шаг воспроизводимым.",
    "tools.comfyui.body": "Каждый проект получает свой граф. Восстановление, переподсветка, подготовка движения, согласование цвета, увеличение масштаба. ComfyUI это студийная система, делающая остальное воспроизводимым.",
    "tools.seedance.role": "Стоп-кадры → Движение",
    "tools.seedance.headline": "От первого кадра к первому движению.",
    "tools.seedance.body": "Здесь портрет получает скорость. Seedance я использую для моментов, которые должны читаться как ручная работа. Взгляд, вдох, поворот. Без очевидного ритма ИИ.",
    "tools.kling.role": "Камера",
    "tools.kling.headline": "Сложные кадры, которые должны выглядеть поставленно.",
    "tools.kling.body": "Лучший кинематографический генератор для коротких склеек, с выводом в 4K. Когда нужен чистый визуальный праздник — это первый выбор.",
    "tools.elevenlabs.role": "Голос и звук",
    "tools.elevenlabs.headline": "Голос. Восстановленный, клонированный или поставленный заново.",
    "tools.elevenlabs.body": "От восстановления старой записи автоответчика до эфирного качества и создания голоса марки для повествования. Я пишу для голоса так же, как сценарист.",
    "tools.n8n.role": "Процессы и собственные инструменты",
    "tools.n8n.headline": "Процессы, собственные инструменты и нужные разработчики, когда это важно.",
    "tools.n8n.body": "Я связываю процессы в n8n под повседневные задачи. Когда n8n упирается в потолок, дорабатываю недостающую часть на Python. А когда проекту нужны смарт-контракты или полноценные децентрализованные приложения, подключаю разработчиков, для которых это профильная работа. Так проект выходит без компромиссов.",
    "tools.agents.role": "Собственные помощники",
    "tools.agents.headline": "Внутренние помощники, которых я собрал сам.",
    "tools.agents.body": "Планировщики сцен, редакторы сценариев, помощники по разбору материалов. Они работают во время съёмок, чтобы я уделял больше времени тому, что должен трогать только человек.",

    "builder.eyebrow": "За пределами кадра · Enki Art",
    "builder.title.a": "Инструменты, открывающие художникам ",
    "builder.title.em": "новые источники дохода.",
    "builder.lede1": "Enki Art — это маркетплейс, который я создаю. Сейчас в закрытой бете, запуск на Solana, Base и LUKSO. Художники загружают свои промпты. Покупатели платят за каждое использование. Отчисления возвращаются автору при каждом повторном использовании работы. Сделано так, чтобы творческий результат зарабатывал так же, как программное обеспечение.",
    "builder.lede2": "На хакатонах и между съёмками я веду маленькие команды, выпускающие инфраструктуру за всем этим. Близок к криптомиру, постоянный участник конференций, упрямо на пульсе того, что дальше.",
    "builder.rail1.k": "x402",
    "builder.rail1.v": "Микроплатежи в блокчейне за творческий результат",
    "builder.rail2.k": "Интерфейсы",
    "builder.rail2.v": "Связующее звено между моделями, площадками и кошельками",
    "builder.rail3.k": "Базы данных",
    "builder.rail3.v": "Происхождение, тиражи, отчисления",
    "builder.rail4.k": "Малые команды",
    "builder.rail4.v": "Художники и разработчики, выпуск за дни",
    "builder.railsLabel": "Под капотом",
    "builder.chainsLabel": "Запуск на",
    "builder.showcase.caption": "Enki Art · превью маркетплейса",
    "builder.showcase.placeholder": "Скриншот маркетплейса Enki Art",

    "voices.eyebrow": "Отзывы и признание",
    "voices.title": "Что говорят в зале после.",
    "voices.q1": "Кевин Гермин превосходно умел успешно применять своё исключительно глубокое и широкое профессиональное знание в повседневной практике.",
    "voices.q2": "Как объём работы, так и эффективность работы Кевина Гермина всегда были исключительными. Благодаря очень высокой сообразительности и организаторской силе он мог чрезвычайно быстро вникать в новые задачи и был тем самым универсален.",
    "voices.q3": "Кевина выделяет его профиль универсала в сочетании с сильным исполнением. Он креативен, мыслит системно и умеет отстраниться, чтобы понять стратегию, при этом глубоко погружаясь в детали.",
    "voices.q4": "Во многом в точку! Спасибо, Кев! 💖",

    "award.of": "из 140",
    "award.eyebrow": "Признание · PsyopAnime",
    "award.title": "Топ 10% в вирусном конкурсе анимации.",
    "award.body": "Один из 140 участников. Задача: создать противоречивый сюжет. Озвучил сцены по оригинальному звуку и составил кадры. Доказал, что могу взяться за любую задачу — какой бы ни была тема и сложность.",
    "award.handle": "В упоминании меня можно найти как @0xKiriKev.",
    "award.cta": "К объявлению",

    "cta.eyebrow": "Начало",
    "cta.title.a": "Есть что-то, ",
    "cta.title.em": "что стоит собрать вместе?",
    "cta.priceNote": "Каждая анимация уникальна по объёму. Фильм может стоить от нескольких до нескольких тысяч евро. Давай коротко поговорим и поймём, какой объём нужен именно тебе.",
    "cta.button": "Поговорим",
    "cta.meta1": "Calendly",
    "cta.meta2": "Ответ в течение 24 часов",
    "cta.meta3": "Берлин · работаю по всему миру",

    "footer.name": "Kevin Germin",
    "footer.role": "Визуальный художник, автор текстов и консультант",

    "brief.eyebrow": "Поговорим",
    "brief.title.a": "О чём хочешь ",
    "brief.title.em": "поговорить?",
    "brief.choose": "Выбрать…",
    "brief.optional": "необязательно",
    "brief.required": "обязательно",
    "brief.submit": "Отправить бриф",
    "brief.sending": "Отправляется…",
    "brief.error": "Не получилось отправить.",
    "brief.fallback": "Открыть почтовую программу",
    "brief.sent.title": "Спасибо, что написал!",
    "brief.sent.body": "Скоро отвечу.",
    "brief.close": "Закрыть",

    "brief.service.label": "Что тебя сейчас занимает?",
    "brief.service.animations": "Анимации",
    "brief.service.automations": "Автоматизации",
    "brief.service.defi": "DeFi и децентрализация",
    "brief.service.copywriting": "Тексты",

    "brief.animations.type.label": "Какой тип анимации?",
    "brief.animations.type.o1": "Фирменный фильм",
    "brief.animations.type.o2": "Личный бренд",
    "brief.animations.type.o3": "Фильм-воспоминание (частный)",
    "brief.animations.type.o4": "Что-то другое",
    "brief.animations.duration.label": "Примерная длительность",
    "brief.animations.duration.o1": "Меньше 1 минуты",
    "brief.animations.duration.o2": "1 – 3 минуты",
    "brief.animations.duration.o3": "3 – 5 минут",
    "brief.animations.duration.o4": "Больше 5 минут",

    "brief.automations.type.label": "Что нужно автоматизировать?",
    "brief.automations.type.o1": "Таблицы / работа с данными",
    "brief.automations.type.o2": "Бизнес-процессы",
    "brief.automations.type.o3": "ИИ в существующих системах",
    "brief.automations.type.o4": "Смарт-контракты / on-chain платежи",
    "brief.automations.type.o5": "Что-то другое",
    "brief.automations.tools.label": "Инструменты, которые вы уже используете",
    "brief.automations.tools.placeholder": "напр. Notion, Airtable, Excel, n8n",

    "brief.defi.need.label": "Какая помощь нужна?",
    "brief.defi.need.o1": "Обучение по DeFi и криптовалюте",
    "brief.defi.need.o2": "Решения для хранения активов",
    "brief.defi.need.o3": "Разбор активов / стратегии",
    "brief.defi.need.o4": "Продуктовое консультирование",
    "brief.defi.need.o5": "Что-то другое",
    "brief.defi.audience.label": "Для кого это?",
    "brief.defi.audience.o1": "Для меня лично",
    "brief.defi.audience.o2": "Розничная аудитория",
    "brief.defi.audience.o3": "Компания / команда",
    "brief.defi.audience.o4": "Смешанная",

    "brief.copywriting.format.label": "Какой формат?",
    "brief.copywriting.format.o1": "Лендинг-страница",
    "brief.copywriting.format.o2": "Серия писем",
    "brief.copywriting.format.o3": "Маркетинг-консультирование",
    "brief.copywriting.format.o4": "Голос марки / тон",
    "brief.copywriting.format.o5": "Web3 / NFT-тексты",
    "brief.copywriting.format.o6": "Что-то другое",

    "brief.budget.label": "Бюджет",
    "brief.budget.placeholder": "Открытый",
    "brief.budget.o1": "Меньше 300 €",
    "brief.budget.o2": "300 – 1 000 €",
    "brief.budget.o3": "Больше 1 000 €",

    "brief.contact.methodLabel": "Как мне с тобой связаться?",
    "brief.contact.valueLabel": "Твой контакт",
    "brief.contact.email": "Email",
    "brief.contact.x": "X (Twitter)",
    "brief.contact.telegram": "Telegram",
    "brief.contact.placeholder.email": "ты@example.com",
    "brief.contact.placeholder.x": "@твойник",
    "brief.contact.placeholder.telegram": "@твойник или t.me/…",

    "brief.description.label": "Описание проекта",
    "brief.description.placeholder": "О чём проект? Как выглядит успех? Что мне стоит знать заранее.",
  },
};

// ─── State ───────────────────────────────────────────────────
function readInitial() {
  try {
    const v = localStorage.getItem(STORAGE_KEY);
    if (v && SUPPORTED.includes(v)) return v;
  } catch (e) {}
  return "en";
}
let __lang = readInitial();
const __listeners = new Set();

function setLang(code) {
  if (!SUPPORTED.includes(code) || code === __lang) return;
  __lang = code;
  try { localStorage.setItem(STORAGE_KEY, code); } catch (e) {}
  document.documentElement.setAttribute("lang", code);
  __listeners.forEach((l) => l());
}

function getLang() { return __lang; }

function translate(key) {
  const v = (TR[__lang] && TR[__lang][key]) || TR.en[key];
  return v == null ? key : v;
}

function useT() {
  const [, force] = React.useReducer((n) => n + 1, 0);
  React.useEffect(() => {
    __listeners.add(force);
    return () => __listeners.delete(force);
  }, []);
  return translate;
}

function useLang() {
  const [, force] = React.useReducer((n) => n + 1, 0);
  React.useEffect(() => {
    __listeners.add(force);
    return () => __listeners.delete(force);
  }, []);
  return [__lang, setLang];
}

if (typeof document !== "undefined") {
  document.documentElement.setAttribute("lang", __lang);
}

Object.assign(window, { useT, useLang, setLang, getLang, SUPPORTED_LANGS: SUPPORTED });
