<!doctype html>
<html lang="en" class="js-loading">
  <head>
    <meta charset="UTF-8" />
    
    <!-- Critical inline CSS for immediate rendering stability -->
    <style id="critical-inline-css">
      /* Root variables (most essential) */
      :root {
        --color-space-dark: #0f172a;
        --color-space-navy: #1a2b4d;
        --color-space-cyan: #06b6d4;
        --vh: 1vh;
        /* Jarvis specific variables */
        --primary: #00e5ff;
        --primary-glow: rgba(0, 229, 255, 0.6);
        --secondary: #7928ca;
        --background: #0a0e17;
        --surface: #111927;
        --surface-dark: #0d141e;
        --text: #e2e8f0;
        --border: #1e293b;
        --terminal-height: 400px;
        --terminal-height-mobile: 300px;
        --header-height: 300px;
        --sidebar-width: 280px;
        --nav-height: 60px;
      }
      
      /* Basic reset and layout stability */
      *, *::before, *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }
      
      /* Critical loading state management */
      html.js-loading {
        visibility: visible;
      }
      
      /* Core body styles */
      body {
        margin: 0;
        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        background: linear-gradient(to bottom right, var(--color-space-navy), var(--color-space-dark));
        color: white;
        min-height: 100vh;
        overflow-x: hidden;
      }
      
      /* Layout stability for Jarvis container */
      .jarvis-mk-container {
        visibility: hidden;
        opacity: 0;
        background-color: var(--background);
        min-height: 100vh;
        width: 100vw;
        max-width: 100vw;
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
        overflow-x: visible;
        position: relative;
        transition: opacity 0.3s ease-out;
      }
      
      /* Critical header sizing */
      .jarvis-mk-header {
        position: relative;
        min-height: var(--header-height);
        width: 100%;
        overflow: visible;
        padding: 4rem 1rem 2rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }
      
      /* Sidebar sizing */
      .jarvis-mk-sidebar {
        width: var(--sidebar-width);
        min-width: var(--sidebar-width);
        max-width: var(--sidebar-width);
        height: auto;
        box-sizing: border-box;
      }
      
      /* Cyber scanner placement */
      .cyber-scanner {
        position: absolute !important;
        width: 100% !important;
        height: 4px !important;
        top: 0 !important;
        left: 0 !important;
        pointer-events: none !important;
        z-index: 9999;
        opacity: 0;
        visibility: hidden;
      }
      
      /* Terminal container fixed dimensions */
      .terminal-container {
        min-height: var(--terminal-height);
        height: var(--terminal-height);
        width: 100%;
        position: relative;
        overflow: hidden;
        box-sizing: border-box;
      }
      
      /* Animation prevention during load */
      .preload * {
        animation-duration: 0.001s !important;
        animation-delay: 0s !important;
        transition-duration: 0.001s !important;
      }
      
      /* Mobile viewport height fix */
      .full-height {
        height: 100vh;
        height: calc(var(--vh, 1vh) * 100);
      }
      
      /* Main containers stability */
      .container, main {
        width: 100%;
        position: relative;
      }
      
      /* Fix for visible content when loaded */
      .loaded .jarvis-mk-container {
        visibility: visible;
        opacity: 1;
      }
      
      /* Basic responsive adjustments */
      @media (max-width: 768px) {
        .jarvis-mk-header {
          min-height: 220px;
          padding: 3rem 1rem 1.5rem;
        }
        
        .jarvis-mk-sidebar {
          width: 100%;
          min-width: 100%;
          max-width: 100%;
        }
        
        .terminal-container {
          min-height: var(--terminal-height-mobile);
          height: var(--terminal-height-mobile);
        }
      }
    </style>
    
    <!-- Immediate script execution for FOUC prevention and layout stability -->
    <script>
      // Immediately mark document as loading
      document.documentElement.classList.add('js-loading');
      document.documentElement.classList.add('preload');
      
      // Fix for mobile viewport height
      function updateVh() {
        const vh = window.innerHeight * 0.01;
        document.documentElement.style.setProperty('--vh', `${vh}px`);
      }
      updateVh();
      
      // Track CSS loading state
      window.cssLoadingState = {
        critical: false,
        layout: false,
        main: false,
        animation: false,
        ready: false
      };
      
      // Function to check if critical CSS is loaded and mark page as ready
      function checkCssLoadingState() {
        // If critical and layout CSS are loaded, or we've waited too long
        if ((window.cssLoadingState.critical && window.cssLoadingState.layout) || 
            document.readyState === 'complete') {
          markPageAsReady();
        }
      }
      
      // Mark page as ready for viewing
      function markPageAsReady() {
        if (!window.cssLoadingState.ready) {
          window.cssLoadingState.ready = true;
          
          // Remove loading classes after a short delay
          setTimeout(function() {
            document.documentElement.classList.remove('js-loading');
            document.body.classList.add('loaded');
            
            // Wait a bit more before enabling animations
            setTimeout(function() {
              document.documentElement.classList.remove('preload');
              document.body.classList.remove('preload');
              
              // Make jarvis container visible if it exists
              const jarvisContainer = document.querySelector('.jarvis-mk-container');
              if (jarvisContainer) {
                jarvisContainer.style.visibility = 'visible';
                jarvisContainer.classList.add('animations-enabled');
              }
            }, 300);
          }, 100);
        }
      }
      
      // Listen for CSS loaded events from our CSS loader
      window.addEventListener('css:allCriticalLoaded', function() {
        window.cssLoadingState.critical = true;
        window.cssLoadingState.layout = true;
        checkCssLoadingState();
      });
      
      // Listen for individual CSS load events
      window.addEventListener('css:loaded', function(e) {
        if (e.detail && e.detail.priority) {
          // Update the loading state based on priority
          if (e.detail.priority === 'critical') {
            window.cssLoadingState.critical = true;
          } else if (e.detail.priority === 'high') {
            window.cssLoadingState.layout = true;
          } else if (e.detail.priority === 'normal') {
            window.cssLoadingState.main = true;
          } else if (e.detail.priority === 'low') {
            window.cssLoadingState.animation = true;
          }
          
          checkCssLoadingState();
        }
      });
      
      // Fallback to ensure page becomes visible
      window.addEventListener('load', function() {
        // Update loading state
        window.cssLoadingState.critical = true;
        window.cssLoadingState.layout = true;
        
        // Force visibility of key elements
        const jarvisContainer = document.querySelector('.jarvis-mk-container');
        if (jarvisContainer) {
          jarvisContainer.style.visibility = 'visible';
          jarvisContainer.classList.add('animations-enabled');
        }
        
        // Mark page as ready
        markPageAsReady();
      });
      
      // Set timeout to ensure page becomes visible even if CSS loading fails
      setTimeout(markPageAsReady, 3000);
    </script>
    
    <!-- Favicon and PWA support -->
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <link rel="apple-touch-icon" href="/icons/icon-192x192.png" />
    <meta name="msapplication-TileColor" content="#0f172a" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
    <meta name="color-scheme" content="dark light" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
    
    <!-- PWA Support -->
    <link rel="manifest" href="/manifest.json" />
    <meta name="mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-title" content="Think AI" />
    
    <!-- Preconnect to critical domains -->
    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    
    <!-- Preload critical assets -->
    <link rel="preload" href="/src/assets/logo.svg" as="image" type="image/svg+xml" fetchpriority="high">
    
    <!-- Optimized font loading with display=swap -->
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Montserrat:wght@600&family=Orbitron:wght@500&display=swap" rel="stylesheet" media="print" onload="this.media='all'">
    <noscript>
      <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Montserrat:wght@600&family=Orbitron:wght@500&display=swap" rel="stylesheet">
    </noscript>
    
    <!-- Title and meta tags -->
    <title>Think AI | Intelligent Platforms for the Future</title>
    <meta name="description" content="Experience the convergence of human creativity and artificial intelligence. Our cutting-edge platforms V2Jarvis and AI World are shaping the future of intelligent interaction." />
    
    <!-- Open Graph / Social Media -->
    <meta property="og:title" content="Think AI | Intelligent Platforms for the Future">
    <meta property="og:description" content="Experience the convergence of human creativity and artificial intelligence. Our cutting-edge platforms V2Jarvis and AI World are shaping the future of intelligent interaction.">
    <meta property="og:url" content="https://think-ai.technology/">
    <meta property="og:site_name" content="Think AI">
    <meta property="og:image" content="https://think-ai.technology/og-image-branded.svg">
    
    <!-- Inline critical CSS to prevent FOUC -->
    <style>
      /* Minimal critical CSS */
      /* Basic styles to prevent flash of unstyled content */
      body {
        margin: 0;
        padding: 0;
        font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
        -webkit-text-size-adjust: 100%;
        -moz-text-size-adjust: 100%;
             text-size-adjust: 100%;
        -webkit-font-smoothing: antialiased;
      }
      
      /* Critical footer styles */
      footer {
        width: 100% !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
        overflow-x: visible !important;
        position: relative !important;
      }
      
      footer .container {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
      }
      
      footer .grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
        gap: 1rem !important;
        box-sizing: border-box !important;
      }
      
      @media (min-width: 768px) {
        footer .grid {
          grid-template-columns: repeat(3, 1fr) !important;
        }
      }
    </style>

    <!-- Load critical CSS -->
    
    <!-- Load high-priority layout CSS files -->
    <link rel="stylesheet" href="/src/styles/jarvis-microkernel-layout-fix.css" fetchpriority="high" id="css-jarvis-layout">
    
    <!-- Load normal-priority CSS with non-blocking behavior -->
    <link rel="stylesheet" href="data:text/css;base64,LyogTWFpbiBDU1MgZmlsZSBmb3IgVGhpbmtBSSBXZWJzaXRlICovCgovKiBDb3JlIHN0eWxlcyBhbmQgdmFyaWFibGVzICovCkBpbXBvcnQgJy4vdmFyaWFibGVzLmNzcyc7CkBpbXBvcnQgJy4vZ2xvYmFsLmNzcyc7CkBpbXBvcnQgJy4vZm9udHMuY3NzJzsKQGltcG9ydCAnLi9mb250LWxvYWRpbmctZml4LmNzcyc7CkBpbXBvcnQgJy4vY3JpdGljYWwtcmVuZGVyLWJsb2NraW5nLmNzcyc7CgovKiBMYXlvdXQgYW5kIG5hdmlnYXRpb24gKi8KQGltcG9ydCAnLi9nbG9iYWwtbmF2aWdhdGlvbi1maXhlcy5jc3MnOwpAaW1wb3J0ICcuL25hdmlnYXRpb24tZWZmZWN0cy5jc3MnOwpAaW1wb3J0ICcuL2xheW91dC1zdGFiaWxpdHktZml4ZXMuY3NzJzsKQGltcG9ydCAnLi9mb290ZXItZml4ZXMuY3NzJzsKQGltcG9ydCAnLi9mb290ZXItY29tcG9uZW50LmNzcyc7CkBpbXBvcnQgJy4vbG9nby1ob21lLWxpbmsuY3NzJzsKQGltcG9ydCAnLi9pbWFnZS1vcHRpbWl6YXRpb24uY3NzJzsKCi8qIENvbXBvbmVudCBzdHlsZXMgKi8KQGltcG9ydCAnLi9haS13b3JsZC1jb21wb25lbnQuY3NzJzsKQGltcG9ydCAnLi9haS13b3JsZC1uYXYtZml4LmNzcyc7CkBpbXBvcnQgJy4vYWktd29ybGQtYnV0dG9uLmNzcyc7CkBpbXBvcnQgJy4vYWktd29ybGQtYXJ0aWNsZS5jc3MnOwpAaW1wb3J0ICcuL2FpLWNhcmQtZml4LmNzcyc7CkBpbXBvcnQgJy4vYWktY2FyZC1nbG9zc3kuY3NzJzsKQGltcG9ydCAnLi9leHBhbmRlZC1jYXJkLWZpeC5jc3MnOwoKLyogSmFydmlzIHNwZWNpZmljIHN0eWxlcyAqLwpAaW1wb3J0ICcuL2phcnZpcy1taWNyb2tlcm5lbC1jb25zb2xpZGF0ZWQuY3NzJzsKQGltcG9ydCAnLi90ZXJtaW5hbC5jc3MnOwoKLyogRWZmZWN0cyBhbmQgYW5pbWF0aW9ucyAqLwpAaW1wb3J0ICcuL2FuaW1hdGlvbi1vcHRpbWl6YXRpb25zLmNzcyc7CkBpbXBvcnQgJy4vYW5pbWF0aW9uLXNlcXVlbmNlLmNzcyc7CkBpbXBvcnQgJy4vYW5pbWF0aW9uLXNlcXVlbmNlLWZpeC5jc3MnOwpAaW1wb3J0ICcuL2NhcmQtc2hpbmUtZWZmZWN0LmNzcyc7CkBpbXBvcnQgJy4vYXJjaGl0ZWN0dXJlLWhvdmVyLmNzcyc7CkBpbXBvcnQgJy4vcm9hZG1hcC1ob3Zlci5jc3MnOwoKLyogQWRkaXRpb25hbCBmZWF0dXJlcyAqLwpAaW1wb3J0ICcuL21ldHJpY3MtZGFzaGJvYXJkLmNzcyc7CkBpbXBvcnQgJy4vc21hcnQtbGVhcm5pbmcuY3NzJzsKQGltcG9ydCAnLi9kb2NzLmNzcyc7CkBpbXBvcnQgJy4vbmV3cy5jc3MnOwpAaW1wb3J0ICcuL2V0aGljcy1mcmFtZXdvcmsuY3NzJzsKCmJvZHkgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VyZmFjZS1kYXJrKTsKICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBtaW4taGVpZ2h0OiAxMDB2aDsKICBvdmVyZmxvdy14OiBoaWRkZW47Cn0KCi8qIENvbW1vbiB1dGlsaXR5IGNsYXNzZXMgKi8KLmNvbnRhaW5lciB7CiAgd2lkdGg6IDEwMCU7CiAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZzogMCAxcmVtOwp9CgouZmxleCB7CiAgZGlzcGxheTogZmxleDsKfQoKLmZsZXgtY29sIHsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgouaXRlbXMtY2VudGVyIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgouanVzdGlmeS1iZXR3ZWVuIHsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47Cn0KCi50ZXh0LWNlbnRlciB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgovKiBSZXNwb25zaXZlIHV0aWxpdGllcyAqLwpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAuY29udGFpbmVyIHsKICAgIHBhZGRpbmc6IDAgMC41cmVtOwogIH0KfQo=" media="print" onload="this.media='all'" id="css-main">
    <link rel="stylesheet" href="/assets/index-BRSXDEYd.css" media="print" onload="this.media='all'" id="css-index">
    
    <!-- Load low-priority CSS (animations) with non-blocking behavior -->
    <link rel="stylesheet" href="data:text/css;base64,LyoqCiAqIEFuaW1hdGlvbiBTZXF1ZW5jZSBDb250cm9sCiAqIE1hbmFnZXMgcHJvZ3Jlc3NpdmUgYW5pbWF0aW9uIGVuYWJsZW1lbnQgdG8gcHJldmVudCBsYXlvdXQgc2hpZnRzCiAqLwoKLyogSW5pdGlhbCBzdGF0ZTogQWxsIGFuaW1hdGlvbnMgZGlzYWJsZWQgKi8KaHRtbC5qcy1sb2FkaW5nIC5qYXJ2aXMtbWstY29udGFpbmVyLAouamFydmlzLW1rLWNvbnRhaW5lci5wcmVsb2FkIHsKICAvKiBTZXQgaW5pdGlhbCB2aXNpYmlsaXR5IHN0YXRlICovCiAgdmlzaWJpbGl0eTogaGlkZGVuOwogIG9wYWNpdHk6IDA7CiAgCiAgLyogRW5zdXJlIGFsbCBjb250ZW50IGhhcyBzdGFibGUgZGltZW5zaW9ucyBiZWZvcmUgcmV2ZWFsaW5nICovCiAgLS10ZXJtaW5hbC1oZWlnaHQ6IDQwMHB4OwogIC0tdGVybWluYWwtaGVpZ2h0LW1vYmlsZTogMzAwcHg7CiAgLS1tZXRyaWNzLWNhcmQtaGVpZ2h0OiAxMDBweDsKICAtLWhlYWRlci1oZWlnaHQ6IDMwMHB4OwogIC0tc2lkZWJhci13aWR0aDogMjgwcHg7CiAgLS1uYXYtaGVpZ2h0OiA2MHB4OwogIAogIC8qIERpc2FibGUgYWxsIGFuaW1hdGlvbnMgYW5kIHRyYW5zaXRpb25zICovCiAgJiAqIHsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgYW5pbWF0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDsKICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMHMgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzICFpbXBvcnRhbnQ7CiAgfQp9CgovKiBPbmx5IHRyYW5zaXRpb24gY29udGFpbmVyIG9wYWNpdHkgKi8KLmphcnZpcy1tay1jb250YWluZXIgewogIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLW91dDsKfQoKLyogQ29udGVudCBiZWNvbWVzIHZpc2libGUgYnV0IHN0aWxsIG5vIGFuaW1hdGlvbnMgKi8KaHRtbC5qcy1sb2FkaW5nLmFuaW1hdGlvbnMtY3JpdGljYWwgLmphcnZpcy1tay1jb250YWluZXIsCi5qYXJ2aXMtbWstY29udGFpbmVyLmFuaW1hdGlvbnMtY3JpdGljYWwgewogIC8qIE1ha2UgdGhlIGNvbnRhaW5lciB2aXNpYmxlICovCiAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICBvcGFjaXR5OiAxOwogIAogICYgKiB7CiAgICAvKiBTdGlsbCBubyBhbmltYXRpb25zLCBidXQgY29udGFpbmVyIGlzIHZpc2libGUgKi8KICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQoKLyogU3RhZ2UgMTogT25seSBlc3NlbnRpYWwgdHJhbnNpdGlvbnMgZW5hYmxlZCAqLwouamFydmlzLW1rLWNvbnRhaW5lci5hbmltYXRpb25zLWJhc2ljIHsKICAvKiBDb250YWluZXIgc2hvdWxkIGJlIGZ1bGx5IHZpc2libGUgKi8KICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogIG9wYWNpdHk6IDE7CiAgCiAgJiAqIHsKICAgIC8qIEFsbG93IG9wYWNpdHkgYW5kIHRyYW5zZm9ybSB0cmFuc2l0aW9ucyBvbmx5ICovCiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7CiAgfQogIAogIC8qIFN0aWxsIG5vIGFuaW1hdGlvbnMgZm9yIGRlY29yYXRpdmUgZWxlbWVudHMgKi8KICAmIC5jeWJlci1zY2FubmVyLAogICYgLmN5YmVyLWdyaWQsCiAgJiBbY2xhc3MqPSJhbmltYXRpb24tIl0gewogICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQp9CgovKiBTdGFnZSAyOiBFbmhhbmNlZCBhbmltYXRpb25zIGVuYWJsZWQgKi8KLmphcnZpcy1tay1jb250YWluZXIuYW5pbWF0aW9ucy1lbmhhbmNlZCB7CiAgLyogQWxsb3cgYWxsIENTUyB0cmFuc2l0aW9ucyBidXQgc3RhZ2dlciBhbmltYXRpb25zICovCiAgJiAqIHsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7CiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CiAgICAKICAgIC8qIEFsbG93IGJhc2ljIGFuaW1hdGlvbnMgKi8KICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogaW5pdGlhbDsKICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OwogIH0KICAKICAvKiBTdGFnZ2VyIGFuaW1hdGlvbnMgdG8gcHJldmVudCBzaW11bHRhbmVvdXMgbGF5b3V0IGltcGFjdCAqLwogICYgLmN5YmVyLXNjYW5uZXIgewogICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAxOwogICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICB9CiAgCiAgJiAuY3liZXItZ3JpZCB7CiAgICBhbmltYXRpb24tZGVsYXk6IDAuNnMgIWltcG9ydGFudDsKICB9CiAgCiAgJiAuc2VjdGlvbi1kZWNvcmF0b3IgewogICAgYW5pbWF0aW9uLWRlbGF5OiAwLjlzICFpbXBvcnRhbnQ7CiAgfQp9CgovKiBTdGFnZSAzOiBGdWxsIGRlY29yYXRpdmUgYW5pbWF0aW9ucyAqLwouamFydmlzLW1rLWNvbnRhaW5lci5hbmltYXRpb25zLWRlY29yYXRpdmUgewogICYgKiB7CiAgICAvKiBBbGxvdyBhbGwgYW5pbWF0aW9ucyB3aXRoIG9yaWdpbmFsIHRpbWluZyAqLwogICAgYW5pbWF0aW9uLWRlbGF5OiBpbml0aWFsOwogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBpbml0aWFsOwogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogaW5pdGlhbDsKICAgIAogICAgLyogUmVzdG9yZSBhbGwgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzICovCiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBpbml0aWFsOwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogaW5pdGlhbDsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBpbml0aWFsOwogIH0KfQoKLyogU3BlY2lhbCBoYW5kbGluZyBmb3IgdGVybWluYWwgYW5pbWF0aW9ucyAqLwouamFydmlzLW1rLWNvbnRhaW5lci5hbmltYXRpb25zLWVuYWJsZWQgLnRlcm1pbmFsLXJlc3VsdC1jb250YWluZXIsCi5qYXJ2aXMtbWstY29udGFpbmVyLmFuaW1hdGlvbnMtZW5hYmxlZCAudGVybWluYWwtb3V0cHV0IHsKICAvKiBFbnN1cmUgdGVybWluYWwgY29udGVudCBzdGF5cyBzdGFibGUgZXZlbiB3aXRoIGFuaW1hdGlvbnMgKi8KICBjb250YWluOiBsYXlvdXQgc3R5bGUgIWltcG9ydGFudDsKfQoKLyogTW9iaWxlLXNwZWNpZmljIGFuaW1hdGlvbiBjb250cm9scyAqLwpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAvKiBNb3JlIGNvbnNlcnZhdGl2ZSBhbmltYXRpb24gZW5hYmxpbmcgb24gbW9iaWxlICovCiAgLmphcnZpcy1tay1jb250YWluZXIuYW5pbWF0aW9ucy1lbmFibGVkICogewogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA5MCUgIWltcG9ydGFudDsgLyogU2xpZ2h0bHkgZmFzdGVyIGFuaW1hdGlvbnMgb24gbW9iaWxlICovCiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA5MCUgIWltcG9ydGFudDsKICB9CiAgCiAgLmphcnZpcy1tay1jb250YWluZXIuYW5pbWF0aW9ucy1kZWNvcmF0aXZlICogewogICAgLyogTGltaXQgbWF4aW11bSBhbmltYXRpb24gZHVyYXRpb24gb24gbW9iaWxlIGZvciBwZXJmb3JtYW5jZSAqLwogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzICFpbXBvcnRhbnQ7CiAgfQp9IA==" media="print" onload="this.media='all'" id="css-animation-sequence">
    <link rel="stylesheet" href="data:text/css;base64,LyoqCiAqIEFuaW1hdGlvbiBkZWxheSBvcHRpbWl6YXRpb25zCiAqIFByZXZlbnRzIGFuaW1hdGlvbnMgZnJvbSBjYXVzaW5nIGxheW91dCBzaGlmdHMgZHVyaW5nIGluaXRpYWwgcGFnZSBsb2FkCiAqLwoKLyogUHJldmVudCBhbGwgYW5pbWF0aW9ucyBkdXJpbmcgcGFnZSBsb2FkICovCi5wcmVsb2FkICogewogIC13ZWJraXQtYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgLW1vei1hbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAtbXMtYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgLW8tYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgLW1vei10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgLW1zLXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAtby10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIHdpbGwtY2hhbmdlOiBhdXRvICFpbXBvcnRhbnQ7Cn0KCi8qIE9ubHkgZW5hYmxlIGFuaW1hdGlvbnMgd2hlbiBwYWdlIGlzIGZ1bGx5IGxvYWRlZCAqLwpib2R5LmFuaW1hdGlvbnMtZW5hYmxlZCAqIHsKICAvKiBSZS1lbmFibGUgdHJhbnNpdGlvbnMgd2l0aCBhIHNsaWdodCBkZWxheSAqLwogIHRyYW5zaXRpb24tZGVsYXk6IDAuMXM7Cn0KCi8qIFN0YWdnZXIgYW5pbWF0aW9uIHN0YXJ0IHRpbWVzIHRvIHByZXZlbnQgY3VtdWxhdGl2ZSBsYXlvdXQgc2hpZnRzICovCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkgewogIC5hbmltYXRpb24tc3RhZ2dlciA+ICo6bnRoLWNoaWxkKDEpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjA1czsgfQogIC5hbmltYXRpb24tc3RhZ2dlciA+ICo6bnRoLWNoaWxkKDIpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjFzOyB9CiAgLmFuaW1hdGlvbi1zdGFnZ2VyID4gKjpudGgtY2hpbGQoMykgeyBhbmltYXRpb24tZGVsYXk6IDAuMTVzOyB9CiAgLmFuaW1hdGlvbi1zdGFnZ2VyID4gKjpudGgtY2hpbGQoNCkgeyBhbmltYXRpb24tZGVsYXk6IDAuMnM7IH0KICAuYW5pbWF0aW9uLXN0YWdnZXIgPiAqOm50aC1jaGlsZCg1KSB7IGFuaW1hdGlvbi1kZWxheTogMC4yNXM7IH0KICAuYW5pbWF0aW9uLXN0YWdnZXIgPiAqOm50aC1jaGlsZChuKzYpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9Cn0KCi8qIEZhZGUtaW4gYW5pbWF0aW9ucyB0aGF0IHdvbid0IGNhdXNlIGxheW91dCBzaGlmdHMgKi8KQGtleWZyYW1lcyBzYWZlLWZhZGUtaW4gewogIGZyb20geyBvcGFjaXR5OiAwOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB9Cn0KCi5zYWZlLWZhZGUtaW4gewogIGFuaW1hdGlvbjogc2FmZS1mYWRlLWluIDAuNXMgZWFzZSBmb3J3YXJkczsKICAvKiBFbnN1cmUgZWxlbWVudCBoYXMgbGF5b3V0IGJlZm9yZSBhbmltYXRpb24gKi8KICBjb250YWluOiBsYXlvdXQgc3R5bGU7Cn0KCi8qIFNjYWxlIGFuaW1hdGlvbnMgdGhhdCB3b24ndCBjYXVzZSBsYXlvdXQgc2hpZnRzICovCkBrZXlmcmFtZXMgc2FmZS1zY2FsZSB7CiAgZnJvbSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OCk7IG9wYWNpdHk6IDA7IH0KICB0byB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KfQoKLnNhZmUtc2NhbGUgewogIGFuaW1hdGlvbjogc2FmZS1zY2FsZSAwLjVzIGVhc2UgZm9yd2FyZHM7CiAgLyogRW5zdXJlIGVsZW1lbnQgaGFzIGxheW91dCBiZWZvcmUgYW5pbWF0aW9uICovCiAgY29udGFpbjogbGF5b3V0IHN0eWxlOwp9CgovKiBFbmZvcmNlIGNvbnNpc3RlbnQgYW5pbWF0aW9uIHByb3BlcnRpZXMgKi8KW2NsYXNzKj0iYW5pbWF0ZS0iXSwgW2NsYXNzKj0iYW5pbWF0aW9uLSJdIHsKICAvKiBFbnN1cmUgYWxsIGFuaW1hdGVkIGVsZW1lbnRzIGhhdmUgc3RhYmxlIGxheW91dCAqLwogIGNvbnRhaW46IGxheW91dCBzdHlsZTsKICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogIC8qIEZvcmNlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiAqLwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKfQoKLyogQXBwbHkgYW5pbWF0aW9uIGRlbGF5cyBwcm9ncmVzc2l2ZWx5IGJhc2VkIG9uIGVsZW1lbnRzJyBwb3NpdGlvbiBpbiBwYWdlIGZsb3cgKi8KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7CiAgLyogSGVhZGVyIGVsZW1lbnRzICovCiAgaGVhZGVyIFtjbGFzcyo9ImFuaW1hdGUtIl0sCiAgbmF2IFtjbGFzcyo9ImFuaW1hdGUtIl0gewogICAgYW5pbWF0aW9uLWRlbGF5OiAwLjFzOwogIH0KICAKICAvKiBIZXJvIHNlY3Rpb24gZWxlbWVudHMgKi8KICAuaGVybyBbY2xhc3MqPSJhbmltYXRlLSJdLAogIHNlY3Rpb246Zmlyc3Qtb2YtdHlwZSBbY2xhc3MqPSJhbmltYXRlLSJdIHsKICAgIGFuaW1hdGlvbi1kZWxheTogMC4yczsKICB9CiAgCiAgLyogTWFpbiBjb250ZW50IGVsZW1lbnRzICovCiAgbWFpbiBbY2xhc3MqPSJhbmltYXRlLSJdIHsKICAgIGFuaW1hdGlvbi1kZWxheTogMC4zczsKICB9CiAgCiAgLyogRm9vdGVyIGVsZW1lbnRzICovCiAgZm9vdGVyIFtjbGFzcyo9ImFuaW1hdGUtIl0gewogICAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOwogIH0KfQoKLyogRGlzYWJsZSBhbmltYXRpb25zIG9uIG1vYmlsZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlICovCkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogIGJvZHk6bm90KC5hbmltYXRpb25zLWVuYWJsZWQpIFtjbGFzcyo9ImFuaW1hdGUtIl0sCiAgYm9keTpub3QoLmFuaW1hdGlvbnMtZW5hYmxlZCkgW2NsYXNzKj0iYW5pbWF0aW9uLSJdIHsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQoKLyogQW5pbWF0aW9uIGRlbGF5IHN0eWxlcyB0byBwcmV2ZW50IGxheW91dCBzaGlmdHMgb24gaW5pdGlhbCBsb2FkICovCgpib2R5Om5vdCguYW5pbWF0aW9ucy1lbmFibGVkKSAqIHsKICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCi8qIEVuc3VyZSBjcml0aWNhbCBsYXlvdXQgZWxlbWVudHMgYXJlIHN0YWJsZSBkdXJpbmcgbG9hZCAqLwouY29udGFpbmVyLCAubWFpbi1jb250YWluZXIsIC5yZXNwb25zaXZlLWNvbnRhaW5lciwgaW1nLCAuc2l6ZWQtaW1hZ2UgewogIGNvbnRhaW46IGxheW91dCBzdHlsZSBzaXplOwp9CgovKiBPdmVycmlkZSBhbnkgaW5pdGlhbCBhbmltYXRpb25zIHVudGlsIHRoZSBwYWdlIGlzIHJlYWR5ICovCmJvZHk6bm90KC5hbmltYXRpb25zLWVuYWJsZWQpIC5wYWdlLWVudGVyLApib2R5Om5vdCguYW5pbWF0aW9ucy1lbmFibGVkKSAucGFnZS1leGl0LApib2R5Om5vdCguYW5pbWF0aW9ucy1lbmFibGVkKSAucGFnZS1lbnRlci1hY3RpdmUsCmJvZHk6bm90KC5hbmltYXRpb25zLWVuYWJsZWQpIC5wYWdlLWV4aXQtYWN0aXZlIHsKICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgb3BhY2l0eTogMSAhaW1wb3J0YW50Owp9Cg==" media="print" onload="this.media='all'" id="css-animation-delay">
    <link rel="stylesheet" href="/src/styles/cyber-scanner-fix.css" media="print" onload="this.media='all'" id="css-cyber-scanner">
    
    <!-- Fallback for browsers that don't support onload handling -->
    <noscript>
      <link rel="stylesheet" href="/src/styles/cyber-scanner-fix.css">
    </noscript>
    <script type="module" crossorigin src="/assets/index-vKMLIqBu.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/vendor-6xzGZhHO.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-react-CC6X4GlY.js">
    <link rel="stylesheet" crossorigin href="/assets/index-DMDZ0Ska.css">
  </head>
  <body class="preload">
    <div id="root"></div>
    
    <!-- Viewport height fix for mobile -->
    <script>
      function setVhProperty() {
        var vh = window.innerHeight * 0.01;
        document.documentElement.style.setProperty('--vh', vh + 'px');
      }
      
      // Update on resize and orientation change
      window.addEventListener('resize', setVhProperty);
      window.addEventListener('orientationchange', setVhProperty);
    </script>
  </body>
</html>
