{
  "schema_version": 1,
  "tested_at": "2026-07-31T12:00:00+08:00",
  "result": "passed_with_documented_evidence_gap",
  "environments": {
    "original": "temporary_original_runtime",
    "migrated": "temporary_app_runtime",
    "account": "administrator",
    "database": "isolated_copies"
  },
  "viewports": [
    {
      "width": 1920,
      "height": 1080,
      "theme": "light",
      "views": [
        "sentiment",
        "screener",
        "heaven_trend",
        "heaven_fortune",
        "heaven_heart_intro",
        "heaven_heart_breath"
      ],
      "equal": true
    },
    {
      "width": 1920,
      "height": 1080,
      "theme": "dark",
      "views": [
        "sentiment"
      ],
      "equal": true
    },
    {
      "width": 390,
      "height": 844,
      "theme": "light",
      "views": [
        "sentiment",
        "heaven_trend"
      ],
      "equal": true
    }
  ],
  "invalid_captures": [
    {
      "view": "auction",
      "file": "frontend-migrated-auction-light-1920x1080.INVALID-login-session.png",
      "reason": "The migrated capture shows an expired login session and is not visual-equivalence evidence.",
      "replacement_claim": "No replacement screenshot claim; final visual acceptance remains manual."
    }
  ],
  "heaven_animation_contract": {
    "trend_star_nodes": 90,
    "fortune_star_nodes": 100,
    "heart_star_nodes": 110,
    "bagua_nodes_per_view": 2,
    "trend_and_fortune_animations": [
      "wt-tw",
      "wt-spin"
    ],
    "heart_breath_animations": [
      "heart-incense-burn",
      "heart-incense-glow"
    ],
    "fortune_industry_groups": 5,
    "fortune_industries_collapsed_by_default": true,
    "equal": true
  },
  "mobile_contract": {
    "primary_navigation_items": 5,
    "horizontal_overflow": false,
    "vertical_page_scroll": true,
    "heaven_trend_geometry": {
      "active": {
        "height": 723,
        "width": 374,
        "x": 8,
        "y": 50
      },
      "header": {
        "width": 390,
        "height": 50
      },
      "bottom_navigation": {
        "width": 390,
        "height": 58
      }
    },
    "equal": true
  },
  "console": {
    "new_errors": 0,
    "new_warnings": 0
  },
  "screenshot_policy": "Dynamic animation frames, focus outlines, and live status text may change pixel hashes. Acceptance compares visible geometry, computed styles, DOM state, animation names, interaction results, and overflow behavior.",
  "known_test_environment_constraint": "Original and migrated services on the same hostname share cookies across ports. Each service must be logged in separately immediately before comparison.",
  "all_equal": true,
  "manual_acceptance_required": true
}
