<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Data Mirror | See Who Tracks You & Your Data's True Value</title>
  <meta name="description" content="See who tracks you online. Data Mirror exposes trackers and Loki Mode poisons their data. Free Chrome extension, 100% local.">
  <meta name="keywords" content="privacy extension, data tracking, ad tracking, browser privacy, GDPR, data brokers, chrome extension, tracker detector, data value, Loki Mode, data poisoning">
  <meta name="author" content="Data Mirror">
  <meta name="robots" content="index, follow">
  <link rel="canonical" href="https://datamirror.eu/">
  <link rel="alternate" hreflang="en" href="https://datamirror.eu/" />
  <link rel="alternate" hreflang="fr" href="https://datamirror.eu/fr/" />
  <link rel="alternate" hreflang="x-default" href="https://datamirror.eu/" />
  <meta property="og:type" content="website">
  <meta property="og:site_name" content="Data Mirror">
  <meta property="og:title" content="Data Mirror | See Who Tracks You & Your Data's True Value">
  <meta property="og:description" content="See who tracks you online. Data Mirror exposes trackers and Loki Mode poisons their data. Free Chrome extension.">
  <meta property="og:url" content="https://datamirror.eu/">
  <meta property="og:image" content="https://datamirror.eu/og-image.png">
  <meta property="og:image:width" content="1200">
  <meta property="og:image:height" content="630">
  <meta property="og:locale" content="en_US">
  <meta property="og:locale:alternate" content="fr_FR">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="Data Mirror | See Who Tracks You & Your Data's True Value">
  <meta name="twitter:description" content="See who tracks you online. Data Mirror exposes trackers and Loki Mode poisons their data. Free Chrome extension.">
  <meta name="twitter:image" content="https://datamirror.eu/og-image.png">
  <script type="application/ld+json">
  {"@context":"https://schema.org","@graph":[
    {"@type":"SoftwareApplication","name":"Data Mirror","applicationCategory":"BrowserExtension","operatingSystem":"Chrome OS, Windows, macOS, Linux","offers":{"@type":"Offer","price":"0","priceCurrency":"EUR"},"description":"Free Chrome extension with Loki Mode: see who tracks you, then poison their data.","url":"https://datamirror.eu","downloadUrl":"https://chromewebstore.google.com/detail/data-mirror/ncofhifocmjmmcgdaajjddbbepbcacbf","softwareVersion":"1.2.0","inLanguage":["en","fr"],"author":{"@type":"Organization","name":"Data Mirror","url":"https://datamirror.eu","email":"hello@datamirror.eu"},"countryOfOrigin":"FR","isAccessibleForFree":true,"featureList":["Loki Mode: data poisoning defense","Real-time tracker detection","Market value estimation","Privacy score A-F","Data broker identification","Country-level data flow mapping","100% local processing"]},
    {"@type":"FAQPage","mainEntity":[
      {"@type":"Question","name":"What is Loki Mode?","acceptedAnswer":{"@type":"Answer","text":"Loki Mode feeds trackers false data: fake interests, contradictory signals, noise. Your advertising profile becomes fiction. Data poisoning as self-defense."}},
      {"@type":"Question","name":"Why aren't ad blockers enough?","acceptedAnswer":{"@type":"Answer","text":"Ad blockers hide you. Trackers adapt with fingerprinting and server-side tracking. Loki Mode plays offense: trackers collect data, but the data is wrong."}},
      {"@type":"Question","name":"Does Data Mirror collect my data?","acceptedAnswer":{"@type":"Answer","text":"No. Everything happens locally. No server, no account, no data leaves your browser."}},
      {"@type":"Question","name":"What do the privacy grades A to F mean?","acceptedAnswer":{"@type":"Answer","text":"Each grade reflects privacy exposure. A (85-100) Excellent, B (70-84) Good, C (55-69) Fair, D (40-54) Concerning, E (20-39) Poor, F (0-19) Critical."}}
    ]},
    {"@type":"WebSite","name":"Data Mirror","url":"https://datamirror.eu","inLanguage":["en","fr"],"description":"Free Chrome extension with Loki Mode: see who tracks you, then poison their data."}
  ]}
  </script>
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
  <style>
    :root{--p:#8B5CF6;--pd:#13101F;--g:#00C96E;--bg:#0A0E13;--text:#E8F4FF;--muted:#6B8FA8;--dim:#3A5570;--border:#1A2433;--warn:#FF7A00;--danger:#FF2D2D;--amber:#FFD700;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;--mono:'JetBrains Mono','SF Mono','Fira Mono',monospace;--r:12px;}
    *{box-sizing:border-box;margin:0;padding:0;}html{scroll-behavior:smooth;}
    body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;overflow-x:hidden;}
    body::before{content:'';position:fixed;inset:0;z-index:0;background-image:linear-gradient(rgba(139,92,246,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.012) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;}

    .lang-bar{background:rgba(10,14,19,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:6px 24px;display:flex;justify-content:flex-end;align-items:center;gap:6px;position:sticky;top:0;z-index:100;}
    .lang-btn{font-family:var(--mono);font-size:10px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);background:none;cursor:pointer;color:var(--muted);transition:all .2s;letter-spacing:.05em;}
    .lang-btn.active{background:var(--p);color:#fff;border-color:var(--p);}

    nav{max-width:1080px;margin:0 auto;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;}
    .nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;}
    .nav-logo-text{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--text);letter-spacing:.06em;}
    .nav-logo-tld{color:var(--p);}
    .nav-r{display:flex;align-items:center;gap:12px;}
    .nav-link{font-size:13px;color:var(--muted);padding:4px 12px;border:1px solid var(--border);border-radius:20px;text-decoration:none;transition:all .2s;}
    .nav-link:hover{color:var(--p);border-color:rgba(139,92,246,.3);text-decoration:none;}
    .nav-cta{font-size:13px;font-weight:600;padding:8px 18px;background:var(--p);color:#fff;border-radius:40px;text-decoration:none;transition:all .2s;}
    .nav-cta:hover{opacity:.9;text-decoration:none;}

    /* HERO */
    .hero{max-width:1080px;margin:0 auto;padding:100px 24px 80px;text-align:center;position:relative;z-index:1;}
    .hero::before{content:'';position:absolute;top:-250px;left:50%;transform:translateX(-50%);width:900px;height:900px;background:radial-gradient(circle,rgba(139,92,246,.06) 0%,transparent 50%);pointer-events:none;}
    .hero-tag{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--p);margin-bottom:28px;opacity:0;animation:fu .6s .1s forwards;display:inline-flex;align-items:center;gap:8px;background:var(--pd);border:1px solid rgba(139,92,246,.15);padding:6px 18px;border-radius:40px;}
    .hero-dot{width:6px;height:6px;border-radius:50%;background:var(--p);animation:pulse 2s infinite;}
    h1.hero-title{font-family:var(--serif);font-size:clamp(36px,6.5vw,74px);line-height:1.02;color:var(--text);margin-bottom:28px;opacity:0;animation:fu .6s .2s forwards;max-width:860px;margin-left:auto;margin-right:auto;}
    .hero-title em{font-style:normal;color:var(--p);}
    .hero-title .dead{text-decoration:line-through;color:var(--dim);opacity:.5;}
    h2.hero-h2{font-size:17px;color:var(--muted);line-height:1.7;margin-bottom:44px;max-width:560px;margin-left:auto;margin-right:auto;font-weight:400;opacity:0;animation:fu .6s .3s forwards;}
    .hero-act{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;opacity:0;animation:fu .6s .4s forwards;margin-bottom:28px;}
    .btn-p{display:inline-flex;align-items:center;gap:10px;padding:15px 34px;background:var(--p);color:#fff;border-radius:40px;font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;}
    .btn-p:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(139,92,246,.3);text-decoration:none;}
    .btn-s{font-size:14px;color:var(--muted);text-decoration:none;display:flex;align-items:center;gap:6px;}
    .btn-s:hover{color:var(--p);text-decoration:none;}
    .hero-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;opacity:0;animation:fu .6s .5s forwards;}
    .hb{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;padding:4px 10px;border-radius:20px;border:1px solid var(--border);color:var(--dim);}
    .hb.pur{border-color:rgba(139,92,246,.25);color:var(--p);}

    /* SECTION SHARED */
    .sec{max-width:1080px;margin:0 auto;padding:80px 24px;position:relative;z-index:1;}
    .sec-l{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;text-align:center;color:var(--dim);}
    .sec-t{font-family:var(--serif);font-size:clamp(26px,3.5vw,38px);line-height:1.15;text-align:center;color:var(--text);margin-bottom:16px;}
    .sec-t em{font-style:normal;color:var(--p);}
    .sec-sub{font-size:15px;color:var(--muted);text-align:center;max-width:520px;margin:0 auto 48px;line-height:1.7;}

    /* PROBLEM + BLOCKERS (fused) */
    .reality{border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;z-index:1;}
    .reality-in{max-width:1080px;margin:0 auto;padding:80px 24px;}
    .reality-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
    @media(max-width:760px){.reality-grid{grid-template-columns:1fr;gap:40px;}}
    .reality-left h2{font-family:var(--serif);font-size:clamp(24px,3vw,32px);color:var(--text);line-height:1.2;margin-bottom:20px;}
    .reality-left h2 em{font-style:normal;color:var(--p);}
    .reality-stats{display:flex;flex-direction:column;gap:16px;margin-bottom:28px;}
    .r-stat{display:flex;align-items:baseline;gap:12px;}
    .r-stat-n{font-family:var(--mono);font-size:28px;font-weight:700;color:var(--text);min-width:80px;}
    .r-stat-t{font-size:14px;color:var(--muted);line-height:1.5;}
    .reality-right{display:flex;flex-direction:column;gap:16px;}
    .r-point{padding:20px;background:rgba(139,92,246,.025);border:1px solid rgba(139,92,246,.08);border-radius:var(--r);}
    .r-point h3{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px;}
    .r-point p{font-size:13px;color:var(--muted);line-height:1.6;}

    /* LOKI */
    .loki{background:linear-gradient(180deg,var(--pd) 0%,var(--bg) 100%);border-top:1px solid rgba(139,92,246,.1);position:relative;z-index:1;overflow:hidden;}
    .loki::before{content:'';position:absolute;top:-200px;left:50%;transform:translateX(-50%);width:900px;height:500px;background:radial-gradient(ellipse,rgba(139,92,246,.04) 0%,transparent 65%);pointer-events:none;}
    .loki-in{max-width:1080px;margin:0 auto;padding:100px 24px 80px;}
    .loki-g{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
    @media(max-width:680px){.loki-g{grid-template-columns:1fr;}}
    .loki-s{padding:32px 24px;background:rgba(139,92,246,.025);border:1px solid rgba(139,92,246,.08);border-radius:var(--r);text-align:center;transition:all .25s;}
    .loki-s:hover{border-color:rgba(139,92,246,.2);transform:translateY(-3px);}
    .loki-s-n{font-family:var(--mono);font-size:10px;color:var(--p);letter-spacing:.1em;margin-bottom:12px;}
    .loki-s-i{font-size:32px;margin-bottom:12px;}
    .loki-s h3{font-family:var(--serif);font-size:19px;margin-bottom:8px;color:var(--text);}
    .loki-s p{font-size:13px;color:var(--muted);line-height:1.7;}
    .loki-cta{text-align:center;margin-top:40px;}
    .loki-link{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:1px solid rgba(139,92,246,.2);border-radius:40px;color:var(--p);font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;}
    .loki-link:hover{background:rgba(139,92,246,.06);text-decoration:none;}

    .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
    @media(max-width:680px){.steps{grid-template-columns:1fr;}}
    .step{text-align:center;padding:28px 20px;background:#0D1117;border-radius:var(--r);border:1px solid var(--border);transition:all .25s;}
    .step:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(0,201,110,.05);}
    .step-n{font-family:var(--mono);font-size:10px;color:var(--g);letter-spacing:.1em;margin-bottom:12px;}
    .step-i{font-size:24px;margin-bottom:12px;}
    .step h3{font-family:var(--serif);font-size:17px;margin-bottom:6px;color:var(--text);}
    .step p{font-size:13px;color:var(--muted);line-height:1.6;}



    /* SCREENS */
    .scr{background:#080C10;position:relative;z-index:1;}
    .scr-in{max-width:1080px;margin:0 auto;padding:80px 24px;}
    .scr-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
    @media(max-width:680px){.scr-g{grid-template-columns:1fr;}}
    .scr-c{background:#111820;border:1px solid #1A2433;border-radius:var(--r);overflow:hidden;transition:transform .2s;}
    .scr-c:hover{transform:translateY(-3px);}
    .scr-h{padding:8px 12px;border-bottom:1px solid #1A2433;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);}
    .scr-b{padding:12px;min-height:120px;display:flex;flex-direction:column;gap:5px;}
    .geo-r{display:flex;align-items:center;gap:6px;margin-bottom:2px;}
    .geo-l{font-family:var(--mono);font-size:8px;color:var(--muted);width:58px;}
    .geo-t{flex:1;height:3px;background:#1A2433;border-radius:2px;overflow:hidden;}
    .geo-f{height:100%;border-radius:2px;}
    .geo-p{font-family:var(--mono);font-size:7px;color:var(--dim);width:22px;text-align:right;}

    /* MANIFESTO */
    .mani{background:var(--pd);border-top:1px solid rgba(139,92,246,.08);border-bottom:1px solid rgba(139,92,246,.08);position:relative;z-index:1;}
    .mani-in{max-width:680px;margin:0 auto;padding:72px 24px;text-align:center;}
    .mani-q{font-family:var(--serif);font-size:clamp(20px,2.8vw,28px);line-height:1.35;color:var(--text);margin-bottom:20px;font-style:italic;}
    .mani-q strong{font-style:normal;color:var(--p);}
    .mani-b{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:16px;}
    .mani-sig{font-family:var(--mono);font-size:11px;color:var(--dim);}

    /* FAQ */
    .faq-l{max-width:640px;margin:0 auto;}
    .faq-i{border-bottom:1px solid var(--border);padding:18px 0;}
    .faq-q{font-family:var(--serif);font-size:16px;color:var(--text);margin-bottom:6px;display:flex;align-items:flex-start;gap:10px;}
    .faq-q::before{content:'>';color:var(--p);flex-shrink:0;font-family:var(--mono);font-weight:700;}
    .faq-a{font-size:14px;color:var(--muted);line-height:1.7;padding-left:20px;}
    .gt{width:100%;border-collapse:collapse;margin:10px 0 0;font-size:12px;}
    .gt th{text-align:left;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);padding:6px 8px;border-bottom:1px solid var(--border);}
    .gt td{padding:6px 8px;border-bottom:1px solid var(--border);color:var(--muted);}

    /* CTA */
    .cta{text-align:center;padding:100px 24px;background:#060A0E;position:relative;overflow:hidden;z-index:1;}
    .cta::before{content:'';position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(139,92,246,.06) 0%,transparent 65%);pointer-events:none;}
    .cta-t{font-family:var(--serif);font-size:clamp(28px,4.5vw,46px);color:var(--text);margin-bottom:14px;position:relative;}
    .cta-t em{font-style:normal;color:var(--p);}
    .cta-s{font-size:15px;color:var(--muted);margin-bottom:36px;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.7;}
    .cta-b{display:inline-flex;align-items:center;gap:10px;padding:15px 34px;background:var(--p);color:#fff;border-radius:40px;font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;}
    .cta-b:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(139,92,246,.25);text-decoration:none;}
    .cta-n{margin-top:14px;font-size:11px;color:var(--dim);}

    footer{background:#060A0E;padding:28px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;position:relative;z-index:1;}
    .f-logo{font-family:var(--mono);font-size:12px;color:var(--dim);}.f-logo span{color:var(--p);}
    .f-links{display:flex;gap:18px;}.f-links a{font-size:11px;color:var(--dim);text-decoration:none;}.f-links a:hover{color:var(--p);}
    .f-copy{font-size:10px;color:#222D3A;width:100%;text-align:center;padding-top:12px;border-top:1px solid #151D28;margin-top:6px;}

    @keyframes fu{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
    @keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.7);}}
    .rv{opacity:0;transform:translateY(20px);transition:opacity .5s,transform .5s;}.rv.v{opacity:1;transform:translateY(0);}
  </style>
</head>
<body>

<div class="lang-bar">
  <button class="lang-btn active" onclick="setLang('en')" id="btn-en">EN</button>
  <button class="lang-btn" onclick="setLang('fr')" id="btn-fr">FR</button>
</div>

<nav>
  <a href="/" class="nav-logo">
    <svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" width="30" height="30"><defs><linearGradient id="ng" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#8B5CF6"/><stop offset="100%" stop-color="#22D3EE"/></linearGradient></defs><rect width="128" height="128" rx="24" fill="#080C10"/><rect x="2" y="2" width="124" height="124" rx="22" fill="none" stroke="url(#ng)" stroke-width="2" opacity=".5"/><path d="M 20 64 Q 64 28 108 64 Q 64 100 20 64 Z" fill="none" stroke="url(#ng)" stroke-width="3"/><circle cx="64" cy="64" r="18" fill="none" stroke="url(#ng)" stroke-width="2.5"/><circle cx="64" cy="64" r="9" fill="url(#ng)"/><circle cx="64" cy="64" r="3" fill="#080C10"/></svg>
    <span class="nav-logo-text">DATA MIRROR<span class="nav-logo-tld">.EU</span></span>
  </a>
  <div class="nav-r">
    <a href="/blog/" class="nav-link">Blog</a>
    <a href="https://chromewebstore.google.com/detail/data-mirror/ncofhifocmjmmcgdaajjddbbepbcacbf" class="nav-cta" data-en="Install" data-fr="Installer">Install</a>
  </div>
</nav>

<!-- HERO -->
<div class="hero">
  <div class="hero-tag"><span class="hero-dot"></span> Loki Mode</div>
  <h1 class="hero-title">
    <span class="dead" data-en="They track you." data-fr="Ils vous traquent.">They track you.</span><br>
    <span data-en="You " data-fr="Vous les ">You </span><em data-en="poison their data." data-fr="empoisonnez.">poison their data.</em>
  </h1>
  <h2 class="hero-h2" data-en="Data Mirror exposes every tracker and every dollar your browsing generates. Loki Mode feeds them false data. Free Chrome extension. 100% local." data-fr="Data Mirror expose chaque tracker et chaque euro que votre navigation g&eacute;n&egrave;re. Loki Mode leur envoie de fausses donn&eacute;es. Extension Chrome gratuite. 100% locale.">Data Mirror exposes every tracker and every dollar your browsing generates. Loki Mode feeds them false data. Free Chrome extension. 100% local.</h2>
  <div class="hero-act">
    <a href="https://chromewebstore.google.com/detail/data-mirror/ncofhifocmjmmcgdaajjddbbepbcacbf" class="btn-p">
      <svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z" fill="currentColor"/></svg>
      <span data-en="Add to Chrome" data-fr="Ajouter &agrave; Chrome">Add to Chrome</span>
    </a>
    <a href="#loki" class="btn-s"><span data-en="What is Loki Mode?" data-fr="C'est quoi Loki Mode ?">What is Loki Mode?</span> &rarr;</a>
  </div>
  <div class="hero-badges">
    <span class="hb pur">Loki Mode</span>
    <span class="hb">100% local</span>
    <span class="hb">Made in France</span>
  </div>
</div>

<!-- THE REALITY (problem + blockers fused) -->
<div class="reality">
  <div class="reality-in">
    <div class="reality-grid rv">
      <div class="reality-left">
        <p class="sec-l" style="text-align:left;color:var(--dim)" data-en="The reality" data-fr="La r&eacute;alit&eacute;">The reality</p>
        <h2 data-en="Your data is sold <em>thousands of times a day.</em> Blocking doesn't stop it." data-fr="Vos donn&eacute;es sont vendues <em>des milliers de fois par jour.</em> Bloquer ne suffit pas.">Your data is sold <em>thousands of times a day.</em> Blocking doesn't stop it.</h2>
        <div class="reality-stats">
          <div class="r-stat"><div class="r-stat-n">$4-12</div><div class="r-stat-t" data-en="per day, per user. The value of your browsing on the ad market. You see none of it." data-fr="par jour, par utilisateur. La valeur de votre navigation sur le march&eacute; pub. Vous n'en voyez rien.">per day, per user. The value of your browsing on the ad market. You see none of it.</div></div>
          <div class="r-stat"><div class="r-stat-n">73%</div><div class="r-stat-t" data-en="of websites run hidden trackers. News, government, healthcare." data-fr="des sites ont des trackers cach&eacute;s. Info, gouvernement, sant&eacute;.">of websites run hidden trackers. News, government, healthcare.</div></div>
          <div class="r-stat"><div class="r-stat-n">97%</div><div class="r-stat-t" data-en="of consent banners use dark patterns. The consent you give isn't real. (NOYB)" data-fr="des banni&egrave;res utilisent des dark patterns. Le consentement n'est pas r&eacute;el. (NOYB)">of consent banners use dark patterns. The consent you give isn't real. (NOYB)</div></div>
        </div>
      </div>
      <div class="reality-right">
        <div class="r-point">
          <h3 data-en="Ad blockers are defense. They play offense." data-fr="Les bloqueurs sont en d&eacute;fense. Eux jouent en attaque.">Ad blockers are defense. They play offense.</h3>
          <p data-en="Block cookies? They switch to fingerprinting. Block scripts? They use server-side tracking. Every wall, a workaround." data-fr="Bloquez les cookies ? Ils passent au fingerprinting. Bloquez les scripts ? Ils utilisent le tracking serveur. Chaque mur, un contournement.">Block cookies? They switch to fingerprinting. Block scripts? They use server-side tracking. Every wall, a workaround.</p>
        </div>
        <div class="r-point">
          <h3 data-en="Your defenses make you identifiable." data-fr="Vos d&eacute;fenses vous rendent identifiable.">Your defenses make you identifiable.</h3>
          <p data-en="Five privacy extensions make your browser rarer than one with none. Rarity is what fingerprinting exploits." data-fr="Cinq extensions de protection rendent votre navigateur plus rare. La raret&eacute; est ce que le fingerprinting exploite.">Five privacy extensions make your browser rarer than one with none. Rarity is what fingerprinting exploits.</p>
        </div>
        <div class="r-point">
          <h3 data-en="Fingerprinting needs no cookies." data-fr="Le fingerprinting n'a pas besoin de cookies.">Fingerprinting needs no cookies.</h3>
          <p data-en="Screen, GPU, fonts, browser version: they create a unique ID. No blocker stops it." data-fr="&Eacute;cran, GPU, polices, navigateur : ils cr&eacute;ent un identifiant unique. Aucun bloqueur ne l'emp&ecirc;che.">Screen, GPU, fonts, browser version: they create a unique ID. No blocker stops it.</p>
        </div>
      </div>
    </div>
  </div>
</div>

<!-- LOKI MODE -->
<div class="loki" id="loki">
  <div class="loki-in">
    <p class="sec-l rv" style="color:var(--p)" data-en="Loki Mode" data-fr="Loki Mode">Loki Mode</p>
    <h2 class="sec-t rv" data-en="Stop hiding. <em>Poison their data.</em>" data-fr="Arr&ecirc;tez de vous cacher. <em>Empoisonnez leurs donn&eacute;es.</em>">Stop hiding. <em>Poison their data.</em></h2>
    <p class="sec-sub rv" data-en="Loki Mode doesn't block trackers. It feeds them lies. Your profile becomes fiction." data-fr="Loki Mode ne bloque pas les trackers. Il leur envoie des mensonges. Votre profil devient de la fiction.">Loki Mode doesn't block trackers. It feeds them lies. Your profile becomes fiction.</p>
    <div class="loki-g rv">
      <div class="loki-s">
        <div class="loki-s-i" style="font-family:var(--mono);font-size:20px;color:var(--p)">01</div>
        <h3 data-en="See" data-fr="Voir">See</h3>
        <p data-en="Data Mirror maps every tracker, every company, every country your data flows to. On your device. In real time." data-fr="Data Mirror cartographie chaque tracker, chaque entreprise, chaque pays. Sur votre appareil. En temps r&eacute;el.">Data Mirror maps every tracker, every company, every country your data flows to. On your device. In real time.</p>
      </div>
      <div class="loki-s">
        <div class="loki-s-i" style="font-family:var(--mono);font-size:20px;color:var(--p)">02</div>
        <h3 data-en="Corrupt" data-fr="Corrompre">Corrupt</h3>
        <p data-en="Loki injects false interests, fake demographics, contradictory signals. Trackers collect data. The data is wrong." data-fr="Loki injecte de faux int&eacute;r&ecirc;ts, de fausses d&eacute;mographies, des signaux contradictoires. Les trackers collectent. Les donn&eacute;es sont fausses.">Loki injects false interests, fake demographics, contradictory signals. Trackers collect data. The data is wrong.</p>
      </div>
      <div class="loki-s">
        <div class="loki-s-i" style="font-family:var(--mono);font-size:20px;color:var(--p)">03</div>
        <h3 data-en="Break" data-fr="Casser">Break</h3>
        <p data-en="A worthless profile can't be sold. The surveillance economy loses its foundation." data-fr="Un profil sans valeur ne peut pas &ecirc;tre vendu. L'&eacute;conomie de la surveillance perd son fondement.">A worthless profile can't be sold. The surveillance economy loses its foundation.</p>
      </div>
    </div>
    <div class="loki-cta rv">
      <a href="/blog/what-is-data-poisoning-privacy/" class="loki-link"><span data-en="How data poisoning works" data-fr="Comment fonctionne l'empoisonnement de donn&eacute;es">How data poisoning works</span> &rarr;</a>
    </div>
  </div>
</div>

<!-- SCREENSHOTS -->
<div class="scr">
  <div class="scr-in">
    <p class="sec-l rv" style="color:var(--g)" data-en="Inside the extension" data-fr="Dans l'extension">Inside the extension</p>
    <h2 class="sec-t rv" data-en="Raw data. No fluff." data-fr="Donn&eacute;es brutes. Sans superflu.">Raw data. No fluff.</h2>
    <div style="height:32px"></div>
    <div class="scr-g rv">
      <div class="scr-c">
        <div class="scr-h" data-en="Privacy score" data-fr="Score">Privacy score</div>
        <div class="scr-b">
          <div style="display:flex;gap:6px;align-items:center;margin-bottom:6px"><span style="font-family:var(--mono);font-size:26px;font-weight:700;color:#7FFF00">B</span><span style="font-family:var(--mono);font-size:9px;color:var(--muted)">70/100</span></div>
          <div class="geo-r"><div class="geo-l">France</div><div class="geo-t"><div class="geo-f" style="width:30%;background:#0055A4"></div></div><div class="geo-p">30%</div></div>
          <div class="geo-r"><div class="geo-l">EU</div><div class="geo-t"><div class="geo-f" style="width:20%;background:#003399"></div></div><div class="geo-p">20%</div></div>
          <div class="geo-r"><div class="geo-l">Other</div><div class="geo-t"><div class="geo-f" style="width:45%;background:var(--warn)"></div></div><div class="geo-p">45%</div></div>
        </div>
      </div>
      <div class="scr-c">
        <div class="scr-h" data-en="Market value" data-fr="Valeur marchande">Market value</div>
        <div class="scr-b">
          <div style="font-family:var(--mono);font-size:7px;color:var(--warn);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px">30d: ~$21</div>
          <div style="display:flex;gap:6px">
            <div style="flex:1;text-align:center"><div style="font-family:var(--mono);font-size:16px;font-weight:700;color:var(--amber)">$0.042</div><div style="font-size:7px;color:var(--dim)">Low</div></div>
            <div style="width:1px;background:var(--border)"></div>
            <div style="flex:1;text-align:center"><div style="font-family:var(--mono);font-size:16px;font-weight:700;color:var(--warn)">$0.38</div><div style="font-size:7px;color:var(--dim)">High</div></div>
          </div>
        </div>
      </div>
      <div class="scr-c">
        <div class="scr-h">Loki Mode</div>
        <div class="scr-b">
          <div style="font-family:var(--mono);font-size:7px;color:var(--p);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px">Active</div>
          <div style="display:flex;flex-direction:column;gap:2px">
            <div style="display:flex;align-items:center;gap:5px;padding:3px 5px;background:#080C10;border-radius:3px"><span style="font-family:var(--mono);font-size:11px;font-weight:700;color:#00FF88">A</span><span style="font-family:var(--mono);font-size:8px;flex:1">elysee.fr</span><span style="font-family:var(--mono);font-size:7px;color:var(--p)">L</span></div>
            <div style="display:flex;align-items:center;gap:5px;padding:3px 5px;background:#080C10;border-radius:3px"><span style="font-family:var(--mono);font-size:11px;font-weight:700;color:var(--amber)">C</span><span style="font-family:var(--mono);font-size:8px;flex:1">lemonde.fr</span><span style="font-family:var(--mono);font-size:7px;color:var(--p)">L</span></div>
            <div style="display:flex;align-items:center;gap:5px;padding:3px 5px;background:#080C10;border-radius:3px"><span style="font-family:var(--mono);font-size:11px;font-weight:700;color:var(--warn)">D</span><span style="font-family:var(--mono);font-size:8px;flex:1">lefigaro.fr</span><span style="font-family:var(--mono);font-size:7px;color:var(--p)">L</span></div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<!-- MANIFESTO -->
<div class="mani">
  <div class="mani-in">
    <p class="mani-q rv" data-en="Blocking hides you. <strong>Loki Mode makes you dangerous.</strong> The surveillance economy loses its product: <strong>you.</strong>" data-fr="Bloquer vous cache. <strong>Loki Mode vous rend dangereux.</strong> L'&eacute;conomie de la surveillance perd son produit : <strong>vous.</strong>">Blocking hides you. <strong>Loki Mode makes you dangerous.</strong> The surveillance economy loses its product: <strong>you.</strong></p>
    <p class="mani-b rv" data-en="Privacy is not a privilege. First, transparency. Then, a weapon. Not by hiding. By turning the system against itself." data-fr="La vie priv&eacute;e n'est pas un privil&egrave;ge. D'abord, la transparence. Ensuite, une arme. Pas en se cachant. En retournant le syst&egrave;me contre lui-m&ecirc;me.">Privacy is not a privilege. First, transparency. Then, a weapon. Not by hiding. By turning the system against itself.</p>
    <p class="mani-sig">datamirror.eu &#183; Loki Mode &#183; Made in France </p>
  </div>
</div>

<!-- FAQ -->
<div class="sec">
  <p class="sec-l rv" style="color:var(--p)">FAQ</p>
  <div class="faq-l rv">
    <div class="faq-i"><div class="faq-q"><span data-en="What is Loki Mode?" data-fr="C'est quoi Loki Mode ?">What is Loki Mode?</span></div><p class="faq-a" data-en="It feeds trackers false data: fake interests, contradictory signals, noise. Your advertising profile becomes fiction. Data poisoning as self-defense." data-fr="Il envoie de fausses donn&eacute;es aux trackers : faux int&eacute;r&ecirc;ts, signaux contradictoires, bruit. Votre profil publicitaire devient de la fiction. L'empoisonnement de donn&eacute;es en l&eacute;gitime d&eacute;fense.">It feeds trackers false data: fake interests, contradictory signals, noise. Your advertising profile becomes fiction. Data poisoning as self-defense.</p></div>
    <div class="faq-i"><div class="faq-q"><span data-en="Why aren't ad blockers enough?" data-fr="Pourquoi les bloqueurs ne suffisent pas ?">Why aren't ad blockers enough?</span></div><p class="faq-a" data-en="Blockers play defense. Trackers adapt with fingerprinting and server-side tracking. Loki plays offense: trackers collect data, but the data is wrong." data-fr="Les bloqueurs jouent en d&eacute;fense. Les trackers s'adaptent avec le fingerprinting et le tracking serveur. Loki joue en attaque : les trackers collectent, mais les donn&eacute;es sont fausses.">Blockers play defense. Trackers adapt with fingerprinting and server-side tracking. Loki plays offense: trackers collect data, but the data is wrong.</p></div>
    <div class="faq-i"><div class="faq-q"><span data-en="Does Data Mirror collect my data?" data-fr="Data Mirror collecte mes donn&eacute;es ?">Does Data Mirror collect my data?</span></div><p class="faq-a" data-en="No. Everything happens locally. No server, no account, nothing leaves your browser." data-fr="Non. Tout se fait localement. Pas de serveur, pas de compte, rien ne quitte votre navigateur.">No. Everything happens locally. No server, no account, nothing leaves your browser.</p></div>
    <div class="faq-i"><div class="faq-q"><span data-en="What do grades A-F mean?" data-fr="Les notes A-F ?">What do grades A-F mean?</span></div><div class="faq-a"><table class="gt"><thead><tr><th>Grade</th><th>Score</th><th data-en="Level" data-fr="Niveau">Level</th></tr></thead><tbody><tr><td style="color:#00FF88;font-weight:700;font-family:var(--mono)">A</td><td>85-100</td><td>Excellent</td></tr><tr><td style="color:#7FFF00;font-weight:700;font-family:var(--mono)">B</td><td>70-84</td><td data-en="Good" data-fr="Bon">Good</td></tr><tr><td style="color:var(--amber);font-weight:700;font-family:var(--mono)">C</td><td>55-69</td><td data-en="Fair" data-fr="Acceptable">Fair</td></tr><tr><td style="color:var(--warn);font-weight:700;font-family:var(--mono)">D</td><td>40-54</td><td data-en="Concerning" data-fr="Pr&eacute;occupant">Concerning</td></tr><tr><td style="color:#FF4444;font-weight:700;font-family:var(--mono)">E</td><td>20-39</td><td data-en="Poor" data-fr="Mauvais">Poor</td></tr><tr><td style="color:var(--danger);font-weight:700;font-family:var(--mono)">F</td><td>0-19</td><td data-en="Critical" data-fr="Critique">Critical</td></tr></tbody></table></div></div>
  </div>
</div>

<!-- CTA -->
<div class="cta">
  <h2 class="cta-t" data-en="See everything. <em>Poison everything.</em>" data-fr="Tout voir. <em>Tout empoisonner.</em>">See everything. <em>Poison everything.</em></h2>
  <p class="cta-s" data-en="Free. Local. No account." data-fr="Gratuit. Local. Sans compte.">Free. Local. No account.</p>
  <a href="https://chromewebstore.google.com/detail/data-mirror/ncofhifocmjmmcgdaajjddbbepbcacbf" class="cta-b">
    <svg width="18" height="18" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z" fill="currentColor"/></svg>
    <span data-en="Add to Chrome" data-fr="Ajouter &agrave; Chrome">Add to Chrome</span>
  </a>
  <p class="cta-n">Privacy by design &#183; Made in France </p>
</div>

<footer>
  <div class="f-logo">DATA MIRROR<span>.EU</span></div>
  <div class="f-links">
    <a href="https://buymeacoffee.com/gregr4" target="_blank" rel="noopener nofollow">Support</a>
    <a href="/blog/">Blog</a>
    <a href="https://www.linkedin.com/company/datamirror-eu" target="_blank">LinkedIn</a>
    <a href="/privacy/">Privacy</a>
    <a href="mailto:hello@datamirror.eu">Contact</a>
  </div>
  <div class="f-copy">&copy; 2026 datamirror.eu &middot; Privacy by design &middot; Made in France</div>
</footer>

<script>
function setLang(l){
  document.querySelectorAll('[data-en]').forEach(el=>{el.innerHTML=el.getAttribute('data-'+l);});
  document.getElementById('btn-en').classList.toggle('active',l==='en');
  document.getElementById('btn-fr').classList.toggle('active',l==='fr');
  document.documentElement.lang=l;
  localStorage.setItem('dm_lang',l);
  if(l==='fr'){document.title="Data Mirror | L'Extension Chrome pour Voir Qui Vous Traque";document.querySelector('meta[name="description"]').setAttribute('content',"Qui vous traque ? Data Mirror expose les trackers et Loki Mode empoisonne leurs donn\u00e9es. Extension gratuite, 100% locale.");}
  else{document.title="Data Mirror | See Who Tracks You & Your Data's True Value";document.querySelector('meta[name="description"]').setAttribute('content',"See who tracks you online. Data Mirror exposes trackers and Loki Mode poisons their data. Free Chrome extension, 100% local.");}
}
const sl=localStorage.getItem('dm_lang');if(sl&&sl!=='en')setLang(sl);
const ob=new IntersectionObserver(e=>{e.forEach(x=>{if(x.isIntersecting){x.target.classList.add('v');ob.unobserve(x.target);}});},{threshold:.1});
document.querySelectorAll('.rv').forEach(el=>ob.observe(el));
</script>
<!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "9fbc2871bb2043dfba449e22d0dbb6d9"}'></script><!-- Cloudflare Pages Analytics --></body>
</html>
