// Unified brand icons using inline SVG paths from simpleicons.org (MIT license).

const IconPaths = {
  python: "M14.31.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z",
  cplusplus: "M22.394 6c-.167-.29-.398-.543-.652-.69L12.926.22c-.509-.294-1.34-.294-1.848 0L2.26 5.31c-.508.293-.923 1.013-.923 1.6v10.18c0 .294.104.62.271.91.167.29.398.543.652.69l8.816 5.09c.508.293 1.34.293 1.848 0l8.816-5.09c.254-.147.485-.4.652-.69.167-.29.27-.616.27-.91V6.91c.003-.294-.1-.62-.268-.91zM12 19.11c-3.92 0-7.109-3.19-7.109-7.11 0-3.92 3.19-7.11 7.11-7.11a7.133 7.133 0 016.156 3.553l-3.076 1.78a3.567 3.567 0 00-3.08-1.78A3.56 3.56 0 008.444 12 3.56 3.56 0 0012 15.555a3.57 3.57 0 003.08-1.778l3.078 1.78A7.135 7.135 0 0112 19.11zm7.11-6.715h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79zm2.962 0h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79z",
  typescript: "M1.5 0h21l-1.91 21.563L11.977 24l-8.565-2.438L1.5 0zm17.09 4.413L5.41 4.41v2.382h4.65v11.826h2.857V6.794h4.67l.003-2.381zm-6.98 12.19v2.43c.442.25.94.436 1.499.561.558.125 1.139.187 1.746.187.59 0 1.14-.056 1.674-.169.535-.113.998-.293 1.403-.54.402-.247.72-.565.952-.954.232-.39.349-.872.349-1.444 0-.415-.061-.775-.184-1.086a2.5 2.5 0 0 0-.533-.843 4.2 4.2 0 0 0-.832-.674 14.4 14.4 0 0 0-1.104-.642 18 18 0 0 1-.938-.508 5.2 5.2 0 0 1-.653-.44 2.1 2.1 0 0 1-.389-.4.7.7 0 0 1-.125-.4c0-.128.037-.24.111-.343.074-.103.18-.195.324-.273.144-.078.32-.139.526-.185.207-.048.455-.071.687-.071.184 0 .37.015.584.043.213.028.43.064.64.121a4.2 4.2 0 0 1 .666.214c.21.091.395.193.584.308v-2.305a6.98 6.98 0 0 0-1.405-.308 13.62 13.62 0 0 0-1.758-.079c-.59 0-1.131.055-1.66.17-.53.114-.99.3-1.388.556-.398.254-.713.578-.944.972-.231.395-.343.871-.343 1.432 0 .681.197 1.264.592 1.749.395.485.995.952 1.795 1.345a22 22 0 0 1 1.201.548c.334.166.61.322.843.472.217.162.388.324.5.484a1 1 0 0 1 .187.58c0 .133-.034.262-.098.381a.9.9 0 0 1-.297.302 1.7 1.7 0 0 1-.517.197c-.213.05-.46.075-.747.075-.486 0-.967-.085-1.444-.256a4.3 4.3 0 0 1-1.335-.766z",
  dart: "M4.105 4.105S9.158 1.58 11.684.316a3.079 3.079 0 0 1 1.049-.28 1.503 1.503 0 0 1 1.147.28L24 9.948l-4.263 4.263L9.789 24H5.684l-.316-.316L.316 18.948v-3.79z M4.105 4.105c-.633 1.58-3.79 10.422-3.79 14.843l9.474 4.735V4.105h-5.684z M4.105 4.105h5.684v19.578S3.474 20.528.947 19.265c-.316-.948-.633-2.21-.633-3.79.317-3.79 1.58-8.21 3.79-11.37z M24 9.948l-4.579-1.263-9.632-4.58L13.579.317z M15.158 18.316L9.789 23.684l9.948-9.473L24 9.948l-3.473.948z M23.684 14.21l-4.263-1.58L9.789 4.105l9.632 4.58z",
  lua: "M10.222 5.112A7.722 7.722 0 002.5 12.833a7.722 7.722 0 007.722 7.722 7.722 7.722 0 007.721-7.722 7.722 7.722 0 00-7.721-7.721zm.001 3.056a4.666 4.666 0 014.665 4.665 4.666 4.666 0 01-4.665 4.666 4.666 4.666 0 01-4.666-4.666 4.666 4.666 0 014.666-4.665zm0 1.527a3.139 3.139 0 00-3.139 3.138 3.139 3.139 0 003.139 3.139 3.139 3.139 0 003.138-3.139A3.139 3.139 0 0010.223 9.695zm8.052-6.694a2.335 2.335 0 00-2.335 2.335 2.335 2.335 0 002.335 2.335 2.335 2.335 0 002.336-2.335A2.335 2.335 0 0018.275 3zm-5.836 5.362a1.138 1.138 0 00-1.138 1.139 1.138 1.138 0 001.138 1.137 1.138 1.138 0 001.139-1.137 1.138 1.138 0 00-1.139-1.14z",
  sql: "M16.405 5.501c-.115 0-.193.014-.274.033v.013h.014c.054.103.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77 18.695h-.927a50.854 50.854 0 00-.27-4.41h-.008l-1.41 4.41H2.45l-1.4-4.41h-.01a72.892 72.892 0 00-.195 4.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335 4.064h.008l1.347-4.064h1.095c.242 2.015.384 3.86.428 5.53zm4.017-4.08c-.378 2.045-.876 3.533-1.492 4.46-.482.716-1.01 1.073-1.583 1.073-.153 0-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268 0 .483-.075.647-.222.197-.18.295-.382.295-.605 0-.155-.077-.47-.23-.944L6.23 14.615h.91l.727 2.36c.164.536.233 1.09.2 1.66.404-1.08.685-2.258.842-3.54zm12.325 4.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.51.648-1.263.648-2.26 0-1.836-.72-2.754-2.158-2.754-.706 0-1.256.233-1.652.7-.43.508-.644 1.256-.644 2.245 0 .972.19 1.686.57 2.14.345.41.868.615 1.566.615.262 0 .5-.033.716-.1l1.324.77.33-.618zM15.2 17.59c-.222-.355-.333-.93-.333-1.72 0-1.38.42-2.07 1.257-2.07.438 0 .76.164.963.493.22.356.33.928.33 1.708 0 1.392-.42 2.088-1.258 2.088-.437 0-.76-.164-.963-.5zm-1.91-.422c0 .47-.172.854-.518 1.156-.345.302-.81.453-1.39.453-.545 0-1.07-.174-1.584-.52l.237-.475c.44.22.838.33 1.195.33.334 0 .595-.074.783-.22a.754.754 0 00.297-.615c0-.317-.22-.586-.625-.81-.375-.2-1.12-.62-1.12-.62-.405-.295-.607-.61-.607-1.13 0-.45.157-.81.472-1.088.315-.278.72-.417 1.22-.417.513 0 .98.136 1.4.41l-.213.476a2.726 2.726 0 00-1.064-.227c-.286 0-.506.07-.66.21a.73.73 0 00-.244.546c0 .316.227.59.643.82.38.2 1.144.63 1.144.63.416.294.625.608.625 1.123z",
  pytorch: "M12.005 0L4.952 7.053a9.865 9.865 0 000 14.022 9.866 9.866 0 0014.022 0c3.984-3.9 3.986-10.205.085-14.108l-1.422 1.422a7.832 7.832 0 01-.084 11.18 7.9 7.9 0 01-11.18 0 7.9 7.9 0 010-11.18l4.247-4.247.763-.85V0zm3.86 4.593a1.28 1.28 0 100 2.56 1.28 1.28 0 000-2.56z",
  numpy: "M10.315 3.633v2.13l-1.807-1.063L6.129 6.082l4.186 2.463v2.275l-6.17-3.631v4.808l1.864 1.097V9.891l4.306 2.533v7.944l1.856 1.092-.002-7.942 4.185-2.462-.042 4.25 1.82-1.071.054-5.267-6.016 3.539v-2.275l4.185-2.461L10.315 3.633zM10.315.31L1.829 5.3v10l8.485 4.99 1.857-1.093L3.685 14.21V6.388l6.63-3.9L16.95 6.39v7.82l-5.65 3.323-.002 2.17L18.485 15.3v-10L10.315.31z",
  git: "M23.546 10.93L13.067.452a1.55 1.55 0 00-2.188 0L8.708 2.627l2.76 2.76a1.838 1.838 0 012.327 2.341l2.658 2.66a1.838 1.838 0 011.9 3.039 1.837 1.837 0 01-2.595 0 1.838 1.838 0 01-.404-1.996L12.86 8.955v6.525a1.838 1.838 0 11-1.51-.054V8.835a1.838 1.838 0 01-.998-2.41L7.636 3.7.45 10.881a1.55 1.55 0 000 2.19l10.48 10.477a1.55 1.55 0 002.188 0l10.428-10.428a1.55 1.55 0 000-2.19z",
  github: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.4 3-.405 1.02.005 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12",
  linkedin: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.063 2.063 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z",
  email: "M12 12.713l-11.985-9.713h23.97l-11.985 9.713zm-5.425-1.822l-6.575-5.329v12.501l6.575-7.172zm10.85 0l6.575 7.172v-12.501l-6.575 5.329zm-1.557 1.261l-3.868 3.135-3.868-3.135-8.11 8.848h23.956l-8.11-8.848z",
  orcid: "M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zM7.369 4.378c.525 0 .947.431.947.947s-.422.947-.947.947a.95.95 0 01-.947-.947c0-.525.422-.947.947-.947zm-.722 3.038h1.444v10.041H6.647V7.416zm3.562 0h3.9c3.712 0 5.344 2.653 5.344 5.025 0 2.578-2.016 5.025-5.325 5.025h-3.919V7.416zm1.444 1.303v7.444h2.297c3.272 0 4.022-2.484 4.022-3.722 0-2.016-1.284-3.722-4.097-3.722h-2.222z",
};

function Icon({ name, size = 24, color = '#2a1f4a' }) {
  const d = IconPaths[name];
  if (!d) return null;
  return (
    <svg viewBox="0 0 24 24" width={size} height={size} style={{ display: 'block' }}>
      <path d={d} fill={color} />
    </svg>
  );
}

Object.assign(window, { Icon, IconPaths });
