<!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;}

    /* REVEAL INFOGRAPHIC */
    .reveal-bg{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(180deg,#080C10 0%,var(--bg) 100%);position:relative;z-index:1;}
    .reveal-in{max-width:860px;margin:0 auto;padding:80px 24px;}
    .reveal-note{font-size:12px;color:var(--dim);text-align:center;margin-top:32px;font-family:var(--mono);letter-spacing:.02em;}

    /* MOCK EXTENSION */
    .mock-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px;}
    @media(max-width:900px){.mock-grid{grid-template-columns:repeat(2,1fr);}}
    @media(max-width:500px){.mock-grid{grid-template-columns:1fr;}}
    .mock{background:#0D1117;border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:transform .2s;}
    .mock:hover{transform:translateY(-3px);}
    .mock-tab{padding:8px 14px;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);background:rgba(255,255,255,.01);}
    .mock-body{padding:16px;}
    .mock-geo{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
    .mock-tracker{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(26,36,51,.6);font-family:var(--mono);font-size:9px;}
    .mock-tracker:last-of-type{border-bottom:none;}
    .mock-tracker-type{font-weight:700;font-size:8px;width:20px;text-align:center;flex-shrink:0;}
    .mock-tracker-name{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .mock-tracker-co{color:var(--dim);font-size:8px;flex-shrink:0;}
    .mock-hist{display:flex;align-items:center;gap:8px;padding:5px 6px;background:#080C10;border-radius:4px;font-family:var(--mono);font-size:9px;}
    .mock-hist-grade{font-weight:700;font-size:12px;width:16px;text-align:center;flex-shrink:0;}
    .mock-hist-domain{flex:1;color:var(--muted);}
    .mock-hist-val{color:var(--warn);font-size:9px;flex-shrink:0;}

    /* 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>

<!-- WHAT DATA MIRROR SEES -->
<div class="reveal-bg">
  <div class="reveal-in rv">
    <p class="sec-l" style="color:var(--g)" data-en="What Data Mirror reveals" data-fr="Ce que Data Mirror r&eacute;v&egrave;le">What Data Mirror reveals</p>
    <h2 class="sec-t" data-en="Raw data. No fluff." data-fr="Donn&eacute;es brutes. Sans superflu.">Raw data. No fluff.</h2>
    <p class="sec-sub" data-en="Every page you visit is silently analyzed. Data Mirror intercepts outgoing requests, identifies who profits from your data, and estimates its market value. Everything runs locally. Nothing leaves your browser." data-fr="Chaque page visit&eacute;e est silencieusement analys&eacute;e. Data Mirror intercepte les requ&ecirc;tes sortantes, identifie qui profite de vos donn&eacute;es, et estime leur valeur marchande. Tout fonctionne localement. Rien ne quitte votre navigateur.">Every page you visit is silently analyzed. Data Mirror intercepts outgoing requests, identifies who profits from your data, and estimates its market value. Everything runs locally. Nothing leaves your browser.</p>

    <div class="mock-grid">

      <!-- MOCK: Overview -->
      <div class="mock">
        <div class="mock-tab">Overview</div>
        <div class="mock-body">
          <div style="display:flex;align-items:center;gap:12px;margin-bottom:12px">
            <div style="font-family:var(--mono);font-size:44px;font-weight:700;color:#FF7A00;line-height:1">D</div>
            <div>
              <div style="font-family:var(--mono);font-size:12px;color:var(--text)">lemonde.fr</div>
              <div style="font-family:var(--mono);font-size:10px;color:var(--muted)">42 / 100</div>
            </div>
          </div>
          <div style="height:3px;background:var(--border);border-radius:2px;margin-bottom:14px;overflow:hidden"><div style="width:42%;height:100%;background:linear-gradient(90deg,var(--warn),var(--danger));border-radius:2px"></div></div>
          <div style="display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--muted);margin-bottom:6px"><span data-en="Trackers" data-fr="Trackers">Trackers</span><span style="color:var(--text)">17</span></div>
          <div style="display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--muted);margin-bottom:6px"><span>Big Tech</span><span style="color:var(--text)">4</span></div>
          <div style="display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--muted);margin-bottom:6px"><span data-en="Data resellers" data-fr="Revendeurs">Data resellers</span><span style="color:var(--danger)">2</span></div>
          <div style="display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--muted)"><span data-en="Countries" data-fr="Pays">Countries</span><span style="color:var(--text)">6</span></div>
          <div style="margin-top:14px;padding:8px 10px;background:rgba(255,176,0,.06);border:1px solid rgba(255,176,0,.1);border-radius:6px;display:flex;justify-content:space-between;align-items:center">
            <span style="font-family:var(--mono);font-size:8px;color:var(--warn);text-transform:uppercase;letter-spacing:.06em" data-en="This visit" data-fr="Cette visite">This visit</span>
            <span style="font-family:var(--mono);font-size:14px;font-weight:700;color:var(--amber)">$0.12 - $0.31</span>
          </div>
        </div>
      </div>

      <!-- MOCK: Countries -->
      <div class="mock">
        <div class="mock-tab" data-en="Countries" data-fr="Pays">Countries</div>
        <div class="mock-body">
          <div style="font-family:var(--mono);font-size:8px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px" data-en="Where your data goes" data-fr="O&ugrave; partent vos donn&eacute;es">Where your data goes</div>
          <div class="mock-geo"><div class="geo-l">France</div><div class="geo-t"><div class="geo-f" style="width:25%;background:#0055A4"></div></div><div class="geo-p">25%</div></div>
          <div class="mock-geo"><div class="geo-l">EU</div><div class="geo-t"><div class="geo-f" style="width:15%;background:#003399"></div></div><div class="geo-p">15%</div></div>
          <div class="mock-geo"><div class="geo-l">US</div><div class="geo-t"><div class="geo-f" style="width:52%;background:var(--warn)"></div></div><div class="geo-p">52%</div></div>
          <div class="mock-geo"><div class="geo-l" data-en="Other" data-fr="Autre">Other</div><div class="geo-t"><div class="geo-f" style="width:8%;background:var(--danger)"></div></div><div class="geo-p">8%</div></div>
          <div style="margin-top:14px;padding:8px;background:rgba(255,45,45,.06);border:1px solid rgba(255,45,45,.1);border-radius:6px;font-family:var(--mono);font-size:8px;color:var(--danger);text-align:center;letter-spacing:.04em" data-en="DATA IS LEAVING THE EU" data-fr="VOS DONN&Eacute;ES QUITTENT L'UE">DATA IS LEAVING THE EU</div>
        </div>
      </div>

      <!-- MOCK: Trackers -->
      <div class="mock">
        <div class="mock-tab">Trackers</div>
        <div class="mock-body">
          <div class="mock-tracker"><span class="mock-tracker-type" style="color:var(--danger)">AD</span><span class="mock-tracker-name">doubleclick.net</span><span class="mock-tracker-co">Google</span></div>
          <div class="mock-tracker"><span class="mock-tracker-type" style="color:var(--danger)">AD</span><span class="mock-tracker-name">facebook.net</span><span class="mock-tracker-co">Meta</span></div>
          <div class="mock-tracker"><span class="mock-tracker-type" style="color:var(--warn)">AN</span><span class="mock-tracker-name">google-analytics.com</span><span class="mock-tracker-co">Google</span></div>
          <div class="mock-tracker"><span class="mock-tracker-type" style="color:var(--p)">RS</span><span class="mock-tracker-name">criteo.com</span><span class="mock-tracker-co" style="color:var(--danger)" data-en="Reseller" data-fr="Revendeur">Reseller</span></div>
          <div class="mock-tracker"><span class="mock-tracker-type" style="color:var(--warn)">AN</span><span class="mock-tracker-name">hotjar.com</span><span class="mock-tracker-co">Hotjar</span></div>
          <div class="mock-tracker"><span class="mock-tracker-type" style="color:var(--danger)">AD</span><span class="mock-tracker-name">amazon-adsystem.com</span><span class="mock-tracker-co">Amazon</span></div>
          <div style="font-family:var(--mono);font-size:9px;color:var(--dim);text-align:center;margin-top:8px">+11 more</div>
        </div>
      </div>

      <!-- MOCK: History + Earn bar -->
      <div class="mock">
        <div class="mock-tab" data-en="History" data-fr="Historique">History</div>
        <div class="mock-body">
          <div style="padding:10px;background:rgba(255,215,0,.05);border:1px solid rgba(255,215,0,.1);border-radius:6px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center">
            <div>
              <div style="font-family:var(--mono);font-size:7px;color:var(--amber);text-transform:uppercase;letter-spacing:.06em" data-en="You should have earned" data-fr="Vous auriez d&ucirc; toucher">You should have earned</div>
              <div style="font-family:var(--mono);font-size:8px;color:var(--dim);margin-top:2px">30d</div>
            </div>
            <div style="font-family:var(--mono);font-size:22px;font-weight:700;color:var(--amber)">~$21</div>
          </div>
          <div style="display:flex;flex-direction:column;gap:3px">
            <div class="mock-hist"><span class="mock-hist-grade" style="color:#00FF88">A</span><span class="mock-hist-domain">elysee.fr</span><span class="mock-hist-val">$0.01</span></div>
            <div class="mock-hist"><span class="mock-hist-grade" style="color:var(--amber)">C</span><span class="mock-hist-domain">lemonde.fr</span><span class="mock-hist-val">$0.31</span></div>
            <div class="mock-hist"><span class="mock-hist-grade" style="color:var(--warn)">D</span><span class="mock-hist-domain">lefigaro.fr</span><span class="mock-hist-val">$0.28</span></div>
            <div class="mock-hist"><span class="mock-hist-grade" style="color:var(--danger)">F</span><span class="mock-hist-domain">buzzfeed.com</span><span class="mock-hist-val">$0.52</span></div>
          </div>
        </div>
      </div>

    </div>

    <p class="reveal-note rv" data-en="38 Big Tech, 24 data resellers, 1,000+ tracking domains. All matched locally. Zero data collection. Zero servers. Zero accounts." data-fr="38 Big Tech, 24 revendeurs, 1000+ domaines de tracking. Tout identifi&eacute; localement. Z&eacute;ro collecte. Z&eacute;ro serveur. Z&eacute;ro compte.">38 Big Tech, 24 data resellers, 1,000+ tracking domains. All matched locally. Zero data collection. Zero servers. Zero accounts.</p>
  </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>


<!-- 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>
