{
  "trust_level": "claimed",
  "official_brand_source": false,
  "verification_method": null,
  "verified_domain": null,
  "verified_at": null,
  "verification_last_checked_at": null,
  "verification_expires_at": null,
  "status": "active",
  "customer_handle": "portal-fd28054d",
  "certification_status": "not_certified",
  "registry_certified": false,
  "certification": null,
  "brand_name": "Portal®",
  "response_scope": "full_tree",
  "integrity": {
    "version": 2,
    "publication_id": "1588db598da7fc4a8b9e5fffc3d4af5a804d45a1dcc5cc957c9c9e7b3c14ecab",
    "revision_id": "d5bf2c72-9844-429b-8679-53d716c640db",
    "manifest_sha256": "18e48bc2ee881e4eb97fe7ac84381ed534ef447281c4b26660307d2bacc7e0b9",
    "manifest_signature": "ConEhjMI6YC4VyLfYrCIbMb9Ta4L5b3kvXHHzSK9rafnNhe+SHuj8B3my9FQfnLPZ/FbYw9qKmPHFxWakelcDg==",
    "manifest_signature_kid": "v1"
  },
  "verified": null,
  "schema": "bcp-readable-package-v1",
  "integrity_scope": "publication_manifest",
  "representation": "Derived readable representation; verify signatures against the canonical source files.",
  "canonical_registry_url": "https://registry.brandcontextprotocol.dev/brands/portal-fd28054d",
  "html_url": "https://registry.encodedbrands.ai/brands/portal-fd28054d",
  "files": [
    {
      "path": "/.well-known/brand/visual.md",
      "content": "---\nbcp_version: \"0.8\"\nfile_type: visual\nparent: https://registry.brandcontextprotocol.dev/portal-fd28054d/.well-known/brand.md\nlast_updated: 2026-09-15\n---\n\n# Visual\n\nThe brand's visual identity is preserved below as machine-readable tokens and practical usage rules.\n\n## Logo\n\n```yaml\nlogo:\n  primary:\n    description: Primary logo asset detected from customer-provided surfaces.\n    variants:\n      - format: svg\n        url: \"https://portal-brand.com/cdn/shop/files/portal_black_logo.svg?v=1740259913&width=400\"\n        sha256: 918617e2d5e52a87e3172b0b2e073195e772cac049057d773556c4543c6259f0\n        purpose: \"Fetched from the customer's published brand surface.\"\n```\n\n## Logo usage\n\n```yaml\nlogo_usage:\n  clear_space:\n    rule: Keep clear space around the logo at least equal to the height of its core mark.\n    machine_value:\n      unit: x-height\n      multiplier: 1.0\n  minimum_size:\n    digital_px: 24\n  approved_backgrounds:\n    - type: solid_color\n      color_token: surface\n      note: Default light surface when contrast is sufficient.\n    - type: solid_color\n      color_token: surface-inverse\n      note: Inverse surface when a light or reversed variant is available.\n  forbidden_backgrounds:\n    - type: gradient\n      note: Do not place the logo over decorative gradients unless brand guidelines explicitly allow it.\n    - type: patterned\n      note: Patterned backgrounds reduce legibility.\n  forbidden_modifications:\n    - stretch\n    - rotate\n    - recolor\n    - drop_shadow\n    - glow\n    - outline\n    - crop\n    - container_shape\n    - animate\n```\n\n## Color\n\n```yaml\ncolor:\n  tokens:\n    surface:\n      hex: \"#C5BBAE\"\n      role: surface\n      description: \"colors extracted from customer source material.\"\n    neutral_2:\n      hex: \"#27272A\"\n      role: neutral\n      description: \"colors extracted from customer source material.\"\n    neutral_3:\n      hex: \"#0071CE\"\n      role: neutral\n      description: \"colors extracted from customer source material.\"\n    neutral_4:\n      hex: \"#EB001B\"\n      role: neutral\n      description: \"colors extracted from customer source material.\"\n    neutral_5:\n      hex: \"#F79E1B\"\n      role: neutral\n      description: \"colors extracted from customer source material.\"\n    accent:\n      hex: \"#000000\"\n      role: primary\n      description: \"accent extracted from customer source material.\"\n    text:\n      hex: \"#4B3D33\"\n      role: text\n      description: \"text extracted from customer source material.\"\n  approved_pairs:\n    - foreground: text\n      background: surface\n      context: Default body text.\n  forbidden_pairs:\n    - foreground: accent\n      background: surface\n      reason: Use only if contrast testing passes for the actual type size.\n```\n\n## Typography\n\n```yaml\ntypography:\n  families:\n    sf_mono:\n      family: \"SF Mono\"\n      fallback_stack: [\"Menlo\", \"Consolas\", \"monospace\"]\n      weights: [400, 500, 700]\n      styles: [\"normal\"]\n      source: \"customer site extraction\"\n    portal_hh:\n      family: \"Portal HH\"\n      fallback_stack: [\"Helvetica Neue\", \"Arial\", \"sans-serif\"]\n      weights: [400, 700]\n      styles: [\"normal\"]\n      source: \"customer site extraction\"\n  roles:\n    display: portal_hh\n    body: portal_hh\n    ui: portal_hh\n    mono: sf_mono\n    code: sf_mono\n```\n\n## Layout and components\n\n```yaml\nelevation:\n  shadows:\n    - \"rgba(28, 28, 28, 0.15) 0px 2px 10px 0px\"\nspacing:\n  scale_px: [10, 20, 28, 48, 64]\ncomponents:\n  buttons:\n    - background: \"#bbb1a4\"\n      color: \"#4b3d33\"\n      radius_px: 13\n      padding_px: [10, 13]\n      font_weight: 400\n    - background: \"transparent\"\n      color: \"#1c1c1c\"\n      radius_px: 13\n      padding_px: [10, 13]\n      font_weight: 400\n    - background: \"transparent\"\n      color: \"#4b3d33\"\n      radius_px: 0\n      padding_px: [0, 0]\n      font_weight: 400\nsource: Observed from the site's live CSS, not a declared design system. Verify against your canonical tokens.\n```\n\n## Imagery\n\n```yaml\nimagery:\n  photographic_style: |\n    Use concrete, brand-owned imagery when available. Avoid generic stock,\n    abstract AI motifs, and visuals that contradict the extracted identity.\n  illustration_style: |\n    Keep illustration subordinate to the brand system. Use only when it\n    clarifies the message better than photography or product evidence.\n  iconography_style: |\n    Follow the brand's existing mark, stroke, and geometry cues. Do not invent\n    decorative symbols without a human-approved precedent.\n  forbidden_treatments:\n    - generic AI iconography\n    - decorative gradients behind text\n    - stock business-meeting photography\n```\n",
      "signature": "LUM1Caox/TDMlVRBZer8q29TDk3Z8vwxb432eu8HPuIBmlXrX1+wosueZeL1JEsWrfVai0LV6pNwuMng3ICSAg==",
      "sha256": "6aa9c54603fe71c9c47ac1ba511a6c9eae789e7b5f1e806003e2efcb5f406982",
      "kid": "v1",
      "content_type": "text/markdown; charset=utf-8",
      "html_url": "https://registry.encodedbrands.ai/brands/portal-fd28054d/files/visual",
      "json_url": "https://registry.encodedbrands.ai/brands/portal-fd28054d/files/visual/data.json",
      "source_url": "https://registry.encodedbrands.ai/brands/portal-fd28054d/source/visual.md",
      "canonical_source_url": "https://registry.brandcontextprotocol.dev/portal-fd28054d/.well-known/brand/visual.md"
    }
  ]
}
