<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
    <meta name="theme-color" content="#0f172a" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
    <meta name="mobile-web-app-capable" content="yes" />

    <!-- Preload critical resources -->
    <link rel="preload" href="/client/src/styles/critical.css" as="style" />
    <link rel="preload" href="/client/src/main.tsx" as="script" />

    <!-- Critical CSS -->
    <link rel="stylesheet" href="/client/src/styles/critical.css" />

    <title>Professional Numerology Services - Discover Your Life Path Numbers</title>
    <meta name="description" content="Get accurate numerology readings and life path analysis from certified numerologists. Discover your destiny numbers and unlock your potential." />
    <meta name="keywords" content="numerology, numerology reading, life path number, numerology calculator, free numerology, destiny number, soul urge number, angel numbers, numerology compatibility, numerology chart, online numerology, numerology by name, numerology by date of birth, master numbers, karmic debt numbers, personal year number, angel number 111, angel number 222, angel number 333, angel number 444, angel number 555, numerology 2025, numerology 2026, business numerology, relationship numerology, numerology for beginners, what is numerology, meaning of numbers, single digit numerology, master number 11, master number 22, master number 33, karmic debt 13, karmic debt 14, karmic debt 16, karmic debt 19, numerology compatibility chart, life path compatibility, numerology love match, soulmate numerology, twin flame numbers, personal year calculator, numerology forecast, numerology predictions, universal year, numerology cycle, numerology manifestation, law of attraction numbers, career numerology, house number numerology, wedding date numerology, best numerology website">
    <meta name="author" content="Numerology Giver">
    <meta name="robots" content="index, follow">
    <meta name="language" content="English">

    <!-- Open Graph / Facebook -->
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://numerologygiver.com/">
    <meta property="og:title" content="Free Numerology Reading & Calculator | Life Path Number">
    <meta property="og:description" content="Get your free numerology reading and calculate your life path number, destiny number, and soul urge number. Discover angel numbers meaning and numerology compatibility.">
    <meta property="og:image" content="https://numerologygiver.com/assets/numerology-meta-image.jpg">
    <meta property="og:site_name" content="Numerology Giver">

    <!-- Twitter -->
    <meta property="twitter:card" content="summary_large_image">
    <meta property="twitter:url" content="https://numerologygiver.com/">
    <meta property="twitter:title" content="Free Numerology Reading & Calculator | Life Path Number">
    <meta property="twitter:description" content="Get your free numerology reading and calculate your life path number, destiny number, and soul urge number. Discover angel numbers meaning and numerology compatibility.">
    <meta property="twitter:image" content="https://numerologygiver.com/assets/numerology-meta-image.jpg">

    <!-- Canonical URL -->
    <link rel="canonical" href="https://numerologygiver.com/">

    <!-- Structured Data -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "name": "Numerology Giver",
      "url": "https://numerologygiver.com",
      "description": "Free numerology readings, life path number calculator, and spiritual guidance through numerology",
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https://numerologygiver.com/search?q={search_term_string}",
        "query-input": "required name=search_term_string"
      }
    }
    </script>

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Numerology Giver",
      "url": "https://numerologygiver.com",
      "logo": "https://numerologygiver.com/assets/logo.png",
      "sameAs": [
        "https://facebook.com/numerologygiver",
        "https://twitter.com/numerologygiver",
        "https://instagram.com/numerologygiver"
      ],
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "Customer Service",
        "email": "info@numerologygiver.com"
      }
    }
    </script>

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Service",
      "name": "Numerology Reading Service",
      "description": "Professional numerology readings including life path number, destiny number, soul urge number, and angel numbers interpretation",
      "provider": {
        "@type": "Organization",
        "name": "Numerology Giver"
      },
      "serviceType": "Numerology Reading",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "description": "Free basic numerology reading"
      }
    }
    </script>

    <!-- Favicon -->
    <link rel="icon" type="image/png" href="https://numerologygiver-2-numerologyaccur.replit.app/assets/numerologyGiverIcon.png">
    <link rel="shortcut icon" type="image/png" href="https://numerologygiver-2-numerologyaccur.replit.app/assets/numerologyGiverIcon.png">

    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet">
    <!-- Load environment variables before app initialization -->
    <script src="/env.js"></script>

    <!-- Start of Critical Mobile Performance Optimizations -->
    <style>
      /* Inline critical CSS for instant rendering */
      html, body {
        margin: 0;
        padding: 0;
        background-color: #0f172a !important;
        color: #f8fafc !important;
        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility;
        overflow-x: hidden;
      }

      /* Mobile-first loading optimization */
      @media (max-width: 768px) {
        body {
          font-size: 16px !important;
          line-height: 1.4 !important;
          -webkit-tap-highlight-color: transparent !important;
          touch-action: manipulation !important;
          -webkit-overflow-scrolling: touch !important;
          overscroll-behavior: contain !important;
        }

        button, input, textarea, select {
          font-size: 16px !important;
          min-height: 44px !important;
        }
      }

      /* Loading indicator */
      .loading-screen {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: #0f172a;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 99999;
        color: #f8fafc;
      }

      .loading-spinner {
        width: 40px;
        height: 40px;
        border: 3px solid #334155;
        border-top: 3px solid #3b82f6;
        border-radius: 50%;
        animation: spin 1s linear infinite;
      }

      @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
      }
    </style>

    <script>
      // Critical mobile performance script - runs immediately
      (function() {
        const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
        const isTablet = /iPad|Android.*Tablet/i.test(navigator.userAgent);

        if (isMobile || isTablet) {
          // Add device classes immediately
          document.documentElement.classList.add(isMobile ? 'mobile-device' : 'tablet-device');

          // Optimize viewport
          const viewport = document.querySelector('meta[name="viewport"]');
          if (viewport) {
            viewport.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover';
          }

          // Prevent zoom on double tap
          let lastTouchEnd = 0;
          document.addEventListener('touchend', function (event) {
            const now = (new Date()).getTime();
            if (now - lastTouchEnd <= 300) {
              event.preventDefault();
            }
            lastTouchEnd = now;
          }, false);

          console.log('📱 Mobile optimizations applied immediately');
        }
      })();
    </script>
    <!-- End of Critical Mobile Performance Optimizations -->

    <!-- Mobile optimizations - performance only, NO color changes -->
    <style id="mobile-touch-fix">
      @media (max-width: 768px) {
        /* Ensure touch targets are properly sized */
        button, .btn, [role="button"] {
          min-height: 44px !important;
          min-width: 44px !important;
          font-size: 16px !important;
          touch-action: manipulation !important;
        }
        
        /* Prevent iOS zoom on input focus */
        input, textarea, select {
          font-size: 16px !important;
          touch-action: manipulation !important;
        }
      }
    </style>
    <!-- Start of Tawk.to Script -->
    <script type="text/javascript">
      var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
      Tawk_API.onLoad = function() {
        console.log('✅ Tawk.to widget loaded successfully!');
      };
      Tawk_API.onStatusChange = function(status) {
        console.log('📊 Tawk.to status:', status);
      };
      (function(){
        var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
        s1.async=true;
        s1.src='https://embed.tawk.to/68824fb11786aa1911e71b99/1j0ugejf6';
        s1.charset='UTF-8';
        s1.setAttribute('crossorigin','*');
        s1.onload = function() {
          console.log('✅ Tawk.to script loaded successfully with correct property ID');
        };
        s1.onerror = function(e) {
          console.error('❌ Tawk.to script failed to load:', e);
        };
        s0.parentNode.insertBefore(s1,s0);
      })();
    </script>
    <!-- End of Tawk.to Script -->
    <script type="module" crossorigin src="/assets/index-DG1UIBkm.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-BTq2f1hS.css">
  </head>

  <body>
    <div class="loading-screen" id="loading-screen">
      <div class="loading-spinner"></div>
    </div>

    <div id="root"></div>

    <script>
      // Remove loading screen when DOM is ready
      document.addEventListener('DOMContentLoaded', function() {
        setTimeout(function() {
          const loadingScreen = document.getElementById('loading-screen');
          if (loadingScreen) {
            loadingScreen.style.opacity = '0';
            loadingScreen.style.transition = 'opacity 0.3s ease';
            setTimeout(function() {
              loadingScreen.remove();
            }, 300);
          }
        }, 100);
      });
    </script>

  </body>
</html>