{
  "schemaVersion": 1,
  "startedAt": "2026-10-23T02:04:42.046Z",
  "baseUrl": "https://haam.co",
  "scope": "Public, unauthenticated production pages; no form submission or penetration test.",
  "tools": {
    "lighthouse": "13.4.0",
    "axe": "4.11.0",
    "playwright": "1.56.1",
    "chrome": "155.0.8059.85"
  },
  "performance": [
    {
      "path": "/en",
      "preset": "mobile",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:05:49.792Z",
          "finalUrl": "https://haam.co/en",
          "scores": {
            "performance": 71,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 3201.893,
            "lcp": 4416.893,
            "tbt": 12,
            "cls": 0,
            "speedIndex": 8563.99360804076,
            "bytes": 603830
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-mobile-1.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.43,
              "displayValue": "3.2 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.39,
              "displayValue": "4.4 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.17,
              "displayValue": "8.6 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 900 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.83,
              "displayValue": "4.4 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "5.7 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0.5,
              "displayValue": "2.8 s"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 24 KiB"
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 800 ms"
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 68 KiB"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "lcp-discovery-insight",
              "title": "LCP request discovery",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:06:55.536Z",
          "finalUrl": "https://haam.co/en",
          "scores": {
            "performance": 82,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 67
          },
          "metrics": {
            "fcp": 1862.845,
            "lcp": 3408.8450000000003,
            "tbt": 107,
            "cls": 0,
            "speedIndex": 7647.33844005157,
            "bytes": 783178
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-mobile-2.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.88,
              "displayValue": "1.9 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.66,
              "displayValue": "3.4 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.25,
              "displayValue": "7.6 s"
            },
            {
              "id": "total-blocking-time",
              "title": "Total Blocking Time",
              "score": 0.98,
              "displayValue": "110 ms"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.49,
              "displayValue": "250 ms"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 1,230 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.9,
              "displayValue": "3.7 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0,
              "displayValue": "3.4 s"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 52 KiB"
            },
            {
              "id": "robots-txt",
              "title": "robots.txt is not valid",
              "score": 0
            },
            {
              "id": "llms-txt",
              "title": "llms.txt does not follow recommendations",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 1,130 ms"
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 68 KiB"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "lcp-discovery-insight",
              "title": "LCP request discovery",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:07:56.017Z",
          "finalUrl": "https://haam.co/en",
          "scores": {
            "performance": 96,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1849.3649999999998,
            "lcp": 1849.3649999999998,
            "tbt": 5.5,
            "cls": 0,
            "speedIndex": 4105.171167959451,
            "bytes": 837249
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-mobile-3.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.88,
              "displayValue": "1.8 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.98,
              "displayValue": "1.8 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.79,
              "displayValue": "4.1 s"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.99,
              "displayValue": "2.3 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "6.1 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0.5,
              "displayValue": "3.0 s"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 68 KiB"
            },
            {
              "id": "lcp-discovery-insight",
              "title": "LCP request discovery",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 2,
      "complete": true
    },
    {
      "path": "/en",
      "preset": "desktop",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:08:54.753Z",
          "finalUrl": "https://haam.co/en",
          "scores": {
            "performance": 93,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 897.8825,
            "lcp": 897.8825,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 2300.4574018240774,
            "bytes": 1021017
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-desktop-1.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.91,
              "displayValue": "0.9 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.96,
              "displayValue": "0.9 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.49,
              "displayValue": "2.3 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 670 ms"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 570 ms"
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 122 KiB"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "lcp-discovery-insight",
              "title": "LCP request discovery",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:09:52.918Z",
          "finalUrl": "https://haam.co/en",
          "scores": {
            "performance": 95,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 85,
            "agentic-browsing": 67
          },
          "metrics": {
            "fcp": 921.802,
            "lcp": 921.802,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 1711.1521354242736,
            "bytes": 808370
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-desktop-2.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.9,
              "displayValue": "0.9 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.96,
              "displayValue": "0.9 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.74,
              "displayValue": "1.7 s"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "robots-txt",
              "title": "robots.txt is not valid",
              "score": 0
            },
            {
              "id": "llms-txt",
              "title": "llms.txt does not follow recommendations",
              "score": 0
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 122 KiB"
            },
            {
              "id": "lcp-discovery-insight",
              "title": "LCP request discovery",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:10:54.965Z",
          "finalUrl": "https://haam.co/en",
          "scores": {
            "performance": 83,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 85,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1306.2939999999999,
            "lcp": 1369.2939999999999,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 14774.60677766796,
            "bytes": 583651
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-desktop-3.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.68,
              "displayValue": "1.3 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.85,
              "displayValue": "1.4 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0,
              "displayValue": "14.8 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 650 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.99,
              "displayValue": "1.4 s"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 24 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "robots-txt",
              "title": "robots.txt is not valid",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 550 ms"
            },
            {
              "id": "forced-reflow-insight",
              "title": "Forced reflow",
              "score": 0
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 122 KiB"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "lcp-discovery-insight",
              "title": "LCP request discovery",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 1,
      "complete": true
    },
    {
      "path": "/en/about",
      "preset": "mobile",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:12:00.051Z",
          "finalUrl": "https://haam.co/en/about",
          "scores": {
            "performance": 92,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 33
          },
          "metrics": {
            "fcp": 1684.175,
            "lcp": 1684.175,
            "tbt": 10,
            "cls": 0,
            "speedIndex": 6899.035692033175,
            "bytes": 647163
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-about-mobile-1.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.92,
              "displayValue": "1.7 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.99,
              "displayValue": "1.7 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.33,
              "displayValue": "6.9 s"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.99,
              "displayValue": "70 ms"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 770 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.99,
              "displayValue": "2.1 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "11.5 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0.5,
              "displayValue": "8.4 s"
            },
            {
              "id": "aria-prohibited-attr",
              "title": "Elements use prohibited ARIA attributes",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "robots-txt",
              "title": "robots.txt is not valid",
              "score": 0
            },
            {
              "id": "agent-accessibility-tree",
              "title": "Accessibility tree is not well-formed",
              "score": 0
            },
            {
              "id": "llms-txt",
              "title": "llms.txt does not follow recommendations",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 670 ms"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:13:10.530Z",
          "finalUrl": "https://haam.co/en/about",
          "scores": {
            "performance": 96,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 67
          },
          "metrics": {
            "fcp": 1787.726,
            "lcp": 1787.726,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 4239.028538038997,
            "bytes": 539591
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-about-mobile-2.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.9,
              "displayValue": "1.8 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.99,
              "displayValue": "1.8 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.77,
              "displayValue": "4.2 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "4.8 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0.5,
              "displayValue": "2.9 s"
            },
            {
              "id": "aria-prohibited-attr",
              "title": "Elements use prohibited ARIA attributes",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "agent-accessibility-tree",
              "title": "Accessibility tree is not well-formed",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:14:08.690Z",
          "finalUrl": "https://haam.co/en/about",
          "scores": {
            "performance": 93,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 33
          },
          "metrics": {
            "fcp": 1701.5315,
            "lcp": 2228.5315,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 5813.957558003041,
            "bytes": 840262
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-about-mobile-3.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.92,
              "displayValue": "1.7 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.94,
              "displayValue": "2.2 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.49,
              "displayValue": "5.8 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 780 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.99,
              "displayValue": "2.2 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "4.0 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0.5,
              "displayValue": "2.1 s"
            },
            {
              "id": "aria-prohibited-attr",
              "title": "Elements use prohibited ARIA attributes",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "agent-accessibility-tree",
              "title": "Accessibility tree is not well-formed",
              "score": 0
            },
            {
              "id": "llms-txt",
              "title": "llms.txt does not follow recommendations",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 680 ms"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 3,
      "complete": true
    },
    {
      "path": "/en/about",
      "preset": "desktop",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:15:09.270Z",
          "finalUrl": "https://haam.co/en/about",
          "scores": {
            "performance": 98,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 67
          },
          "metrics": {
            "fcp": 554.822,
            "lcp": 554.822,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 1661.5146320774238,
            "bytes": 1032541
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-about-desktop-1.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.99,
              "displayValue": "0.6 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.77,
              "displayValue": "1.7 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 640 ms"
            },
            {
              "id": "aria-prohibited-attr",
              "title": "Elements use prohibited ARIA attributes",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 77 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "agent-accessibility-tree",
              "title": "Accessibility tree is not well-formed",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 540 ms"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:16:06.216Z",
          "finalUrl": "https://haam.co/en/about",
          "scores": {
            "performance": 96,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 67
          },
          "metrics": {
            "fcp": 722.6220000000001,
            "lcp": 722.6220000000001,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 1910.9728100007276,
            "bytes": 1127695
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-about-desktop-2.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.97,
              "displayValue": "0.7 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.99,
              "displayValue": "0.7 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.66,
              "displayValue": "1.9 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 770 ms"
            },
            {
              "id": "aria-prohibited-attr",
              "title": "Elements use prohibited ARIA attributes",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 77 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "agent-accessibility-tree",
              "title": "Accessibility tree is not well-formed",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 670 ms"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:17:04.571Z",
          "finalUrl": "https://haam.co/en/about",
          "scores": {
            "performance": 94,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 67
          },
          "metrics": {
            "fcp": 841.6370000000001,
            "lcp": 841.6370000000001,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 2164.4469718386217,
            "bytes": 656147
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-about-desktop-3.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.93,
              "displayValue": "0.8 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.97,
              "displayValue": "0.8 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.55,
              "displayValue": "2.2 s"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 1,400 ms"
            },
            {
              "id": "aria-prohibited-attr",
              "title": "Elements use prohibited ARIA attributes",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 51 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "agent-accessibility-tree",
              "title": "Accessibility tree is not well-formed",
              "score": 0
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 1,300 ms"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 2,
      "complete": true
    },
    {
      "path": "/en/case-studies/viirus",
      "preset": "mobile",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:18:10.660Z",
          "finalUrl": "https://haam.co/en/case-studies/viirus",
          "scores": {
            "performance": 94,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1227.8005,
            "lcp": 1227.8005,
            "tbt": 234.00000000000023,
            "cls": 0,
            "speedIndex": 4088.5262639946473,
            "bytes": 1277253
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-case-studies-viirus-mobile-1.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.99,
              "displayValue": "1.2 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.79,
              "displayValue": "4.1 s"
            },
            {
              "id": "total-blocking-time",
              "title": "Total Blocking Time",
              "score": 0.86,
              "displayValue": "230 ms"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.41,
              "displayValue": "280 ms"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 1,000 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.98,
              "displayValue": "2.6 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0,
              "displayValue": "4.0 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0,
              "displayValue": "2.0 s"
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 48 KiB"
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 900 ms"
            },
            {
              "id": "image-delivery-insight",
              "title": "Improve image delivery",
              "score": 0.5,
              "displayValue": "Est savings of 18 KiB"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:19:15.305Z",
          "finalUrl": "https://haam.co/en/case-studies/viirus",
          "scores": {
            "performance": 95,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1608.373,
            "lcp": 1608.373,
            "tbt": 160,
            "cls": 0,
            "speedIndex": 4315.808871995519,
            "bytes": 958432
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [
            "The page loaded too slowly to finish within the time limit. Results may be incomplete."
          ],
          "evidence": "en-case-studies-viirus-mobile-2.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.94,
              "displayValue": "1.6 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.99,
              "displayValue": "1.6 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.75,
              "displayValue": "4.3 s"
            },
            {
              "id": "total-blocking-time",
              "title": "Total Blocking Time",
              "score": 0.94,
              "displayValue": "160 ms"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.75,
              "displayValue": "180 ms"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 970 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.96,
              "displayValue": "2.9 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0,
              "displayValue": "6.0 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0,
              "displayValue": "3.9 s"
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 25 KiB"
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 870 ms"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:20:24.800Z",
          "finalUrl": "https://haam.co/en/case-studies/viirus",
          "scores": {
            "performance": 99,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1245.6660000000002,
            "lcp": 1245.6660000000002,
            "tbt": 19,
            "cls": 0,
            "speedIndex": 3547.577980068827,
            "bytes": 1277153
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-case-studies-viirus-mobile-3.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.99,
              "displayValue": "1.2 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.87,
              "displayValue": "3.5 s"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.98,
              "displayValue": "90 ms"
            },
            {
              "id": "server-response-time",
              "title": "Reduce initial server response time",
              "score": 0,
              "displayValue": "Root document took 740 ms"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "4.1 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0,
              "displayValue": "2.2 s"
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 72 KiB"
            },
            {
              "id": "document-latency-insight",
              "title": "Document request latency",
              "score": 0,
              "displayValue": "Est savings of 640 ms"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 2,
      "complete": true
    },
    {
      "path": "/en/case-studies/viirus",
      "preset": "desktop",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:21:09.963Z",
          "finalUrl": "https://haam.co/en/case-studies/viirus",
          "scores": {
            "performance": 100,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 351.6605,
            "lcp": 573.6605,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 826.6713073210527,
            "bytes": 1229979
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-case-studies-viirus-desktop-1.json.gz",
          "findings": [
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.99,
              "displayValue": "0.8 s"
            },
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 73 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "forced-reflow-insight",
              "title": "Forced reflow",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:21:35.305Z",
          "finalUrl": "https://haam.co/en/case-studies/viirus",
          "scores": {
            "performance": 100,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 339.2555,
            "lcp": 540.2555,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 463.5788208547194,
            "bytes": 1229556
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-case-studies-viirus-desktop-2.json.gz",
          "findings": [
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 73 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:21:56.111Z",
          "finalUrl": "https://haam.co/en/case-studies/viirus",
          "scores": {
            "performance": 100,
            "accessibility": 96,
            "best-practices": 100,
            "seo": 92,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 325.803,
            "lcp": 524.803,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 407.32837502083777,
            "bytes": 1229691
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-case-studies-viirus-desktop-3.json.gz",
          "findings": [
            {
              "id": "color-contrast",
              "title": "Background and foreground colors do not have a sufficient contrast ratio.",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 73 KiB"
            },
            {
              "id": "link-text",
              "title": "Links do not have descriptive text",
              "score": 0,
              "displayValue": "2 links found"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 2,
      "complete": true
    },
    {
      "path": "/en/start",
      "preset": "mobile",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:22:18.779Z",
          "finalUrl": "https://haam.co/en/start",
          "scores": {
            "performance": 91,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1091.74,
            "lcp": 3361.74,
            "tbt": 127,
            "cls": 0,
            "speedIndex": 2066.1187042192414,
            "bytes": 1342761
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-start-mobile-1.json.gz",
          "findings": [
            {
              "id": "first-contentful-paint",
              "title": "First Contentful Paint",
              "score": 0.99,
              "displayValue": "1.1 s"
            },
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.68,
              "displayValue": "3.4 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.99,
              "displayValue": "2.1 s"
            },
            {
              "id": "total-blocking-time",
              "title": "Total Blocking Time",
              "score": 0.96,
              "displayValue": "130 ms"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.78,
              "displayValue": "170 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.92,
              "displayValue": "3.5 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0,
              "displayValue": "3.9 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0,
              "displayValue": "1.7 s"
            },
            {
              "id": "valid-source-maps",
              "title": "Missing source maps for large first-party JavaScript",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 175 KiB"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:22:43.902Z",
          "finalUrl": "https://haam.co/en/start",
          "scores": {
            "performance": 90,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1064.8735000000001,
            "lcp": 3350.8735,
            "tbt": 179,
            "cls": 0,
            "speedIndex": 1333.1616640115021,
            "bytes": 1342752
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-start-mobile-2.json.gz",
          "findings": [
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.68,
              "displayValue": "3.4 s"
            },
            {
              "id": "total-blocking-time",
              "title": "Total Blocking Time",
              "score": 0.92,
              "displayValue": "180 ms"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.83,
              "displayValue": "150 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.92,
              "displayValue": "3.5 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0,
              "displayValue": "3.9 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0,
              "displayValue": "1.7 s"
            },
            {
              "id": "valid-source-maps",
              "title": "Missing source maps for large first-party JavaScript",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 175 KiB"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:23:18.832Z",
          "finalUrl": "https://haam.co/en/start",
          "scores": {
            "performance": 86,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 1019.655,
            "lcp": 3529.6549999999997,
            "tbt": 252.5,
            "cls": 0,
            "speedIndex": 2029.6500723710535,
            "bytes": 1342994
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "mobile",
            "throttling": {
              "rttMs": 150,
              "throughputKbps": 1638.4,
              "requestLatencyMs": 562.5,
              "downloadThroughputKbps": 1474.5600000000002,
              "uploadThroughputKbps": 675,
              "cpuSlowdownMultiplier": 4
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": true,
              "width": 412,
              "height": 823,
              "deviceScaleFactor": 1.75,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Linux; Android 11; moto g power (2022)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-start-mobile-3.json.gz",
          "findings": [
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.63,
              "displayValue": "3.5 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.99,
              "displayValue": "2.0 s"
            },
            {
              "id": "total-blocking-time",
              "title": "Total Blocking Time",
              "score": 0.84,
              "displayValue": "250 ms"
            },
            {
              "id": "max-potential-fid",
              "title": "Max Potential First Input Delay",
              "score": 0.68,
              "displayValue": "200 ms"
            },
            {
              "id": "interactive",
              "title": "Time to Interactive",
              "score": 0.91,
              "displayValue": "3.6 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0,
              "displayValue": "6.4 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0,
              "displayValue": "2.3 s"
            },
            {
              "id": "valid-source-maps",
              "title": "Missing source maps for large first-party JavaScript",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 175 KiB"
            },
            {
              "id": "forced-reflow-insight",
              "title": "Forced reflow",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 2,
      "complete": true
    },
    {
      "path": "/en/start",
      "preset": "desktop",
      "runs": [
        {
          "run": 1,
          "fetchedAt": "2026-10-23T02:23:56.123Z",
          "finalUrl": "https://haam.co/en/start",
          "scores": {
            "performance": 99,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 323.244,
            "lcp": 747.744,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 829.4200962210933,
            "bytes": 1305093
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-start-desktop-1.json.gz",
          "findings": [
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.98,
              "displayValue": "0.7 s"
            },
            {
              "id": "speed-index",
              "title": "Speed Index",
              "score": 0.99,
              "displayValue": "0.8 s"
            },
            {
              "id": "valid-source-maps",
              "title": "Missing source maps for large first-party JavaScript",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 175 KiB"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 2,
          "fetchedAt": "2026-10-23T02:24:24.218Z",
          "finalUrl": "https://haam.co/en/start",
          "scores": {
            "performance": 100,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 338.00800000000004,
            "lcp": 751.008,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 628.053025258783,
            "bytes": 1305349
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-start-desktop-2.json.gz",
          "findings": [
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.98,
              "displayValue": "0.8 s"
            },
            {
              "id": "valid-source-maps",
              "title": "Missing source maps for large first-party JavaScript",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 123 KiB"
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        },
        {
          "run": 3,
          "fetchedAt": "2026-10-23T02:24:52.931Z",
          "finalUrl": "https://haam.co/en/start",
          "scores": {
            "performance": 100,
            "accessibility": 100,
            "best-practices": 100,
            "seo": 100,
            "agentic-browsing": 100
          },
          "metrics": {
            "fcp": 347.767,
            "lcp": 722.767,
            "tbt": 0,
            "cls": 0,
            "speedIndex": 599.7229778668361,
            "bytes": 534050
          },
          "settings": {
            "output": [
              "json"
            ],
            "maxWaitForFcp": 30000,
            "maxWaitForLoad": 45000,
            "pauseAfterFcpMs": 1000,
            "pauseAfterLoadMs": 1000,
            "networkQuietThresholdMs": 1000,
            "cpuQuietThresholdMs": 1000,
            "formFactor": "desktop",
            "throttling": {
              "rttMs": 40,
              "throughputKbps": 10240,
              "requestLatencyMs": 0,
              "downloadThroughputKbps": 0,
              "uploadThroughputKbps": 0,
              "cpuSlowdownMultiplier": 1
            },
            "throttlingMethod": "simulate",
            "screenEmulation": {
              "mobile": false,
              "width": 1350,
              "height": 940,
              "deviceScaleFactor": 1,
              "disabled": false
            },
            "emulatedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
            "auditMode": false,
            "gatherMode": false,
            "clearStorageTypes": [
              "file_systems",
              "shader_cache",
              "service_workers",
              "cache_storage"
            ],
            "disableStorageReset": false,
            "debugNavigation": false,
            "channel": "cli",
            "usePassiveGathering": false,
            "disableFullPageScreenshot": false,
            "skipAboutBlank": false,
            "blankPage": "about:blank",
            "ignoreStatusCode": false,
            "locale": "en-US",
            "blockedUrlPatterns": null,
            "additionalTraceCategories": null,
            "extraHeaders": null,
            "precomputedLanternData": null,
            "onlyAudits": null,
            "onlyCategories": null,
            "skipAudits": null
          },
          "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/155.0.0.0 Safari/537.36",
          "warnings": [],
          "evidence": "en-start-desktop-3.json.gz",
          "findings": [
            {
              "id": "largest-contentful-paint",
              "title": "Largest Contentful Paint",
              "score": 0.99,
              "displayValue": "0.7 s"
            },
            {
              "id": "mainthread-work-breakdown",
              "title": "Minimize main-thread work",
              "score": 0.5,
              "displayValue": "2.0 s"
            },
            {
              "id": "bootup-time",
              "title": "Reduce JavaScript execution time",
              "score": 0.5,
              "displayValue": "1.5 s"
            },
            {
              "id": "valid-source-maps",
              "title": "Missing source maps for large first-party JavaScript",
              "score": 0
            },
            {
              "id": "label-content-name-mismatch",
              "title": "Elements with visible text labels do not have matching accessible names.",
              "score": 0
            },
            {
              "id": "unused-javascript",
              "title": "Reduce unused JavaScript",
              "score": 0,
              "displayValue": "Est savings of 94 KiB"
            },
            {
              "id": "lcp-breakdown-insight",
              "title": "LCP breakdown",
              "score": 0
            },
            {
              "id": "legacy-javascript-insight",
              "title": "Legacy JavaScript",
              "score": 0.5,
              "displayValue": "Est savings of 14 KiB"
            },
            {
              "id": "network-dependency-tree-insight",
              "title": "Network dependency tree",
              "score": 0
            },
            {
              "id": "render-blocking-insight",
              "title": "Render-blocking requests",
              "score": 0.5
            }
          ]
        }
      ],
      "representativeRun": 3,
      "complete": true
    }
  ],
  "browser": [
    {
      "path": "/en",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Finding what's on</span><span>Calendars that don't lie</span><span>Buying tickets fast</span><span>Actually booking the room</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Digital hoarding</span><span>Making clicking fun</span><span>Speaking your language</span><span>Accidental learning</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Stopping internal fights</span><span>Getting people admitted</span><span>Who gets to publish what</span><span>Opening the doors</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Signing up in 55 languages</span><span>Invites that spread</span><span>Surviving one spike a year</span><span>Sharing where people already are</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-title"
              ],
              "html": "<h1 id=\"summer26-title\">Transformation<!-- --> <a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Day and night\">Day and night</em></a>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em data-text=\"Day and night\">Day and night</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".summer26-hero-lead"
              ],
              "html": "<p class=\"summer26-hero-lead\">HAAM helps teams design products that stay understandable and functional at every hour, on every device, for every user.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2024 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2024 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Viirus Theatre</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A theatre site where you can actually find the tickets without needing a PhD in navigation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I connected the website to the box office so the marketing team stops guessing and starts selling.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-live-link.summer26-case-study-link[href$=\"viirus\"]"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Viirus Theatre case study\" href=\"/en/case-studies/viirus\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2025 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Repsal Busholmen</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Artists need space. This tool lets them find it, book it, and pay for it before they lose their inspiration.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I automated the soul-crushing admin work so the coordinator can go home at 5 PM.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Otto Donner.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Repsal Busholmen case study\" href=\"/en/case-studies/repsal-busholmen\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-archive > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">01<!-- --> <!-- -->Understand</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2018</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Digital hoarding</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>100 Objects from Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>One year, one object. We made Finnish history so simple even a tired tourist gets it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>We packaged a giant messy archive so schools and museums could actually use it without throwing their computers out the window.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the 100 Objects from Finland case study\" href=\"/en/case-studies/100-objects-from-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Life in Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Everyday Finnish junk turned into a digital treasure hunt you can read in multiple languages.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I fixed the search bar and the filters so people can actually find the stuff their taxes paid to digitize.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Life in Finland case study\" href=\"/en/case-studies/life-in-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-campus > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">02<!-- --> <!-- -->Define</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Draw on the school paper\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Taming the institutional beast.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Estonian Academy of Arts</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A massive art school website that somehow doesn't feel overwhelming. You can actually find the admissions page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I stopped 15 different departments from ruining the website by giving everyone rules they actually agreed to follow.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Stuudio Stuudio.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Estonian Academy of Arts case study\" href=\"/en/case-studies/estonian-academy-of-arts\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2021 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Narva Art Residency</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A border town art hub that connects weird and wonderful projects without making the user dizzy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built pathways so the residency doesn't feel like a ghost town between their big open calls.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Jaan Evart.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Narva Art Residency case study\" href=\"/en/case-studies/narva-art-residency\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-cleanup > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">03<!-- --> <!-- -->Prototype</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Wipe the surface clean\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2021</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2021</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>World Cleanup Day</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A tool that turns one volunteer into ten. Pick a photo, write the sentence you would actually say, send it to everyone you know.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built the multilingual sign-up, the infrastructure that survives one enormous day a year, and the invite generator that did the recruiting for them.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">World Cleanup Day visual identity by Let's Do It World.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the World Cleanup Day case study\" href=\"/en/case-studies/world-cleanup-day\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-ltm-hedge > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">04<!-- --> <!-- -->Refine</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Trim the animated hedge\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Enough reading. Let's fix it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#summer26-contact-title"
              ],
              "html": "<h2 id=\"summer26-contact-title\">Send me your worst problem.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-contact-inner > p:nth-child(3)"
              ],
              "html": "<p>Bring me the legacy code you're afraid to touch, the app your users hate, or that idea you can't quite figure out. I'll take care of it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-button\" href=\"/en/start\">MAKE IT MY PROBLEM ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"southern-europe\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"africa\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"asia\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"latin-america\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"b2b\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"film\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"lab\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"products\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            }
          ]
        },
        {
          "id": "link-in-text-block",
          "impact": "serious",
          "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
          "help": "Links must be distinguishable without relying on color",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-hero-glow-link"
              ],
              "html": "<a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Day and night\">Day and night</em></a>",
              "failureSummary": "Fix any of the following:\n  Element's contrast ratio could not be determined due to a background gradient"
            }
          ]
        },
        {
          "id": "video-caption",
          "impact": "critical",
          "description": "Ensure <video> elements have captions",
          "help": "<video> elements must have captions",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/video-caption?application=axeAPI",
          "nodes": [
            {
              "target": [
                "video"
              ],
              "html": "<video poster=\"/projects/world-cleanup-day/wcd-invites-poster.jpg\" width=\"540\" height=\"960\" aria-label=\"Invitations volunteers created and shared with the World Cleanup Day invite generator\" loop=\"\" muted=\"\" playsinline=\"\" preload=\"none\"></video>",
              "failureSummary": "Fix all of the following:\n  Check that captions are available for the element"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Finding what's on</span><span>Calendars that don't lie</span><span>Buying tickets fast</span><span>Actually booking the room</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Digital hoarding</span><span>Making clicking fun</span><span>Speaking your language</span><span>Accidental learning</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Stopping internal fights</span><span>Getting people admitted</span><span>Who gets to publish what</span><span>Opening the doors</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Signing up in 55 languages</span><span>Invites that spread</span><span>Surviving one spike a year</span><span>Sharing where people already are</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-title"
              ],
              "html": "<h1 id=\"summer26-title\">Transformation<!-- --> <a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Night and day\">Night and day</em></a>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em data-text=\"Night and day\">Night and day</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-hero-lead"
              ],
              "html": "<p class=\"summer26-hero-lead\">We turn fragile or confusing products into resilient, accessible ones, so your users can rely on them anytime, wherever they are.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-section-label"
              ],
              "html": "<p class=\"summer26-section-label\">Proof I can do this</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-work-title"
              ],
              "html": "<h2 id=\"summer26-work-title\">Good design is invisible. Bad design makes people want to cry.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-section-intro"
              ],
              "html": "<p class=\"summer26-section-intro\">",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Getting people to buy tickets without losing their minds.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2024 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > h3"
              ],
              "html": "<h3>Theatres shouldn't be harder to navigate than the DMV.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-summary"
              ],
              "html": "<p class=\"summer26-bundle-summary\">People just want to see a play, not solve a puzzle. I build booking systems that don't crash when more than 3 people use them. Humans buy the tickets, let's treat them like humans.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Finding what's on</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Calendars that don't lie</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Buying tickets fast</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Actually booking the room</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2024 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Viirus Theatre</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A theatre site where you can actually find the tickets without needing a PhD in navigation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I connected the website to the box office so the marketing team stops guessing and starts selling.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-live-link.summer26-case-study-link[href$=\"viirus\"]"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Viirus Theatre case study\" href=\"/en/case-studies/viirus\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2025 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Repsal Busholmen</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Artists need space. This tool lets them find it, book it, and pay for it before they lose their inspiration.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I automated the soul-crushing admin work so the coordinator can go home at 5 PM.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Otto Donner.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Repsal Busholmen case study\" href=\"/en/case-studies/repsal-busholmen\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-archive > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">01<!-- --> <!-- -->Understand</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Making museums not suck on the internet.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2018</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > h3"
              ],
              "html": "<h3>History is boring unless you make it look cool.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-summary"
              ],
              "html": "<p class=\"summer26-bundle-summary\">Nobody wants to read an encyclopedia. I took thousands of old Finnish objects and turned them into digital stories you actually want to click through. Culture is meant to be shared, not buried.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Digital hoarding</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Making clicking fun</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Speaking your language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Accidental learning</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>100 Objects from Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>One year, one object. We made Finnish history so simple even a tired tourist gets it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>We packaged a giant messy archive so schools and museums could actually use it without throwing their computers out the window.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the 100 Objects from Finland case study\" href=\"/en/case-studies/100-objects-from-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Life in Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Everyday Finnish junk turned into a digital treasure hunt you can read in multiple languages.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I fixed the search bar and the filters so people can actually find the stuff their taxes paid to digitize.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Life in Finland case study\" href=\"/en/case-studies/life-in-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-campus > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">02<!-- --> <!-- -->Define</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Draw on the school paper\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Taming the institutional beast.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > h3"
              ],
              "html": "<h3>Universities are chaos. I build the calm.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-summary"
              ],
              "html": "<p class=\"summer26-bundle-summary\">Big institutions have too many departments screaming for attention on the homepage. I force them to agree on what's important so students and visitors can actually find what they need.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Stopping internal fights</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Getting people admitted</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Who gets to publish what</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Opening the doors</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Estonian Academy of Arts</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A massive art school website that somehow doesn't feel overwhelming. You can actually find the admissions page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I stopped 15 different departments from ruining the website by giving everyone rules they actually agreed to follow.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Stuudio Stuudio.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Estonian Academy of Arts case study\" href=\"/en/case-studies/estonian-academy-of-arts\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2021 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Narva Art Residency</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A border town art hub that connects weird and wonderful projects without making the user dizzy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built pathways so the residency doesn't feel like a ghost town between their big open calls.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Jaan Evart.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Narva Art Residency case study\" href=\"/en/case-studies/narva-art-residency\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".is-cleanup > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">03<!-- --> <!-- -->Prototype</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Wipe the surface clean\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Getting the whole planet to show up on the same Saturday.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2021</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > h3"
              ],
              "html": "<h3>Millions of volunteers. One day. Zero patience for a slow website.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-summary"
              ],
              "html": "<p class=\"summer26-bundle-summary\">You cannot run a cleanup in 180 countries from one office. I built the sign-up, the hosting, and the invite generator that let volunteers recruit their own friends, in their own language, on whatever app they actually use.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Signing up in 55 languages</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Invites that spread</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Surviving one spike a year</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Sharing where people already are</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2021</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>World Cleanup Day</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A tool that turns one volunteer into ten. Pick a photo, write the sentence you would actually say, send it to everyone you know.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built the multilingual sign-up, the infrastructure that survives one enormous day a year, and the invite generator that did the recruiting for them.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">World Cleanup Day visual identity by Let's Do It World.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the World Cleanup Day case study\" href=\"/en/case-studies/world-cleanup-day\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-hedge-card-prompt"
              ],
              "html": "<p class=\"summer26-hedge-card-prompt\" data-state=\"instruction\" aria-live=\"polite\">Trim the hedge to get your HAAM business card.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".is-ltm-hedge > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">04<!-- --> <!-- -->Refine</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Trim the animated hedge\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Enough reading. Let's fix it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#summer26-contact-title"
              ],
              "html": "<h2 id=\"summer26-contact-title\">Send me your worst problem.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-contact-inner > p:nth-child(3)"
              ],
              "html": "<p>Bring me the legacy code you're afraid to touch, the app your users hate, or that idea you can't quite figure out. I'll take care of it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-button\" href=\"/en/start\">MAKE IT MY PROBLEM ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"southern-europe\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"africa\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"asia\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"latin-america\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"b2b\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"film\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"lab\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"products\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            }
          ]
        },
        {
          "id": "link-in-text-block",
          "impact": "serious",
          "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
          "help": "Links must be distinguishable without relying on color",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-hero-glow-link"
              ],
              "html": "<a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Night and day\">Night and day</em></a>",
              "failureSummary": "Fix any of the following:\n  Element's contrast ratio could not be determined due to a background gradient"
            }
          ]
        },
        {
          "id": "video-caption",
          "impact": "critical",
          "description": "Ensure <video> elements have captions",
          "help": "<video> elements must have captions",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/video-caption?application=axeAPI",
          "nodes": [
            {
              "target": [
                "video"
              ],
              "html": "<video poster=\"/projects/world-cleanup-day/wcd-invites-poster.jpg\" width=\"540\" height=\"960\" aria-label=\"Invitations volunteers created and shared with the World Cleanup Day invite generator\" loop=\"\" muted=\"\" playsinline=\"\" preload=\"none\"></video>",
              "failureSummary": "Fix all of the following:\n  Check that captions are available for the element"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Finding what's on</span><span>Calendars that don't lie</span><span>Buying tickets fast</span><span>Actually booking the room</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Digital hoarding</span><span>Making clicking fun</span><span>Speaking your language</span><span>Accidental learning</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Stopping internal fights</span><span>Getting people admitted</span><span>Who gets to publish what</span><span>Opening the doors</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Signing up in 55 languages</span><span>Invites that spread</span><span>Surviving one spike a year</span><span>Sharing where people already are</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[aria-current=\"page\"][href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" aria-current=\"page\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-title"
              ],
              "html": "<h1 id=\"summer26-title\">Transformation<!-- --> <a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Day and night\">Day and night</em></a>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em data-text=\"Day and night\">Day and night</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-hero-lead"
              ],
              "html": "<p class=\"summer26-hero-lead\">HAAM helps teams design products that stay understandable and functional at every hour, on every device, for every user.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Getting people to buy tickets without losing their minds.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2024 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Finding what's on</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Calendars that don't lie</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Buying tickets fast</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Actually booking the room</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2024 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Viirus Theatre</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A theatre site where you can actually find the tickets without needing a PhD in navigation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I connected the website to the box office so the marketing team stops guessing and starts selling.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-live-link.summer26-case-study-link[href$=\"viirus\"]"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Viirus Theatre case study\" href=\"/en/case-studies/viirus\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2025 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Repsal Busholmen</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Artists need space. This tool lets them find it, book it, and pay for it before they lose their inspiration.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I automated the soul-crushing admin work so the coordinator can go home at 5 PM.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Otto Donner.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Repsal Busholmen case study\" href=\"/en/case-studies/repsal-busholmen\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-archive > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">01<!-- --> <!-- -->Understand</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Making museums not suck on the internet.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2018</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Digital hoarding</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Making clicking fun</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Speaking your language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Accidental learning</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>100 Objects from Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>One year, one object. We made Finnish history so simple even a tired tourist gets it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>We packaged a giant messy archive so schools and museums could actually use it without throwing their computers out the window.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the 100 Objects from Finland case study\" href=\"/en/case-studies/100-objects-from-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Life in Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Everyday Finnish junk turned into a digital treasure hunt you can read in multiple languages.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I fixed the search bar and the filters so people can actually find the stuff their taxes paid to digitize.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Life in Finland case study\" href=\"/en/case-studies/life-in-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-campus > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">02<!-- --> <!-- -->Define</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Draw on the school paper\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Taming the institutional beast.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Stopping internal fights</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Getting people admitted</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Who gets to publish what</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Opening the doors</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Estonian Academy of Arts</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A massive art school website that somehow doesn't feel overwhelming. You can actually find the admissions page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I stopped 15 different departments from ruining the website by giving everyone rules they actually agreed to follow.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Stuudio Stuudio.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Estonian Academy of Arts case study\" href=\"/en/case-studies/estonian-academy-of-arts\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2021 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Narva Art Residency</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A border town art hub that connects weird and wonderful projects without making the user dizzy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built pathways so the residency doesn't feel like a ghost town between their big open calls.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Jaan Evart.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Narva Art Residency case study\" href=\"/en/case-studies/narva-art-residency\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-cleanup > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">03<!-- --> <!-- -->Prototype</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Wipe the surface clean\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Getting the whole planet to show up on the same Saturday.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2021</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Signing up in 55 languages</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Invites that spread</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Surviving one spike a year</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Sharing where people already are</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2021</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>World Cleanup Day</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A tool that turns one volunteer into ten. Pick a photo, write the sentence you would actually say, send it to everyone you know.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built the multilingual sign-up, the infrastructure that survives one enormous day a year, and the invite generator that did the recruiting for them.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">World Cleanup Day visual identity by Let's Do It World.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the World Cleanup Day case study\" href=\"/en/case-studies/world-cleanup-day\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-ltm-hedge > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">04<!-- --> <!-- -->Refine</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Trim the animated hedge\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Enough reading. Let's fix it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#summer26-contact-title"
              ],
              "html": "<h2 id=\"summer26-contact-title\">Send me your worst problem.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-contact-inner > p:nth-child(3)"
              ],
              "html": "<p>Bring me the legacy code you're afraid to touch, the app your users hate, or that idea you can't quite figure out. I'll take care of it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-button\" href=\"/en/start\">MAKE IT MY PROBLEM ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"southern-europe\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"africa\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"asia\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"latin-america\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"b2b\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"film\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"lab\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"products\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            }
          ]
        },
        {
          "id": "link-in-text-block",
          "impact": "serious",
          "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
          "help": "Links must be distinguishable without relying on color",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-hero-glow-link"
              ],
              "html": "<a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Day and night\">Day and night</em></a>",
              "failureSummary": "Fix any of the following:\n  Element's contrast ratio could not be determined due to a background gradient"
            }
          ]
        },
        {
          "id": "video-caption",
          "impact": "critical",
          "description": "Ensure <video> elements have captions",
          "help": "<video> elements must have captions",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/video-caption?application=axeAPI",
          "nodes": [
            {
              "target": [
                "video"
              ],
              "html": "<video poster=\"/projects/world-cleanup-day/wcd-invites-poster.jpg\" width=\"540\" height=\"960\" aria-label=\"Invitations volunteers created and shared with the World Cleanup Day invite generator\" loop=\"\" muted=\"\" playsinline=\"\" preload=\"none\"></video>",
              "failureSummary": "Fix all of the following:\n  Check that captions are available for the element"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Finding what's on</span><span>Calendars that don't lie</span><span>Buying tickets fast</span><span>Actually booking the room</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Digital hoarding</span><span>Making clicking fun</span><span>Speaking your language</span><span>Accidental learning</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Stopping internal fights</span><span>Getting people admitted</span><span>Who gets to publish what</span><span>Opening the doors</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"]"
              ],
              "html": "<div class=\"summer26-bundle-signals\" aria-label=\"Bundle focus areas\"><span>Signing up in 55 languages</span><span>Invites that spread</span><span>Surviving one spike a year</span><span>Sharing where people already are</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[aria-current=\"page\"][href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" aria-current=\"page\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-title"
              ],
              "html": "<h1 id=\"summer26-title\">Transformation<!-- --> <a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Day and night\">Day and night</em></a>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em data-text=\"Day and night\">Day and night</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-hero-lead"
              ],
              "html": "<p class=\"summer26-hero-lead\">HAAM helps teams design products that stay understandable and functional at every hour, on every device, for every user.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Getting people to buy tickets without losing their minds.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2024 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Finding what's on</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Calendars that don't lie</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Buying tickets fast</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(1) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Actually booking the room</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2024 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Viirus Theatre</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A theatre site where you can actually find the tickets without needing a PhD in navigation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I connected the website to the box office so the marketing team stops guessing and starts selling.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Viirus Theatre\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-live-link.summer26-case-study-link[href$=\"viirus\"]"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Viirus Theatre case study\" href=\"/en/case-studies/viirus\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2025 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Repsal Busholmen</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Artists need space. This tool lets them find it, book it, and pay for it before they lose their inspiration.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I automated the soul-crushing admin work so the coordinator can go home at 5 PM.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Otto Donner.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Repsal Busholmen\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Repsal Busholmen case study\" href=\"/en/case-studies/repsal-busholmen\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-archive > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">01<!-- --> <!-- -->Understand</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Making museums not suck on the internet.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2018</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Digital hoarding</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Making clicking fun</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Speaking your language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".green > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Accidental learning</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>100 Objects from Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>One year, one object. We made Finnish history so simple even a tired tourist gets it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>We packaged a giant messy archive so schools and museums could actually use it without throwing their computers out the window.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"100 Objects from Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the 100 Objects from Finland case study\" href=\"/en/case-studies/100-objects-from-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2018</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Life in Finland</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>Everyday Finnish junk turned into a digital treasure hunt you can read in multiple languages.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I fixed the search bar and the filters so people can actually find the stuff their taxes paid to digitize.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Kris Haamer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Life in Finland\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Life in Finland case study\" href=\"/en/case-studies/life-in-finland\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-campus > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">02<!-- --> <!-- -->Define</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Draw on the school paper\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Taming the institutional beast.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - Present</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Stopping internal fights</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Getting people admitted</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Who gets to publish what</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".pink > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Opening the doors</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Estonian Academy of Arts</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A massive art school website that somehow doesn't feel overwhelming. You can actually find the admissions page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I stopped 15 different departments from ruining the website by giving everyone rules they actually agreed to follow.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Stuudio Stuudio.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Estonian Academy of Arts\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Estonian Academy of Arts case study\" href=\"/en/case-studies/estonian-academy-of-arts\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2021 - Present</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>Narva Art Residency</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A border town art hub that connects weird and wonderful projects without making the user dizzy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built pathways so the residency doesn't feel like a ghost town between their big open calls.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">Graphic design by Jaan Evart.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"Narva Art Residency\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the Narva Art Residency case study\" href=\"/en/case-studies/narva-art-residency\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-cleanup > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">03<!-- --> <!-- -->Prototype</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Wipe the surface clean\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(1)"
              ],
              "html": "<span>Getting the whole planet to show up on the same Saturday.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(1) > .summer26-bundle-kicker > span:nth-child(2)"
              ],
              "html": "<span>2017 - 2021</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(1)"
              ],
              "html": "<span>Signing up in 55 languages</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(2)"
              ],
              "html": "<span>Invites that spread</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(3)"
              ],
              "html": "<span>Surviving one spike a year</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".yellow:nth-child(7) > .summer26-bundle-head > div:nth-child(2) > .summer26-bundle-signals[aria-label=\"Bundle focus areas\"] > span:nth-child(4)"
              ],
              "html": "<span>Sharing where people already are</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-project-time"
              ],
              "html": "<p class=\"summer26-project-time\">2017 - 2021</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > h4"
              ],
              "html": "<h4>World Cleanup Day</h4>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > p:nth-child(3)"
              ],
              "html": "<p>A tool that turns one volunteer into ten. Pick a photo, write the sentence you would actually say, send it to everyone you know.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > strong"
              ],
              "html": "<strong>I built the multilingual sign-up, the infrastructure that survives one enormous day a year, and the invite generator that did the recruiting for them.</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-design-credit"
              ],
              "html": "<p class=\"summer26-design-credit\">World Cleanup Day visual identity by Let's Do It World.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "section[aria-label=\"World Cleanup Day\"] > .summer26-project-copy > .summer26-live-link.summer26-case-study-link"
              ],
              "html": "<a class=\"summer26-live-link summer26-case-study-link\" aria-label=\"Read the World Cleanup Day case study\" href=\"/en/case-studies/world-cleanup-day\">Case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".is-ltm-hedge > .summer26-process-step[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-process-step\" aria-hidden=\"true\">04<!-- --> <!-- -->Refine</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-play-handle[aria-label=\"Trim the animated hedge\"] > .summer26-haam-tool-sticker[aria-hidden=\"true\"]"
              ],
              "html": "<span class=\"summer26-haam-tool-sticker\" aria-hidden=\"true\">HAAM</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Enough reading. Let's fix it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#summer26-contact-title"
              ],
              "html": "<h2 id=\"summer26-contact-title\">Send me your worst problem.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-contact-inner > p:nth-child(3)"
              ],
              "html": "<p>Bring me the legacy code you're afraid to touch, the app your users hate, or that idea you can't quite figure out. I'll take care of it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-button\" href=\"/en/start\">MAKE IT MY PROBLEM ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"southern-europe\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"africa\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"asia\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"latin-america\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"b2b\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"film\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"lab\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                "a[href$=\"products\"] > .summer26-regional-status > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">→</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            }
          ]
        },
        {
          "id": "link-in-text-block",
          "impact": "serious",
          "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
          "help": "Links must be distinguishable without relying on color",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-hero-glow-link"
              ],
              "html": "<a href=\"#work\" class=\"summer26-hero-glow-link\" aria-label=\"See the work\"><em data-text=\"Day and night\">Day and night</em></a>",
              "failureSummary": "Fix any of the following:\n  Element's contrast ratio could not be determined due to a background gradient"
            }
          ]
        },
        {
          "id": "video-caption",
          "impact": "critical",
          "description": "Ensure <video> elements have captions",
          "help": "<video> elements must have captions",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/video-caption?application=axeAPI",
          "nodes": [
            {
              "target": [
                "video"
              ],
              "html": "<video poster=\"/projects/world-cleanup-day/wcd-invites-poster.jpg\" width=\"540\" height=\"960\" aria-label=\"Invitations volunteers created and shared with the World Cleanup Day invite generator\" loop=\"\" muted=\"\" playsinline=\"\" preload=\"none\"></video>",
              "failureSummary": "Fix all of the following:\n  Check that captions are available for the element"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/about",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai-visual"
              ],
              "html": "<div class=\"summer26-moosisai-visual\" aria-label=\"Illustrated Moosisai breakfast still life inspired by the provided photo\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute cannot be used on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "landmark-complementary-is-top-level",
          "impact": "moderate",
          "description": "Ensure the complementary landmark or aside is at top level",
          "help": "Aside should not be contained in another landmark",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-complementary-is-top-level?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai"
              ],
              "html": "<aside class=\"summer26-about-card summer26-moosisai\">",
              "failureSummary": "Fix any of the following:\n  The null landmark is contained in another landmark."
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".haam-about-example"
              ],
              "html": "<div class=\"haam-about-example\" aria-label=\"Example conversation between a client and the HAAM team\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-kicker"
              ],
              "html": "<p class=\"summer26-about-kicker\">About</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-hello"
              ],
              "html": "<p class=\"summer26-about-hello\">Hello. My name is Kris.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>I try to<!-- --> <em>understand</em>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>understand</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-lead"
              ],
              "html": "<p class=\"summer26-about-lead\">That is the starting point for interaction design for me. Before structure, screens, or systems, I try to understand the people, the tension, the context, and what is actually getting in the way.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">How HAAM works</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-system-title"
              ],
              "html": "<h2 id=\"summer26-about-system-title\">HAAM begins with fragmented reality.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(1)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(2)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(3)"
              ],
              "html": "<p>We work where design, technology, research, and organisational change meet. The goal is not simply to create better interfaces, but to make the underlying system more understandable, trustworthy, and capable of supporting real life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > h2"
              ],
              "html": "<h2>It is the design of how things meet people.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > p:nth-child(3)"
              ],
              "html": "<p>Interaction design is not only about interface. It is about shaping how a system behaves, how a person understands what to do next, and how an experience feels in motion. When it works, complexity becomes clearer, decisions become easier, and the product feels more natural to use.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-eyebrow"
              ],
              "html": "<p class=\"haam-about-example-eyebrow\">A quick example</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-system > span:nth-child(2)"
              ],
              "html": "<span><strong>Milo joined the chat</strong> · <!-- -->HAAM team member</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(2) > strong"
              ],
              "html": "<strong>Milo joined the chat</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > div > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-meaningful-title"
              ],
              "html": "<h2 id=\"summer26-about-meaningful-title\">Build what culture keeps.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">Culturally significant work shapes how people remember, participate, learn, gather, and imagine what comes next. It deserves digital products as rigorous as the best-funded commercial systems.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "div:nth-child(3) > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work is rarely the easy brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > h3"
              ],
              "html": "<h3>More than one audience</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > p"
              ],
              "html": "<p>Visitors, staff, artists, funders, researchers, volunteers, and future custodians may all need the same system to work differently.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > h3"
              ],
              "html": "<h3>Value is not only revenue</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > p"
              ],
              "html": "<p>Success may mean access, trust, participation, preservation, continuity, or a stronger public institution.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > h3"
              ],
              "html": "<h3>The story cannot be flattened</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > p"
              ],
              "html": "<p>Clarity matters, but so do history, language, place, authorship, and the productive complexity that gives the work meaning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > h3"
              ],
              "html": "<h3>The product must outlive the project</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > p"
              ],
              "html": "<p>Campaigns end. Grants close. Teams change. The digital system still has to remain understandable, maintainable, and useful.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > h3"
              ],
              "html": "<h3>Treat meaning as a product requirement.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > p"
              ],
              "html": "<p>The mission is not decoration added after the interface works. It changes the information architecture, research, governance, measurement, and technical decisions from the beginning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1) > div > strong"
              ],
              "html": "<strong>Start with the public value</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(1) > div > p"
              ],
              "html": "<p>Define what the work protects, enables, or changes before choosing features or formats.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2) > div > strong"
              ],
              "html": "<strong>Make complexity navigable</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(2) > div > p"
              ],
              "html": "<p>Organize deep material without turning it into generic marketing copy or an archive no one can enter.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3) > div > strong"
              ],
              "html": "<strong>Design participation, not just attention</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(3) > div > p"
              ],
              "html": "<p>Create clear ways to visit, join, contribute, book, learn, volunteer, or return.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > strong"
              ],
              "html": "<strong>Measure the right outcomes</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > p"
              ],
              "html": "<p>Pair analytics with qualitative evidence and institution-specific signals instead of treating conversion as the only truth.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5) > div > strong"
              ],
              "html": "<strong>Build for stewardship</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(5) > div > p"
              ],
              "html": "<p>Leave systems, content models, and operating decisions that future teams can understand and continue.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > h3"
              ],
              "html": "<h3>Proof, not posture.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">The common thread is not sector or aesthetic. It is responsibility for helping valuable work reach people and remain usable over time.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Performing arts</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > strong"
              ],
              "html": "<strong>Viirus Theatre</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Shared memory</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > strong"
              ],
              "html": "<strong>100 Objects from Finland</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Education</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > strong"
              ],
              "html": "<strong>Estonian Academy of Arts</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Place</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > strong"
              ],
              "html": "<strong>Narva Art Residency</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Civic movement</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > strong"
              ],
              "html": "<strong>World Cleanup Day</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Cultural exchange</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > strong"
              ],
              "html": "<strong>TEDx São Tomé</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > strong"
              ],
              "html": "<strong>Memory</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > span"
              ],
              "html": "<span>What remains findable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > strong"
              ],
              "html": "<strong>Access</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > span"
              ],
              "html": "<span>Who can take part</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > strong"
              ],
              "html": "<strong>Participation</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > span"
              ],
              "html": "<span>What people can do</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > strong"
              ],
              "html": "<strong>Continuity</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > span"
              ],
              "html": "<span>What still works later</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">Who am I?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > h2"
              ],
              "html": "<h2>Kris Haamer. Designer, researcher, builder.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>I run HAAM&amp; as an independent interaction design practice. My work sits between product thinking, research, design systems, and implementation. I like messy problems, clear language, and products that feel thoughtful instead of generic.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".secondary.summer26-about-button[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">For fun</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > h2"
              ],
              "html": "<h2>Moosisai.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>An Estonian summer snack. Soft bread, berry jam, and milk. Not a business framework. Just a small, very real reminder that design also comes from ordinary life, memory, and taste.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-kicker"
              ],
              "html": "<p class=\"summer26-about-convictions-kicker\">Design convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#about-convictions-title"
              ],
              "html": "<h2 id=\"about-convictions-title\">Good design is opinionated.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-lead"
              ],
              "html": "<p class=\"summer26-about-convictions-lead\">A product should have a spine. HAAM&amp; is not neutral about speed, clarity, accessibility, or the way a system should behave when people rely on it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">01 Speed</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > h3"
              ],
              "html": "<h3>Be obsessed with speed.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > p"
              ],
              "html": "<p>A good product doesn't make you wait. Saving a few seconds from the experience is crucial because every delay breaks trust, focus, and momentum.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">02 Product</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > h3"
              ],
              "html": "<h3>UX is the product.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > p"
              ],
              "html": "<p>Use whatever tools are needed to make the product great: research, writing, interface design, code, automation, analytics, accessibility, operations, and support.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">03 Clarity</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > h3"
              ],
              "html": "<h3>Clarity beats decoration.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > p"
              ],
              "html": "<p>Visual taste matters, but the interface has to explain itself first. People should know where they are, what is possible, and what happens next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">04 Accessibility</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > h3"
              ],
              "html": "<h3>Accessibility is quality control.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > p"
              ],
              "html": "<p>If the product excludes people, breaks on assistive technology, or depends on perfect conditions, it is unfinished. Accessibility raises the standard for everyone.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">05 Systems</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > h3"
              ],
              "html": "<h3>Design the messy middle.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > p"
              ],
              "html": "<p>Most product value lives between departments, edge cases, content, data, calendars, support, and release decisions. Good design makes that operational reality usable.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">06 Taste</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > h3"
              ],
              "html": "<h3>Make choices.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > p"
              ],
              "html": "<p>Generic products happen when nobody takes responsibility for the experience. A strong product has priorities, constraints, and a clear sense of what it refuses to become.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-button.secondary[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-convictions-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-kicker"
              ],
              "html": "<p class=\"summer26-human-limits-crosslink-kicker\">The doctrine behind the convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#human-limits-crosslink-about"
              ],
              "html": "<h2 id=\"human-limits-crosslink-about\">Design begins with limits.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-copy > p:nth-child(3)"
              ],
              "html": "<p>Attention, memory, confidence, time, systems, and the living world are finite. See the principle that connects HAAM's work on clarity, accessibility, trust, automation, and responsibility.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-link"
              ],
              "html": "<a class=\"summer26-human-limits-crosslink-link\" href=\"/en/human-limits\">Read Human Limits ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 39,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/about",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai-visual"
              ],
              "html": "<div class=\"summer26-moosisai-visual\" aria-label=\"Illustrated Moosisai breakfast still life inspired by the provided photo\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute cannot be used on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "landmark-complementary-is-top-level",
          "impact": "moderate",
          "description": "Ensure the complementary landmark or aside is at top level",
          "help": "Aside should not be contained in another landmark",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-complementary-is-top-level?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai"
              ],
              "html": "<aside class=\"summer26-about-card summer26-moosisai\">",
              "failureSummary": "Fix any of the following:\n  The null landmark is contained in another landmark."
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".haam-about-example"
              ],
              "html": "<div class=\"haam-about-example\" aria-label=\"Example conversation between a client and the HAAM team\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-kicker"
              ],
              "html": "<p class=\"summer26-about-kicker\">About</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-hello"
              ],
              "html": "<p class=\"summer26-about-hello\">Hello. My name is Kris.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>I try to<!-- --> <em>understand</em>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>understand</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-lead"
              ],
              "html": "<p class=\"summer26-about-lead\">That is the starting point for interaction design for me. Before structure, screens, or systems, I try to understand the people, the tension, the context, and what is actually getting in the way.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">How HAAM works</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-system-title"
              ],
              "html": "<h2 id=\"summer26-about-system-title\">HAAM begins with fragmented reality.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(1)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(2)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(3)"
              ],
              "html": "<p>We work where design, technology, research, and organisational change meet. The goal is not simply to create better interfaces, but to make the underlying system more understandable, trustworthy, and capable of supporting real life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > h2"
              ],
              "html": "<h2>It is the design of how things meet people.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > p:nth-child(3)"
              ],
              "html": "<p>Interaction design is not only about interface. It is about shaping how a system behaves, how a person understands what to do next, and how an experience feels in motion. When it works, complexity becomes clearer, decisions become easier, and the product feels more natural to use.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-eyebrow"
              ],
              "html": "<p class=\"haam-about-example-eyebrow\">A quick example</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-system > span:nth-child(2)"
              ],
              "html": "<span><strong>Milo joined the chat</strong> · <!-- -->HAAM team member</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(2) > strong"
              ],
              "html": "<strong>Milo joined the chat</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > div > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-meaningful-title"
              ],
              "html": "<h2 id=\"summer26-about-meaningful-title\">Build what culture keeps.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">Culturally significant work shapes how people remember, participate, learn, gather, and imagine what comes next. It deserves digital products as rigorous as the best-funded commercial systems.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "div:nth-child(3) > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work is rarely the easy brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > h3"
              ],
              "html": "<h3>More than one audience</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > p"
              ],
              "html": "<p>Visitors, staff, artists, funders, researchers, volunteers, and future custodians may all need the same system to work differently.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > h3"
              ],
              "html": "<h3>Value is not only revenue</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > p"
              ],
              "html": "<p>Success may mean access, trust, participation, preservation, continuity, or a stronger public institution.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > h3"
              ],
              "html": "<h3>The story cannot be flattened</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > p"
              ],
              "html": "<p>Clarity matters, but so do history, language, place, authorship, and the productive complexity that gives the work meaning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > h3"
              ],
              "html": "<h3>The product must outlive the project</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > p"
              ],
              "html": "<p>Campaigns end. Grants close. Teams change. The digital system still has to remain understandable, maintainable, and useful.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > h3"
              ],
              "html": "<h3>Treat meaning as a product requirement.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > p"
              ],
              "html": "<p>The mission is not decoration added after the interface works. It changes the information architecture, research, governance, measurement, and technical decisions from the beginning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1) > div > strong"
              ],
              "html": "<strong>Start with the public value</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(1) > div > p"
              ],
              "html": "<p>Define what the work protects, enables, or changes before choosing features or formats.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2) > div > strong"
              ],
              "html": "<strong>Make complexity navigable</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(2) > div > p"
              ],
              "html": "<p>Organize deep material without turning it into generic marketing copy or an archive no one can enter.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3) > div > strong"
              ],
              "html": "<strong>Design participation, not just attention</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(3) > div > p"
              ],
              "html": "<p>Create clear ways to visit, join, contribute, book, learn, volunteer, or return.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > strong"
              ],
              "html": "<strong>Measure the right outcomes</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > p"
              ],
              "html": "<p>Pair analytics with qualitative evidence and institution-specific signals instead of treating conversion as the only truth.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5) > div > strong"
              ],
              "html": "<strong>Build for stewardship</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(5) > div > p"
              ],
              "html": "<p>Leave systems, content models, and operating decisions that future teams can understand and continue.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > h3"
              ],
              "html": "<h3>Proof, not posture.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">The common thread is not sector or aesthetic. It is responsibility for helping valuable work reach people and remain usable over time.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Performing arts</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > strong"
              ],
              "html": "<strong>Viirus Theatre</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Shared memory</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > strong"
              ],
              "html": "<strong>100 Objects from Finland</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Education</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > strong"
              ],
              "html": "<strong>Estonian Academy of Arts</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Place</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > strong"
              ],
              "html": "<strong>Narva Art Residency</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Civic movement</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > strong"
              ],
              "html": "<strong>World Cleanup Day</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Cultural exchange</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > strong"
              ],
              "html": "<strong>TEDx São Tomé</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > strong"
              ],
              "html": "<strong>Memory</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > span"
              ],
              "html": "<span>What remains findable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > strong"
              ],
              "html": "<strong>Access</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > span"
              ],
              "html": "<span>Who can take part</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > strong"
              ],
              "html": "<strong>Participation</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > span"
              ],
              "html": "<span>What people can do</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > strong"
              ],
              "html": "<strong>Continuity</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > span"
              ],
              "html": "<span>What still works later</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">Who am I?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > h2"
              ],
              "html": "<h2>Kris Haamer. Designer, researcher, builder.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>I run HAAM&amp; as an independent interaction design practice. My work sits between product thinking, research, design systems, and implementation. I like messy problems, clear language, and products that feel thoughtful instead of generic.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".secondary.summer26-about-button[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">For fun</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > h2"
              ],
              "html": "<h2>Moosisai.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>An Estonian summer snack. Soft bread, berry jam, and milk. Not a business framework. Just a small, very real reminder that design also comes from ordinary life, memory, and taste.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-kicker"
              ],
              "html": "<p class=\"summer26-about-convictions-kicker\">Design convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#about-convictions-title"
              ],
              "html": "<h2 id=\"about-convictions-title\">Good design is opinionated.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-lead"
              ],
              "html": "<p class=\"summer26-about-convictions-lead\">A product should have a spine. HAAM&amp; is not neutral about speed, clarity, accessibility, or the way a system should behave when people rely on it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">01 Speed</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > h3"
              ],
              "html": "<h3>Be obsessed with speed.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > p"
              ],
              "html": "<p>A good product doesn't make you wait. Saving a few seconds from the experience is crucial because every delay breaks trust, focus, and momentum.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">02 Product</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > h3"
              ],
              "html": "<h3>UX is the product.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > p"
              ],
              "html": "<p>Use whatever tools are needed to make the product great: research, writing, interface design, code, automation, analytics, accessibility, operations, and support.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">03 Clarity</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > h3"
              ],
              "html": "<h3>Clarity beats decoration.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > p"
              ],
              "html": "<p>Visual taste matters, but the interface has to explain itself first. People should know where they are, what is possible, and what happens next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">04 Accessibility</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > h3"
              ],
              "html": "<h3>Accessibility is quality control.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > p"
              ],
              "html": "<p>If the product excludes people, breaks on assistive technology, or depends on perfect conditions, it is unfinished. Accessibility raises the standard for everyone.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">05 Systems</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > h3"
              ],
              "html": "<h3>Design the messy middle.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > p"
              ],
              "html": "<p>Most product value lives between departments, edge cases, content, data, calendars, support, and release decisions. Good design makes that operational reality usable.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">06 Taste</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > h3"
              ],
              "html": "<h3>Make choices.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > p"
              ],
              "html": "<p>Generic products happen when nobody takes responsibility for the experience. A strong product has priorities, constraints, and a clear sense of what it refuses to become.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-button.secondary[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-convictions-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-kicker"
              ],
              "html": "<p class=\"summer26-human-limits-crosslink-kicker\">The doctrine behind the convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#human-limits-crosslink-about"
              ],
              "html": "<h2 id=\"human-limits-crosslink-about\">Design begins with limits.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-copy > p:nth-child(3)"
              ],
              "html": "<p>Attention, memory, confidence, time, systems, and the living world are finite. See the principle that connects HAAM's work on clarity, accessibility, trust, automation, and responsibility.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-link"
              ],
              "html": "<a class=\"summer26-human-limits-crosslink-link\" href=\"/en/human-limits\">Read Human Limits ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 39,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/about",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai-visual"
              ],
              "html": "<div class=\"summer26-moosisai-visual\" aria-label=\"Illustrated Moosisai breakfast still life inspired by the provided photo\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute cannot be used on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "landmark-complementary-is-top-level",
          "impact": "moderate",
          "description": "Ensure the complementary landmark or aside is at top level",
          "help": "Aside should not be contained in another landmark",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-complementary-is-top-level?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai"
              ],
              "html": "<aside class=\"summer26-about-card summer26-moosisai\">",
              "failureSummary": "Fix any of the following:\n  The null landmark is contained in another landmark."
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".haam-about-example"
              ],
              "html": "<div class=\"haam-about-example\" aria-label=\"Example conversation between a client and the HAAM team\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[aria-current=\"page\"][href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" aria-current=\"page\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-kicker"
              ],
              "html": "<p class=\"summer26-about-kicker\">About</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-hello"
              ],
              "html": "<p class=\"summer26-about-hello\">Hello. My name is Kris.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>I try to<!-- --> <em>understand</em>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>understand</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-lead"
              ],
              "html": "<p class=\"summer26-about-lead\">That is the starting point for interaction design for me. Before structure, screens, or systems, I try to understand the people, the tension, the context, and what is actually getting in the way.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">How HAAM works</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-system-title"
              ],
              "html": "<h2 id=\"summer26-about-system-title\">HAAM begins with fragmented reality.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(1)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(2)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(3)"
              ],
              "html": "<p>We work where design, technology, research, and organisational change meet. The goal is not simply to create better interfaces, but to make the underlying system more understandable, trustworthy, and capable of supporting real life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > h2"
              ],
              "html": "<h2>It is the design of how things meet people.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > p:nth-child(3)"
              ],
              "html": "<p>Interaction design is not only about interface. It is about shaping how a system behaves, how a person understands what to do next, and how an experience feels in motion. When it works, complexity becomes clearer, decisions become easier, and the product feels more natural to use.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-eyebrow"
              ],
              "html": "<p class=\"haam-about-example-eyebrow\">A quick example</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-system > span:nth-child(2)"
              ],
              "html": "<span><strong>Milo joined the chat</strong> · <!-- -->HAAM team member</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(2) > strong"
              ],
              "html": "<strong>Milo joined the chat</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > div > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-meaningful-title"
              ],
              "html": "<h2 id=\"summer26-about-meaningful-title\">Build what culture keeps.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">Culturally significant work shapes how people remember, participate, learn, gather, and imagine what comes next. It deserves digital products as rigorous as the best-funded commercial systems.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "div:nth-child(3) > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work is rarely the easy brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > h3"
              ],
              "html": "<h3>More than one audience</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > p"
              ],
              "html": "<p>Visitors, staff, artists, funders, researchers, volunteers, and future custodians may all need the same system to work differently.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > h3"
              ],
              "html": "<h3>Value is not only revenue</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > p"
              ],
              "html": "<p>Success may mean access, trust, participation, preservation, continuity, or a stronger public institution.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > h3"
              ],
              "html": "<h3>The story cannot be flattened</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > p"
              ],
              "html": "<p>Clarity matters, but so do history, language, place, authorship, and the productive complexity that gives the work meaning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > h3"
              ],
              "html": "<h3>The product must outlive the project</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > p"
              ],
              "html": "<p>Campaigns end. Grants close. Teams change. The digital system still has to remain understandable, maintainable, and useful.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > h3"
              ],
              "html": "<h3>Treat meaning as a product requirement.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > p"
              ],
              "html": "<p>The mission is not decoration added after the interface works. It changes the information architecture, research, governance, measurement, and technical decisions from the beginning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1) > div > strong"
              ],
              "html": "<strong>Start with the public value</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(1) > div > p"
              ],
              "html": "<p>Define what the work protects, enables, or changes before choosing features or formats.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2) > div > strong"
              ],
              "html": "<strong>Make complexity navigable</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(2) > div > p"
              ],
              "html": "<p>Organize deep material without turning it into generic marketing copy or an archive no one can enter.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3) > div > strong"
              ],
              "html": "<strong>Design participation, not just attention</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(3) > div > p"
              ],
              "html": "<p>Create clear ways to visit, join, contribute, book, learn, volunteer, or return.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > strong"
              ],
              "html": "<strong>Measure the right outcomes</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > p"
              ],
              "html": "<p>Pair analytics with qualitative evidence and institution-specific signals instead of treating conversion as the only truth.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5) > div > strong"
              ],
              "html": "<strong>Build for stewardship</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(5) > div > p"
              ],
              "html": "<p>Leave systems, content models, and operating decisions that future teams can understand and continue.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > h3"
              ],
              "html": "<h3>Proof, not posture.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">The common thread is not sector or aesthetic. It is responsibility for helping valuable work reach people and remain usable over time.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Performing arts</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > strong"
              ],
              "html": "<strong>Viirus Theatre</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Shared memory</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > strong"
              ],
              "html": "<strong>100 Objects from Finland</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Education</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > strong"
              ],
              "html": "<strong>Estonian Academy of Arts</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Place</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > strong"
              ],
              "html": "<strong>Narva Art Residency</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Civic movement</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > strong"
              ],
              "html": "<strong>World Cleanup Day</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Cultural exchange</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > strong"
              ],
              "html": "<strong>TEDx São Tomé</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > strong"
              ],
              "html": "<strong>Memory</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > span"
              ],
              "html": "<span>What remains findable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > strong"
              ],
              "html": "<strong>Access</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > span"
              ],
              "html": "<span>Who can take part</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > strong"
              ],
              "html": "<strong>Participation</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > span"
              ],
              "html": "<span>What people can do</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > strong"
              ],
              "html": "<strong>Continuity</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > span"
              ],
              "html": "<span>What still works later</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">Who am I?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > h2"
              ],
              "html": "<h2>Kris Haamer. Designer, researcher, builder.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>I run HAAM&amp; as an independent interaction design practice. My work sits between product thinking, research, design systems, and implementation. I like messy problems, clear language, and products that feel thoughtful instead of generic.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".secondary.summer26-about-button[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">For fun</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > h2"
              ],
              "html": "<h2>Moosisai.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>An Estonian summer snack. Soft bread, berry jam, and milk. Not a business framework. Just a small, very real reminder that design also comes from ordinary life, memory, and taste.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-kicker"
              ],
              "html": "<p class=\"summer26-about-convictions-kicker\">Design convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#about-convictions-title"
              ],
              "html": "<h2 id=\"about-convictions-title\">Good design is opinionated.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-lead"
              ],
              "html": "<p class=\"summer26-about-convictions-lead\">A product should have a spine. HAAM&amp; is not neutral about speed, clarity, accessibility, or the way a system should behave when people rely on it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">01 Speed</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > h3"
              ],
              "html": "<h3>Be obsessed with speed.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > p"
              ],
              "html": "<p>A good product doesn't make you wait. Saving a few seconds from the experience is crucial because every delay breaks trust, focus, and momentum.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">02 Product</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > h3"
              ],
              "html": "<h3>UX is the product.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > p"
              ],
              "html": "<p>Use whatever tools are needed to make the product great: research, writing, interface design, code, automation, analytics, accessibility, operations, and support.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">03 Clarity</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > h3"
              ],
              "html": "<h3>Clarity beats decoration.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > p"
              ],
              "html": "<p>Visual taste matters, but the interface has to explain itself first. People should know where they are, what is possible, and what happens next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">04 Accessibility</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > h3"
              ],
              "html": "<h3>Accessibility is quality control.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > p"
              ],
              "html": "<p>If the product excludes people, breaks on assistive technology, or depends on perfect conditions, it is unfinished. Accessibility raises the standard for everyone.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">05 Systems</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > h3"
              ],
              "html": "<h3>Design the messy middle.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > p"
              ],
              "html": "<p>Most product value lives between departments, edge cases, content, data, calendars, support, and release decisions. Good design makes that operational reality usable.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">06 Taste</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > h3"
              ],
              "html": "<h3>Make choices.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > p"
              ],
              "html": "<p>Generic products happen when nobody takes responsibility for the experience. A strong product has priorities, constraints, and a clear sense of what it refuses to become.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-button.secondary[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-convictions-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-kicker"
              ],
              "html": "<p class=\"summer26-human-limits-crosslink-kicker\">The doctrine behind the convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#human-limits-crosslink-about"
              ],
              "html": "<h2 id=\"human-limits-crosslink-about\">Design begins with limits.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-copy > p:nth-child(3)"
              ],
              "html": "<p>Attention, memory, confidence, time, systems, and the living world are finite. See the principle that connects HAAM's work on clarity, accessibility, trust, automation, and responsibility.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-link"
              ],
              "html": "<a class=\"summer26-human-limits-crosslink-link\" href=\"/en/human-limits\">Read Human Limits ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        },
        {
          "id": "heading-order",
          "impact": "moderate",
          "description": "Ensure the order of headings is semantically correct",
          "help": "Heading levels should only increase by one",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".sr-only"
              ],
              "html": "<h2 class=\"sr-only\">Help improve this website?</h2>",
              "failureSummary": "Fix any of the following:\n  Unable to determine previous heading"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/about",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai-visual"
              ],
              "html": "<div class=\"summer26-moosisai-visual\" aria-label=\"Illustrated Moosisai breakfast still life inspired by the provided photo\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute cannot be used on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "landmark-complementary-is-top-level",
          "impact": "moderate",
          "description": "Ensure the complementary landmark or aside is at top level",
          "help": "Aside should not be contained in another landmark",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-complementary-is-top-level?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-moosisai"
              ],
              "html": "<aside class=\"summer26-about-card summer26-moosisai\">",
              "failureSummary": "Fix any of the following:\n  The null landmark is contained in another landmark."
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".haam-about-example"
              ],
              "html": "<div class=\"haam-about-example\" aria-label=\"Example conversation between a client and the HAAM team\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[aria-current=\"page\"][href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" aria-current=\"page\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-kicker"
              ],
              "html": "<p class=\"summer26-about-kicker\">About</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-hello"
              ],
              "html": "<p class=\"summer26-about-hello\">Hello. My name is Kris.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>I try to<!-- --> <em>understand</em>.</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>understand</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-lead"
              ],
              "html": "<p class=\"summer26-about-lead\">That is the starting point for interaction design for me. Before structure, screens, or systems, I try to understand the people, the tension, the context, and what is actually getting in the way.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">How HAAM works</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-system-title"
              ],
              "html": "<h2 id=\"summer26-about-system-title\">HAAM begins with fragmented reality.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(1)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(2)"
              ],
              "html": "<p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-system-body > p:nth-child(3)"
              ],
              "html": "<p>We work where design, technology, research, and organisational change meet. The goal is not simply to create better interfaces, but to make the underlying system more understandable, trustworthy, and capable of supporting real life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > h2"
              ],
              "html": "<h2>It is the design of how things meet people.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-sections > .summer26-about-card > p:nth-child(3)"
              ],
              "html": "<p>Interaction design is not only about interface. It is about shaping how a system behaves, how a person understands what to do next, and how an experience feels in motion. When it works, complexity becomes clearer, decisions become easier, and the product feels more natural to use.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-eyebrow"
              ],
              "html": "<p class=\"haam-about-example-eyebrow\">A quick example</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".haam-about-example-system > span:nth-child(2)"
              ],
              "html": "<span><strong>Milo joined the chat</strong> · <!-- -->HAAM team member</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(2) > strong"
              ],
              "html": "<strong>Milo joined the chat</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > div > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#summer26-about-meaningful-title"
              ],
              "html": "<h2 id=\"summer26-about-meaningful-title\">Build what culture keeps.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">Culturally significant work shapes how people remember, participate, learn, gather, and imagine what comes next. It deserves digital products as rigorous as the best-funded commercial systems.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "div:nth-child(3) > .summer26-about-meaningful-label"
              ],
              "html": "<p class=\"summer26-about-meaningful-label\">Meaningful work is rarely the easy brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > h3"
              ],
              "html": "<h3>More than one audience</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(1) > p"
              ],
              "html": "<p>Visitors, staff, artists, funders, researchers, volunteers, and future custodians may all need the same system to work differently.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > h3"
              ],
              "html": "<h3>Value is not only revenue</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(2) > p"
              ],
              "html": "<p>Success may mean access, trust, participation, preservation, continuity, or a stronger public institution.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > h3"
              ],
              "html": "<h3>The story cannot be flattened</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(3) > p"
              ],
              "html": "<p>Clarity matters, but so do history, language, place, authorship, and the productive complexity that gives the work meaning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > h3"
              ],
              "html": "<h3>The product must outlive the project</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-condition:nth-child(4) > p"
              ],
              "html": "<p>Campaigns end. Grants close. Teams change. The digital system still has to remain understandable, maintainable, and useful.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > h3"
              ],
              "html": "<h3>Treat meaning as a product requirement.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-principles > div > p"
              ],
              "html": "<p>The mission is not decoration added after the interface works. It changes the information architecture, research, governance, measurement, and technical decisions from the beginning.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1) > div > strong"
              ],
              "html": "<strong>Start with the public value</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(1) > div > p"
              ],
              "html": "<p>Define what the work protects, enables, or changes before choosing features or formats.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2) > div > strong"
              ],
              "html": "<strong>Make complexity navigable</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(2) > div > p"
              ],
              "html": "<p>Organize deep material without turning it into generic marketing copy or an archive no one can enter.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3) > div > strong"
              ],
              "html": "<strong>Design participation, not just attention</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(3) > div > p"
              ],
              "html": "<p>Create clear ways to visit, join, contribute, book, learn, volunteer, or return.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > strong"
              ],
              "html": "<strong>Measure the right outcomes</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4) > div > p"
              ],
              "html": "<p>Pair analytics with qualitative evidence and institution-specific signals instead of treating conversion as the only truth.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5) > div > strong"
              ],
              "html": "<strong>Build for stewardship</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-list > li:nth-child(5) > div > p"
              ],
              "html": "<p>Leave systems, content models, and operating decisions that future teams can understand and continue.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > h3"
              ],
              "html": "<h3>Proof, not posture.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-proof-head > .summer26-about-meaningful-lead"
              ],
              "html": "<p class=\"summer26-about-meaningful-lead\">The common thread is not sector or aesthetic. It is responsibility for helping valuable work reach people and remain usable over time.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Performing arts</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > div > strong"
              ],
              "html": "<strong>Viirus Theatre</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"viirus\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Shared memory</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > div > strong"
              ],
              "html": "<strong>100 Objects from Finland</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(2) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Education</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > div > strong"
              ],
              "html": "<strong>Estonian Academy of Arts</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(3) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Place</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > div > strong"
              ],
              "html": "<strong>Narva Art Residency</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(4) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Civic movement</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > div > strong"
              ],
              "html": "<strong>World Cleanup Day</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-project:nth-child(5) > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > .summer26-about-meaningful-project-label"
              ],
              "html": "<span class=\"summer26-about-meaningful-project-label\">Cultural exchange</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > div > strong"
              ],
              "html": "<strong>TEDx São Tomé</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"tedx-saotome\"] > .summer26-about-meaningful-project-footer > span:nth-child(1)"
              ],
              "html": "<span>View case study</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > strong"
              ],
              "html": "<strong>Memory</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(1) > span"
              ],
              "html": "<span>What remains findable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > strong"
              ],
              "html": "<strong>Access</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(2) > span"
              ],
              "html": "<span>Who can take part</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > strong"
              ],
              "html": "<strong>Participation</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(3) > span"
              ],
              "html": "<span>What people can do</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > strong"
              ],
              "html": "<strong>Continuity</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-meaningful-measure:nth-child(4) > span"
              ],
              "html": "<span>What still works later</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">Who am I?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > h2"
              ],
              "html": "<h2>Kris Haamer. Designer, researcher, builder.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>I run HAAM&amp; as an independent interaction design practice. My work sits between product thinking, research, design systems, and implementation. I like messy problems, clear language, and products that feel thoughtful instead of generic.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".secondary.summer26-about-button[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > .summer26-about-card-label"
              ],
              "html": "<p class=\"summer26-about-card-label\">For fun</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > h2"
              ],
              "html": "<h2>Moosisai.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-moosisai > div:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>An Estonian summer snack. Soft bread, berry jam, and milk. Not a business framework. Just a small, very real reminder that design also comes from ordinary life, memory, and taste.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-kicker"
              ],
              "html": "<p class=\"summer26-about-convictions-kicker\">Design convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#about-convictions-title"
              ],
              "html": "<h2 id=\"about-convictions-title\">Good design is opinionated.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-lead"
              ],
              "html": "<p class=\"summer26-about-convictions-lead\">A product should have a spine. HAAM&amp; is not neutral about speed, clarity, accessibility, or the way a system should behave when people rely on it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">01 Speed</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > h3"
              ],
              "html": "<h3>Be obsessed with speed.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(1) > div > p"
              ],
              "html": "<p>A good product doesn't make you wait. Saving a few seconds from the experience is crucial because every delay breaks trust, focus, and momentum.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">02 Product</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > h3"
              ],
              "html": "<h3>UX is the product.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(2) > div > p"
              ],
              "html": "<p>Use whatever tools are needed to make the product great: research, writing, interface design, code, automation, analytics, accessibility, operations, and support.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">03 Clarity</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > h3"
              ],
              "html": "<h3>Clarity beats decoration.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(3) > div > p"
              ],
              "html": "<p>Visual taste matters, but the interface has to explain itself first. People should know where they are, what is possible, and what happens next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">04 Accessibility</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > h3"
              ],
              "html": "<h3>Accessibility is quality control.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(4) > div > p"
              ],
              "html": "<p>If the product excludes people, breaks on assistive technology, or depends on perfect conditions, it is unfinished. Accessibility raises the standard for everyone.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">05 Systems</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > h3"
              ],
              "html": "<h3>Design the messy middle.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(5) > div > p"
              ],
              "html": "<p>Most product value lives between departments, edge cases, content, data, calendars, support, and release decisions. Good design makes that operational reality usable.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > .summer26-about-convictions-eyebrow"
              ],
              "html": "<p class=\"summer26-about-convictions-eyebrow\">06 Taste</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > h3"
              ],
              "html": "<h3>Make choices.</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-card:nth-child(6) > div > p"
              ],
              "html": "<p>Generic products happen when nobody takes responsibility for the experience. A strong product has priorities, constraints, and a clear sense of what it refuses to become.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-about-convictions-button.secondary[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-about-convictions-button secondary\" href=\"/en\">Back to home</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-kicker"
              ],
              "html": "<p class=\"summer26-human-limits-crosslink-kicker\">The doctrine behind the convictions</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#human-limits-crosslink-about"
              ],
              "html": "<h2 id=\"human-limits-crosslink-about\">Design begins with limits.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-copy > p:nth-child(3)"
              ],
              "html": "<p>Attention, memory, confidence, time, systems, and the living world are finite. See the principle that connects HAAM's work on clarity, accessibility, trust, automation, and responsibility.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-human-limits-crosslink-link"
              ],
              "html": "<a class=\"summer26-human-limits-crosslink-link\" href=\"/en/human-limits\">Read Human Limits ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/case-studies/viirus",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-flow"
              ],
              "html": "<div class=\"viirus-ix-flow\" aria-label=\"Viirus visitor interaction flow\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-metrics"
              ],
              "html": "<div class=\"viirus-ix-metrics\" aria-label=\"Before and after performance evidence\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".case-evidence-kicker"
              ],
              "html": "<p class=\"case-evidence-kicker\">Evidence trail</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#case-evidence-title"
              ],
              "html": "<h2 id=\"case-evidence-title\">Why the interface is this way.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-type"
              ],
              "html": "<span class=\"case-evidence-type\">PERFORMANCE + ACCESSIBILITY</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-intro"
              ],
              "html": "<p class=\"case-evidence-intro\">Good interaction design should be traceable upstream. Depending on the project, that upstream work might be interviews, co-design, fieldwork, archive work, testing, analytics, or operations. Here is the shortest version of the chain from evidence to decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > h3"
              ],
              "html": "<h3>Evidence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Mobile performance audits, accessibility requirements, repertoire and calendar tasks, ticket journeys, privacy constraints, and daily editorial use exposed the main friction.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>A theatre visitor is usually answering a time-sensitive question on a phone, so loading, programme state, language, accessibility, and tickets carry the most weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > h3"
              ],
              "html": "<h3>Design decision</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Unify search and calendar discovery, make states explicit, keep accessibility controls practical, gate expensive media, and lighten the critical path.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > h3"
              ],
              "html": "<h3>Result</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > p:nth-child(3)"
              ],
              "html": "<p>The rebuilt experience is faster and more accessible while repertoire, dates, and ticket actions have a clearer hierarchy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            }
          ]
        }
      ],
      "passedRules": 38,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/case-studies/viirus",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-flow"
              ],
              "html": "<div class=\"viirus-ix-flow\" aria-label=\"Viirus visitor interaction flow\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-metrics"
              ],
              "html": "<div class=\"viirus-ix-metrics\" aria-label=\"Before and after performance evidence\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".case-evidence-kicker"
              ],
              "html": "<p class=\"case-evidence-kicker\">Evidence trail</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#case-evidence-title"
              ],
              "html": "<h2 id=\"case-evidence-title\">Why the interface is this way.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-type"
              ],
              "html": "<span class=\"case-evidence-type\">PERFORMANCE + ACCESSIBILITY</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-intro"
              ],
              "html": "<p class=\"case-evidence-intro\">Good interaction design should be traceable upstream. Depending on the project, that upstream work might be interviews, co-design, fieldwork, archive work, testing, analytics, or operations. Here is the shortest version of the chain from evidence to decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > h3"
              ],
              "html": "<h3>Evidence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Mobile performance audits, accessibility requirements, repertoire and calendar tasks, ticket journeys, privacy constraints, and daily editorial use exposed the main friction.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>A theatre visitor is usually answering a time-sensitive question on a phone, so loading, programme state, language, accessibility, and tickets carry the most weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > h3"
              ],
              "html": "<h3>Design decision</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Unify search and calendar discovery, make states explicit, keep accessibility controls practical, gate expensive media, and lighten the critical path.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > h3"
              ],
              "html": "<h3>Result</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > p:nth-child(3)"
              ],
              "html": "<p>The rebuilt experience is faster and more accessible while repertoire, dates, and ticket actions have a clearer hierarchy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            }
          ]
        }
      ],
      "passedRules": 38,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/case-studies/viirus",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.25 (foreground color: #7b7a76, background color: #fffef8, font size: 8.2pt (10.88px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-flow"
              ],
              "html": "<div class=\"viirus-ix-flow\" aria-label=\"Viirus visitor interaction flow\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-metrics"
              ],
              "html": "<div class=\"viirus-ix-metrics\" aria-label=\"Before and after performance evidence\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".case-evidence-kicker"
              ],
              "html": "<p class=\"case-evidence-kicker\">Evidence trail</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#case-evidence-title"
              ],
              "html": "<h2 id=\"case-evidence-title\">Why the interface is this way.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-type"
              ],
              "html": "<span class=\"case-evidence-type\">PERFORMANCE + ACCESSIBILITY</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-intro"
              ],
              "html": "<p class=\"case-evidence-intro\">Good interaction design should be traceable upstream. Depending on the project, that upstream work might be interviews, co-design, fieldwork, archive work, testing, analytics, or operations. Here is the shortest version of the chain from evidence to decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > h3"
              ],
              "html": "<h3>Evidence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Mobile performance audits, accessibility requirements, repertoire and calendar tasks, ticket journeys, privacy constraints, and daily editorial use exposed the main friction.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>A theatre visitor is usually answering a time-sensitive question on a phone, so loading, programme state, language, accessibility, and tickets carry the most weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > h3"
              ],
              "html": "<h3>Design decision</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Unify search and calendar discovery, make states explicit, keep accessibility controls practical, gate expensive media, and lighten the critical path.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > h3"
              ],
              "html": "<h3>Result</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > p:nth-child(3)"
              ],
              "html": "<p>The rebuilt experience is faster and more accessible while repertoire, dates, and ticket actions have a clearer hierarchy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 39,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/case-studies/viirus",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.25 (foreground color: #7b7a76, background color: #fffef8, font size: 8.2pt (10.88px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-flow"
              ],
              "html": "<div class=\"viirus-ix-flow\" aria-label=\"Viirus visitor interaction flow\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".viirus-ix-metrics"
              ],
              "html": "<div class=\"viirus-ix-metrics\" aria-label=\"Before and after performance evidence\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".case-evidence-kicker"
              ],
              "html": "<p class=\"case-evidence-kicker\">Evidence trail</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#case-evidence-title"
              ],
              "html": "<h2 id=\"case-evidence-title\">Why the interface is this way.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-type"
              ],
              "html": "<span class=\"case-evidence-type\">PERFORMANCE + ACCESSIBILITY</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-intro"
              ],
              "html": "<p class=\"case-evidence-intro\">Good interaction design should be traceable upstream. Depending on the project, that upstream work might be interviews, co-design, fieldwork, archive work, testing, analytics, or operations. Here is the shortest version of the chain from evidence to decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > h3"
              ],
              "html": "<h3>Evidence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Mobile performance audits, accessibility requirements, repertoire and calendar tasks, ticket journeys, privacy constraints, and daily editorial use exposed the main friction.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>A theatre visitor is usually answering a time-sensitive question on a phone, so loading, programme state, language, accessibility, and tickets carry the most weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > h3"
              ],
              "html": "<h3>Design decision</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Unify search and calendar discovery, make states explicit, keep accessibility controls practical, gate expensive media, and lighten the critical path.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > .case-evidence-step"
              ],
              "html": "<p class=\"case-evidence-step\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > h3"
              ],
              "html": "<h3>Result</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".case-evidence-card:nth-child(4) > p:nth-child(3)"
              ],
              "html": "<p>The rebuilt experience is faster and more accessible while repertoire, dates, and ticket actions have a clearer hierarchy.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 39,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/start",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Start a HAAM project</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "#summer26-start-title"
              ],
              "html": "<h1 id=\"summer26-start-title\">What's your<!-- --> <em>dream</em>?</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>dream</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-lead"
              ],
              "html": "<p class=\"summer26-lead\">HAAM helps turn the broken thing, the dream thing, or the almost-there thing into a clearer brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/start",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Start a HAAM project</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "#summer26-start-title"
              ],
              "html": "<h1 id=\"summer26-start-title\">What's your<!-- --> <em>dream</em>?</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>dream</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-lead"
              ],
              "html": "<p class=\"summer26-lead\">HAAM helps turn the broken thing, the dream thing, or the almost-there thing into a clearer brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/start",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Start a HAAM project</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "#summer26-start-title"
              ],
              "html": "<h1 id=\"summer26-start-title\">What's your<!-- --> <em>dream</em>?</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>dream</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-lead"
              ],
              "html": "<p class=\"summer26-lead\">HAAM helps turn the broken thing, the dream thing, or the almost-there thing into a clearer brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-start-bird-cargo"
              ],
              "html": "<span class=\"summer26-start-bird-cargo\" aria-hidden=\"true\">What's your dream?</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 33,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/start",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-kicker"
              ],
              "html": "<p class=\"summer26-kicker\">Start a HAAM project</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "#summer26-start-title"
              ],
              "html": "<h1 id=\"summer26-start-title\">What's your<!-- --> <em>dream</em>?</h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>dream</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-lead"
              ],
              "html": "<p class=\"summer26-lead\">HAAM helps turn the broken thing, the dream thing, or the almost-there thing into a clearer brief.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/products",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-mark"
              ],
              "html": "<div class=\"product-wildcard-mark\" aria-label=\"HAAM wildcard namespace\"><span class=\"product-wildcard-word\">haam-</span><span class=\"product-wildcard-star\" aria-hidden=\"true\">*</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-rule"
              ],
              "html": "<div class=\"product-wildcard-rule\" aria-label=\"HAAM wildcard product collection\"><span>haam-*</span><span>08<!-- --> products in the namespace</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back"
              ],
              "html": "<a class=\"regional-back\" href=\"/en\"><span aria-hidden=\"true\">←</span>Nordic home edition</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">←</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".regional-eyebrow"
              ],
              "html": "<p class=\"regional-eyebrow\">HAAM product edition</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-word"
              ],
              "html": "<span class=\"product-wildcard-word\">haam-</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-caption"
              ],
              "html": "<p class=\"product-wildcard-caption\">the product namespace</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>HAAM<span class=\"regional-title-line\">Products</span></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-title-line"
              ],
              "html": "<span class=\"regional-title-line\">Products</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(2)"
              ],
              "html": "<p class=\"regional-lead\">Eight products. Each starts with an interaction contract.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(3)"
              ],
              "html": "<p class=\"regional-lead\" style=\"margin-top:0.9rem\">",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">Interaction grammar</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#product-grammar-title"
              ],
              "html": "<h2 id=\"product-grammar-title\">What every HAAM product has to keep true.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Behavior before screenshots.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > span"
              ],
              "html": "<span>01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > h3"
              ],
              "html": "<h3>State before surface</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > p"
              ],
              "html": "<p>A product should make the current state, the next possible action, and the consequence of that action legible before visual polish carries the story.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > span"
              ],
              "html": "<span>02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > h3"
              ],
              "html": "<h3>Evidence stays attached</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > p"
              ],
              "html": "<p>A recommendation, score, classification, or answer should keep the source material close enough that a person can inspect why the system believes it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > span"
              ],
              "html": "<span>03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > h3"
              ],
              "html": "<h3>Suggestions are not facts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > p"
              ],
              "html": "<p>The interface must distinguish sensed, inferred, suggested, confirmed, and executed states instead of letting automation blur them together.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > span"
              ],
              "html": "<span>04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > h3"
              ],
              "html": "<h3>Permission before consequence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > p"
              ],
              "html": "<p>The more consequential an action becomes, the clearer the confirmation, preview, scope, and recovery path must be.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > span"
              ],
              "html": "<span>05</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > h3"
              ],
              "html": "<h3>Missing stays missing</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > p"
              ],
              "html": "<p>Unknown, stale, unavailable, and unsupported are designed states. The system should not quietly fill gaps with confidence it does not have.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > span"
              ],
              "html": "<span>06</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > h3"
              ],
              "html": "<h3>Failure is part of the loop</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > p"
              ],
              "html": "<p>Every important flow needs an interruption, refusal, correction, undo, retry, or handoff path that preserves what the person already did.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">On haam.co</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-projects-title"
              ],
              "html": "<h2 id=\"regional-projects-title\">Projects</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Open a case study for the target state model, edge cases, definition of done, and the receipts the current build can already show.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(1)"
              ],
              "html": "<span>haam-*</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(2)"
              ],
              "html": "<span>08<!-- --> products in the namespace</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">client.haam.co<!-- --> · <!-- -->Supervised client service</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > h3"
              ],
              "html": "<h3>Client Desk</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">When someone writes, the answer should already be in the work. Approved knowledge, three confirmed actions, then the rest comes to me with the context attached.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Answer from approved evidence. Ask before acting. Escalate without making the client start over.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client-desk\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/client-desk\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://client.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">bi.haam.co<!-- --> · <!-- -->What actually moved</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > h3"
              ],
              "html": "<h3>BI</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Cash arriving and leaving, so I can see whether the work is covering the life around it. The public host shows a demo set.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Every financial conclusion must open back into the rows that made it true.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"haam-bi\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/haam-bi\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"bi.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://bi.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">studio.haam.co<!-- --> · <!-- -->Vessel 01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > h3"
              ],
              "html": "<h3>Product Studio</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Held still so the material, the light, and the construction can be looked at.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Manipulate one object directly, then share the exact view rather than a generic product page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/product-studio\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"studio.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://studio.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">compass.haam.co<!-- --> · <!-- -->Today’s session</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > h3"
              ],
              "html": "<h3>Compass</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Sleep, energy, time, and what already happened this week decide the session. Then you can see why. The web host uses demo data.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Turn today’s constraints into a readable fitness suggestion, with the reasons and the stop condition visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/compass\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://compass.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">05</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">consistency.haam.co<!-- --> · <!-- -->The small daily things</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">A signal can suggest. You still say whether it happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">A device may notice a signal. Only the person can say the routine actually happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/consistency\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://consistency.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">06</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">air.haam.co<!-- --> · <!-- -->What I breathed, next to the city</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > h3"
              ],
              "html": "<h3>Air</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Personal Atmotube PM2.5 next to the CAMS city background, hour by hour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Compare personal exposure with the city only when metric, place, and hour actually line up.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/air\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://air.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">07</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">speaking.haam.co<!-- --> · <!-- -->Where the talk already exists</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > h3"
              ],
              "html": "<h3>Speaking</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Find open calls, rank them against the evidence and talk ideas, prepare the pack, send only with approval.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Reduce a pile of open calls to a grounded shortlist, then keep sending behind a human decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/speaking\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://speaking.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">08</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">swim.haam.co<!-- --> · <!-- -->Where the water is kept open</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > h3"
              ],
              "html": "<h3>Swimmable Cities</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">The closest managed swim places, the official baseline, nearby pollution, and what the city can still do. Check today’s local notice before you enter the water.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Show what is officially known about a swim spot, how old it is, and where to verify today.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/swimmable-cities\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"swim.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://swim.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-cta-eyebrow"
              ],
              "html": "<p class=\"regional-cta-eyebrow\">A job that needs its own address?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-cta-title"
              ],
              "html": "<h2 id=\"regional-cta-title\">Write to me and we can see whether it belongs here.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/products",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".regional-button[href$=\"start\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/start\">Start with HAAM</a>",
              "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.02 (foreground color: #fffdf7, background color: #fffaf0, font size: 8.4pt (11.2px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-mark"
              ],
              "html": "<div class=\"product-wildcard-mark\" aria-label=\"HAAM wildcard namespace\"><span class=\"product-wildcard-word\">haam-</span><span class=\"product-wildcard-star\" aria-hidden=\"true\">*</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-rule"
              ],
              "html": "<div class=\"product-wildcard-rule\" aria-label=\"HAAM wildcard product collection\"><span>haam-*</span><span>08<!-- --> products in the namespace</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back"
              ],
              "html": "<a class=\"regional-back\" href=\"/en\"><span aria-hidden=\"true\">←</span>Nordic home edition</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">←</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".regional-eyebrow"
              ],
              "html": "<p class=\"regional-eyebrow\">HAAM product edition</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-word"
              ],
              "html": "<span class=\"product-wildcard-word\">haam-</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-caption"
              ],
              "html": "<p class=\"product-wildcard-caption\">the product namespace</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>HAAM<span class=\"regional-title-line\">Products</span></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-title-line"
              ],
              "html": "<span class=\"regional-title-line\">Products</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(2)"
              ],
              "html": "<p class=\"regional-lead\">Eight products. Each starts with an interaction contract.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(3)"
              ],
              "html": "<p class=\"regional-lead\" style=\"margin-top:0.9rem\">",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">Interaction grammar</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#product-grammar-title"
              ],
              "html": "<h2 id=\"product-grammar-title\">What every HAAM product has to keep true.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Behavior before screenshots.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > span"
              ],
              "html": "<span>01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > h3"
              ],
              "html": "<h3>State before surface</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > p"
              ],
              "html": "<p>A product should make the current state, the next possible action, and the consequence of that action legible before visual polish carries the story.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > span"
              ],
              "html": "<span>02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > h3"
              ],
              "html": "<h3>Evidence stays attached</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > p"
              ],
              "html": "<p>A recommendation, score, classification, or answer should keep the source material close enough that a person can inspect why the system believes it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > span"
              ],
              "html": "<span>03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > h3"
              ],
              "html": "<h3>Suggestions are not facts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > p"
              ],
              "html": "<p>The interface must distinguish sensed, inferred, suggested, confirmed, and executed states instead of letting automation blur them together.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > span"
              ],
              "html": "<span>04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > h3"
              ],
              "html": "<h3>Permission before consequence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > p"
              ],
              "html": "<p>The more consequential an action becomes, the clearer the confirmation, preview, scope, and recovery path must be.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > span"
              ],
              "html": "<span>05</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > h3"
              ],
              "html": "<h3>Missing stays missing</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > p"
              ],
              "html": "<p>Unknown, stale, unavailable, and unsupported are designed states. The system should not quietly fill gaps with confidence it does not have.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > span"
              ],
              "html": "<span>06</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > h3"
              ],
              "html": "<h3>Failure is part of the loop</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > p"
              ],
              "html": "<p>Every important flow needs an interruption, refusal, correction, undo, retry, or handoff path that preserves what the person already did.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">On haam.co</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-projects-title"
              ],
              "html": "<h2 id=\"regional-projects-title\">Projects</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Open a case study for the target state model, edge cases, definition of done, and the receipts the current build can already show.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(1)"
              ],
              "html": "<span>haam-*</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(2)"
              ],
              "html": "<span>08<!-- --> products in the namespace</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">client.haam.co<!-- --> · <!-- -->Supervised client service</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > h3"
              ],
              "html": "<h3>Client Desk</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">When someone writes, the answer should already be in the work. Approved knowledge, three confirmed actions, then the rest comes to me with the context attached.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Answer from approved evidence. Ask before acting. Escalate without making the client start over.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client-desk\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/client-desk\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://client.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">bi.haam.co<!-- --> · <!-- -->What actually moved</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > h3"
              ],
              "html": "<h3>BI</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Cash arriving and leaving, so I can see whether the work is covering the life around it. The public host shows a demo set.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Every financial conclusion must open back into the rows that made it true.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"haam-bi\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/haam-bi\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"bi.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://bi.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">studio.haam.co<!-- --> · <!-- -->Vessel 01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > h3"
              ],
              "html": "<h3>Product Studio</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Held still so the material, the light, and the construction can be looked at.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Manipulate one object directly, then share the exact view rather than a generic product page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/product-studio\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"studio.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://studio.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">compass.haam.co<!-- --> · <!-- -->Today’s session</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > h3"
              ],
              "html": "<h3>Compass</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Sleep, energy, time, and what already happened this week decide the session. Then you can see why. The web host uses demo data.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Turn today’s constraints into a readable fitness suggestion, with the reasons and the stop condition visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/compass\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://compass.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">05</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">consistency.haam.co<!-- --> · <!-- -->The small daily things</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">A signal can suggest. You still say whether it happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">A device may notice a signal. Only the person can say the routine actually happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/consistency\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://consistency.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">06</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">air.haam.co<!-- --> · <!-- -->What I breathed, next to the city</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > h3"
              ],
              "html": "<h3>Air</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Personal Atmotube PM2.5 next to the CAMS city background, hour by hour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Compare personal exposure with the city only when metric, place, and hour actually line up.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/air\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://air.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">07</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">speaking.haam.co<!-- --> · <!-- -->Where the talk already exists</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > h3"
              ],
              "html": "<h3>Speaking</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Find open calls, rank them against the evidence and talk ideas, prepare the pack, send only with approval.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Reduce a pile of open calls to a grounded shortlist, then keep sending behind a human decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/speaking\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://speaking.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">08</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">swim.haam.co<!-- --> · <!-- -->Where the water is kept open</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > h3"
              ],
              "html": "<h3>Swimmable Cities</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">The closest managed swim places, the official baseline, nearby pollution, and what the city can still do. Check today’s local notice before you enter the water.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Show what is officially known about a swim spot, how old it is, and where to verify today.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/swimmable-cities\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"swim.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://swim.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-cta-eyebrow"
              ],
              "html": "<p class=\"regional-cta-eyebrow\">A job that needs its own address?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-cta-title"
              ],
              "html": "<h2 id=\"regional-cta-title\">Write to me and we can see whether it belongs here.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/products",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-mark"
              ],
              "html": "<div class=\"product-wildcard-mark\" aria-label=\"HAAM wildcard namespace\"><span class=\"product-wildcard-word\">haam-</span><span class=\"product-wildcard-star\" aria-hidden=\"true\">*</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-rule"
              ],
              "html": "<div class=\"product-wildcard-rule\" aria-label=\"HAAM wildcard product collection\"><span>haam-*</span><span>08<!-- --> products in the namespace</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back"
              ],
              "html": "<a class=\"regional-back\" href=\"/en\"><span aria-hidden=\"true\">←</span>Nordic home edition</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">←</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".regional-eyebrow"
              ],
              "html": "<p class=\"regional-eyebrow\">HAAM product edition</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-word"
              ],
              "html": "<span class=\"product-wildcard-word\">haam-</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-caption"
              ],
              "html": "<p class=\"product-wildcard-caption\">the product namespace</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>HAAM<span class=\"regional-title-line\">Products</span></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-title-line"
              ],
              "html": "<span class=\"regional-title-line\">Products</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(2)"
              ],
              "html": "<p class=\"regional-lead\">Eight products. Each starts with an interaction contract.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(3)"
              ],
              "html": "<p class=\"regional-lead\" style=\"margin-top:0.9rem\">",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">Interaction grammar</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#product-grammar-title"
              ],
              "html": "<h2 id=\"product-grammar-title\">What every HAAM product has to keep true.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Behavior before screenshots.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > span"
              ],
              "html": "<span>01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > h3"
              ],
              "html": "<h3>State before surface</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > p"
              ],
              "html": "<p>A product should make the current state, the next possible action, and the consequence of that action legible before visual polish carries the story.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > span"
              ],
              "html": "<span>02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > h3"
              ],
              "html": "<h3>Evidence stays attached</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > p"
              ],
              "html": "<p>A recommendation, score, classification, or answer should keep the source material close enough that a person can inspect why the system believes it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > span"
              ],
              "html": "<span>03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > h3"
              ],
              "html": "<h3>Suggestions are not facts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > p"
              ],
              "html": "<p>The interface must distinguish sensed, inferred, suggested, confirmed, and executed states instead of letting automation blur them together.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > span"
              ],
              "html": "<span>04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > h3"
              ],
              "html": "<h3>Permission before consequence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > p"
              ],
              "html": "<p>The more consequential an action becomes, the clearer the confirmation, preview, scope, and recovery path must be.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > span"
              ],
              "html": "<span>05</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > h3"
              ],
              "html": "<h3>Missing stays missing</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > p"
              ],
              "html": "<p>Unknown, stale, unavailable, and unsupported are designed states. The system should not quietly fill gaps with confidence it does not have.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > span"
              ],
              "html": "<span>06</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > h3"
              ],
              "html": "<h3>Failure is part of the loop</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > p"
              ],
              "html": "<p>Every important flow needs an interruption, refusal, correction, undo, retry, or handoff path that preserves what the person already did.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">On haam.co</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-projects-title"
              ],
              "html": "<h2 id=\"regional-projects-title\">Projects</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Open a case study for the target state model, edge cases, definition of done, and the receipts the current build can already show.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(1)"
              ],
              "html": "<span>haam-*</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(2)"
              ],
              "html": "<span>08<!-- --> products in the namespace</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">client.haam.co<!-- --> · <!-- -->Supervised client service</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > h3"
              ],
              "html": "<h3>Client Desk</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">When someone writes, the answer should already be in the work. Approved knowledge, three confirmed actions, then the rest comes to me with the context attached.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Answer from approved evidence. Ask before acting. Escalate without making the client start over.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client-desk\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/client-desk\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://client.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">bi.haam.co<!-- --> · <!-- -->What actually moved</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > h3"
              ],
              "html": "<h3>BI</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Cash arriving and leaving, so I can see whether the work is covering the life around it. The public host shows a demo set.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Every financial conclusion must open back into the rows that made it true.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"haam-bi\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/haam-bi\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"bi.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://bi.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">studio.haam.co<!-- --> · <!-- -->Vessel 01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > h3"
              ],
              "html": "<h3>Product Studio</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Held still so the material, the light, and the construction can be looked at.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Manipulate one object directly, then share the exact view rather than a generic product page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/product-studio\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"studio.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://studio.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">compass.haam.co<!-- --> · <!-- -->Today’s session</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > h3"
              ],
              "html": "<h3>Compass</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Sleep, energy, time, and what already happened this week decide the session. Then you can see why. The web host uses demo data.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Turn today’s constraints into a readable fitness suggestion, with the reasons and the stop condition visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/compass\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://compass.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">05</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">consistency.haam.co<!-- --> · <!-- -->The small daily things</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">A signal can suggest. You still say whether it happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">A device may notice a signal. Only the person can say the routine actually happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/consistency\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://consistency.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">06</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">air.haam.co<!-- --> · <!-- -->What I breathed, next to the city</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > h3"
              ],
              "html": "<h3>Air</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Personal Atmotube PM2.5 next to the CAMS city background, hour by hour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Compare personal exposure with the city only when metric, place, and hour actually line up.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/air\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://air.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">07</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">speaking.haam.co<!-- --> · <!-- -->Where the talk already exists</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > h3"
              ],
              "html": "<h3>Speaking</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Find open calls, rank them against the evidence and talk ideas, prepare the pack, send only with approval.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Reduce a pile of open calls to a grounded shortlist, then keep sending behind a human decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/speaking\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://speaking.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">08</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">swim.haam.co<!-- --> · <!-- -->Where the water is kept open</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > h3"
              ],
              "html": "<h3>Swimmable Cities</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">The closest managed swim places, the official baseline, nearby pollution, and what the city can still do. Check today’s local notice before you enter the water.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Show what is officially known about a swim spot, how old it is, and where to verify today.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/swimmable-cities\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"swim.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://swim.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-cta-eyebrow"
              ],
              "html": "<p class=\"regional-cta-eyebrow\">A job that needs its own address?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-cta-title"
              ],
              "html": "<h2 id=\"regional-cta-title\">Write to me and we can see whether it belongs here.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 38,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/products",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".regional-button[href$=\"start\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/start\">Start with HAAM</a>",
              "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.02 (foreground color: #fffdf7, background color: #fffaf0, font size: 8.4pt (11.2px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ]
        },
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-mark"
              ],
              "html": "<div class=\"product-wildcard-mark\" aria-label=\"HAAM wildcard namespace\"><span class=\"product-wildcard-word\">haam-</span><span class=\"product-wildcard-star\" aria-hidden=\"true\">*</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".product-wildcard-rule"
              ],
              "html": "<div class=\"product-wildcard-rule\" aria-label=\"HAAM wildcard product collection\"><span>haam-*</span><span>08<!-- --> products in the namespace</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".regional-back"
              ],
              "html": "<a class=\"regional-back\" href=\"/en\"><span aria-hidden=\"true\">←</span>Nordic home edition</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-back > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">←</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".regional-eyebrow"
              ],
              "html": "<p class=\"regional-eyebrow\">HAAM product edition</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-word"
              ],
              "html": "<span class=\"product-wildcard-word\">haam-</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-caption"
              ],
              "html": "<p class=\"product-wildcard-caption\">the product namespace</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>HAAM<span class=\"regional-title-line\">Products</span></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-title-line"
              ],
              "html": "<span class=\"regional-title-line\">Products</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(2)"
              ],
              "html": "<p class=\"regional-lead\">Eight products. Each starts with an interaction contract.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-lead:nth-child(3)"
              ],
              "html": "<p class=\"regional-lead\" style=\"margin-top:0.9rem\">",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">Interaction grammar</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#product-grammar-title"
              ],
              "html": "<h2 id=\"product-grammar-title\">What every HAAM product has to keep true.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Behavior before screenshots.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > span"
              ],
              "html": "<span>01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > h3"
              ],
              "html": "<h3>State before surface</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(1) > p"
              ],
              "html": "<p>A product should make the current state, the next possible action, and the consequence of that action legible before visual polish carries the story.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > span"
              ],
              "html": "<span>02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > h3"
              ],
              "html": "<h3>Evidence stays attached</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(2) > p"
              ],
              "html": "<p>A recommendation, score, classification, or answer should keep the source material close enough that a person can inspect why the system believes it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > span"
              ],
              "html": "<span>03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > h3"
              ],
              "html": "<h3>Suggestions are not facts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(3) > p"
              ],
              "html": "<p>The interface must distinguish sensed, inferred, suggested, confirmed, and executed states instead of letting automation blur them together.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > span"
              ],
              "html": "<span>04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > h3"
              ],
              "html": "<h3>Permission before consequence</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(4) > p"
              ],
              "html": "<p>The more consequential an action becomes, the clearer the confirmation, preview, scope, and recovery path must be.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > span"
              ],
              "html": "<span>05</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > h3"
              ],
              "html": "<h3>Missing stays missing</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(5) > p"
              ],
              "html": "<p>Unknown, stale, unavailable, and unsupported are designed states. The system should not quietly fill gaps with confidence it does not have.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > span"
              ],
              "html": "<span>06</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > h3"
              ],
              "html": "<h3>Failure is part of the loop</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-grammar-card:nth-child(6) > p"
              ],
              "html": "<p>Every important flow needs an interruption, refusal, correction, undo, retry, or handoff path that preserves what the person already did.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > div > .regional-section-label"
              ],
              "html": "<p class=\"regional-section-label\">On haam.co</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-projects-title"
              ],
              "html": "<h2 id=\"regional-projects-title\">Projects</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-projects > .regional-section-head > .regional-source"
              ],
              "html": "<p class=\"regional-source\">Open a case study for the target state model, edge cases, definition of done, and the receipts the current build can already show.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(1)"
              ],
              "html": "<span>haam-*</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".product-wildcard-rule > span:nth-child(2)"
              ],
              "html": "<span>08<!-- --> products in the namespace</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">client.haam.co<!-- --> · <!-- -->Supervised client service</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > h3"
              ],
              "html": "<h3>Client Desk</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">When someone writes, the answer should already be in the work. Approved knowledge, three confirmed actions, then the rest comes to me with the context attached.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(1) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Answer from approved evidence. Ask before acting. Escalate without making the client start over.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client-desk\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/client-desk\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"client.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://client.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">02</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">bi.haam.co<!-- --> · <!-- -->What actually moved</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > h3"
              ],
              "html": "<h3>BI</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Cash arriving and leaving, so I can see whether the work is covering the life around it. The public host shows a demo set.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(2) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Every financial conclusion must open back into the rows that made it true.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"haam-bi\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/haam-bi\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"bi.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://bi.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">03</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">studio.haam.co<!-- --> · <!-- -->Vessel 01</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > h3"
              ],
              "html": "<h3>Product Studio</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Held still so the material, the light, and the construction can be looked at.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Manipulate one object directly, then share the exact view rather than a generic product page.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(3) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/product-studio\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"studio.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://studio.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">04</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">compass.haam.co<!-- --> · <!-- -->Today’s session</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > h3"
              ],
              "html": "<h3>Compass</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Sleep, energy, time, and what already happened this week decide the session. Then you can see why. The web host uses demo data.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(4) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Turn today’s constraints into a readable fitness suggestion, with the reasons and the stop condition visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/compass\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"compass.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://compass.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">05</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">consistency.haam.co<!-- --> · <!-- -->The small daily things</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">A signal can suggest. You still say whether it happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(5) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">A device may notice a signal. Only the person can say the routine actually happened.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/consistency\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"consistency.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://consistency.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">06</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">air.haam.co<!-- --> · <!-- -->What I breathed, next to the city</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > h3"
              ],
              "html": "<h3>Air</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Personal Atmotube PM2.5 next to the CAMS city background, hour by hour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(6) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Compare personal exposure with the city only when metric, place, and hour actually line up.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/air\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"air.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://air.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">07</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">speaking.haam.co<!-- --> · <!-- -->Where the talk already exists</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > h3"
              ],
              "html": "<h3>Speaking</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">Find open calls, rank them against the evidence and talk ideas, prepare the pack, send only with approval.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(7) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Reduce a pile of open calls to a grounded shortlist, then keep sending behind a human decision.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking\"]"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/speaking\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"speaking.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://speaking.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-index"
              ],
              "html": "<p class=\"regional-project-index\">08</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-top > .regional-project-meta"
              ],
              "html": "<p class=\"regional-project-meta\">swim.haam.co<!-- --> · <!-- -->Where the water is kept open</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > h3"
              ],
              "html": "<h3>Swimmable Cities</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-description"
              ],
              "html": "<p class=\"regional-project-description\">The closest managed swim places, the official baseline, nearby pollution, and what the city can still do. Check today’s local notice before you enter the water.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract-label"
              ],
              "html": "<span class=\"regional-project-contract-label\">Interaction contract</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-body > .regional-project-contract-wrap > .regional-project-contract"
              ],
              "html": "<p class=\"regional-project-contract\">Show what is officially known about a swim spot, how old it is, and where to verify today.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-project:nth-child(8) > .regional-project-actions > .regional-button:nth-child(1)"
              ],
              "html": "<a class=\"regional-button\" href=\"/en/case-studies/swimmable-cities\">Read the case study</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"swim.haam.co/\"]"
              ],
              "html": "<a class=\"regional-button secondary\" href=\"https://swim.haam.co/\" rel=\"noreferrer\">Visit live project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".regional-cta-eyebrow"
              ],
              "html": "<p class=\"regional-cta-eyebrow\">A job that needs its own address?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#regional-cta-title"
              ],
              "html": "<h2 id=\"regional-cta-title\">Write to me and we can see whether it belongs here.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 38,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/skills/interaction",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram"
              ],
              "html": "<div class=\"summer26-interaction-micro-diagram\" aria-label=\"Trigger, rules, feedback, loops and modes\"><span>Trigger</span><span>Rules</span><span>Feedback</span><span>Loops &amp; modes</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-kicker"
              ],
              "html": "<p class=\"summer26-interaction-kicker\">HAAM skills / Interaction design</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>Make complex behaviour feel <em>obvious.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>obvious.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-lead"
              ],
              "html": "<p class=\"summer26-interaction-lead\">Interaction design shapes the dialogue between a person and a product: what people can do, how the system responds, and how that exchange feels from moment to moment.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-definition"
              ],
              "html": "<p class=\"summer26-interaction-definition\">Design the conversation, not just the screens.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "text[y=\"70\"]"
              ],
              "html": "<text x=\"280\" y=\"70\" fill=\"#1b1a17\">INTENT</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"458\"]"
              ],
              "html": "<text x=\"458\" y=\"227\" fill=\"var(--ink)\">ACTION</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[y=\"384\"]"
              ],
              "html": "<text x=\"280\" y=\"384\" fill=\"var(--paper)\">RESPONSE</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"100\"]"
              ],
              "html": "<text x=\"100\" y=\"227\" fill=\"var(--ink)\">FEEDBACK</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "figcaption"
              ],
              "html": "<figcaption>Figure 01 / the interaction loop</figcaption>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-label"
              ],
              "html": "<p class=\"summer26-skill-switcher-label\">HAAM skills</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"research\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/research\">Research</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"data\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/data\">Data</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"attention\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/attention\">Attention</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"design-thinking\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/design-thinking\">Problem framing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"partnership\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/partnership\">Partnership</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"automation\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/automation\">Automation</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-skills\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-skills\">AI product systems</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"api-development\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/api-development\">API development</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-babysitter\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-babysitter\">AI Babysitter</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link:nth-child(11)"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/legacy-modernization\">Legacy modernization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"testing\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/testing\">Testing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"optimization\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/optimization\">Optimization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-seo\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-seo\">AI SEO</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"security\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/security\">Security</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"growth\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/growth\">Growth</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The core model</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-loop-heading"
              ],
              "html": "<h2 id=\"interaction-loop-heading\">Every interface is a conversation on a loop.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A person acts, the system answers, and the quality of that exchange, its speed, clarity, and honesty, is what people experience as good design.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > h3"
              ],
              "html": "<h3>Intent</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > p"
              ],
              "html": "<p>A person arrives with a goal, not an interest in the interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > h3"
              ],
              "html": "<h3>Action</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > p"
              ],
              "html": "<p>They act on whatever the design suggests is possible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > h3"
              ],
              "html": "<h3>Response</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > p"
              ],
              "html": "<p>The system changes state and must make that change visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > p"
              ],
              "html": "<p>The person reads the result and decides what to do next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-dimensions-heading"
              ],
              "html": "<h2 id=\"interaction-dimensions-heading\">Five dimensions, not just pixels.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The classic Gillian Crampton Smith and Kevin Silver model is useful because it makes the material of interaction design explicit: words, visuals, physical context, time, and behaviour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > h3"
              ],
              "html": "<h3>Words</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > p"
              ],
              "html": "<p>Labels, buttons, errors, and instructions. Short interface copy carries disproportionate weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > h3"
              ],
              "html": "<h3>Visuals</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > p"
              ],
              "html": "<p>Typography, icons, imagery, and layout communicate state and hierarchy before anyone reads closely.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > h3"
              ],
              "html": "<h3>Objects &amp; space</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > p"
              ],
              "html": "<p>The device and context matter: a thumb on a phone outdoors is a different problem than a mouse at a desk.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > h3"
              ],
              "html": "<h3>Time</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > p"
              ],
              "html": "<p>Animation, sound, latency, progress, waiting, and change over time all need to be designed.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > h3"
              ],
              "html": "<h3>Behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > p"
              ],
              "html": "<p>How the system reacts to what people do, including mistakes. This is where an interface earns or loses trust.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The principles</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-principles-heading"
              ],
              "html": "<h2 id=\"interaction-principles-heading\">What makes an interface feel obvious.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">These principles are older than most digital products. They remain useful because human attention, expectation, error, and learning have not been replaced by new interface technology.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > h3"
              ],
              "html": "<h3>Affordance &amp; signifiers</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > p"
              ],
              "html": "<p>Things should look like what they do. A clear button invites action; an ambiguous control taxes attention.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > h3"
              ],
              "html": "<h3>Feedback</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > p"
              ],
              "html": "<p>Every action deserves a visible reaction. Silence after a click is how people learn to distrust an interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > h3"
              ],
              "html": "<h3>Mapping</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > p"
              ],
              "html": "<p>Controls should relate naturally to their effects so people do not have to translate the interface in their heads.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > h3"
              ],
              "html": "<h3>Constraints</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > p"
              ],
              "html": "<p>Good interfaces make errors hard to commit by limiting choices to what is currently valid.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > p"
              ],
              "html": "<p>Same problem, same pattern. Needless variation makes people relearn the product instead of using it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > h3"
              ],
              "html": "<h3>Forgiveness</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > p"
              ],
              "html": "<p>Undo, confirmation for destructive actions, and recoverable states keep inevitable mistakes cheap.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The detail work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-micro-heading"
              ],
              "html": "<h2 id=\"interaction-micro-heading\">Microinteractions carry the experience.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A saved draft, a password check, a pull-to-refresh: tiny loops of trigger, rules, feedback, and repetition. Products feel polished when hundreds of these are deliberately designed and broken when they are accidents.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(2)"
              ],
              "html": "<span>Rules</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(4)"
              ],
              "html": "<span>Loops &amp; modes</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">How HAAM helps</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-process-heading"
              ],
              "html": "<h2 id=\"interaction-process-heading\">Design the behaviour, then prove it.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The educational model becomes practical product work when flows, prototypes, edge cases, accessibility, and implementation are treated as one interaction system.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > h3"
              ],
              "html": "<h3>Shape the flow</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Map intent, information, decisions, and handoffs so the shortest useful path is visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A flow people can understand at a glance.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > h3"
              ],
              "html": "<h3>Prototype real behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>Use clickable or coded prototypes to test timing, hierarchy, feedback, and content before those decisions become expensive.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">Confidence in how the product actually feels.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > h3"
              ],
              "html": "<h3>Design every state</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Loading, errors, permissions, empty states, keyboard paths, and responsive behaviour receive the same care as the ideal journey.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A product that remains clear under pressure.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What you leave with</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-result-heading"
              ],
              "html": "<h2 id=\"interaction-result-heading\">A product language that holds together.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">Interaction decisions should be understandable, testable, buildable, and extensible without losing the thread.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1)"
              ],
              "html": "<li>Journey and flow architecture</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2)"
              ],
              "html": "<li>Interactive or coded prototypes</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3)"
              ],
              "html": "<li>Accessible component behaviour</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4)"
              ],
              "html": "<li>State and implementation specifications</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5)"
              ],
              "html": "<li>Interaction principles and reusable patterns</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            }
          ]
        }
      ],
      "passedRules": 41,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/skills/interaction",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram"
              ],
              "html": "<div class=\"summer26-interaction-micro-diagram\" aria-label=\"Trigger, rules, feedback, loops and modes\"><span>Trigger</span><span>Rules</span><span>Feedback</span><span>Loops &amp; modes</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-kicker"
              ],
              "html": "<p class=\"summer26-interaction-kicker\">HAAM skills / Interaction design</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>Make complex behaviour feel <em>obvious.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>obvious.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-lead"
              ],
              "html": "<p class=\"summer26-interaction-lead\">Interaction design shapes the dialogue between a person and a product: what people can do, how the system responds, and how that exchange feels from moment to moment.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-definition"
              ],
              "html": "<p class=\"summer26-interaction-definition\">Design the conversation, not just the screens.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "text[y=\"70\"]"
              ],
              "html": "<text x=\"280\" y=\"70\" fill=\"#1b1a17\">INTENT</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"458\"]"
              ],
              "html": "<text x=\"458\" y=\"227\" fill=\"var(--ink)\">ACTION</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[y=\"384\"]"
              ],
              "html": "<text x=\"280\" y=\"384\" fill=\"var(--paper)\">RESPONSE</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"100\"]"
              ],
              "html": "<text x=\"100\" y=\"227\" fill=\"var(--ink)\">FEEDBACK</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "figcaption"
              ],
              "html": "<figcaption>Figure 01 / the interaction loop</figcaption>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-label"
              ],
              "html": "<p class=\"summer26-skill-switcher-label\">HAAM skills</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"research\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/research\">Research</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"data\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/data\">Data</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"attention\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/attention\">Attention</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"design-thinking\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/design-thinking\">Problem framing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"partnership\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/partnership\">Partnership</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"automation\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/automation\">Automation</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-skills\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-skills\">AI product systems</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"api-development\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/api-development\">API development</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-babysitter\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-babysitter\">AI Babysitter</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link:nth-child(11)"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/legacy-modernization\">Legacy modernization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"testing\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/testing\">Testing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"optimization\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/optimization\">Optimization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-seo\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-seo\">AI SEO</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"security\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/security\">Security</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"growth\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/growth\">Growth</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The core model</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-loop-heading"
              ],
              "html": "<h2 id=\"interaction-loop-heading\">Every interface is a conversation on a loop.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A person acts, the system answers, and the quality of that exchange, its speed, clarity, and honesty, is what people experience as good design.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > h3"
              ],
              "html": "<h3>Intent</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > p"
              ],
              "html": "<p>A person arrives with a goal, not an interest in the interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > h3"
              ],
              "html": "<h3>Action</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > p"
              ],
              "html": "<p>They act on whatever the design suggests is possible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > h3"
              ],
              "html": "<h3>Response</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > p"
              ],
              "html": "<p>The system changes state and must make that change visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > p"
              ],
              "html": "<p>The person reads the result and decides what to do next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-dimensions-heading"
              ],
              "html": "<h2 id=\"interaction-dimensions-heading\">Five dimensions, not just pixels.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The classic Gillian Crampton Smith and Kevin Silver model is useful because it makes the material of interaction design explicit: words, visuals, physical context, time, and behaviour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > h3"
              ],
              "html": "<h3>Words</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > p"
              ],
              "html": "<p>Labels, buttons, errors, and instructions. Short interface copy carries disproportionate weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > h3"
              ],
              "html": "<h3>Visuals</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > p"
              ],
              "html": "<p>Typography, icons, imagery, and layout communicate state and hierarchy before anyone reads closely.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > h3"
              ],
              "html": "<h3>Objects &amp; space</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > p"
              ],
              "html": "<p>The device and context matter: a thumb on a phone outdoors is a different problem than a mouse at a desk.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > h3"
              ],
              "html": "<h3>Time</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > p"
              ],
              "html": "<p>Animation, sound, latency, progress, waiting, and change over time all need to be designed.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > h3"
              ],
              "html": "<h3>Behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > p"
              ],
              "html": "<p>How the system reacts to what people do, including mistakes. This is where an interface earns or loses trust.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The principles</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-principles-heading"
              ],
              "html": "<h2 id=\"interaction-principles-heading\">What makes an interface feel obvious.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">These principles are older than most digital products. They remain useful because human attention, expectation, error, and learning have not been replaced by new interface technology.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > h3"
              ],
              "html": "<h3>Affordance &amp; signifiers</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > p"
              ],
              "html": "<p>Things should look like what they do. A clear button invites action; an ambiguous control taxes attention.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > h3"
              ],
              "html": "<h3>Feedback</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > p"
              ],
              "html": "<p>Every action deserves a visible reaction. Silence after a click is how people learn to distrust an interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > h3"
              ],
              "html": "<h3>Mapping</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > p"
              ],
              "html": "<p>Controls should relate naturally to their effects so people do not have to translate the interface in their heads.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > h3"
              ],
              "html": "<h3>Constraints</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > p"
              ],
              "html": "<p>Good interfaces make errors hard to commit by limiting choices to what is currently valid.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > p"
              ],
              "html": "<p>Same problem, same pattern. Needless variation makes people relearn the product instead of using it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > h3"
              ],
              "html": "<h3>Forgiveness</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > p"
              ],
              "html": "<p>Undo, confirmation for destructive actions, and recoverable states keep inevitable mistakes cheap.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The detail work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-micro-heading"
              ],
              "html": "<h2 id=\"interaction-micro-heading\">Microinteractions carry the experience.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A saved draft, a password check, a pull-to-refresh: tiny loops of trigger, rules, feedback, and repetition. Products feel polished when hundreds of these are deliberately designed and broken when they are accidents.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(2)"
              ],
              "html": "<span>Rules</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(4)"
              ],
              "html": "<span>Loops &amp; modes</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">How HAAM helps</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-process-heading"
              ],
              "html": "<h2 id=\"interaction-process-heading\">Design the behaviour, then prove it.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The educational model becomes practical product work when flows, prototypes, edge cases, accessibility, and implementation are treated as one interaction system.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > h3"
              ],
              "html": "<h3>Shape the flow</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Map intent, information, decisions, and handoffs so the shortest useful path is visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A flow people can understand at a glance.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > h3"
              ],
              "html": "<h3>Prototype real behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>Use clickable or coded prototypes to test timing, hierarchy, feedback, and content before those decisions become expensive.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">Confidence in how the product actually feels.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > h3"
              ],
              "html": "<h3>Design every state</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Loading, errors, permissions, empty states, keyboard paths, and responsive behaviour receive the same care as the ideal journey.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A product that remains clear under pressure.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What you leave with</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-result-heading"
              ],
              "html": "<h2 id=\"interaction-result-heading\">A product language that holds together.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">Interaction decisions should be understandable, testable, buildable, and extensible without losing the thread.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1)"
              ],
              "html": "<li>Journey and flow architecture</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2)"
              ],
              "html": "<li>Interactive or coded prototypes</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3)"
              ],
              "html": "<li>Accessible component behaviour</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4)"
              ],
              "html": "<li>State and implementation specifications</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5)"
              ],
              "html": "<li>Interaction principles and reusable patterns</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            }
          ]
        }
      ],
      "passedRules": 41,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/skills/interaction",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram"
              ],
              "html": "<div class=\"summer26-interaction-micro-diagram\" aria-label=\"Trigger, rules, feedback, loops and modes\"><span>Trigger</span><span>Rules</span><span>Feedback</span><span>Loops &amp; modes</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\" aria-current=\"page\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-kicker"
              ],
              "html": "<p class=\"summer26-interaction-kicker\">HAAM skills / Interaction design</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>Make complex behaviour feel <em>obvious.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>obvious.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-lead"
              ],
              "html": "<p class=\"summer26-interaction-lead\">Interaction design shapes the dialogue between a person and a product: what people can do, how the system responds, and how that exchange feels from moment to moment.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-definition"
              ],
              "html": "<p class=\"summer26-interaction-definition\">Design the conversation, not just the screens.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "text[y=\"70\"]"
              ],
              "html": "<text x=\"280\" y=\"70\" fill=\"#1b1a17\">INTENT</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"458\"]"
              ],
              "html": "<text x=\"458\" y=\"227\" fill=\"var(--ink)\">ACTION</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[y=\"384\"]"
              ],
              "html": "<text x=\"280\" y=\"384\" fill=\"var(--paper)\">RESPONSE</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"100\"]"
              ],
              "html": "<text x=\"100\" y=\"227\" fill=\"var(--ink)\">FEEDBACK</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "figcaption"
              ],
              "html": "<figcaption>Figure 01 / the interaction loop</figcaption>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-skill-switcher-label"
              ],
              "html": "<p class=\"summer26-skill-switcher-label\">HAAM skills</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"research\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/research\">Research</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"data\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/data\">Data</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"attention\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/attention\">Attention</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"design-thinking\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/design-thinking\">Problem framing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"partnership\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/partnership\">Partnership</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"automation\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/automation\">Automation</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-skills\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-skills\">AI product systems</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"api-development\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/api-development\">API development</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-babysitter\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-babysitter\">AI Babysitter</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link:nth-child(11)"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/legacy-modernization\">Legacy modernization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"testing\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/testing\">Testing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"optimization\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/optimization\">Optimization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-seo\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-seo\">AI SEO</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"security\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/security\">Security</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"growth\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/growth\">Growth</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The core model</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-loop-heading"
              ],
              "html": "<h2 id=\"interaction-loop-heading\">Every interface is a conversation on a loop.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A person acts, the system answers, and the quality of that exchange, its speed, clarity, and honesty, is what people experience as good design.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > h3"
              ],
              "html": "<h3>Intent</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > p"
              ],
              "html": "<p>A person arrives with a goal, not an interest in the interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > h3"
              ],
              "html": "<h3>Action</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > p"
              ],
              "html": "<p>They act on whatever the design suggests is possible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > h3"
              ],
              "html": "<h3>Response</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > p"
              ],
              "html": "<p>The system changes state and must make that change visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > p"
              ],
              "html": "<p>The person reads the result and decides what to do next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-dimensions-heading"
              ],
              "html": "<h2 id=\"interaction-dimensions-heading\">Five dimensions, not just pixels.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The classic Gillian Crampton Smith and Kevin Silver model is useful because it makes the material of interaction design explicit: words, visuals, physical context, time, and behaviour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > h3"
              ],
              "html": "<h3>Words</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > p"
              ],
              "html": "<p>Labels, buttons, errors, and instructions. Short interface copy carries disproportionate weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > h3"
              ],
              "html": "<h3>Visuals</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > p"
              ],
              "html": "<p>Typography, icons, imagery, and layout communicate state and hierarchy before anyone reads closely.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > h3"
              ],
              "html": "<h3>Objects &amp; space</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > p"
              ],
              "html": "<p>The device and context matter: a thumb on a phone outdoors is a different problem than a mouse at a desk.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > h3"
              ],
              "html": "<h3>Time</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > p"
              ],
              "html": "<p>Animation, sound, latency, progress, waiting, and change over time all need to be designed.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > h3"
              ],
              "html": "<h3>Behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > p"
              ],
              "html": "<p>How the system reacts to what people do, including mistakes. This is where an interface earns or loses trust.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The principles</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-principles-heading"
              ],
              "html": "<h2 id=\"interaction-principles-heading\">What makes an interface feel obvious.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">These principles are older than most digital products. They remain useful because human attention, expectation, error, and learning have not been replaced by new interface technology.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > h3"
              ],
              "html": "<h3>Affordance &amp; signifiers</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > p"
              ],
              "html": "<p>Things should look like what they do. A clear button invites action; an ambiguous control taxes attention.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > h3"
              ],
              "html": "<h3>Feedback</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > p"
              ],
              "html": "<p>Every action deserves a visible reaction. Silence after a click is how people learn to distrust an interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > h3"
              ],
              "html": "<h3>Mapping</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > p"
              ],
              "html": "<p>Controls should relate naturally to their effects so people do not have to translate the interface in their heads.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > h3"
              ],
              "html": "<h3>Constraints</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > p"
              ],
              "html": "<p>Good interfaces make errors hard to commit by limiting choices to what is currently valid.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > p"
              ],
              "html": "<p>Same problem, same pattern. Needless variation makes people relearn the product instead of using it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > h3"
              ],
              "html": "<h3>Forgiveness</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > p"
              ],
              "html": "<p>Undo, confirmation for destructive actions, and recoverable states keep inevitable mistakes cheap.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The detail work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-micro-heading"
              ],
              "html": "<h2 id=\"interaction-micro-heading\">Microinteractions carry the experience.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A saved draft, a password check, a pull-to-refresh: tiny loops of trigger, rules, feedback, and repetition. Products feel polished when hundreds of these are deliberately designed and broken when they are accidents.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(2)"
              ],
              "html": "<span>Rules</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(4)"
              ],
              "html": "<span>Loops &amp; modes</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">How HAAM helps</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-process-heading"
              ],
              "html": "<h2 id=\"interaction-process-heading\">Design the behaviour, then prove it.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The educational model becomes practical product work when flows, prototypes, edge cases, accessibility, and implementation are treated as one interaction system.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > h3"
              ],
              "html": "<h3>Shape the flow</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Map intent, information, decisions, and handoffs so the shortest useful path is visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A flow people can understand at a glance.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > h3"
              ],
              "html": "<h3>Prototype real behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>Use clickable or coded prototypes to test timing, hierarchy, feedback, and content before those decisions become expensive.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">Confidence in how the product actually feels.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > h3"
              ],
              "html": "<h3>Design every state</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Loading, errors, permissions, empty states, keyboard paths, and responsive behaviour receive the same care as the ideal journey.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A product that remains clear under pressure.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What you leave with</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-result-heading"
              ],
              "html": "<h2 id=\"interaction-result-heading\">A product language that holds together.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">Interaction decisions should be understandable, testable, buildable, and extensible without losing the thread.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1)"
              ],
              "html": "<li>Journey and flow architecture</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2)"
              ],
              "html": "<li>Interactive or coded prototypes</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3)"
              ],
              "html": "<li>Accessible component behaviour</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4)"
              ],
              "html": "<li>State and implementation specifications</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5)"
              ],
              "html": "<li>Interaction principles and reusable patterns</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 41,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/en/skills/interaction",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram"
              ],
              "html": "<div class=\"summer26-interaction-micro-diagram\" aria-label=\"Trigger, rules, feedback, loops and modes\"><span>Trigger</span><span>Rules</span><span>Feedback</span><span>Loops &amp; modes</span></div>",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\" aria-current=\"page\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-interaction-kicker"
              ],
              "html": "<p class=\"summer26-interaction-kicker\">HAAM skills / Interaction design</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "h1"
              ],
              "html": "<h1>Make complex behaviour feel <em>obvious.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>obvious.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-lead"
              ],
              "html": "<p class=\"summer26-interaction-lead\">Interaction design shapes the dialogue between a person and a product: what people can do, how the system responds, and how that exchange feels from moment to moment.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-definition"
              ],
              "html": "<p class=\"summer26-interaction-definition\">Design the conversation, not just the screens.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "text[y=\"70\"]"
              ],
              "html": "<text x=\"280\" y=\"70\" fill=\"#1b1a17\">INTENT</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"458\"]"
              ],
              "html": "<text x=\"458\" y=\"227\" fill=\"var(--ink)\">ACTION</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[y=\"384\"]"
              ],
              "html": "<text x=\"280\" y=\"384\" fill=\"var(--paper)\">RESPONSE</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "text[x=\"100\"]"
              ],
              "html": "<text x=\"100\" y=\"227\" fill=\"var(--ink)\">FEEDBACK</text>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                "figcaption"
              ],
              "html": "<figcaption>Figure 01 / the interaction loop</figcaption>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
            },
            {
              "target": [
                ".summer26-skill-switcher-label"
              ],
              "html": "<p class=\"summer26-skill-switcher-label\">HAAM skills</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"research\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/research\">Research</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"data\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/data\">Data</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"attention\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/attention\">Attention</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"design-thinking\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/design-thinking\">Problem framing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"partnership\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/partnership\">Partnership</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"automation\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/automation\">Automation</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-skills\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-skills\">AI product systems</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"api-development\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/api-development\">API development</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-babysitter\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-babysitter\">AI Babysitter</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link:nth-child(11)"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/legacy-modernization\">Legacy modernization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"testing\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/testing\">Testing</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"optimization\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/optimization\">Optimization</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"ai-seo\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/ai-seo\">AI SEO</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"security\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/security\">Security</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-skill-switcher-link[href$=\"growth\"]"
              ],
              "html": "<a class=\"summer26-skill-switcher-link\" href=\"/en/skills/growth\">Growth</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The core model</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-loop-heading"
              ],
              "html": "<h2 id=\"interaction-loop-heading\">Every interface is a conversation on a loop.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-loop-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A person acts, the system answers, and the quality of that exchange, its speed, clarity, and honesty, is what people experience as good design.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > h3"
              ],
              "html": "<h3>Intent</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(1) > p"
              ],
              "html": "<p>A person arrives with a goal, not an interest in the interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > h3"
              ],
              "html": "<h3>Action</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(2) > p"
              ],
              "html": "<p>They act on whatever the design suggests is possible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > h3"
              ],
              "html": "<h3>Response</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(3) > p"
              ],
              "html": "<p>The system changes state and must make that change visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > h3"
              ],
              "html": "<h3>Interpretation</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-loop-note:nth-child(4) > p"
              ],
              "html": "<p>The person reads the result and decides what to do next.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What is interaction design?</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-dimensions-heading"
              ],
              "html": "<h2 id=\"interaction-dimensions-heading\">Five dimensions, not just pixels.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-dimensions-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The classic Gillian Crampton Smith and Kevin Silver model is useful because it makes the material of interaction design explicit: words, visuals, physical context, time, and behaviour.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > h3"
              ],
              "html": "<h3>Words</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(1) > p"
              ],
              "html": "<p>Labels, buttons, errors, and instructions. Short interface copy carries disproportionate weight.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > h3"
              ],
              "html": "<h3>Visuals</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(2) > p"
              ],
              "html": "<p>Typography, icons, imagery, and layout communicate state and hierarchy before anyone reads closely.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > h3"
              ],
              "html": "<h3>Objects &amp; space</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(3) > p"
              ],
              "html": "<p>The device and context matter: a thumb on a phone outdoors is a different problem than a mouse at a desk.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > h3"
              ],
              "html": "<h3>Time</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(4) > p"
              ],
              "html": "<p>Animation, sound, latency, progress, waiting, and change over time all need to be designed.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > h3"
              ],
              "html": "<h3>Behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-dimension:nth-child(5) > p"
              ],
              "html": "<p>How the system reacts to what people do, including mistakes. This is where an interface earns or loses trust.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The principles</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-principles-heading"
              ],
              "html": "<h2 id=\"interaction-principles-heading\">What makes an interface feel obvious.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-principles-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">These principles are older than most digital products. They remain useful because human attention, expectation, error, and learning have not been replaced by new interface technology.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > h3"
              ],
              "html": "<h3>Affordance &amp; signifiers</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(1) > p"
              ],
              "html": "<p>Things should look like what they do. A clear button invites action; an ambiguous control taxes attention.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > h3"
              ],
              "html": "<h3>Feedback</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(2) > p"
              ],
              "html": "<p>Every action deserves a visible reaction. Silence after a click is how people learn to distrust an interface.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > h3"
              ],
              "html": "<h3>Mapping</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(3) > p"
              ],
              "html": "<p>Controls should relate naturally to their effects so people do not have to translate the interface in their heads.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > h3"
              ],
              "html": "<h3>Constraints</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(4) > p"
              ],
              "html": "<p>Good interfaces make errors hard to commit by limiting choices to what is currently valid.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > h3"
              ],
              "html": "<h3>Consistency</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(5) > p"
              ],
              "html": "<p>Same problem, same pattern. Needless variation makes people relearn the product instead of using it.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > h3"
              ],
              "html": "<h3>Forgiveness</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-principle:nth-child(6) > p"
              ],
              "html": "<p>Undo, confirmation for destructive actions, and recoverable states keep inevitable mistakes cheap.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">The detail work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-micro-heading"
              ],
              "html": "<h2 id=\"interaction-micro-heading\">Microinteractions carry the experience.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro > div:nth-child(1) > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">A saved draft, a password check, a pull-to-refresh: tiny loops of trigger, rules, feedback, and repetition. Products feel polished when hundreds of these are deliberately designed and broken when they are accidents.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(2)"
              ],
              "html": "<span>Rules</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-micro-diagram > span:nth-child(4)"
              ],
              "html": "<span>Loops &amp; modes</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">How HAAM helps</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-process-heading"
              ],
              "html": "<h2 id=\"interaction-process-heading\">Design the behaviour, then prove it.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"interaction-process-heading\"] > .summer26-interaction-section-head > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">The educational model becomes practical product work when flows, prototypes, edge cases, accessibility, and implementation are treated as one interaction system.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > h3"
              ],
              "html": "<h3>Shape the flow</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > p:nth-child(3)"
              ],
              "html": "<p>Map intent, information, decisions, and handoffs so the shortest useful path is visible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(1) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A flow people can understand at a glance.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > h3"
              ],
              "html": "<h3>Prototype real behaviour</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > p:nth-child(3)"
              ],
              "html": "<p>Use clickable or coded prototypes to test timing, hierarchy, feedback, and content before those decisions become expensive.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(2) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">Confidence in how the product actually feels.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > h3"
              ],
              "html": "<h3>Design every state</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > p:nth-child(3)"
              ],
              "html": "<p>Loading, errors, permissions, empty states, keyboard paths, and responsive behaviour receive the same care as the ideal journey.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-step:nth-child(3) > .summer26-interaction-outcome"
              ],
              "html": "<p class=\"summer26-interaction-outcome\">A product that remains clear under pressure.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-label"
              ],
              "html": "<p class=\"summer26-interaction-label\">What you leave with</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#interaction-result-heading"
              ],
              "html": "<h2 id=\"interaction-result-heading\">A product language that holds together.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-interaction-result > div > .summer26-interaction-section-lead"
              ],
              "html": "<p class=\"summer26-interaction-section-lead\">Interaction decisions should be understandable, testable, buildable, and extensible without losing the thread.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(1)"
              ],
              "html": "<li>Journey and flow architecture</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(2)"
              ],
              "html": "<li>Interactive or coded prototypes</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(3)"
              ],
              "html": "<li>Accessible component behaviour</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(4)"
              ],
              "html": "<li>State and implementation specifications</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "li:nth-child(5)"
              ],
              "html": "<li>Interaction principles and reusable patterns</li>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 41,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/profile/kris.haamer",
      "width": 390,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-profile-vocabulary"
              ],
              "html": "<div class=\"summer26-profile-vocabulary\" aria-label=\"Working vocabulary\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-kicker"
              ],
              "html": "<p class=\"summer26-profile-kicker\">Profile · Kris Haamer</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title"
              ],
              "html": "<h1 id=\"kris-profile-title\"><span>Kris Haamer.</span>Complex systems, made <em>human.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title > span"
              ],
              "html": "<span>Kris Haamer.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>human.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-lead"
              ],
              "html": "<p class=\"summer26-profile-lead\">I am an interaction designer, product builder, and developer. I move between research, product decisions, interfaces, code, and AI-assisted delivery so the thing still feels like one thing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-index-copy"
              ],
              "html": "<p class=\"summer26-profile-index-copy\">Web developer and designer building usable, beautiful web experiences. Founder of HAAM.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"/en/start\">Start a project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"mailto:kris@haam.co\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"mailto:kris@haam.co\">Email Kris</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-photo-note"
              ],
              "html": "<div class=\"summer26-profile-photo-note\"><strong>Based in Estonia</strong>Working across borders, disciplines, and slightly awkward role boundaries.</div>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".summer26-profile-photo-note > strong"
              ],
              "html": "<strong>Based in Estonia</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > strong"
              ],
              "html": "<strong>Research + design + code</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > span"
              ],
              "html": "<span>One connected practice</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > strong"
              ],
              "html": "<strong>Culture + public systems</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > span"
              ],
              "html": "<span>Work worth keeping understandable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > strong"
              ],
              "html": "<strong>AI-native interaction</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > span"
              ],
              "html": "<span>New tools, human judgment</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">The useful overlap</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-overlap-title"
              ],
              "html": "<h2 id=\"profile-overlap-title\">Fewer handoffs. Less meaning lost.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">Teams often split this work between product management, research, design, engineering, and technical writing. I connect those decisions early enough that they can reinforce one another instead of becoming five competing versions of the product.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > h3"
              ],
              "html": "<h3>Find the real problem</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > p"
              ],
              "html": "<p>Research people, data, context, and constraints before polishing the first plausible answer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > h3"
              ],
              "html": "<h3>Make it understandable</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > p"
              ],
              "html": "<p>Shape flows, language, states, and visual systems so people can act without becoming experts first.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > h3"
              ],
              "html": "<h3>Build the system</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > p"
              ],
              "html": "<p>Turn decisions into accessible React and Next.js interfaces, reusable components, APIs, and documentation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > h3"
              ],
              "html": "<h3>Stay after launch</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > p"
              ],
              "html": "<p>Test the real product, read the signals, fix the awkward parts, and keep the whole thing coherent as it grows.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Evidence, not adjectives</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-evidence-title"
              ],
              "html": "<h2 id=\"profile-evidence-title\">Built across research, systems, interfaces, and production.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">The work ranges from financial AI and public digital infrastructure to theatres, universities, cultural archives, and global civic movements.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Financial AI research</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > h3"
              ],
              "html": "<h3>Green Filter</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > p"
              ],
              "html": "<p>A financial AI companion shaped by 675 valid survey responses, 32 interviews, and 32 prototype tests around sustainable shopping, saving, and investing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Public digital infrastructure</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > h3"
              ],
              "html": "<h3>WiFi.ee</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > p"
              ],
              "html": "<p>A long-running public Wi-Fi platform rebuilt across product architecture, maps, data, APIs, permissions, and day-to-day operations.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Cultural platform</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > h3"
              ],
              "html": "<h3>Viirus Theatre</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > p"
              ],
              "html": "<p>A multilingual theatre platform connecting expressive visual identity with CMS structure, accessibility, performance, and maintainability.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Institutional design system</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > h3"
              ],
              "html": "<h3>Estonian Academy of Arts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > p"
              ],
              "html": "<p>A university website and evolving design system built to keep a complex institution legible across study, research, events, and public life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"profile-story-title\"] > .summer26-profile-section-head > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">How I work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-story-title"
              ],
              "html": "<h2 id=\"profile-story-title\">The title matters less than the responsibility.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-title"
              ],
              "html": "<p class=\"summer26-profile-story-title\">Make the judgment call. Build the artifact. Explain the decision. Stay responsible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(1)"
              ],
              "html": "<p>I have spent years doing work that organizations often divide between a product manager, researcher, product designer, design engineer, frontend developer, and technical writer. The point is not to collect titles. It is to reduce translation loss.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(2)"
              ],
              "html": "<p>I care especially about people who get trapped by interfaces. A product should not ask everyone to become technical just to use it, and an AI system should not hide uncertainty behind a confident-looking screen.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(3)"
              ],
              "html": "<p>Cultural institutions, public-interest technology, and emerging AI interfaces are where I keep returning because the systems are messy, the stakes are human, and clarity actually matters.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(1)"
              ],
              "html": "<span>Product strategy</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(2)"
              ],
              "html": "<span>User research</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(3)"
              ],
              "html": "<span>Interaction design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(4)"
              ],
              "html": "<span>Service design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(5)"
              ],
              "html": "<span>Design systems</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(6)"
              ],
              "html": "<span>React</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(7)"
              ],
              "html": "<span>Next.js</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(8)"
              ],
              "html": "<span>APIs</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(9)"
              ],
              "html": "<span>AI agents</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(10)"
              ],
              "html": "<span>Accessibility</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(11)"
              ],
              "html": "<span>Analytics</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(12)"
              ],
              "html": "<span>Localization</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(13)"
              ],
              "html": "<span>Performance</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(14)"
              ],
              "html": "<span>Technical writing</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-contact > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Bring me the messy middle</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#profile-contact-title"
              ],
              "html": "<h2 id=\"profile-contact-title\">Where product, design, engineering, and AI overlap.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact > p:nth-child(3)"
              ],
              "html": "<p>That is usually where the product is hardest to explain, easiest to fragment, and most valuable to make coherent.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".primary.summer26-profile-contact-link"
              ],
              "html": "<a class=\"summer26-profile-contact-link primary\" href=\"mailto:kris@haam.co?subject=Working%20with%20HAAM\">kris@haam.co ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact-link[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"/en/start\">Discuss with HAAM AI</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"krishaamer\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"https://github.com/krishaamer\" target=\"_blank\" rel=\"me noopener noreferrer\">GitHub</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "footer > span"
              ],
              "html": "<span>Kris Haamer · Founder of HAAM · Estonia</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "footer > a[href$=\"about\"]"
              ],
              "html": "<a href=\"/en/about\">More about HAAM</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/profile/kris.haamer",
      "width": 390,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-profile-vocabulary"
              ],
              "html": "<div class=\"summer26-profile-vocabulary\" aria-label=\"Working vocabulary\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-unified-mobile-toggle > span:nth-child(1)"
              ],
              "html": "<span>Menu</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-kicker"
              ],
              "html": "<p class=\"summer26-profile-kicker\">Profile · Kris Haamer</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title"
              ],
              "html": "<h1 id=\"kris-profile-title\"><span>Kris Haamer.</span>Complex systems, made <em>human.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title > span"
              ],
              "html": "<span>Kris Haamer.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>human.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-lead"
              ],
              "html": "<p class=\"summer26-profile-lead\">I am an interaction designer, product builder, and developer. I move between research, product decisions, interfaces, code, and AI-assisted delivery so the thing still feels like one thing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-index-copy"
              ],
              "html": "<p class=\"summer26-profile-index-copy\">Web developer and designer building usable, beautiful web experiences. Founder of HAAM.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"/en/start\">Start a project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"mailto:kris@haam.co\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"mailto:kris@haam.co\">Email Kris</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-photo-note"
              ],
              "html": "<div class=\"summer26-profile-photo-note\"><strong>Based in Estonia</strong>Working across borders, disciplines, and slightly awkward role boundaries.</div>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".summer26-profile-photo-note > strong"
              ],
              "html": "<strong>Based in Estonia</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > strong"
              ],
              "html": "<strong>Research + design + code</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > span"
              ],
              "html": "<span>One connected practice</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > strong"
              ],
              "html": "<strong>Culture + public systems</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > span"
              ],
              "html": "<span>Work worth keeping understandable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > strong"
              ],
              "html": "<strong>AI-native interaction</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > span"
              ],
              "html": "<span>New tools, human judgment</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">The useful overlap</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-overlap-title"
              ],
              "html": "<h2 id=\"profile-overlap-title\">Fewer handoffs. Less meaning lost.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">Teams often split this work between product management, research, design, engineering, and technical writing. I connect those decisions early enough that they can reinforce one another instead of becoming five competing versions of the product.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > h3"
              ],
              "html": "<h3>Find the real problem</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > p"
              ],
              "html": "<p>Research people, data, context, and constraints before polishing the first plausible answer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > h3"
              ],
              "html": "<h3>Make it understandable</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > p"
              ],
              "html": "<p>Shape flows, language, states, and visual systems so people can act without becoming experts first.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > h3"
              ],
              "html": "<h3>Build the system</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > p"
              ],
              "html": "<p>Turn decisions into accessible React and Next.js interfaces, reusable components, APIs, and documentation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > h3"
              ],
              "html": "<h3>Stay after launch</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > p"
              ],
              "html": "<p>Test the real product, read the signals, fix the awkward parts, and keep the whole thing coherent as it grows.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Evidence, not adjectives</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-evidence-title"
              ],
              "html": "<h2 id=\"profile-evidence-title\">Built across research, systems, interfaces, and production.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">The work ranges from financial AI and public digital infrastructure to theatres, universities, cultural archives, and global civic movements.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Financial AI research</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > h3"
              ],
              "html": "<h3>Green Filter</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > p"
              ],
              "html": "<p>A financial AI companion shaped by 675 valid survey responses, 32 interviews, and 32 prototype tests around sustainable shopping, saving, and investing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Public digital infrastructure</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > h3"
              ],
              "html": "<h3>WiFi.ee</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > p"
              ],
              "html": "<p>A long-running public Wi-Fi platform rebuilt across product architecture, maps, data, APIs, permissions, and day-to-day operations.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Cultural platform</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > h3"
              ],
              "html": "<h3>Viirus Theatre</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > p"
              ],
              "html": "<p>A multilingual theatre platform connecting expressive visual identity with CMS structure, accessibility, performance, and maintainability.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Institutional design system</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > h3"
              ],
              "html": "<h3>Estonian Academy of Arts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > p"
              ],
              "html": "<p>A university website and evolving design system built to keep a complex institution legible across study, research, events, and public life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"profile-story-title\"] > .summer26-profile-section-head > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">How I work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-story-title"
              ],
              "html": "<h2 id=\"profile-story-title\">The title matters less than the responsibility.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-title"
              ],
              "html": "<p class=\"summer26-profile-story-title\">Make the judgment call. Build the artifact. Explain the decision. Stay responsible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(1)"
              ],
              "html": "<p>I have spent years doing work that organizations often divide between a product manager, researcher, product designer, design engineer, frontend developer, and technical writer. The point is not to collect titles. It is to reduce translation loss.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(2)"
              ],
              "html": "<p>I care especially about people who get trapped by interfaces. A product should not ask everyone to become technical just to use it, and an AI system should not hide uncertainty behind a confident-looking screen.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(3)"
              ],
              "html": "<p>Cultural institutions, public-interest technology, and emerging AI interfaces are where I keep returning because the systems are messy, the stakes are human, and clarity actually matters.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(1)"
              ],
              "html": "<span>Product strategy</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(2)"
              ],
              "html": "<span>User research</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(3)"
              ],
              "html": "<span>Interaction design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(4)"
              ],
              "html": "<span>Service design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(5)"
              ],
              "html": "<span>Design systems</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(6)"
              ],
              "html": "<span>React</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(7)"
              ],
              "html": "<span>Next.js</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(8)"
              ],
              "html": "<span>APIs</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(9)"
              ],
              "html": "<span>AI agents</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(10)"
              ],
              "html": "<span>Accessibility</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(11)"
              ],
              "html": "<span>Analytics</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(12)"
              ],
              "html": "<span>Localization</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(13)"
              ],
              "html": "<span>Performance</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(14)"
              ],
              "html": "<span>Technical writing</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-contact > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Bring me the messy middle</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#profile-contact-title"
              ],
              "html": "<h2 id=\"profile-contact-title\">Where product, design, engineering, and AI overlap.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact > p:nth-child(3)"
              ],
              "html": "<p>That is usually where the product is hardest to explain, easiest to fragment, and most valuable to make coherent.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".primary.summer26-profile-contact-link"
              ],
              "html": "<a class=\"summer26-profile-contact-link primary\" href=\"mailto:kris@haam.co?subject=Working%20with%20HAAM\">kris@haam.co ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact-link[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"/en/start\">Discuss with HAAM AI</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"krishaamer\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"https://github.com/krishaamer\" target=\"_blank\" rel=\"me noopener noreferrer\">GitHub</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "footer > span"
              ],
              "html": "<span>Kris Haamer · Founder of HAAM · Estonia</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "footer > a[href$=\"about\"]"
              ],
              "html": "<a href=\"/en/about\">More about HAAM</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it partially overlaps other elements"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 36,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/profile/kris.haamer",
      "width": 1440,
      "mode": "light",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"light\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-profile-vocabulary"
              ],
              "html": "<div class=\"summer26-profile-vocabulary\" aria-label=\"Working vocabulary\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☀︎</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-kicker"
              ],
              "html": "<p class=\"summer26-profile-kicker\">Profile · Kris Haamer</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title"
              ],
              "html": "<h1 id=\"kris-profile-title\"><span>Kris Haamer.</span>Complex systems, made <em>human.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title > span"
              ],
              "html": "<span>Kris Haamer.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>human.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-lead"
              ],
              "html": "<p class=\"summer26-profile-lead\">I am an interaction designer, product builder, and developer. I move between research, product decisions, interfaces, code, and AI-assisted delivery so the thing still feels like one thing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-index-copy"
              ],
              "html": "<p class=\"summer26-profile-index-copy\">Web developer and designer building usable, beautiful web experiences. Founder of HAAM.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"/en/start\">Start a project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"mailto:kris@haam.co\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"mailto:kris@haam.co\">Email Kris</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-photo-note"
              ],
              "html": "<div class=\"summer26-profile-photo-note\"><strong>Based in Estonia</strong>Working across borders, disciplines, and slightly awkward role boundaries.</div>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-profile-photo-note > strong"
              ],
              "html": "<strong>Based in Estonia</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > strong"
              ],
              "html": "<strong>Research + design + code</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > span"
              ],
              "html": "<span>One connected practice</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > strong"
              ],
              "html": "<strong>Culture + public systems</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > span"
              ],
              "html": "<span>Work worth keeping understandable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > strong"
              ],
              "html": "<strong>AI-native interaction</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > span"
              ],
              "html": "<span>New tools, human judgment</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">The useful overlap</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-overlap-title"
              ],
              "html": "<h2 id=\"profile-overlap-title\">Fewer handoffs. Less meaning lost.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">Teams often split this work between product management, research, design, engineering, and technical writing. I connect those decisions early enough that they can reinforce one another instead of becoming five competing versions of the product.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > h3"
              ],
              "html": "<h3>Find the real problem</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > p"
              ],
              "html": "<p>Research people, data, context, and constraints before polishing the first plausible answer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > h3"
              ],
              "html": "<h3>Make it understandable</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > p"
              ],
              "html": "<p>Shape flows, language, states, and visual systems so people can act without becoming experts first.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > h3"
              ],
              "html": "<h3>Build the system</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > p"
              ],
              "html": "<p>Turn decisions into accessible React and Next.js interfaces, reusable components, APIs, and documentation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > h3"
              ],
              "html": "<h3>Stay after launch</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > p"
              ],
              "html": "<p>Test the real product, read the signals, fix the awkward parts, and keep the whole thing coherent as it grows.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Evidence, not adjectives</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-evidence-title"
              ],
              "html": "<h2 id=\"profile-evidence-title\">Built across research, systems, interfaces, and production.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">The work ranges from financial AI and public digital infrastructure to theatres, universities, cultural archives, and global civic movements.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Financial AI research</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > h3"
              ],
              "html": "<h3>Green Filter</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > p"
              ],
              "html": "<p>A financial AI companion shaped by 675 valid survey responses, 32 interviews, and 32 prototype tests around sustainable shopping, saving, and investing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Public digital infrastructure</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > h3"
              ],
              "html": "<h3>WiFi.ee</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > p"
              ],
              "html": "<p>A long-running public Wi-Fi platform rebuilt across product architecture, maps, data, APIs, permissions, and day-to-day operations.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Cultural platform</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > h3"
              ],
              "html": "<h3>Viirus Theatre</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > p"
              ],
              "html": "<p>A multilingual theatre platform connecting expressive visual identity with CMS structure, accessibility, performance, and maintainability.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Institutional design system</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > h3"
              ],
              "html": "<h3>Estonian Academy of Arts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > p"
              ],
              "html": "<p>A university website and evolving design system built to keep a complex institution legible across study, research, events, and public life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"profile-story-title\"] > .summer26-profile-section-head > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">How I work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-story-title"
              ],
              "html": "<h2 id=\"profile-story-title\">The title matters less than the responsibility.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-title"
              ],
              "html": "<p class=\"summer26-profile-story-title\">Make the judgment call. Build the artifact. Explain the decision. Stay responsible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(1)"
              ],
              "html": "<p>I have spent years doing work that organizations often divide between a product manager, researcher, product designer, design engineer, frontend developer, and technical writer. The point is not to collect titles. It is to reduce translation loss.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(2)"
              ],
              "html": "<p>I care especially about people who get trapped by interfaces. A product should not ask everyone to become technical just to use it, and an AI system should not hide uncertainty behind a confident-looking screen.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(3)"
              ],
              "html": "<p>Cultural institutions, public-interest technology, and emerging AI interfaces are where I keep returning because the systems are messy, the stakes are human, and clarity actually matters.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(1)"
              ],
              "html": "<span>Product strategy</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(2)"
              ],
              "html": "<span>User research</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(3)"
              ],
              "html": "<span>Interaction design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(4)"
              ],
              "html": "<span>Service design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(5)"
              ],
              "html": "<span>Design systems</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(6)"
              ],
              "html": "<span>React</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(7)"
              ],
              "html": "<span>Next.js</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(8)"
              ],
              "html": "<span>APIs</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(9)"
              ],
              "html": "<span>AI agents</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(10)"
              ],
              "html": "<span>Accessibility</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(11)"
              ],
              "html": "<span>Analytics</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(12)"
              ],
              "html": "<span>Localization</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(13)"
              ],
              "html": "<span>Performance</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(14)"
              ],
              "html": "<span>Technical writing</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-contact > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Bring me the messy middle</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#profile-contact-title"
              ],
              "html": "<h2 id=\"profile-contact-title\">Where product, design, engineering, and AI overlap.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact > p:nth-child(3)"
              ],
              "html": "<p>That is usually where the product is hardest to explain, easiest to fragment, and most valuable to make coherent.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".primary.summer26-profile-contact-link"
              ],
              "html": "<a class=\"summer26-profile-contact-link primary\" href=\"mailto:kris@haam.co?subject=Working%20with%20HAAM\">kris@haam.co ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact-link[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"/en/start\">Discuss with HAAM AI</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"krishaamer\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"https://github.com/krishaamer\" target=\"_blank\" rel=\"me noopener noreferrer\">GitHub</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "footer > span"
              ],
              "html": "<span>Kris Haamer · Founder of HAAM · Estonia</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "footer > a[href$=\"about\"]"
              ],
              "html": "<a href=\"/en/about\">More about HAAM</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    },
    {
      "path": "/profile/kris.haamer",
      "width": 1440,
      "mode": "dark",
      "status": 200,
      "violations": [
        {
          "id": "region",
          "impact": "moderate",
          "description": "Ensure all page content is contained by landmarks",
          "help": "All page content should be contained by landmarks",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix any of the following:\n  Some page content is not contained by landmarks"
            }
          ]
        }
      ],
      "incomplete": [
        {
          "id": "aria-prohibited-attr",
          "impact": "serious",
          "description": "Ensure ARIA attributes are not prohibited for an element's role",
          "help": "Elements must only use permitted ARIA attributes",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-chrome"
              ],
              "html": "<div class=\"summer26-unified-chrome\" data-mode=\"dark\" data-season=\"summer\" aria-label=\"HAAM navigation\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            },
            {
              "target": [
                ".summer26-profile-vocabulary"
              ],
              "html": "<div class=\"summer26-profile-vocabulary\" aria-label=\"Working vocabulary\">",
              "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ]
        },
        {
          "id": "color-contrast",
          "impact": "serious",
          "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
          "help": "Elements must meet minimum color contrast ratio thresholds",
          "helpUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
          "nodes": [
            {
              "target": [
                ".summer26-unified-nav-link[href=\"/en\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en\">Work</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-link[href$=\"about\"]"
              ],
              "html": "<a class=\"summer26-unified-nav-link\" href=\"/en/about\">Why</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-skills-trigger"
              ],
              "html": "<summary class=\"summer26-unified-nav-link summer26-unified-skills-trigger\">How</summary>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-nav-label-desktop"
              ],
              "html": "<span class=\"summer26-unified-nav-label-desktop\">Start</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-trigger > span:nth-child(1)"
              ],
              "html": "<span>Language</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-language-active"
              ],
              "html": "<span class=\"summer26-language-active\">English</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-unified-mode > span[aria-hidden=\"true\"]"
              ],
              "html": "<span aria-hidden=\"true\">☾</span>",
              "failureSummary": "Fix any of the following:\n  Element content contains only non-text characters"
            },
            {
              "target": [
                ".summer26-profile-kicker"
              ],
              "html": "<p class=\"summer26-profile-kicker\">Profile · Kris Haamer</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title"
              ],
              "html": "<h1 id=\"kris-profile-title\"><span>Kris Haamer.</span>Complex systems, made <em>human.</em></h1>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#kris-profile-title > span"
              ],
              "html": "<span>Kris Haamer.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "em"
              ],
              "html": "<em>human.</em>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-lead"
              ],
              "html": "<p class=\"summer26-profile-lead\">I am an interaction designer, product builder, and developer. I move between research, product decisions, interfaces, code, and AI-assisted delivery so the thing still feels like one thing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-index-copy"
              ],
              "html": "<p class=\"summer26-profile-index-copy\">Web developer and designer building usable, beautiful web experiences. Founder of HAAM.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-button[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"/en/start\">Start a project</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"mailto:kris@haam.co\"]"
              ],
              "html": "<a class=\"summer26-profile-button\" href=\"mailto:kris@haam.co\">Email Kris</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-photo-note"
              ],
              "html": "<div class=\"summer26-profile-photo-note\"><strong>Based in Estonia</strong>Working across borders, disciplines, and slightly awkward role boundaries.</div>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-profile-photo-note > strong"
              ],
              "html": "<strong>Based in Estonia</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > strong"
              ],
              "html": "<strong>Research + design + code</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(1) > span"
              ],
              "html": "<span>One connected practice</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > strong"
              ],
              "html": "<strong>Culture + public systems</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(2) > span"
              ],
              "html": "<span>Work worth keeping understandable</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > strong"
              ],
              "html": "<strong>AI-native interaction</strong>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-fact:nth-child(3) > span"
              ],
              "html": "<span>New tools, human judgment</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">The useful overlap</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-overlap-title"
              ],
              "html": "<h2 id=\"profile-overlap-title\">Fewer handoffs. Less meaning lost.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".green > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">Teams often split this work between product management, research, design, engineering, and technical writing. I connect those decisions early enough that they can reinforce one another instead of becoming five competing versions of the product.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">01</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > h3"
              ],
              "html": "<h3>Find the real problem</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(1) > div > p"
              ],
              "html": "<p>Research people, data, context, and constraints before polishing the first plausible answer.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">02</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > h3"
              ],
              "html": "<h3>Make it understandable</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(2) > div > p"
              ],
              "html": "<p>Shape flows, language, states, and visual systems so people can act without becoming experts first.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">03</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > h3"
              ],
              "html": "<h3>Build the system</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(3) > div > p"
              ],
              "html": "<p>Turn decisions into accessible React and Next.js interfaces, reusable components, APIs, and documentation.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > .summer26-profile-capability-number"
              ],
              "html": "<span class=\"summer26-profile-capability-number\">04</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > h3"
              ],
              "html": "<h3>Stay after launch</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "article:nth-child(4) > div > p"
              ],
              "html": "<p>Test the real product, read the signals, fix the awkward parts, and keep the whole thing coherent as it grows.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Evidence, not adjectives</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-evidence-title"
              ],
              "html": "<h2 id=\"profile-evidence-title\">Built across research, systems, interfaces, and production.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".pink > .summer26-profile-section-intro"
              ],
              "html": "<p class=\"summer26-profile-section-intro\">The work ranges from financial AI and public digital infrastructure to theatres, universities, cultural archives, and global civic movements.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Financial AI research</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > div > h3"
              ],
              "html": "<h3>Green Filter</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[href$=\"green-filter\"] > p"
              ],
              "html": "<p>A financial AI companion shaped by 675 valid survey responses, 32 interviews, and 32 prototype tests around sustainable shopping, saving, and investing.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Public digital infrastructure</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > div > h3"
              ],
              "html": "<h3>WiFi.ee</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"green\"] > p"
              ],
              "html": "<p>A long-running public Wi-Fi platform rebuilt across product architecture, maps, data, APIs, permissions, and day-to-day operations.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Cultural platform</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > div > h3"
              ],
              "html": "<h3>Viirus Theatre</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "a[data-accent=\"pink\"] > p"
              ],
              "html": "<p>A multilingual theatre platform connecting expressive visual identity with CMS structure, accessibility, performance, and maintainability.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > .summer26-profile-project-label"
              ],
              "html": "<p class=\"summer26-profile-project-label\">Institutional design system</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > div > h3"
              ],
              "html": "<h3>Estonian Academy of Arts</h3>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-project[data-accent=\"yellow\"]:nth-child(4) > p"
              ],
              "html": "<p>A university website and evolving design system built to keep a complex institution legible across study, research, events, and public life.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "section[aria-labelledby=\"profile-story-title\"] > .summer26-profile-section-head > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">How I work</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "#profile-story-title"
              ],
              "html": "<h2 id=\"profile-story-title\">The title matters less than the responsibility.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-title"
              ],
              "html": "<p class=\"summer26-profile-story-title\">Make the judgment call. Build the artifact. Explain the decision. Stay responsible.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(1)"
              ],
              "html": "<p>I have spent years doing work that organizations often divide between a product manager, researcher, product designer, design engineer, frontend developer, and technical writer. The point is not to collect titles. It is to reduce translation loss.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(2)"
              ],
              "html": "<p>I care especially about people who get trapped by interfaces. A product should not ask everyone to become technical just to use it, and an AI system should not hide uncertainty behind a confident-looking screen.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-story-copy > p:nth-child(3)"
              ],
              "html": "<p>Cultural institutions, public-interest technology, and emerging AI interfaces are where I keep returning because the systems are messy, the stakes are human, and clarity actually matters.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(1)"
              ],
              "html": "<span>Product strategy</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(2)"
              ],
              "html": "<span>User research</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(3)"
              ],
              "html": "<span>Interaction design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(4)"
              ],
              "html": "<span>Service design</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-vocabulary > span:nth-child(5)"
              ],
              "html": "<span>Design systems</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(6)"
              ],
              "html": "<span>React</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(7)"
              ],
              "html": "<span>Next.js</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(8)"
              ],
              "html": "<span>APIs</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(9)"
              ],
              "html": "<span>AI agents</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(10)"
              ],
              "html": "<span>Accessibility</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(11)"
              ],
              "html": "<span>Analytics</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(12)"
              ],
              "html": "<span>Localization</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(13)"
              ],
              "html": "<span>Performance</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "span:nth-child(14)"
              ],
              "html": "<span>Technical writing</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".summer26-profile-contact > .summer26-profile-label"
              ],
              "html": "<p class=\"summer26-profile-label\">Bring me the messy middle</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "#profile-contact-title"
              ],
              "html": "<h2 id=\"profile-contact-title\">Where product, design, engineering, and AI overlap.</h2>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact > p:nth-child(3)"
              ],
              "html": "<p>That is usually where the product is hardest to explain, easiest to fragment, and most valuable to make coherent.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".primary.summer26-profile-contact-link"
              ],
              "html": "<a class=\"summer26-profile-contact-link primary\" href=\"mailto:kris@haam.co?subject=Working%20with%20HAAM\">kris@haam.co ↗</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                ".summer26-profile-contact-link[href$=\"start\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"/en/start\">Discuss with HAAM AI</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "a[href$=\"krishaamer\"]"
              ],
              "html": "<a class=\"summer26-profile-contact-link\" href=\"https://github.com/krishaamer\" target=\"_blank\" rel=\"me noopener noreferrer\">GitHub</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
            },
            {
              "target": [
                "footer > span"
              ],
              "html": "<span>Kris Haamer · Founder of HAAM · Estonia</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                "footer > a[href$=\"about\"]"
              ],
              "html": "<a href=\"/en/about\">More about HAAM</a>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".min-w-0 > p"
              ],
              "html": "<p><span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span> <!-- -->Google Analytics and Clarity load only if allowed; form, email, and chat content are excluded.</p>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".text-slate-950.dark\\:text-slate-100.font-semibold"
              ],
              "html": "<span class=\"font-semibold text-slate-950 dark:text-slate-100\">Optional analytics.</span>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            },
            {
              "target": [
                ".border-slate-300"
              ],
              "html": "<button type=\"button\" class=\"rounded-full border border-slate-300 px-3 py-1.5 text-xs font-semibold hover:border-indigo-500 hover:text-indigo-700 dark:border-slate-600 dark:hover:text-indigo-300 sm:text-sm\">Necessary only</button>",
              "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
            }
          ]
        }
      ],
      "passedRules": 37,
      "horizontalOverflow": false,
      "mainCount": 1,
      "h1Count": 1,
      "imagesMissingAlt": 0,
      "lang": "en",
      "runningAnimationsWithReducedMotion": 0,
      "mixedContent": [],
      "firstFocus": {
        "text": "Skip to main content",
        "href": "#main-content",
        "outline": "auto"
      },
      "skipTargetReached": true,
      "thirdPartyHosts": [],
      "cookieNames": [
        {
          "name": "lang",
          "domain": "haam.co",
          "secure": false,
          "httpOnly": false,
          "sameSite": "Lax"
        }
      ],
      "errors": [],
      "failedRequests": []
    }
  ],
  "crawl": [
    {
      "url": "https://www.haam.co/et",
      "finalUrl": "https://www.haam.co/et",
      "status": 200,
      "title": "HAAM - Nordic Interaction Design",
      "description": true,
      "canonical": "https://www.haam.co/et",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en",
      "finalUrl": "https://www.haam.co/en",
      "status": 200,
      "title": "HAAM - Nordic Interaction Design",
      "description": true,
      "canonical": "https://www.haam.co/en",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/sv",
      "finalUrl": "https://www.haam.co/sv",
      "status": 200,
      "title": "HAAM - Nordisk interaktionsdesign",
      "description": true,
      "canonical": "https://www.haam.co/sv",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/fi",
      "finalUrl": "https://www.haam.co/fi",
      "status": 200,
      "title": "HAAM - Nordic Interaction Design",
      "description": true,
      "canonical": "https://www.haam.co/fi",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/about",
      "finalUrl": "https://www.haam.co/en/about",
      "status": 200,
      "title": "About HAAM | Kris Haamer and Meaningful Product Work",
      "description": true,
      "canonical": "https://www.haam.co/en/about",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/da",
      "finalUrl": "https://www.haam.co/da",
      "status": 200,
      "title": "HAAM - Nordisk interaktionsdesign",
      "description": true,
      "canonical": "https://www.haam.co/da",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/timeline",
      "finalUrl": "https://www.haam.co/en/timeline",
      "status": 200,
      "title": "Timeline | 20+ Years of Digital Practice | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/timeline",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/no",
      "finalUrl": "https://www.haam.co/no",
      "status": 200,
      "title": "HAAM - Nordisk interaksjonsdesign",
      "description": true,
      "canonical": "https://www.haam.co/no",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/6g",
      "finalUrl": "https://www.haam.co/en/6g",
      "status": 200,
      "title": "6G Interaction Design | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/6g",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/press-release",
      "finalUrl": "https://www.haam.co/en/press-release",
      "status": 200,
      "title": "HAAM Press Release | Designing Backwards from the Headline",
      "description": true,
      "canonical": "https://www.haam.co/en/press-release",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/sites",
      "finalUrl": "https://www.haam.co/en/sites",
      "status": 200,
      "title": "Web index | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/sites",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/ai-babysitter",
      "finalUrl": "https://www.haam.co/en/ai-babysitter",
      "status": 200,
      "title": "AI Babysitter - HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/ai-babysitter",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/southern-europe",
      "finalUrl": "https://www.haam.co/en/southern-europe",
      "status": 200,
      "title": "HAAM Southern Europe | Regional project edition",
      "description": true,
      "canonical": "https://www.haam.co/en/southern-europe",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/data",
      "finalUrl": "https://www.haam.co/en/data",
      "status": 200,
      "title": "What Is Data? | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/data",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/africa",
      "finalUrl": "https://www.haam.co/en/africa",
      "status": 200,
      "title": "HAAM Africa | Regional project edition",
      "description": true,
      "canonical": "https://www.haam.co/en/africa",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/wifi-8",
      "finalUrl": "https://www.haam.co/en/wifi-8",
      "status": 200,
      "title": "Wi-Fi 8 Interaction Design | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/wifi-8",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/asia",
      "finalUrl": "https://www.haam.co/en/asia",
      "status": 200,
      "title": "HAAM Asia | Regional project edition",
      "description": true,
      "canonical": "https://www.haam.co/en/asia",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/b2b",
      "finalUrl": "https://www.haam.co/en/b2b",
      "status": 200,
      "title": "HAAM B2B | Regional project edition",
      "description": true,
      "canonical": "https://www.haam.co/en/b2b",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/film",
      "finalUrl": "https://www.haam.co/en/film",
      "status": 200,
      "title": "HAAM Film | Narrative, culture, and cinematic systems",
      "description": true,
      "canonical": "https://www.haam.co/en/film",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/latin-america",
      "finalUrl": "https://www.haam.co/en/latin-america",
      "status": 200,
      "title": "HAAM Latin America | Regional project edition",
      "description": true,
      "canonical": "https://www.haam.co/en/latin-america",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/design-systems",
      "finalUrl": "https://www.haam.co/en/design-systems",
      "status": 200,
      "title": "Design Systems | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/design-systems",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/lab",
      "finalUrl": "https://www.haam.co/en/lab",
      "status": 200,
      "title": "HAAM Lab | Hackathons &amp; experiments",
      "description": true,
      "canonical": "https://www.haam.co/en/lab",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/human-limits",
      "finalUrl": "https://www.haam.co/en/human-limits",
      "status": 200,
      "title": "Human Limits | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/human-limits",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/products",
      "previousAttempts": [
        {
          "error": "The operation was aborted due to timeout"
        }
      ],
      "status": 200,
      "finalUrl": "https://www.haam.co/en/products",
      "title": "HAAM products",
      "description": true,
      "canonical": "https://www.haam.co/en/products",
      "h1Count": 1,
      "noindex": false,
      "recheckedAt": "2026-10-23T02:19:38.010Z"
    },
    {
      "url": "https://www.haam.co/en/places/taiwan",
      "finalUrl": "https://www.haam.co/en/places/taiwan",
      "status": 200,
      "title": "HAAM Taiwan | Personal introduction",
      "description": true,
      "canonical": "https://www.haam.co/en/places/taiwan",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills",
      "finalUrl": "https://www.haam.co/en/skills",
      "status": 200,
      "title": "Skills | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/skills",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/places/helsinki",
      "finalUrl": "https://www.haam.co/en/places/helsinki",
      "status": 200,
      "title": "HAAM Helsinki | Personal introduction",
      "description": true,
      "canonical": "https://www.haam.co/en/places/helsinki",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/research",
      "finalUrl": "https://www.haam.co/en/skills/research",
      "status": 200,
      "title": "Research | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/research",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/agent-commerce",
      "finalUrl": "https://www.haam.co/en/skills/agent-commerce",
      "status": 200,
      "title": "Agent Commerce Readiness | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/agent-commerce",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/ai-skills",
      "finalUrl": "https://www.haam.co/en/skills/ai-skills",
      "status": 200,
      "title": "AI Product, Agent and Automation Design | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/ai-skills",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/automation",
      "finalUrl": "https://www.haam.co/en/skills/automation",
      "status": 200,
      "title": "Automation | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/automation",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/interaction",
      "finalUrl": "https://www.haam.co/en/skills/interaction",
      "status": 200,
      "title": "Interaction Design | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/interaction",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/growth",
      "finalUrl": "https://www.haam.co/en/skills/growth",
      "status": 200,
      "title": "Growth | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/growth",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/design-thinking",
      "finalUrl": "https://www.haam.co/en/skills/design-thinking",
      "status": 200,
      "title": "Design thinking | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/design-thinking",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/security",
      "finalUrl": "https://www.haam.co/en/skills/security",
      "status": 200,
      "title": "Security | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/security",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/testing",
      "finalUrl": "https://www.haam.co/en/skills/testing",
      "status": 200,
      "title": "Testing | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/testing",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/attention",
      "finalUrl": "https://www.haam.co/en/skills/attention",
      "status": 200,
      "title": "Attention | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/attention",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/api-development",
      "finalUrl": "https://www.haam.co/en/skills/api-development",
      "status": 200,
      "title": "API Development | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/api-development",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/partnership",
      "finalUrl": "https://www.haam.co/en/skills/partnership",
      "status": 200,
      "title": "Partnership | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/partnership",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/optimization",
      "finalUrl": "https://www.haam.co/en/skills/optimization",
      "status": 200,
      "title": "Optimization | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/optimization",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/ai-seo",
      "finalUrl": "https://www.haam.co/en/skills/ai-seo",
      "status": 200,
      "title": "AI SEO | HAAM Skills",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/ai-seo",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/viirus",
      "finalUrl": "https://www.haam.co/en/case-studies/viirus",
      "status": 200,
      "title": "Viirus Theatre Interaction Design Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/viirus",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies",
      "finalUrl": "https://www.haam.co/en/case-studies",
      "status": 200,
      "title": "Case Studies | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/green-filter",
      "finalUrl": "https://www.haam.co/en/case-studies/green-filter",
      "status": 200,
      "title": "Green Filter case study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/green-filter",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/life-in-finland",
      "finalUrl": "https://www.haam.co/en/case-studies/life-in-finland",
      "status": 200,
      "title": "Life in Finland Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/life-in-finland",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/100-objects-from-finland",
      "finalUrl": "https://www.haam.co/en/case-studies/100-objects-from-finland",
      "status": 200,
      "title": "100 Objects from Finland Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/100-objects-from-finland",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/estonian-academy-of-arts",
      "finalUrl": "https://www.haam.co/en/case-studies/estonian-academy-of-arts",
      "status": 200,
      "title": "Estonian Academy of Arts Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/estonian-academy-of-arts",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/repsal-busholmen",
      "finalUrl": "https://www.haam.co/en/case-studies/repsal-busholmen",
      "status": 200,
      "title": "Repsal Busholmen Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/repsal-busholmen",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/tedx-saotome",
      "finalUrl": "https://www.haam.co/en/case-studies/tedx-saotome",
      "status": 200,
      "title": "TEDxSãoTomé Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/tedx-saotome",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/world-cleanup-day",
      "finalUrl": "https://www.haam.co/en/case-studies/world-cleanup-day",
      "status": 200,
      "title": "World Cleanup Day Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/world-cleanup-day",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/segredos-da-floresta",
      "finalUrl": "https://www.haam.co/en/case-studies/segredos-da-floresta",
      "status": 200,
      "title": "Segredos da Floresta Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/segredos-da-floresta",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/narva-art-residency",
      "finalUrl": "https://www.haam.co/en/case-studies/narva-art-residency",
      "status": 200,
      "title": "Narva Art Residency Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/narva-art-residency",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/elsa-figueira",
      "finalUrl": "https://www.haam.co/en/case-studies/elsa-figueira",
      "status": 200,
      "title": "Elsa Figueira Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/elsa-figueira",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/agwata-republic",
      "finalUrl": "https://www.haam.co/en/case-studies/agwata-republic",
      "status": 200,
      "title": "Agwata Republic Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/agwata-republic",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/cindy-baptista",
      "finalUrl": "https://www.haam.co/en/case-studies/cindy-baptista",
      "status": 200,
      "title": "Cindy Baptista Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/cindy-baptista",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/nile-journeys",
      "finalUrl": "https://www.haam.co/en/case-studies/nile-journeys",
      "status": 200,
      "title": "Nile Journeys Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/nile-journeys",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/siete-colores",
      "finalUrl": "https://www.haam.co/en/case-studies/siete-colores",
      "status": 200,
      "title": "Siete Colores Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/siete-colores",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/africa-mostra-se",
      "finalUrl": "https://www.haam.co/en/case-studies/africa-mostra-se",
      "status": 200,
      "title": "África Mostra-se Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/africa-mostra-se",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/mina-kia",
      "finalUrl": "https://www.haam.co/en/case-studies/mina-kia",
      "status": 200,
      "title": "Mina Kia Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/mina-kia",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/le-tre-meraviglie",
      "finalUrl": "https://www.haam.co/en/case-studies/le-tre-meraviglie",
      "status": 200,
      "title": "Le Tre Meraviglie Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/le-tre-meraviglie",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/we",
      "finalUrl": "https://www.haam.co/en/case-studies/we",
      "status": 200,
      "title": "Wê Case Study | HAAM Film",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/we",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/impromptu",
      "finalUrl": "https://www.haam.co/en/case-studies/impromptu",
      "status": 200,
      "title": "Impromptu Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/impromptu",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/jali-hen-da",
      "finalUrl": "https://www.haam.co/en/case-studies/jali-hen-da",
      "status": 200,
      "title": "壓力很大 Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/jali-hen-da",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/love-survives",
      "finalUrl": "https://www.haam.co/en/case-studies/love-survives",
      "status": 200,
      "title": "Love Survives Case Study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/love-survives",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/wifi-ee",
      "finalUrl": "https://www.haam.co/en/case-studies/wifi-ee",
      "status": 200,
      "title": "WiFi.ee case study | HAAM B2B",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/wifi-ee",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/sisu",
      "finalUrl": "https://www.haam.co/en/case-studies/sisu",
      "status": 200,
      "title": "SISU case study | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/sisu",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/client-desk",
      "finalUrl": "https://www.haam.co/en/case-studies/client-desk",
      "status": 200,
      "title": "Client Desk | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/client-desk",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/cafuka-urb12",
      "finalUrl": "https://www.haam.co/en/case-studies/cafuka-urb12",
      "status": 200,
      "title": "CAFUKA URB.12 Case Study | HAAM Film",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/cafuka-urb12",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/product-studio",
      "finalUrl": "https://www.haam.co/en/case-studies/product-studio",
      "status": 200,
      "title": "Product Studio | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/product-studio",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/consistency",
      "finalUrl": "https://www.haam.co/en/case-studies/consistency",
      "status": 200,
      "title": "Consistency | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/consistency",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/compass",
      "finalUrl": "https://www.haam.co/en/case-studies/compass",
      "status": 200,
      "title": "Compass | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/compass",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/haam-bi",
      "finalUrl": "https://www.haam.co/en/case-studies/haam-bi",
      "status": 200,
      "title": "BI | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/haam-bi",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/speaking",
      "finalUrl": "https://www.haam.co/en/case-studies/speaking",
      "status": 200,
      "title": "Speaking | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/speaking",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/interaction-design-storytelling",
      "finalUrl": "https://www.haam.co/en/interaction-design-storytelling",
      "status": 200,
      "title": "Every Interface Has a Plot | HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/interaction-design-storytelling",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/swimmable-cities",
      "finalUrl": "https://www.haam.co/en/case-studies/swimmable-cities",
      "status": 200,
      "title": "Swimmable Cities | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/swimmable-cities",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/case-studies/air",
      "finalUrl": "https://www.haam.co/en/case-studies/air",
      "status": 200,
      "title": "Air | HAAM product case study",
      "description": true,
      "canonical": "https://www.haam.co/en/case-studies/air",
      "h1Count": 2,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/profile/kris.haamer",
      "finalUrl": "https://www.haam.co/profile/kris.haamer",
      "status": 200,
      "title": "Kris Haamer | Profile",
      "description": true,
      "canonical": "https://www.haam.co/profile/kris.haamer",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/skills/legacy-modernization",
      "finalUrl": "https://www.haam.co/en/skills/legacy-modernization",
      "status": 200,
      "title": "Modernizing Legacy Systems with AI - HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/skills/legacy-modernization",
      "h1Count": 1,
      "noindex": false
    },
    {
      "url": "https://www.haam.co/en/start",
      "finalUrl": "https://www.haam.co/en/start",
      "status": 200,
      "title": "Start a Project - HAAM",
      "description": true,
      "canonical": "https://www.haam.co/en/start",
      "h1Count": 1,
      "noindex": false
    }
  ],
  "transport": {
    "url": "https://haam.co/en",
    "status": 200,
    "headers": {
      "strict-transport-security": "max-age=63072000",
      "content-security-policy": null,
      "content-security-policy-report-only": null,
      "x-content-type-options": null,
      "x-frame-options": null,
      "referrer-policy": null,
      "permissions-policy": null,
      "cross-origin-opener-policy": null
    },
    "http": {
      "status": 308,
      "location": "https://haam.co/"
    },
    "tls": {
      "authorized": true,
      "protocol": "TLSv1.3",
      "validFrom": "Sep  6 16:30:32 2026 GMT",
      "validTo": "Dec  5 16:30:31 2026 GMT",
      "issuer": "Let's Encrypt"
    }
  },
  "errors": [],
  "sitemap": {
    "status": 200,
    "totalUrls": 439,
    "testedUrls": 79
  },
  "robots": {
    "status": 200,
    "text": "User-Agent: *\nAllow: /\nAllow: /about\nAllow: /timeline\nAllow: /sites\nAllow: /press-release\nAllow: /ai-babysitter\nAllow: /6g\nAllow: /wifi-8\nAllow: /data\nAllow: /africa\nAllow: /southern-europe\nAllow: /asia\nAllow: /latin-america\nAllow: /b2b\nAllow: /film\nAllow: /lab\nAllow: /products\nAllow: /design-systems\nAllow: /human-limits\nAllow: /places/taiwan\nAllow: /places/helsinki\nAllow: /skills\nAllow: /skills/research\nAllow: /skills/interaction\nAllow: /skills/automation\nAllow: /skills/ai-skills\nAllow: /skills/agent-commerce\nAllow: /skills/growth\nAllow: /skills/testing\nAllow: /skills/design-thinking\nAllow: /skills/security\nAllow: /skills/partnership\nAllow: /skills/attention\nAllow: /skills/api-development\nAllow: /skills/optimization\nAllow: /skills/ai-seo\nAllow: /case-studies\nAllow: /case-studies/viirus\nAllow: /case-studies/green-filter\nAllow: /case-studies/repsal-busholmen\nAllow: /case-studies/100-objects-from-finland\nAllow: /case-studies/life-in-finland\nAllow: /case-studies/estonian-academy-of-arts\nAllow: /case-studies/narva-art-residency\nAllow: /case-studies/world-cleanup-day\nAllow: /case-studies/segredos-da-floresta\nAllow: /case-studies/tedx-saotome\nAllow: /case-studies/elsa-figueira\nAllow: /case-studies/nile-journeys\nAllow: /case-studies/agwata-republic\nAllow: /case-studies/cindy-baptista\nAllow: /case-studies/le-tre-meraviglie\nAllow: /case-studies/africa-mostra-se\nAllow: /case-studies/siete-colores\nAllow: /case-studies/mina-kia\nAllow: /case-studies/jali-hen-da\nAllow: /case-studies/love-survives\nAllow: /case-studies/impromptu\nAllow: /case-studies/we\nAllow: /case-studies/cafuka-urb12\nAllow: /case-studies/wifi-ee\nAllow: /case-studies/sisu\nAllow: /case-studies/client-desk\nAllow: /case-studies/haam-bi\nAllow: /case-studies/product-studio\nAllow: /case-studies/compass\nAllow: /case-studies/consistency\nAllow: /case-studies/air\nAllow: /case-studies/speaking\nAllow: /case-studies/swimmable-cities\nAllow: /interaction-design-storytelling\nAllow: /skills/legacy-modernization\nAllow: /start\nAllow: /en\nAllow: /et\nAllow: /fi\nAllow: /sv\nAllow: /da\nAllow: /no\nAllow: /en/about\nAllow: /et/teave\nAllow: /fi/tietoa\nAllow: /sv/om\nAllow: /da/om\nAllow: /no/om\nAllow: /en/timeline\nAllow: /et/timeline\nAllow: /fi/timeline\nAllow: /sv/timeline\nAllow: /da/timeline\nAllow: /no/timeline\nAllow: /en/sites\nAllow: /et/sites\nAllow: /fi/sites\nAllow: /sv/sites\nAllow: /da/sites\nAllow: /no/sites\nAllow: /en/press-release\nAllow: /et/press-release\nAllow: /fi/press-release\nAllow: /sv/press-release\nAllow: /da/press-release\nAllow: /no/press-release\nAllow: /en/ai-babysitter\nAllow: /et/ai-babysitter\nAllow: /fi/ai-babysitter\nAllow: /sv/ai-babysitter\nAllow: /da/ai-babysitter\nAllow: /no/ai-babysitter\nAllow: /en/6g\nAllow: /et/6g\nAllow: /fi/6g\nAllow: /sv/6g\nAllow: /da/6g\nAllow: /no/6g\nAllow: /en/wifi-8\nAllow: /et/wifi-8\nAllow: /fi/wifi-8\nAllow: /sv/wifi-8\nAllow: /da/wifi-8\nAllow: /no/wifi-8\nAllow: /en/data\nAllow: /et/andmed\nAllow: /fi/data\nAllow: /sv/data\nAllow: /da/data\nAllow: /no/data\nAllow: /en/africa\nAllow: /et/africa\nAllow: /fi/africa\nAllow: /sv/africa\nAllow: /da/africa\nAllow: /no/africa\nAllow: /en/southern-europe\nAllow: /et/southern-europe\nAllow: /fi/southern-europe\nAllow: /sv/southern-europe\nAllow: /da/southern-europe\nAllow: /no/southern-europe\nAllow: /en/asia\nAllow: /et/asia\nAllow: /fi/asia\nAllow: /sv/asia\nAllow: /da/asia\nAllow: /no/asia\nAllow: /en/latin-america\nAllow: /et/latin-america\nAllow: /fi/latin-america\nAllow: /sv/latin-america\nAllow: /da/latin-america\nAllow: /no/latin-america\nAllow: /en/b2b\nAllow: /et/b2b\nAllow: /fi/b2b\nAllow: /sv/b2b\nAllow: /da/b2b\nAllow: /no/b2b\nAllow: /en/film\nAllow: /et/film\nAllow: /fi/film\nAllow: /sv/film\nAllow: /da/film\nAllow: /no/film\nAllow: /en/lab\nAllow: /et/lab\nAllow: /fi/lab\nAllow: /sv/lab\nAllow: /da/lab\nAllow: /no/lab\nAllow: /en/products\nAllow: /et/tooted\nAllow: /fi/tuotteet\nAllow: /sv/produkter\nAllow: /da/produkter\nAllow: /no/produkter\nAllow: /en/design-systems\nAllow: /et/design-systems\nAllow: /fi/design-systems\nAllow: /sv/design-systems\nAllow: /da/design-systems\nAllow: /no/design-systems\nAllow: /en/human-limits\nAllow: /et/human-limits\nAllow: /fi/human-limits\nAllow: /sv/human-limits\nAllow: /da/human-limits\nAllow: /no/human-limits\nAllow: /en/places/taiwan\nAllow: /et/places/taiwan\nAllow: /fi/places/taiwan\nAllow: /sv/places/taiwan\nAllow: /da/places/taiwan\nAllow: /no/places/taiwan\nAllow: /en/places/helsinki\nAllow: /et/places/helsinki\nAllow: /fi/places/helsinki\nAllow: /sv/places/helsinki\nAllow: /da/places/helsinki\nAllow: /no/places/helsinki\nAllow: /en/skills\nAllow: /et/skills\nAllow: /fi/skills\nAllow: /sv/skills\nAllow: /da/skills\nAllow: /no/skills\nAllow: /en/skills/research\nAllow: /et/skills/research\nAllow: /fi/skills/research\nAllow: /sv/skills/research\nAllow: /da/skills/research\nAllow: /no/skills/research\nAllow: /en/skills/interaction\nAllow: /et/skills/interaction\nAllow: /fi/skills/interaction\nAllow: /sv/skills/interaction\nAllow: /da/skills/interaction\nAllow: /no/skills/interaction\nAllow: /en/skills/automation\nAllow: /et/skills/automation\nAllow: /fi/skills/automation\nAllow: /sv/skills/automation\nAllow: /da/skills/automation\nAllow: /no/skills/automation\nAllow: /en/skills/ai-skills\nAllow: /et/skills/ai-skills\nAllow: /fi/skills/ai-skills\nAllow: /sv/skills/ai-skills\nAllow: /da/skills/ai-skills\nAllow: /no/skills/ai-skills\nAllow: /en/skills/agent-commerce\nAllow: /et/skills/agent-commerce\nAllow: /fi/skills/agent-commerce\nAllow: /sv/skills/agent-commerce\nAllow: /da/skills/agent-commerce\nAllow: /no/skills/agent-commerce\nAllow: /en/skills/growth\nAllow: /et/skills/growth\nAllow: /fi/skills/growth\nAllow: /sv/skills/growth\nAllow: /da/skills/growth\nAllow: /no/skills/growth\nAllow: /en/skills/testing\nAllow: /et/skills/testing\nAllow: /fi/skills/testing\nAllow: /sv/skills/testing\nAllow: /da/skills/testing\nAllow: /no/skills/testing\nAllow: /en/skills/design-thinking\nAllow: /et/skills/design-thinking\nAllow: /fi/skills/design-thinking\nAllow: /sv/skills/design-thinking\nAllow: /da/skills/design-thinking\nAllow: /no/skills/design-thinking\nAllow: /en/skills/security\nAllow: /et/skills/security\nAllow: /fi/skills/security\nAllow: /sv/skills/security\nAllow: /da/skills/security\nAllow: /no/skills/security\nAllow: /en/skills/partnership\nAllow: /et/skills/partnership\nAllow: /fi/skills/partnership\nAllow: /sv/skills/partnership\nAllow: /da/skills/partnership\nAllow: /no/skills/partnership\nAllow: /en/skills/attention\nAllow: /et/skills/attention\nAllow: /fi/skills/attention\nAllow: /sv/skills/attention\nAllow: /da/skills/attention\nAllow: /no/skills/attention\nAllow: /en/skills/api-development\nAllow: /et/skills/api-development\nAllow: /fi/skills/api-development\nAllow: /sv/skills/api-development\nAllow: /da/skills/api-development\nAllow: /no/skills/api-development\nAllow: /en/skills/optimization\nAllow: /et/skills/optimization\nAllow: /fi/skills/optimization\nAllow: /sv/skills/optimization\nAllow: /da/skills/optimization\nAllow: /no/skills/optimization\nAllow: /en/skills/ai-seo\nAllow: /et/skills/ai-seo\nAllow: /fi/skills/ai-seo\nAllow: /sv/skills/ai-seo\nAllow: /da/skills/ai-seo\nAllow: /no/skills/ai-seo\nAllow: /en/case-studies\nAllow: /et/tood\nAllow: /fi/tyot\nAllow: /sv/fallstudier\nAllow: /da/cases\nAllow: /no/caser\nAllow: /en/case-studies/viirus\nAllow: /et/tood/viirus\nAllow: /fi/tyot/viirus\nAllow: /sv/fallstudier/viirus\nAllow: /da/cases/viirus\nAllow: /no/caser/viirus\nAllow: /en/case-studies/green-filter\nAllow: /et/case-studies/green-filter\nAllow: /fi/case-studies/green-filter\nAllow: /sv/case-studies/green-filter\nAllow: /da/case-studies/green-filter\nAllow: /no/case-studies/green-filter\nAllow: /en/case-studies/repsal-busholmen\nAllow: /et/tood/repsal-busholmen\nAllow: /fi/tyot/repsal-busholmen\nAllow: /sv/fallstudier/repsal-busholmen\nAllow: /da/cases/repsal-busholmen\nAllow: /no/caser/repsal-busholmen\nAllow: /en/case-studies/100-objects-from-finland\nAllow: /et/tood/100-objects-from-finland\nAllow: /fi/tyot/100-objects-from-finland\nAllow: /sv/fallstudier/100-objects-from-finland\nAllow: /da/cases/100-objects-from-finland\nAllow: /no/caser/100-objects-from-finland\nAllow: /en/case-studies/life-in-finland\nAllow: /et/tood/life-in-finland\nAllow: /fi/tyot/life-in-finland\nAllow: /sv/fallstudier/life-in-finland\nAllow: /da/cases/life-in-finland\nAllow: /no/caser/life-in-finland\nAllow: /en/case-studies/estonian-academy-of-arts\nAllow: /et/tood/estonian-academy-of-arts\nAllow: /fi/tyot/estonian-academy-of-arts\nAllow: /sv/fallstudier/estonian-academy-of-arts\nAllow: /da/cases/estonian-academy-of-arts\nAllow: /no/caser/estonian-academy-of-arts\nAllow: /en/case-studies/narva-art-residency\nAllow: /et/tood/narva-art-residency\nAllow: /fi/tyot/narva-art-residency\nAllow: /sv/fallstudier/narva-art-residency\nAllow: /da/cases/narva-art-residency\nAllow: /no/caser/narva-art-residency\nAllow: /en/case-studies/world-cleanup-day\nAllow: /et/tood/world-cleanup-day\nAllow: /fi/tyot/world-cleanup-day\nAllow: /sv/fallstudier/world-cleanup-day\nAllow: /da/cases/world-cleanup-day\nAllow: /no/caser/world-cleanup-day\nAllow: /en/case-studies/segredos-da-floresta\nAllow: /et/case-studies/segredos-da-floresta\nAllow: /fi/case-studies/segredos-da-floresta\nAllow: /sv/case-studies/segredos-da-floresta\nAllow: /da/case-studies/segredos-da-floresta\nAllow: /no/case-studies/segredos-da-floresta\nAllow: /en/case-studies/tedx-saotome\nAllow: /et/case-studies/tedx-saotome\nAllow: /fi/case-studies/tedx-saotome\nAllow: /sv/case-studies/tedx-saotome\nAllow: /da/case-studies/tedx-saotome\nAllow: /no/case-studies/tedx-saotome\nAllow: /en/case-studies/elsa-figueira\nAllow: /et/case-studies/elsa-figueira\nAllow: /fi/case-studies/elsa-figueira\nAllow: /sv/case-studies/elsa-figueira\nAllow: /da/case-studies/elsa-figueira\nAllow: /no/case-studies/elsa-figueira\nAllow: /en/case-studies/nile-journeys\nAllow: /et/case-studies/nile-journeys\nAllow: /fi/case-studies/nile-journeys\nAllow: /sv/case-studies/nile-journeys\nAllow: /da/case-studies/nile-journeys\nAllow: /no/case-studies/nile-journeys\nAllow: /en/case-studies/agwata-republic\nAllow: /et/case-studies/agwata-republic\nAllow: /fi/case-studies/agwata-republic\nAllow: /sv/case-studies/agwata-republic\nAllow: /da/case-studies/agwata-republic\nAllow: /no/case-studies/agwata-republic\nAllow: /en/case-studies/cindy-baptista\nAllow: /et/case-studies/cindy-baptista\nAllow: /fi/case-studies/cindy-baptista\nAllow: /sv/case-studies/cindy-baptista\nAllow: /da/case-studies/cindy-baptista\nAllow: /no/case-studies/cindy-baptista\nAllow: /en/case-studies/le-tre-meraviglie\nAllow: /et/tood/le-tre-meraviglie\nAllow: /fi/tyot/le-tre-meraviglie\nAllow: /sv/fallstudier/le-tre-meraviglie\nAllow: /da/cases/le-tre-meraviglie\nAllow: /no/caser/le-tre-meraviglie\nAllow: /en/case-studies/africa-mostra-se\nAllow: /et/tood/africa-mostra-se\nAllow: /fi/tyot/africa-mostra-se\nAllow: /sv/fallstudier/africa-mostra-se\nAllow: /da/cases/africa-mostra-se\nAllow: /no/caser/africa-mostra-se\nAllow: /en/case-studies/siete-colores\nAllow: /et/case-studies/siete-colores\nAllow: /fi/case-studies/siete-colores\nAllow: /sv/case-studies/siete-colores\nAllow: /da/case-studies/siete-colores\nAllow: /no/case-studies/siete-colores\nAllow: /en/case-studies/mina-kia\nAllow: /et/tood/mina-kia\nAllow: /fi/tyot/mina-kia\nAllow: /sv/fallstudier/mina-kia\nAllow: /da/cases/mina-kia\nAllow: /no/caser/mina-kia\nAllow: /en/case-studies/jali-hen-da\nAllow: /et/tood/jali-hen-da\nAllow: /fi/tyot/jali-hen-da\nAllow: /sv/fallstudier/jali-hen-da\nAllow: /da/cases/jali-hen-da\nAllow: /no/caser/jali-hen-da\nAllow: /en/case-studies/love-survives\nAllow: /et/tood/love-survives\nAllow: /fi/tyot/love-survives\nAllow: /sv/fallstudier/love-survives\nAllow: /da/cases/love-survives\nAllow: /no/caser/love-survives\nAllow: /en/case-studies/impromptu\nAllow: /et/tood/impromptu\nAllow: /fi/tyot/impromptu\nAllow: /sv/fallstudier/impromptu\nAllow: /da/cases/impromptu\nAllow: /no/caser/impromptu\nAllow: /en/case-studies/we\nAllow: /et/case-studies/we\nAllow: /fi/case-studies/we\nAllow: /sv/case-studies/we\nAllow: /da/case-studies/we\nAllow: /no/case-studies/we\nAllow: /en/case-studies/cafuka-urb12\nAllow: /et/case-studies/cafuka-urb12\nAllow: /fi/case-studies/cafuka-urb12\nAllow: /sv/case-studies/cafuka-urb12\nAllow: /da/case-studies/cafuka-urb12\nAllow: /no/case-studies/cafuka-urb12\nAllow: /en/case-studies/wifi-ee\nAllow: /et/tood/wifi-ee\nAllow: /fi/tyot/wifi-ee\nAllow: /sv/fallstudier/wifi-ee\nAllow: /da/cases/wifi-ee\nAllow: /no/caser/wifi-ee\nAllow: /en/case-studies/sisu\nAllow: /et/tood/sisu\nAllow: /fi/tyot/sisu\nAllow: /sv/fallstudier/sisu\nAllow: /da/cases/sisu\nAllow: /no/caser/sisu\nAllow: /en/case-studies/client-desk\nAllow: /et/tood/client-desk\nAllow: /fi/tyot/client-desk\nAllow: /sv/fallstudier/client-desk\nAllow: /da/cases/client-desk\nAllow: /no/caser/client-desk\nAllow: /en/case-studies/haam-bi\nAllow: /et/tood/haam-bi\nAllow: /fi/tyot/haam-bi\nAllow: /sv/fallstudier/haam-bi\nAllow: /da/cases/haam-bi\nAllow: /no/caser/haam-bi\nAllow: /en/case-studies/product-studio\nAllow: /et/tood/product-studio\nAllow: /fi/tyot/product-studio\nAllow: /sv/fallstudier/product-studio\nAllow: /da/cases/product-studio\nAllow: /no/caser/product-studio\nAllow: /en/case-studies/compass\nAllow: /et/tood/compass\nAllow: /fi/tyot/compass\nAllow: /sv/fallstudier/compass\nAllow: /da/cases/compass\nAllow: /no/caser/compass\nAllow: /en/case-studies/consistency\nAllow: /et/tood/consistency\nAllow: /fi/tyot/consistency\nAllow: /sv/fallstudier/consistency\nAllow: /da/cases/consistency\nAllow: /no/caser/consistency\nAllow: /en/case-studies/air\nAllow: /et/tood/air\nAllow: /fi/tyot/air\nAllow: /sv/fallstudier/air\nAllow: /da/cases/air\nAllow: /no/caser/air\nAllow: /en/case-studies/speaking\nAllow: /et/tood/speaking\nAllow: /fi/tyot/speaking\nAllow: /sv/fallstudier/speaking\nAllow: /da/cases/speaking\nAllow: /no/caser/speaking\nAllow: /en/case-studies/swimmable-cities\nAllow: /et/tood/swimmable-cities\nAllow: /fi/tyot/swimmable-cities\nAllow: /sv/fallstudier/swimmable-cities\nAllow: /da/cases/swimmable-cities\nAllow: /no/caser/swimmable-cities\nAllow: /en/interaction-design-storytelling\nAllow: /et/interaction-design-storytelling\nAllow: /fi/interaction-design-storytelling\nAllow: /sv/interaction-design-storytelling\nAllow: /da/interaction-design-storytelling\nAllow: /no/interaction-design-storytelling\nAllow: /en/skills/legacy-modernization\nAllow: /et/skills/legacy-modernization\nAllow: /fi/skills/legacy-modernization\nAllow: /sv/skills/legacy-modernization\nAllow: /da/skills/legacy-modernization\nAllow: /no/skills/legacy-modernization\nAllow: /en/start\nAllow: /et/alusta\nAllow: /fi/aloita\nAllow: /sv/starta\nAllow: /da/start\nAllow: /no/start\nAllow: /profile/kris.haamer\nAllow: /sitemap.xml\nAllow: /robots.txt\nAllow: /llms.txt\nAllow: /llms-full.txt\nDisallow: /\n\nHost: https://www.haam.co\nSitemap: https://www.haam.co/sitemap.xml\n"
  },
  "completedAt": "2026-10-23T02:25:30.901Z",
  "performanceStartedAt": "2026-10-23T02:05:47.470Z",
  "performanceCompletedAt": "2026-10-23T02:25:30.901Z",
  "provenance": {
    "auditCheckout": "f07903358eeb52dcb608548016c15f71bea7328c",
    "deployedRevision": null,
    "lockfileSha256": "4bad1b5bc49e0f5530ecc56eb8740d615a5b576fa6d951ed77e0413f27348a9f",
    "machine": "Apple Silicon macOS; native arm64 Node and Chrome",
    "network": "Audit machine in Taiwan; public internet; server caches may be warm",
    "collection": "Other read-only browser checks ran during this initial Lighthouse collection. Machine load and internet variability were not controlled.",
    "qualityPage": "New quality report page verified separately; not included in this production snapshot"
  },
  "dependencies": {
    "checkedAt": "2026-10-23T02:25:59.390Z",
    "scope": "Workspace production dependencies, including web and iOS; not deployed-server inventory",
    "counts": {
      "info": 0,
      "low": 1,
      "moderate": 18,
      "high": 45,
      "critical": 6
    },
    "advisories": [
      {
        "package": "postcss",
        "severity": "moderate",
        "title": "PostCSS has XSS via Unescaped </style> in its CSS Stringify Output",
        "url": "https://github.com/advisories/GHSA-qx2v-qp2m-jg93",
        "versions": [
          "8.4.31"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=8.5.10"
      },
      {
        "package": "uuid",
        "severity": "moderate",
        "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
        "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
        "versions": [
          "7.0.3"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=11.1.1"
      },
      {
        "package": "sharp",
        "severity": "high",
        "title": "sharp inherited vulnerabilities in libvips: CVE-2026-33327, CVE-2026-33328, CVE-2026-35590, CVE-2026-35591",
        "url": "https://github.com/advisories/GHSA-f88m-g3jw-g9cj",
        "versions": [
          "0.34.5"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=0.35.0"
      },
      {
        "package": "next",
        "severity": "high",
        "title": "Next.js: Middleware / Proxy bypass in App Router applications using Turbopack and single locale",
        "url": "https://github.com/advisories/GHSA-6gpp-xcg3-4w24",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "high",
        "title": "Next.js: Denial of Service in App Router using Server Actions",
        "url": "https://github.com/advisories/GHSA-m99w-x7hq-7vfj",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "high",
        "title": "Next.js: Server-Side Request Forgery in Server Actions on custom servers",
        "url": "https://github.com/advisories/GHSA-89xv-2m56-2m9x",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js: Cache confusion of response bodies for requests with bodies",
        "url": "https://github.com/advisories/GHSA-68g3-v927-f742",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js: Cache confusion of response bodies for requests with bodies containing invalid UTF-8 byte sequences",
        "url": "https://github.com/advisories/GHSA-4633-3j49-mh5q",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js: Unbounded Server Action payload in Edge runtime",
        "url": "https://github.com/advisories/GHSA-4c39-4ccg-62r3",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "high",
        "title": "Next.js: Server-Side Request Forgery in rewrites via attacker-controlled destination hostname",
        "url": "https://github.com/advisories/GHSA-p9j2-gv94-2wf4",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js: Denial of Service in the Image Optimization API using SVGs",
        "url": "https://github.com/advisories/GHSA-q8wf-6r8g-63ch",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js: Unauthenticated disclosure of internal Server Function endpoints",
        "url": "https://github.com/advisories/GHSA-955p-x3mx-jcvp",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.2.11"
      },
      {
        "package": "postcss",
        "severity": "high",
        "title": "PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments",
        "url": "https://github.com/advisories/GHSA-6g55-p6wh-862q",
        "versions": [
          "8.4.31"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=8.5.12"
      },
      {
        "package": "brace-expansion",
        "severity": "high",
        "title": "brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash",
        "url": "https://github.com/advisories/GHSA-mh99-v99m-4gvg",
        "versions": [
          "5.0.7"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=5.0.8"
      },
      {
        "package": "postcss",
        "severity": "moderate",
        "title": "PostCSS: incomplete fix of GHSA-6g55-p6wh-862q — attacker-controlled sourceMappingURL reads arbitrary .map files when `from` is unset",
        "url": "https://github.com/advisories/GHSA-fxqj-rqcc-2cmp",
        "versions": [
          "8.5.19",
          "8.4.31"
        ],
        "workspace": [
          "ios",
          "web"
        ],
        "patchedVersions": ">=8.5.23"
      },
      {
        "package": "brace-expansion",
        "severity": "high",
        "title": "brace-expansion: DoS via unbounded intermediate arrays, bypassing the CVE-2026-14257 mitigation",
        "url": "https://github.com/advisories/GHSA-rgw5-rvv9-x895",
        "versions": [
          "5.0.7"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=5.0.9"
      },
      {
        "package": "js-yaml",
        "severity": "high",
        "title": "JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported",
        "url": "https://github.com/advisories/GHSA-5p4m-2wfm-xmqj",
        "versions": [
          "4.3.0"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=4.3.1"
      },
      {
        "package": "nanoid",
        "severity": "high",
        "title": "nanoid: custom generators can loop indefinitely when size is zero",
        "url": "https://github.com/advisories/GHSA-2v37-7h3g-55p8",
        "versions": [
          "3.3.16"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=3.3.18"
      },
      {
        "package": "postcss",
        "severity": "high",
        "title": "PostCSS: Path Traversal in Previous Source Map Auto-Loading (sourceMappingURL) leads to Arbitrary .map File Disclosure",
        "url": "https://github.com/advisories/GHSA-r28c-9q8g-f849",
        "versions": [
          "8.4.31"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=8.5.18"
      },
      {
        "package": "decode-uri-component",
        "severity": "moderate",
        "title": "decode-uri-component: Denial of service via exponential decoding of malformed percent-encoded input",
        "url": "https://github.com/advisories/GHSA-vcc3-ghjq-m6fr",
        "versions": [
          "0.2.2"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.4.3"
      },
      {
        "package": "browserslist",
        "severity": "high",
        "title": "Browserslist: Unbounded memory growth (no cache eviction) via distinct query results, leading to eventual OOM",
        "url": "https://github.com/advisories/GHSA-c83g-rgw3-j3cx",
        "versions": [
          "4.28.6"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=4.28.7"
      },
      {
        "package": "browserslist",
        "severity": "high",
        "title": "Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats)",
        "url": "https://github.com/advisories/GHSA-73wf-gq98-2v4g",
        "versions": [
          "4.28.6"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=4.28.7"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "moderate",
        "title": "xmldom: XML fragment injection via invalid EntityReference.nodeName during requireWellFormed serialization",
        "url": "https://github.com/advisories/GHSA-6gmq-8vp8-gcm6",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "moderate",
        "title": "xmldom: XML fragment injection via invalid EntityReference.nodeName during requireWellFormed serialization",
        "url": "https://github.com/advisories/GHSA-6gmq-8vp8-gcm6",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: HTML raw-text closing-tag case mismatch causes output amplification",
        "url": "https://github.com/advisories/GHSA-6mj3-qw4j-hgrw",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "next",
        "severity": "critical",
        "title": "Next.js: Unauthenticated Remote Code Execution on windows-hosted servers",
        "url": "https://github.com/advisories/GHSA-p293-qw3h-jr36",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.3"
      },
      {
        "package": "baseline-browser-mapping",
        "severity": "moderate",
        "title": "baseline-browser-mapping process termination on invalid input causes denial of service",
        "url": "https://github.com/advisories/GHSA-w5vr-8v7q-w6rv",
        "versions": [
          "2.10.43"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=2.11.0"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom PI grammar regex ReDoS: quadratic backtracking on unterminated processing instructions",
        "url": "https://github.com/advisories/GHSA-g53g-w8rj-fmg7",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.11"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Element name injection via createElement() bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-w2rr-34g9-rvrj",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.14"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Element name injection via createElement() bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-w2rr-34g9-rvrj",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.11"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Attribute name injection via setAttribute() bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-4w3w-2rp5-g8jm",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.14"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Attribute name injection via setAttribute() bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-4w3w-2rp5-g8jm",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.11"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Processing Instruction Target Injection Bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-c7q8-3ch8-vqpv",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Processing Instruction Target Injection Bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-c7q8-3ch8-vqpv",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: DocType `name` Injection Bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-27p8-2357-5qqv",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: DocType `name` Injection Bypasses requireWellFormed",
        "url": "https://github.com/advisories/GHSA-27p8-2357-5qqv",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Creation-time XML Name/QName validation is bypassable via an embedded line terminator, allowing injection on the default serialization path",
        "url": "https://github.com/advisories/GHSA-3px3-54cx-rmw9",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: requireWellFormed DocType publicId/systemId validation is bypassable via an embedded line terminator",
        "url": "https://github.com/advisories/GHSA-vr34-hp96-76pp",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "moderate",
        "title": "xmldom: Parser silently accepts a not-well-formed end tag whose name is followed by a line break and trailing content",
        "url": "https://github.com/advisories/GHSA-6h8r-xr42-gp59",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "moderate",
        "title": "xmldom: Parser silently accepts a not-well-formed end tag whose name is followed by a line break and trailing content",
        "url": "https://github.com/advisories/GHSA-6h8r-xr42-gp59",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Quadratic-time attribute deduplication",
        "url": "https://github.com/advisories/GHSA-8344-3jmq-59r6",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Quadratic-time attribute deduplication",
        "url": "https://github.com/advisories/GHSA-8344-3jmq-59r6",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: End-tag Whitespace-Trim Regex ReDoS — quadratic backtracking in the 0.8.x end-tag parser",
        "url": "https://github.com/advisories/GHSA-x4fp-j954-r2f4",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Quadratic-memory consumption",
        "url": "https://github.com/advisories/GHSA-965w-775f-mr7g",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Quadratic-memory consumption",
        "url": "https://github.com/advisories/GHSA-965w-775f-mr7g",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Quadratic-time parsing via the malformed-input recovery path — `parseElementStartPart` re-scan and `normalize()` adjacent-text merge",
        "url": "https://github.com/advisories/GHSA-93r5-fhx6-vmg9",
        "versions": [
          "0.9.10"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.9.12"
      },
      {
        "package": "@xmldom/xmldom",
        "severity": "high",
        "title": "xmldom: Quadratic-time parsing via the malformed-input recovery path — `parseElementStartPart` re-scan and `normalize()` adjacent-text merge",
        "url": "https://github.com/advisories/GHSA-93r5-fhx6-vmg9",
        "versions": [
          "0.8.13"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=0.8.15"
      },
      {
        "package": "sharp",
        "severity": "high",
        "title": "sharp: Vulnerabilities in libheif: GHSA-g89c-p67h-r497 and GHSA-2jg2-4ch7-h545",
        "url": "https://github.com/advisories/GHSA-rgj7-g3m4-5g8c",
        "versions": [
          "0.34.5"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=0.35.4"
      },
      {
        "package": "js-yaml",
        "severity": "high",
        "title": "js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources",
        "url": "https://github.com/advisories/GHSA-2883-xcg3-v3hh",
        "versions": [
          "4.3.0"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=4.3.2"
      },
      {
        "package": "next",
        "severity": "critical",
        "title": "Next.js: Unauthenticated Remote Code Execution in Image Optimization API when AVIF files are used",
        "url": "https://github.com/advisories/GHSA-2xp9-vwfh-vxw4",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.3"
      },
      {
        "package": "image-size",
        "severity": "high",
        "title": "image-size: JXL and HEIF parsers allow denial of service through infinite loops",
        "url": "https://github.com/advisories/GHSA-5p2g-fcmc-qvqq",
        "versions": [
          "1.2.1"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=2.0.3"
      },
      {
        "package": "image-size",
        "severity": "high",
        "title": "image-size: ICNS parser allows denial of service through an infinite loop",
        "url": "https://github.com/advisories/GHSA-w3rx-r6r6-pgpr",
        "versions": [
          "1.2.1"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=2.0.3"
      },
      {
        "package": "brace-expansion",
        "severity": "moderate",
        "title": "brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service",
        "url": "https://github.com/advisories/GHSA-q2hr-2g5m-vwhr",
        "versions": [
          "5.0.7"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=5.0.12"
      },
      {
        "package": "brace-expansion",
        "severity": "high",
        "title": "brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion",
        "url": "https://github.com/advisories/GHSA-qhr7-859c-m2p7",
        "versions": [
          "5.0.7"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=5.0.11"
      },
      {
        "package": "brace-expansion",
        "severity": "high",
        "title": "brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion",
        "url": "https://github.com/advisories/GHSA-6j4f-fj2g-mc7p",
        "versions": [
          "5.0.7"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=5.0.10"
      },
      {
        "package": "next",
        "severity": "critical",
        "title": "Next.js: Remote Code Execution in next/og ImageResponse",
        "url": "https://github.com/advisories/GHSA-vcvr-r3jv-pc5j",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.6"
      },
      {
        "package": "node-forge",
        "severity": "high",
        "title": "node-forge RSA PKCS#1 v1.5 signature verification accepts extra nested DigestAlgorithm elements",
        "url": "https://github.com/advisories/GHSA-86w9-cpqp-85rv",
        "versions": [
          "1.4.0"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=1.4.1"
      },
      {
        "package": "braces",
        "severity": "high",
        "title": "braces vulnerable to stack-exhaustion denial of service through deeply nested patterns",
        "url": "https://github.com/advisories/GHSA-vfj7-8cjw-p6xm",
        "versions": [
          "3.0.3"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=3.0.4"
      },
      {
        "package": "source-map-js",
        "severity": "high",
        "title": "source-map-js allows event-loop denial of service through indexed source-map section offsets",
        "url": "https://github.com/advisories/GHSA-68fv-2mgg-jv7q",
        "versions": [
          "1.2.1"
        ],
        "workspace": [
          "ios",
          "web"
        ],
        "patchedVersions": ">=1.2.2"
      },
      {
        "package": "compression",
        "severity": "high",
        "title": "compression vulnerable to Denial of Service via memory leak on premature response close",
        "url": "https://github.com/advisories/GHSA-vc2v-76pw-4v95",
        "versions": [
          "1.8.1"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=1.8.2"
      },
      {
        "package": "sharp",
        "severity": "high",
        "title": "sharp : Vulnerability in librsvg dependency CVE-2026-96889",
        "url": "https://github.com/advisories/GHSA-wq5f-xc86-pv6w",
        "versions": [
          "0.34.5"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=0.35.5"
      },
      {
        "package": "shell-quote",
        "severity": "critical",
        "title": "shell-quote: `quote()` command injection via a line terminator in a token after a `{ comment }` token",
        "url": "https://github.com/advisories/GHSA-pqg4-j6r4-53mv",
        "versions": [
          "1.10.0"
        ],
        "workspace": [
          "ios"
        ],
        "patchedVersions": ">=1.11.0"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js has cache poisoning of SSG and ISR pages in self-hosted applications",
        "url": "https://github.com/advisories/GHSA-4jqv-mc3x-m676",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.8"
      },
      {
        "package": "next",
        "severity": "low",
        "title": "Next.js has information disclosure in development server's Model Context Protocol endpoint",
        "url": "https://github.com/advisories/GHSA-39w2-rjm5-chcv",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.8"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js has information disclosure in App Router metadata image routes via dynamicParams bypass",
        "url": "https://github.com/advisories/GHSA-f87g-xv8r-7p7x",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.8"
      },
      {
        "package": "next",
        "severity": "moderate",
        "title": "Next.js has cache poisoning in SSG/ISR rendering that leads to cross-user content substitution and persistent denial of service",
        "url": "https://github.com/advisories/GHSA-mcj8-r9mp-w47p",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.8"
      },
      {
        "package": "next",
        "severity": "high",
        "title": "Next.js has Server-Side Request Forgery in Image Optimization",
        "url": "https://github.com/advisories/GHSA-cjq9-62q9-8jv4",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.3.8"
      },
      {
        "package": "next",
        "severity": "critical",
        "title": "Next.js: Unauthenticated Remote Code Execution in Image Optimization API when SVG files are used",
        "url": "https://github.com/advisories/GHSA-2464-fhr4-w9xw",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.4.1"
      },
      {
        "package": "next",
        "severity": "high",
        "title": "Next.js: Denial of Service in App Router using Server Actions",
        "url": "https://github.com/advisories/GHSA-p3m5-59mp-jv5r",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.4.1"
      },
      {
        "package": "next",
        "severity": "critical",
        "title": "Next.js: Unauthenticated Remote Code Execution in `use cache` functions returning typed arrays",
        "url": "https://github.com/advisories/GHSA-673q-mjm6-r5xr",
        "versions": [
          "16.2.10"
        ],
        "workspace": [
          "web"
        ],
        "patchedVersions": ">=16.4.1"
      }
    ]
  }
}
