// iConference KI-Framework — node data (DE / EN). RAG is the centre.
const FW = {
  de: {
    title: ["Ganzheitliches", "KI-Framework"],
    barTitle: "Ganzheitliches KI-Framework",
    intro: { eyebrow: "RAG im Zentrum", h: "Ein Framework, kein Werkzeugkasten.", p: "Klicken Sie auf einen Baustein. Alles richtet sich am Kern aus: Retrieval-Augmented Generation auf Ihrem eigenen Wissen." },
    hubSub: "IM ZENTRUM",
    hint: "Baustein wählen für Details",
    back: "Zurück zur Website",
    nodes: [
      { id: "user", icon: "user", color: "#d98aa0", lab: "Benutzer",
        lead: "Die Mitarbeiterin stellt ihre Frage in natürlicher Sprache — der Einstieg in den RAG-Kreislauf.",
        points: ["Frage in Alltagssprache", "Dialog: Text, Sprache, Unterlagen", "Antwort mit Quellenverweis"],
        tags: ["Frage", "Antwort", "Dialog"] },
      { id: "daten", icon: "database", color: "#2bb6c4", lab: "Daten & Datenhaltung",
        lead: "Wo Ihre Daten leben und wie sie regiert werden — die Grundlage für vertrauenswürdige KI.",
        points: ["Quellen erschliessen und bereinigen", "Embeddings & Vektor-Datenbank", "Governance, Zugriff und Nachvollziehbarkeit", "Hosting: Schweiz, EU oder weltweit"],
        tags: ["Embeddings", "Vektor-DB", "Governance"] },
      { id: "context", icon: "sliders-horizontal", color: "#b58fd6", lab: "Context Engineering",
        lead: "Was das Modell sieht: der richtige Kontext zur richtigen Zeit — bewusst gestaltet.",
        points: ["Kontextfenster gezielt füllen", "Leitplanken & Tool-Aufrufe", "Relevanz vor Menge"],
        tags: ["Kontextfenster", "Guardrails", "Tools"] },
      { id: "prompt", icon: "terminal", color: "#d98aa0", lab: "Prompt Engineering",
        lead: "Verlässliche Anweisungen statt Zufall — reproduzierbare Ergebnisse im Betrieb.",
        points: ["Strukturierte, getestete Prompts", "Auswertung & Iteration", "Versionierung wie Code"],
        tags: ["Templates", "Evals", "Versionierung"] },
      { id: "frontier", icon: "cloud", color: "#7fa8d8", lab: "Frontier-Modelle",
        lead: "Gehostete Spitzenmodelle für maximale Fähigkeit — dort, wo sie den Unterschied machen.",
        points: ["Höchste Qualität & Reasoning", "Schneller Start, keine Infrastruktur", "Kosten pro Nutzen abgewogen"],
        tags: ["Hosted", "Reasoning", "Skalierung"] },
      { id: "local", icon: "server", color: "#44b888", lab: "Lokale Modelle",
        lead: "On-Prem oder Schweizer Hosting für Datenhoheit, Kosten und Unabhängigkeit.",
        points: ["Sensible Daten bleiben im Haus", "Planbare Kosten im Betrieb", "Unabhängigkeit von Anbietern"],
        tags: ["On-Prem", "Datenhoheit", "Open-Weights"] },
    ],
  },
  en: {
    title: ["Holistic", "AI framework"],
    barTitle: "Holistic AI framework",
    intro: { eyebrow: "RAG at the centre", h: "A framework, not a toolbox.", p: "Click a building block. Everything aligns to the core: retrieval-augmented generation on your own knowledge." },
    hubSub: "AT THE CENTRE",
    hint: "Select a block for detail",
    back: "Back to website",
    nodes: [
      { id: "user", icon: "user", color: "#d98aa0", lab: "User",
        lead: "The employee asks a question in natural language — the entry point into the RAG loop.",
        points: ["Everyday language", "Dialogue: text, voice, documents", "Answer with source references"],
        tags: ["Question", "Answer", "Dialogue"] },
      { id: "daten", icon: "database", color: "#2bb6c4", lab: "Data & storage",
        lead: "Where your data lives and how it's governed — the foundation for trustworthy AI.",
        points: ["Ingest and clean your sources", "Embeddings & vector database", "Governance, access and auditability", "Hosting: Switzerland, the EU or worldwide"],
        tags: ["Embeddings", "Vector DB", "Governance"] },
      { id: "context", icon: "sliders-horizontal", color: "#b58fd6", lab: "Context engineering",
        lead: "What the model sees: the right context at the right time — designed on purpose.",
        points: ["Fill the context window deliberately", "Guardrails & tool calls", "Relevance over volume"],
        tags: ["Context window", "Guardrails", "Tools"] },
      { id: "prompt", icon: "terminal", color: "#d98aa0", lab: "Prompt engineering",
        lead: "Reliable instructions instead of chance — reproducible results in production.",
        points: ["Structured, tested prompts", "Evaluation & iteration", "Versioned like code"],
        tags: ["Templates", "Evals", "Versioning"] },
      { id: "frontier", icon: "cloud", color: "#7fa8d8", lab: "Frontier models",
        lead: "Hosted top-tier models for maximum capability — where they make the difference.",
        points: ["Highest quality & reasoning", "Fast start, no infrastructure", "Cost weighed against value"],
        tags: ["Hosted", "Reasoning", "Scale"] },
      { id: "local", icon: "server", color: "#44b888", lab: "Local models",
        lead: "On-prem or Swiss hosting for data sovereignty, cost and independence.",
        points: ["Sensitive data stays in-house", "Predictable running costs", "Independence from vendors"],
        tags: ["On-prem", "Sovereignty", "Open-weights"] },
    ],
  },
};
// ring positions (% of graph box) for the 6 nodes, clockwise from top
const POS = [
  { left: "50%", top: "8%" },   { left: "87%", top: "30%" },
  { left: "87%", top: "70%" },  { left: "50%", top: "92%" },
  { left: "13%", top: "70%" },  { left: "13%", top: "30%" },
];
window.FW = FW; window.POS = POS;
