{
  "url": "https://www.freepornvideo.sex",
  "auditedAt": "2026-07-22T17:15:52.146Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Complete atomic coverage across 58 checks. Six representative public/auth/error paths were inspected; authenticated account, payment, upload and moderation journeys were excluded because no credentials or source were supplied.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered PHP/KVS-style MPA with jQuery/Fancybox and a custom video player",
    "notes": "Public catalogue and detail templates are server-rendered. A third-party AgeVerif full-screen gate visually blocked all public screenshots, while rendered DOM and raw HTML remained inspectable."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "lighthouse",
    "heap-summary",
    "raw-http"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "css",
    "brand-consistent-forms",
    "accessibility",
    "directional-navigation-transitions",
    "scroll-entry-exit-effects",
    "scroll-progress-indicator",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "consistent-cross-document-transitions",
    "group-element-transitions",
    "parallax-scroll-effects",
    "scrollytelling",
    "carousel-slide-effects",
    "swipe-to-remove",
    "navigation-drawer",
    "stack-drill-down",
    "scroll-snap-realtime-feedback",
    "scroll-position-aware-elements",
    "pull-to-reveal",
    "scroll-target-on-load",
    "shrinking-header-on-scroll",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-toast-notifications",
    "css-layout",
    "carousel-snap-highlights",
    "defer-rendering-heavy-content",
    "html",
    "animate-to-from-top-layer",
    "performance",
    "faster-spa-view-transitions",
    "declarative-dialog-popover-control",
    "soft-edge-content-fade",
    "fluid-scaling",
    "size-aware-styling",
    "interactions-in-complex-layouts",
    "interactive-content-reveal",
    "improve-next-page-load-performance",
    "forms",
    "agentic-forms",
    "required-field-feedback",
    "autofill-payment-form",
    "security",
    "accessible-error-announcement",
    "platform-controls-dismiss-dialog",
    "model-partial-time-concepts",
    "format-human-readable-durations",
    "webmcp",
    "optimize-image-priority",
    "optimize-preload-priority",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "schedule-tasks-by-priority",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "interactive-content-in-3d-scenes",
    "expose-canvas-content-to-browser-features",
    "highlight-text-ranges",
    "branded-select-styling",
    "improve-text-layout-and-legibility",
    "visually-stable-mixed-fonts",
    "detect-initial-visibility-state",
    "flicker-free-client-side-ab-testing",
    "deliver-optimized-decorative-images",
    "scrollability-affordance-hints",
    "summarizer",
    "search-hidden-content",
    "privacy",
    "language-detection",
    "passkey-authentication",
    "full-session-analytics",
    "batch-analytics-events",
    "capture-location-agnostic-data",
    "passkey-reauthentication",
    "passkey-registration",
    "passkey-conditional-create",
    "passkeys",
    "design-token-reactivity",
    "persistent-app-tours",
    "translator",
    "precise-text-alignment",
    "support-global-calendar-systems",
    "calculate-event-differentials",
    "coordinate-global-events",
    "sequence-distributed-events",
    "validate-input-after-interaction",
    "select-menu-interaction",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-address-form",
    "resolution-optimized-pseudo-elements",
    "efficient-background-processing",
    "deprioritize-background-fetches",
    "agentic-javascript-tools",
    "language-model",
    "persistent-top-layer-ui",
    "defer-work-until-scroll-ends",
    "calculate-with-intrinsic-sizes",
    "move-dom-element-without-losing-state",
    "animate-element-entry-exit"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-headers.txt",
      "caption": "Audit evidence: 404-headers.txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/404-raw.html",
      "caption": "Audit evidence: 404-raw.html",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/categories-dom.json",
      "caption": "Audit evidence: categories-dom.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/categories-mobile.png",
      "caption": "Audit evidence: categories-mobile.png",
      "findingIds": [
        "F006"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Audit evidence: cookies.json",
      "findingIds": [
        "F024",
        "F025"
      ]
    },
    {
      "type": "other",
      "path": "evidence/detail-a11y-media-probe.json",
      "caption": "Audit evidence: detail-a11y-media-probe.json",
      "findingIds": [
        "F008",
        "F013",
        "F018",
        "F028",
        "F033"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-crawler.png",
      "caption": "Audit evidence: detail-discoverability-crawler.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-rendered.png",
      "caption": "Audit evidence: detail-discoverability-rendered.png",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/detail-discoverability.json",
      "caption": "Audit evidence: detail-discoverability.json",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "Audit evidence: detail-dom.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/detail-images.json",
      "caption": "Audit evidence: detail-images.json",
      "findingIds": [
        "F019",
        "F032"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/detail-mobile-layout.json",
      "caption": "Audit evidence: detail-mobile-layout.json",
      "findingIds": [
        "F012",
        "F018"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "Audit evidence: detail-mobile.png",
      "findingIds": [
        "F006",
        "F008"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/detail-summary.json",
      "caption": "Audit evidence: detail-summary.json",
      "findingIds": [
        "F013",
        "F014"
      ]
    },
    {
      "type": "har",
      "path": "evidence/detail.har",
      "caption": "Audit evidence: detail.har",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/error-404.png",
      "caption": "Audit evidence: error-404.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Audit evidence: headers.json",
      "findingIds": [
        "F024"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Audit evidence: heap-baseline.json",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "Audit evidence: heap-post-scroll.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-after-age-click.png",
      "caption": "Audit evidence: home-after-age-click.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "Audit evidence: home-contrast.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-curl-headers.txt",
      "caption": "Audit evidence: home-curl-headers.txt",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Audit evidence: home-dark.png",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Audit evidence: home-desktop.png",
      "findingIds": [
        "F006",
        "F007",
        "F028"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Audit evidence: home-discoverability-crawler.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Audit evidence: home-discoverability-rendered.png",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Audit evidence: home-discoverability.json",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Audit evidence: home-dom.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Audit evidence: home-images.json",
      "findingIds": [
        "F032",
        "F033"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Audit evidence: home-mobile-layout.json",
      "findingIds": [
        "F004"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Audit evidence: home-mobile.png",
      "findingIds": [
        "F006"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-platform-probe.json",
      "caption": "Audit evidence: home-platform-probe.json",
      "findingIds": [
        "F001",
        "F002",
        "F003",
        "F005",
        "F009",
        "F010",
        "F015",
        "F017",
        "F022",
        "F023",
        "F030"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-raw.html",
      "caption": "Audit evidence: home-raw.html",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "Audit evidence: home-recon.json",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Audit evidence: home-summary.json",
      "findingIds": [
        "F002",
        "F013",
        "F014",
        "F025",
        "F033",
        "F034"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Audit evidence: home-trace-summary.json",
      "findingIds": [
        "F011"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "Audit evidence: home-trace.json",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Audit evidence: home.har",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-detail.json",
      "caption": "Audit evidence: lighthouse-detail.json",
      "findingIds": [
        "F011",
        "F015",
        "F016",
        "F020",
        "F021"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "Audit evidence: lighthouse-home.json",
      "findingIds": [
        "F011",
        "F015",
        "F016",
        "F017",
        "F020",
        "F021",
        "F026"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/login-dom.json",
      "caption": "Audit evidence: login-dom.json",
      "findingIds": [
        "F007",
        "F027"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-probe.json",
      "caption": "Audit evidence: login-probe.json",
      "findingIds": [
        "F019",
        "F026",
        "F029",
        "F030",
        "F031"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/login.png",
      "caption": "Audit evidence: login.png",
      "findingIds": [
        "F019",
        "F027",
        "F031"
      ]
    },
    {
      "type": "other",
      "path": "evidence/memory-motion-media.json",
      "caption": "Audit evidence: memory-motion-media.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/overlay-structure.json",
      "caption": "Audit evidence: overlay-structure.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "Audit evidence: robots.txt",
      "findingIds": [
        "F022"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "Audit evidence: search-dom.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Audit evidence: secrets.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/site.webmanifest",
      "caption": "Audit evidence: site.webmanifest",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "Audit evidence: sitemap.xml",
      "findingIds": [
        "F022"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Audit evidence: trackers.json",
      "findingIds": [
        "F025",
        "F034"
      ]
    }
  ],
  "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": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "CSS inspection found no color-scheme, prefers-color-scheme or light-dark() support; the dark-emulated capture is visually identical to the default capture.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The page ships a 367,766-byte animated GIF while CSS inspection found no prefers-reduced-motion branch; the reduced-motion preference cannot suppress that animation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Forced-colors/prefers-contrast capture retained readable gate text, CTA border and focus indication.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "CSS inspection found no view-transition usage even though the site is an MPA with repeated listing-to-detail navigation.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "No scroll-linked animation, parallax, reveal or scroll-handler interaction was present on the representative templates, so there is no implementation to classify.",
      "reason": "No scroll-linked animation, parallax, reveal or scroll-handler interaction was present on the representative templates, so there is no implementation to classify."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "DOM/CSS inspection found no custom gesture surface or pointer-driven scroll replacement; the listing uses native document scrolling.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The homepage is 9,470 CSS pixels tall at 360px width, but CSS inspection found no scroll-state query, progress indicator or responsive sticky state.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "No tooltip or edge-positioned anchored menu was present on the representative public templates.",
      "reason": "No tooltip or edge-positioned anchored menu was present on the representative public templates."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The MPA uses abrupt route swaps and CSS inspection found no view-transition or highlight/scroll-marker treatment to show where context moved.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Desktop and mobile captures of home, categories, detail and 404 show a full-screen third-party AgeVerif gate. The only action is the vague label “Start”, with no visible age threshold, privacy explanation or alternate path.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/categories-mobile.png",
        "evidence/detail-mobile.png"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The blocking age gate is not exposed in the main DOM as a dialog, and login links rely on a custom Fancybox AJAX fragment rather than a resilient dialog or full page.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-dom.json"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The detail DOM places multiple ad-like cards before key player actions, while screenshots show the age gate consuming the full viewport before content.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/detail-a11y-media-probe.json",
        "evidence/detail-mobile.png"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "At 360x800, both home and detail reported scrollWidth=clientWidth=360 and horizontalOverflowPx=0 with a valid viewport meta tag.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/detail-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "CSS inspection found no @container or container-type usage across reusable listing and navigation components.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The focus probe reported outline-style none and no box-shadow for navigation, search and listing links, so keyboard users cannot reliably see focus.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Server-rendered title, H1, navigation, search and listing links clearly identify a browse-and-play video catalogue; raw/rendered content coverage was 100% on home.",
      "pathIds": [
        "home",
        "detail",
        "error"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Desktop and mobile captures of home, categories, detail and 404 show a full-screen third-party AgeVerif gate. The only action is the vague label “Start”, with no visible age threshold, privacy explanation or alternate path.",
      "pathIds": [
        "home",
        "detail",
        "error"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/categories-mobile.png",
        "evidence/detail-mobile.png"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "An unknown route returns HTTP 404 and a visible “404 / Page not found” page with home/navigation and alternative content links.",
      "pathIds": [
        "home",
        "detail",
        "error"
      ],
      "artifacts": [
        "evidence/404-headers.txt",
        "evidence/404-raw.html"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Mobile Lighthouse measured LCP at 3.9s on home and 4.9s on detail, both above the 2.5s good threshold.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The mobile layout observer measured CLS 0.7106 on the detail page, with a single 0.70875 shift at about 3.67s.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/detail-mobile-layout.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Trace recorded zero long tasks and 0ms total blocking time on home; Lighthouse TBT was 0ms home and 60ms detail.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-detail.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "HAR shows a high-priority parser-inserted AgeVerif script, 1.46MB transferred on home, and detail video preload=auto before user intent.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/detail-summary.json",
        "evidence/detail-a11y-media-probe.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The home HAR includes 166,798 bytes of tag-manager JavaScript plus ad and age-verification scripts; detail transfers 355,174 script bytes before playback intent.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/detail-summary.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Lighthouse reports untitled iframes; DOM probes find an unlabeled search input, an empty logo link, and empty links on the detail page.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Lighthouse found 5 contrast failures on home and 12 on detail.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Both Lighthouse runs report no main landmark, and the focus probe shows outline none for core links and search.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Default and forced-color captures show readable gate typography without clipping, and the mobile layouts reflow without horizontal overflow.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The representative detail page video has no track elements. Mobile reflow itself has no horizontal overflow, but the core media lacks a caption equivalent.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/detail-a11y-media-probe.json",
        "evidence/detail-mobile-layout.json"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Lighthouse errors-in-console audit passed on both home and detail with no recorded items.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Direct /login/ has no doctype, title, language, viewport or styles. The detail image audit found 34 images without dimensions and Lighthouse found a low-resolution image.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json",
        "evidence/detail-images.json"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Lighthouse logged an inspector issue and three back/forward cache failure reasons on both home and detail.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Home and detail both expose descriptive titles and meta descriptions in raw HTML; discoverability confirms title, H1 and description survive without JavaScript.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Lighthouse found 2 non-crawlable links on home and 6 on detail even though the pages otherwise render server-side.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The homepage metadata probe found no rel=canonical, while the sitemap and robots file otherwise expose public indexing routes.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/sitemap.xml",
        "evidence/robots.txt"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The homepage probe found zero JSON-LD blocks and no Open Graph metadata for a public content platform.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "HTTPS and HSTS are present, but CSP, X-Content-Type-Options, Referrer-Policy and Permissions-Policy are missing. All 8 observed cookies were flagged insecure, including PHPSESSID without Secure or HttpOnly.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The tracker probe observed 10 third-party origins, Google Tag Manager and Google Analytics. HAR also shows age-verification, advertising and analytics requests on load.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F025"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The login form exposes username/password fields with no autocomplete tokens and no WebAuthn/passkey path; Lighthouse found no permission prompts on load.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F026"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "HTTPS and HSTS are present, but CSP, X-Content-Type-Options, Referrer-Policy and Permissions-Policy are missing. All 8 observed cookies were flagged insecure, including PHPSESSID without Secure or HttpOnly.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Raw server HTML contains 100% of home and 93% of detail rendered content tokens, with title, H1 and description available without JavaScript.",
      "pathIds": [
        "home",
        "login",
        "error"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Navigating directly to /login/ returns an unstyled AJAX fragment with no document metadata or responsive viewport, despite being exposed as a real href.",
      "pathIds": [
        "home",
        "login",
        "error"
      ],
      "artifacts": [
        "evidence/login.png",
        "evidence/login-dom.json"
      ],
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "This server-rendered public media catalogue is an MPA rather than an installed application; offline playback and installation are not part of the observed core journey.",
      "reason": "This server-rendered public media catalogue is an MPA rather than an installed application; offline playback and installation are not part of the observed core journey."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "The tested missing route responds with HTTP 404 and renders a recovery page with global navigation and links rather than a blank shell.",
      "pathIds": [
        "home",
        "login",
        "error"
      ],
      "artifacts": [
        "evidence/404-headers.txt",
        "evidence/404-raw.html"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "The complete public templates declare html lang=en; CSS inspection found logical properties, and omitted dir correctly defaults to LTR for English.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "The audited public templates expose durations and counts but no dates, prices, currencies or user-editable locale-sensitive values requiring locale formatting.",
      "reason": "The audited public templates expose durations and counts but no dates, prices, currencies or user-editable locale-sensitive values requiring locale formatting."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "No scheduled event, user time, time-zone conversion or recurring calendar surface was present on the audited templates.",
      "reason": "No scheduled event, user time, time-zone conversion or recurring calendar surface was present on the audited templates."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The age gate offers only “Start” without eligibility or data-use context. On detail, ad-like cards have self-referencing hrefs, implying JavaScript interception rather than honest destinations.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/detail-a11y-media-probe.json"
      ],
      "findingIds": [
        "F028"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Username and password are visually marked required by class, but both inputs have required=false, so the browser cannot prevent or explain empty submission.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F029"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The search field and login username/password inputs all expose empty autocomplete values.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F030"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The login endpoint is an unstyled fragment on direct navigation and offers only password authentication with no passkey or reauthentication path.",
      "pathIds": [
        "home",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F031"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Home has 80 images: 72 below-fold images are not lazy, 80 lack srcset, 33 are oversized, and none use a modern format. Detail has 63 legacy-format images.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/detail-images.json"
      ],
      "findingIds": [
        "F032"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "The homepage eagerly loads 72 below-fold images and analytics/ad requests; the detail player uses preload=auto before playback.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/detail-a11y-media-probe.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F033"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, network, performance or Lighthouse evidence gathered on representative paths as planned in coverage-manifest.json.",
      "evidence": "Home transfers 1.46MB across 56 requests, includes a 367KB animated GIF, and contacts 10 third-party origins before the core task.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F034"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "No declared agent-facing intent or transactional tool surface was present; this emerging capability is optional for the observed media catalogue.",
      "reason": "No declared agent-facing intent or transactional tool surface was present; this emerging capability is optional for the observed media catalogue."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon, rendered DOM and interaction-surface inspection across representative templates.",
      "evidence": "No summarisation or language-model task was part of the observed core experience; on-device inference is not applicable.",
      "reason": "No summarisation or language-model task was part of the observed core experience; on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "After ten full-page scroll-down/up cycles, DOM nodes stayed at 1,519 and in-page JS heap decreased from 6.72MB to 6.16MB; heap snapshot size changed by about 2.1%, consistent with run-to-run noise rather than unbounded growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/memory-motion-media.json",
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Baseline heap summary was 9.59MB with 1,519 live DOM elements in the page probe, proportionate to the large listing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/memory-motion-media.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Direct visual or objective probe under the planned condition.",
      "evidence": "Repeated scrolling left the live DOM count unchanged; heap summaries did not surface Detached constructors among top retained constructors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json",
        "evidence/memory-motion-media.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001",
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004",
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006",
        "F007",
        "F008"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F009",
        "F010"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F011",
        "F012",
        "F013",
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F015",
        "F016",
        "F017",
        "F018"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F019",
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F021",
        "F022",
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F024",
        "F025",
        "F026"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F028",
        "F029",
        "F030",
        "F031"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F032",
        "F033",
        "F034"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "Both emerging agent-readiness checks were judged not applicable because the observed catalogue declares no agent-facing or on-device inference intent."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and high-volume video listing. Represents entry, global navigation, search and listing cards.",
      "url": "https://www.freepornvideo.sex/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more / forced-colors",
        "prefers-reduced-motion: reduce",
        "keyboard focus probe",
        "JavaScript disabled crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "categories",
      "description": "Category index. Represents taxonomy and alternate browse navigation.",
      "url": "https://www.freepornvideo.sex/categories/",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative video detail and playback template, including player, related content, ads and metadata.",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "JavaScript disabled crawler view"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search results for a neutral query. Represents search and empty/result-state handling.",
      "url": "https://www.freepornvideo.sex/search/?q=test",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Direct login endpoint and account-entry form. Represents authentication and form assistance.",
      "url": "https://www.freepornvideo.sex/login/",
      "conditions": [
        "desktop",
        "direct navigation"
      ],
      "result": "issues"
    },
    {
      "id": "error",
      "description": "Unknown route. Represents HTTP 404 and recovery navigation.",
      "url": "https://www.freepornvideo.sex/this-route-does-not-exist-audit/",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "summary": "No system-driven dark theme",
      "evidence": "CSS inspection found no color-scheme, prefers-color-scheme or light-dark() support; the dark-emulated capture is visually identical to the default capture.",
      "suggestedFix": "Declare color-scheme and provide system-driven light and dark surface tokens with prefers-color-scheme or light-dark().",
      "effort": "medium",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F002",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Animated third-party media ignores reduced motion",
      "evidence": "The page ships a 367,766-byte animated GIF while CSS inspection found no prefers-reduced-motion branch; the reduced-motion preference cannot suppress that animation.",
      "suggestedFix": "Replace the GIF with controllable media or static fallback and disable non-essential animation under prefers-reduced-motion: reduce.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F003",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "summary": "Route changes have no transition continuity",
      "evidence": "CSS inspection found no view-transition usage even though the site is an MPA with repeated listing-to-detail navigation.",
      "suggestedFix": "Add same-origin cross-document View Transitions with a progressive fallback for listing-to-detail navigation.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F004",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-position-aware-elements",
      "guidanceCategory": "user-experience",
      "summary": "Long listings provide no scroll-state-aware navigation",
      "evidence": "The homepage is 9,470 CSS pixels tall at 360px width, but CSS inspection found no scroll-state query, progress indicator or responsive sticky state.",
      "suggestedFix": "Add a lightweight scroll progress or scroll-state-aware compact navigation treatment for long listing pages.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F005",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "directs-attention",
      "guidanceId": "directional-navigation-transitions",
      "guidanceCategory": "user-experience",
      "summary": "Navigation does not visibly carry attention between states",
      "evidence": "The MPA uses abrupt route swaps and CSS inspection found no view-transition or highlight/scroll-marker treatment to show where context moved.",
      "suggestedFix": "Use directional cross-document transitions and persistent active navigation state to preserve orientation.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F006",
      "severity": "high",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Opaque full-screen age gate blocks every audited public path",
      "evidence": "Desktop and mobile captures of home, categories, detail and 404 show a full-screen third-party AgeVerif gate. The only action is the vague label “Start”, with no visible age threshold, privacy explanation or alternate path.",
      "suggestedFix": "Keep required age assurance, but present a first-party, accessible explanation of eligibility, data use and next step before invoking a third party.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/categories-mobile.png",
        "evidence/detail-mobile.png"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F007",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "summary": "Overlays rely on custom third-party and Fancybox structures",
      "evidence": "The blocking age gate is not exposed in the main DOM as a dialog, and login links rely on a custom Fancybox AJAX fragment rather than a resilient dialog or full page.",
      "suggestedFix": "Use a native dialog for the modal gate and a complete login page as fallback, progressively enhanced into a dialog.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-dom.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F008",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "Ads and gate chrome crowd out the core detail experience",
      "evidence": "The detail DOM places multiple ad-like cards before key player actions, while screenshots show the age gate consuming the full viewport before content.",
      "suggestedFix": "Defer non-essential promotions until after the core player and clearly separate advertising from content controls.",
      "effort": "medium",
      "artifacts": [
        "evidence/detail-a11y-media-probe.json",
        "evidence/detail-mobile.png"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F009",
      "severity": "low",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "summary": "Components adapt only through page-level responsive CSS",
      "evidence": "CSS inspection found no @container or container-type usage across reusable listing and navigation components.",
      "suggestedFix": "Adopt size container queries for cards and navigation where they are reused in different widths.",
      "effort": "small",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F010",
      "severity": "high",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Keyboard focus is not visibly styled",
      "evidence": "The focus probe reported outline-style none and no box-shadow for navigation, search and listing links, so keyboard users cannot reliably see focus.",
      "suggestedFix": "Add a high-contrast :focus-visible ring with sufficient offset to all interactive controls.",
      "effort": "small",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F011",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "Largest Contentful Paint is slow on primary templates",
      "evidence": "Mobile Lighthouse measured LCP at 3.9s on home and 4.9s on detail, both above the 2.5s good threshold.",
      "suggestedFix": "Prioritise the true LCP resource, defer gate/ad scripts and lazy-load below-fold listing media.",
      "effort": "large",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F012",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "Video detail has severe mobile layout shift",
      "evidence": "The mobile layout observer measured CLS 0.7106 on the detail page, with a single 0.70875 shift at about 3.67s.",
      "suggestedFix": "Reserve stable dimensions for the player, ads and late content; do not insert gate or ad UI above existing content.",
      "effort": "medium",
      "artifacts": [
        "evidence/detail-mobile-layout.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F013",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-preload-priority",
      "guidanceCategory": "performance",
      "summary": "Critical delivery is delayed by third-party and eager media work",
      "evidence": "HAR shows a high-priority parser-inserted AgeVerif script, 1.46MB transferred on home, and detail video preload=auto before user intent.",
      "suggestedFix": "Defer non-critical third-party scripts, set player preload to metadata or none, and prioritise only the LCP image.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/detail-summary.json",
        "evidence/detail-a11y-media-probe.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F014",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "summary": "Third-party code dominates script transfer",
      "evidence": "The home HAR includes 166,798 bytes of tag-manager JavaScript plus ad and age-verification scripts; detail transfers 355,174 script bytes before playback intent.",
      "suggestedFix": "Remove low-value third parties, load ads after consent and interaction, and conditionally load player code only on detail pages.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/detail-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F015",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Key controls and frames lack accessible names",
      "evidence": "Lighthouse reports untitled iframes; DOM probes find an unlabeled search input, an empty logo link, and empty links on the detail page.",
      "suggestedFix": "Label search, title every iframe, give image-only links accessible names, and verify player controls through the accessibility tree.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json",
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F016",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Text and controls fail WCAG contrast",
      "evidence": "Lighthouse found 5 contrast failures on home and 12 on detail.",
      "suggestedFix": "Update text, metadata, link and control colors to meet WCAG AA in every visual state.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F017",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Landmark and focus structure is incomplete",
      "evidence": "Both Lighthouse runs report no main landmark, and the focus probe shows outline none for core links and search.",
      "suggestedFix": "Wrap primary content in main, retain the existing nav landmark, and add visible :focus-visible treatment in logical tab order.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F018",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Video has no captions or equivalent track",
      "evidence": "The representative detail page video has no track elements. Mobile reflow itself has no horizontal overflow, but the core media lacks a caption equivalent.",
      "suggestedFix": "Provide synchronized captions via track kind=captions and a transcript for each video.",
      "effort": "large",
      "artifacts": [
        "evidence/detail-a11y-media-probe.json",
        "evidence/detail-mobile-layout.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F019",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Direct login is an incomplete HTML fragment and detail assets lack stable sizing",
      "evidence": "Direct /login/ has no doctype, title, language, viewport or styles. The detail image audit found 34 images without dimensions and Lighthouse found a low-resolution image.",
      "suggestedFix": "Serve login as a complete semantic document, then progressively enhance it into a modal; add intrinsic dimensions and responsive sources to detail images.",
      "effort": "medium",
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json",
        "evidence/detail-images.json"
      ],
      "pathId": "login",
      "url": "https://www.freepornvideo.sex/login/"
    },
    {
      "id": "F020",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "DevTools issues and BFCache blockers remain",
      "evidence": "Lighthouse logged an inspector issue and three back/forward cache failure reasons on both home and detail.",
      "suggestedFix": "Resolve the reported inspector issue and BFCache blockers, then retest route back/forward navigation.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F021",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "search-hidden-content",
      "guidanceCategory": "user-experience",
      "summary": "Some links are not crawlable",
      "evidence": "Lighthouse found 2 non-crawlable links on home and 6 on detail even though the pages otherwise render server-side.",
      "suggestedFix": "Use real destination href values for every navigation/action link and progressively enhance in-page behavior.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-detail.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F022",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "search-hidden-content",
      "guidanceCategory": "user-experience",
      "summary": "Homepage omits an explicit canonical URL",
      "evidence": "The homepage metadata probe found no rel=canonical, while the sitemap and robots file otherwise expose public indexing routes.",
      "suggestedFix": "Add a self-referencing canonical to the homepage and verify canonical consistency across listing templates.",
      "effort": "trivial",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/sitemap.xml",
        "evidence/robots.txt"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F023",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Homepage has no structured or social metadata",
      "evidence": "The homepage probe found zero JSON-LD blocks and no Open Graph metadata for a public content platform.",
      "suggestedFix": "Add accurate WebSite/Organization and content-level VideoObject JSON-LD plus Open Graph preview tags matching visible content.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F024",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "Security headers and cookie flags are incomplete",
      "evidence": "HTTPS and HSTS are present, but CSP, X-Content-Type-Options, Referrer-Policy and Permissions-Policy are missing. All 8 observed cookies were flagged insecure, including PHPSESSID without Secure or HttpOnly.",
      "suggestedFix": "Deploy a restrictive CSP, nosniff, Referrer-Policy and Permissions-Policy; mark session/auth cookies Secure, HttpOnly and appropriately SameSite.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F025",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "summary": "Tracking and third-party footprint is excessive before user choice",
      "evidence": "The tracker probe observed 10 third-party origins, Google Tag Manager and Google Analytics. HAR also shows age-verification, advertising and analytics requests on load.",
      "suggestedFix": "Minimise third parties, gate non-essential analytics/ads behind informed consent, shorten retention and batch only necessary events.",
      "effort": "large",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F026",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkey-authentication",
      "guidanceCategory": "passkeys",
      "summary": "Authentication is password-only and lacks modern credential semantics",
      "evidence": "The login form exposes username/password fields with no autocomplete tokens and no WebAuthn/passkey path; Lighthouse found no permission prompts on load.",
      "suggestedFix": "Add autocomplete=username/current-password immediately, then offer passkey sign-in and registration with password fallback.",
      "effort": "large",
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "pathId": "login",
      "url": "https://www.freepornvideo.sex/login/"
    },
    {
      "id": "F027",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Login deep links fail as complete pages",
      "evidence": "Navigating directly to /login/ returns an unstyled AJAX fragment with no document metadata or responsive viewport, despite being exposed as a real href.",
      "suggestedFix": "Make every linked URL a complete resilient page, and enhance it into a modal only when JavaScript and styling are available.",
      "effort": "medium",
      "artifacts": [
        "evidence/login.png",
        "evidence/login-dom.json"
      ],
      "pathId": "login",
      "url": "https://www.freepornvideo.sex/login/"
    },
    {
      "id": "F028",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "summary": "Age-gate and ad actions are not transparent",
      "evidence": "The age gate offers only “Start” without eligibility or data-use context. On detail, ad-like cards have self-referencing hrefs, implying JavaScript interception rather than honest destinations.",
      "suggestedFix": "State what the age check does before activation, disclose data recipients, label ads, and use honest destination URLs without click interception.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/detail-a11y-media-probe.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F029",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "validate-input-after-interaction",
      "guidanceCategory": "forms",
      "summary": "Login fields lack native error-prevention semantics",
      "evidence": "Username and password are visually marked required by class, but both inputs have required=false, so the browser cannot prevent or explain empty submission.",
      "suggestedFix": "Add required and appropriate constraints, validate after interaction, and announce actionable errors with aria-describedby/live regions.",
      "effort": "small",
      "artifacts": [
        "evidence/login-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.freepornvideo.sex/login/"
    },
    {
      "id": "F030",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-in-form",
      "guidanceCategory": "forms",
      "summary": "Search and login omit autocomplete tokens",
      "evidence": "The search field and login username/password inputs all expose empty autocomplete values.",
      "suggestedFix": "Use autocomplete=search where appropriate, username for identity, and current-password for the password field.",
      "effort": "trivial",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/login-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.freepornvideo.sex/login/"
    },
    {
      "id": "F031",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "passkey-reauthentication",
      "guidanceCategory": "passkeys",
      "summary": "Account entry is brittle and offers no phishing-resistant option",
      "evidence": "The login endpoint is an unstyled fragment on direct navigation and offers only password authentication with no passkey or reauthentication path.",
      "suggestedFix": "Provide a complete, reversible account flow and add passkey authentication and reauthentication while retaining recovery options.",
      "effort": "large",
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.freepornvideo.sex/login/"
    },
    {
      "id": "F032",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "summary": "Listing images are eager, legacy and non-responsive",
      "evidence": "Home has 80 images: 72 below-fold images are not lazy, 80 lack srcset, 33 are oversized, and none use a modern format. Detail has 63 legacy-format images.",
      "suggestedFix": "Generate AVIF/WebP variants, add srcset/sizes and intrinsic dimensions, and lazy-load all below-fold thumbnails.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/detail-images.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    },
    {
      "id": "F033",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "summary": "Below-fold media and analytics load before user intent",
      "evidence": "The homepage eagerly loads 72 below-fold images and analytics/ad requests; the detail player uses preload=auto before playback.",
      "suggestedFix": "Deprioritise below-fold fetches, set video preload to metadata or none, and start analytics/ad work only after consent and need.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/detail-a11y-media-probe.json",
        "evidence/home-summary.json"
      ],
      "pathId": "detail",
      "url": "https://www.freepornvideo.sex/xxx/35973/get-a-sneak-peek-of-s-hottest-moves-in-a-nineteen-minute-video-part-1/"
    },
    {
      "id": "F034",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "summary": "Third-party media and scripts consume a disproportionate budget",
      "evidence": "Home transfers 1.46MB across 56 requests, includes a 367KB animated GIF, and contacts 10 third-party origins before the core task.",
      "suggestedFix": "Set a third-party/media budget, remove the animated ad asset, defer promotions, and cache or self-host essential static dependencies.",
      "effort": "large",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "pathId": "home",
      "url": "https://www.freepornvideo.sex/"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Make the age-assurance and ad experience transparent, first-party and accessible",
      "priority": 1,
      "findingIds": [
        "F006",
        "F007",
        "F008",
        "F028"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Secure cookies and deploy CSP plus defensive response policies",
      "priority": 2,
      "findingIds": [
        "F024"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Minimise and consent-gate third-party tracking, ads and analytics",
      "priority": 3,
      "findingIds": [
        "F025",
        "F034"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Fix keyboard focus, landmarks, names, contrast and media captions",
      "priority": 4,
      "findingIds": [
        "F010",
        "F015",
        "F016",
        "F017",
        "F018"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Eliminate detail-page layout shift and improve LCP discovery",
      "priority": 5,
      "findingIds": [
        "F011",
        "F012",
        "F013"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Optimise responsive media and stop eager below-fold fetching",
      "priority": 6,
      "findingIds": [
        "F032",
        "F033"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Serve a complete resilient login page with validation and autofill",
      "priority": 7,
      "findingIds": [
        "F019",
        "F027",
        "F029",
        "F030"
      ],
      "guidanceId": "autofill-sign-in-form",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Add passkey authentication and safer account reauthentication",
      "priority": 8,
      "findingIds": [
        "F026",
        "F031"
      ],
      "guidanceId": "passkey-authentication",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Replace intercepted links with crawlable, honest destinations and add metadata",
      "priority": 9,
      "findingIds": [
        "F021",
        "F022",
        "F023"
      ],
      "guidanceId": "search-hidden-content",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Reduce JavaScript/platform debt and restore BFCache",
      "priority": 10,
      "findingIds": [
        "F014",
        "F020"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T011",
      "title": "Add system preferences and modern responsive component styling",
      "priority": 11,
      "findingIds": [
        "F001",
        "F002",
        "F009"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T012",
      "title": "Improve state continuity for long listings and route changes",
      "priority": 12,
      "findingIds": [
        "F003",
        "F004",
        "F005"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 1200,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T17-02-18-346Z"
}
