<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Contributor.info</title>
    
    <!-- Performance optimizations -->
    <link rel="preconnect" href="https://avatars.githubusercontent.com" crossorigin>
    <link rel="preconnect" href="https://api.github.com" crossorigin>
    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
    <link rel="dns-prefetch" href="https://api.github.com">
    <link rel="dns-prefetch" href="https://github.com">
    <link rel="dns-prefetch" href="https://us.i.posthog.com">
    <link rel="dns-prefetch" href="https://browser.sentry-cdn.com">
    <link rel="dns-prefetch" href="https://fonts.googleapis.com">
    <link rel="dns-prefetch" href="https://fonts.gstatic.com">
    
    <!-- Preload critical resources for LCP optimization -->
    <link rel="modulepreload" href="data:application/octet-stream;base64,aW1wb3J0IHsgU3RyaWN0TW9kZSB9IGZyb20gJ3JlYWN0JzsKaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnOwppbXBvcnQgQXBwIGZyb20gJy4vQXBwJzsKaW1wb3J0ICcuL2luZGV4LmNzcyc7CmltcG9ydCB7IFBIUHJvdmlkZXIgfSBmcm9tICcuL2xpYi9wb3N0aG9nJzsKaW1wb3J0IHsgTWV0YVRhZ3NQcm92aWRlciB9IGZyb20gJy4vY29tcG9uZW50cy9jb21tb24vbGF5b3V0JzsKaW1wb3J0IHsgdHJhY2tXZWJWaXRhbHMsIHRyYWNrQ3VzdG9tTWV0cmljcyB9IGZyb20gJy4vbGliL3dlYi12aXRhbHMnOwoKLy8gRHluYW1pY2FsbHkgaW1wb3J0IGFuZCBpbml0aWFsaXplIFNlbnRyeSBvbmx5IHdoZW4gbmVlZGVkCmNvbnN0IGluaXRpYWxpemVTZW50cnkgPSBhc3luYyAoKSA9PiB7CiAgaWYgKCFpbXBvcnQubWV0YS5lbnYuVklURV9TRU5UUllfRFNOKSByZXR1cm47CiAgCiAgdHJ5IHsKICAgIC8vIER5bmFtaWMgaW1wb3J0IHRvIGV4Y2x1ZGUgZnJvbSBpbml0aWFsIGJ1bmRsZQogICAgY29uc3QgeyBpbml0LCBicm93c2VyVHJhY2luZ0ludGVncmF0aW9uLCByZXBsYXlJbnRlZ3JhdGlvbiwgYWRkSW50ZWdyYXRpb24gfSA9IGF3YWl0IGltcG9ydCgiQHNlbnRyeS9yZWFjdCIpOwogICAgCiAgICBpbml0KHsKICAgICAgZHNuOiBpbXBvcnQubWV0YS5lbnYuVklURV9TRU5UUllfRFNOLAogICAgICBpbnRlZ3JhdGlvbnM6IFsKICAgICAgICBicm93c2VyVHJhY2luZ0ludGVncmF0aW9uKCksCiAgICAgICAgLy8gUmVwbGF5IGludGVncmF0aW9uIHdpbGwgYmUgYWRkZWQgbGF0ZXIKICAgICAgXSwKICAgICAgLy8gT3B0aW1pemUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZwogICAgICB0cmFjZXNTYW1wbGVSYXRlOiBpbXBvcnQubWV0YS5lbnYuTU9ERSA9PT0gJ3Byb2R1Y3Rpb24nID8gMC4wMSA6IDEuMCwKICAgICAgcmVwbGF5c1Nlc3Npb25TYW1wbGVSYXRlOiAwLjAxLAogICAgICByZXBsYXlzT25FcnJvclNhbXBsZVJhdGU6IDAuMSwKICAgICAgc2VuZERlZmF1bHRQaWk6IGZhbHNlLAogICAgICBlbnZpcm9ubWVudDogaW1wb3J0Lm1ldGEuZW52Lk1PREUsCiAgICAgIGJlZm9yZVNlbmQ6IChldmVudCkgPT4gewogICAgICAgIC8vIEZpbHRlciBvdXQgZXZlbnRzIHRoYXQgbWlnaHQgaW1wYWN0IHBlcmZvcm1hbmNlCiAgICAgICAgcmV0dXJuIGV2ZW50OwogICAgICB9CiAgICB9KTsKCiAgICAvLyBGdXJ0aGVyIGRlZmVyIHJlcGxheSBpbnRlZ3JhdGlvbiBpbml0aWFsaXphdGlvbgogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIGFkZEludGVncmF0aW9uKHJlcGxheUludGVncmF0aW9uKCkpOwogICAgfSwgMzAwMCk7IC8vIEluY3JlYXNlZCBkZWxheSBmb3IgcmVwbGF5IGludGVncmF0aW9uCiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGluaXRpYWxpemUgU2VudHJ5OicsIGVycm9yKTsKICB9Cn07CgovLyBJbml0aWFsaXplIFNlbnRyeSBhZnRlciBhbGwgY3JpdGljYWwgcmVzb3VyY2VzIGhhdmUgbG9hZGVkCmNvbnN0IGRlZmVyU2VudHJ5SW5pdCA9ICgpID0+IHsKICAvLyBVc2UgcmVxdWVzdElkbGVDYWxsYmFjayBpZiBhdmFpbGFibGUgZm9yIGJldHRlciBwZXJmb3JtYW5jZQogIGlmICgncmVxdWVzdElkbGVDYWxsYmFjaycgaW4gd2luZG93KSB7CiAgICB3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiB7CiAgICAgIHNldFRpbWVvdXQoaW5pdGlhbGl6ZVNlbnRyeSwgMjAwMCk7CiAgICB9LCB7IHRpbWVvdXQ6IDEwMDAwIH0pOwogIH0gZWxzZSB7CiAgICBzZXRUaW1lb3V0KGluaXRpYWxpemVTZW50cnksIDgwMDApOwogIH0KfTsKCi8vIFdhaXQgZm9yIHRoZSBwYWdlIHRvIGJlIGZ1bGx5IGludGVyYWN0aXZlIGJlZm9yZSBsb2FkaW5nIFNlbnRyeQppZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykgewogIGRlZmVyU2VudHJ5SW5pdCgpOwp9IGVsc2UgewogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZGVmZXJTZW50cnlJbml0LCB7IG9uY2U6IHRydWUgfSk7Cn0KCi8vIFJlZ2lzdGVyIHNlcnZpY2Ugd29ya2VyIGZvciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24KaWYgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IgJiYgaW1wb3J0Lm1ldGEuZW52LlBST0QpIHsKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvc3cuanMnKQogICAgICAudGhlbihyZWdpc3RyYXRpb24gPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdTVyByZWdpc3RlcmVkOiAnLCByZWdpc3RyYXRpb24pOwogICAgICB9KQogICAgICAuY2F0Y2gocmVnaXN0cmF0aW9uRXJyb3IgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdTVyByZWdpc3RyYXRpb24gZmFpbGVkOiAnLCByZWdpc3RyYXRpb25FcnJvcik7CiAgICAgIH0pOwogIH0pOwp9CgovLyBJbml0aWFsaXplIHBlcmZvcm1hbmNlIHRyYWNraW5nIChkZWZlciBzbGlnaHRseSB0byBub3QgYmxvY2sgaW5pdGlhbCByZW5kZXIpCnNldFRpbWVvdXQoKCkgPT4gewogIHRyYWNrV2ViVml0YWxzKCk7CiAgdHJhY2tDdXN0b21NZXRyaWNzKCk7Cn0sIDEwMCk7CgpjcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JykhKS5yZW5kZXIoCiAgPFN0cmljdE1vZGU+CiAgICA8TWV0YVRhZ3NQcm92aWRlcj4KICAgICAgPFBIUHJvdmlkZXI+CiAgICAgICAgPEFwcCAvPgogICAgICA8L1BIUHJvdmlkZXI+CiAgICA8L01ldGFUYWdzUHJvdmlkZXI+CiAgPC9TdHJpY3RNb2RlPgopOwo=" />
    <link rel="modulepreload" href="/assets/App-BnFgf6ho.tsx" />
    
    <!-- Prevent FOUC by detecting theme before render -->
    <script>
      (function() {
        // Theme detection script - runs synchronously to prevent FOUC
        const storageKey = 'contributor-info-theme';
        const theme = localStorage.getItem(storageKey) || 'dark';
        
        // Apply theme immediately
        if (theme === 'system') {
          // Check system preference
          const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
          document.documentElement.classList.add(systemTheme);
        } else {
          document.documentElement.classList.add(theme);
        }
      })();
    </script>
    
    <!-- Critical CSS for above-the-fold content -->
    <style>
      /* Critical base styles */
      *,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
      ::before,::after{--tw-content:''}
      html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;font-feature-settings:normal;font-variation-settings:normal}
      body{margin:0;line-height:inherit}
      
      /* Critical theme variables - Updated to match src/index.css */
      :root{--background:210 20% 98%;--foreground:215 25% 27%;--card:0 0% 100%;--card-foreground:215 25% 27%;--primary:14 100% 50%;--primary-foreground:0 0% 100%;--secondary:210 20% 94%;--secondary-foreground:215 25% 27%;--muted:210 20% 94%;--muted-foreground:215 16% 47%;--border:220 13% 91%;--input:210 20% 96%;--ring:14 100% 50%;--radius:0.5rem}
      .dark{--background:0 0% 3.9%;--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--primary:14 100% 50%;--primary-foreground:0 0% 100%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--border:0 0% 14.9%;--input:0 0% 14.9%;--ring:14 100% 50%}
      
      /* Critical layout utilities */
      .flex{display:flex}.grid{display:grid}.hidden{display:none}.min-h-screen{min-height:100vh}.h-screen{height:100vh}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-6xl{max-width:72rem}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.rounded-xl{border-radius:0.75rem}.rounded-lg{border-radius:0.5rem}.bg-background{background-color:hsl(var(--background))}.bg-card{background-color:hsl(var(--card))}.bg-secondary{background-color:hsl(var(--secondary))}.text-foreground{color:hsl(var(--foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.border{border-width:1px;border-color:hsl(var(--border))}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-center{text-align:center}.tracking-tight{letter-spacing:-0.025em}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}
      
      /* Button styles */
      .btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;rounded:calc(var(--radius) - 2px);font-size:0.875rem;font-weight:500;transition:colors 0.15s ease;cursor:pointer;border:none;outline:none}.btn:focus-visible{outline:2px solid;outline-offset:2px}.btn:disabled{pointer-events:none;opacity:0.5}.btn-primary{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover{background-color:hsl(var(--primary)/.9)}.btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.btn-secondary:hover{background-color:hsl(var(--secondary)/.8)}
      
      /* Navigation styles */
      nav{border-bottom:1px solid hsl(var(--border));background-color:hsl(var(--background))}
      
      /* Prevent FOUC */
      body{background-color:hsl(var(--background));color:hsl(var(--foreground))}
      #root{min-height:100vh;background-color:hsl(var(--background))}
      
      /* Loading state */
      .loading-skeleton{background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--muted)/.5) 50%,hsl(var(--muted)) 75%);background-size:200% 100%;animation:loading 1.5s infinite}
      @keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}
    </style>
    
    <!-- Open Graph / Facebook -->
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://contributor.info/" />
    <meta property="og:title" content="Contributor.info" />
    <meta property="og:description" content="Visualize GitHub contributors and their contributions" />
    <meta property="og:image" content="https://contributor.info/api/social-cards" />
    <meta property="og:image:alt" content="Contributor.info - Visualizing Open Source Contributions" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    
    <!-- Fallback for social media platforms that don't support SVG -->
    <meta property="og:image" content="https://contributor.info/social.webp" />

    <!-- Twitter -->
    <meta property="twitter:card" content="summary_large_image" />
    <meta property="twitter:url" content="https://contributor.info/" />
    <meta property="twitter:title" content="Contributor.info" />
    <meta property="twitter:description" content="Visualize GitHub contributors and their contributions" />
    <meta property="twitter:image" content="https://contributor.info/api/social-cards" />
    <meta property="twitter:image:alt" content="Contributor.info - Visualizing Open Source Contributions" />
    <script type="module" crossorigin src="/assets/index-D8hgk2Ey.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/react-core-D8ObPovc.js">
    <link rel="modulepreload" crossorigin href="/assets/react-ecosystem-BvZ_BYJd.js">
    <link rel="modulepreload" crossorigin href="/assets/data-Du8Hrk4C.js">
    <link rel="modulepreload" crossorigin href="/assets/ui-radix-Bgg-u-qW.js">
    <link rel="modulepreload" crossorigin href="/assets/icons-jnASSuLl.js">
    <link rel="stylesheet" crossorigin href="/assets/index-CH0wFkXu.css">
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>
