<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <!-- DECENTRALIZATION-1 (2026-05-23) — fonts self-hostées via @fontsource,
         importées dans src/main.tsx. Plus aucun appel à fonts.googleapis.com
         ni fonts.gstatic.com au boot. -->

    <!-- Preconnect tile servers — TCP handshake en avance pour la première tuile -->
    <link rel="preconnect" href="https://basemaps.cartocdn.com" crossorigin />
    <link rel="preconnect" href="https://tiles.openfreemap.org" crossorigin />
    <link rel="preconnect" href="https://server.arcgisonline.com" crossorigin />
    <link rel="preconnect" href="https://s3.amazonaws.com" crossorigin />
    <link rel="preconnect" href="https://tile.openstreetmap.org" crossorigin />
    <!-- DNS prefetch — résolution DNS en avance pour les APIs -->
    <link rel="dns-prefetch" href="https://nominatim.openstreetmap.org" />
    <link rel="dns-prefetch" href="https://photon.komoot.io" />
    <link rel="dns-prefetch" href="https://router.project-osrm.org" />
    <link rel="dns-prefetch" href="https://api.opentopodata.org" />
    <link rel="dns-prefetch" href="https://api.dicebear.com" />
    <!-- maximum-scale + user-scalable=no : le zoom doit rester LOCAL à la carte
         (maplibre gère son propre zoom) ; le pinch/double-tap ne doit jamais
         scaler toute l'interface (source de bugs de layout). -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
    <title>Infinity</title>
    <script type="module" crossorigin src="/assets/index-C_5NXaX1.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-CuACC34S.css">
      <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; media-src 'self' blob: data: https:; worker-src 'self' blob:; frame-src 'self' https: blob:; connect-src 'self' https: wss: ws: data: blob: ipc: http://ipc.localhost http://127.0.0.1:* http://localhost:*; object-src 'none'; base-uri 'self'; form-action 'self'; manifest-src 'self'" />
  <link rel="manifest" href="/manifest.webmanifest"></head>
  <body>
    <div id="root"></div>
  </body>
</html>
