{
  "scope": "Standalone HTML prototype only; no app/AI/backend tested",
  "checks": [
    "pulse primary text contrast >= 4.5:1",
    "pulse secondary text contrast >= 4.5:1",
    "pulse button text contrast >= 4.5:1",
    "form primary text contrast >= 4.5:1",
    "form secondary text contrast >= 4.5:1",
    "form button text contrast >= 4.5:1",
    "play primary text contrast >= 4.5:1",
    "play secondary text contrast >= 4.5:1",
    "play button text contrast >= 4.5:1",
    "a: nine screens render",
    "a: fixed artboards contain their layout",
    "b: nine screens render",
    "b: fixed artboards contain their layout",
    "c: nine screens render",
    "c: fixed artboards contain their layout",
    "Category filters show one squat",
    "Countdown can reset",
    "Countdown automatically enters live screen",
    "Skeleton display toggles independently",
    "Demo rep action updates counter",
    "Pause dialog appears",
    "Escape closes dialog",
    "Tracking recovery guidance appears",
    "Result preserves simulated reps",
    "Upload choice required in scan concept",
    "Scan does not pretend to run backend",
    "Editor rejects reversed angle range",
    "Board page no horizontal overflow at 360px",
    "Board page no horizontal overflow at 390px",
    "Board page no horizontal overflow at 768px",
    "Research page renders",
    "Research page no horizontal overflow at 390px",
    "No uncaught browser JavaScript errors"
  ],
  "consoleErrors": [],
  "contrast": {
    "pulse": {
      "primary": 16.2,
      "secondary": 9.48,
      "button": 13.94
    },
    "form": {
      "primary": 10.41,
      "secondary": 5.03,
      "button": 8.59
    },
    "play": {
      "primary": 11.76,
      "secondary": 5.54,
      "button": 7.55
    }
  }
}