{
  "name": "Federacy",
  "slug": "federacy",
  "domain": "http://www.federacy.com",
  "sources": [
    "yc"
  ],
  "branding": {
    "colorScheme": "light",
    "fonts": [
      {
        "family": "Inter",
        "role": "body"
      }
    ],
    "colors": {
      "primary": "#1B1727",
      "secondary": "#382F4D",
      "accent": "#2F2842",
      "background": "#FFFFFF",
      "textPrimary": "#6B7280",
      "link": "#6B7280"
    },
    "typography": {
      "fontFamilies": {
        "primary": "Inter",
        "heading": "Inter"
      },
      "fontStacks": {
        "heading": [
          "Inter",
          "sans-serif"
        ],
        "body": [
          "Fira Sans",
          "Roboto",
          "Oxygen",
          "Ubuntu",
          "Cantarell",
          "Droid Sans",
          "Helvetica Neue",
          "sans-serif"
        ],
        "paragraph": [
          "Inter",
          "sans-serif"
        ]
      },
      "fontSizes": {
        "h1": "74px",
        "h2": "18px",
        "body": "20px"
      }
    },
    "spacing": {
      "baseUnit": 4,
      "borderRadius": "4px"
    },
    "components": {
      "input": {
        "background": "#FFFFFF",
        "textColor": "#1B1727",
        "borderColor": "#D1D5DB",
        "borderRadius": "6px",
        "borderRadiusCorners": {
          "topLeft": "6px",
          "topRight": "6px",
          "bottomRight": "6px",
          "bottomLeft": "6px"
        },
        "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px"
      },
      "buttonPrimary": {
        "background": "#2F2842",
        "textColor": "#FFFFFF",
        "borderColor": "#D1D5DB",
        "borderRadius": "6px",
        "borderRadiusCorners": {
          "topLeft": "6px",
          "topRight": "6px",
          "bottomRight": "6px",
          "bottomLeft": "6px"
        },
        "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px"
      },
      "buttonSecondary": {
        "background": "#FFFFFF",
        "textColor": "#FFFFFF",
        "borderRadius": "6px",
        "borderRadiusCorners": {
          "topLeft": "6px",
          "topRight": "6px",
          "bottomRight": "6px",
          "bottomLeft": "6px"
        },
        "shadow": "none"
      }
    },
    "images": {
      "logo": "data:image/svg+xml;utf8,%3Csvg%20id%3D%22Layer_1%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20418%2036%22%20enable-background%3D%22new%200%200%20418%2036%22%20xml%3Aspace%3D%22preserve%22%20class%3D%22w-48%20lg%3Aw-54%20fill-current%22%20data-v-665d92ad%3D%22%22%20data-fc-idx%3D%220%22%3E%3Cg%20id%3D%22Page-1%22%3E%3Cg%20id%3D%22dark%22%3E%3Cg%20enable-background%3D%22new%22%3E%3Cpath%20d%3D%22M0.5%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8C0.7%2C1.5%2C1%2C1.4%2C1.3%2C1.4h19.6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3C21.9%2C1.9%2C22%2C2.2%2C22%2C2.6v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-16v11.2h15.1%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H4.8v13%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.6-0.3%2C0.8C4.3%2C34.9%2C4%2C35%2C3.7%2C35H1.3C1%2C35%2C0.7%2C34.9%2C0.5%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M54.1%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h19.8%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H58.4V16h15.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8C74.2%2C19.9%2C74%2C20%2C73.7%2C20H58.4v10.9h16.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H54.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C54.6%2C35%2C54.3%2C34.9%2C54.1%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M108.8%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h10.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c4.8%2C0%2C8.3%2C1.1%2C10.5%2C3.2c2.1%2C2.2%2C3.3%2C5.4%2C3.4%2C9.8c0%2C0.9%2C0%2C2.2%2C0%2C3.7c0%2C1.6%2C0%2C2.8%2C0%2C3.8c-0.1%2C3-0.6%2C5.5-1.5%2C7.4s-2.3%2C3.3-4.3%2C4.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-2%2C0.9-4.5%2C1.4-7.8%2C1.4h-11.1C109.2%2C35%2C109%2C34.9%2C108.8%2C34.7z%20M120.5%2C30.9c2.2%2C0%2C4-0.3%2C5.3-0.9c1.3-0.6%2C2.2-1.6%2C2.8-2.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.6-1.3%2C0.9-3.1%2C1-5.4c0.1-1.9%2C0.1-3.1%2C0.1-3.6c0-0.5%2C0-1.7-0.1-3.6c-0.1-3.2-0.8-5.5-2.3-6.9c-1.4-1.5-3.8-2.2-7.1-2.2h-7.1%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v25.4H120.5z%22%2F%3E%20%3Cpath%20d%3D%22M167.4%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3H188%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-16.3V16H187%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-15.3v10.9h16.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-20.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C167.9%2C35%2C167.6%2C34.9%2C167.4%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M222.1%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h11.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c3.7%2C0%2C6.6%2C0.9%2C8.6%2C2.6c2.1%2C1.7%2C3.1%2C4.2%2C3.1%2C7.5c0%2C2.4-0.6%2C4.4-1.8%2C6c-1.2%2C1.6-2.9%2C2.7-5.1%2C3.3l7.4%2C12.8c0.1%2C0.2%2C0.1%2C0.4%2C0.1%2C0.5%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.3c-0.5%2C0-0.9-0.1-1.1-0.3c-0.3-0.2-0.5-0.5-0.7-1l-7-12.2h-8.4v12.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-2.4C222.6%2C35%2C222.3%2C34.9%2C222.1%2C34.7z%20M234.4%2C17.4c4.8%2C0%2C7.2-2%2C7.2-6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0-4-2.4-6-7.2-6h-7.9v12H234.4z%22%2F%3E%20%3Cpath%20d%3D%22M275.9%2C34.7c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3%2C0-0.4%2C0-0.5l11.9-31.1c0.3-0.7%2C0.8-1.1%2C1.5-1.1h3.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.8%2C0%2C1.3%2C0.4%2C1.5%2C1.1l11.9%2C31.1l0.1%2C0.5c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.4c-0.4%2C0-0.6-0.1-0.8-0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-0.2-0.2-0.3-0.4-0.4-0.6l-2.6-6.8h-15.7l-2.6%2C6.8c-0.1%2C0.2-0.2%2C0.4-0.4%2C0.6c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-2.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C276.3%2C35%2C276.1%2C34.9%2C275.9%2C34.7z%20M297.2%2C23.2l-6.5-17l-6.5%2C17H297.2z%22%2F%3E%20%3Cpath%20d%3D%22M338.3%2C32c-2.2-2.3-3.4-5.5-3.6-9.6c0-0.9%2C0-2.3%2C0-4.2c0-2%2C0-3.4%2C0-4.3c0.2-4%2C1.4-7.2%2C3.6-9.5%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c2.2-2.3%2C5.5-3.5%2C9.7-3.5c2.8%2C0%2C5.3%2C0.5%2C7.2%2C1.5c2%2C1%2C3.5%2C2.3%2C4.5%2C4c1%2C1.6%2C1.6%2C3.4%2C1.7%2C5.2v0.1c0%2C0.3-0.1%2C0.5-0.3%2C0.6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.6c-0.6%2C0-1-0.4-1.2-1.1c-0.5-2.4-1.5-4.1-2.9-5.1c-1.4-1-3.3-1.5-5.7-1.5c-5.5%2C0-8.4%2C3.1-8.5%2C9.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.9%2C0%2C2.2%2C0%2C4s0%2C3.2%2C0%2C4.1c0.2%2C6.1%2C3%2C9.2%2C8.5%2C9.2c2.4%2C0%2C4.3-0.5%2C5.7-1.5c1.4-1%2C2.4-2.7%2C2.9-5.1c0.1-0.4%2C0.2-0.7%2C0.4-0.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.2-0.2%2C0.4-0.2%2C0.8-0.2h2.6c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.7c-0.1%2C1.9-0.7%2C3.6-1.7%2C5.3c-1%2C1.6-2.5%2C3-4.5%2C4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20s-4.4%2C1.5-7.2%2C1.5C343.7%2C35.5%2C340.5%2C34.3%2C338.3%2C32z%22%2F%3E%3C%2Fg%3E%20%3Cg%2F%3E%20%3Cg%20enable-background%3D%22new%22%3E%3Cpath%20d%3D%22M401.5%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V22.6L389.7%2C3c0-0.1%2C0-0.2%2C0-0.3c-0.1-0.1-0.1-0.2-0.1-0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0-0.3%2C0.1-0.5%2C0.3-0.7c0.2-0.2%2C0.4-0.3%2C0.7-0.3h2.5c0.5%2C0%2C1%2C0.3%2C1.2%2C0.8l9.4%2C15.6l9.4-15.6c0.4-0.5%2C0.8-0.8%2C1.3-0.8h2.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.2-0.1%2C0.4-0.2%2C0.6L406%2C22.6v11.3c0%2C0.3-0.1%2C0.6-0.3%2C0.8s-0.5%2C0.3-0.8%2C0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20h-2.5C402%2C35%2C401.8%2C34.9%2C401.5%2C34.7z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",
      "favicon": "https://www.federacy.com/favicon.ico",
      "ogImage": "https://www.federacy.com/img/sphere.png",
      "logoHref": "/#top",
      "logoAlt": "Layer_1"
    },
    "__llm_logo_reasoning": {
      "selectedIndex": 1,
      "reasoning": "Selected #1 because it is visible, located in the header, and matches the brand inferred from the URL and page title.",
      "confidence": 0.9,
      "source": "llm"
    },
    "__llm_button_reasoning": {
      "primary": {
        "index": 1,
        "text": "Let's talk",
        "reasoning": "Button #1 has a vibrant background color (#2F2842) and action-oriented text ('Let's talk'), making it the primary CTA."
      },
      "secondary": {
        "index": 0,
        "text": "Get pricing",
        "reasoning": "Button #0 has a different background color (#FFFFFF) and a secondary action ('Get pricing'), making it suitable as a secondary CTA."
      },
      "confidence": 0.9
    },
    "personality": {
      "tone": "professional",
      "energy": "medium",
      "targetAudience": "businesses seeking security testing services"
    },
    "designSystem": {
      "framework": "tailwind",
      "componentLibrary": ""
    },
    "confidence": {
      "buttons": 0.9,
      "colors": 0.9,
      "overall": 0.9
    },
    "__llm_metadata": {
      "logoSelection": {
        "llmCalled": true,
        "llmSucceeded": true,
        "finalSource": "llm",
        "rawLogoSelection": {
          "selectedLogoIndex": 1,
          "selectedLogoReasoning": "Selected #1 because it is visible, located in the header, and matches the brand inferred from the URL and page title.",
          "confidence": 0.9
        }
      },
      "buttonClassification": {
        "llmCalled": true,
        "llmSucceeded": true
      }
    }
  },
  "images": [
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/federacy/82b04b69ee.webp",
      "alt": "Security testing, by humans | Federacy",
      "source_url": "https://www.federacy.com/",
      "image_url": "https://www.federacy.com/_nuxt/img/vulnerability-report-1x.310f30f.png",
      "width": 1970,
      "height": 1377,
      "bytes": 34570,
      "query": "site:federacy.com",
      "query_suffix": "site:federacy.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/federacy/6719a4e90b.webp",
      "alt": "Docker Image Vulnerability Research | Federacy blog",
      "source_url": "https://www.federacy.com/blog/docker-image-vulnerability-research/",
      "image_url": "https://www.federacy.com/blog/_nuxt/fccf2c0d2f83f2ee4ad98a6a72eb66d3-1400.png",
      "width": 1400,
      "height": 831,
      "bytes": 75459,
      "query": "site:federacy.com blog",
      "query_suffix": "site:federacy.com blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/federacy/74019b6731.webp",
      "alt": "Federacy blog",
      "source_url": "https://www.federacy.com/blog/",
      "image_url": "https://www.federacy.com/blog/_nuxt/db3c0e6403e6bef7f380563ced64afd2-1400.jpg",
      "width": 1400,
      "height": 1050,
      "bytes": 159400,
      "query": "site:federacy.com",
      "query_suffix": "site:federacy.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/federacy/fc1aa96277.webp",
      "alt": "Federacy blog",
      "source_url": "https://www.federacy.com/blog/",
      "image_url": "https://www.federacy.com/blog/_nuxt/2409e46acecad47a963eec8b00696384-1080.png",
      "width": 1080,
      "height": 853,
      "bytes": 2152612,
      "query": "site:federacy.com blog",
      "query_suffix": "site:federacy.com blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/federacy/6390c581f5.webp",
      "alt": "Docker Image Vulnerability Research | Federacy blog",
      "source_url": "https://www.federacy.com/blog/docker-image-vulnerability-research/",
      "image_url": "https://www.federacy.com/blog/_nuxt/ad4aa71f53ddb926513cfa84e17e154a-1400.jpg",
      "width": 1400,
      "height": 934,
      "bytes": 194142,
      "query": "site:federacy.com",
      "query_suffix": "site:federacy.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/federacy/963cbc549c.webp",
      "alt": "Federacy has reached 1.0! | Federacy blog",
      "source_url": "https://www.federacy.com/blog/federacy-has-reached-1-0/",
      "image_url": "https://www.federacy.com/blog/_nuxt/7a35936b418bf0798c4fdc8c2099e791-1080.jpeg",
      "width": 1080,
      "height": 720,
      "bytes": 128653,
      "query": "site:federacy.com blog",
      "query_suffix": "site:federacy.com blog"
    }
  ],
  "font_resources": [
    {
      "family": "Inter",
      "google_fonts_url": "https://fonts.google.com/specimen/Inter"
    },
    {
      "family": "Inter",
      "google_fonts_url": "https://fonts.google.com/specimen/Inter"
    }
  ],
  "google_fonts_css": "https://fonts.googleapis.com/css2?family=Inter&family=Inter&display=swap",
  "font_download_note": "Not found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.",
  "page_url": "https://characterquilt.com/branding/federacy",
  "agent_instructions": "You are designing or implementing in Federacy's brand identity.\n\n# Brand profile\n- Company: Federacy\n- Source: http://www.federacy.com\n- Color scheme: light\n\n# Colors\n- primary: #1B1727\n- secondary: #382F4D\n- accent: #2F2842\n- background: #FFFFFF\n- textPrimary: #6B7280\n- link: #6B7280\n\n# Typography\n- primary: Inter — https://fonts.google.com/specimen/Inter\n- heading: Inter — https://fonts.google.com/specimen/Inter\n\nLoad all fonts at once: <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Inter&family=Inter&display=swap\">\n\n# UI Components\n- input: background=#FFFFFF, textColor=#1B1727, borderColor=#D1D5DB, borderRadius=6px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n- buttonPrimary: background=#2F2842, textColor=#FFFFFF, borderColor=#D1D5DB, borderRadius=6px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n- buttonSecondary: background=#FFFFFF, textColor=#FFFFFF, borderRadius=6px, shadow=none\n\n# Brand voice\n- Tone: professional\n- Energy: medium\n- Audience: businesses seeking security testing services\n\n# Working with these fonts\nNot found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.\n\n# Full machine-readable profile\nhttps://characterquilt.com/branding/federacy.json",
  "page_markdown": "# Federacy Brand Identity\n\nA complete profile of **Federacy**'s visual system — colors, typography, components, and personality — extracted from http://www.federacy.com. Built for designers, agents, and AI tools.\n\n- Page: https://characterquilt.com/branding/federacy\n- Machine-readable JSON: https://characterquilt.com/branding/federacy.json\n- Per-page llms.txt: https://characterquilt.com/branding/federacy/llms.txt\n\n## Quick Facts\n\n| Field | Value |\n|---|---|\n| Primary | #1B1727 |\n| Accent | #2F2842 |\n| Body Font | Inter |\n| Heading Font | Inter |\n\n## Color Palette\n\n- primary: #1B1727\n- secondary: #382F4D\n- accent: #2F2842\n- background: #FFFFFF\n- textPrimary: #6B7280\n- link: #6B7280\n\n## Typography\n\n- primary: Inter — https://fonts.google.com/specimen/Inter\n- heading: Inter — https://fonts.google.com/specimen/Inter\n\n## Visual Assets\n\n- Logo: data:image/svg+xml;utf8,%3Csvg%20id%3D%22Layer_1%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20418%2036%22%20enable-background%3D%22new%200%200%20418%2036%22%20xml%3Aspace%3D%22preserve%22%20class%3D%22w-48%20lg%3Aw-54%20fill-current%22%20data-v-665d92ad%3D%22%22%20data-fc-idx%3D%220%22%3E%3Cg%20id%3D%22Page-1%22%3E%3Cg%20id%3D%22dark%22%3E%3Cg%20enable-background%3D%22new%22%3E%3Cpath%20d%3D%22M0.5%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8C0.7%2C1.5%2C1%2C1.4%2C1.3%2C1.4h19.6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3C21.9%2C1.9%2C22%2C2.2%2C22%2C2.6v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-16v11.2h15.1%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H4.8v13%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.6-0.3%2C0.8C4.3%2C34.9%2C4%2C35%2C3.7%2C35H1.3C1%2C35%2C0.7%2C34.9%2C0.5%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M54.1%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h19.8%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H58.4V16h15.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8C74.2%2C19.9%2C74%2C20%2C73.7%2C20H58.4v10.9h16.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H54.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C54.6%2C35%2C54.3%2C34.9%2C54.1%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M108.8%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h10.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c4.8%2C0%2C8.3%2C1.1%2C10.5%2C3.2c2.1%2C2.2%2C3.3%2C5.4%2C3.4%2C9.8c0%2C0.9%2C0%2C2.2%2C0%2C3.7c0%2C1.6%2C0%2C2.8%2C0%2C3.8c-0.1%2C3-0.6%2C5.5-1.5%2C7.4s-2.3%2C3.3-4.3%2C4.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-2%2C0.9-4.5%2C1.4-7.8%2C1.4h-11.1C109.2%2C35%2C109%2C34.9%2C108.8%2C34.7z%20M120.5%2C30.9c2.2%2C0%2C4-0.3%2C5.3-0.9c1.3-0.6%2C2.2-1.6%2C2.8-2.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.6-1.3%2C0.9-3.1%2C1-5.4c0.1-1.9%2C0.1-3.1%2C0.1-3.6c0-0.5%2C0-1.7-0.1-3.6c-0.1-3.2-0.8-5.5-2.3-6.9c-1.4-1.5-3.8-2.2-7.1-2.2h-7.1%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v25.4H120.5z%22%2F%3E%20%3Cpath%20d%3D%22M167.4%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3H188%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-16.3V16H187%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-15.3v10.9h16.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-20.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C167.9%2C35%2C167.6%2C34.9%2C167.4%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M222.1%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h11.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c3.7%2C0%2C6.6%2C0.9%2C8.6%2C2.6c2.1%2C1.7%2C3.1%2C4.2%2C3.1%2C7.5c0%2C2.4-0.6%2C4.4-1.8%2C6c-1.2%2C1.6-2.9%2C2.7-5.1%2C3.3l7.4%2C12.8c0.1%2C0.2%2C0.1%2C0.4%2C0.1%2C0.5%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.3c-0.5%2C0-0.9-0.1-1.1-0.3c-0.3-0.2-0.5-0.5-0.7-1l-7-12.2h-8.4v12.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-2.4C222.6%2C35%2C222.3%2C34.9%2C222.1%2C34.7z%20M234.4%2C17.4c4.8%2C0%2C7.2-2%2C7.2-6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0-4-2.4-6-7.2-6h-7.9v12H234.4z%22%2F%3E%20%3Cpath%20d%3D%22M275.9%2C34.7c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3%2C0-0.4%2C0-0.5l11.9-31.1c0.3-0.7%2C0.8-1.1%2C1.5-1.1h3.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.8%2C0%2C1.3%2C0.4%2C1.5%2C1.1l11.9%2C31.1l0.1%2C0.5c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.4c-0.4%2C0-0.6-0.1-0.8-0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-0.2-0.2-0.3-0.4-0.4-0.6l-2.6-6.8h-15.7l-2.6%2C6.8c-0.1%2C0.2-0.2%2C0.4-0.4%2C0.6c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-2.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C276.3%2C35%2C276.1%2C34.9%2C275.9%2C34.7z%20M297.2%2C23.2l-6.5-17l-6.5%2C17H297.2z%22%2F%3E%20%3Cpath%20d%3D%22M338.3%2C32c-2.2-2.3-3.4-5.5-3.6-9.6c0-0.9%2C0-2.3%2C0-4.2c0-2%2C0-3.4%2C0-4.3c0.2-4%2C1.4-7.2%2C3.6-9.5%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c2.2-2.3%2C5.5-3.5%2C9.7-3.5c2.8%2C0%2C5.3%2C0.5%2C7.2%2C1.5c2%2C1%2C3.5%2C2.3%2C4.5%2C4c1%2C1.6%2C1.6%2C3.4%2C1.7%2C5.2v0.1c0%2C0.3-0.1%2C0.5-0.3%2C0.6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.6c-0.6%2C0-1-0.4-1.2-1.1c-0.5-2.4-1.5-4.1-2.9-5.1c-1.4-1-3.3-1.5-5.7-1.5c-5.5%2C0-8.4%2C3.1-8.5%2C9.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.9%2C0%2C2.2%2C0%2C4s0%2C3.2%2C0%2C4.1c0.2%2C6.1%2C3%2C9.2%2C8.5%2C9.2c2.4%2C0%2C4.3-0.5%2C5.7-1.5c1.4-1%2C2.4-2.7%2C2.9-5.1c0.1-0.4%2C0.2-0.7%2C0.4-0.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.2-0.2%2C0.4-0.2%2C0.8-0.2h2.6c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.7c-0.1%2C1.9-0.7%2C3.6-1.7%2C5.3c-1%2C1.6-2.5%2C3-4.5%2C4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20s-4.4%2C1.5-7.2%2C1.5C343.7%2C35.5%2C340.5%2C34.3%2C338.3%2C32z%22%2F%3E%3C%2Fg%3E%20%3Cg%2F%3E%20%3Cg%20enable-background%3D%22new%22%3E%3Cpath%20d%3D%22M401.5%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V22.6L389.7%2C3c0-0.1%2C0-0.2%2C0-0.3c-0.1-0.1-0.1-0.2-0.1-0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0-0.3%2C0.1-0.5%2C0.3-0.7c0.2-0.2%2C0.4-0.3%2C0.7-0.3h2.5c0.5%2C0%2C1%2C0.3%2C1.2%2C0.8l9.4%2C15.6l9.4-15.6c0.4-0.5%2C0.8-0.8%2C1.3-0.8h2.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.2-0.1%2C0.4-0.2%2C0.6L406%2C22.6v11.3c0%2C0.3-0.1%2C0.6-0.3%2C0.8s-0.5%2C0.3-0.8%2C0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20h-2.5C402%2C35%2C401.8%2C34.9%2C401.5%2C34.7z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\n- Favicon: https://www.federacy.com/favicon.ico\n- Social card (og:image): https://www.federacy.com/img/sphere.png\n\n## UI Components\n\n- input: background=#FFFFFF, textColor=#1B1727, borderColor=#D1D5DB, borderRadius=6px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n- buttonPrimary: background=#2F2842, textColor=#FFFFFF, borderColor=#D1D5DB, borderRadius=6px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n- buttonSecondary: background=#FFFFFF, textColor=#FFFFFF, borderRadius=6px, shadow=none\n\n## Brand Personality\n\nTone: professional · Energy: medium · Audience: businesses seeking security testing services\n\n## Federacy Brand in the Wild\n\nReal-world brand assets — ads, campaigns, marketing materials.\n\n- **Security testing, by humans | Federacy**\n  - Image: https://www.federacy.com/_nuxt/img/vulnerability-report-1x.310f30f.png\n  - Source: https://www.federacy.com/\n- **Docker Image Vulnerability Research | Federacy blog**\n  - Image: https://www.federacy.com/blog/_nuxt/fccf2c0d2f83f2ee4ad98a6a72eb66d3-1400.png\n  - Source: https://www.federacy.com/blog/docker-image-vulnerability-research/\n- **Federacy blog**\n  - Image: https://www.federacy.com/blog/_nuxt/db3c0e6403e6bef7f380563ced64afd2-1400.jpg\n  - Source: https://www.federacy.com/blog/\n- **Federacy blog**\n  - Image: https://www.federacy.com/blog/_nuxt/2409e46acecad47a963eec8b00696384-1080.png\n  - Source: https://www.federacy.com/blog/\n- **Docker Image Vulnerability Research | Federacy blog**\n  - Image: https://www.federacy.com/blog/_nuxt/ad4aa71f53ddb926513cfa84e17e154a-1400.jpg\n  - Source: https://www.federacy.com/blog/docker-image-vulnerability-research/\n- **Federacy has reached 1.0! | Federacy blog**\n  - Image: https://www.federacy.com/blog/_nuxt/7a35936b418bf0798c4fdc8c2099e791-1080.jpeg\n  - Source: https://www.federacy.com/blog/federacy-has-reached-1-0/\n\n## Working with these fonts\n\nNot found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.\n\n## Machine-Readable Profile\n\n```json\n{\n  \"colorScheme\": \"light\",\n  \"fonts\": [\n    {\n      \"family\": \"Inter\",\n      \"role\": \"body\"\n    }\n  ],\n  \"colors\": {\n    \"primary\": \"#1B1727\",\n    \"secondary\": \"#382F4D\",\n    \"accent\": \"#2F2842\",\n    \"background\": \"#FFFFFF\",\n    \"textPrimary\": \"#6B7280\",\n    \"link\": \"#6B7280\"\n  },\n  \"typography\": {\n    \"fontFamilies\": {\n      \"primary\": \"Inter\",\n      \"heading\": \"Inter\"\n    },\n    \"fontStacks\": {\n      \"heading\": [\n        \"Inter\",\n        \"sans-serif\"\n      ],\n      \"body\": [\n        \"Fira Sans\",\n        \"Roboto\",\n        \"Oxygen\",\n        \"Ubuntu\",\n        \"Cantarell\",\n        \"Droid Sans\",\n        \"Helvetica Neue\",\n        \"sans-serif\"\n      ],\n      \"paragraph\": [\n        \"Inter\",\n        \"sans-serif\"\n      ]\n    },\n    \"fontSizes\": {\n      \"h1\": \"74px\",\n      \"h2\": \"18px\",\n      \"body\": \"20px\"\n    }\n  },\n  \"spacing\": {\n    \"baseUnit\": 4,\n    \"borderRadius\": \"4px\"\n  },\n  \"components\": {\n    \"input\": {\n      \"background\": \"#FFFFFF\",\n      \"textColor\": \"#1B1727\",\n      \"borderColor\": \"#D1D5DB\",\n      \"borderRadius\": \"6px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"6px\",\n        \"topRight\": \"6px\",\n        \"bottomRight\": \"6px\",\n        \"bottomLeft\": \"6px\"\n      },\n      \"shadow\": \"rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\"\n    },\n    \"buttonPrimary\": {\n      \"background\": \"#2F2842\",\n      \"textColor\": \"#FFFFFF\",\n      \"borderColor\": \"#D1D5DB\",\n      \"borderRadius\": \"6px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"6px\",\n        \"topRight\": \"6px\",\n        \"bottomRight\": \"6px\",\n        \"bottomLeft\": \"6px\"\n      },\n      \"shadow\": \"rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\"\n    },\n    \"buttonSecondary\": {\n      \"background\": \"#FFFFFF\",\n      \"textColor\": \"#FFFFFF\",\n      \"borderRadius\": \"6px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"6px\",\n        \"topRight\": \"6px\",\n        \"bottomRight\": \"6px\",\n        \"bottomLeft\": \"6px\"\n      },\n      \"shadow\": \"none\"\n    }\n  },\n  \"images\": {\n    \"logo\": \"data:image/svg+xml;utf8,%3Csvg%20id%3D%22Layer_1%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20418%2036%22%20enable-background%3D%22new%200%200%20418%2036%22%20xml%3Aspace%3D%22preserve%22%20class%3D%22w-48%20lg%3Aw-54%20fill-current%22%20data-v-665d92ad%3D%22%22%20data-fc-idx%3D%220%22%3E%3Cg%20id%3D%22Page-1%22%3E%3Cg%20id%3D%22dark%22%3E%3Cg%20enable-background%3D%22new%22%3E%3Cpath%20d%3D%22M0.5%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8C0.7%2C1.5%2C1%2C1.4%2C1.3%2C1.4h19.6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3C21.9%2C1.9%2C22%2C2.2%2C22%2C2.6v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-16v11.2h15.1%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H4.8v13%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.6-0.3%2C0.8C4.3%2C34.9%2C4%2C35%2C3.7%2C35H1.3C1%2C35%2C0.7%2C34.9%2C0.5%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M54.1%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h19.8%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H58.4V16h15.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8C74.2%2C19.9%2C74%2C20%2C73.7%2C20H58.4v10.9h16.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3H54.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C54.6%2C35%2C54.3%2C34.9%2C54.1%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M108.8%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h10.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c4.8%2C0%2C8.3%2C1.1%2C10.5%2C3.2c2.1%2C2.2%2C3.3%2C5.4%2C3.4%2C9.8c0%2C0.9%2C0%2C2.2%2C0%2C3.7c0%2C1.6%2C0%2C2.8%2C0%2C3.8c-0.1%2C3-0.6%2C5.5-1.5%2C7.4s-2.3%2C3.3-4.3%2C4.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-2%2C0.9-4.5%2C1.4-7.8%2C1.4h-11.1C109.2%2C35%2C109%2C34.9%2C108.8%2C34.7z%20M120.5%2C30.9c2.2%2C0%2C4-0.3%2C5.3-0.9c1.3-0.6%2C2.2-1.6%2C2.8-2.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.6-1.3%2C0.9-3.1%2C1-5.4c0.1-1.9%2C0.1-3.1%2C0.1-3.6c0-0.5%2C0-1.7-0.1-3.6c-0.1-3.2-0.8-5.5-2.3-6.9c-1.4-1.5-3.8-2.2-7.1-2.2h-7.1%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v25.4H120.5z%22%2F%3E%20%3Cpath%20d%3D%22M167.4%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3H188%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-16.3V16H187%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.8c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-15.3v10.9h16.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.4%2C0%2C0.6%2C0.1%2C0.8%2C0.3c0.2%2C0.2%2C0.3%2C0.5%2C0.3%2C0.8v1.9c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-20.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C167.9%2C35%2C167.6%2C34.9%2C167.4%2C34.7z%22%2F%3E%20%3Cpath%20d%3D%22M222.1%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V2.6c0-0.4%2C0.1-0.6%2C0.3-0.8c0.2-0.2%2C0.5-0.3%2C0.8-0.3h11.7%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c3.7%2C0%2C6.6%2C0.9%2C8.6%2C2.6c2.1%2C1.7%2C3.1%2C4.2%2C3.1%2C7.5c0%2C2.4-0.6%2C4.4-1.8%2C6c-1.2%2C1.6-2.9%2C2.7-5.1%2C3.3l7.4%2C12.8c0.1%2C0.2%2C0.1%2C0.4%2C0.1%2C0.5%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.3c-0.5%2C0-0.9-0.1-1.1-0.3c-0.3-0.2-0.5-0.5-0.7-1l-7-12.2h-8.4v12.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.3-0.1%2C0.6-0.3%2C0.8c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-2.4C222.6%2C35%2C222.3%2C34.9%2C222.1%2C34.7z%20M234.4%2C17.4c4.8%2C0%2C7.2-2%2C7.2-6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0-4-2.4-6-7.2-6h-7.9v12H234.4z%22%2F%3E%20%3Cpath%20d%3D%22M275.9%2C34.7c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3%2C0-0.4%2C0-0.5l11.9-31.1c0.3-0.7%2C0.8-1.1%2C1.5-1.1h3.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.8%2C0%2C1.3%2C0.4%2C1.5%2C1.1l11.9%2C31.1l0.1%2C0.5c0%2C0.3-0.1%2C0.5-0.3%2C0.7c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.4c-0.4%2C0-0.6-0.1-0.8-0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-0.2-0.2-0.3-0.4-0.4-0.6l-2.6-6.8h-15.7l-2.6%2C6.8c-0.1%2C0.2-0.2%2C0.4-0.4%2C0.6c-0.2%2C0.2-0.5%2C0.3-0.8%2C0.3h-2.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C276.3%2C35%2C276.1%2C34.9%2C275.9%2C34.7z%20M297.2%2C23.2l-6.5-17l-6.5%2C17H297.2z%22%2F%3E%20%3Cpath%20d%3D%22M338.3%2C32c-2.2-2.3-3.4-5.5-3.6-9.6c0-0.9%2C0-2.3%2C0-4.2c0-2%2C0-3.4%2C0-4.3c0.2-4%2C1.4-7.2%2C3.6-9.5%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c2.2-2.3%2C5.5-3.5%2C9.7-3.5c2.8%2C0%2C5.3%2C0.5%2C7.2%2C1.5c2%2C1%2C3.5%2C2.3%2C4.5%2C4c1%2C1.6%2C1.6%2C3.4%2C1.7%2C5.2v0.1c0%2C0.3-0.1%2C0.5-0.3%2C0.6%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c-0.2%2C0.2-0.4%2C0.3-0.7%2C0.3h-2.6c-0.6%2C0-1-0.4-1.2-1.1c-0.5-2.4-1.5-4.1-2.9-5.1c-1.4-1-3.3-1.5-5.7-1.5c-5.5%2C0-8.4%2C3.1-8.5%2C9.2%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0%2C0.9%2C0%2C2.2%2C0%2C4s0%2C3.2%2C0%2C4.1c0.2%2C6.1%2C3%2C9.2%2C8.5%2C9.2c2.4%2C0%2C4.3-0.5%2C5.7-1.5c1.4-1%2C2.4-2.7%2C2.9-5.1c0.1-0.4%2C0.2-0.7%2C0.4-0.9%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.2-0.2%2C0.4-0.2%2C0.8-0.2h2.6c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.7c-0.1%2C1.9-0.7%2C3.6-1.7%2C5.3c-1%2C1.6-2.5%2C3-4.5%2C4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20s-4.4%2C1.5-7.2%2C1.5C343.7%2C35.5%2C340.5%2C34.3%2C338.3%2C32z%22%2F%3E%3C%2Fg%3E%20%3Cg%2F%3E%20%3Cg%20enable-background%3D%22new%22%3E%3Cpath%20d%3D%22M401.5%2C34.7c-0.2-0.2-0.3-0.5-0.3-0.8V22.6L389.7%2C3c0-0.1%2C0-0.2%2C0-0.3c-0.1-0.1-0.1-0.2-0.1-0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0-0.3%2C0.1-0.5%2C0.3-0.7c0.2-0.2%2C0.4-0.3%2C0.7-0.3h2.5c0.5%2C0%2C1%2C0.3%2C1.2%2C0.8l9.4%2C15.6l9.4-15.6c0.4-0.5%2C0.8-0.8%2C1.3-0.8h2.4%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c0.3%2C0%2C0.5%2C0.1%2C0.7%2C0.3c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.7c0%2C0.2-0.1%2C0.4-0.2%2C0.6L406%2C22.6v11.3c0%2C0.3-0.1%2C0.6-0.3%2C0.8s-0.5%2C0.3-0.8%2C0.3%26%2310%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20h-2.5C402%2C35%2C401.8%2C34.9%2C401.5%2C34.7z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E\",\n    \"favicon\": \"https://www.federacy.com/favicon.ico\",\n    \"ogImage\": \"https://www.federacy.com/img/sphere.png\",\n    \"logoHref\": \"/#top\",\n    \"logoAlt\": \"Layer_1\"\n  },\n  \"__llm_logo_reasoning\": {\n    \"selectedIndex\": 1,\n    \"reasoning\": \"Selected #1 because it is visible, located in the header, and matches the brand inferred from the URL and page title.\",\n    \"confidence\": 0.9,\n    \"source\": \"llm\"\n  },\n  \"__llm_button_reasoning\": {\n    \"primary\": {\n      \"index\": 1,\n      \"text\": \"Let's talk\",\n      \"reasoning\": \"Button #1 has a vibrant background color (#2F2842) and action-oriented text ('Let's talk'), making it the primary CTA.\"\n    },\n    \"secondary\": {\n      \"index\": 0,\n      \"text\": \"Get pricing\",\n      \"reasoning\": \"Button #0 has a different background color (#FFFFFF) and a secondary action ('Get pricing'), making it suitable as a secondary CTA.\"\n    },\n    \"confidence\": 0.9\n  },\n  \"personality\": {\n    \"tone\": \"professional\",\n    \"energy\": \"medium\",\n    \"targetAudience\": \"businesses seeking security testing services\"\n  },\n  \"designSystem\": {\n    \"framework\": \"tailwind\",\n    \"componentLibrary\": \"\"\n  },\n  \"confidence\": {\n    \"buttons\": 0.9,\n    \"colors\": 0.9,\n    \"overall\": 0.9\n  },\n  \"__llm_metadata\": {\n    \"logoSelection\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true,\n      \"finalSource\": \"llm\",\n      \"rawLogoSelection\": {\n        \"selectedLogoIndex\": 1,\n        \"selectedLogoReasoning\": \"Selected #1 because it is visible, located in the header, and matches the brand inferred from the URL and page title.\",\n        \"confidence\": 0.9\n      }\n    },\n    \"buttonClassification\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true\n    }\n  }\n}\n```\n"
}