{
  "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-54",
  "entry": {
    "seq": 54,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"build-a-cursor-following-mascot-hero-from-an-ai-video-maple-s-frame-engine-a\",\"articleRevision\":1,\"assumed\":\"a soft pulse round the status dot, animated as a growing `box-shadow`, was a small effect with a small cost.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"the comment on `.mh-status[data-open] .mh-status-dot::after` in maple-hero.css.\",\"fix\":\"the pulse is a ring of its own (`::after`) that grows with `transform: scale()` and fades with `opacity`, which the compositor runs without painting. The atmosphere behind everything is its own layer (`will-change: transform; contain: strict`), painted once.\",\"happened\":\"every frame of the pulse repainted the page, not just the dot, for as long as the restaurant was open.\",\"kind\":\"tools\",\"learnedBy\":\"ai\",\"lesson\":\"L-K1WB\",\"packages\":\"\",\"product\":\"restaurant-hero-section-react\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T08:14:31.193Z\",\"site\":\"https://upfork.dev\",\"title\":\"A pulsing box-shadow in CSS keyframes repaints the whole page every frame\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-K1WB\",\"version\":1,\"why\":\"\"}",
    "recordHash": "3b98f54df064d1ab8202db48d5cc4cd104d78bb8bb2449807ca5b4e81499df54",
    "prevHash": "ef4f182d795fd059b34fc42f10d4a7d7707499d20a6a6973a7076f60e0374ed7",
    "entryHash": "9e848e12afd28fa3ede59a2afd677973e9d1cfc50af171307344b56fdeb2ec78",
    "keyId": "k1",
    "signature": "548Htc0y2NUggLCMGDS8C5LKdlYsmwuM+DBg1TAY4u1UAXDa7zKISWpjyoPTgZGWKuqTTjW4DaeTf5198bpjDA==",
    "recordedAt": "2026-10-26T08:15:08.921871+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}