diff --git a/README.md b/README.md
index 6a9a147..d63ef71 100644
--- a/README.md
+++ b/README.md
@@ -348,26 +348,24 @@ The download URLs + per-model metadata live in
## Architecture at a glance
-```
- ┌─────────────────────────────────────────┐
- │ Your app (Compose / SwiftUI / …) │
- └─────────────────────────────────────────┘
- │
- ┌─────────────────▼─────────────────────────┐
- │ EngineRegistry ← HardwareProvider │
- │ (picks LiteRT vs MediaPipe vs fallback │
- │ based on device RAM tier) │
- └─────────────────┬─────────────────────────┘
- │
- ┌──────────────────────┼────────────────────────┐
- ▼ ▼ ▼
- LocalAiEngine EmbeddingEngine ModelManager
- (LiteRT-LM / (MediaPipe Tasks (Ktor download
- Gemma 4) Text Embedder) + SHA-256 +
- atomic move)
+```mermaid
+flowchart TB
+ app["Your app (Compose / SwiftUI / …)"]
+ sel["RAM-tier selection · HardwareProvider
picks LLM + embedder + reranker for the device"]
+ lae["LocalAiEngine
LiteRT-LM / Gemma 4"]
+ ee["EmbeddingEngine
EmbeddingGemma / USE-Lite (ONNX, telemetry-free)"]
+ ret["DocumentRetriever
vector + BM25 + rerank (RAG)"]
+ mm["ModelManager
resumable download + SHA-256"]
+ app --> sel
+ sel --> lae
+ sel --> ee --> ret
+ sel --> mm
+
+ classDef n fill:#f5f3ef,stroke:#7FA980,color:#1C1B1A;
+ class app,sel,lae,ee,ret,mm n;
```
-See [`ARCHITECTURE.md`](ARCHITECTURE.md) for the full design rationale, including how the RAM-tier policy works and why the OEM RAM-expansion detection is necessary.
+See [`ARCHITECTURE.md`](ARCHITECTURE.md) for the full design — Mermaid diagrams of the engine/product split and the RAG pipeline, the device-tier policy, and why OEM RAM-expansion detection is necessary.
## Enterprise support, custom implementations & architectural advising