diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md
index 82c88c9db..7390adeb6 100644
--- a/.claude/CLAUDE.md
+++ b/.claude/CLAUDE.md
@@ -8,10 +8,23 @@
This codebase was built for Revamp-IT and is now the platform for **evig** —
George's own independent org (founded 2026-07-24, `in Gründung`). evig is a
-**market/quality model, NOT a charity**: make genuinely good, durable hardware
-affordable to everyone — curated, not junk refurb. Do not describe evig as a
-"non-profit" or frame it around "without extracting profit"; that was Revamp-IT's
-framing, deliberately left behind.
+**non-profit run on a market/quality model**: make genuinely good, durable hardware
+affordable to everyone — curated, not junk refurb. The non-profit purpose funds the
+mission; affordable pricing is the product, not a subsidy.
+
+**Non-profit framing (George, 2026-07-27) — with an honesty boundary:**
+- evig IS positioned as a non-profit — a **gemeinnütziger Verein *in Gründung*** (being
+ founded). Describe it that way; the earlier "NOT a charity, don't call it non-profit"
+ rule is retired (that was an over-correction away from Revamp-IT's *specific* framing,
+ not a rejection of non-profit status).
+- **Honesty boundary — do NOT reactivate what isn't true yet:** until the Verein is
+ actually registered AND canton-recognized as tax-exempt (`gemeinnützig`), evig may
+ **not** issue tax-deductible donation receipts (Spendenbescheinigungen) or claim
+ recognized tax-exempt status. Say "in Gründung"; never fabricate a UID, recognition,
+ or receipt authority. The removal of false Spendenbescheinigungen stays correct until
+ registration is real.
+- Still George's call (not to be guessed): legal form confirmation (Verein) + timing of
+ registration → when to switch copy from "in Gründung" to a recognized non-profit.
**Two layers — rebrand ONLY Layer A, never blind-rename Layer B:**
- **Layer A (user-facing brand)** → say `evig`: copy, i18n message values, README,
diff --git a/docs/EVIG_STORY.md b/docs/EVIG_STORY.md
new file mode 100644
index 000000000..9d3cf2493
--- /dev/null
+++ b/docs/EVIG_STORY.md
@@ -0,0 +1,240 @@
+# evig — the story
+
+> **What this is.** The canonical founding narrative for evig — the source text that
+> the About page, homepage, pitch decks, and grant applications all derive from.
+> Prose here is the SSOT for *voice and story*; facts stay honest to
+> `src/config/org.ts` and `.claude/CLAUDE.md` (evig is a **gemeinnütziger Verein in
+> Gründung**, founded 2026 in Zürich — no invented metrics, no tax-receipt claims
+> until the Verein is registered and recognised).
+
+---
+
+## The one sentence
+
+**Intelligence should be reachable by anyone, anywhere.**
+
+Compute, artificial intelligence, and — soon — robots. The tools that increasingly
+decide who gets to take part in the world. evig exists to put them within reach of
+people, not just institutions and the wealthy.
+
+Everything below is that sentence, unfolded.
+
+---
+
+## The inequality that matters
+
+We talk a lot about inequality of income, and of wealth. But those are symptoms. The
+inequality that shapes a life most today — the one that produces the others — is
+**inequality of access to intelligence.**
+
+Intelligence is the meta-resource: it compounds. It comes in two forms, and evig is
+about both.
+
+- **Artificial intelligence.** The person who can afford a frontier AI subscription
+ learns faster, works better, and reaches opportunities — a better job, new skills,
+ ideas they couldn't have reached alone — that stay closed to the person who can't.
+ Give two people the same problem; the one with intelligence on tap pulls ahead, and
+ keeps pulling ahead.
+
+- **Embodied intelligence — robots.** A good robot that vacuums and mops the floor
+ takes real work out of a life. A dishwasher, a washing machine did it before it; a
+ humanoid robot handling routine tasks will do far more of it soon. What they hand
+ back is the scarcest thing there is — **time, and the energy to use it.** Time freed
+ from drudgery is time to learn, to build, to rise into whatever a person is actually
+ capable of.
+
+Put the two together and the pattern is stark: those with access to intelligence get
+*more capable and freer every year*; those without fall further behind — automatically,
+without anyone deciding it. Left alone, this becomes the widest and most
+self-reinforcing gap of all.
+
+**That is the one inequality worth closing — because closing it loosens all the
+others.** Give a person access to intelligence, artificial or embodied, and you give
+them back their time and multiply what they can do with it. That is what "makes people
+more equal" in the only sense that lasts: not equal outcomes handed down, but an equal
+shot at the tools that let anyone raise themselves.
+
+evig exists to close that gap. To make access to intelligence — AI and robotics —
+reachable by anyone, anywhere.
+
+---
+
+## Where we come from
+
+evig grew out of the world of circular IT — the quiet, unglamorous work of taking
+tired laptops and computers, fixing them, tuning them up, and giving them a second
+life instead of a landfill.
+
+That work is good for the planet. A repaired laptop is a laptop that didn't have to
+be mined, manufactured, and shipped a second time. But we came to see something the
+recycling framing missed: **a refurbished laptop is also the cheapest on-ramp to
+artificial intelligence that exists.** The same machine that would have been e-waste
+is, tuned up and set up right, a doorway to the most powerful tools humanity has ever
+built. Circular economy and access to intelligence turned out to be the same act,
+seen from two sides.
+
+We built a platform around that idea — a marketplace, an AI assistant, workshops, a
+whole techno-optimist vision of good hardware, AI, robotics, and open tech kept in
+circulation. We were ready to walk toward it.
+
+Our surroundings weren't. So in **2026, in Zürich, we started walking on our own.**
+That's evig — full ownership, no inherited mandate, no committee to convince. The
+same roots, aimed at a bolder destination.
+
+*(Origin tone: confident spin-off, not grievance. We say what we're for, not who
+we're against. We never claim another organisation's history, track record, or
+numbers as our own — evig is new, and says so.)*
+
+---
+
+## What "evig" means
+
+**evig** is Norse for *eternal*. It's the single-stroke eternal loop in our mark —
+∞, a Möbius line with no end. It carries both halves of what we do at once:
+technology that lives **longer** because it stays in the loop instead of the bin, and
+intelligence that should be **permanently** within reach, not a privilege that
+switches on and off with your bank balance.
+
+Reuse as **energy**, not obligation. Not "please recycle." Rather: *this still has a
+life in it — let's raise it for longer.*
+
+---
+
+## What makes us different
+
+The circular-IT world we came from often does its work as charity-recycling: take the
+scrap, harvest the parts, pass on "good enough," and measure success in kilograms
+diverted from landfill. That's honourable. It isn't us.
+
+evig is a **market-and-quality model run as a non-profit.** Good *because* it's
+affordable, affordable *because* good technology stays in circulation instead of
+turning to waste. The difference shows up in three promises.
+
+### We sell things that work — not parts, not scrap
+
+No fragments. No "bin of maybes." No selling someone a project. Everything in the evig
+marketplace is a **complete, working machine** (and, in time, a complete, working
+robot). If it's listed, it runs.
+
+### Quality is a promise, not a lottery
+
+When we say a computer is good for something, that is a fact we stand behind — not a
+hopeful guess. If we say *"this machine is great for live-coding music,"* then the
+software is already installed, it's the right software, it's configured correctly, and
+it works the moment you open the lid. Fitness for a real, concrete purpose is the
+product. A spec sheet isn't.
+
+### We bring three things closer to people — hardware, software, and knowledge
+
+Owning the box isn't the point. *Doing the thing* is the point.
+
+- **Hardware** — curated, capable machines and devices, chosen because they genuinely
+ deliver, priced so people can actually reach them.
+- **Software** — set up, ready, honest about what it's for. The machine arrives able
+ to do the job you got it for.
+- **Knowledge** — workshops, repair café, and a technician network, so people learn to
+ *use* and *keep* their tools, not just buy them.
+
+Hardware without software is a paperweight. Software without knowledge is a locked
+door. evig hands over all three together.
+
+---
+
+## We do the research — in the open
+
+evig is not only a place that *sells* and *repairs*. It's a place that
+**investigates.** Research and development sits at the core of who we are — it has
+from the first day, quite literally as a team of one, by conviction rather than by
+headcount.
+
+Here's why it isn't a side project. You cannot honestly make intelligence *reachable*
+if you don't understand it deeply — and the frontier moves every week. New models,
+new hardware, new robots, new ways to run capable AI on modest and second-life
+machines. Every promise evig makes rests on someone actually doing that work: testing,
+benchmarking, building, breaking, and learning what's real versus what's hype. **R&D
+is the engine under the curation.** It's what turns "great for live-coding music" from
+a marketing line into a fact we've earned the right to state.
+
+And we publish it. Research notes and blog posts on the questions that matter to us —
+affordable AI, running intelligence on humble hardware, open robotics, repair,
+sovereignty over your own tools. Published in the open, because **knowledge in
+circulation is the same idea as hardware in circulation.** What we learn shouldn't die
+in a drawer any more than a working laptop should die in a bin.
+
+That openness does two things at once:
+
+- **It makes evig interesting.** An organisation with a point of view worth following
+ — not a storefront, a voice. People come for the thinking and stay for the tools.
+- **It brings talent on board.** The best people want to join a place that thinks in
+ public and shares what it discovers. Our research *is* our recruiting — proof of how
+ we reason, laid out for anyone to read, fork, and build on.
+
+So the "knowledge" evig brings closer to people has two directions: knowledge we
+**transmit** (workshops, repair café, the technician network) and knowledge we
+**create** (research, published openly). We don't just pass tools along — we push on
+the edge of what those tools can do, and we show our work.
+
+---
+
+## How people afford it
+
+Access shouldn't depend only on what's already in your wallet. So alongside buying
+outright, evig is building ways for people to **raise** their way to intelligence:
+
+- **Subscription crowdfunding and pooled financing** — communities, classes, and
+ groups raising funds together so a person or a project can reach the tools they need.
+- **Shared-subscription pools** — splitting the cost of the AI and software
+ subscriptions themselves, so the running cost of intelligence is shared, not
+ shouldered alone.
+- **Direct support** — donate a device, fund a specific tool, sponsor a workshop seat.
+ No middleman, no markup.
+
+This is where the tagline lives: **raise for longer.** Raise the funds. Raise the
+machine's life. Raise the ceiling on who gets to take part — and keep it raised.
+
+---
+
+## Where this is going: computers *and* robots
+
+Today the evig marketplace is computers. That's the wedge, not the whole.
+
+The same conviction — *good tools, proven for real use, within reach* — points
+straight at robotics. Robots are becoming the next general-purpose tool, the way the
+personal computer once did. And the same logic will apply: a capable robot is only
+useful if it works out of the box, is honest about what it can do, and comes with the
+knowledge to actually put it to work.
+
+**Humanoid robots aren't sold second-hand yet — they're barely sold new.** That
+window won't stay closed for long. When it opens, evig intends to be the first store
+that does it right: robots that are complete, tested, purpose-proven, and backed by
+the workshops and know-how to use them — new *and*, in time, given a second life the
+same way we give laptops one now.
+
+This is exactly what the research is *for*. Being early and being right are not the
+same thing — and the only way to be both is to already be doing the work: studying the
+platforms, testing what actually holds up, and publishing what we find. Our R&D today
+is how we earn the right to be first, and trustworthy, tomorrow.
+
+Computers and robots. Hardware, software, and knowledge. Bought outright or raised for
+together. That's the whole shape of it: **intelligence, reachable by anyone,
+anywhere — and kept reachable, for longer.**
+
+---
+
+## Voice notes (for anyone writing evig copy)
+
+- **Confident, forward-leaning, warm.** Techno-optimist without hype. We're building
+ the future of access, not apologising for the past of waste.
+- **Honest by default.** No numbers we haven't earned. No "since 2003." "In Gründung"
+ is stated plainly, not hidden. We don't issue tax-deductible receipts or claim
+ recognised charitable status until the Verein is actually registered and recognised.
+- **Differentiate by what we *are*,** never by naming and knocking another
+ organisation. "Complete machines, not parts" makes the point; insults don't.
+- **"Intelligence" is the through-line word** — AI, robotics, and the compute to run
+ them. Every page should be traceable back to *intelligence within reach*.
+- **Reuse = energy, not guilt.** Circular economy is how we make it affordable, not a
+ moral lecture we deliver.
+- **R&D is a pillar, not a footnote.** evig thinks in public. Frame research as *why
+ our promises are trustworthy* and *how we attract talent* — never as vanity. When
+ we cite a finding, it must be a finding we actually published, not a claim we wish
+ we'd made.
diff --git a/messages/de.json b/messages/de.json
index 10e0a951b..4645fe61f 100644
--- a/messages/de.json
+++ b/messages/de.json
@@ -332,7 +332,8 @@
"warehouse": "Lager",
"byAppointmentOnly": "(nur nach Terminvereinbarung)",
"country": "Schweiz"
- }
+ },
+ "vision": "Vision"
},
"home": {
"meta": {
@@ -8914,5 +8915,108 @@
"source": "Quellcode ansehen",
"license": "{license}-Lizenz"
}
+ },
+ "vision": {
+ "meta": {
+ "title": "Die Vision",
+ "description": "Intelligenz soll für alle erreichbar sein — überall. Warum es evig gibt, und welche Ungleichheit wir schliessen wollen."
+ },
+ "badge": {
+ "region": "Zürich · Schweiz",
+ "legal": "Gemeinnütziger Verein · in Gründung"
+ },
+ "hero": {
+ "eyebrow": "Die evig-Vision",
+ "title": "Intelligenz soll für alle erreichbar sein — überall.",
+ "lede": "Rechenleistung, künstliche Intelligenz und — bald — Roboter. Erreichbar für Menschen, nicht nur für Institutionen und Wohlhabende.",
+ "tag": "raise for longer"
+ },
+ "thesis": {
+ "eyebrow": "Warum das zählt",
+ "title": "Die Ungleichheit, die über alle anderen entscheidet.",
+ "p1": "Wir sprechen über Einkommens- und Vermögensungleichheit. Doch das sind Symptome. Die Ungleichheit, die ein Leben heute am stärksten prägt, ist der Zugang zu Intelligenz — und es gibt sie in zwei Formen.",
+ "ai": "Künstliche Intelligenz. Wer sich ein Abo für ein führendes KI-Modell leisten kann, lernt schneller, arbeitet besser und erreicht Chancen — einen besseren Job, neue Fähigkeiten, Ideen, auf die man allein nicht käme — die anderen verschlossen bleiben.",
+ "robot": "Verkörperte Intelligenz — Roboter. Ein Roboter, der saugt und wischt, nimmt echte Arbeit aus einem Leben; Geschirrspüler und Waschmaschine taten es zuvor, und ein humanoider Roboter wird bald weit mehr davon übernehmen. Was sie zurückgeben, ist das Knappste überhaupt: Zeit, und die Energie, sie zu nutzen.",
+ "pull": "Zugang zu Intelligenz ist die eine Ungleichheit, die sich verstärkt.",
+ "p2": "Wer Zugang hat, wird Jahr für Jahr fähiger und freier; wer keinen hat, fällt zurück — automatisch, ohne dass es jemand entscheidet. Genau deshalb lohnt es sich, diese Lücke zu schliessen: Gib einem Menschen Zugang zu Intelligenz, künstlich oder verkörpert, und du gibst ihm seine Zeit zurück und vervielfachst, was er tun kann. Keine verordnete Gleichheit der Ergebnisse — eine faire Chance auf die Werkzeuge, mit denen sich jeder selbst erheben kann."
+ },
+ "origin": {
+ "eyebrow": "Woher wir kommen",
+ "quote": "Ein aufbereiteter Laptop ist die günstigste Auffahrt zur Intelligenz, die es gibt.",
+ "p1": "evig ist aus der stillen Arbeit der Kreislauf-IT entstanden — müde Laptops und Computer nehmen, reparieren, auf Vordermann bringen und ihnen ein zweites Leben geben statt der Deponie. Diese Arbeit ist gut für den Planeten. Aber wir sahen, was die Recycling-Sicht übersah: Dieselbe Maschine, die Elektroschrott geworden wäre, ist — richtig eingerichtet — ein Tor zu den mächtigsten Werkzeugen, die die Menschheit je gebaut hat.",
+ "p2": "Kreislaufwirtschaft und Zugang zu Intelligenz erwiesen sich als dieselbe Handlung, von zwei Seiten betrachtet. Wir haben eine Plattform um diese Idee gebaut. Unser Umfeld war nicht bereit, diesen Weg zu gehen — also gehen wir ihn seit 2026, in Zürich, selbst. Dieselben Wurzeln, ein mutigeres Ziel."
+ },
+ "diff": {
+ "eyebrow": "Was uns anders macht",
+ "title": "Gut, weil bezahlbar. Bezahlbar, weil gut.",
+ "intro": "Die Welt, aus der wir kommen, arbeitet oft als Wohltätigkeits-Recycling: den Schrott nehmen, die Teile ernten, das Gerade-noch-Genügende weitergeben. Ehrenwert — aber nicht wir. evig ist ein Markt- und Qualitätsmodell, geführt als gemeinnütziger Verein. Der Unterschied zeigt sich in drei Versprechen.",
+ "p1": {
+ "title": "Ganze Maschinen, keine Teile",
+ "body": "Keine Fragmente, kein Kasten voller Vielleichts, niemandem ein Projekt verkaufen. Alles auf dem evig-Marktplatz ist eine funktionierende Maschine — und mit der Zeit ein funktionierender Roboter. Was gelistet ist, läuft."
+ },
+ "p2": {
+ "title": "Qualität ist ein Versprechen, keine Lotterie",
+ "body": "Wenn wir sagen, eine Maschine sei ideal fürs Live-Coding von Musik, dann ist die Software bereits installiert, es ist die richtige Software, korrekt eingerichtet, und sie funktioniert, sobald du den Deckel öffnest. Die Eignung für einen echten Zweck ist das Produkt — nicht ein Datenblatt."
+ },
+ "p3": {
+ "title": "Hardware, Software und Wissen — zusammen",
+ "body": "Die Kiste zu besitzen ist nicht der Punkt; die Sache zu tun schon. Leistungsfähige Hardware, eingerichtet und bereit, übergeben mit den Workshops und dem Know-how, um sie wirklich zu nutzen und zu erhalten. Hardware ohne Software ist ein Briefbeschwerer. Software ohne Wissen ist eine verschlossene Tür."
+ }
+ },
+ "research": {
+ "eyebrow": "Wir forschen — offen",
+ "title": "Eine Organisation mit einer Haltung, der man folgen will.",
+ "p1": "Man kann Intelligenz nicht ehrlich erreichbar machen, ohne sie tief zu verstehen — und die Grenze verschiebt sich jede Woche. Neue Modelle, neue Hardware, neue Roboter, neue Wege, leistungsfähige KI auf bescheidenen Maschinen laufen zu lassen. Jedes Versprechen, das wir geben, ruht darauf, dass jemand diese Arbeit tut.",
+ "pull": "Forschung ist der Motor unter der Kuratierung.",
+ "p2": "Wir veröffentlichen, was wir lernen — Notizen und Texte über bezahlbare KI, Intelligenz auf Second-Life-Hardware, offene Robotik, Reparatur und Souveränität über die eigenen Werkzeuge. Offen, denn Wissen im Kreislauf ist dieselbe Idee wie Hardware im Kreislauf. Es macht evig verfolgenswert, und es bringt die richtigen Menschen an Bord. Unsere Forschung ist unser Recruiting."
+ },
+ "afford": {
+ "eyebrow": "Wie Menschen es sich leisten",
+ "title": "Nicht nur gekauft. Gemeinsam ermöglicht.",
+ "intro": "Zugang sollte nicht nur davon abhängen, was schon im Portemonnaie ist. Neben dem direkten Kauf baut evig Wege, auf denen Menschen sich den Zugang zu Intelligenz erschliessen — gemeinsam.",
+ "w1": {
+ "k": "Gemeinsam",
+ "title": "Abo-Crowdfunding & gepoolte Finanzierung",
+ "body": "Gemeinschaften, Klassen und Gruppen sammeln zusammen Mittel, damit eine Person oder ein Projekt die nötigen Werkzeuge erreicht."
+ },
+ "w2": {
+ "k": "Geteilt",
+ "title": "Geteilte Abo-Pools",
+ "body": "Die laufenden Kosten der KI- und Software-Abos selbst aufteilen — damit der Preis der Intelligenz geteilt und nicht allein getragen wird."
+ },
+ "w3": {
+ "k": "Direkt",
+ "title": "Ein Gerät geben, ein Werkzeug finanzieren, einen Platz stiften",
+ "body": "Spende eine funktionierende Maschine, finanziere ein bestimmtes Stück Ausrüstung oder stifte einen Workshop-Platz. Kein Mittelsmann, kein Aufschlag."
+ },
+ "close": "Genau das bedeutet der Leitspruch. Raise for longer: die Mittel heben, das Leben der Maschine verlängern, die Schwelle heben, wer teilhaben darf — und sie oben halten."
+ },
+ "future": {
+ "eyebrow": "Wohin es geht",
+ "title": "Computer — und Roboter.",
+ "p1": "Heute ist der Marktplatz Computer. Das ist der Anfang, nicht das Ganze. Roboter werden zum nächsten Allzweckwerkzeug, so wie es der Personal Computer einst wurde — und dieselbe Logik gilt: nützlich nur, wenn er auf Anhieb funktioniert, ehrlich über sein Können ist und mit dem Wissen kommt, ihn einzusetzen.",
+ "pull": "Humanoide Roboter werden noch nicht gebraucht verkauft. Neu kaum.",
+ "p2": "Dieses Fenster bleibt nicht lange zu. Wenn es sich öffnet, will evig der erste Laden sein, der es richtig macht — Roboter, die vollständig, geprüft und für ihren Zweck belegt sind, gestützt auf die Workshops, um sie zu nutzen; neu, und mit der Zeit ein zweites Leben, so wie wir es heute Laptops geben. Früh dran und richtig sind nicht dasselbe. Der einzige Weg, beides zu sein, ist, die Arbeit schon jetzt zu tun. Dafür ist die Forschung da."
+ },
+ "close": {
+ "eyebrow": "Intelligenz, erreichbar — und erreichbar gehalten",
+ "title": "Zwei Wege, das voranzubringen.",
+ "support": {
+ "k": "Die Mission unterstützen",
+ "title": "evig fördern",
+ "body": "Für Stiftungen, Förderstellen und Gönner, die überzeugt sind, dass Zugang zu Intelligenz nicht vom Portemonnaie abhängen darf.",
+ "cta": "Ein Gespräch beginnen"
+ },
+ "build": {
+ "k": "Mit uns bauen",
+ "title": "Bei der Arbeit mitmachen",
+ "body": "Für Menschen und Partner, die forschen, reparieren, lehren und gute Werkzeuge in mehr Hände bringen wollen.",
+ "cta": "Sieh, wo du hinpasst"
+ },
+ "commercial": "Baust du auf unseren Plattform-Produkten auf? hirnli und kivvi sind offene, unabhängige Projekte mit eigenem Zuhause — melde dich. Bewusst getrennt vom Verein."
+ },
+ "footer": {
+ "legal": "evig — «ewig» — ist ein gemeinnütziger Verein in Gründung in Zürich, Schweiz. Wir beanspruchen keinen anerkannten gemeinnützigen Status und stellen keine steuerlich abzugsfähigen Spendenbescheinigungen aus, solange der Verein nicht eingetragen und kantonal anerkannt ist. Alles auf dieser Seite ist das, worauf wir hinarbeiten — als Absicht formuliert, nicht als Leistungsausweis, den wir noch nicht verdient haben."
+ }
}
}
diff --git a/messages/en.json b/messages/en.json
index 0afafcafb..80a6d78ff 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -332,7 +332,8 @@
"warehouse": "Warehouse",
"byAppointmentOnly": "(by appointment only)",
"country": "Switzerland"
- }
+ },
+ "vision": "Vision"
},
"home": {
"meta": {
@@ -8897,5 +8898,108 @@
"source": "View source",
"license": "{license} license"
}
+ },
+ "vision": {
+ "meta": {
+ "title": "The vision",
+ "description": "Intelligence should be reachable by anyone, anywhere. Why evig exists — and the inequality we are here to close."
+ },
+ "badge": {
+ "region": "Zürich · Switzerland",
+ "legal": "Non-profit association · in formation"
+ },
+ "hero": {
+ "eyebrow": "The evig vision",
+ "title": "Intelligence should be reachable by anyone, anywhere.",
+ "lede": "Compute, artificial intelligence, and — soon — robots. Within reach of people, not just institutions and the wealthy.",
+ "tag": "raise for longer"
+ },
+ "thesis": {
+ "eyebrow": "Why this matters",
+ "title": "The gap that decides all the others.",
+ "p1": "We talk about inequality of income, and of wealth. But those are symptoms. The inequality that shapes a life most today is access to intelligence — and it comes in two forms.",
+ "ai": "Artificial intelligence. Someone who can afford a frontier AI subscription learns faster, works better, and reaches opportunities — a better job, new skills, ideas they could not reach alone — that stay closed to someone who cannot.",
+ "robot": "Embodied intelligence — robots. A robot that vacuums and mops takes real work out of a life; the dishwasher and washing machine did it before, and a humanoid will do far more of it soon. What they hand back is the scarcest thing there is: time, and the energy to use it.",
+ "pull": "Intelligence is the one inequality that compounds.",
+ "p2": "Those with access grow more capable and freer every year; those without fall behind — automatically, without anyone deciding it. That is why it is the gap worth closing: give a person access to intelligence, artificial or embodied, and you hand back their time and multiply what they can do with it. Not equal outcomes handed down — an equal shot at the tools that let anyone raise themselves."
+ },
+ "origin": {
+ "eyebrow": "Where we come from",
+ "quote": "A refurbished laptop is the cheapest on-ramp to intelligence that exists.",
+ "p1": "evig grew out of the quiet work of circular IT — taking tired laptops and computers, fixing them, tuning them up, and giving them a second life instead of a landfill. That work is good for the planet. But we saw what the recycling framing missed: the same machine that would have been e-waste is, set up right, a doorway to the most powerful tools humanity has ever built.",
+ "p2": "Circular economy and access to intelligence turned out to be the same act, seen from two sides. We built a platform around that idea. Our surroundings were not ready to walk toward it — so in 2026, in Zürich, we started walking on our own. Same roots, bolder destination."
+ },
+ "diff": {
+ "eyebrow": "What makes us different",
+ "title": "Good because it is affordable. Affordable because it is good.",
+ "intro": "The world we came from often does its work as charity-recycling: take the scrap, harvest the parts, pass on good enough. Honourable — but not us. evig is a market-and-quality model run as a non-profit. The difference shows up in three promises.",
+ "p1": {
+ "title": "Complete machines, not parts",
+ "body": "No fragments, no bin of maybes, no selling someone a project. Everything in the evig marketplace is a working machine — and, in time, a working robot. If it is listed, it runs."
+ },
+ "p2": {
+ "title": "Quality is a promise, not a lottery",
+ "body": "When we say a machine is great for live-coding music, the software is already installed, it is the right software, it is configured correctly, and it works the moment you open the lid. Fitness for a real purpose is the product — not a spec sheet."
+ },
+ "p3": {
+ "title": "Hardware, software, and knowledge — together",
+ "body": "Owning the box is not the point; doing the thing is. Capable hardware, set up and ready, handed over with the workshops and know-how to actually use and keep it. Hardware without software is a paperweight. Software without knowledge is a locked door."
+ }
+ },
+ "research": {
+ "eyebrow": "We do the research — in the open",
+ "title": "An organisation with a point of view worth following.",
+ "p1": "You cannot honestly make intelligence reachable if you do not understand it deeply — and the frontier moves every week. New models, new hardware, new robots, new ways to run capable AI on humble machines. Every promise we make rests on someone doing that work.",
+ "pull": "Research is the engine under the curation.",
+ "p2": "We publish what we learn — notes and writing on affordable AI, intelligence on second-life hardware, open robotics, repair, and sovereignty over your own tools. Openly, because knowledge in circulation is the same idea as hardware in circulation. It makes evig worth following, and it brings the right people on board. Our research is our recruiting."
+ },
+ "afford": {
+ "eyebrow": "How people afford it",
+ "title": "Not only bought. Raised for.",
+ "intro": "Access should not depend only on what is already in your wallet. Alongside buying outright, evig is building ways for people to raise their way to intelligence.",
+ "w1": {
+ "k": "Together",
+ "title": "Subscription crowdfunding & pooled financing",
+ "body": "Communities, classes and groups raising funds together so a person or a project can reach the tools they need."
+ },
+ "w2": {
+ "k": "Shared",
+ "title": "Shared-subscription pools",
+ "body": "Splitting the running cost of the AI and software subscriptions themselves — so the price of intelligence is shared, not shouldered alone."
+ },
+ "w3": {
+ "k": "Direct",
+ "title": "Give a device, fund a tool, sponsor a seat",
+ "body": "Donate a working machine, fund a specific piece of kit, or sponsor a workshop place. No middleman, no markup."
+ },
+ "close": "This is what the tagline means. Raise for longer: raise the funds, raise the machine's life, raise the ceiling on who gets to take part — and keep it raised."
+ },
+ "future": {
+ "eyebrow": "Where it is going",
+ "title": "Computers — and robots.",
+ "p1": "Today the marketplace is computers. That is the wedge, not the whole. Robots are becoming the next general-purpose tool, the way the personal computer once did — and the same logic applies: useful only if it works out of the box, honest about what it can do, and paired with the knowledge to put it to work.",
+ "pull": "Humanoid robots are not sold second-hand yet. They are barely sold new.",
+ "p2": "That window will not stay closed for long. When it opens, evig intends to be the first store that does it right — robots that are complete, tested, purpose-proven, and backed by the workshops to use them; new, and in time given a second life the same way we give laptops one now. Being early and being right are not the same thing. The only way to be both is to already be doing the work. That is what the research is for."
+ },
+ "close": {
+ "eyebrow": "Intelligence, reachable — and kept reachable",
+ "title": "Two ways to move this forward.",
+ "support": {
+ "k": "Support the mission",
+ "title": "Back evig",
+ "body": "For foundations, grant-makers and patrons who believe access to intelligence should not depend on a wallet.",
+ "cta": "Start a conversation"
+ },
+ "build": {
+ "k": "Build with us",
+ "title": "Join the work",
+ "body": "For people and partners who want to research, repair, teach, and put good tools in more hands.",
+ "cta": "See where you fit"
+ },
+ "commercial": "Building on our platform products? hirnli and kivvi are open, independent projects with their own home — get in touch. Kept separate from the association, by design."
+ },
+ "footer": {
+ "legal": "evig — eternal — is a non-profit association (Verein) in formation in Zürich, Switzerland. We do not claim recognised charitable status or issue tax-deductible donation receipts until the association is registered and canton-recognised. Everything on this page is what we are building toward — stated as intent, not a track record we have not yet earned."
+ }
}
}
diff --git a/public/brand/README.md b/public/brand/README.md
new file mode 100644
index 000000000..0926820ad
--- /dev/null
+++ b/public/brand/README.md
@@ -0,0 +1,80 @@
+# evig — Brand Assets
+
+Single source for evig's logo, mark, and identity assets. **Vectors are canonical**
+(`*.svg`); the `png/` folder holds rasterized exports for contexts that can't take SVG
+(social avatars, some favicons, email signatures, OG share cards).
+
+Full brand guidelines (colour, type, voice, misuse): the **evig Brand System** artifact.
+
+---
+
+## The system in one line
+
+Electric **Ion Lime** `#B6F531` on near-black **Obsidian** `#0A0B0A` — a single-stroke
+**eternal loop** (∞ / Möbius) for "evig" = *eternal* + circular reuse. Reuse as **energy**,
+not obligation.
+
+| Token | Hex | Use |
+|-------|-----|-----|
+| Ion Lime | `#B6F531` | the accent — mark, one CTA per surface, focus |
+| Obsidian | `#0A0B0A` | ground / dark backgrounds |
+| Ink | `#0A0A0A` | text/mark on light; **required** as text colour on lime fills |
+| Paper | `#FAFCF7` | text/mark on dark |
+
+Wordmark = **Space Grotesk** (outlined in the lockups — no font dependency).
+Labels/tagline = **IBM Plex Mono**. Body = **Inter**.
+
+---
+
+## Which file do I use?
+
+### Mark only (∞, no wordmark)
+| File | When |
+|------|------|
+| `evig-mark.svg` | inline in code — inherits `currentColor` |
+| `evig-mark-lime.svg` | lime mark on a dark surface |
+| `evig-mark-ink.svg` | ink mark on a light surface |
+| `png/mark-lime-512.png` · `png/mark-ink-512.png` | raster mark, transparent bg |
+
+### Logo (mark + "evig")
+| File | When |
+|------|------|
+| `evig-logo.svg` | inline — both mark + wordmark inherit `currentColor` |
+| `evig-logo-dark.svg` | on dark (lime mark + paper wordmark) |
+| `evig-logo-light.svg` | on light (ink) |
+| `evig-logo-stacked-dark.svg` · `-light.svg` | vertical lockup (narrow spaces) |
+| `evig-logo-tagline-dark.svg` · `-light.svg` | lockup + "raise for longer" |
+| `png/logo-dark-1040.png` | email signatures, slide decks, docs |
+
+### App icon / favicon (rounded obsidian tile + lime mark)
+| File | When |
+|------|------|
+| `evig-icon.svg` | source tile |
+| `png/favicon-16/32/48/64.png` | favicons |
+| `png/favicon-192.png` · `favicon-512.png` | PWA / web manifest |
+| `png/apple-touch-icon.png` (180) | iOS home screen |
+
+### Social
+| File | When |
+|------|------|
+| `evig-avatar.svg` · `png/avatar-256.png` · `png/avatar-512.png` | profile pictures (obsidian circle + lime mark) |
+| `png/og-card-1200x630.png` | Open Graph / Twitter share card |
+
+---
+
+## Clear space & minimum size
+- **Clear space:** keep at least the height of the mark's loop clear on all sides.
+- **Minimum mark size:** 16px. Below that, use the solid tile favicon, not the bare stroke.
+
+## Don't
+- Don't recolour the mark to anything but lime / ink / paper / `currentColor`.
+- Don't put **paper/white** text on a lime fill — lime needs **ink** text (contrast).
+- Don't add gradients, shadows, or outlines to the mark.
+- Don't stretch, rotate (beyond the built-in −8° tilt), or re-space the wordmark.
+- Don't reintroduce the old recycling-green — it's retired.
+
+## Regenerating
+SVGs are generated from the mark geometry SSOT (`src/config/brand.ts` once wired) via the
+build script; PNGs are rasterized from those SVGs with `sharp`. See the design pipeline in
+the brand-system notes. Wordmark glyphs are pre-outlined (Space Grotesk) so the lockups
+render identically without the font installed.
diff --git a/public/brand/evig-avatar.svg b/public/brand/evig-avatar.svg
new file mode 100644
index 000000000..95fd3675e
--- /dev/null
+++ b/public/brand/evig-avatar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-icon.svg b/public/brand/evig-icon.svg
new file mode 100644
index 000000000..5716e3f55
--- /dev/null
+++ b/public/brand/evig-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo-dark.svg b/public/brand/evig-logo-dark.svg
new file mode 100644
index 000000000..8cc23c473
--- /dev/null
+++ b/public/brand/evig-logo-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo-light.svg b/public/brand/evig-logo-light.svg
new file mode 100644
index 000000000..1644926e4
--- /dev/null
+++ b/public/brand/evig-logo-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo-stacked-dark.svg b/public/brand/evig-logo-stacked-dark.svg
new file mode 100644
index 000000000..1bc2b1961
--- /dev/null
+++ b/public/brand/evig-logo-stacked-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo-stacked-light.svg b/public/brand/evig-logo-stacked-light.svg
new file mode 100644
index 000000000..d5d9660ec
--- /dev/null
+++ b/public/brand/evig-logo-stacked-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo-tagline-dark.svg b/public/brand/evig-logo-tagline-dark.svg
new file mode 100644
index 000000000..54f57ba29
--- /dev/null
+++ b/public/brand/evig-logo-tagline-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo-tagline-light.svg b/public/brand/evig-logo-tagline-light.svg
new file mode 100644
index 000000000..ad390524d
--- /dev/null
+++ b/public/brand/evig-logo-tagline-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-logo.svg b/public/brand/evig-logo.svg
new file mode 100644
index 000000000..bd8eca1f9
--- /dev/null
+++ b/public/brand/evig-logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-mark-ink.svg b/public/brand/evig-mark-ink.svg
new file mode 100644
index 000000000..7ed5b00e1
--- /dev/null
+++ b/public/brand/evig-mark-ink.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-mark-lime.svg b/public/brand/evig-mark-lime.svg
new file mode 100644
index 000000000..24dc029a7
--- /dev/null
+++ b/public/brand/evig-mark-lime.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/evig-mark.svg b/public/brand/evig-mark.svg
new file mode 100644
index 000000000..d7078080e
--- /dev/null
+++ b/public/brand/evig-mark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/brand/png/apple-touch-icon.png b/public/brand/png/apple-touch-icon.png
new file mode 100644
index 000000000..884706b74
Binary files /dev/null and b/public/brand/png/apple-touch-icon.png differ
diff --git a/public/brand/png/avatar-256.png b/public/brand/png/avatar-256.png
new file mode 100644
index 000000000..21dab4e17
Binary files /dev/null and b/public/brand/png/avatar-256.png differ
diff --git a/public/brand/png/avatar-512.png b/public/brand/png/avatar-512.png
new file mode 100644
index 000000000..a04ab813a
Binary files /dev/null and b/public/brand/png/avatar-512.png differ
diff --git a/public/brand/png/favicon-16.png b/public/brand/png/favicon-16.png
new file mode 100644
index 000000000..16d89a531
Binary files /dev/null and b/public/brand/png/favicon-16.png differ
diff --git a/public/brand/png/favicon-180.png b/public/brand/png/favicon-180.png
new file mode 100644
index 000000000..884706b74
Binary files /dev/null and b/public/brand/png/favicon-180.png differ
diff --git a/public/brand/png/favicon-192.png b/public/brand/png/favicon-192.png
new file mode 100644
index 000000000..d5f005227
Binary files /dev/null and b/public/brand/png/favicon-192.png differ
diff --git a/public/brand/png/favicon-32.png b/public/brand/png/favicon-32.png
new file mode 100644
index 000000000..4f799d9c5
Binary files /dev/null and b/public/brand/png/favicon-32.png differ
diff --git a/public/brand/png/favicon-48.png b/public/brand/png/favicon-48.png
new file mode 100644
index 000000000..329dcb3c7
Binary files /dev/null and b/public/brand/png/favicon-48.png differ
diff --git a/public/brand/png/favicon-512.png b/public/brand/png/favicon-512.png
new file mode 100644
index 000000000..587321601
Binary files /dev/null and b/public/brand/png/favicon-512.png differ
diff --git a/public/brand/png/favicon-64.png b/public/brand/png/favicon-64.png
new file mode 100644
index 000000000..7cb21f6dd
Binary files /dev/null and b/public/brand/png/favicon-64.png differ
diff --git a/public/brand/png/logo-dark-1040.png b/public/brand/png/logo-dark-1040.png
new file mode 100644
index 000000000..35da4e8fb
Binary files /dev/null and b/public/brand/png/logo-dark-1040.png differ
diff --git a/public/brand/png/mark-ink-512.png b/public/brand/png/mark-ink-512.png
new file mode 100644
index 000000000..5ad003bc5
Binary files /dev/null and b/public/brand/png/mark-ink-512.png differ
diff --git a/public/brand/png/mark-lime-512.png b/public/brand/png/mark-lime-512.png
new file mode 100644
index 000000000..5064d0b1b
Binary files /dev/null and b/public/brand/png/mark-lime-512.png differ
diff --git a/public/brand/png/og-card-1200x630.png b/public/brand/png/og-card-1200x630.png
new file mode 100644
index 000000000..cef8a7c37
Binary files /dev/null and b/public/brand/png/og-card-1200x630.png differ
diff --git a/public/fonts/vision-ibm-plex-mono-400.woff2 b/public/fonts/vision-ibm-plex-mono-400.woff2
new file mode 100644
index 000000000..4d1e01c79
Binary files /dev/null and b/public/fonts/vision-ibm-plex-mono-400.woff2 differ
diff --git a/public/fonts/vision-inter-400.woff2 b/public/fonts/vision-inter-400.woff2
new file mode 100644
index 000000000..dbc5d3ed3
Binary files /dev/null and b/public/fonts/vision-inter-400.woff2 differ
diff --git a/public/fonts/vision-inter-600.woff2 b/public/fonts/vision-inter-600.woff2
new file mode 100644
index 000000000..76a60afc4
Binary files /dev/null and b/public/fonts/vision-inter-600.woff2 differ
diff --git a/public/fonts/vision-space-grotesk-500.woff2 b/public/fonts/vision-space-grotesk-500.woff2
new file mode 100644
index 000000000..fd12a3b70
Binary files /dev/null and b/public/fonts/vision-space-grotesk-500.woff2 differ
diff --git a/public/fonts/vision-space-grotesk-700.woff2 b/public/fonts/vision-space-grotesk-700.woff2
new file mode 100644
index 000000000..10eee174a
Binary files /dev/null and b/public/fonts/vision-space-grotesk-700.woff2 differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 02_05_00 PM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 02_05_00 PM.png
deleted file mode 100644
index 6a2d8399a..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 02_05_00 PM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 02_09_23 PM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 02_09_23 PM.png
deleted file mode 100644
index eb0f926e2..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 02_09_23 PM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 10_54_28 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 10_54_28 AM.png
deleted file mode 100644
index 0d04263e1..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 10_54_28 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_02_53 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_02_53 AM.png
deleted file mode 100644
index 9a61a31cc..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_02_53 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_14_29 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_14_29 AM.png
deleted file mode 100644
index 027d94037..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_14_29 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_19_09 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_19_09 AM.png
deleted file mode 100644
index 2b0903814..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_19_09 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_38_44 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_38_44 AM.png
deleted file mode 100644
index e777a578d..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_38_44 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_50_13 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_50_13 AM.png
deleted file mode 100644
index 98b645043..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_50_13 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_52_08 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_52_08 AM.png
deleted file mode 100644
index 4026276fd..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_52_08 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_53_32 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_53_32 AM.png
deleted file mode 100644
index ae30c7c6e..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_53_32 AM.png and /dev/null differ
diff --git a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_58_04 AM.png b/public/images/logo/ChatGPT Image Oct 28, 2025, 11_58_04 AM.png
deleted file mode 100644
index 2ad31597e..000000000
Binary files a/public/images/logo/ChatGPT Image Oct 28, 2025, 11_58_04 AM.png and /dev/null differ
diff --git a/scripts/baselines/i18n-missing.json b/scripts/baselines/i18n-missing.json
index 8147b52f2..9ae739d14 100644
--- a/scripts/baselines/i18n-missing.json
+++ b/scripts/baselines/i18n-missing.json
@@ -11,14 +11,403 @@
"ru"
],
"missing": {
- "fr": [],
+ "fr": [
+ "footer.vision",
+ "vision.afford.close",
+ "vision.afford.eyebrow",
+ "vision.afford.intro",
+ "vision.afford.title",
+ "vision.afford.w1.body",
+ "vision.afford.w1.k",
+ "vision.afford.w1.title",
+ "vision.afford.w2.body",
+ "vision.afford.w2.k",
+ "vision.afford.w2.title",
+ "vision.afford.w3.body",
+ "vision.afford.w3.k",
+ "vision.afford.w3.title",
+ "vision.badge.legal",
+ "vision.badge.region",
+ "vision.close.build.body",
+ "vision.close.build.cta",
+ "vision.close.build.k",
+ "vision.close.build.title",
+ "vision.close.commercial",
+ "vision.close.eyebrow",
+ "vision.close.support.body",
+ "vision.close.support.cta",
+ "vision.close.support.k",
+ "vision.close.support.title",
+ "vision.close.title",
+ "vision.diff.eyebrow",
+ "vision.diff.intro",
+ "vision.diff.p1.body",
+ "vision.diff.p1.title",
+ "vision.diff.p2.body",
+ "vision.diff.p2.title",
+ "vision.diff.p3.body",
+ "vision.diff.p3.title",
+ "vision.diff.title",
+ "vision.footer.legal",
+ "vision.future.eyebrow",
+ "vision.future.p1",
+ "vision.future.p2",
+ "vision.future.pull",
+ "vision.future.title",
+ "vision.hero.eyebrow",
+ "vision.hero.lede",
+ "vision.hero.tag",
+ "vision.hero.title",
+ "vision.meta.description",
+ "vision.meta.title",
+ "vision.origin.eyebrow",
+ "vision.origin.p1",
+ "vision.origin.p2",
+ "vision.origin.quote",
+ "vision.research.eyebrow",
+ "vision.research.p1",
+ "vision.research.p2",
+ "vision.research.pull",
+ "vision.research.title",
+ "vision.thesis.ai",
+ "vision.thesis.eyebrow",
+ "vision.thesis.p1",
+ "vision.thesis.p2",
+ "vision.thesis.pull",
+ "vision.thesis.robot",
+ "vision.thesis.title"
+ ],
"en": [],
- "it": [],
- "es": [],
- "ja": [],
- "ko": [],
+ "it": [
+ "footer.vision",
+ "vision.afford.close",
+ "vision.afford.eyebrow",
+ "vision.afford.intro",
+ "vision.afford.title",
+ "vision.afford.w1.body",
+ "vision.afford.w1.k",
+ "vision.afford.w1.title",
+ "vision.afford.w2.body",
+ "vision.afford.w2.k",
+ "vision.afford.w2.title",
+ "vision.afford.w3.body",
+ "vision.afford.w3.k",
+ "vision.afford.w3.title",
+ "vision.badge.legal",
+ "vision.badge.region",
+ "vision.close.build.body",
+ "vision.close.build.cta",
+ "vision.close.build.k",
+ "vision.close.build.title",
+ "vision.close.commercial",
+ "vision.close.eyebrow",
+ "vision.close.support.body",
+ "vision.close.support.cta",
+ "vision.close.support.k",
+ "vision.close.support.title",
+ "vision.close.title",
+ "vision.diff.eyebrow",
+ "vision.diff.intro",
+ "vision.diff.p1.body",
+ "vision.diff.p1.title",
+ "vision.diff.p2.body",
+ "vision.diff.p2.title",
+ "vision.diff.p3.body",
+ "vision.diff.p3.title",
+ "vision.diff.title",
+ "vision.footer.legal",
+ "vision.future.eyebrow",
+ "vision.future.p1",
+ "vision.future.p2",
+ "vision.future.pull",
+ "vision.future.title",
+ "vision.hero.eyebrow",
+ "vision.hero.lede",
+ "vision.hero.tag",
+ "vision.hero.title",
+ "vision.meta.description",
+ "vision.meta.title",
+ "vision.origin.eyebrow",
+ "vision.origin.p1",
+ "vision.origin.p2",
+ "vision.origin.quote",
+ "vision.research.eyebrow",
+ "vision.research.p1",
+ "vision.research.p2",
+ "vision.research.pull",
+ "vision.research.title",
+ "vision.thesis.ai",
+ "vision.thesis.eyebrow",
+ "vision.thesis.p1",
+ "vision.thesis.p2",
+ "vision.thesis.pull",
+ "vision.thesis.robot",
+ "vision.thesis.title"
+ ],
+ "es": [
+ "footer.vision",
+ "vision.afford.close",
+ "vision.afford.eyebrow",
+ "vision.afford.intro",
+ "vision.afford.title",
+ "vision.afford.w1.body",
+ "vision.afford.w1.k",
+ "vision.afford.w1.title",
+ "vision.afford.w2.body",
+ "vision.afford.w2.k",
+ "vision.afford.w2.title",
+ "vision.afford.w3.body",
+ "vision.afford.w3.k",
+ "vision.afford.w3.title",
+ "vision.badge.legal",
+ "vision.badge.region",
+ "vision.close.build.body",
+ "vision.close.build.cta",
+ "vision.close.build.k",
+ "vision.close.build.title",
+ "vision.close.commercial",
+ "vision.close.eyebrow",
+ "vision.close.support.body",
+ "vision.close.support.cta",
+ "vision.close.support.k",
+ "vision.close.support.title",
+ "vision.close.title",
+ "vision.diff.eyebrow",
+ "vision.diff.intro",
+ "vision.diff.p1.body",
+ "vision.diff.p1.title",
+ "vision.diff.p2.body",
+ "vision.diff.p2.title",
+ "vision.diff.p3.body",
+ "vision.diff.p3.title",
+ "vision.diff.title",
+ "vision.footer.legal",
+ "vision.future.eyebrow",
+ "vision.future.p1",
+ "vision.future.p2",
+ "vision.future.pull",
+ "vision.future.title",
+ "vision.hero.eyebrow",
+ "vision.hero.lede",
+ "vision.hero.tag",
+ "vision.hero.title",
+ "vision.meta.description",
+ "vision.meta.title",
+ "vision.origin.eyebrow",
+ "vision.origin.p1",
+ "vision.origin.p2",
+ "vision.origin.quote",
+ "vision.research.eyebrow",
+ "vision.research.p1",
+ "vision.research.p2",
+ "vision.research.pull",
+ "vision.research.title",
+ "vision.thesis.ai",
+ "vision.thesis.eyebrow",
+ "vision.thesis.p1",
+ "vision.thesis.p2",
+ "vision.thesis.pull",
+ "vision.thesis.robot",
+ "vision.thesis.title"
+ ],
+ "ja": [
+ "footer.vision",
+ "vision.afford.close",
+ "vision.afford.eyebrow",
+ "vision.afford.intro",
+ "vision.afford.title",
+ "vision.afford.w1.body",
+ "vision.afford.w1.k",
+ "vision.afford.w1.title",
+ "vision.afford.w2.body",
+ "vision.afford.w2.k",
+ "vision.afford.w2.title",
+ "vision.afford.w3.body",
+ "vision.afford.w3.k",
+ "vision.afford.w3.title",
+ "vision.badge.legal",
+ "vision.badge.region",
+ "vision.close.build.body",
+ "vision.close.build.cta",
+ "vision.close.build.k",
+ "vision.close.build.title",
+ "vision.close.commercial",
+ "vision.close.eyebrow",
+ "vision.close.support.body",
+ "vision.close.support.cta",
+ "vision.close.support.k",
+ "vision.close.support.title",
+ "vision.close.title",
+ "vision.diff.eyebrow",
+ "vision.diff.intro",
+ "vision.diff.p1.body",
+ "vision.diff.p1.title",
+ "vision.diff.p2.body",
+ "vision.diff.p2.title",
+ "vision.diff.p3.body",
+ "vision.diff.p3.title",
+ "vision.diff.title",
+ "vision.footer.legal",
+ "vision.future.eyebrow",
+ "vision.future.p1",
+ "vision.future.p2",
+ "vision.future.pull",
+ "vision.future.title",
+ "vision.hero.eyebrow",
+ "vision.hero.lede",
+ "vision.hero.tag",
+ "vision.hero.title",
+ "vision.meta.description",
+ "vision.meta.title",
+ "vision.origin.eyebrow",
+ "vision.origin.p1",
+ "vision.origin.p2",
+ "vision.origin.quote",
+ "vision.research.eyebrow",
+ "vision.research.p1",
+ "vision.research.p2",
+ "vision.research.pull",
+ "vision.research.title",
+ "vision.thesis.ai",
+ "vision.thesis.eyebrow",
+ "vision.thesis.p1",
+ "vision.thesis.p2",
+ "vision.thesis.pull",
+ "vision.thesis.robot",
+ "vision.thesis.title"
+ ],
+ "ko": [
+ "footer.vision",
+ "vision.afford.close",
+ "vision.afford.eyebrow",
+ "vision.afford.intro",
+ "vision.afford.title",
+ "vision.afford.w1.body",
+ "vision.afford.w1.k",
+ "vision.afford.w1.title",
+ "vision.afford.w2.body",
+ "vision.afford.w2.k",
+ "vision.afford.w2.title",
+ "vision.afford.w3.body",
+ "vision.afford.w3.k",
+ "vision.afford.w3.title",
+ "vision.badge.legal",
+ "vision.badge.region",
+ "vision.close.build.body",
+ "vision.close.build.cta",
+ "vision.close.build.k",
+ "vision.close.build.title",
+ "vision.close.commercial",
+ "vision.close.eyebrow",
+ "vision.close.support.body",
+ "vision.close.support.cta",
+ "vision.close.support.k",
+ "vision.close.support.title",
+ "vision.close.title",
+ "vision.diff.eyebrow",
+ "vision.diff.intro",
+ "vision.diff.p1.body",
+ "vision.diff.p1.title",
+ "vision.diff.p2.body",
+ "vision.diff.p2.title",
+ "vision.diff.p3.body",
+ "vision.diff.p3.title",
+ "vision.diff.title",
+ "vision.footer.legal",
+ "vision.future.eyebrow",
+ "vision.future.p1",
+ "vision.future.p2",
+ "vision.future.pull",
+ "vision.future.title",
+ "vision.hero.eyebrow",
+ "vision.hero.lede",
+ "vision.hero.tag",
+ "vision.hero.title",
+ "vision.meta.description",
+ "vision.meta.title",
+ "vision.origin.eyebrow",
+ "vision.origin.p1",
+ "vision.origin.p2",
+ "vision.origin.quote",
+ "vision.research.eyebrow",
+ "vision.research.p1",
+ "vision.research.p2",
+ "vision.research.pull",
+ "vision.research.title",
+ "vision.thesis.ai",
+ "vision.thesis.eyebrow",
+ "vision.thesis.p1",
+ "vision.thesis.p2",
+ "vision.thesis.pull",
+ "vision.thesis.robot",
+ "vision.thesis.title"
+ ],
"ru": [
- "services.catalog.buildYourComputer.pricing"
+ "footer.vision",
+ "services.catalog.buildYourComputer.pricing",
+ "vision.afford.close",
+ "vision.afford.eyebrow",
+ "vision.afford.intro",
+ "vision.afford.title",
+ "vision.afford.w1.body",
+ "vision.afford.w1.k",
+ "vision.afford.w1.title",
+ "vision.afford.w2.body",
+ "vision.afford.w2.k",
+ "vision.afford.w2.title",
+ "vision.afford.w3.body",
+ "vision.afford.w3.k",
+ "vision.afford.w3.title",
+ "vision.badge.legal",
+ "vision.badge.region",
+ "vision.close.build.body",
+ "vision.close.build.cta",
+ "vision.close.build.k",
+ "vision.close.build.title",
+ "vision.close.commercial",
+ "vision.close.eyebrow",
+ "vision.close.support.body",
+ "vision.close.support.cta",
+ "vision.close.support.k",
+ "vision.close.support.title",
+ "vision.close.title",
+ "vision.diff.eyebrow",
+ "vision.diff.intro",
+ "vision.diff.p1.body",
+ "vision.diff.p1.title",
+ "vision.diff.p2.body",
+ "vision.diff.p2.title",
+ "vision.diff.p3.body",
+ "vision.diff.p3.title",
+ "vision.diff.title",
+ "vision.footer.legal",
+ "vision.future.eyebrow",
+ "vision.future.p1",
+ "vision.future.p2",
+ "vision.future.pull",
+ "vision.future.title",
+ "vision.hero.eyebrow",
+ "vision.hero.lede",
+ "vision.hero.tag",
+ "vision.hero.title",
+ "vision.meta.description",
+ "vision.meta.title",
+ "vision.origin.eyebrow",
+ "vision.origin.p1",
+ "vision.origin.p2",
+ "vision.origin.quote",
+ "vision.research.eyebrow",
+ "vision.research.p1",
+ "vision.research.p2",
+ "vision.research.pull",
+ "vision.research.title",
+ "vision.thesis.ai",
+ "vision.thesis.eyebrow",
+ "vision.thesis.p1",
+ "vision.thesis.p2",
+ "vision.thesis.pull",
+ "vision.thesis.robot",
+ "vision.thesis.title"
]
}
}
diff --git a/src/app/[locale]/vision/content.tsx b/src/app/[locale]/vision/content.tsx
new file mode 100644
index 000000000..1019919f1
--- /dev/null
+++ b/src/app/[locale]/vision/content.tsx
@@ -0,0 +1,214 @@
+import { getTranslations } from 'next-intl/server'
+import { Link } from '@/i18n/navigation'
+import { ORG } from '@/config/org'
+import { ROUTES } from '@/config/routes'
+import type { ReactNode } from 'react'
+
+/**
+ * evig — the vision (manifesto).
+ * Full-bleed dark brand surface; opts out of the standard chrome via
+ * ConditionalMainLayout and renders its own header/footer. All colour comes
+ * from the scoped `.theme-vision` tokens in globals.css — zero literal hex.
+ */
+
+// The refined "eternal loop" mark (single-stroke closed infinity, tilted −8°).
+const LOOP_D =
+ 'M32 32 C24 19 12 19 12 32 C12 45 24 45 32 32 C40 19 52 19 52 32 C52 45 40 45 32 32'
+
+function Mark({ className, width = 7 }: { className?: string; width?: number }) {
+ return (
+
+ )
+}
+
+function HeroLoop({ label }: { label: string }) {
+ return (
+
+ )
+}
+
+export default async function VisionContent({ locale }: { locale: string }) {
+ const t = await getTranslations({ locale, namespace: 'vision' })
+
+ // Rich-text tag handlers shared across paragraphs.
+ const tags = {
+ b: (c: ReactNode) => {c},
+ em: (c: ReactNode) => {c},
+ lime: (c: ReactNode) => {c},
+ }
+
+ return (
+
+ {/* top bar */}
+
+
+
+
+ {ORG.name}
+
+
+ {t('badge.region')}
+
+ {t('badge.legal')}
+
+
+
+
+
+
+ {/* HERO */}
+
+
+
+ ◆ {t('hero.eyebrow')}
+
+
{t('hero.title')}
+
{t.rich('hero.lede', tags)}
+ {t('hero.tag')}
+
+
+
+
+
+ {/* THESIS — the inequality that matters */}
+
+