{
  "url": "https://pornone.com",
  "auditedAt": "2026-07-25T22:45:41.084Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage complete. Visual paths were consistently fronted by a jurisdictional biometric age gate; underlying server-rendered templates were inspected without bypassing it.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered HTML with Tailwind-style utility CSS and imperative JavaScript",
    "notes": "Adult video catalog. Visual capture shows a regional age-assurance gate; DOM/evaluate sessions exposed representative listing, detail, search, categories, login and 404 templates."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "lighthouse",
    "heap-summary",
    "curl"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer"
  ],
  "artifacts": [
    {
      "type": "dom",
      "path": "evidence/categories-dom.json",
      "caption": "categories dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/categories-mobile.png",
      "caption": "categories mobile",
      "condition": "viewport: 360x800"
    },
    {
      "type": "dom",
      "path": "evidence/contrast-probe.json",
      "caption": "contrast probe",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F25",
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-crawler.png",
      "caption": "detail discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-discoverability-rendered.png",
      "caption": "detail discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/detail-discoverability.json",
      "caption": "detail discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "detail dom",
      "findingIds": [
        "F04",
        "F07"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/detail-layout-mobile.json",
      "caption": "detail layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "detail mobile",
      "condition": "viewport: 360x800"
    },
    {
      "type": "dom",
      "path": "evidence/detail-probe.json",
      "caption": "detail probe",
      "findingIds": [
        "F21",
        "F30"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/detail-trace-summary.json",
      "caption": "detail trace summary"
    },
    {
      "type": "trace",
      "path": "evidence/detail-trace.json",
      "caption": "detail trace"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F25",
        "F28"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.heapsnapshot",
      "caption": "heap post scroll"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduced.png",
      "caption": "home dark reduced",
      "condition": "prefers-color-scheme: dark; prefers-reduced-motion: reduce",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F09",
        "F14"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F06",
        "F08",
        "F10",
        "F12",
        "F29",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F18",
        "F22",
        "F34"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05",
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F14",
        "F15",
        "F33"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "findingIds": [
        "F01",
        "F04",
        "F05",
        "F07",
        "F10",
        "F12",
        "F13",
        "F20",
        "F21",
        "F24",
        "F30"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F16",
        "F17",
        "F26",
        "F35"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary"
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F16",
        "F35"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F03",
        "F13",
        "F16",
        "F17",
        "F18",
        "F19",
        "F22",
        "F23",
        "F24",
        "F34",
        "F36"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-login.json",
      "caption": "lighthouse login",
      "findingIds": [
        "F19",
        "F20",
        "F23"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/login-dom.json",
      "caption": "login dom",
      "findingIds": [
        "F09",
        "F14",
        "F18",
        "F27",
        "F30",
        "F32",
        "F33"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/login-layout-mobile.json",
      "caption": "login layout mobile",
      "condition": "viewport: 360x800"
    },
    {
      "type": "screenshot",
      "path": "evidence/login-mobile.png",
      "caption": "login mobile",
      "condition": "viewport: 360x800"
    },
    {
      "type": "dom",
      "path": "evidence/login-probe.json",
      "caption": "login probe",
      "findingIds": [
        "F09",
        "F15",
        "F27",
        "F32"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics"
    },
    {
      "type": "dom",
      "path": "evidence/not-found-dom.json",
      "caption": "not found dom",
      "findingIds": [
        "F06",
        "F08",
        "F29",
        "F31",
        "F36"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/not-found-headers.txt",
      "caption": "not found headers"
    },
    {
      "type": "dom",
      "path": "evidence/recon.json",
      "caption": "recon",
      "findingIds": [
        "F24"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "reduced motion probe",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers"
    },
    {
      "type": "dom",
      "path": "evidence/robots.txt",
      "caption": "robots"
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "search dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "search mobile",
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "dom",
      "path": "evidence/sitemap-headers.txt",
      "caption": "sitemap headers"
    },
    {
      "type": "dom",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap"
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F26",
        "F35",
        "F36"
      ]
    }
  ],
  "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": "Emulated media probe and screenshot on home",
      "evidence": "The CSS probe found no prefers-color-scheme rule; the page defaults localStorage to dark-theme rather than following the OS. The dark emulation produced the same fixed-dark age-gate rendering.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated media probe and screenshot on home",
      "evidence": "With prefers-reduced-motion: reduce matched, the probe still found 13 running animations, including twelve infinite 1-second ping animations; the CSS contains no reduced-motion query.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated media probe and screenshot on home",
      "evidence": "The contrast probe confirmed prefers-contrast: more while finding no prefers-contrast or forced-colors rules; Lighthouse separately found 17 color-contrast failures.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/contrast-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered CSS/animation probe and DOM inspection on home/detail",
      "evidence": "DOM/CSS inspection across the MPA templates found no view-transition-name or @view-transition usage, so moving from listing to detail is an abrupt document swap.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-dom.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered CSS/animation probe and DOM inspection on home/detail",
      "evidence": "Applicability judged from recon and representative templates.",
      "reason": "No page surface uses scroll-linked storytelling, parallax, entry/exit reveal, or carousel scroll animation, so there is no scroll-linked implementation to evaluate."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered CSS/animation probe and DOM inspection on home/detail",
      "evidence": "Applicability judged from recon and representative templates.",
      "reason": "The audited MPA exposes links, forms, and video controls but no swipe, pull, draggable, or gesture-driven component."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS inspection across long listing and detail templates",
      "evidence": "The home page is over 15,000 CSS pixels tall, but CSS inspection found no scroll-state container queries or progress/orientation treatment.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS inspection across long listing and detail templates",
      "evidence": "Rendered DOM includes manually fixed ad and playlist overlays, while the CSS probe found no anchor positioning or fallback positions.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/not-found-dom.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/CSS inspection across long listing and detail templates",
      "evidence": "The listing/detail inspection found no directional transition, highlight, scroll marker, or other attention cue after route or in-page navigation.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-dom.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Load screenshot plus DOM inspection of age/ad overlays",
      "evidence": "The rendered DOM contains a fixed 410px video ad with z-index 9999 and webExperienceManager pop-under code bound to video links. This is additional to the jurisdictional age gate.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/not-found-dom.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Load screenshot plus DOM inspection of age/ad overlays",
      "evidence": "Screenshots show a full-screen age-verification gate, but DOM inspection found a fixed div with no dialog role, aria-modal, labelled relationship, or native dialog/popover semantics.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-dom.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Load screenshot plus DOM inspection of age/ad overlays",
      "evidence": "The home probe counted 396 interactive elements and an iframe; rendered DOM also injects slider/native ad chrome around the content grid.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 layout metrics, screenshot, focus and target-size probe",
      "evidence": "At a 360px visual viewport, layout metrics reported a 369px document width and 9px horizontal overflow on both home and detail.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/detail-layout-mobile.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 layout metrics, screenshot, focus and target-size probe",
      "evidence": "CSS inspection found no @container/container-type usage despite cards and ad widgets being reused in grids and side surfaces at different widths.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 layout metrics, screenshot, focus and target-size probe",
      "evidence": "The home probe found 18 visible interactive elements below 24px in at least one dimension; Lighthouse also reports accessibility failures.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Walk home to detail and login; inspect age gate, form and 404 recovery",
      "evidence": "Recon shows descriptive titles/headings and direct video-card links; the age gate itself has one visually dominant action.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Walk home to detail and login; inspect age gate, form and 404 recovery",
      "evidence": "All visual captures were replaced by a mandatory “AI face check” gate linking to an external partner. No non-biometric verification option, exit, or alternative access route is offered.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/login-dom.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Walk home to detail and login; inspect age gate, form and 404 recovery",
      "evidence": "The first viewport exposes only “Start age verification”; it has no cancel, help, retry explanation, unsupported-camera path, or alternative verification control.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace, layout observer, HAR and images audit",
      "evidence": "Lighthouse home measured LCP 2.458s, CLS 0.043 and TBT 11ms; trace measured LCP 1.439s with no long tasks.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace, layout observer, HAR and images audit",
      "evidence": "Observed CLS remained 0.043 on home and 0.057 on detail, both below the 0.1 good threshold.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/detail-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace, layout observer, HAR and images audit",
      "evidence": "Home/detail traces reported zero long tasks and zero total blocking time; Lighthouse TBT was 11ms.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/detail-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace, layout observer, HAR and images audit",
      "evidence": "Lighthouse transferred 2,943 KiB and estimated 1,270 KiB cache savings; HAR recorded 71 requests, while image delivery and render-blocking audits also failed.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace, layout observer, HAR and images audit",
      "evidence": "Lighthouse estimates 170 KiB unused JavaScript and 11 KiB unused CSS on home, while third-party scripts dominate request cost.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM structure/focus/media probes and screenshots",
      "evidence": "Lighthouse found an aria-allowed-attr failure; the image audit found 20 images without alt text, and the custom gate has no modal role or accessible modal state.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json",
        "evidence/login-dom.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM structure/focus/media probes and screenshots",
      "evidence": "Lighthouse found 17 failing contrast nodes on home and 4 on login.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-login.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM structure/focus/media probes and screenshots",
      "evidence": "The home outline starts with four H2 sections before its H1; Lighthouse found four positive tabindex values on login, forcing an authored order that can diverge from reading order.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-login.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM structure/focus/media probes and screenshots",
      "evidence": "Age-gate screenshots at desktop/mobile show readable sizing, line lengths and spacing without clipping.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM structure/focus/media probes and screenshots",
      "evidence": "The detail probe found two videos with zero track elements, and the home probe found 18 sub-24px interactive targets.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/detail-probe.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audits, DOM and image audit",
      "evidence": "Lighthouse errors-in-console audit passed with no logged errors.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits, DOM and image audit",
      "evidence": "Lighthouse found an incorrectly stretched RTA image and unsized images; the image audit found 12 missing dimensions and 15 oversized resources.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits, DOM and image audit",
      "evidence": "Lighthouse logged a Cookie issue in DevTools; login also had three BFCache failure reasons. Source maps, paste prevention, prompts, and deprecated APIs otherwise passed.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-login.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability primitive, DOM metadata probe, robots/sitemap and HTTP headers",
      "evidence": "Home, login and detail DOM each contain unique descriptive titles and meta descriptions.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/login-dom.json",
        "evidence/detail-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability primitive, DOM metadata probe, robots/sitemap and HTTP headers",
      "evidence": "Lighthouse failed crawlable anchors, and the probe counted 16 javascript: links, including live cards and “Show More”.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/recon.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability primitive, DOM metadata probe, robots/sitemap and HTTP headers",
      "evidence": "HTTP status, canonical and 12 hreflang links pass on representative pages; robots.txt points to live sitemap indexes and does not block core pages.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/detail-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability primitive, DOM metadata probe, robots/sitemap and HTTP headers",
      "evidence": "Detail includes VideoObject and BreadcrumbList JSON-LD plus Open Graph metadata matching visible content.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/detail-probe.json",
        "evidence/detail-dom.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR",
      "evidence": "HTTPS is used, but headers inspection found no CSP, HSTS, nosniff, clickjacking, Referrer-Policy, or Permissions-Policy. All 10 observed cookies lacked Secure and several use SameSite=None.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR",
      "evidence": "The tracker capture found 9 third-party origins, including Google Tag Manager/Analytics and multiple ad networks; analytics cookies last about 400 days and are set without Secure.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/cookies.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR",
      "evidence": "The login form exposes username/current-password fields and no WebAuthn/passkey flow. Permission prompts did not fire on load, but the relevant authentication path is not phishing-resistant.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/login-dom.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR",
      "evidence": "The response has neither clickjacking protection nor CSP frame-ancestors, HSTS, Referrer-Policy, Permissions-Policy, or origin-isolation policy.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "No-JS discoverability pair, DOM/runtime inspection and representative 404",
      "evidence": "Discoverability found server-rendered content with 81% raw/rendered word coverage on home and 68% on detail, not an empty JS shell.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/detail-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "No-JS discoverability pair, DOM/runtime inspection and representative 404",
      "evidence": "DOM inspection shows custom fixed overlays with very high z-indexes and manual jQuery hide/state handling; the ad slider is positioned off-screen then animated in.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/not-found-dom.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "No-JS discoverability pair, DOM/runtime inspection and representative 404",
      "evidence": "Applicability judged from recon and representative templates.",
      "reason": "This public streaming/content site is intrinsically network-dependent and does not present itself as an installable application."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "No-JS discoverability pair, DOM/runtime inspection and representative 404",
      "evidence": "A fabricated route returns HTTP 404 and renders a clear “Page not found” message with search and Home recovery controls.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/not-found-headers.txt",
        "evidence/not-found-dom.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM lang/hreflang and CSS logical-property inspection across localized links",
      "evidence": "Pages expose lang and 12 hreflang variants, but CSS inspection found no logical properties and extensive physical left/right positioning.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/login-dom.json",
        "evidence/detail-probe.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "DOM lang/hreflang and CSS logical-property inspection across localized links",
      "evidence": "The site exposes 12 locale variants and renders localized route labels and compact/segmented view counts; no hand-rolled date input was found on tested paths.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/login-dom.json",
        "evidence/recon.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM lang/hreflang and CSS logical-property inspection across localized links",
      "evidence": "Applicability judged from recon and representative templates.",
      "reason": "The representative pages expose no scheduling, recurring events, user-entered times, or local-time coordination; uploadDate is machine metadata only."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Age/account flow and login form DOM inspection; ad/popunder source inspection",
      "evidence": "Rendered source calls webExperienceManager.bindTo([“.vidLinkFX”]) with under:true, so selecting core video links can also open an advertising tab/window.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/not-found-dom.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Age/account flow and login form DOM inspection; ad/popunder source inspection",
      "evidence": "The login control is type=button and calls document.forms[0].submit(); although required fields make checkValidity false, form.submit() bypasses constraint validation and submit events.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/login-dom.json",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Age/account flow and login form DOM inspection; ad/popunder source inspection",
      "evidence": "Login uses autocomplete=username and autocomplete=current-password with associated labels.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/login-dom.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Age/account flow and login form DOM inspection; ad/popunder source inspection",
      "evidence": "The account path is password-only, while regional entry requires a third-party AI face check without a non-biometric alternative in the gate.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/login-dom.json"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, image audit, trace and DOM media/third-party inspection",
      "evidence": "The image audit found 46 images without srcset, 18 legacy-format images, 15 oversized images, and 17 below-fold images not lazy-loaded.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F34"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, image audit, trace and DOM media/third-party inspection",
      "evidence": "HAR/trackers evidence shows analytics, Cloudflare insight, live-cam, ad-network, and autoplay-ad media requests before the user reaches content.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F35"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, image audit, trace and DOM media/third-party inspection",
      "evidence": "Nine third-party origins and fixed injected video advertising add network, CPU, and privacy cost to a media-heavy page that already has a 2.9 MiB load.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/lighthouse-home.json",
        "evidence/not-found-dom.json"
      ],
      "findingIds": [
        "F36"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/source inspection and discoverability evidence; judge contextual applicability",
      "evidence": "Applicability judged from recon and representative templates.",
      "reason": "No declared intent indicates an agent-facing transactional capability; emerging WebMCP exposure is optional for this public media catalog."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/source inspection and discoverability evidence; judge contextual applicability",
      "evidence": "Applicability judged from recon and representative templates.",
      "reason": "The audited browsing/video task has no clear on-device inference need and no declared AI feature intent."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline/post-scroll heap summaries plus same-session heap/DOM metrics",
      "evidence": "After ten full-page scroll cycles, heap summary grew only 0.8% (13.44MB to 13.55MB), while same-session used heap fell from 7.12MB to 5.77MB and DOM nodes stayed 1,922.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline/post-scroll heap summaries plus same-session heap/DOM metrics",
      "evidence": "Baseline heap was 13.44MB for a media listing with 1,922 DOM elements, proportionate to the rendered page.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline/post-scroll heap summaries plus same-session heap/DOM metrics",
      "evidence": "Heap summaries contain no Detached* constructor in the top populations; repeated scroll kept DOM count fixed and did not increase same-session used heap.",
      "pathIds": [
        "home",
        "categories",
        "detail",
        "search",
        "login"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19",
        "F20",
        "F21"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F22",
        "F23"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26",
        "F27",
        "F28"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F31",
        "F32",
        "F33"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F34",
        "F35",
        "F36"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged contextual and not applicable: No declared intent indicates an agent-facing transactional capability; emerging WebMCP exposure is optional for this public media catalog. The audited browsing/video task has no clear on-device inference need and no declared AI feature intent."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/listing template and entry journey; represents navigation, content cards, ads, preferences, responsiveness and load behavior.",
      "url": "https://pornone.com/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "categories",
      "description": "Category index archetype; represents taxonomy/navigation. Audited once because item grids share the home card template.",
      "url": "https://pornone.com/categories/",
      "conditions": [
        "desktop DOM",
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative video detail/player archetype; covers primary content, structured metadata, media accessibility and detail performance.",
      "url": "https://pornone.com/submissive/bondage-sex/280760375/",
      "conditions": [
        "desktop DOM",
        "viewport: 360x800",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search-results archetype reached through the global search form; covers query navigation and result cards.",
      "url": "https://pornone.com/search?q=test",
      "conditions": [
        "desktop DOM",
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Primary account form flow; covers labels, autofill, validation, authentication and age-assurance interruption.",
      "url": "https://pornone.com/login/",
      "conditions": [
        "desktop DOM",
        "viewport: 360x800",
        "keyboard/focus inspection"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Representative HTTP failure/recovery state using a deliberately missing route.",
      "url": "https://pornone.com/definitely-not-a-page-404-test/",
      "conditions": [
        "HTTP status",
        "desktop DOM"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "System color preference is ignored",
      "evidence": "The CSS probe found no prefers-color-scheme rule; the page defaults localStorage to dark-theme rather than following the OS. The dark emulation produced the same fixed-dark age-gate rendering.",
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Use color-scheme and prefers-color-scheme (or light-dark()) as the default, while preserving an explicit user override.",
      "effort": "small"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Reduced-motion preference does not stop continuous animation",
      "evidence": "With prefers-reduced-motion: reduce matched, the probe still found 13 running animations, including twelve infinite 1-second ping animations; the CSS contains no reduced-motion query.",
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ],
      "suggestedFix": "Disable non-essential ping, ad, and transition animation inside prefers-reduced-motion: reduce.",
      "effort": "small"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "No high-contrast or forced-colors adaptation",
      "evidence": "The contrast probe confirmed prefers-contrast: more while finding no prefers-contrast or forced-colors rules; Lighthouse separately found 17 color-contrast failures.",
      "artifacts": [
        "evidence/contrast-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Add forced-colors and prefers-contrast styles that preserve visible text, controls, borders, and focus indicators.",
      "effort": "small"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Route changes have no continuity cue",
      "evidence": "DOM/CSS inspection across the MPA templates found no view-transition-name or @view-transition usage, so moving from listing to detail is an abrupt document swap.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-dom.json"
      ],
      "suggestedFix": "Add opt-in cross-document View Transitions for stable shared elements, with reduced-motion fallback.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Long listings provide no scroll-state-aware orientation",
      "evidence": "The home page is over 15,000 CSS pixels tall, but CSS inspection found no scroll-state container queries or progress/orientation treatment.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Use a compact sticky header or lightweight scroll progress/state treatment on long listing pages.",
      "effort": "small"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "position-aware-tooltips",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Custom overlays are manually fixed rather than viewport-aware",
      "evidence": "Rendered DOM includes manually fixed ad and playlist overlays, while the CSS probe found no anchor positioning or fallback positions.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/not-found-dom.json"
      ],
      "suggestedFix": "Use native popover/dialog primitives and CSS anchor positioning with position-try fallbacks for attached menus and tooltips.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "directs-attention",
      "guidanceId": "directional-navigation-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Navigation does not visibly direct attention after a move",
      "evidence": "The listing/detail inspection found no directional transition, highlight, scroll marker, or other attention cue after route or in-page navigation.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-dom.json"
      ],
      "suggestedFix": "Add restrained directional/shared-element cues and ensure focus moves to the destination heading.",
      "effort": "small"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Fixed ad and pop-under code competes with core content",
      "evidence": "The rendered DOM contains a fixed 410px video ad with z-index 9999 and webExperienceManager pop-under code bound to video links. This is additional to the jurisdictional age gate.",
      "artifacts": [
        "evidence/not-found-dom.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Remove pop-unders and auto-injected fixed video ads; defer clearly labelled advertising and make it easy to dismiss.",
      "effort": "medium"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "The mandatory age gate is an inaccessible custom modal",
      "evidence": "Screenshots show a full-screen age-verification gate, but DOM inspection found a fixed div with no dialog role, aria-modal, labelled relationship, or native dialog/popover semantics.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/login-dom.json",
        "evidence/login-probe.json"
      ],
      "suggestedFix": "Implement the gate as a labelled modal dialog, trap and restore focus, make background content inert, and provide a clear exit/alternative path.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "reduce-style-repetition",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Ad chrome and hundreds of controls overwhelm the listing",
      "evidence": "The home probe counted 396 interactive elements and an iframe; rendered DOM also injects slider/native ad chrome around the content grid.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Reduce above-the-fold controls, remove low-value ad chrome, and progressively reveal secondary actions.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Mobile listing and detail templates overflow horizontally",
      "evidence": "At a 360px visual viewport, layout metrics reported a 369px document width and 9px horizontal overflow on both home and detail.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/detail-layout-mobile.json"
      ],
      "suggestedFix": "Remove the fixed/min-width source, use intrinsic sizing and max-inline-size:100%, and test at 320-360px.",
      "effort": "small"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Reusable cards adapt only through viewport breakpoints",
      "evidence": "CSS inspection found no @container/container-type usage despite cards and ad widgets being reused in grids and side surfaces at different widths.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Give reusable card/grid shells containment and use size container queries where component layout changes.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some interactive targets are too small",
      "evidence": "The home probe found 18 visible interactive elements below 24px in at least one dimension; Lighthouse also reports accessibility failures.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Increase touch targets toward 44x44 CSS pixels, retain visible focus, and provide non-hover labels/actions.",
      "effort": "small"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "Core content has a biometric-only access path in this region",
      "evidence": "All visual captures were replaced by a mandatory “AI face check” gate linking to an external partner. No non-biometric verification option, exit, or alternative access route is offered.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/login-dom.json"
      ],
      "suggestedFix": "Offer proportionate, privacy-preserving age-assurance alternatives and explain data handling before sending users to the partner.",
      "effort": "large"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The age gate offers no recovery or alternative state",
      "evidence": "The first viewport exposes only “Start age verification”; it has no cancel, help, retry explanation, unsupported-camera path, or alternative verification control.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/login-probe.json"
      ],
      "suggestedFix": "Add clear help, retry, cancel/leave, camera-denied, and alternative-verification states without losing the user’s destination.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Resource delivery is heavier and less cacheable than needed",
      "evidence": "Lighthouse transferred 2,943 KiB and estimated 1,270 KiB cache savings; HAR recorded 71 requests, while image delivery and render-blocking audits also failed.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Set durable immutable caching for versioned assets, shorten critical chains, and prioritize only the LCP resource.",
      "effort": "medium"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Unused JavaScript and CSS ship on the entry path",
      "evidence": "Lighthouse estimates 170 KiB unused JavaScript and 11 KiB unused CSS on home, while third-party scripts dominate request cost.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Split route code, conditionally load ad/player dependencies, and remove unused legacy bundles.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Accessible names, roles, and alternatives are incomplete",
      "evidence": "Lighthouse found an aria-allowed-attr failure; the image audit found 20 images without alt text, and the custom gate has no modal role or accessible modal state.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json",
        "evidence/login-dom.json"
      ],
      "suggestedFix": "Fix invalid ARIA, give meaningful images/controls names, mark decorative images empty-alt, and expose the gate as a real labelled dialog.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and controls fail minimum contrast",
      "evidence": "Lighthouse found 17 failing contrast nodes on home and 4 on login.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-login.json"
      ],
      "suggestedFix": "Adjust foreground/surface tokens to WCAG AA and verify normal, hover, focus, dark, and high-contrast states.",
      "effort": "small"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Heading and focus order are not logical",
      "evidence": "The home outline starts with four H2 sections before its H1; Lighthouse found four positive tabindex values on login, forcing an authored order that can diverge from reading order.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-login.json"
      ],
      "suggestedFix": "Place the page H1 before section headings, keep DOM and visual order aligned, and remove positive tabindex values.",
      "effort": "small"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Video has no caption track and small targets remain",
      "evidence": "The detail probe found two videos with zero track elements, and the home probe found 18 sub-24px interactive targets.",
      "artifacts": [
        "evidence/detail-probe.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Provide captions/transcripts for meaningful media, enlarge targets, and retest reflow/zoom.",
      "effort": "large"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image dimensions and aspect ratios are unsound",
      "evidence": "Lighthouse found an incorrectly stretched RTA image and unsized images; the image audit found 12 missing dimensions and 15 oversized resources.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Set intrinsic width/height with the correct aspect ratio and use responsive sources sized to the rendered slot.",
      "effort": "small"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Browser hygiene issues remain",
      "evidence": "Lighthouse logged a Cookie issue in DevTools; login also had three BFCache failure reasons. Source maps, paste prevention, prompts, and deprecated APIs otherwise passed.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-login.json"
      ],
      "suggestedFix": "Resolve the cookie inspector issue and BFCache blockers, then verify a back/forward navigation restores cleanly.",
      "effort": "medium"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Sixteen links are not crawlable",
      "evidence": "Lighthouse failed crawlable anchors, and the probe counted 16 javascript: links, including live cards and “Show More”.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/recon.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Use real href destinations for navigation and buttons for actions; retain descriptive link text.",
      "effort": "small"
    },
    {
      "id": "F25",
      "pathId": "login",
      "url": "https://pornone.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Transport defenses and cookie flags are missing",
      "evidence": "HTTPS is used, but headers inspection found no CSP, HSTS, nosniff, clickjacking, Referrer-Policy, or Permissions-Policy. All 10 observed cookies lacked Secure and several use SameSite=None.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Deploy CSP, HSTS, nosniff, frame-ancestors, Referrer-Policy and Permissions-Policy; mark cookies Secure and use the strictest workable SameSite/HttpOnly settings.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "login",
      "url": "https://pornone.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Tracking and ad third parties load before meaningful consent",
      "evidence": "The tracker capture found 9 third-party origins, including Google Tag Manager/Analytics and multiple ad networks; analytics cookies last about 400 days and are set without Secure.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/cookies.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Minimise vendors and retention, defer non-essential analytics/ads until valid consent, and document each data recipient.",
      "effort": "large"
    },
    {
      "id": "F27",
      "pathId": "login",
      "url": "https://pornone.com/login/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "passkeys",
      "severity": "medium",
      "confidence": "high",
      "summary": "Authentication is password-only",
      "evidence": "The login form exposes username/current-password fields and no WebAuthn/passkey flow. Permission prompts did not fire on load, but the relevant authentication path is not phishing-resistant.",
      "artifacts": [
        "evidence/login-dom.json",
        "evidence/login-probe.json"
      ],
      "suggestedFix": "Add passkey registration and authentication with password fallback and recovery.",
      "effort": "large"
    },
    {
      "id": "F28",
      "pathId": "login",
      "url": "https://pornone.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced defensive policies are absent",
      "evidence": "The response has neither clickjacking protection nor CSP frame-ancestors, HSTS, Referrer-Policy, Permissions-Policy, or origin-isolation policy.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Set a restrictive policy baseline and tighten it per route, including frame-ancestors and permissions allowlists.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "resilient-context-menus-and-nested-dropdowns",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Ad and playlist overlays rely on fragile manual positioning/state",
      "evidence": "DOM inspection shows custom fixed overlays with very high z-indexes and manual jQuery hide/state handling; the ad slider is positioned off-screen then animated in.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/not-found-dom.json"
      ],
      "suggestedFix": "Replace manual overlay state with dialog/popover/top-layer primitives and resilient viewport-aware positioning.",
      "effort": "medium"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "built-in-ai",
      "severity": "medium",
      "confidence": "high",
      "summary": "Localized routes exist, but layout CSS is not writing-mode ready",
      "evidence": "Pages expose lang and 12 hreflang variants, but CSS inspection found no logical properties and extensive physical left/right positioning.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/login-dom.json",
        "evidence/detail-probe.json"
      ],
      "suggestedFix": "Use dir-aware markup and logical inline/block properties; test a translated RTL fixture.",
      "effort": "medium"
    },
    {
      "id": "F31",
      "pathId": "login",
      "url": "https://pornone.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "general",
      "severity": "high",
      "confidence": "high",
      "summary": "Video links are wired to pop-under advertising",
      "evidence": "Rendered source calls webExperienceManager.bindTo([“.vidLinkFX”]) with under:true, so selecting core video links can also open an advertising tab/window.",
      "artifacts": [
        "evidence/not-found-dom.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Remove pop-under binding from core actions and keep advertising explicit, labelled, and independently activated.",
      "effort": "small"
    },
    {
      "id": "F32",
      "pathId": "login",
      "url": "https://pornone.com/login/",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "validate-input-after-interaction",
      "guidanceCategory": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Login bypasses native required-field validation",
      "evidence": "The login control is type=button and calls document.forms[0].submit(); although required fields make checkValidity false, form.submit() bypasses constraint validation and submit events.",
      "artifacts": [
        "evidence/login-dom.json",
        "evidence/login-probe.json"
      ],
      "suggestedFix": "Use a submit button and requestSubmit(); show field-level errors after interaction and announce the summary accessibly.",
      "effort": "small"
    },
    {
      "id": "F33",
      "pathId": "login",
      "url": "https://pornone.com/login/",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "passkey-management",
      "guidanceCategory": "passkeys",
      "severity": "high",
      "confidence": "high",
      "summary": "Account access and age assurance lack safer alternatives",
      "evidence": "The account path is password-only, while regional entry requires a third-party AI face check without a non-biometric alternative in the gate.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/login-dom.json"
      ],
      "suggestedFix": "Add passkeys and recovery for accounts, and offer transparent, reversible age-assurance choices before third-party transfer.",
      "effort": "large"
    },
    {
      "id": "F34",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Images are not consistently optimized for their slots",
      "evidence": "The image audit found 46 images without srcset, 18 legacy-format images, 15 oversized images, and 17 below-fold images not lazy-loaded.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Generate AVIF/WebP responsive sources, set sizes, lazy-load below-fold media, and avoid oversized decorative assets.",
      "effort": "medium"
    },
    {
      "id": "F35",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Background analytics and advertising work is disproportionate",
      "evidence": "HAR/trackers evidence shows analytics, Cloudflare insight, live-cam, ad-network, and autoplay-ad media requests before the user reaches content.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Defer or eliminate non-essential background fetches and batch analytics after consent.",
      "effort": "medium"
    },
    {
      "id": "F36",
      "pathId": "home",
      "url": "https://pornone.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party ad/media budget is disproportionate",
      "evidence": "Nine third-party origins and fixed injected video advertising add network, CPU, and privacy cost to a media-heavy page that already has a 2.9 MiB load.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/lighthouse-home.json",
        "evidence/not-found-dom.json"
      ],
      "suggestedFix": "Set a strict third-party budget, remove pop-under/video ad formats, and lazy-load any retained media after intent.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace pop-under/fixed ad formats and defer third parties until consent",
      "priority": 1,
      "findingIds": [
        "F08",
        "F10",
        "F26",
        "F31",
        "F35",
        "F36"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Make age assurance accessible, transparent, and non-biometric-optional",
      "priority": 2,
      "findingIds": [
        "F09",
        "F14",
        "F15",
        "F18",
        "F33"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy a modern security-header and cookie baseline",
      "priority": 3,
      "findingIds": [
        "F25",
        "F28"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Fix contrast, focus order, target size, names, and captions",
      "priority": 4,
      "findingIds": [
        "F13",
        "F18",
        "F19",
        "F20",
        "F21"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Optimize images, caching, critical delivery, and route bundles",
      "priority": 5,
      "findingIds": [
        "F16",
        "F17",
        "F22",
        "F34"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Honor system color, motion, and contrast preferences",
      "priority": 6,
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Repair mobile overflow and introduce component-level responsiveness",
      "priority": 7,
      "findingIds": [
        "F11",
        "F12"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Use native validation and add passkeys/recovery",
      "priority": 8,
      "findingIds": [
        "F27",
        "F32",
        "F33"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Replace custom overlays with dialog/popover and resilient positioning",
      "priority": 9,
      "findingIds": [
        "F06",
        "F09",
        "F29"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Make all navigation destinations crawlable and orientation-aware",
      "priority": 10,
      "findingIds": [
        "F04",
        "F05",
        "F07",
        "F24"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Make localized layouts writing-mode ready",
      "priority": 11,
      "findingIds": [
        "F30"
      ],
      "guidanceId": "translator",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-25T22-35-10-540Z"
}
