<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Migration Pulse</title>
<meta name="description" content="Migration Pulse — plataforma de anticipación migratoria basada en datos. En construcción. / A data-driven migration anticipation platform. Under construction.">
<link rel="icon" href="/favicon.ico">
<meta property="og:title" content="Migration Pulse">
<meta property="og:description" content="Entender la migración antes de que ocurra. / Understanding migration before it happens.">
<style>
  :root{
    --ink:#02080C; --white:#FFFFFF; --paper:#F2F2EF; --secondary:#60666A; --line:#D8DADC;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{height:100%;}
  body{
    background:var(--ink); color:var(--white);
    font-family:Helvetica, "Helvetica Neue", Arial, sans-serif;
    display:flex; flex-direction:column; align-items:center;
    min-height:100vh; padding:48px 24px;
    -webkit-font-smoothing:antialiased;
  }
  .lang-switch{
    position:fixed; top:24px; right:24px;
    font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
  }
  .lang-switch a{color:var(--secondary); text-decoration:none; margin-left:16px; padding-bottom:2px; border-bottom:1px solid transparent;}
  .lang-switch a.active{color:var(--white); border-bottom-color:var(--white);}
  .lang-switch a:hover{color:var(--white);}
  main{
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; max-width:680px; width:100%; gap:40px;
  }
  .logo svg{display:block;}
  h1{font-size:clamp(28px,5vw,40px); font-weight:700; line-height:1.15; letter-spacing:-0.01em;}
  h1 .sep{display:block; font-size:0.35em; font-weight:400; color:var(--secondary); letter-spacing:0.3em; text-transform:uppercase; margin-top:18px;}
  .sub{font-size:17px; line-height:1.7; color:var(--paper); max-width:560px;}
  .status{
    display:inline-flex; align-items:center; gap:10px;
    border:1px solid var(--secondary); border-radius:999px;
    padding:8px 18px; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--paper);
  }
  .status .dot{width:8px; height:8px; border-radius:50%; background:var(--white); animation:pulse 2.4s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.25;}}
  .principles{
    width:100%; max-width:560px; border-top:1px solid var(--secondary);
    display:grid; grid-template-columns:repeat(3,1fr); gap:32px; padding-top:36px; text-align:left;
  }
  .principles h3{font-size:13px; letter-spacing:0.12em; text-transform:uppercase; color:var(--secondary); margin-bottom:10px; font-weight:700;}
  .principles p{font-size:13.5px; line-height:1.65; color:var(--paper);}
  .contact{font-size:13px; color:var(--secondary); line-height:1.6;}
  .contact a{color:var(--paper); text-decoration:none; border-bottom:1px solid var(--secondary);}
  .contact a:hover{color:var(--white); border-bottom-color:var(--white);}
  @media (max-width:560px){
    .principles{grid-template-columns:1fr; gap:24px; text-align:center;}
    .sub{font-size:15px;}
  }
</style>
</head>
<body>
<nav class="lang-switch" aria-label="Language">
  <a href="#" data-lang="es" class="active">ES</a>
  <a href="#" data-lang="en" class="active-hidden">EN</a>
</nav>

