# Lô tô — Android (Capacitor wrapper) ![ci](https://github.com/tiennm99/loto/actions/workflows/ci.yml/badge.svg) Fully-offline Android wrapper around the [`web/`](../web) SvelteKit PWA. All assets — HTML, JS, CSS, and 184 voice MP3s — are bundled into the APK at build time. No network is required at runtime. > **Note:** the previous native Kotlin/Compose port lives in git history at > the commit titled `docs: add post-implementation todo list` and earlier. This > is now a thin wrapper over `web/`; the web app evolves and we rebuild + ship. ## How it works ``` ../web/ └── npm run build → ../web/build/ (SvelteKit static output) ↓ npx cap sync ↓ android/app/src/main/assets/public/ (bundled into APK) ↓ WebView serves https://localhost/* off-disk ``` Capacitor's bridge serves the bundled site from `https://localhost`, which is loopback only (no INTERNET permission requested). Workbox precache, IndexedDB, and the `