{
  "name": "Parallel Parking Visualizer — Noduly",
  "short_name": "Parallel Parking",
  "description": "Step-by-step parallel-parking trainer with car visualization, reference points, animation scrubber, DMV scoring, common mistakes, and teacher mode.",
  "start_url": "./index.html",
  "scope": "./",
  "display": "standalone",
  "orientation": "any",
  "background_color": "#0a0e1a",
  "theme_color": "#4F46E5",
  "lang": "en",
  "icons": [
    {
      "src": "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 192'><defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%234F46E5'/><stop offset='1' stop-color='%2306B6D4'/></linearGradient></defs><rect width='192' height='192' rx='32' fill='url(%23g)'/><rect x='28' y='110' width='40' height='24' rx='4' fill='%23facc15'/><rect x='124' y='110' width='40' height='24' rx='4' fill='%23facc15'/><rect x='72' y='105' width='48' height='34' rx='5' fill='%23ef4444' transform='rotate(-15 96 122)'/></svg>",
      "sizes": "192x192",
      "type": "image/svg+xml",
      "purpose": "any"
    },
    {
      "src": "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%234F46E5'/><stop offset='1' stop-color='%2306B6D4'/></linearGradient></defs><rect width='512' height='512' rx='80' fill='url(%23g)'/><rect x='72' y='290' width='112' height='72' rx='10' fill='%23facc15'/><rect x='328' y='290' width='112' height='72' rx='10' fill='%23facc15'/><rect x='192' y='270' width='130' height='100' rx='12' fill='%23ef4444' transform='rotate(-15 256 320)'/></svg>",
      "sizes": "512x512",
      "type": "image/svg+xml",
      "purpose": "any maskable"
    }
  ]
}
