{
  "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-97",
  "entry": {
    "seq": 97,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"orbitgallery-a-react-three-fiber-carousel-a-glide-that-always-lands-and-nine\",\"articleRevision\":1,\"assumed\":\"a floor grid drawn with the theme's 8% white, and a card hairline at 12%, would look like 8% and 12%, as they would in CSS.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"commit 11cf14a (the floor and its grid); the comments above both blocks.\",\"fix\":\"light lines on a dark floor get their alpha in perceptual terms, `mix(alpha, pow(alpha, 2.2) * 3.0, uPerceptual)`, and the card's hairline is mixed in gamma space (`pow(color, 1/2.2)`, mix, back with `pow(…, 2.2)`), like CSS, so 12% reads as 12%.\",\"happened\":\"three.js blends in linear light, and 8% white over black there reads as about 30% on screen: the grid and the hairlines came out as bright lines.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-9DT4\",\"packages\":\"three@0.182\",\"product\":\"orbit-gallery-3d-carousel-react\",\"productRevision\":4,\"publishedAt\":\"2026-10-26T09:30:43.802Z\",\"site\":\"https://upfork.dev\",\"title\":\"Alpha blending in linear light makes an 8% white line on black look like 30%: mix thin lines in perceptual space\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-9DT4\",\"version\":1,\"why\":\"\"}",
    "recordHash": "c938030717eac8b88eaa4181c7c0127b965983405d1e6e0429f085d88ef42d3e",
    "prevHash": "30f42d1a72502486dc43a5f94c2e8c62dbd26532f74fa9f76c59d288df625653",
    "entryHash": "49139879f6b7c9913b078cc9d417d7c018e538a62eb991054184c43b190e6aff",
    "keyId": "k1",
    "signature": "a8vKag5XOCFqeoLcNHDSiz3i68BwweS7HvCAdhMGQB2XbC7+p2a0tl8PRUoC9abdx5wTbrso1n2l+xsRTguMBA==",
    "recordedAt": "2026-10-26T09:31:08.796345+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}