lovable.json

{
  "name": "Lovable",
  "slug": "lovable",
  "domain": "https://lovable.dev/",
  "sources": [
    "apollo_us_mid",
    "ramp_top_saas_feb_2026",
    "startups_gallery"
  ],
  "branding": {
    "colorScheme": "light",
    "fonts": [
      {
        "family": "Camera Plain Variable",
        "role": "unknown"
      }
    ],
    "colors": {
      "primary": "#000000",
      "accent": "#1E1E1E",
      "background": "#FCFBF8",
      "textPrimary": "#1C1C1C",
      "link": "#000000"
    },
    "typography": {
      "fontFamilies": {
        "primary": "Camera Plain Variable",
        "heading": "Camera Plain Variable"
      },
      "fontStacks": {
        "heading": [
          "Camera Plain Variable",
          "ui-sans-serif",
          "system-ui",
          "sans-serif"
        ],
        "body": [
          "Camera Plain Variable",
          "ui-sans-serif",
          "system-ui",
          "sans-serif"
        ],
        "paragraph": [
          "Camera Plain Variable",
          "ui-sans-serif",
          "system-ui",
          "sans-serif"
        ]
      },
      "fontSizes": {
        "h1": "20px",
        "h2": "48px",
        "body": "20px"
      }
    },
    "spacing": {
      "baseUnit": 4,
      "borderRadius": "4px"
    },
    "components": {
      "buttonPrimary": {
        "background": "#1E1E1E",
        "textColor": "#FAFAFA",
        "borderRadius": "8px",
        "borderRadiusCorners": {
          "topLeft": "8px",
          "topRight": "8px",
          "bottomRight": "8px",
          "bottomLeft": "8px"
        },
        "shadow": "rgba(0, 0, 0, 0.08) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.16) 0px -1px 0px 0px inset, rgb(0, 0, 0) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.24) 0px 1px 0px 0px inset, rgba(255, 255, 255, 0.16) 0px -1px 0px 0px inset, rgba(0, 0, 0, 0.12) 0px 2px 2px -1px, rgba(0, 0, 0, 0.12) 0px 4px 4px -2px"
      },
      "buttonSecondary": {
        "background": "transparent",
        "textColor": "#2E2E2D",
        "borderColor": "#C5C4C2",
        "borderRadius": "8px",
        "borderRadiusCorners": {
          "topLeft": "8px",
          "topRight": "8px",
          "bottomRight": "8px",
          "bottomLeft": "8px"
        },
        "shadow": "none"
      }
    },
    "images": {
      "logo": "data:image/svg+xml;utf8,%3Csvg%20role%3D%22img%22%20aria-label%3D%22Lovable%22%20viewBox%3D%220%200%20755%20129%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22shrink-0%20text-foreground%20h-6%20lg%3Ah-%5B18px%5D%22%20data-fc-idx%3D%220%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M303.603%2030.94c9.149%200%2017.163%201.982%2024.04%205.945%206.876%203.963%2012.18%209.616%2015.91%2016.959%203.788%207.285%205.682%2015.852%205.682%2025.7%200%209.85-1.894%2018.447-5.682%2025.79-3.73%207.343-9.034%2012.996-15.91%2016.959-6.877%203.963-14.891%205.944-24.04%205.944-9.15%200-17.193-1.981-24.128-5.944-6.877-3.963-12.21-9.616-15.998-16.959-3.73-7.343-5.595-15.94-5.595-25.79%200-9.848%201.865-18.415%205.595-25.7%203.788-7.343%209.121-12.996%2015.998-16.96%206.935-3.962%2014.978-5.944%2024.128-5.944Zm176.168%200c8.683%200%2016.026%201.428%2022.029%204.284%206.002%202.797%2010.519%206.818%2013.55%2012.063%203.088%205.245%204.633%2011.511%204.633%2018.796v38.464c0%204.138.292%207.984.874%2011.539.641%203.497%201.545%205.712%202.71%206.644v2.972H496.03c-.641-2.506-1.136-5.332-1.486-8.479-.116-1.04-.214-2.1-.298-3.178a32.537%2032.537%200%200%201-2.149%202.828c-2.914%203.438-6.674%206.207-11.278%208.305-4.545%202.039-9.732%203.059-15.56%203.059-5.77%200-10.957-1.136-15.561-3.409-4.546-2.273-8.13-5.507-10.753-9.703-2.564-4.254-3.846-9.208-3.846-14.861%200-8.626%202.535-15.211%207.605-19.757%205.07-4.604%2012.385-7.605%2021.942-9.004l15.999-2.273c3.205-.467%205.74-1.05%207.605-1.749%201.865-.699%203.234-1.632%204.108-2.797.875-1.224%201.312-2.768%201.312-4.633%200-1.923-.524-3.672-1.573-5.245-.991-1.632-2.507-2.915-4.546-3.847-1.982-.99-4.4-1.486-7.256-1.486-4.546%200-8.189%201.195-10.928%203.585-2.739%202.33-4.225%205.536-4.458%209.615h-27.362c.233-6.178%202.098-11.656%205.595-16.435%203.555-4.837%208.479-8.596%2014.773-11.277%206.294-2.68%2013.58-4.02%2021.856-4.02Zm78.465%2015.936a31.342%2031.342%200%200%201%203.148-4.92c2.797-3.556%206.206-6.267%2010.227-8.132%204.022-1.923%208.538-2.884%2013.55-2.884%207.518%200%2014.046%201.952%2019.582%205.857%205.537%203.905%209.792%209.529%2012.764%2016.872%202.972%207.285%204.458%2015.94%204.458%2025.964%200%209.965-1.516%2018.62-4.546%2025.963-3.031%207.285-7.372%2012.879-13.025%2016.784-5.595%203.905-12.151%205.857-19.669%205.857-5.012%200-9.5-.873-13.463-2.622-3.905-1.748-7.227-4.371-9.966-7.868a31.218%2031.218%200%200%201-3.321-5.4v13.355h-26.227V.342h26.488v46.534ZM710.451%2030.94c8.567%200%2016.173%201.865%2022.817%205.595%206.643%203.73%2011.802%209.15%2015.473%2016.26%203.73%207.11%205.595%2015.619%205.595%2025.526%200%203.555-.03%206.382-.088%208.48h-63.814c.251%204.09%201.038%207.645%202.359%2010.665%201.632%203.73%203.963%206.556%206.993%208.479%203.031%201.865%206.615%202.798%2010.753%202.798%204.546%200%208.305-1.166%2011.277-3.497%202.972-2.389%204.838-5.74%205.595-10.053h26.487c-.815%206.761-3.117%2012.618-6.905%2017.572-3.73%204.953-8.713%208.771-14.949%2011.452-6.236%202.681-13.492%204.02-21.768%204.02-9.324%200-17.425-1.777-24.302-5.332-6.877-3.613-12.239-9.033-16.085-16.259-3.788-7.227-5.682-16.173-5.682-26.838%200-10.14%201.981-18.883%205.944-26.226%203.963-7.401%209.441-13.026%2016.435-16.872%206.993-3.846%2014.949-5.77%2023.865-5.77Zm-502.536%2069.546h32.087c23.362%200%2020.196%2025.163%2020.189%2025.216h-79.726V.342h27.45v100.144Zm185.126-2.03%2019.101-64.981h27.362l-31.908%2092.227h-29.46l-33.132-92.227h28.148l19.889%2064.981Zm263.245%2027.246h-26.488V.342h26.488v125.36ZM493.845%2080.731a13.951%2013.951%200%200%201-3.06%201.961c-2.04.991-4.808%201.836-8.305%202.536l-6.731%201.311c-4.487.874-7.868%202.214-10.141%204.02-2.214%201.807-3.322%204.343-3.322%207.606s1.195%205.857%203.584%207.78c2.39%201.924%205.45%202.886%209.18%202.886%203.73%200%207.022-.816%209.878-2.448%202.855-1.69%205.041-4.021%206.556-6.993%201.574-2.972%202.361-6.353%202.361-10.141v-8.518Zm82.662-29.597c-3.905%200-7.256%201.194-10.053%203.584-2.739%202.33-4.808%205.653-6.207%209.966-1.399%204.254-2.098%209.237-2.098%2014.949%200%205.77.699%2010.782%202.098%2015.036s3.468%207.547%206.207%209.878c2.797%202.331%206.148%203.497%2010.053%203.497%203.963%200%207.285-1.166%209.966-3.497%202.739-2.331%204.778-5.624%206.119-9.878%201.398-4.254%202.098-9.267%202.098-15.036%200-5.77-.7-10.782-2.098-15.036-1.341-4.255-3.38-7.548-6.119-9.88-2.681-2.389-6.003-3.583-9.966-3.583Zm-272.904.088c-3.847%200-7.169%201.078-9.966%203.234-2.739%202.098-4.838%205.274-6.295%209.528-1.457%204.196-2.185%209.383-2.185%2015.56%200%206.178.728%2011.395%202.185%2015.65%201.457%204.254%203.556%207.459%206.295%209.616%202.797%202.097%206.119%203.146%209.966%203.146%203.846%200%207.138-1.049%209.877-3.146%202.74-2.157%204.837-5.334%206.294-9.53%201.457-4.254%202.186-9.5%202.186-15.735%200-9.266-1.602-16.289-4.808-21.068-3.205-4.837-7.722-7.255-13.549-7.255Zm406.237-1.137c-3.905%200-7.343.962-10.316%202.885-2.914%201.865-5.187%204.662-6.819%208.392-.893%202.117-1.532%204.477-1.918%207.081h36.494c-.261-3.3-.917-6.156-1.969-8.567-1.34-3.264-3.321-5.712-5.944-7.344-2.622-1.631-5.799-2.447-9.528-2.447Z%22%20style%3D%22fill%3A%20rgb(28%2C%2028%2C%2028)%20!important%3B%22%2F%3E%3Cmask%20id%3D%22_R_9bajhepolliv9fkl5b_-b%22%20width%3D%22124%22%20height%3D%22126%22%20x%3D%220%22%20y%3D%220%22%20maskUnits%3D%22userSpaceOnUse%22%20style%3D%22mask-type%3A%20alpha%3B%20fill%3A%20none%20!important%3B%22%3E%3Cpath%20fill%3D%22url(%23_R_9bajhepolliv9fkl5b_-a)%22%20fill-rule%3D%22evenodd%22%20d%3D%22M37.3.343c20.43%200%2036.991%2016.605%2036.991%2037.088v14.095h12.31c20.43%200%2036.991%2016.605%2036.991%2037.088s-16.561%2037.088-36.99%2037.088H.31V37.431C.31%2016.948%2016.87.343%2037.3.343Z%22%20clip-rule%3D%22evenodd%22%20style%3D%22fill%3A%20url(%26quot%3B%23_R_9bajhepolliv9fkl5b_-a%26quot%3B)%20!important%3B%22%2F%3E%3C%2Fmask%3E%3Cg%20mask%3D%22url(%23_R_9bajhepolliv9fkl5b_-b)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-c)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Ccircle%20cx%3D%2254.389%22%20cy%3D%2267.257%22%20r%3D%2283.452%22%20fill%3D%22%234B73FF%22%20style%3D%22fill%3A%20rgb(75%2C%20115%2C%20255)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-d)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cellipse%20cx%3D%2263.557%22%20cy%3D%2221.462%22%20fill%3D%22%23FF66F4%22%20rx%3D%22106.879%22%20ry%3D%2283.452%22%20style%3D%22fill%3A%20rgb(255%2C%20102%2C%20244)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-e)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cellipse%20cx%3D%2280.992%22%20cy%3D%225.757%22%20fill%3D%22%23FF0105%22%20rx%3D%2283.452%22%20ry%3D%2273.289%22%20style%3D%22fill%3A%20rgb(255%2C%201%2C%205)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-f)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Ccircle%20cx%3D%2265.043%22%20cy%3D%2221.442%22%20r%3D%2250.188%22%20fill%3D%22%23FE7B02%22%20style%3D%22fill%3A%20rgb(254%2C%20123%2C%202)%20!important%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-c%22%20width%3D%22241.704%22%20height%3D%22241.704%22%20x%3D%22-66.463%22%20y%3D%22-53.596%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-d%22%20width%3D%22288.559%22%20height%3D%22241.704%22%20x%3D%22-80.723%22%20y%3D%22-99.39%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-e%22%20width%3D%22241.704%22%20height%3D%22221.378%22%20x%3D%22-39.86%22%20y%3D%22-104.931%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-f%22%20width%3D%22175.176%22%20height%3D%22175.176%22%20x%3D%22-22.545%22%20y%3D%22-66.146%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3ClinearGradient%20id%3D%22_R_9bajhepolliv9fkl5b_-a%22%20x1%3D%2241.797%22%20x2%3D%2279.356%22%20y1%3D%2222.372%22%20y2%3D%22125.655%22%20gradientUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cstop%20offset%3D%22.025%22%20stop-color%3D%22%23FF8E63%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(255%2C%20142%2C%2099)%20!important%3B%22%2F%3E%3Cstop%20offset%3D%22.56%22%20stop-color%3D%22%23FF7EB0%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(255%2C%20126%2C%20176)%20!important%3B%22%2F%3E%3Cstop%20offset%3D%22.95%22%20stop-color%3D%22%234B73FF%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(75%2C%20115%2C%20255)%20!important%3B%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E",
      "favicon": "https://lovable.dev/favicon.svg",
      "ogImage": "https://lovable.dev/img/opengraph-image.png",
      "logoHref": "/",
      "logoAlt": "Lovable"
    },
    "__llm_logo_reasoning": {
      "selectedIndex": 3,
      "reasoning": "Selected #3 because it is visible, located in the header, links to the homepage, and matches the brand name 'Lovable'.",
      "confidence": 0.9,
      "source": "llm"
    },
    "__llm_button_reasoning": {
      "primary": {
        "index": 0,
        "text": "Get started",
        "reasoning": "Button #0 with text 'Get started' is likely the primary CTA due to its action-oriented text and dark background color, which stands out as a strong call-to-action."
      },
      "secondary": {
        "index": 6,
        "text": "View all",
        "reasoning": "Button #6 with text 'View all' is chosen as secondary due to its transparent background, making it less prominent than the primary button."
      },
      "confidence": 0.9
    },
    "personality": {
      "tone": "modern",
      "energy": "medium",
      "targetAudience": "developers and tech enthusiasts"
    },
    "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": 3,
          "selectedLogoReasoning": "Selected #3 because it is visible, located in the header, links to the homepage, and matches the brand name 'Lovable'.",
          "confidence": 0.9
        }
      },
      "buttonClassification": {
        "llmCalled": true,
        "llmSucceeded": true
      }
    }
  },
  "images": [
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/lovable/20052fad6f.webp",
      "alt": "Perspective - Lifestyle Blog Template | Lovable",
      "source_url": "https://lovable.dev/templates/websites/blog/perspective-lifestyle",
      "image_url": "https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/a8b116a9-20b6-43a8-ae91-693ba5a35c3b/id-preview-172571d0--7410f81b-8218-4f2d-bb32-1ba1f84eabb2.lovable.app-1760028648399.png",
      "width": 1920,
      "height": 1080,
      "bytes": 449208,
      "query": "site:lovable.dev blog",
      "query_suffix": "site:lovable.dev blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/lovable/ffbaeda875.webp",
      "alt": "How Long Should a Blog Post Be? Data-Backed Guide 2026 | Lovable",
      "source_url": "https://lovable.dev/guides/how-long-should-blog-post-be-data-backed-guide",
      "image_url": "https://lovable.dev/content/guides/thumbnails/how-long-should-blog-post-be-data-backed-guide.jpg",
      "width": 1536,
      "height": 1024,
      "bytes": 2956375,
      "query": "site:lovable.dev blog",
      "query_suffix": "site:lovable.dev blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/lovable/f4d9be9687.webp",
      "alt": "How to maintain brand control when building with Lovable | Lovable",
      "source_url": "https://lovable.dev/blog/how-to-maintain-brand-control-when-build-with-lovable",
      "image_url": "https://lovable.dev/content/news/covers/brand-control-marketing-design.png",
      "width": 3840,
      "height": 2160,
      "bytes": 3958328,
      "query": "site:lovable.dev",
      "query_suffix": "site:lovable.dev"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/lovable/92b278f3b8.webp",
      "alt": "How to Set Up a Blog from Scratch | Lovable",
      "source_url": "https://lovable.dev/guides/how-to-set-up-blog-from-scratch",
      "image_url": "https://lovable.dev/content/guides/thumbnails/how-to-set-up-blog-from-scratch.jpg",
      "width": 1536,
      "height": 1024,
      "bytes": 2365880,
      "query": "site:lovable.dev blog",
      "query_suffix": "site:lovable.dev blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/lovable/6843c9a453.webp",
      "alt": "Lifestyle & Wellness Blog Template | Lovable",
      "source_url": "https://lovable.dev/templates/websites/blog/evolve-lifestyle-wellness-blog-template",
      "image_url": "https://lovable.dev/cdn-cgi/image/width=3840,f=auto,fit=scale-down/templates/evolve-lifestyle-wellness-blog-template-screenshot.webp",
      "width": 1280,
      "height": 720,
      "bytes": 58187,
      "query": "site:lovable.dev blog",
      "query_suffix": "site:lovable.dev blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/lovable/fb26499445.webp",
      "alt": "10 Blog Niche Ideas That Actually Make Money in 2026 | Lovable",
      "source_url": "https://lovable.dev/guides/profitable-blog-niches-2026",
      "image_url": "https://lovable.dev/content/guides/thumbnails/profitable-blog-niches-2026.jpg",
      "width": 1536,
      "height": 1024,
      "bytes": 2897467,
      "query": "site:lovable.dev blog",
      "query_suffix": "site:lovable.dev blog"
    }
  ],
  "font_resources": [
    {
      "family": "Camera Plain Variable",
      "google_fonts_url": "https://fonts.google.com/specimen/Camera+Plain+Variable"
    },
    {
      "family": "Camera Plain Variable",
      "google_fonts_url": "https://fonts.google.com/specimen/Camera+Plain+Variable"
    }
  ],
  "google_fonts_css": "https://fonts.googleapis.com/css2?family=Camera+Plain+Variable&family=Camera+Plain+Variable&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/lovable",
  "agent_instructions": "You are designing or implementing in Lovable's brand identity.\n\n# Brand profile\n- Company: Lovable\n- Source: https://lovable.dev/\n- Color scheme: light\n\n# Colors\n- primary: #000000\n- accent: #1E1E1E\n- background: #FCFBF8\n- textPrimary: #1C1C1C\n- link: #000000\n\n# Typography\n- primary: Camera Plain Variable — https://fonts.google.com/specimen/Camera+Plain+Variable\n- heading: Camera Plain Variable — https://fonts.google.com/specimen/Camera+Plain+Variable\n\nLoad all fonts at once: \n\n# UI Components\n- buttonPrimary: background=#1E1E1E, textColor=#FAFAFA, borderRadius=8px, shadow=rgba(0, 0, 0, 0.08) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.16) 0px -1px 0px 0px inset, rgb(0, 0, 0) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.24) 0px 1px 0px 0px inset, rgba(255, 255, 255, 0.16) 0px -1px 0px 0px inset, rgba(0, 0, 0, 0.12) 0px 2px 2px -1px, rgba(0, 0, 0, 0.12) 0px 4px 4px -2px\n- buttonSecondary: background=transparent, textColor=#2E2E2D, borderColor=#C5C4C2, borderRadius=8px, shadow=none\n\n# Brand voice\n- Tone: modern\n- Energy: medium\n- Audience: developers and tech enthusiasts\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/lovable.json",
  "page_markdown": "# Lovable Brand Identity\n\nA complete profile of **Lovable**'s visual system — colors, typography, components, and personality — extracted from https://lovable.dev/. Built for designers, agents, and AI tools.\n\n- Page: https://characterquilt.com/branding/lovable\n- Machine-readable JSON: https://characterquilt.com/branding/lovable.json\n- Per-page llms.txt: https://characterquilt.com/branding/lovable/llms.txt\n\n## Quick Facts\n\n| Field | Value |\n|---|---|\n| Primary | #000000 |\n| Accent | #1E1E1E |\n| Body Font | Camera Plain Variable |\n| Heading Font | Camera Plain Variable |\n\n## Color Palette\n\n- primary: #000000\n- accent: #1E1E1E\n- background: #FCFBF8\n- textPrimary: #1C1C1C\n- link: #000000\n\n## Typography\n\n- primary: Camera Plain Variable — https://fonts.google.com/specimen/Camera+Plain+Variable\n- heading: Camera Plain Variable — https://fonts.google.com/specimen/Camera+Plain+Variable\n\n## Visual Assets\n\n- Logo: data:image/svg+xml;utf8,%3Csvg%20role%3D%22img%22%20aria-label%3D%22Lovable%22%20viewBox%3D%220%200%20755%20129%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22shrink-0%20text-foreground%20h-6%20lg%3Ah-%5B18px%5D%22%20data-fc-idx%3D%220%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M303.603%2030.94c9.149%200%2017.163%201.982%2024.04%205.945%206.876%203.963%2012.18%209.616%2015.91%2016.959%203.788%207.285%205.682%2015.852%205.682%2025.7%200%209.85-1.894%2018.447-5.682%2025.79-3.73%207.343-9.034%2012.996-15.91%2016.959-6.877%203.963-14.891%205.944-24.04%205.944-9.15%200-17.193-1.981-24.128-5.944-6.877-3.963-12.21-9.616-15.998-16.959-3.73-7.343-5.595-15.94-5.595-25.79%200-9.848%201.865-18.415%205.595-25.7%203.788-7.343%209.121-12.996%2015.998-16.96%206.935-3.962%2014.978-5.944%2024.128-5.944Zm176.168%200c8.683%200%2016.026%201.428%2022.029%204.284%206.002%202.797%2010.519%206.818%2013.55%2012.063%203.088%205.245%204.633%2011.511%204.633%2018.796v38.464c0%204.138.292%207.984.874%2011.539.641%203.497%201.545%205.712%202.71%206.644v2.972H496.03c-.641-2.506-1.136-5.332-1.486-8.479-.116-1.04-.214-2.1-.298-3.178a32.537%2032.537%200%200%201-2.149%202.828c-2.914%203.438-6.674%206.207-11.278%208.305-4.545%202.039-9.732%203.059-15.56%203.059-5.77%200-10.957-1.136-15.561-3.409-4.546-2.273-8.13-5.507-10.753-9.703-2.564-4.254-3.846-9.208-3.846-14.861%200-8.626%202.535-15.211%207.605-19.757%205.07-4.604%2012.385-7.605%2021.942-9.004l15.999-2.273c3.205-.467%205.74-1.05%207.605-1.749%201.865-.699%203.234-1.632%204.108-2.797.875-1.224%201.312-2.768%201.312-4.633%200-1.923-.524-3.672-1.573-5.245-.991-1.632-2.507-2.915-4.546-3.847-1.982-.99-4.4-1.486-7.256-1.486-4.546%200-8.189%201.195-10.928%203.585-2.739%202.33-4.225%205.536-4.458%209.615h-27.362c.233-6.178%202.098-11.656%205.595-16.435%203.555-4.837%208.479-8.596%2014.773-11.277%206.294-2.68%2013.58-4.02%2021.856-4.02Zm78.465%2015.936a31.342%2031.342%200%200%201%203.148-4.92c2.797-3.556%206.206-6.267%2010.227-8.132%204.022-1.923%208.538-2.884%2013.55-2.884%207.518%200%2014.046%201.952%2019.582%205.857%205.537%203.905%209.792%209.529%2012.764%2016.872%202.972%207.285%204.458%2015.94%204.458%2025.964%200%209.965-1.516%2018.62-4.546%2025.963-3.031%207.285-7.372%2012.879-13.025%2016.784-5.595%203.905-12.151%205.857-19.669%205.857-5.012%200-9.5-.873-13.463-2.622-3.905-1.748-7.227-4.371-9.966-7.868a31.218%2031.218%200%200%201-3.321-5.4v13.355h-26.227V.342h26.488v46.534ZM710.451%2030.94c8.567%200%2016.173%201.865%2022.817%205.595%206.643%203.73%2011.802%209.15%2015.473%2016.26%203.73%207.11%205.595%2015.619%205.595%2025.526%200%203.555-.03%206.382-.088%208.48h-63.814c.251%204.09%201.038%207.645%202.359%2010.665%201.632%203.73%203.963%206.556%206.993%208.479%203.031%201.865%206.615%202.798%2010.753%202.798%204.546%200%208.305-1.166%2011.277-3.497%202.972-2.389%204.838-5.74%205.595-10.053h26.487c-.815%206.761-3.117%2012.618-6.905%2017.572-3.73%204.953-8.713%208.771-14.949%2011.452-6.236%202.681-13.492%204.02-21.768%204.02-9.324%200-17.425-1.777-24.302-5.332-6.877-3.613-12.239-9.033-16.085-16.259-3.788-7.227-5.682-16.173-5.682-26.838%200-10.14%201.981-18.883%205.944-26.226%203.963-7.401%209.441-13.026%2016.435-16.872%206.993-3.846%2014.949-5.77%2023.865-5.77Zm-502.536%2069.546h32.087c23.362%200%2020.196%2025.163%2020.189%2025.216h-79.726V.342h27.45v100.144Zm185.126-2.03%2019.101-64.981h27.362l-31.908%2092.227h-29.46l-33.132-92.227h28.148l19.889%2064.981Zm263.245%2027.246h-26.488V.342h26.488v125.36ZM493.845%2080.731a13.951%2013.951%200%200%201-3.06%201.961c-2.04.991-4.808%201.836-8.305%202.536l-6.731%201.311c-4.487.874-7.868%202.214-10.141%204.02-2.214%201.807-3.322%204.343-3.322%207.606s1.195%205.857%203.584%207.78c2.39%201.924%205.45%202.886%209.18%202.886%203.73%200%207.022-.816%209.878-2.448%202.855-1.69%205.041-4.021%206.556-6.993%201.574-2.972%202.361-6.353%202.361-10.141v-8.518Zm82.662-29.597c-3.905%200-7.256%201.194-10.053%203.584-2.739%202.33-4.808%205.653-6.207%209.966-1.399%204.254-2.098%209.237-2.098%2014.949%200%205.77.699%2010.782%202.098%2015.036s3.468%207.547%206.207%209.878c2.797%202.331%206.148%203.497%2010.053%203.497%203.963%200%207.285-1.166%209.966-3.497%202.739-2.331%204.778-5.624%206.119-9.878%201.398-4.254%202.098-9.267%202.098-15.036%200-5.77-.7-10.782-2.098-15.036-1.341-4.255-3.38-7.548-6.119-9.88-2.681-2.389-6.003-3.583-9.966-3.583Zm-272.904.088c-3.847%200-7.169%201.078-9.966%203.234-2.739%202.098-4.838%205.274-6.295%209.528-1.457%204.196-2.185%209.383-2.185%2015.56%200%206.178.728%2011.395%202.185%2015.65%201.457%204.254%203.556%207.459%206.295%209.616%202.797%202.097%206.119%203.146%209.966%203.146%203.846%200%207.138-1.049%209.877-3.146%202.74-2.157%204.837-5.334%206.294-9.53%201.457-4.254%202.186-9.5%202.186-15.735%200-9.266-1.602-16.289-4.808-21.068-3.205-4.837-7.722-7.255-13.549-7.255Zm406.237-1.137c-3.905%200-7.343.962-10.316%202.885-2.914%201.865-5.187%204.662-6.819%208.392-.893%202.117-1.532%204.477-1.918%207.081h36.494c-.261-3.3-.917-6.156-1.969-8.567-1.34-3.264-3.321-5.712-5.944-7.344-2.622-1.631-5.799-2.447-9.528-2.447Z%22%20style%3D%22fill%3A%20rgb(28%2C%2028%2C%2028)%20!important%3B%22%2F%3E%3Cmask%20id%3D%22_R_9bajhepolliv9fkl5b_-b%22%20width%3D%22124%22%20height%3D%22126%22%20x%3D%220%22%20y%3D%220%22%20maskUnits%3D%22userSpaceOnUse%22%20style%3D%22mask-type%3A%20alpha%3B%20fill%3A%20none%20!important%3B%22%3E%3Cpath%20fill%3D%22url(%23_R_9bajhepolliv9fkl5b_-a)%22%20fill-rule%3D%22evenodd%22%20d%3D%22M37.3.343c20.43%200%2036.991%2016.605%2036.991%2037.088v14.095h12.31c20.43%200%2036.991%2016.605%2036.991%2037.088s-16.561%2037.088-36.99%2037.088H.31V37.431C.31%2016.948%2016.87.343%2037.3.343Z%22%20clip-rule%3D%22evenodd%22%20style%3D%22fill%3A%20url(%26quot%3B%23_R_9bajhepolliv9fkl5b_-a%26quot%3B)%20!important%3B%22%2F%3E%3C%2Fmask%3E%3Cg%20mask%3D%22url(%23_R_9bajhepolliv9fkl5b_-b)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-c)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Ccircle%20cx%3D%2254.389%22%20cy%3D%2267.257%22%20r%3D%2283.452%22%20fill%3D%22%234B73FF%22%20style%3D%22fill%3A%20rgb(75%2C%20115%2C%20255)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-d)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cellipse%20cx%3D%2263.557%22%20cy%3D%2221.462%22%20fill%3D%22%23FF66F4%22%20rx%3D%22106.879%22%20ry%3D%2283.452%22%20style%3D%22fill%3A%20rgb(255%2C%20102%2C%20244)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-e)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cellipse%20cx%3D%2280.992%22%20cy%3D%225.757%22%20fill%3D%22%23FF0105%22%20rx%3D%2283.452%22%20ry%3D%2273.289%22%20style%3D%22fill%3A%20rgb(255%2C%201%2C%205)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-f)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Ccircle%20cx%3D%2265.043%22%20cy%3D%2221.442%22%20r%3D%2250.188%22%20fill%3D%22%23FE7B02%22%20style%3D%22fill%3A%20rgb(254%2C%20123%2C%202)%20!important%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-c%22%20width%3D%22241.704%22%20height%3D%22241.704%22%20x%3D%22-66.463%22%20y%3D%22-53.596%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-d%22%20width%3D%22288.559%22%20height%3D%22241.704%22%20x%3D%22-80.723%22%20y%3D%22-99.39%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-e%22%20width%3D%22241.704%22%20height%3D%22221.378%22%20x%3D%22-39.86%22%20y%3D%22-104.931%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-f%22%20width%3D%22175.176%22%20height%3D%22175.176%22%20x%3D%22-22.545%22%20y%3D%22-66.146%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3ClinearGradient%20id%3D%22_R_9bajhepolliv9fkl5b_-a%22%20x1%3D%2241.797%22%20x2%3D%2279.356%22%20y1%3D%2222.372%22%20y2%3D%22125.655%22%20gradientUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cstop%20offset%3D%22.025%22%20stop-color%3D%22%23FF8E63%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(255%2C%20142%2C%2099)%20!important%3B%22%2F%3E%3Cstop%20offset%3D%22.56%22%20stop-color%3D%22%23FF7EB0%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(255%2C%20126%2C%20176)%20!important%3B%22%2F%3E%3Cstop%20offset%3D%22.95%22%20stop-color%3D%22%234B73FF%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(75%2C%20115%2C%20255)%20!important%3B%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\n- Favicon: https://lovable.dev/favicon.svg\n- Social card (og:image): https://lovable.dev/img/opengraph-image.png\n\n## UI Components\n\n- buttonPrimary: background=#1E1E1E, textColor=#FAFAFA, borderRadius=8px, shadow=rgba(0, 0, 0, 0.08) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.16) 0px -1px 0px 0px inset, rgb(0, 0, 0) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.24) 0px 1px 0px 0px inset, rgba(255, 255, 255, 0.16) 0px -1px 0px 0px inset, rgba(0, 0, 0, 0.12) 0px 2px 2px -1px, rgba(0, 0, 0, 0.12) 0px 4px 4px -2px\n- buttonSecondary: background=transparent, textColor=#2E2E2D, borderColor=#C5C4C2, borderRadius=8px, shadow=none\n\n## Brand Personality\n\nTone: modern · Energy: medium · Audience: developers and tech enthusiasts\n\n## Lovable Brand in the Wild\n\nReal-world brand assets — ads, campaigns, marketing materials.\n\n- **Perspective - Lifestyle Blog Template | Lovable**\n  - Image: https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/a8b116a9-20b6-43a8-ae91-693ba5a35c3b/id-preview-172571d0--7410f81b-8218-4f2d-bb32-1ba1f84eabb2.lovable.app-1760028648399.png\n  - Source: https://lovable.dev/templates/websites/blog/perspective-lifestyle\n- **How Long Should a Blog Post Be? Data-Backed Guide 2026 | Lovable**\n  - Image: https://lovable.dev/content/guides/thumbnails/how-long-should-blog-post-be-data-backed-guide.jpg\n  - Source: https://lovable.dev/guides/how-long-should-blog-post-be-data-backed-guide\n- **How to maintain brand control when building with Lovable | Lovable**\n  - Image: https://lovable.dev/content/news/covers/brand-control-marketing-design.png\n  - Source: https://lovable.dev/blog/how-to-maintain-brand-control-when-build-with-lovable\n- **How to Set Up a Blog from Scratch | Lovable**\n  - Image: https://lovable.dev/content/guides/thumbnails/how-to-set-up-blog-from-scratch.jpg\n  - Source: https://lovable.dev/guides/how-to-set-up-blog-from-scratch\n- **Lifestyle & Wellness Blog Template | Lovable**\n  - Image: https://lovable.dev/cdn-cgi/image/width=3840,f=auto,fit=scale-down/templates/evolve-lifestyle-wellness-blog-template-screenshot.webp\n  - Source: https://lovable.dev/templates/websites/blog/evolve-lifestyle-wellness-blog-template\n- **10 Blog Niche Ideas That Actually Make Money in 2026 | Lovable**\n  - Image: https://lovable.dev/content/guides/thumbnails/profitable-blog-niches-2026.jpg\n  - Source: https://lovable.dev/guides/profitable-blog-niches-2026\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\": \"Camera Plain Variable\",\n      \"role\": \"unknown\"\n    }\n  ],\n  \"colors\": {\n    \"primary\": \"#000000\",\n    \"accent\": \"#1E1E1E\",\n    \"background\": \"#FCFBF8\",\n    \"textPrimary\": \"#1C1C1C\",\n    \"link\": \"#000000\"\n  },\n  \"typography\": {\n    \"fontFamilies\": {\n      \"primary\": \"Camera Plain Variable\",\n      \"heading\": \"Camera Plain Variable\"\n    },\n    \"fontStacks\": {\n      \"heading\": [\n        \"Camera Plain Variable\",\n        \"ui-sans-serif\",\n        \"system-ui\",\n        \"sans-serif\"\n      ],\n      \"body\": [\n        \"Camera Plain Variable\",\n        \"ui-sans-serif\",\n        \"system-ui\",\n        \"sans-serif\"\n      ],\n      \"paragraph\": [\n        \"Camera Plain Variable\",\n        \"ui-sans-serif\",\n        \"system-ui\",\n        \"sans-serif\"\n      ]\n    },\n    \"fontSizes\": {\n      \"h1\": \"20px\",\n      \"h2\": \"48px\",\n      \"body\": \"20px\"\n    }\n  },\n  \"spacing\": {\n    \"baseUnit\": 4,\n    \"borderRadius\": \"4px\"\n  },\n  \"components\": {\n    \"buttonPrimary\": {\n      \"background\": \"#1E1E1E\",\n      \"textColor\": \"#FAFAFA\",\n      \"borderRadius\": \"8px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"8px\",\n        \"topRight\": \"8px\",\n        \"bottomRight\": \"8px\",\n        \"bottomLeft\": \"8px\"\n      },\n      \"shadow\": \"rgba(0, 0, 0, 0.08) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.16) 0px -1px 0px 0px inset, rgb(0, 0, 0) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.24) 0px 1px 0px 0px inset, rgba(255, 255, 255, 0.16) 0px -1px 0px 0px inset, rgba(0, 0, 0, 0.12) 0px 2px 2px -1px, rgba(0, 0, 0, 0.12) 0px 4px 4px -2px\"\n    },\n    \"buttonSecondary\": {\n      \"background\": \"transparent\",\n      \"textColor\": \"#2E2E2D\",\n      \"borderColor\": \"#C5C4C2\",\n      \"borderRadius\": \"8px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"8px\",\n        \"topRight\": \"8px\",\n        \"bottomRight\": \"8px\",\n        \"bottomLeft\": \"8px\"\n      },\n      \"shadow\": \"none\"\n    }\n  },\n  \"images\": {\n    \"logo\": \"data:image/svg+xml;utf8,%3Csvg%20role%3D%22img%22%20aria-label%3D%22Lovable%22%20viewBox%3D%220%200%20755%20129%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22shrink-0%20text-foreground%20h-6%20lg%3Ah-%5B18px%5D%22%20data-fc-idx%3D%220%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M303.603%2030.94c9.149%200%2017.163%201.982%2024.04%205.945%206.876%203.963%2012.18%209.616%2015.91%2016.959%203.788%207.285%205.682%2015.852%205.682%2025.7%200%209.85-1.894%2018.447-5.682%2025.79-3.73%207.343-9.034%2012.996-15.91%2016.959-6.877%203.963-14.891%205.944-24.04%205.944-9.15%200-17.193-1.981-24.128-5.944-6.877-3.963-12.21-9.616-15.998-16.959-3.73-7.343-5.595-15.94-5.595-25.79%200-9.848%201.865-18.415%205.595-25.7%203.788-7.343%209.121-12.996%2015.998-16.96%206.935-3.962%2014.978-5.944%2024.128-5.944Zm176.168%200c8.683%200%2016.026%201.428%2022.029%204.284%206.002%202.797%2010.519%206.818%2013.55%2012.063%203.088%205.245%204.633%2011.511%204.633%2018.796v38.464c0%204.138.292%207.984.874%2011.539.641%203.497%201.545%205.712%202.71%206.644v2.972H496.03c-.641-2.506-1.136-5.332-1.486-8.479-.116-1.04-.214-2.1-.298-3.178a32.537%2032.537%200%200%201-2.149%202.828c-2.914%203.438-6.674%206.207-11.278%208.305-4.545%202.039-9.732%203.059-15.56%203.059-5.77%200-10.957-1.136-15.561-3.409-4.546-2.273-8.13-5.507-10.753-9.703-2.564-4.254-3.846-9.208-3.846-14.861%200-8.626%202.535-15.211%207.605-19.757%205.07-4.604%2012.385-7.605%2021.942-9.004l15.999-2.273c3.205-.467%205.74-1.05%207.605-1.749%201.865-.699%203.234-1.632%204.108-2.797.875-1.224%201.312-2.768%201.312-4.633%200-1.923-.524-3.672-1.573-5.245-.991-1.632-2.507-2.915-4.546-3.847-1.982-.99-4.4-1.486-7.256-1.486-4.546%200-8.189%201.195-10.928%203.585-2.739%202.33-4.225%205.536-4.458%209.615h-27.362c.233-6.178%202.098-11.656%205.595-16.435%203.555-4.837%208.479-8.596%2014.773-11.277%206.294-2.68%2013.58-4.02%2021.856-4.02Zm78.465%2015.936a31.342%2031.342%200%200%201%203.148-4.92c2.797-3.556%206.206-6.267%2010.227-8.132%204.022-1.923%208.538-2.884%2013.55-2.884%207.518%200%2014.046%201.952%2019.582%205.857%205.537%203.905%209.792%209.529%2012.764%2016.872%202.972%207.285%204.458%2015.94%204.458%2025.964%200%209.965-1.516%2018.62-4.546%2025.963-3.031%207.285-7.372%2012.879-13.025%2016.784-5.595%203.905-12.151%205.857-19.669%205.857-5.012%200-9.5-.873-13.463-2.622-3.905-1.748-7.227-4.371-9.966-7.868a31.218%2031.218%200%200%201-3.321-5.4v13.355h-26.227V.342h26.488v46.534ZM710.451%2030.94c8.567%200%2016.173%201.865%2022.817%205.595%206.643%203.73%2011.802%209.15%2015.473%2016.26%203.73%207.11%205.595%2015.619%205.595%2025.526%200%203.555-.03%206.382-.088%208.48h-63.814c.251%204.09%201.038%207.645%202.359%2010.665%201.632%203.73%203.963%206.556%206.993%208.479%203.031%201.865%206.615%202.798%2010.753%202.798%204.546%200%208.305-1.166%2011.277-3.497%202.972-2.389%204.838-5.74%205.595-10.053h26.487c-.815%206.761-3.117%2012.618-6.905%2017.572-3.73%204.953-8.713%208.771-14.949%2011.452-6.236%202.681-13.492%204.02-21.768%204.02-9.324%200-17.425-1.777-24.302-5.332-6.877-3.613-12.239-9.033-16.085-16.259-3.788-7.227-5.682-16.173-5.682-26.838%200-10.14%201.981-18.883%205.944-26.226%203.963-7.401%209.441-13.026%2016.435-16.872%206.993-3.846%2014.949-5.77%2023.865-5.77Zm-502.536%2069.546h32.087c23.362%200%2020.196%2025.163%2020.189%2025.216h-79.726V.342h27.45v100.144Zm185.126-2.03%2019.101-64.981h27.362l-31.908%2092.227h-29.46l-33.132-92.227h28.148l19.889%2064.981Zm263.245%2027.246h-26.488V.342h26.488v125.36ZM493.845%2080.731a13.951%2013.951%200%200%201-3.06%201.961c-2.04.991-4.808%201.836-8.305%202.536l-6.731%201.311c-4.487.874-7.868%202.214-10.141%204.02-2.214%201.807-3.322%204.343-3.322%207.606s1.195%205.857%203.584%207.78c2.39%201.924%205.45%202.886%209.18%202.886%203.73%200%207.022-.816%209.878-2.448%202.855-1.69%205.041-4.021%206.556-6.993%201.574-2.972%202.361-6.353%202.361-10.141v-8.518Zm82.662-29.597c-3.905%200-7.256%201.194-10.053%203.584-2.739%202.33-4.808%205.653-6.207%209.966-1.399%204.254-2.098%209.237-2.098%2014.949%200%205.77.699%2010.782%202.098%2015.036s3.468%207.547%206.207%209.878c2.797%202.331%206.148%203.497%2010.053%203.497%203.963%200%207.285-1.166%209.966-3.497%202.739-2.331%204.778-5.624%206.119-9.878%201.398-4.254%202.098-9.267%202.098-15.036%200-5.77-.7-10.782-2.098-15.036-1.341-4.255-3.38-7.548-6.119-9.88-2.681-2.389-6.003-3.583-9.966-3.583Zm-272.904.088c-3.847%200-7.169%201.078-9.966%203.234-2.739%202.098-4.838%205.274-6.295%209.528-1.457%204.196-2.185%209.383-2.185%2015.56%200%206.178.728%2011.395%202.185%2015.65%201.457%204.254%203.556%207.459%206.295%209.616%202.797%202.097%206.119%203.146%209.966%203.146%203.846%200%207.138-1.049%209.877-3.146%202.74-2.157%204.837-5.334%206.294-9.53%201.457-4.254%202.186-9.5%202.186-15.735%200-9.266-1.602-16.289-4.808-21.068-3.205-4.837-7.722-7.255-13.549-7.255Zm406.237-1.137c-3.905%200-7.343.962-10.316%202.885-2.914%201.865-5.187%204.662-6.819%208.392-.893%202.117-1.532%204.477-1.918%207.081h36.494c-.261-3.3-.917-6.156-1.969-8.567-1.34-3.264-3.321-5.712-5.944-7.344-2.622-1.631-5.799-2.447-9.528-2.447Z%22%20style%3D%22fill%3A%20rgb(28%2C%2028%2C%2028)%20!important%3B%22%2F%3E%3Cmask%20id%3D%22_R_9bajhepolliv9fkl5b_-b%22%20width%3D%22124%22%20height%3D%22126%22%20x%3D%220%22%20y%3D%220%22%20maskUnits%3D%22userSpaceOnUse%22%20style%3D%22mask-type%3A%20alpha%3B%20fill%3A%20none%20!important%3B%22%3E%3Cpath%20fill%3D%22url(%23_R_9bajhepolliv9fkl5b_-a)%22%20fill-rule%3D%22evenodd%22%20d%3D%22M37.3.343c20.43%200%2036.991%2016.605%2036.991%2037.088v14.095h12.31c20.43%200%2036.991%2016.605%2036.991%2037.088s-16.561%2037.088-36.99%2037.088H.31V37.431C.31%2016.948%2016.87.343%2037.3.343Z%22%20clip-rule%3D%22evenodd%22%20style%3D%22fill%3A%20url(%26quot%3B%23_R_9bajhepolliv9fkl5b_-a%26quot%3B)%20!important%3B%22%2F%3E%3C%2Fmask%3E%3Cg%20mask%3D%22url(%23_R_9bajhepolliv9fkl5b_-b)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-c)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Ccircle%20cx%3D%2254.389%22%20cy%3D%2267.257%22%20r%3D%2283.452%22%20fill%3D%22%234B73FF%22%20style%3D%22fill%3A%20rgb(75%2C%20115%2C%20255)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-d)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cellipse%20cx%3D%2263.557%22%20cy%3D%2221.462%22%20fill%3D%22%23FF66F4%22%20rx%3D%22106.879%22%20ry%3D%2283.452%22%20style%3D%22fill%3A%20rgb(255%2C%20102%2C%20244)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-e)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cellipse%20cx%3D%2280.992%22%20cy%3D%225.757%22%20fill%3D%22%23FF0105%22%20rx%3D%2283.452%22%20ry%3D%2273.289%22%20style%3D%22fill%3A%20rgb(255%2C%201%2C%205)%20!important%3B%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23_R_9bajhepolliv9fkl5b_-f)%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Ccircle%20cx%3D%2265.043%22%20cy%3D%2221.442%22%20r%3D%2250.188%22%20fill%3D%22%23FE7B02%22%20style%3D%22fill%3A%20rgb(254%2C%20123%2C%202)%20!important%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-c%22%20width%3D%22241.704%22%20height%3D%22241.704%22%20x%3D%22-66.463%22%20y%3D%22-53.596%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-d%22%20width%3D%22288.559%22%20height%3D%22241.704%22%20x%3D%22-80.723%22%20y%3D%22-99.39%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-e%22%20width%3D%22241.704%22%20height%3D%22221.378%22%20x%3D%22-39.86%22%20y%3D%22-104.931%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22_R_9bajhepolliv9fkl5b_-f%22%20width%3D%22175.176%22%20height%3D%22175.176%22%20x%3D%22-22.545%22%20y%3D%22-66.146%22%20color-interpolation-filters%3D%22sRGB%22%20filterUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeBlend%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3CfeGaussianBlur%20result%3D%22effect1_foregroundBlur%22%20stdDeviation%3D%2218.7%22%20style%3D%22fill%3A%20none%20!important%3B%22%2F%3E%3C%2Ffilter%3E%3ClinearGradient%20id%3D%22_R_9bajhepolliv9fkl5b_-a%22%20x1%3D%2241.797%22%20x2%3D%2279.356%22%20y1%3D%2222.372%22%20y2%3D%22125.655%22%20gradientUnits%3D%22userSpaceOnUse%22%20style%3D%22fill%3A%20none%20!important%3B%22%3E%3Cstop%20offset%3D%22.025%22%20stop-color%3D%22%23FF8E63%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(255%2C%20142%2C%2099)%20!important%3B%22%2F%3E%3Cstop%20offset%3D%22.56%22%20stop-color%3D%22%23FF7EB0%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(255%2C%20126%2C%20176)%20!important%3B%22%2F%3E%3Cstop%20offset%3D%22.95%22%20stop-color%3D%22%234B73FF%22%20style%3D%22fill%3A%20none%20!important%3B%20stop-color%3A%20rgb(75%2C%20115%2C%20255)%20!important%3B%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\",\n    \"favicon\": \"https://lovable.dev/favicon.svg\",\n    \"ogImage\": \"https://lovable.dev/img/opengraph-image.png\",\n    \"logoHref\": \"/\",\n    \"logoAlt\": \"Lovable\"\n  },\n  \"__llm_logo_reasoning\": {\n    \"selectedIndex\": 3,\n    \"reasoning\": \"Selected #3 because it is visible, located in the header, links to the homepage, and matches the brand name 'Lovable'.\",\n    \"confidence\": 0.9,\n    \"source\": \"llm\"\n  },\n  \"__llm_button_reasoning\": {\n    \"primary\": {\n      \"index\": 0,\n      \"text\": \"Get started\",\n      \"reasoning\": \"Button #0 with text 'Get started' is likely the primary CTA due to its action-oriented text and dark background color, which stands out as a strong call-to-action.\"\n    },\n    \"secondary\": {\n      \"index\": 6,\n      \"text\": \"View all\",\n      \"reasoning\": \"Button #6 with text 'View all' is chosen as secondary due to its transparent background, making it less prominent than the primary button.\"\n    },\n    \"confidence\": 0.9\n  },\n  \"personality\": {\n    \"tone\": \"modern\",\n    \"energy\": \"medium\",\n    \"targetAudience\": \"developers and tech enthusiasts\"\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\": 3,\n        \"selectedLogoReasoning\": \"Selected #3 because it is visible, located in the header, links to the homepage, and matches the brand name 'Lovable'.\",\n        \"confidence\": 0.9\n      }\n    },\n    \"buttonClassification\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true\n    }\n  }\n}\n```\n"
}