<!doctype html>
<html lang="en">
  <head>
    <!-- Meta Pixel — stub queues calls immediately; real fbevents.js is loaded with the rest of the deferred analytics block below to avoid blocking FCP/LCP on mobile. -->
    <script>
      (function(f){
        if (f.fbq) return;
        var n = f.fbq = function(){ n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); };
        if (!f._fbq) f._fbq = n;
        n.push = n; n.loaded = false; n.version = '2.0'; n.queue = [];
      })(window);
      fbq('init', '1911695489458161');
      fbq('track', 'PageView');
    </script>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-Frame-Options" content="SAMEORIGIN" />
    <meta http-equiv="Permissions-Policy" content="camera=(), microphone=(), geolocation=()" />
    <meta
      http-equiv="Content-Security-Policy"
      content="default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval'"
    />
    <title>Eye Magic — Non-Surgical Eyelid Lift Strips</title>
    <!--
      LCP hero image preload — placed at the very top of <head> so the
      browser's preload scanner discovers it before any analytics/ads
      scripts. href matches the responsive variant the browser actually
      selects on most viewports so the preload is reused (not re-fetched).
    -->
    <link rel="preconnect" href="https://eyemagicshop.com" crossorigin />
    <link
      rel="preload"
      as="image"
      href="/hero-ba-600.webp"
      imagesrcset="/hero-ba-600.webp 600w, /hero-ba.webp 750w, /hero-ba-1168.webp 1168w"
      imagesizes="(max-width: 1023px) 100vw, 584px"
      fetchpriority="high"
      type="image/webp"
    />
    <!-- Analytics & advertising tags: deferred until idle / first interaction -->
    <!-- Initialize dataLayer + gtag stub immediately so any code calling gtag() before the script loads still queues correctly. -->
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      window.gtag = gtag;
      gtag('js', new Date());
      gtag('config', 'G-6STCWK03MG', { send_page_view: true });
      gtag('config', 'AW-969275773');
      window.uetq = window.uetq || [];
    </script>
    <script>
      (function () {
        var loaded = false;
        function loadTags() {
          if (loaded) return;
          loaded = true;
          // Google Tag Manager
          (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
          new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
          j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
          'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
          })(window,document,'script','dataLayer','GTM-544DGN7C');
          // Microsoft Advertising UET
          (function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"4030944",enableAutoSpaTracking:true};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");
          // Microsoft Clarity (session recordings + heatmaps)
          (function(c,l,a,r,i,t,y){
            c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
            t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
            y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
          })(window,document,"clarity","script","wr4wxyioqk");
          // Meta Pixel — load the real fbevents.js now that the page is interactive.
          // The inline stub at the top of <head> already queued fbq('init') + the
          // initial PageView, so no events are lost.
          (function(d){
            var t = d.createElement('script');
            t.async = true;
            t.src = 'https://connect.facebook.net/en_US/fbevents.js';
            var s = d.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(t, s);
          })(document);
        }
        // Always defer until after the load event + a delay so analytics
        // never compete with FCP/LCP on slower mobile devices. Bumped to 4s
        // so analytics never overlaps with React hydration on slow phones.
        // Removed 'scroll' from interaction triggers — mobile users scroll
        // within ~200ms which previously negated the defer entirely.
        window.addEventListener('load', function () { setTimeout(loadTags, 4000); });
        ['pointerdown', 'keydown'].forEach(function (evt) {
          window.addEventListener(evt, loadTags, { once: true, passive: true });
        });
      })();
    </script>
    <meta
      name="description"
      content="Eye Magic offers patented non-surgical eyelid lift strips and anti-aging skincare. Trusted for 25+ years. USA Patent No. 6193741. Safe for all skin types."
    />
    <meta name="author" content="Eye Magic" />
    <meta
      name="keywords"
      content="non-surgical eyelid lift, eyelid lift strips, hooded eyes, instant eye lift, anti-aging skincare, Eye Magic"
    />
    <meta name="theme-color" content="#ffffff" />
    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1" />
    <meta name="facebook-domain-verification" content="7516nk890rve3l7m66n9bsta8xhhi3" />
    <meta name="google-site-verification" content="rkuoOr3RKdsZPQxJYwrwBDLlKU2GzFEsE-I7j42AAYs" />
    <!--
      Per-route canonical is injected by <SEO /> via react-helmet-async.
      No static <link rel="canonical"> here — having both would double-emit
      canonicals on every subroute.
    -->

    <link rel="preconnect" href="https://4brme5-2u.myshopify.com" crossorigin />
    <link rel="dns-prefetch" href="https://4brme5-2u.myshopify.com" />
    <link rel="dns-prefetch" href="https://cdn.shopify.com" />
    <link rel="dns-prefetch" href="https://hhgvqxswjcvcnvxdxegy.supabase.co" />
    <link rel="dns-prefetch" href="https://pagead2.googlesyndication.com" />

    <meta property="og:type" content="website" />
    <meta property="og:title" content="Eye Magic — Non-Surgical Eyelid Lift Strips" />
    <meta
      property="og:description"
      content="Eye Magic offers patented non-surgical eyelid lift strips and anti-aging skincare. Trusted for 25+ years. USA Patent No. 6193741. Safe for all skin types."
    />
    <meta property="og:url" content="https://eyemagicshop.com" />
    <meta property="og:image" content="https://eyemagicshop.com/og-image.jpg?v=2" />
    <meta property="og:image:secure_url" content="https://eyemagicshop.com/og-image.jpg?v=2" />
    <meta property="og:image:type" content="image/jpeg" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    <meta property="og:image:alt" content="Eye Magic non-surgical eyelid lift before and after" />
    <meta property="og:site_name" content="Eye Magic" />
    <meta property="og:locale" content="en_US" />

    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:title" content="Eye Magic — Non-Surgical Eyelid Lift Strips" />
    <meta
      name="twitter:description"
      content="Eye Magic offers patented non-surgical eyelid lift strips and anti-aging skincare. Trusted for 25+ years. USA Patent No. 6193741. Safe for all skin types."
    />
    <meta name="twitter:image" content="https://eyemagicshop.com/og-image.jpg?v=2" />
    <meta name="twitter:image:alt" content="Eye Magic non-surgical eyelid lift before and after" />

    <script type="application/ld+json">
      {
        "@context": "https://schema.org",
        "@type": "Organization",
        "name": "Eye Magic",
        "url": "https://eyemagicshop.com",
        "logo": "https://eyemagicshop.com/logo.png",
        "description": "Non-surgical eyelid lift solutions trusted for over 25 years. USA Patent No. 6193741.",
        "foundingDate": "2000"
      }
    </script>
    <script type="application/ld+json">
      {
        "@context": "https://schema.org",
        "@type": "WebSite",
        "name": "Eye Magic",
        "url": "https://eyemagicshop.com",
        "potentialAction": {
          "@type": "SearchAction",
          "target": "https://eyemagicshop.com/blog?q={search_term_string}",
          "query-input": "required name=search_term_string"
        }
      }
    </script>
    <link rel="icon" href="/favicon.ico?v=7" sizes="any" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=7" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=7" />
    <link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192.png?v=7" />
    <link rel="icon" type="image/png" sizes="512x512" href="/favicon-512x512.png?v=7" />
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=7" />
    <script>
      // Defer AdSense script until the page is idle so it doesn't compete
      // with the React bundle and hero image for bandwidth on initial load.
      // This dramatically improves FCP/LCP without affecting ad delivery —
      // ads render the moment the script loads (typically <1s after FCP).
      (function () {
        var loaded = false;
        function loadAds() {
          if (loaded) return;
          loaded = true;
          var s = document.createElement('script');
          s.async = true;
          s.crossOrigin = 'anonymous';
          s.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7661197858153804';
          document.head.appendChild(s);
        }
        // Defer AdSense strictly past the load event so its render-blocking
        // font CSS + show_ads_impl chain never delays FCP/LCP on mobile.
        window.addEventListener('load', function () { setTimeout(loadAds, 3000); });
        // Also load on first user interaction so ads appear quickly if the
        // user engages before idle fires.
        ['scroll', 'pointerdown', 'keydown'].forEach(function (evt) {
          window.addEventListener(evt, loadAds, { once: true, passive: true });
        });
      })();
    </script>
    <script type="module" crossorigin src="/assets/index-BCUfMzlw.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/react-vendor-CwUw1Y6-.js">
    <link rel="modulepreload" crossorigin href="/assets/query-vendor-CxtKL_o3.js">
    <link rel="modulepreload" crossorigin href="/assets/helmet-vendor-BdZsPqB6.js">
    <link rel="stylesheet" crossorigin href="/assets/index-fQ25mPMr.css">
  <script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script><script defer src="/__l5e/events.js" data-artifact-kind="preview_commit_sha" data-artifact-id="7f30e1a0a5d33af85eec622b3fdb233e44607f6f" data-commit-sha="7f30e1a0a5d33af85eec622b3fdb233e44607f6f" data-context-token="v1.eyJwcm9qZWN0X2lkIjoiOWNjNTk3ZTUtODk1NC00MTk1LTljMDgtYTA2YWMwNDY3NzRiIiwiYXJ0aWZhY3Rfa2luZCI6InByZXZpZXdfY29tbWl0X3NoYSIsImFydGlmYWN0X2lkIjoiN2YzMGUxYTBhNWQzM2FmODVlZWM2MjJiM2ZkYjIzM2U0NDYwN2Y2ZiIsImNvbW1pdF9zaGEiOiI3ZjMwZTFhMGE1ZDMzYWY4NWVlYzYyMmIzZmRiMjMzZTQ0NjA3ZjZmIiwiZXhwIjoxNzgxNjA5NjI5fQ.b_PrNm8f8QfismHxcV3LyXH5HDsXLkSYoM1QVDTaUZk" data-replay="rrweb" data-replay-sample-rate="0.001" data-replay-url="/__l5e/replay" data-replay-script-url="/__l5e/rrweb-record.js?__l5e_v=0.1.2-error-event-hardening"></script></head>

  <body>
    <!-- Meta Pixel <noscript> fallback (must be in <body>, not <head>) -->
    <noscript
      ><img
        height="1"
        width="1"
        style="display:none"
        src="https://www.facebook.com/tr?id=1911695489458161&ev=PageView&noscript=1"
    /></noscript>
    <noscript
      ><iframe
        src="https://www.googletagmanager.com/ns.html?id=GTM-544DGN7C"
        height="0"
        width="0"
        style="display:none;visibility:hidden"
      ></iframe
    ></noscript>
    <div id="root">
      <!--
        Static hero LCP image — painted at first HTML parse so the LCP element
        exists before the React bundle hydrates. React replaces #root on
        hydration with the same <img>, so there's no flicker. This collapses
        the LCP-after-FCP gap that PageSpeed Insights was flagging (~3s).
        Only renders on the home route ("/") via inline JS check below.
      -->
      <script>
        (function () {
          if (location.pathname !== '/' && location.pathname !== '/index.html') return;
          var html = '<div style="min-height:100vh;background:#fff">' +
            '<div style="max-width:1280px;margin:0 auto;padding:24px 16px 48px;display:flex;justify-content:center">' +
            '<img src="/hero-ba-600.webp" ' +
            'srcset="/hero-ba-600.webp 600w, /hero-ba.webp 750w, /hero-ba-1168.webp 1168w" ' +
            'sizes="(max-width: 1023px) 100vw, 584px" ' +
            'alt="Before and after Eye Magic — instant non-surgical eyelid lift transformation" ' +
            'width="1024" height="600" fetchpriority="high" decoding="async" ' +
            'style="width:100%;max-width:584px;height:auto;border-radius:16px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.25)" />' +
            '</div></div>';
          document.currentScript.insertAdjacentHTML('afterend', html);
        })();
      </script>
    </div>
  </body>
</html>
