// Clean line-style SVG icons for portfolio links.
// All sized via currentColor + 1.5px stroke to match the editorial type.
const Icons = {
  GitHub: (props) => (
    <svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M12 .5C5.65.5.5 5.65.5 12c0 5.08 3.29 9.39 7.86 10.91.58.11.79-.25.79-.55 0-.27-.01-1.16-.02-2.1-3.2.7-3.87-1.36-3.87-1.36-.52-1.32-1.27-1.67-1.27-1.67-1.04-.71.08-.7.08-.7 1.15.08 1.76 1.18 1.76 1.18 1.02 1.75 2.69 1.24 3.35.95.1-.74.4-1.24.73-1.53-2.55-.29-5.24-1.28-5.24-5.69 0-1.26.45-2.28 1.18-3.09-.12-.29-.51-1.46.11-3.05 0 0 .97-.31 3.18 1.18a11.04 11.04 0 0 1 5.79 0c2.21-1.49 3.18-1.18 3.18-1.18.62 1.59.23 2.76.11 3.05.74.81 1.18 1.83 1.18 3.09 0 4.42-2.69 5.39-5.26 5.68.41.36.78 1.06.78 2.13 0 1.54-.01 2.78-.01 3.16 0 .31.21.67.8.55C20.21 21.39 23.5 17.08 23.5 12 23.5 5.65 18.35.5 12 .5z"/>
    </svg>
  ),
  LinkedIn: (props) => (
    <svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M20.45 20.45h-3.55v-5.57c0-1.33-.02-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.95v5.66H9.36V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45C23.21 24 24 23.23 24 22.28V1.72C24 .77 23.21 0 22.22 0z"/>
    </svg>
  ),
  X: (props) => (
    <svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.451-6.231zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z"/>
    </svg>
  ),
  SoundCloud: (props) => (
    <svg viewBox="0 0 24 24" width="20" height="16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M1.18 14.2c.07 0 .12-.05.13-.13l.21-2.04-.21-2.08c-.01-.07-.06-.13-.13-.13s-.13.06-.14.13L.83 12.03l.21 2.04c.01.08.07.13.14.13zm1.04.78c.08 0 .14-.06.15-.14l.27-2.81-.27-2.86c-.01-.08-.07-.14-.15-.14s-.14.06-.15.14l-.24 2.86.24 2.81c.01.08.07.14.15.14zm1.16.16c.09 0 .16-.07.17-.16l.25-2.96-.25-3.05c-.01-.09-.08-.16-.17-.16s-.16.07-.17.16l-.22 3.05.22 2.96c.01.09.08.16.17.16zm1.18.05c.1 0 .18-.08.19-.18l.23-3.01-.23-3.13c-.01-.1-.09-.18-.19-.18s-.18.08-.19.18l-.21 3.13.21 3.01c.01.1.09.18.19.18zm1.21-.04c.11 0 .2-.09.21-.2l.22-2.97-.22-3.18c-.01-.11-.1-.2-.21-.2s-.2.09-.21.2l-.19 3.18.19 2.97c.01.11.1.2.21.2zm1.22.02c.12 0 .22-.1.23-.22l.2-2.95-.2-2.92c-.01-.12-.11-.22-.23-.22s-.22.1-.23.22l-.18 2.92.18 2.95c.01.12.11.22.23.22zm1.22 0c.13 0 .24-.11.25-.24l.19-2.95-.19-2.7c-.01-.13-.12-.24-.25-.24s-.24.11-.25.24l-.17 2.7.17 2.95c.01.13.12.24.25.24zm1.24.02c.14 0 .26-.12.27-.26l.17-2.97-.17-2.5c-.01-.14-.13-.26-.27-.26s-.26.12-.27.26l-.15 2.5.15 2.97c.01.14.13.26.27.26zm1.36.01c.16 0 .29-.13.3-.3l.15-2.98-.15-2.78c-.01-.17-.14-.3-.3-.3s-.29.13-.3.3l-.13 2.78.13 2.98c.01.17.14.3.3.3zm10.4-.01c1.84 0 3.34-1.5 3.34-3.34 0-1.84-1.5-3.34-3.34-3.34-.5 0-.97.11-1.4.31-.04-2.6-2.16-4.69-4.77-4.69-.62 0-1.21.12-1.75.34-.21.08-.27.17-.27.34v9.96c0 .19.14.34.32.36h7.87z"/>
    </svg>
  ),
  Email: (props) => (
    <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true" {...props}>
      <rect x="2.75" y="4.75" width="18.5" height="14.5" rx="2"/>
      <path d="m3.5 6.5 8.5 6.25L20.5 6.5"/>
    </svg>
  ),
};

window.PFIcons = Icons;
