{
  "$comment": [
    "What turns a home-screen bookmark into something that launches without browser chrome.",
    "",
    "start_url is /app, not /. The landing page exists to persuade strangers; someone who",
    "installed the app is past being persuaded and wants the thing itself.",
    "",
    "theme_color and background_color are #fcfaf6, which is oklch(0.985 0.006 90) from",
    "--background in src/styles.css converted to hex. A manifest cannot read CSS, so this is a",
    "genuine duplicate: change the warm off-white there and change it here, or the splash screen",
    "will flash a colour the app never uses.",
    "",
    "No 'display_override' and no service worker. Offline is not a goal, and a worker is the",
    "usual way an installed app ends up permanently one version behind — which already happened",
    "here once, from a plain bookmark, without one.",
    "",
    "The 512 is declared 'any maskable' rather than shipping a second padded file, because the",
    "artwork already satisfies what maskable asks for: the gradient bleeds to all four edges and",
    "every piece of content sits inside the safe circle. Measured on the 2048 source — the",
    "crescent's leftmost point is 755px from centre against a 819px safe radius, and the bottom",
    "of the ring is 733px. Redraw the icon with anything closer to an edge and this needs a",
    "separate maskable file with the artwork scaled down, or Android will crop into it."
  ],
  "id": "/",
  "name": "Angel",
  "short_name": "Angel",
  "description": "Personal meditations and manifestations, written for your life.",
  "start_url": "/app",
  "scope": "/",
  "display": "standalone",
  "orientation": "portrait",
  "theme_color": "#fcfaf6",
  "background_color": "#fcfaf6",
  "icons": [
    {
      "src": "/icons/icon-192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icons/icon-512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any maskable"
    }
  ]
}
