<!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">
<meta name="theme-color" content="#0b1220">

<title>Xmovies8 - Watch Free Movies Online - HD Series & TV Shows</title>
<meta name="description" content="Xmovies8 lets viewers watch free movies online with HD series, TV shows, fast search, and a smooth streaming experience built for daily entertainment.">
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<link rel="canonical" href="https://xmovies8.cc/">

<link rel="icon" type="image/png" sizes="192x192" href="/images/icon.png">
<link rel="apple-touch-icon" sizes="192x192" href="/images/icon.png">
<link rel="shortcut icon" href="images/icon.png">

<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://xmovies8.cc/">
<meta property="og:site_name" content="XMOVIES8">
<meta property="og:title" content="Xmovies8 - Watch Free Movies Online - HD Series & TV Shows">
<meta property="og:description" content="Xmovies8 lets viewers watch free movies online with HD series, TV shows, fast search, and a smooth streaming experience built for daily entertainment.">
<meta property="og:image" content="/images/xmovies8_og.webp">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:type" content="image/webp">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://xmovies8.cc/">
<meta name="twitter:title" content="Xmovies8 - Watch Free Movies Online - HD Series & TV Shows">
<meta name="twitter:description" content="Xmovies8 lets viewers watch free movies online with HD series, TV shows, fast search, and a smooth streaming experience built for daily entertainment.">
<meta name="twitter:image" content="/images/xmovies8_og.webp">

<!-- Schema.org -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "XMOVIES8",
  "url": "https://xmovies8.cc/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>

<style>
.banner-sidebar {
  position: fixed;

}
.banner-sidebar.banner-right {
    right: 0;
    left: auto;
    align-items: center;
    box-sizing: border-box;
    z-index: 100;
    bottom: 0;
}
.banner-ngang {
  z-index: 100;
  position: fixed;
  left: 50%;  
  transform:translateX(-50%); 
  bottom: 0;
  display: flex;
}
    
      :root {
        --catflix-primary: #f04f24;
        --catflix-primary-strong: #ff7b59;
        --catflix-soft: #dbeafe;
        --catflix-bg: #081524;
        --catflix-panel: #11243a;
      }
      body {
        background: radial-gradient(circle at top left, rgba(240,79,36,.22), transparent 32%), radial-gradient(circle at top right, rgba(255,123,89,.16), transparent 28%), #0b1220;
      }
      .text-red-600, .text-red-500, .hover\:text-red-500:hover, .group-hover\:text-red-500:hover, .group-hover\:text-red-600:hover {
        color: var(--catflix-primary) !important;
      }
      .bg-red-600, .bg-red-500, .hover\:bg-red-600:hover, .hover\:bg-red-500:hover {
        background-color: var(--catflix-primary-strong) !important;
      }
      .border-red-600, .focus\:ring-red-600\/50:focus, .ring-red-600\/50, .focus\:ring-violet-500\/50:focus {
        border-color: var(--catflix-primary) !important;
        --tw-ring-color: rgba(240,79,36,.45) !important;
      }
      .from-red-600, .via-red-600, .to-red-600 {
        --tw-gradient-from: var(--catflix-primary) var(--tw-gradient-from-position) !important;
        --tw-gradient-to: rgba(255,90,95,0) var(--tw-gradient-to-position) !important;
        --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
      }
      .selection\:bg-red-600 ::selection, .selection\:bg-red-600::selection {
        background: var(--catflix-primary-strong) !important;
      }
      .catflix-logo-glow {
        filter: drop-shadow(0 0 14px rgba(240,79,36,.35));
      }

      .text-blue-500, .hover\:text-blue-400:hover, .hover\:text-blue-500:hover, .text-blue-400, .group-focus-within\:text-blue-400, .group-hover\:text-blue-400:hover { color: var(--catflix-primary) !important; }
      .selection\:bg-blue-500 ::selection, .selection\:bg-blue-500::selection { background: var(--catflix-primary) !important; }
      .focus\:ring-blue-500\/50:focus { --tw-ring-color: rgba(240,79,36,.45) !important; }

      </style>

          <!-- Mobile & PWA 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="apple-mobile-web-app-title" content="XMOVIES8">

          <!-- Performance Optimizations -->
          <link rel="preconnect" href="https://image.tmdb.org" crossorigin="">
          <link rel="dns-prefetch" href="https://image.tmdb.org">

          <script src="https://cdn.tailwindcss.com"></script>
          <script>
          tailwind.config = {
            theme: {
              extend: {
                colors: {
                  'netflix-red': '#f04f24',
                  'netflix-dark': '#0b1220',
                  'netflix-gray': '#e5e5e5',
              // Override default red to the new Blue Theme
            },
            animation: {
              fadeIn: 'fadeIn 0.5s ease-in-out',
            },
            keyframes: {
              fadeIn: {
                '0%': { opacity: '0' },
                '100%': { opacity: '1' },
              }
            }
          }
        }
      }
      </script>
      <style>
      body {
        background-color: #0b1220;
        color: #fff;
        -webkit-tap-highlight-color: transparent; /* Remove tap highlight on mobile */
      }
      /* Hide scrollbar for Chrome, Safari and Opera */
      .no-scrollbar::-webkit-scrollbar {
        display: none;
      }
      /* Hide scrollbar for IE, Edge and Firefox */
      .no-scrollbar {
        -ms-overflow-style: none;  /* IE and Edge */
        scrollbar-width: none;  /* Firefox */
      }
      /* Mobile safe area spacing */
      .safe-pb {
        padding-bottom: env(safe-area-inset-bottom);
      }
      </style>

      <link rel="stylesheet" href="/index.css">
      <script type="importmap">
      {
        "imports": {
          "lucide-react": "https://esm.sh/lucide-react@^0.562.0",
          "react": "https://esm.sh/react@^19.2.3",
          "react-dom": "https://esm.sh/react-dom@^19.2.3",
          "react-router-dom": "https://esm.sh/react-router-dom@^7.12.0"
        }
      }
      </script>
      <script type="module" crossorigin="" src="/js/index-CuUuhySN.js"></script>
    </head>
    <body>
      <div id="root"></div>
    
      <div id="mobile-banner"></div>

      <div id="desktop-banner"></div>

