{
  "url": "https://okxxx1.com",
  "auditedAt": "2026-07-20T16:36:04.989Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete agentic audit of five representative page archetypes plus an HTTP failure state. Account/payment/auth routes were not covered because they are not exposed in the public journey; those contextual checks are explicitly N/A.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered custom/legacy JavaScript",
    "notes": "Public adult video catalogue behind an AgeGo verification overlay. Content is substantially server-rendered. The repository web-uplift.json describes only the local playground and was not applied to this unrelated remote site."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "curl robots/sitemap/manifest"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "forms",
    "performance",
    "optimize-image-priority",
    "security",
    "privacy",
    "same-document-transitions",
    "declarative-dialog-popover-control",
    "fluid-scaling",
    "improve-text-layout-and-legibility",
    "identify-heavy-scripts",
    "full-session-analytics",
    "translator",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-headers.txt",
      "caption": "404 headers",
      "findingIds": [
        "F11",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe",
      "findingIds": [
        "F11",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/accessibility-probe.json",
      "caption": "accessibility probe",
      "findingIds": [
        "F10",
        "F16",
        "F18",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/contrast-preference-probe.json",
      "caption": "contrast preference probe",
      "findingIds": [
        "F02",
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/controls.json",
      "caption": "controls",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F23",
        "F24"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F23",
        "F25"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "heap post",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-after-age.png",
      "caption": "home after age",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-content.png",
      "caption": "home content",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F01",
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F06",
        "F17"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-underlay.png",
      "caption": "home underlay",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F16",
        "F20",
        "F29"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/layout-mobile.json",
      "caption": "layout mobile",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-details.json",
      "caption": "lighthouse details",
      "findingIds": [
        "F02",
        "F16",
        "F17",
        "F21"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15",
        "F20",
        "F21",
        "F29",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/manifest.json",
      "caption": "manifest",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/modern-ui-probe.json",
      "caption": "modern ui probe",
      "findingIds": [
        "F03",
        "F04",
        "F05",
        "F07",
        "F09"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/network-summary.json",
      "caption": "network summary",
      "findingIds": [
        "F06",
        "F08",
        "F14",
        "F15",
        "F24",
        "F28",
        "F30",
        "F31"
      ]
    },
    {
      "type": "har",
      "path": "evidence/network.har",
      "caption": "network",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/platform-features.json",
      "caption": "platform features",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/popular-content.png",
      "caption": "popular content",
      "findingIds": [
        "F26"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/popular-dom.json",
      "caption": "popular dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/privacy-content.png",
      "caption": "privacy content",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/privacy-dom.json",
      "caption": "privacy dom",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/recon-rich.json",
      "caption": "recon rich",
      "findingIds": [
        "F01",
        "F05",
        "F06",
        "F07",
        "F08",
        "F22",
        "F26",
        "F28"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/site-capabilities.json",
      "caption": "site capabilities",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap-headers.txt",
      "caption": "sitemap headers",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap",
      "findingIds": [
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/tags-content.png",
      "caption": "tags content",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/tags-dom.json",
      "caption": "tags dom",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/tags-mobile-underlay.png",
      "caption": "tags mobile underlay",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/trace-summary.json",
      "caption": "trace summary",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/trace.json",
      "caption": "trace",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F08",
        "F24",
        "F28",
        "F31"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/video-content.png",
      "caption": "video content",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/video-dom.json",
      "caption": "video dom",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/video-links.json",
      "caption": "video links",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/video-probe.json",
      "caption": "video probe",
      "findingIds": [
        "F18",
        "F19"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/video-underlay.png",
      "caption": "video underlay",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot or computed background under an emulated prefers-color-scheme: dark condition will reveal whether surfaces re-tint; the page CSS / a color-scheme declaration is corroborating evidence. The model chooses the method.",
      "evidence": "The dark-condition capture retains the same fixed dark age panel and blurred light page treatment; the probe reports `color-scheme: normal` and no site colour-scheme adaptation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/recon-rich.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "a transition video, or an in-page probe of getAnimations()/computed animation under an emulated prefers-reduced-motion: reduce condition, can show whether motion stops. The model chooses.",
      "evidence": "With `prefers-reduced-motion: reduce`, `document.getAnimations()` returned an empty list; no auto-advance motion was observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot under emulated prefers-contrast: more / forced-colors, or an axe/contrast probe, can show whether controls and text survive. The model chooses.",
      "evidence": "Under `prefers-contrast: more`, the probe reports the focused button outline as `none`; Lighthouse also identifies multiple 2.35–3.16:1 text contrast failures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/contrast-preference-probe.json",
        "evidence/lighthouse-details.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "a transition video of a route/state change shows whether it animates; the page source / ::view-transition usage corroborates. The model chooses.",
      "evidence": "The UI probe found no `document.startViewTransition` use; navigation is a conventional multi-page anchor flow and custom overlays swap state without a transition.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/modern-ui-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No scroll-linked animation or scrollytelling surface exists on the representative templates, so there is no scroll animation implementation to assess.",
      "reason": "No scroll-linked animation or scrollytelling surface exists on the representative templates, so there is no scroll animation implementation to assess."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "CSS inspection for scroll-snap / overscroll-behavior / physics-based easing vs custom pointermove listeners. The model chooses.",
      "evidence": "Representative pages use native scrolling and links; no custom pointer-driven gesture layer or scroll-snap override was found.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "a transition video of scrolling, or CSS inspection for scroll-state container queries. The model chooses.",
      "evidence": "The mobile layout is 22,604px tall while the UI probe found zero sticky elements; no progress, shrinking header, or position-aware chrome was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/modern-ui-probe.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "medium",
      "method": "CSS inspection for anchor-name / position-anchor / position-try on overlays; a screenshot of an open overlay near a viewport edge can show drift. The model chooses.",
      "evidence": "The rendered DOM has a custom `.lang_trigger` and four custom fixed layers, but zero popovers/dialogs; the gate and banners are manually layered at high z-index.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/modern-ui-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "CSS inspection for ::highlight / scroll-marker; a transition video can show whether attention is cued after navigation. The model chooses.",
      "evidence": "Visible global navigation, current-page headings and descriptive taxonomy links provide clear destination cues across covered templates.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot on load, or a DOM probe for full-viewport overlays present before interaction. The model chooses.",
      "evidence": "The first viewport is entirely occupied by the age overlay; DOM/network evidence also shows `popunder1000.js`, multiple ad-provider scripts, a cookie banner and fixed ad layers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/recon-rich.json",
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "medium",
      "method": "DOM/source inspection for popover / <dialog> / <details> vs custom overlay divs with manual dismiss handling. The model chooses.",
      "evidence": "The UI probe found 0 dialogs, 0 popovers and 0 details while the DOM contains custom `age-popup`, `cookiesBanner`, ad layers and `agego-overlay-container`.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/modern-ui-probe.json",
        "evidence/recon-rich.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot plus layout metrics can show the proportion of the viewport given to chrome vs content. The model chooses.",
      "evidence": "Recon found multiple ad iframes and fixed ad layers; the HAR records 116 third-party requests across 15 origins before the user reaches content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/network-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "layout metrics (scrollWidth vs innerWidth) and a screenshot at an emulated narrow mobile viewport reveal overflow. The model chooses.",
      "evidence": "At 360x800, layout reports scrollWidth=clientWidth=360 and horizontalOverflowPx=0 with a viewport meta tag.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "CSS inspection for @container / container-type; a computed-style probe of the same component in a wide vs narrow container shows whether it adapts. The model chooses.",
      "evidence": "The UI probe found zero elements with a non-normal `container-type`; sampled tags/list/video components also report `container-type: normal`.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/modern-ui-probe.json",
        "evidence/tags-dom.json",
        "evidence/video-dom.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "a focus probe (focus an element, read the computed outline) or an axe target-size check; a screenshot of a focused control corroborates. The model chooses.",
      "evidence": "The focus probe found the cookie OK and search submit buttons with `outline: none`; many metadata links are only 18–20px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/accessibility-probe.json",
        "evidence/contrast-preference-probe.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "screenshot the first viewport and key scrolled states; inspect heading structure, nav labels, button text, and visual hierarchy; a task walkthrough can show whether the next action is obvious. The model chooses.",
      "evidence": "The entry gate clearly explains age requirements and exposes a dominant Verify Age action; underlying pages have descriptive titles/navigation.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "run the flow manually with screenshots/DOM snapshots at each step; compare expected vs actual path length; inspect form requirements, navigation continuity, and blockers. The model chooses.",
      "evidence": "The age gate exposes explicit adult/underage branches and the server-rendered catalogue, listings and detail links are present behind it.",
      "pathIds": [
        "home",
        "video"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "medium",
      "method": "exercise network delay/failure, invalid input, empty data and success states; screenshot the state messaging and recovery controls; inspect whether browser history and focus remain sensible. The model chooses.",
      "evidence": "The invalid-route probe returns only “Not Found / The requested URL was not found on this server” and exposes zero links.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-headers.txt"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse reports LCP/CLS/TBT directly and the model may run it; layout metrics + a layout-shift observer + a long-task observer (the evidence primitives) give the same signal first-party. The model chooses.",
      "evidence": "Lighthouse measured LCP 6.7s, TBT 390ms and performance 0.55; the independent trace measured LCP 3.36s and 196ms blocking time.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/trace-summary.json",
        "evidence/trace.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "the layout primitive's CLS observer captures shifts; a transition video of the first seconds shows content jumping. The model chooses.",
      "evidence": "The mobile layout observer recorded CLS 0 with no layout-shift entries over the observation window.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "the layout primitive records long tasks; a heap summary shows the object population; Lighthouse reports TBT. The model chooses.",
      "evidence": "The trace recorded a 240ms long task and 196ms TBT; Lighthouse reported 3.4s of main-thread work and 390ms TBT.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trace-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary can reveal cache headers, redirects, render-blocking candidates, weight offenders and dependency shape; a trace/Lighthouse insight report can corroborate LCP discovery, render-blocking, font-display and document latency. The model chooses.",
      "evidence": "Lighthouse estimates 1.82s savings from render-blocking requests; HAR identifies parser-inserted synchronous scripts, and Lighthouse flags cache/font/image delivery opportunities.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/code-coverage style evidence can flag unused JS/CSS, duplicated JavaScript and legacy code; a HAR summary shows third-party byte cost and request count. The model chooses.",
      "evidence": "Lighthouse estimates 874KiB of unused JavaScript and 53KiB of legacy JavaScript; the HAR loads 18 scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/network-summary.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core (injectable via the evaluate primitive) or Lighthouse's a11y audits enumerate these; a DOM probe of the accessibility-relevant attributes is a first-party alternative. The model chooses.",
      "evidence": "Lighthouse fails image-alt, link-name and frame-title; the direct probe finds an unlabelled search input and untitled iframes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-details.json",
        "evidence/accessibility-probe.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe contrast rules, a Lighthouse contrast audit, or an in-page probe computing contrast ratios from computed colours. The model chooses.",
      "evidence": "Lighthouse reports repeated 2.35–2.45:1 blue-on-white failures and a 3.16:1 age-verification label.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-details.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe/Lighthouse structural audits; a focus-walk probe (tab through, read activeElement + computed outline) is a first-party alternative. The model chooses.",
      "evidence": "Direct focus testing found buttons with no outline; the video detail has no H1, while its player is the primary content surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/accessibility-probe.json",
        "evidence/video-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot of body and heading text, plus CSS inspection for text-wrap / text alignment / font fallback handling. The model chooses.",
      "evidence": "Screenshots and computed styles show 16px policy/body text with readable line spacing and no horizontal clipping on the sampled templates.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/axe target-size, meta-viewport and media-caption audits are useful signals; screenshots at narrow and zoomed conditions plus DOM/media inspection can corroborate. The model chooses.",
      "evidence": "The direct probe lists many 18–20px-high targets; the representative video has zero `<track>` captions. The viewport allows scaling, but those failures remain.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/accessibility-probe.json",
        "evidence/video-probe.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "capture Runtime/Log CDP events, or a probe that reads collected errors; Lighthouse reports this too. The model chooses.",
      "evidence": "Lighthouse did not fail its errors-in-console audit in the clean load.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "medium",
      "method": "a DOM/source probe for doctype/charset/img dimensions; CSS inspection for repetition; Lighthouse best-practices audits cover the rest. The model chooses.",
      "evidence": "Lighthouse fails image aspect ratio and partially fails unsized images; the images primitive finds 2 missing dimensions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "medium",
      "method": "Lighthouse best-practices audits and DevTools inspector/deprecation signals can surface these; DOM/source probes can verify paste handlers and prompt timing. The model chooses.",
      "evidence": "Lighthouse reports one deprecated-API warning and fails the Inspector Issues audit.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-details.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe reads <title> and meta[name=description]; Lighthouse SEO audits cover the same ground. The model chooses.",
      "evidence": "Homepage and video probes show descriptive, route-specific titles and non-empty meta descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/video-probe.json",
        "evidence/site-capabilities.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe for anchor hrefs, viewport meta, and robots; Lighthouse SEO audits corroborate. The model chooses.",
      "evidence": "Discoverability found 87% raw/rendered content overlap and a non-shell page; real href links, viewport metadata and permissive robots are present.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "medium",
      "method": "inspect response status and headers, <link rel=canonical>, hreflang links, robots meta, robots.txt and sitemap.xml; Lighthouse SEO audits cover several of these. The model chooses.",
      "evidence": "Canonical URLs, 200 status and robots.txt are present, but `/sitemap.xml` returns HTTP 200 with Content-Length 0.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/sitemap-headers.txt",
        "evidence/sitemap.xml",
        "evidence/robots.txt",
        "evidence/recon-rich.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "inspect JSON-LD/microdata and social preview tags against visible content; Lighthouse has a manual structured-data audit, and ad-hoc probes can parse schema.org blocks. The model chooses.",
      "evidence": "The video detail includes JSON-LD plus matching Open Graph title, description, image, URL and duration metadata.",
      "pathIds": [
        "home",
        "video"
      ],
      "artifacts": [
        "evidence/video-probe.json",
        "evidence/site-capabilities.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers / page protocol via an evaluate probe or the network layer; Lighthouse best-practices flags HTTPS and CSP issues. The model chooses.",
      "evidence": "Headers evidence finds no CSP, HSTS or nosniff; all four observed cookies lack Secure and use SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "inspect network requests and third-party origins; a probe of analytics/beacon calls. The model chooses.",
      "evidence": "The load contacts 15 third-party origins with 116 requests; known Google trackers and numerous ad origins run before content access.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/network-summary.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "a probe for permission requests fired on load; source inspection for passkey / WebAuthn / navigator.credentials usage in auth flows. The model chooses.",
      "evidence": "No permission prompt fired on load and no public authentication flow is part of the representative journey; the browser capability alone is not treated as site usage.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers and browser security state; Lighthouse/DevTools security audits can corroborate HSTS, clickjacking, Trusted Types, origin isolation and third-party cookie findings. The model chooses.",
      "evidence": "Headers evidence shows no HSTS, Referrer-Policy, Permissions-Policy, CSP or nosniff; only X-Frame-Options is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "load with scripting disabled or compare a no-JS fetch of the HTML against the rendered page; check for Baseline-aware fallbacks in source. The model chooses.",
      "evidence": "Raw HTML returns 200 with 87% of rendered content tokens, title, H1 and description present without JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "medium",
      "method": "exercise menus near viewport edges with a screenshot; a probe of async/visibility behaviour. The model chooses.",
      "evidence": "Recon shows four high-z-index custom fixed layers and untitled ad frames; several captures show the gate panel before its content finishes, leaving an opaque blocking surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/popular-content.png",
        "evidence/home-dark.png"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "This public streaming catalogue is not presented as an offline-capable app; offline playback/installability is not a reasonable core requirement.",
      "reason": "This public streaming catalogue is not presented as an offline-capable app; offline playback/installability is not a reasonable core requirement."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "medium",
      "method": "simulate failed fetches/offline mode or inspect representative 404/500 routes; screenshots and DOM snapshots of error/loading/empty states show whether recovery is possible. The model chooses.",
      "evidence": "The tested 404 has no navigation, search, retry or home link, only the server’s generic error text.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-headers.txt"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe for <html lang>/dir and CSS inspection for logical vs physical properties. The model chooses.",
      "evidence": "The English page declares `lang=en-GB`, language variants are linked, and the LTR reading order is coherent; logical CSS properties are present.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "Representative routes do not expose prices, dates, calendars or locale-sensitive numeric input; language variants are separate hosts.",
      "reason": "Representative routes do not expose prices, dates, calendars or locale-sensitive numeric input; language variants are separate hosts."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No scheduled events, appointments or user-entered times appear in the covered journeys.",
      "reason": "No scheduled events, appointments or user-entered times appear in the covered journeys."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot of consent/upsell/cancel flows; source inspection for declarative button actions vs misleading controls. The model chooses.",
      "evidence": "Loaded source includes `popunder1000.js` and multiple ad-provider scripts; 116 third-party requests occur while the age wall blocks the core content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/network-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "exercise a form, submit invalid input, and observe timing and clarity of errors via a screenshot or a :user-invalid / aria-invalid probe. The model chooses.",
      "evidence": "The covered search form has no required fields or premature validation, and no blame-oriented validation behaviour was observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The only covered text input is site search; there are no address, payment, sign-in or sign-up fields requiring autofill tokens.",
      "reason": "The only covered text input is site search; there are no address, payment, sign-in or sign-up fields requiring autofill tokens."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No checkout, subscription, authentication or account-management flow is exposed in the representative public routes.",
      "reason": "No checkout, subscription, authentication or account-management flow is exposed in the representative public routes."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "inspect transferred image bytes vs displayed size; source inspection for modern formats and resolution handling. The model chooses.",
      "evidence": "The images audit finds 98/100 without srcset, 9 oversized and 10 legacy-format images; Lighthouse estimates 441KiB image savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "a long-task / network probe for background fetches and processing while idle or backgrounded. The model chooses.",
      "evidence": "HAR records 124 requests and 1.39MB in this capture, including 62 fetch/XHR calls; Lighthouse separately observes a 4.6MiB load and 874KiB unused JS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary shows third-party bytes, font/media weight and caching; screenshots/video reveal autoplay and decorative media; trace/layout evidence shows whether media/animation keeps work running. The model chooses.",
      "evidence": "116 of 124 HAR requests and 1.30MB of 1.39MB transferred are classified third-party; GTM alone transfers 161KB and 15 third-party origins run.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "The site exposes public media browsing, not a declared agent-facing transactional capability; absence of WebMCP is treated as an emerging opportunity, not a failure.",
      "reason": "The site exposes public media browsing, not a declared agent-facing transactional capability; absence of WebMCP is treated as an emerging opportunity, not a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative paths",
      "evidence": "No summarisation or generative task is part of the covered core journey, so on-device inference is not required.",
      "reason": "No summarisation or generative task is part of the covered core journey, so on-device inference is not required."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "compare heap snapshots for retained growth - a baseline, then one taken after repeating the interaction with `--interact` about 10x (the memory-tracer methodology: baseline -> repeat -> post -> compare). Performance.getMetrics (JSHeapUsedSize, Nodes) across the same before/after window is corroboration. If Chrome DevTools MCP is available, follow its memory-",
      "evidence": "After 10 language-menu toggles, heap self size differed by about 0.66MB (3.8%) with no evidence of unbounded retained growth; confidence is medium because captures use comparable fresh sessions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "a single `heap` summary's totals (nodeCount, totalSelfSizeBytes, constructor population) plus Performance.getMetrics (Nodes, JSHeapUsedSize) give the current footprint to judge against the page's purpose. Chrome DevTools MCP heap snapshots and memlab snapshot analysis can provide the same memory distribution when available. Read summaries or derived analysis",
      "evidence": "Heap summaries are about 17.2–17.9MB self size for a media catalogue page, proportionate to the loaded DOM and scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "the `heap` summary by constructor (Detached* nodes) compared across a before/after pair shows a growing detached-DOM population; an `evaluate` probe can sample listener/timer counts (e.g. getEventListeners-style counting, or instrumenting addEventListener/setInterval) before and after the repeated interaction to spot growth. Chrome DevTools MCP heap snapshot",
      "evidence": "Neither heap summary exposes a growing Detached* constructor among dominant populations; closures grew modestly in the exercised capture, not enough to establish a leak.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20",
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24",
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F29",
        "F30",
        "F31"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged outside this site’s covered intent."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/listing archetype and age-verification entry; represents video grids and primary browse journey.",
      "url": "https://okxxx1.com/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "popular",
      "description": "Popular listing archetype; selected to represent alternate ranked video grids.",
      "url": "https://okxxx1.com/popular/",
      "conditions": [
        "desktop",
        "age-verification overlay present"
      ],
      "result": "issues"
    },
    {
      "id": "tags",
      "description": "Taxonomy/index archetype; selected for dense navigation and mobile adaptation.",
      "url": "https://okxxx1.com/tags/",
      "conditions": [
        "desktop",
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "video",
      "description": "Video detail and playback archetype; selected as the primary content-consumption journey.",
      "url": "https://okxxx1.com/video/759746/",
      "conditions": [
        "desktop",
        "media/metadata inspection"
      ],
      "result": "issues"
    },
    {
      "id": "privacy",
      "description": "Long-form policy/content archetype; selected for trust, legibility and data-practice context.",
      "url": "https://okxxx1.com/privacy/",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Invalid-route recovery state; selected to test HTTP and user recovery behaviour.",
      "url": "https://okxxx1.com/this-route-does-not-exist-audit/",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "The site does not adapt to the user’s dark colour-scheme preference.",
      "evidence": "The dark-condition capture retains the same fixed dark age panel and blurred light page treatment; the probe reports `color-scheme: normal` and no site colour-scheme adaptation.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/recon-rich.json"
      ],
      "suggestedFix": "Declare `color-scheme: light dark` and define preference-driven surface/text tokens with `prefers-color-scheme` or `light-dark()`.",
      "effort": "small"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "High-contrast preferences do not preserve visible focus and sufficient contrast.",
      "evidence": "Under `prefers-contrast: more`, the probe reports the focused button outline as `none`; Lighthouse also identifies multiple 2.35–3.16:1 text contrast failures.",
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/contrast-preference-probe.json",
        "evidence/lighthouse-details.json"
      ],
      "suggestedFix": "Add a `prefers-contrast: more` treatment, retain system/forced colours, and provide a strong `:focus-visible` indicator.",
      "effort": "small"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Route and state changes do not use View Transitions.",
      "evidence": "The UI probe found no `document.startViewTransition` use; navigation is a conventional multi-page anchor flow and custom overlays swap state without a transition.",
      "artifacts": [
        "evidence/modern-ui-probe.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Use same-document or cross-document View Transitions for meaningful route/state continuity, with reduced-motion fallbacks.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-position-aware-elements",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Very long listings provide no scroll-state-aware navigation aid.",
      "evidence": "The mobile layout is 22,604px tall while the UI probe found zero sticky elements; no progress, shrinking header, or position-aware chrome was observed.",
      "artifacts": [
        "evidence/layout-mobile.json",
        "evidence/modern-ui-probe.json"
      ],
      "suggestedFix": "Add lightweight sticky/scroll-state-aware navigation or progress affordances on long listing and policy pages.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "medium",
      "summary": "Menus and overlays use custom positioning rather than semantic anchored primitives.",
      "evidence": "The rendered DOM has a custom `.lang_trigger` and four custom fixed layers, but zero popovers/dialogs; the gate and banners are manually layered at high z-index.",
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/modern-ui-probe.json"
      ],
      "suggestedFix": "Use Popover and CSS anchor positioning with fallback positions for transient menus; use dialog only for true modal flows.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Popunder/ad code and stacked full-screen UI interrupt content before the user can browse.",
      "evidence": "The first viewport is entirely occupied by the age overlay; DOM/network evidence also shows `popunder1000.js`, multiple ad-provider scripts, a cookie banner and fixed ad layers.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/recon-rich.json",
        "evidence/network-summary.json"
      ],
      "suggestedFix": "Keep the required age gate, but remove popunders, defer non-essential ads until after consent, and avoid stacking banners over it.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Dismissible UI is built from custom fixed divs rather than platform primitives.",
      "evidence": "The UI probe found 0 dialogs, 0 popovers and 0 details while the DOM contains custom `age-popup`, `cookiesBanner`, ad layers and `agego-overlay-container`.",
      "artifacts": [
        "evidence/modern-ui-probe.json",
        "evidence/recon-rich.json"
      ],
      "suggestedFix": "Rebuild transient banners with Popover/light-dismiss and modal flows with `<dialog>` plus explicit focus management.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Promotional chrome competes heavily with the core video content.",
      "evidence": "Recon found multiple ad iframes and fixed ad layers; the HAR records 116 third-party requests across 15 origins before the user reaches content.",
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/network-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Remove low-value ad placements and consolidate the header so content and search dominate each viewport.",
      "effort": "large"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "Components rely on page-level sizing rather than container-aware adaptation.",
      "evidence": "The UI probe found zero elements with a non-normal `container-type`; sampled tags/list/video components also report `container-type: normal`.",
      "artifacts": [
        "evidence/modern-ui-probe.json",
        "evidence/tags-dom.json",
        "evidence/video-dom.json"
      ],
      "suggestedFix": "Introduce container queries for reusable cards, taxonomy blocks and player metadata where components appear at different widths.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Some controls lack visible keyboard focus and many link targets are too short.",
      "evidence": "The focus probe found the cookie OK and search submit buttons with `outline: none`; many metadata links are only 18–20px high.",
      "artifacts": [
        "evidence/accessibility-probe.json",
        "evidence/contrast-preference-probe.json"
      ],
      "suggestedFix": "Add a clear `:focus-visible` ring and enlarge/pad compact links and icon controls to robust touch target sizes.",
      "effort": "small"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "medium",
      "summary": "The 404 state has no recovery route or useful next action.",
      "evidence": "The invalid-route probe returns only “Not Found / The requested URL was not found on this server” and exposes zero links.",
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-headers.txt"
      ],
      "suggestedFix": "Serve a branded 404 with search, home/popular links, and a clear recovery message while preserving the 404 status.",
      "effort": "small"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Load performance misses the good Core Web Vitals bar.",
      "evidence": "Lighthouse measured LCP 6.7s, TBT 390ms and performance 0.55; the independent trace measured LCP 3.36s and 196ms blocking time.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/trace-summary.json",
        "evidence/trace.json"
      ],
      "suggestedFix": "Prioritise the LCP resource, defer third-party scripts, and reduce render-blocking dependencies.",
      "effort": "large"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party and legacy scripting blocks the main thread.",
      "evidence": "The trace recorded a 240ms long task and 196ms TBT; Lighthouse reported 3.4s of main-thread work and 390ms TBT.",
      "artifacts": [
        "evidence/trace-summary.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Remove non-essential third-party JavaScript and split/defer remaining work away from startup.",
      "effort": "large"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Resource delivery has long blocking chains and weak cache/image delivery.",
      "evidence": "Lighthouse estimates 1.82s savings from render-blocking requests; HAR identifies parser-inserted synchronous scripts, and Lighthouse flags cache/font/image delivery opportunities.",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Defer parser-blocking scripts, set durable cache headers, preload only critical assets, and use `font-display` plus responsive image delivery.",
      "effort": "large"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The page ships substantial unused and legacy JavaScript.",
      "evidence": "Lighthouse estimates 874KiB of unused JavaScript and 53KiB of legacy JavaScript; the HAR loads 18 scripts.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/network-summary.json"
      ],
      "suggestedFix": "Delete duplicate/unused bundles, conditionally load features and ads, and serve a modern bundle.",
      "effort": "large"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Search, images, links and third-party frames have missing accessible names.",
      "evidence": "Lighthouse fails image-alt, link-name and frame-title; the direct probe finds an unlabelled search input and untitled iframes.",
      "artifacts": [
        "evidence/lighthouse-details.json",
        "evidence/accessibility-probe.json",
        "evidence/images.json"
      ],
      "suggestedFix": "Label search, name icon links/buttons, add meaningful alt text, and title or hide decorative iframes.",
      "effort": "small"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and essential controls fail WCAG contrast minimums.",
      "evidence": "Lighthouse reports repeated 2.35–2.45:1 blue-on-white failures and a 3.16:1 age-verification label.",
      "artifacts": [
        "evidence/lighthouse-details.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Darken accent colours or adjust backgrounds to meet 4.5:1 for normal text and validate all interaction states.",
      "effort": "small"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Focus visibility and document structure are inconsistent.",
      "evidence": "Direct focus testing found buttons with no outline; the video detail has no H1, while its player is the primary content surface.",
      "artifacts": [
        "evidence/accessibility-probe.json",
        "evidence/video-probe.json"
      ],
      "suggestedFix": "Provide visible `:focus-visible` styles, one descriptive H1 per detail page, landmarks, and a logical focus order.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Compact targets and captionless video reduce inclusive access.",
      "evidence": "The direct probe lists many 18–20px-high targets; the representative video has zero `<track>` captions. The viewport allows scaling, but those failures remain.",
      "artifacts": [
        "evidence/accessibility-probe.json",
        "evidence/video-probe.json"
      ],
      "suggestedFix": "Increase target hit areas and provide captions/transcripts for video, keeping user scaling enabled.",
      "effort": "large"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Several assets are unsized or displayed at the wrong aspect ratio.",
      "evidence": "Lighthouse fails image aspect ratio and partially fails unsized images; the images primitive finds 2 missing dimensions.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/images.json"
      ],
      "suggestedFix": "Set intrinsic width/height or `aspect-ratio` and generate correctly cropped responsive derivatives.",
      "effort": "medium"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Deprecated APIs and DevTools inspector issues remain.",
      "evidence": "Lighthouse reports one deprecated-API warning and fails the Inspector Issues audit.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-details.json"
      ],
      "suggestedFix": "Remove deprecated API use, resolve DevTools Issues, and verify BFCache/source-map health in a clean profile.",
      "effort": "medium"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "medium",
      "summary": "The sitemap endpoint is empty despite a large public catalogue.",
      "evidence": "Canonical URLs, 200 status and robots.txt are present, but `/sitemap.xml` returns HTTP 200 with Content-Length 0.",
      "artifacts": [
        "evidence/sitemap-headers.txt",
        "evidence/sitemap.xml",
        "evidence/robots.txt",
        "evidence/recon-rich.json"
      ],
      "suggestedFix": "Publish segmented XML sitemaps for videos, tags and models and reference them from robots.txt.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "critical",
      "confidence": "high",
      "summary": "Core security headers are missing and cookies are not Secure.",
      "evidence": "Headers evidence finds no CSP, HSTS or nosniff; all four observed cookies lack Secure and use SameSite=None.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Add a restrictive CSP, HSTS and nosniff, and set Secure plus the narrowest viable SameSite policy on every cookie.",
      "effort": "medium"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "critical",
      "confidence": "high",
      "summary": "The pre-consent third-party and tracking footprint is excessive.",
      "evidence": "The load contacts 15 third-party origins with 116 requests; known Google trackers and numerous ad origins run before content access.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/network-summary.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Block analytics/ads until informed consent, remove popunder/session-wide tracking, and minimise/batch remaining telemetry.",
      "effort": "large"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced privacy and isolation policies are largely absent.",
      "evidence": "Headers evidence shows no HSTS, Referrer-Policy, Permissions-Policy, CSP or nosniff; only X-Frame-Options is present.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy HSTS, Referrer-Policy, Permissions-Policy, CSP `frame-ancestors`, and consider Trusted Types for script-heavy surfaces.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "medium",
      "summary": "The startup experience depends on fragile custom overlays and third-party frames.",
      "evidence": "Recon shows four high-z-index custom fixed layers and untitled ad frames; several captures show the gate panel before its content finishes, leaving an opaque blocking surface.",
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/popular-content.png",
        "evidence/home-dark.png"
      ],
      "suggestedFix": "Reduce startup overlays, use platform top-layer primitives, add deterministic loading/error states, and isolate third-party failures.",
      "effort": "large"
    },
    {
      "id": "F27",
      "pathId": "not-found",
      "url": "https://okxxx1.com/",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "medium",
      "summary": "HTTP failure states are unbranded and unrecoverable.",
      "evidence": "The tested 404 has no navigation, search, retry or home link, only the server’s generic error text.",
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-headers.txt"
      ],
      "suggestedFix": "Provide intentional 404/network failure states with recovery controls and preserve user context.",
      "effort": "small"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Popunder advertising and pre-consent tracking undermine predictable, honest interaction.",
      "evidence": "Loaded source includes `popunder1000.js` and multiple ad-provider scripts; 116 third-party requests occur while the age wall blocks the core content.",
      "artifacts": [
        "evidence/recon-rich.json",
        "evidence/network-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Remove popunders, clearly label external promotions, and require explicit consent before non-essential tracking.",
      "effort": "large"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Images are not delivered responsively or in efficient formats.",
      "evidence": "The images audit finds 98/100 without srcset, 9 oversized and 10 legacy-format images; Lighthouse estimates 441KiB image savings.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Generate AVIF/WebP responsive derivatives, use `srcset`/`sizes`, and right-size each card image.",
      "effort": "medium"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "full-session-analytics",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The page performs disproportionate background/ad work before core content.",
      "evidence": "HAR records 124 requests and 1.39MB in this capture, including 62 fetch/XHR calls; Lighthouse separately observes a 4.6MiB load and 874KiB unused JS.",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Eliminate chatty ad/analytics requests, batch telemetry, and conditionally load code only when used.",
      "effort": "large"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://okxxx1.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "critical",
      "confidence": "high",
      "summary": "Third parties dominate the request and byte budget.",
      "evidence": "116 of 124 HAR requests and 1.30MB of 1.39MB transferred are classified third-party; GTM alone transfers 161KB and 15 third-party origins run.",
      "artifacts": [
        "evidence/network-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Set a strict third-party budget, remove low-value networks, self-host essential assets, and defer media/ads until user intent.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Remove pre-consent trackers/popunders and enforce a third-party budget",
      "priority": 1,
      "findingIds": [
        "F06",
        "F08",
        "F24",
        "F28",
        "F30",
        "F31"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Deploy CSP/HSTS/nosniff/privacy policies and secure cookie attributes",
      "priority": 2,
      "findingIds": [
        "F23",
        "F25"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Fix accessible names, contrast, focus, targets, headings and video captions",
      "priority": 3,
      "findingIds": [
        "F02",
        "F10",
        "F16",
        "F17",
        "F18",
        "F19"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Cut render-blocking/unused JavaScript and prioritise the LCP path",
      "priority": 4,
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Replace custom overlays with resilient semantic top-layer UI",
      "priority": 5,
      "findingIds": [
        "F05",
        "F07",
        "F26"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Serve responsive modern images with correct dimensions and aspect ratios",
      "priority": 6,
      "findingIds": [
        "F14",
        "F20",
        "F29"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Add dark/high-contrast preference treatments and robust focus styles",
      "priority": 7,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Publish a real sitemap and useful 404 recovery experience",
      "priority": 8,
      "findingIds": [
        "F11",
        "F22",
        "F27"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-20T16-36-04-989Z"
}
