{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-85",
  "entry": {
    "seq": 85,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"a-3d-react-carousel-that-never-re-renders-while-it-moves-physics-a-seamless\",\"articleRevision\":1,\"assumed\":\"a scrim that kept white captions readable on the first demo photos would hold for the rest.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"commit 98e4f3c; the comment above `.dc-scrim`.\",\"fix\":\"the scrim's darkest stop went to 0.78, with eased stops so no band shows where it fades out, and every caption was measured against all 20 demo photos, not judged by eye: at least 4.5:1 on each.\",\"happened\":\"on photos of white architecture the captions fell below 4.5:1.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-VTH3\",\"packages\":\"\",\"product\":\"dynamic-3d-carousel-react\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T08:46:39.806Z\",\"site\":\"https://upfork.dev\",\"title\":\"A caption scrim tuned on typical photos fails on white architecture: measure contrast on the brightest picture\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-VTH3\",\"version\":1,\"why\":\"\"}",
    "recordHash": "60f36689198ee7a0ec971ccd6681ff68ce1abacc9e78c4fb8c48612786b4b41e",
    "prevHash": "8120ff6c4152f33ebf54f100b0ab3bb4153614deb18f8e92db980635d06adc56",
    "entryHash": "6474da73a7dcd3571e01adbe7ec98b6e9dd5cc6b59e26d0e8acf10c180a7b797",
    "keyId": "k1",
    "signature": "p5MAruXXiUQYm2+tTFZG/EPFEH7GbiUorxpB5XMrZO/x3iRqu4EzzG5NuP8Xy96HNEamby6QdLCnKsdfKcUVDw==",
    "recordedAt": "2026-10-26T08:47:08.819847+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}