<main>
  <div class="logo" aria-hidden="true">
    <svg width="72" height="72" viewBox="0 0 889.90286 1008.87186">
      <g fill="none" stroke="#ffffff" stroke-width="70.5" stroke-linecap="round" stroke-linejoin="round">
        <path d="M627 180 1011.515279280 402V846L627 1068 242.484720720 846V402Z"/>
        <path d="M627 180V408L434 525 242.484720720 414M434 525V744L253 846M434 744 627 858V1068"/>
        <path d="M627 858V627Q627 615 637 607L756 510M627 820 842 680"/>
      </g>
      <g fill="#ffffff">
        <circle cx="756" cy="510" r="56"/>
        <circle cx="842" cy="680" r="56"/>
      </g>
    </svg>
  </div>

  <h1 data-i18n="title">Entender la migración antes de que ocurra.</h1>

  <p class="sub" data-i18n="sub">Migration Pulse está construyendo una herramienta que anticipa la actividad migratoria en rutas concretas, combinando datos públicos con evidencia verificable. Para ayudar a quienes preparan la respuesta a estar antes de la crisis, no después.</p>

  <div class="status"><span class="dot"></span><span data-i18n="status">En construcción</span></div>

  <section class="principles">
    <div>
      <h3 data-i18n="p1t">Antelación</h3>
      <p data-i18n="p1">Señales de actividad antes de que los datos oficiales lleguen, para que la respuesta se prepare con tiempo.</p>
    </div>
    <div>
      <h3 data-i18n="p2t">Evidencia</h3>
      <p data-i18n="p2">Cada estimación se apoya en fuentes trazables y comunica su incertidumbre de forma honesta.</p>
    </div>
    <div>
      <h3 data-i18n="p3t">Personas</h3>
      <p data-i18n="p3">La herramienta anticipa situaciones, nunca perfila personas. Un instrumento de preparación, no de control.</p>
    </div>
  </section>

  <p class="contact" data-i18n="contact">¿Quieres saber más? Escríbenos a <a href="mailto:info@migrationpulse.com">info@migrationpulse.com</a></p>
</main>

<script>
(function(){
  var TEXTS = {
    es: {
      title: "Entender la migración antes de que ocurra.",
      sub: "Migration Pulse está construyendo una herramienta que anticipa la actividad migratoria en rutas concretas, combinando datos públicos con evidencia verificable. Para ayudar a quienes preparan la respuesta a estar antes de la crisis, no después.",
      status: "En construcción",
      p1t: "Antelación", p1: "Señales de actividad antes de que los datos oficiales lleguen, para que la respuesta se prepare con tiempo.",
      p2t: "Evidencia", p2: "Cada estimación se apoya en fuentes trazables y comunica su incertidumbre de forma honesta.",
      p3t: "Personas", p3: "La herramienta anticipa situaciones, nunca perfila personas. Un instrumento de preparación, no de control.",
      contact_html: "¿Quieres saber más? Escríbenos a <a href='mailto:info@migrationpulse.com'>info@migrationpulse.com</a>"
    },
    en: {
      title: "Understanding migration before it happens.",
      sub: "Migration Pulse is building a tool that anticipates migratory activity along specific routes, combining public data with verifiable evidence. To help those preparing the response be there before the crisis, not after.",
      status: "Under construction",
      p1t: "Foresight", p1: "Signals of activity before official data arrives, so the response can be prepared in advance.",
      p2t: "Evidence", p2: "Every estimate is backed by traceable sources and communicates its uncertainty honestly.",
      p3t: "People", p3: "The tool anticipates situations, never profiles people. An instrument of preparedness, not of control.",
      contact_html: "Want to know more? Write to us at <a href='mailto:info@migrationpulse.com'>info@migrationpulse.com</a>"
    }
  };

  function setLang(lang){
    var t = TEXTS[lang] || TEXTS.es;
    document.documentElement.lang = lang;
    document.querySelectorAll('[data-i18n]').forEach(function(el){
      var k = el.getAttribute('data-i18n');
      if (k === 'contact') { el.innerHTML = t.contact_html; }
      else if (t[k] !== undefined) { el.textContent = t[k]; }
    });
    document.querySelectorAll('.lang-switch a').forEach(function(a){
      a.classList.toggle('active', a.getAttribute('data-lang') === lang);
    });
    try { localStorage.setItem('mp-lang', lang); } catch(e){}
  }

  document.querySelectorAll('.lang-switch a').forEach(function(a){
    a.addEventListener('click', function(e){
      e.preventDefault();
      setLang(a.getAttribute('data-lang'));
    });
  });

  var saved = null;
  try { saved = localStorage.getItem('mp-lang'); } catch(e){}
  if (saved) { setLang(saved); return; }

  var nav = (navigator.languages && navigator.languages.length)
    ? navigator.languages : [navigator.language || 'en'];
  var lang = 'en';
  for (var i=0;i<nav.length;i++){
    var l = (nav[i]||'').toLowerCase();
    if (l.indexOf('es') === 0) { lang = 'es'; break; }
    if (l.indexOf('en') === 0) { lang = 'en'; break; }
  }
  setLang(lang);
})();
</script>
</body>
</html>