<script>
(() => {
  const isMobile = window.matchMedia("(max-width: 767px)").matches;

  const cfg = isMobile
    ? {
        slotId: "mobile-banner",
        className: "banner-sidebar banner_wrapper banner-right",
        key: "f526ab78882f78989aa042dd3ee36c69",
        width: 160,
        height: 300
      }
    : {
        slotId: "desktop-banner",
        className: "banner-ngang banner_wrapper",
        key: "79fc2ae84cf2aebb3fc93ec232501cb6",
        width: 728,
        height: 90
      };

  const slot = document.getElementById(cfg.slotId);
  if (!slot) return;

  const wrap = document.createElement("div");
  wrap.className = cfg.className;
  slot.appendChild(wrap);

  window.atOptions = {
    key: cfg.key,
    format: "iframe",
    height: cfg.height,
    width: cfg.width,
    params: {}
  };

  const s = document.createElement("script");
  s.type = "text/javascript";
  s.src = `https://layingframingcomrade.com/${cfg.key}/invoke.js`;
  s.async = true;
  wrap.appendChild(s);
})();
</script>

<script>
        
        var bannerWrappers = document.querySelectorAll('.banner_wrapper');

        
        bannerWrappers.forEach(function(bannerWrapper) {
        
        var xButton = document.createElement('button');

        
        xButton.innerHTML = '&times;';

        
        xButton.style.position = 'absolute';
        xButton.style.top = '-5px'; 
        xButton.style.right = '-5px'; 
        xButton.style.padding = '0 5px'; 
        xButton.style.border = 'none';
        xButton.style.backgroundColor = '#ffffff'; 
        xButton.style.color = '#000'; 
        xButton.style.fontWeight = 'bold';
        xButton.style.fontSize = '25px'; 
        xButton.style.lineHeight = '24px'; 
        xButton.style.cursor = 'pointer';
        xButton.style.boxShadow = 'rgb(0, 0, 0) 0px 2px 4px';
        xButton.style.borderRadius = '2px';
        xButton.style.transition = 'background-color 0.3s'; 

        
        xButton.style.display = 'none';
        setTimeout(function() {
            xButton.style.display = 'block';
        }, 3000);

        
        xButton.addEventListener('mouseover', function() {
        xButton.style.backgroundColor = '#e0e0e0'; 
    });

        xButton.addEventListener('mouseout', function() {
        xButton.style.backgroundColor = '#ffffff'; 
    });

    
    xButton.addEventListener('click', function() {
    
    var iframes = bannerWrapper.querySelectorAll('iframe');
    iframes.forEach(function(iframe) {
        iframe.style.display = 'none';
    });

    
    xButton.style.display = 'none';
    });

        
        bannerWrapper.appendChild(xButton);
    });
</script>

  
<script>
(function () {
  function onHomePage() {
    return location.pathname === '/' || location.pathname === '/index.html' || location.pathname === '';
  }

</script>

</body></html>

