<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Base background: Ivory White #F8F6F2 — comfortable for eye vision, zero eye glare -->
    <style>
      html { background-color: #F8F6F2; overscroll-behavior: none; }
      body { background-color: #F8F6F2; margin: 0; overscroll-behavior: none; color: #1A1305; }
      #root { background-color: #F8F6F2; min-height: 100vh; width: 100%; }
    </style>

    <!-- Resource hints — single consolidated block -->
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link rel="preconnect" href="https://use.typekit.net" crossorigin />
    <!-- Backend API + storage: products, categories, CIE, auth -->
    <link rel="preconnect" href="https://teagpyshridlphyzcpjq.supabase.co" crossorigin />
    <!-- Product image CDN -->
    <link rel="preconnect" href="https://images.unsplash.com" />
    <link rel="preconnect" href="https://images.pexels.com" />
    <link rel="dns-prefetch" href="https://images.unsplash.com" />

    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />

    <!-- Primary SEO -->
    <title>Afro Adulis — Where Africa meets the world</title>
    <meta name="description" content="Where Africa meets the world: discover products, explore the Travel &amp; Stay preview or open business sourcing. Buyer and seller markets: UAE, Ethiopia, Kenya, Morocco, Rwanda, Nigeria, Ghana and Tunisia. Additional seller origins: China and India. Online checkout is not yet available."/>
    <meta name="keywords" content="Afro Adulis, Africa and the world, African products, made in Africa, African marketplace, African suppliers, Dubai suppliers, Ethiopia, Kenya, Morocco, Rwanda, UAE, B2B sourcing, RFQ" />
    <meta name="author" content="Afro Adulis" />
    <meta name="robots" content="index, follow" />
    <!-- Google Search Console ownership (joel@afroadulis.com). Keep: removing it unverifies the property. -->
    <meta name="google-site-verification" content="NqttsreT0hLE4EpKwG8dx9aXOEuf3lbhWip2YQvcNP4" />
    <link rel="canonical" href="https://afroadulis.com/"/>
    <!-- No hreflang: English, Amharic, Swahili and Arabic share one URL and
         switch in the app, so there are no per-language addresses to declare. -->

    <!-- Mobile formatting -->
    <meta name="format-detection" content="telephone=no" />
    <meta name="mobile-web-app-capable" content="yes" />

    <!-- Theme — Ivory / Obsidian Brand Foundation -->
    <meta name="theme-color" content="#F8F6F2" />
    <meta name="theme-color" content="#F8F6F2" media="(prefers-color-scheme: light)" />
    <meta name="theme-color" content="#0C0A06" media="(prefers-color-scheme: dark)" />
    <meta name="msapplication-TileColor" content="#0C0A06" />
    <meta name="msapplication-TileImage" content="/brand/icon-192.png" />

    <!-- Open Graph -->
    <meta property="og:type" content="website"/>
    <meta property="og:url" content="https://afroadulis.com/"/>
    <meta property="og:title" content="Afro Adulis — Where Africa meets the world"/>
    <meta property="og:description" content="Where Africa meets the world: discover products, explore the Travel &amp; Stay preview or open business sourcing. Buyer and seller markets: UAE, Ethiopia, Kenya, Morocco, Rwanda, Nigeria, Ghana and Tunisia. Additional seller origins: China and India. Online checkout is not yet available."/>
    <meta property="og:image" content="https://afroadulis.com/og/default-v3.png"/>
    <meta property="og:image:secure_url" content="https://afroadulis.com/og/default-v3.png"/>
    <meta property="og:image:type" content="image/png"/>
    <meta property="og:image:width" content="1200"/>
    <meta property="og:image:height" content="630"/>
    <meta property="og:image:alt" content="Afro Adulis — Where Africa meets the world"/>
    <meta property="og:site_name" content="Afro Adulis"/>
    <meta property="og:locale" content="en_US"/>
    <meta property="og:locale:alternate" content="ar_AE"/>
    <meta property="og:locale:alternate" content="am_ET"/>

    <!-- Twitter Card -->
    <meta name="twitter:card" content="summary_large_image"/>
    <meta name="twitter:title" content="Afro Adulis — Where Africa meets the world"/>
    <meta name="twitter:description" content="Where Africa meets the world: discover products, explore the Travel &amp; Stay preview or open business sourcing. Buyer and seller markets: UAE, Ethiopia, Kenya, Morocco, Rwanda, Nigeria, Ghana and Tunisia. Additional seller origins: China and India. Online checkout is not yet available."/>
    <meta name="twitter:image" content="https://afroadulis.com/og/default-v3.png"/>
    <meta name="twitter:image:alt" content="Afro Adulis — A bridge between Africa and the world"/>
    <meta name="twitter:label1" content="Buyer &amp; seller markets"/>
    <meta name="twitter:data1" content="🇦🇪 UAE · 🇪🇹 Ethiopia · 🇰🇪 Kenya · 🇲🇦 Morocco · 🇷🇼 Rwanda · 🇳🇬 Nigeria · 🇬🇭 Ghana · 🇹🇳 Tunisia"/>
    <meta name="twitter:label2" content="Launch Scope"/>
    <meta name="twitter:data2" content="Product discovery &amp; business quotes"/>

    <!-- Google Fonts — single consolidated load, loaded non-render-blocking.
         media="print" lets the page paint immediately with fallback fonts
         (display=swap); the inline script at the end of <body> flips media to
         'all'. The flip lives there (not in an onload= attribute) because the
         Content-Security-Policy in public/_headers hash-allows that one script
         and blocks inline event handlers. -->
    <link data-font-async href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,600;9..144,700;9..144,800;9..144,900&family=Inter:opsz,wght@14..32,300..900&family=JetBrains+Mono:wght@400&family=DM+Mono:wght@300;400;500&family=Space+Mono:wght@400;700&family=Noto+Serif+Ethiopic:wght@300;400;600;700&family=Noto+Sans+Arabic:wght@300;400;600;700&display=swap" rel="stylesheet" media="print" />
    <!-- Adobe-hosted, licensed Sofia Pro: display and navigation, 500/700. -->
    <link data-font-async href="https://use.typekit.net/xps6poy.css" rel="stylesheet" media="print" />
    <noscript>
      <link href="https://use.typekit.net/xps6poy.css" rel="stylesheet" />
      <link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,600;9..144,700;9..144,800;9..144,900&family=Inter:opsz,wght@14..32,300..900&family=JetBrains+Mono:wght@400&family=DM+Mono:wght@300;400;500&family=Space+Mono:wght@400;700&family=Noto+Serif+Ethiopic:wght@300;400;600;700&family=Noto+Sans+Arabic:wght@300;400;600;700&display=swap" rel="stylesheet" />
    </noscript>

    <!-- PWA Manifest — injected automatically by vite-plugin-pwa (/manifest.webmanifest) -->

    <!-- Favicons -->
    <link rel="icon" href="/favicon.ico" sizes="48x48" />
    <link rel="icon" type="image/svg+xml" href="/brand/favicon.svg" />
    <link rel="icon" type="image/png" sizes="48x48" href="/brand/favicon-48.png" />
    <link rel="icon" type="image/png" sizes="96x96" href="/brand/favicon-96.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="/brand/favicon-32.png" />
    <link rel="icon" type="image/png" sizes="192x192" href="/brand/icon-192.png" />
    <link rel="icon" type="image/png" sizes="512x512" href="/brand/icon-512.png" />
    <link rel="shortcut icon" href="/favicon.ico" />

    <!-- Apple touch icons -->
    <link rel="apple-touch-icon" href="/brand/icon-512.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="/brand/apple-touch-icon.png" />
    <link rel="apple-touch-icon" sizes="192x192" href="/brand/icon-192.png" />
    <link rel="apple-touch-icon" sizes="512x512" href="/brand/icon-512.png" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
    <meta name="apple-mobile-web-app-title" content="Afro Adulis" />

    <!-- iOS splash screens (apple-touch-startup-image) ──────────────────────
         Media queries target logical resolution (points), not physical pixels.
         Each device has a unique (width x height) in points at its scale factor.
    -->
    <!-- iPhone 16 Pro Max  —  440×956 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1320x2868.png" />
    <!-- iPhone 16 Pro      —  402×874 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1206x2622.png" />
    <!-- iPhone 16 Plus / 15 Plus  —  430×932 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1290x2796.png" />
    <!-- iPhone 16 / 15 / 14  —  393×852 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1179x2556.png" />
    <!-- iPhone 14 Pro Max  —  430×932 @3x (same logical as 16 Plus, separate entry for clarity) -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1290x2796.png" />
    <!-- iPhone 13 Pro Max / 12 Pro Max  —  428×926 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1284x2778.png" />
    <!-- iPhone 13 / 13 Pro / 12 / 12 Pro  —  390×844 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1170x2532.png" />
    <!-- iPhone 13 mini / 12 mini  —  375×812 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1125x2436.png" />
    <!-- iPhone 11 Pro Max / XS Max  —  414×896 @3x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1242x2688.png" />
    <!-- iPhone 11 / XR  —  414×896 @2x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/splash/splash-828x1792.png" />
    <!-- iPhone 11 Pro / XS / X  —  375×812 @3x (shared with mini above) -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/splash/splash-1125x2436.png" />
    <!-- iPhone SE 3 / 8 / 7 / 6s  —  375×667 @2x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/splash/splash-750x1334.png" />
    <!-- iPad Pro 12.9" (gen 3+)  —  1024×1366 @2x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/splash/splash-2048x2732.png" />
    <!-- iPad Pro 11" / Air 4+  —  834×1194 @2x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/splash/splash-1668x2388.png" />
    <!-- iPad Air / Pro 10.5"  —  834×1112 @2x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/splash/splash-1668x2224.png" />
    <!-- iPad mini 6 / iPad 10.2"  —  810×1080 @2x -->
    <link rel="apple-touch-startup-image" media="screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/splash/splash-1620x2160.png" />

    <!-- Structured data: Organization + WebSite -->
    <script type="application/ld+json">
    [{
      "@context":"https://schema.org",
      "@type":"Organization",
      "@id":"https://afroadulis.com/#organization",
      "name":"Afro Adulis",
      "alternateName":"Afro Adulis — A bridge between Africa and the world",
      "slogan":"Where Africa meets the world",
      "url":"https://afroadulis.com",
      "logo":{
        "@type":"ImageObject",
        "url":"https://afroadulis.com/brand/icon-512.png",
        "width":512,
        "height":512
      },
      "image":"https://afroadulis.com/og/default-v3.png",
      "description":"A bridge between Africa and the world: discover products, find suppliers and request quotes. Buyer and seller account markets: UAE, Ethiopia, Kenya, Morocco, Rwanda, Nigeria, Ghana and Tunisia.",
      "founder":{
        "@type":"Person",
        "@id":"https://afroadulis.com/#joel",
        "name":"Joel",
        "jobTitle":"Founder and System Developer",
        "url":"https://afroadulis.com/partner/founder"
      },
      "knowsLanguage":["en","am","ar","sw"]
    },{
      "@context":"https://schema.org",
      "@type":"WebSite",
      "name":"Afro Adulis",
      "url":"https://afroadulis.com",
      "description":"Where Africa meets the world — discover products from Africa and the world, compare listings and request business quotes.",
      "inLanguage":["en","am","ar","sw"],
      "potentialAction":[{
        "@type":"SearchAction",
        "target":{
          "@type":"EntryPoint",
          "urlTemplate":"https://afroadulis.com/marketplace?q={search_term_string}"
        },
        "query-input":"required name=search_term_string"
      }]
    }]
    </script>

    <!-- BreadcrumbList Schema -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://afroadulis.com/" },
        { "@type": "ListItem", "position": 2, "name": "Marketplace", "item": "https://afroadulis.com/marketplace" },
        { "@type": "ListItem", "position": 3, "name": "How It Works", "item": "https://afroadulis.com/how-it-works" },
        { "@type": "ListItem", "position": 4, "name": "About", "item": "https://afroadulis.com/about" }
      ]
    }
    </script>

    <!-- Marketplace scope schema: categories only; no fabricated offers,
         inventory, verification, prices, or accepted-payment claims. -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "ItemList",
      "name": "Afro Adulis Marketplace Categories",
      "url": "https://afroadulis.com/marketplace",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Gold and Jewellery" },
        { "@type": "ListItem", "position": 2, "name": "Electronics and Mobile Phones" },
        { "@type": "ListItem", "position": 3, "name": "Cosmetics and Beauty Products" },
        { "@type": "ListItem", "position": 4, "name": "Fashion and Textiles" },
        { "@type": "ListItem", "position": 5, "name": "Solar and Energy Equipment" },
        { "@type": "ListItem", "position": 6, "name": "Agricultural Products" }
      ]
    }
    </script>
    <script type="module" crossorigin src="/assets/index-PnG4leuA.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/vendor-supabase-8tWkRVz4.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-react-DdIr_WSz.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-icons-C2Owwsh3.js">
    <link rel="modulepreload" crossorigin href="/assets/bootstrap-shared-BeoeAF0i.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-toast-DmGJ0dbx.js">
    <link rel="modulepreload" crossorigin href="/assets/vendor-query-Cz5dder0.js">
    <link rel="modulepreload" crossorigin href="/assets/shared-assets-CcwZHSpi.js">
    <link rel="modulepreload" crossorigin href="/assets/chunk-nav-BT2wYDO9.js">
    <link rel="stylesheet" crossorigin href="/assets/index-DHhp4vGX.css">
    <meta name="aa-home-hero" data-wide="/assets/showroom-960-B6Pa8n__.png 960w, /assets/showroom-1920-FHVf0MMv.png 1920w" data-tall="/assets/showroom-960-B6Pa8n__.png 960w, /assets/showroom-1920-FHVf0MMv.png 1920w" data-sizes="100vw" data-type="image/png">
  <link rel="manifest" href="/manifest.webmanifest"></head>
  <body>
    <!-- Skip to main content — keyboard/screen reader shortcut -->
    <a href="#main-content" class="skip-to-content" id="skip-to-content-link">Skip to main content</a>
    <div id="root"></div>
    <!-- Font activation + skip link. External so the script-src CSP allows it. -->
    <script src="/boot.js"></script>
  </body>
</html>
