<!DOCTYPE html>
<html lang="en" class="loading">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, viewport-fit=cover, user-scalable=no" />
    <meta name="google-adsense-account" content="ca-pub-6128637420372744">
    
    <!-- Force cache refresh -->
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    
    <!-- Mobile Web App Optimizations -->
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
    <meta name="format-detection" content="telephone=no">
    <meta name="theme-color" content="#0A0A1B">
    
    <!-- Prevent FOUC (Flash of Unstyled Content) -->
    <style>
      html.loading {
        visibility: hidden;
        opacity: 0;
      }
      html {
        visibility: visible;
        opacity: 1;
        transition: opacity 0.2s ease-in;
      }
      body {
        background-color: #0A0A1B;
      }
      #root-loader {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #0A0A1B;
        z-index: 9999;
      }
      .spinner {
        width: 48px;
        height: 48px;
        border: 4px solid #8B5CF6;
        border-top-color: transparent;
        border-radius: 50%;
        animation: spin 1s linear infinite;
      }
      @keyframes spin {
        to { transform: rotate(360deg); }
      }
    </style>
    
    <!-- Performance: Preconnect para APIs externas - carregamento mais rápido -->
    <link rel="preconnect" href="https://defimind-backend.onrender.com" crossorigin>
    <link rel="dns-prefetch" href="https://defimind-backend.onrender.com">
    <link rel="preconnect" href="https://res.cloudinary.com" crossorigin>
    <link rel="dns-prefetch" href="https://res.cloudinary.com">
    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
    <link rel="dns-prefetch" href="https://fonts.googleapis.com">
    
    <!-- PWA: Apple Touch Icons para iOS -->
    <link rel="apple-touch-icon" href="https://res.cloudinary.com/dbwsecvbx/image/upload/v1766116270/WhatsApp_Image_2025-12-18_at_18.55.24-removebg-preview_nn8cxb.png" />
    
    <link rel="icon" type="image/png" href="https://res.cloudinary.com/dbwsecvbx/image/upload/v1766116270/WhatsApp_Image_2025-12-18_at_18.55.24-removebg-preview_nn8cxb.png" />
    <title>DeFiMind - AI-Powered DeFi Investment Platform</title>
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6128637420372744"
     crossorigin="anonymous"></script>
    <script>
      // Remove loading class when DOM is ready
      document.addEventListener('DOMContentLoaded', () => {
        document.documentElement.classList.remove('loading');
        const loader = document.getElementById('root-loader');
        if (loader) {
          setTimeout(() => loader.remove(), 300);
        }
      });
    </script>
    <script>
      // Suppress Vite HMR WebSocket errors in Replit environment
      (function() {
        var originalWebSocket = window.WebSocket;
        window.WebSocket = function(url, protocols) {
          // Block invalid localhost WebSocket connections from Vite HMR
          if (url && url.indexOf('wss://localhost:undefined') !== -1) {
            console.debug('[DeFiMind] Vite HMR WebSocket blocked (normal in Replit)');
            return { close: function(){}, send: function(){}, addEventListener: function(){}, removeEventListener: function(){} };
          }
          return new originalWebSocket(url, protocols);
        };
        window.WebSocket.prototype = originalWebSocket.prototype;
        window.WebSocket.CONNECTING = originalWebSocket.CONNECTING;
        window.WebSocket.OPEN = originalWebSocket.OPEN;
        window.WebSocket.CLOSING = originalWebSocket.CLOSING;
        window.WebSocket.CLOSED = originalWebSocket.CLOSED;
        
        // Also catch unhandled rejections as backup
        window.addEventListener('unhandledrejection', function(e) {
          var msg = e.reason && e.reason.message ? e.reason.message : '';
          if (msg.indexOf('wss://localhost:undefined') !== -1 || 
              msg.indexOf("Failed to construct 'WebSocket'") !== -1) {
            e.preventDefault();
          }
        });
      })();
    </script>
    <script type="module" crossorigin src="/assets/index-BUcX4rAs.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/vendor-react-CgdsNht5.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-ui-CeYAnbCd.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-query--c1BJTIq.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-web3-D-LYwrmq.js">
    <link rel="stylesheet" crossorigin href="/assets/index-BUuYjgur.css">
  </head>
  <body>
    <div id="root"></div>
    
    <!-- Service Worker para cache agressivo de assets -->
    
    <!-- This is a replit script which adds a banner on the top of the page when opened in development mode outside the replit environment -->
    <script type="text/javascript" src="https://replit.com/public/js/replit-dev-banner.js"></script>
  </body>
</html>