{
  "generatedAt": "2026-08-17T05:18:18.236Z",
  "image": {
    "width": 1600,
    "height": 900,
    "format": "jpeg",
    "encoder": "mozjpeg via sharp 0.35.1",
    "chromaSubsampling": "4:2:0"
  },
  "weights": [
    {
      "id": "q12",
      "quality": 12,
      "file": "img/hero-q12.jpg",
      "bytes": 18302,
      "kb": 18
    },
    {
      "id": "q22",
      "quality": 22,
      "file": "img/hero-q22.jpg",
      "bytes": 64517,
      "kb": 63
    },
    {
      "id": "q40",
      "quality": 40,
      "file": "img/hero-q40.jpg",
      "bytes": 148675,
      "kb": 145
    },
    {
      "id": "q62",
      "quality": 62,
      "file": "img/hero-q62.jpg",
      "bytes": 252729,
      "kb": 247
    },
    {
      "id": "q82",
      "quality": 82,
      "file": "img/hero-q82.jpg",
      "bytes": 450454,
      "kb": 440
    },
    {
      "id": "q95",
      "quality": 95,
      "file": "img/hero-q95.jpg",
      "bytes": 823364,
      "kb": 804
    }
  ],
  "variants": [
    {
      "id": "server-img",
      "label": "Server-rendered <img>",
      "note": "The image is in the HTML the server sent. The preload scanner finds it while the parser is still working."
    },
    {
      "id": "server-img-preload",
      "label": "Server-rendered <img> + preload",
      "note": "Same markup plus a preload hint with fetchpriority=high in <head>."
    },
    {
      "id": "server-img-lazy",
      "label": "Server-rendered <img> with loading=\"lazy\"",
      "note": "The mistake every guide warns about, measured rather than asserted."
    },
    {
      "id": "css-background",
      "label": "CSS background-image",
      "note": "The URL lives in an external stylesheet, so it cannot be found until that CSS has downloaded and the rule has matched an element."
    },
    {
      "id": "client-island",
      "label": "Client-rendered <img>",
      "note": "A script inserts the hero after the document loads, the way a client-only hero component does. The script is deliberately tiny (under 1 KB), so what this measures is discovery cost alone, not framework weight."
    },
    {
      "id": "text-only",
      "label": "No hero image (control)",
      "note": "Same page with an empty placeholder box. Establishes the floor LCP for this HTML, CSS and text."
    }
  ],
  "pages": [
    {
      "variant": "text-only",
      "weight": "none",
      "kb": 0,
      "bytes": 0,
      "path": "/text-only.html"
    },
    {
      "variant": "server-img",
      "weight": "q12",
      "kb": 18,
      "bytes": 18302,
      "path": "/server-img--q12.html"
    },
    {
      "variant": "server-img",
      "weight": "q22",
      "kb": 63,
      "bytes": 64517,
      "path": "/server-img--q22.html"
    },
    {
      "variant": "server-img",
      "weight": "q40",
      "kb": 145,
      "bytes": 148675,
      "path": "/server-img--q40.html"
    },
    {
      "variant": "server-img",
      "weight": "q62",
      "kb": 247,
      "bytes": 252729,
      "path": "/server-img--q62.html"
    },
    {
      "variant": "server-img",
      "weight": "q82",
      "kb": 440,
      "bytes": 450454,
      "path": "/server-img--q82.html"
    },
    {
      "variant": "server-img",
      "weight": "q95",
      "kb": 804,
      "bytes": 823364,
      "path": "/server-img--q95.html"
    },
    {
      "variant": "server-img-preload",
      "weight": "q12",
      "kb": 18,
      "bytes": 18302,
      "path": "/server-img-preload--q12.html"
    },
    {
      "variant": "server-img-preload",
      "weight": "q22",
      "kb": 63,
      "bytes": 64517,
      "path": "/server-img-preload--q22.html"
    },
    {
      "variant": "server-img-preload",
      "weight": "q40",
      "kb": 145,
      "bytes": 148675,
      "path": "/server-img-preload--q40.html"
    },
    {
      "variant": "server-img-preload",
      "weight": "q62",
      "kb": 247,
      "bytes": 252729,
      "path": "/server-img-preload--q62.html"
    },
    {
      "variant": "server-img-preload",
      "weight": "q82",
      "kb": 440,
      "bytes": 450454,
      "path": "/server-img-preload--q82.html"
    },
    {
      "variant": "server-img-preload",
      "weight": "q95",
      "kb": 804,
      "bytes": 823364,
      "path": "/server-img-preload--q95.html"
    },
    {
      "variant": "server-img-lazy",
      "weight": "q12",
      "kb": 18,
      "bytes": 18302,
      "path": "/server-img-lazy--q12.html"
    },
    {
      "variant": "server-img-lazy",
      "weight": "q22",
      "kb": 63,
      "bytes": 64517,
      "path": "/server-img-lazy--q22.html"
    },
    {
      "variant": "server-img-lazy",
      "weight": "q40",
      "kb": 145,
      "bytes": 148675,
      "path": "/server-img-lazy--q40.html"
    },
    {
      "variant": "server-img-lazy",
      "weight": "q62",
      "kb": 247,
      "bytes": 252729,
      "path": "/server-img-lazy--q62.html"
    },
    {
      "variant": "server-img-lazy",
      "weight": "q82",
      "kb": 440,
      "bytes": 450454,
      "path": "/server-img-lazy--q82.html"
    },
    {
      "variant": "server-img-lazy",
      "weight": "q95",
      "kb": 804,
      "bytes": 823364,
      "path": "/server-img-lazy--q95.html"
    },
    {
      "variant": "css-background",
      "weight": "q12",
      "kb": 18,
      "bytes": 18302,
      "path": "/css-background--q12.html"
    },
    {
      "variant": "css-background",
      "weight": "q22",
      "kb": 63,
      "bytes": 64517,
      "path": "/css-background--q22.html"
    },
    {
      "variant": "css-background",
      "weight": "q40",
      "kb": 145,
      "bytes": 148675,
      "path": "/css-background--q40.html"
    },
    {
      "variant": "css-background",
      "weight": "q62",
      "kb": 247,
      "bytes": 252729,
      "path": "/css-background--q62.html"
    },
    {
      "variant": "css-background",
      "weight": "q82",
      "kb": 440,
      "bytes": 450454,
      "path": "/css-background--q82.html"
    },
    {
      "variant": "css-background",
      "weight": "q95",
      "kb": 804,
      "bytes": 823364,
      "path": "/css-background--q95.html"
    },
    {
      "variant": "client-island",
      "weight": "q12",
      "kb": 18,
      "bytes": 18302,
      "path": "/client-island--q12.html"
    },
    {
      "variant": "client-island",
      "weight": "q22",
      "kb": 63,
      "bytes": 64517,
      "path": "/client-island--q22.html"
    },
    {
      "variant": "client-island",
      "weight": "q40",
      "kb": 145,
      "bytes": 148675,
      "path": "/client-island--q40.html"
    },
    {
      "variant": "client-island",
      "weight": "q62",
      "kb": 247,
      "bytes": 252729,
      "path": "/client-island--q62.html"
    },
    {
      "variant": "client-island",
      "weight": "q82",
      "kb": 440,
      "bytes": 450454,
      "path": "/client-island--q82.html"
    },
    {
      "variant": "client-island",
      "weight": "q95",
      "kb": 804,
      "bytes": 823364,
      "path": "/client-island--q95.html"
    }
  ]
}