<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="google-site-verification" content="0CmKdAk8sVgUYz_NoXXiaA9Uq-j8YHH3n4oY--YQrc4" />
  <meta name="google-site-verification" content="17425656b3b60477" />
  <title>AsterPay — EUR settlement for AI agent commerce | x402 + MPP · SEPA Instant</title>
  <meta name="description" content="Europe's only EUR-native facilitator for x402 (Coinbase) and MPP (Stripe/Tempo) payments. Trust, discovery, and EUR settlement for AI agents. USDC to EUR via SEPA Instant — GBP and USD on the roadmap. KYA Trust Score 0-100. EU-native via licensed partners.">
  <meta name="keywords" content="stablecoin to EUR, USDC to EUR, x402, x402r, escrow, refund, MPP, Machine Payments Protocol, mppx, Stripe Tempo, dual protocol, AI agent payments, SEPA Instant, EUR settlement API, stablecoin off-ramp, Know Your Agent, KYA, ERC-8004, agentic commerce, MiCA-aligned, EU payments, Base chain, Polygon, Arbitrum, Optimism, Ethereum, multichain, Merchant Payment Endpoint, MPE, session billing, Coinbase CDP">
  <meta name="x402:supported" content="true">
  <meta name="mpp:supported" content="true">
  <meta name="mpp:methods" content="asterpay.charge">
  <meta name="payment:protocols" content="x402,mpp">
  <meta name="base:app_id" content="697e51cf2aafa0bc9ad8a313" />
  <link rel="canonical" href="https://asterpay.io/">

  <link rel="icon" type="image/svg+xml" href="/assets/asterpay-icon.svg">

  <meta property="og:type" content="website">
  <meta property="og:site_name" content="AsterPay">
  <meta property="og:url" content="https://asterpay.io/">
  <meta property="og:title" content="AsterPay — EUR settlement for AI agent commerce">
  <meta property="og:description" content="Europe's only EUR-native facilitator for x402 (Coinbase) and MPP (Stripe/Tempo). USDC to EUR via SEPA Instant in under 10 seconds. KYA Trust Score, MPE merchant discovery, MiCA-aligned. Operated by AELIRA LTD (Cyprus).">
  <meta property="og:image" content="https://asterpay.io/assets/banner.svg">
  <meta property="og:locale" content="en_US">

  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@Asterpayment">
  <meta name="twitter:creator" content="@Asterpayment">
  <meta name="twitter:title" content="AsterPay — EUR settlement for AI agent commerce">
  <meta name="twitter:description" content="x402 + MPP facilitator. USDC to EUR via SEPA Instant. KYA Trust Score 0-100. EU-native, MiCA-aligned.">
  <meta name="twitter:image" content="https://asterpay.io/assets/banner.svg">

  <!-- Schema.org JSON-LD for AI discoverability -->
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebAPI",
    "@id": "https://asterpay.io/#api",
    "name": "AsterPay API",
    "alternateName": "AsterPay EUR Settlement API",
    "description": "Trust, discovery, and EUR settlement layer for AI agent payments. KYA trust scoring (0-100), Merchant Payment Endpoint (MPE) for automatic IBAN discovery + VoP, USDC/EURC to EUR via SEPA Instant. ERC-8004 registered, sanctions screening built in, EU-native via licensed European payment partners.",
    "url": "https://x402.asterpay.io",
    "documentation": "https://asterpay.io/docs",
    "provider": { "@id": "https://asterpay.io/#organization" },
    "category": "Payment API",
    "serviceType": "EUR Settlement API",
    "areaServed": "EU"
  }
  </script>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://asterpay.io/#organization",
    "name": "AELIRA LTD",
    "alternateName": ["AsterPay", "Asterpayment"],
    "description": "AELIRA LTD operates AsterPay, the EUR settlement layer for AI agent payments.",
    "disambiguatingDescription": "AsterPay (operated by AELIRA LTD, Cyprus, HE 490977) is an EUR settlement and trust layer for AI agent commerce on the x402 and MPP protocols. AsterPay is not affiliated with Aster (ASTER) DEX, the BNB Chain perpetual exchange. AsterPay has no native token, no $ASTER, and no presence on BNB Smart Chain.",
    "url": "https://asterpay.io",
    "logo": "https://asterpay.io/assets/asterpay-icon.svg",
    "taxID": "HE 490977",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "9 Karpenisiou",
      "addressLocality": "Strovolos",
      "postalCode": "2021",
      "addressRegion": "Nicosia",
      "addressCountry": "CY"
    },
    "sameAs": [
      "https://x402.org/ecosystem",
      "https://twitter.com/Asterpayment",
      "https://github.com/AsterPay"
    ]
  }
  </script>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "name": "AsterPay MCP Server",
    "alternateName": "@asterpay/mcp-server",
    "description": "MCP server for AI agent payments. 16 tools: trust scoring, sanctions screening, settlement estimates, market data.",
    "applicationCategory": "DeveloperApplication",
    "url": "https://www.npmjs.com/package/@asterpay/mcp-server",
    "operatingSystem": "Node.js",
    "author": { "@id": "https://asterpay.io/#organization" }
  }
  </script>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "name": "Attest",
    "alternateName": "@asterpay/attest",
    "description": "EU AI Act compliance toolkit for TypeScript: scan repos for AI SDK usage, heuristic compliance signals, Annex IV-style documentation scaffolds, tamper-evident audit logs. Not legal advice. Powered by AsterPay.",
    "applicationCategory": "DeveloperApplication",
    "url": "https://github.com/AsterPay/attest",
    "operatingSystem": "Node.js",
    "author": { "@id": "https://asterpay.io/#organization" },
    "isRelatedTo": { "@id": "https://asterpay.io/#api" }
  }
  </script>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "dateModified": "2026-05-03",
    "inLanguage": "en",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Is AsterPay related to Aster (ASTER) DEX?",
        "acceptedAnswer": { "@type": "Answer", "text": "No. AsterPay is not affiliated with Aster (ASTER) DEX, the BNB Chain perpetual exchange. AsterPay is operated by AELIRA LTD (Cyprus, HE 490977) and is an EUR settlement and trust layer for AI agent commerce on the x402 (Coinbase) and MPP (Stripe/Tempo) protocols. AsterPay has no native token, no $ASTER, no on-chain governance, and no presence on BNB Smart Chain. Different company, different product, no token." }
      },
      {
        "@type": "Question",
        "name": "Does AsterPay have a native token?",
        "acceptedAnswer": { "@type": "Answer", "text": "No. AsterPay has no native token, no on-chain governance, no airdrop, no presale, and no plans for any of these. Customers pay in USDC, EURC, EURCV or fiat. There is no $ASTERPAY, $ASTER, or any other AsterPay-issued token in existence or in the roadmap." }
      },
      {
        "@type": "Question",
        "name": "What is AsterPay?",
        "acceptedAnswer": { "@type": "Answer", "text": "AsterPay is the EUR settlement layer for AI agent payments. It is a regulated x402 facilitator that converts USDC, EURC and EURCV stablecoins from any chain to EUR via SEPA Instant in under 10 seconds. AsterPay also offers GBP via Faster Payments and USD via ACH for agent commerce." }
      },
      {
        "@type": "Question",
        "name": "How do I accept x402 payments in euros?",
        "acceptedAnswer": { "@type": "Answer", "text": "Use AsterPay as your x402 facilitator and EUR settlement endpoint. Your API returns HTTP 402 with an x402 payment header pointing to AsterPay; the agent pays in USDC on Base, Polygon, Arbitrum, Optimism or Ethereum, and AsterPay pays you EUR via SEPA Instant. KYB onboarding takes 10 minutes through Sumsub. No per-transaction KYC, no manual off-ramp." }
      },
      {
        "@type": "Question",
        "name": "What is an x402 facilitator?",
        "acceptedAnswer": { "@type": "Answer", "text": "An x402 facilitator is the trusted party that verifies and settles a HTTP 402 payment. It checks the payment proof, executes the on-chain settlement, and forwards the result to the resource server. Coinbase CDP runs the default facilitator on Base. AsterPay runs an EU-regulated facilitator that adds EUR EUR settlement, KYA trust scoring and ERC-8004 identity attestation on top of the standard x402 flow." }
      },
      {
        "@type": "Question",
        "name": "How do I convert USDC to EUR for AI agents?",
        "acceptedAnswer": { "@type": "Answer", "text": "Send USDC to AsterPay's settlement endpoint and we convert it to EUR via licensed CASP partners and pay your bank account through SEPA Instant. AsterPay supports USDC, EURC and EURCV on Base, Polygon, Arbitrum, Optimism and Ethereum. End-to-end latency is under 10 seconds. We aggregate four CASP partners and auto-route based on amount and currency for best execution." }
      },
      {
        "@type": "Question",
        "name": "What is EUR settlement for agent commerce?",
        "acceptedAnswer": { "@type": "Answer", "text": "EUR settlement for agent commerce means the merchant receives euros in their bank account when an AI agent pays in stablecoin. AsterPay is the only x402 facilitator that offers native EUR EUR settlement via SEPA Instant. The agent pays USDC on-chain; the merchant gets EUR off-chain — without crypto custody, manual off-ramping or per-transaction KYC." }
      },
      {
        "@type": "Question",
        "name": "Who is building EUR settlement on Base?",
        "acceptedAnswer": { "@type": "Answer", "text": "AsterPay (AELIRA Ltd, EU) is the primary EUR-settlement facilitator on Base for x402 and MPP payments. AsterPay is registered as ERC-8004 Agent ID 16850 on Base and operates through licensed European payment partners for SEPA settlement. Other EU teams active in stablecoin payments include BVNK, but AsterPay is the only one with a native x402-facilitator implementation." }
      },
      {
        "@type": "Question",
        "name": "What is KYA (Know Your Agent)?",
        "acceptedAnswer": { "@type": "Answer", "text": "KYA (Know Your Agent) is AsterPay's open trust-scoring framework for AI agents in payment flows. It scores any agent wallet 0-100 across seven components: wallet age, wallet activity, sanctions screening, ERC-8004 identity, operator KYB, transaction history and trust bond. KYA is the agent-payments equivalent of KYC for humans. The KYA schema v1 is published at asterpay.io/.well-known/kya-schema-v1." }
      },
      {
        "@type": "Question",
        "name": "How does AsterPay compare to Stripe for AI agent payments?",
        "acceptedAnswer": { "@type": "Answer", "text": "Stripe is built for human checkout flows; AsterPay is built for autonomous AI-agent payments. Stripe requires merchant accounts, card-network fees and 2-7 day settlement. AsterPay accepts stablecoin payments via x402 and MPP, settles to EUR via SEPA Instant in under 10 seconds, and includes KYA trust scoring. Use Stripe if your customer is a human; use AsterPay if your customer is an AI agent." }
      },
      {
        "@type": "Question",
        "name": "How do I integrate AsterPay?",
        "acceptedAnswer": { "@type": "Answer", "text": "Three ways: (1) MCP server — npm install @asterpay/mcp-server — for any LLM agent that speaks MCP. (2) Python SDK — pip install asterpay — for Python agents. (3) Direct HTTP API at x402.asterpay.io for any language. Free endpoints (KYA trust score, settlement estimate) require no auth. Paid endpoints accept either x402 or MPP payment proofs. Full docs at asterpay.io/docs." }
      },
      {
        "@type": "Question",
        "name": "What payment protocols does AsterPay support?",
        "acceptedAnswer": { "@type": "Answer", "text": "AsterPay supports six agent-payment protocols natively: x402 (Coinbase HTTP-402 standard), x402r (escrow + refund extension), MPP / Machine Payments Protocol (Stripe and Tempo open standard), AP2 (Google Agent Payments), A2A (agent-to-agent) and ERC-8004 (on-chain agent identity). Every 402 response includes both x402 and MPP headers, so agents use whichever SDK they already have installed." }
      },
      {
        "@type": "Question",
        "name": "What chains and stablecoins does AsterPay accept?",
        "acceptedAnswer": { "@type": "Answer", "text": "AsterPay accepts stablecoin payments on five EVM chains with native USDC: Base, Polygon, Arbitrum, Optimism and Ethereum. Supported stablecoins include USDC, EURC and EURCV. Bitcoin Lightning is also live for sub-cent micropayments via the @asterpay@getalby.com Lightning address. All payments settle to EUR (SEPA Instant), GBP (Faster Payments) or USD (ACH) at the merchant's choice." }
      },
      {
        "@type": "Question",
        "name": "Is AsterPay regulated in the EU?",
        "acceptedAnswer": { "@type": "Answer", "text": "AsterPay operates through AELIRA Ltd (EU entity) and is built on a non-custodial architecture: customer funds never touch AsterPay's balance sheet. Off-ramps run through licensed CASP partners under MiCA, with KYB onboarding via Sumsub. AsterPay operates as a technical service provider; settlement is performed by licensed European payment partners under their MiCA, EMI and PSD2 authorisations." }
      }
    ]
  }
  </script>
  
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
  
  <style>
    :root {
      --bg: #f8f9fc;
      --bg-white: #ffffff;
      --text: #1a1a2e;
      --text-secondary: #6b7280;
      --text-muted: #9ca3af;
      --accent: #6366f1;
      --accent-light: #818cf8;
      --teal: #5eead4;
      --peach: #fda4af;
      --coral: #fb923c;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; overflow-x: hidden; }

    body {
      font-family: 'Inter', -apple-system, sans-serif;
      background: var(--bg);
      color: var(--text);
      line-height: 1.6;
      overflow-x: hidden;
      min-height: 100vh;
      width: 100%;
    }

    /* Navigation */
    nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 100;
      padding: 20px 0;
      background: transparent;
      backdrop-filter: none;
      transition: background 0.25s ease, backdrop-filter 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
      border-bottom: 1px solid transparent;
    }

    nav.scrolled {
      background: rgba(248, 249, 252, 0.85);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom-color: rgba(0, 0, 0, 0.05);
    }

    nav .container {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 40px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 20px;
    }
    
    nav .btn-primary {
      flex-shrink: 0;
      flex-grow: 0;
      white-space: nowrap;
    }
    
    .logo {
      flex-shrink: 0;
    }

    .logo {
      font-size: 22px;
      font-weight: 700;
      text-decoration: none;
      color: var(--text);
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .logo-box {
      width: 44px;
      height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .logo-box img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 36px;
    }

    .nav-links a {
      color: var(--text-secondary);
      text-decoration: none;
      font-size: 15px;
      font-weight: 500;
      transition: color 0.2s;
    }

    .nav-links a:hover {
      color: var(--text);
    }

    .nav-links .token-link {
      background: linear-gradient(135deg, #f59e0b, #fbbf24);
      color: #1a1a2e !important;
      padding: 8px 16px;
      border-radius: 50px;
      font-weight: 600;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      animation: tokenPulse 2s ease-in-out infinite;
      box-shadow: 0 2px 12px rgba(245, 158, 11, 0.3);
    }

    .nav-links .token-link:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 20px rgba(245, 158, 11, 0.5);
      color: #1a1a2e !important;
    }

    .token-link .token-icon {
      font-size: 16px;
    }

    @keyframes tokenPulse {
      0%, 100% { box-shadow: 0 2px 12px rgba(245, 158, 11, 0.3); }
      50% { box-shadow: 0 4px 24px rgba(245, 158, 11, 0.6); }
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 12px 24px;
      border-radius: 50px;
      font-size: 14px;
      font-weight: 600;
      text-decoration: none;
      transition: all 0.3s;
      cursor: pointer;
      border: none;
      font-family: inherit;
    }

    .btn-primary {
      background: var(--accent);
      color: white;
    }

    .btn-primary:hover {
      background: var(--accent-light);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(99, 102, 241, 0.3);
    }

    .btn-ghost {
      background: transparent;
      color: var(--text);
      padding: 12px 20px;
    }

    .btn-ghost:hover {
      background: rgba(0,0,0,0.04);
    }

    .btn-orange {
      background: linear-gradient(135deg, #f97316, #fb923c);
      color: white;
    }

    .btn-orange:hover {
      background: linear-gradient(135deg, #ea580c, #f97316);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(249, 115, 22, 0.3);
    }

    .btn-secondary {
      background: rgba(0,0,0,0.06);
      color: var(--text-secondary);
      border: 1px solid var(--text-muted);
    }

    .btn-secondary:hover {
      background: rgba(0,0,0,0.08);
      color: var(--text);
      border-color: var(--text-secondary);
    }

    .btn-outline {
      background: transparent;
      color: var(--text);
      border: 2px solid var(--text-muted);
    }

    .btn-outline:hover {
      border-color: var(--text);
      color: var(--text);
      background: rgba(0,0,0,0.02);
    }

    /* Hero */
    .hero {
      min-height: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      text-align: center;
      padding: 140px 40px 160px;
      position: relative;
      overflow: hidden;
      max-width: 100vw;
    }
    @media (max-width: 768px) {
      .hero { padding: 110px 24px 110px; }
    }

    /* 3D Wave Background */
    .wave-container {
      position: absolute;
      inset: 0;
      overflow: hidden;
      pointer-events: none;
    }

    .wave {
      position: absolute;
      width: 200%;
      height: 100%;
      left: -50%;
      will-change: transform;
    }

    .wave-1 {
      background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(94, 234, 212, 0.15) 20%,
        rgba(94, 234, 212, 0.25) 40%,
        rgba(129, 140, 248, 0.15) 60%,
        transparent 100%
      );
      transform: rotate(-8deg) translateY(-20%);
      filter: blur(60px);
      animation: wave1 20s ease-in-out infinite;
    }

    .wave-2 {
      background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(253, 164, 175, 0.2) 30%,
        rgba(251, 146, 60, 0.15) 50%,
        rgba(253, 164, 175, 0.1) 70%,
        transparent 100%
      );
      transform: rotate(5deg) translateY(10%);
      filter: blur(80px);
      animation: wave2 25s ease-in-out infinite;
    }

    .wave-3 {
      background: linear-gradient(
        135deg,
        transparent 0%,
        rgba(94, 234, 212, 0.2) 25%,
        rgba(129, 140, 248, 0.1) 50%,
        rgba(94, 234, 212, 0.15) 75%,
        transparent 100%
      );
      transform: rotate(-3deg) translateX(10%);
      filter: blur(100px);
      animation: wave3 30s ease-in-out infinite;
    }

    /* Mesh Lines */
    .mesh-lines {
      position: absolute;
      inset: 0;
      overflow: hidden;
      opacity: 0.4;
    }

    .mesh-line {
      position: absolute;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(94, 234, 212, 0.5), rgba(129, 140, 248, 0.3), transparent);
      animation: meshFlow 8s ease-in-out infinite;
    }

    .mesh-line:nth-child(1) { top: 20%; width: 80%; left: 10%; animation-delay: 0s; }
    .mesh-line:nth-child(2) { top: 30%; width: 60%; left: 20%; animation-delay: -1s; }
    .mesh-line:nth-child(3) { top: 40%; width: 90%; left: 5%; animation-delay: -2s; }
    .mesh-line:nth-child(4) { top: 50%; width: 70%; left: 15%; animation-delay: -3s; }
    .mesh-line:nth-child(5) { top: 60%; width: 85%; left: 8%; animation-delay: -4s; }
    .mesh-line:nth-child(6) { top: 70%; width: 65%; left: 18%; animation-delay: -5s; }
    .mesh-line:nth-child(7) { top: 80%; width: 75%; left: 12%; animation-delay: -6s; }

    @keyframes wave1 {
      0%, 100% { transform: rotate(-8deg) translateY(-20%) translateX(0); }
      50% { transform: rotate(-5deg) translateY(-15%) translateX(5%); }
    }

    @keyframes wave2 {
      0%, 100% { transform: rotate(5deg) translateY(10%) translateX(0); }
      50% { transform: rotate(8deg) translateY(15%) translateX(-5%); }
    }

    @keyframes wave3 {
      0%, 100% { transform: rotate(-3deg) translateX(10%); }
      50% { transform: rotate(0deg) translateX(-5%); }
    }

    @keyframes meshFlow {
      0%, 100% { 
        opacity: 0.3;
        transform: translateX(-10%) scaleX(0.9);
      }
      50% { 
        opacity: 0.6;
        transform: translateX(10%) scaleX(1.1);
      }
    }

    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 800px;
    }

    h1 {
      font-size: 64px;
      font-weight: 800;
      line-height: 1.1;
      letter-spacing: -0.03em;
      margin-bottom: 24px;
    }

    h1 .highlight {
      background: linear-gradient(135deg, var(--accent), var(--accent-light));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .hero-text {
      font-size: 18px;
      color: var(--text-secondary);
      line-height: 1.7;
      margin-bottom: 40px;
      max-width: 620px;
      margin-left: auto;
      margin-right: auto;
    }

    .hero-eyebrow {
      display: inline-block;
      font-size: 12px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--accent);
      font-weight: 600;
      margin-bottom: 22px;
      padding: 6px 14px;
      border: 1px solid rgba(245, 158, 11, 0.25);
      border-radius: 999px;
      background: rgba(245, 158, 11, 0.06);
    }
    .hero-eyebrow-link {
      transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    }
    .hero-eyebrow-link:hover {
      background: rgba(245, 158, 11, 0.12);
      border-color: rgba(245, 158, 11, 0.45);
      transform: translateY(-1px);
    }

    /* ─── Stacked hero (centered text + CTAs only) ─── */
    .hero-stacked {
      position: relative;
      z-index: 2;
      width: 100%;
      max-width: 880px;
      margin: 0 auto;
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    /* Trust signal pills, sit above the H1 */
    .hero-trust-row {
      display: inline-flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px;
      margin-bottom: 14px;
    }
    .hero-trust-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 6px 12px;
      font-size: 11.5px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: #475569;
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(99, 102, 241, 0.22);
      border-radius: 999px;
      white-space: nowrap;
      backdrop-filter: blur(6px);
      box-shadow: 0 2px 6px -3px rgba(15, 23, 42, 0.08);
    }
    .hero-trust-pill-accent {
      color: #047857;
      background: rgba(236, 253, 245, 0.95);
      border-color: rgba(16, 185, 129, 0.32);
      box-shadow: 0 4px 10px -6px rgba(16, 185, 129, 0.35);
    }
    .hero-trust-pill-accent .hero-trust-dot {
      background: #10b981;
      box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.18);
    }
    .hero-trust-dot {
      width: 7px; height: 7px;
      border-radius: 50%;
      background: #10b981;
      box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.55);
      animation: hdPulse 2s ease-out infinite;
    }
    @media (max-width: 640px) {
      .hero-trust-row { gap: 6px; margin-bottom: 10px; }
      .hero-trust-pill { font-size: 10.5px; padding: 5px 10px; }
    }

    /* Hero subheadline (single line, sits between h1 and CTA) */
    .hero-subline {
      font-size: 19px;
      line-height: 1.5;
      color: #1a1d2b;
      max-width: 680px;
      margin: -4px auto 28px;
      font-weight: 500;
    }
    @media (max-width: 768px) {
      .hero-subline { font-size: 16px; margin: 0 auto 20px; }
    }

    /* Hero CTAs — single primary + secondary text-link, centered */
    .hero-cta-row {
      display: flex;
      gap: 22px;
      justify-content: center;
      align-items: center;
      margin: 8px 0 0;
      flex-wrap: wrap;
    }
    .hero-cta {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 13px 28px;
      font-size: 15px;
      font-weight: 600;
      text-decoration: none;
      border-radius: 999px;
      transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    }
    .hero-cta-primary {
      background: linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);
      color: #ffffff;
      box-shadow: 0 10px 24px -10px rgba(79, 70, 229, 0.55);
    }
    .hero-cta-primary:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 32px -12px rgba(79, 70, 229, 0.7);
    }
    .hero-cta-arrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      transition: transform 0.18s ease;
    }
    .hero-cta-primary:hover .hero-cta-arrow { transform: translateX(2px); }

    .hero-cta-secondary {
      background: rgba(255, 255, 255, 0.85);
      color: #1e293b;
      border: 1px solid rgba(99, 102, 241, 0.22);
      backdrop-filter: blur(6px);
    }
    .hero-cta-secondary:hover {
      transform: translateY(-1px);
      background: #ffffff;
      border-color: rgba(99, 102, 241, 0.5);
      box-shadow: 0 8px 22px -8px rgba(99, 102, 241, 0.35);
    }

    .hero-cta-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 15px;
      font-weight: 600;
      color: #cbd5e1;
      text-decoration: none;
      padding: 8px 4px;
      transition: color 0.18s ease, gap 0.18s ease;
    }
    .hero-cta-link:hover { color: #ffffff; gap: 10px; }
    @media (max-width: 768px) {
      .hero-cta { padding: 12px 22px; font-size: 14px; }
      .hero-cta-row { gap: 14px; }
    }

    /* Hero text (subtitle, single line) */
    .hero-text {
      font-size: 18px;
      line-height: 1.55;
      color: var(--text-secondary, #94a3b8);
      max-width: 620px;
      margin: 0 auto 32px;
    }

    /* Nav Log in text link */
    .nav-login {
      position: relative;
      color: var(--text-secondary, #cbd5e1);
      font-weight: 500;
      font-size: 14px;
      padding: 6px 10px 6px 18px;
      margin-left: 6px;
      text-decoration: none;
      transition: color 0.18s ease;
    }
    .nav-login::before {
      content: "";
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 1px;
      height: 14px;
      background: rgba(15, 23, 42, 0.18);
    }
    .nav-login:hover { color: var(--text, #1a1d2b); }

    /* ─── Mockup section: gentle overlap onto the hero bottom ─── */
    .hero-mockup-section {
      position: relative;
      z-index: 3;
      width: 100%;
      padding: 0 24px 80px;
      margin-top: -100px;
      overflow: visible;
    }
    .hero-mockup-inner {
      max-width: 1040px;
      margin: 0 auto;
      perspective: 1800px;
    }
    .hero-mockup-inner .hd-frame {
      transform: perspective(2000px) rotateX(1.5deg);
      transform-origin: center top;
      transition: transform 0.5s ease;
      border: 1px solid rgba(15, 23, 42, 0.08);
      box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 12px 24px -8px rgba(15, 23, 42, 0.12),
        0 32px 64px -20px rgba(15, 23, 42, 0.22),
        0 0 0 1px rgba(99, 102, 241, 0.06);
    }
    .hero-mockup-inner .hd-frame:hover {
      transform: perspective(2000px) rotateX(0deg);
    }
    @media (max-width: 1024px) {
      .hero-mockup-section { padding: 0 16px 60px; margin-top: -40px; }
      .hero-mockup-inner .hd-frame,
      .hero-mockup-inner .hd-frame:hover { transform: none; }
    }
    @media (max-width: 640px) {
      .hero-mockup-section { padding: 0 12px 40px; margin-top: -8px; }
    }

    /* ─── AR widget section ─── */
    .ar-section {
      padding: 60px 24px 80px;
      position: relative;
    }
    .ar-section-inner {
      max-width: 720px;
      margin: 0 auto;
      text-align: center;
    }
    .ar-section-eyebrow {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--accent, #6366f1);
      margin: 0 0 8px;
    }
    .ar-section-title {
      font-size: 32px;
      font-weight: 700;
      letter-spacing: -0.02em;
      margin: 0 0 10px;
      color: var(--text, #f8fafc);
    }
    .ar-section-sub {
      font-size: 15px;
      color: var(--text-muted, #94a3b8);
      margin: 0 0 28px;
    }
    .ar-section-sub code {
      background: rgba(148, 163, 184, 0.12);
      padding: 1px 6px;
      border-radius: 4px;
      font-size: 13px;
    }
    @media (max-width: 640px) {
      .ar-section { padding: 40px 16px 60px; }
      .ar-section-title { font-size: 26px; }
    }

    /* ─── Hero Dashboard Mockup ─────────────────────────────────────── */
    .hd-frame {
      background: rgba(255, 255, 255, 0.96);
      border: 1px solid rgba(99, 102, 241, 0.18);
      border-radius: 18px;
      box-shadow:
        0 30px 80px -30px rgba(99, 102, 241, 0.45),
        0 8px 24px -8px rgba(15, 23, 42, 0.18);
      overflow: hidden;
      backdrop-filter: blur(8px);
      color: #1a1d2b;
    }
    .hd-toolbar {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      background: rgba(248, 249, 252, 0.92);
      border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    }
    .hd-dot { width: 10px; height: 10px; border-radius: 50%; }
    .hd-dot-r { background: #ef4444; }
    .hd-dot-y { background: #f59e0b; }
    .hd-dot-g { background: #10b981; }
    .hd-url {
      flex: 1;
      margin: 0 12px;
      padding: 4px 10px;
      font-size: 11.5px;
      color: #475569;
      background: rgba(255, 255, 255, 0.7);
      border: 1px solid rgba(15, 23, 42, 0.06);
      border-radius: 6px;
      text-align: center;
    }
    .hd-lock { font-size: 10px; margin-right: 4px; }
    .hd-live {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 3px 9px;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.08em;
      color: #047857;
      background: rgba(16, 185, 129, 0.10);
      border-radius: 999px;
    }
    .hd-pulse {
      width: 6px; height: 6px; border-radius: 50%;
      background: #10b981;
      box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6);
      animation: hdPulse 1.6s ease-out infinite;
    }
    @keyframes hdPulse {
      0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6); }
      70% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
      100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
    }

    .hd-body {
      display: grid;
      grid-template-columns: 180px 1fr;
      min-height: 460px;
      background:
        radial-gradient(ellipse at 0% 0%, rgba(94,234,212,0.18) 0%, transparent 50%),
        radial-gradient(ellipse at 100% 100%, rgba(129,140,248,0.18) 0%, transparent 50%),
        #f8f9fc;
    }
    .hd-sidebar {
      padding: 16px 12px;
      border-right: 1px solid rgba(15, 23, 42, 0.06);
      background: rgba(255, 255, 255, 0.6);
      backdrop-filter: blur(8px);
    }
    .hd-logo { display: flex; align-items: center; gap: 8px; padding: 4px 6px 16px; }
    .hd-logo-sq {
      display: inline-flex; align-items: center; justify-content: center;
      width: 26px; height: 26px;
      border-radius: 7px;
      background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%);
      color: #ffffff;
      font-weight: 800; font-size: 14px;
    }
    .hd-logo-text { font-size: 13px; font-weight: 700; color: #1a1d2b; letter-spacing: -0.01em; }
    .hd-nav { display: flex; flex-direction: column; gap: 2px; }
    .hd-nav-item {
      padding: 7px 10px;
      font-size: 12px;
      color: #475569;
      border-radius: 7px;
      cursor: default;
    }
    .hd-nav-item.is-active {
      background: rgba(99, 102, 241, 0.10);
      color: #4f46e5;
      font-weight: 600;
    }

    .hd-main { padding: 18px 22px; min-width: 0; }
    .hd-greet {
      font-size: 18px;
      font-weight: 700;
      letter-spacing: -0.01em;
      color: #1a1d2b;
      margin-bottom: 14px;
    }
    .hd-stats {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 14px;
    }
    .hd-stat {
      padding: 11px 13px;
      background: rgba(255, 255, 255, 0.92);
      border: 1px solid rgba(15, 23, 42, 0.06);
      border-radius: 12px;
      min-width: 0;
    }
    .hd-stat-value {
      font-size: 17px;
      font-weight: 800;
      letter-spacing: -0.02em;
      color: #1a1d2b;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
      transition: color 0.4s ease, transform 0.2s ease;
    }
    .hd-stat-value.is-tick { color: #6366f1; transform: translateY(-1px); }
    .hd-stat-text { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; }
    .hd-status-pulse {
      width: 7px; height: 7px; border-radius: 50%;
      background: #10b981;
      animation: hdPulse 2s ease-out infinite;
    }
    .hd-stat-label {
      margin-top: 3px;
      font-size: 10.5px;
      color: #64748b;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }
    @media (max-width: 520px) {
      .hd-stats { grid-template-columns: 1fr 1fr; }
    }

    .hd-row { display: grid; gap: 12px; margin-bottom: 12px; }
    .hd-row-2col { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
    @media (max-width: 720px) { .hd-row-2col { grid-template-columns: 1fr; } }

    .hd-card {
      padding: 14px 16px;
      background: rgba(255, 255, 255, 0.92);
      border: 1px solid rgba(15, 23, 42, 0.06);
      border-radius: 12px;
      min-width: 0;
    }
    .hd-card-title {
      font-size: 11px;
      font-weight: 600;
      color: #64748b;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-bottom: 10px;
    }
    .hd-bars {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 6px;
      height: 110px;
      padding-top: 6px;
    }
    .hd-bar {
      flex: 1;
      min-width: 0;
      height: var(--h, 50%);
      background: linear-gradient(180deg, #818cf8 0%, #6366f1 100%);
      border-radius: 4px 4px 0 0;
      position: relative;
      animation: hdBreathe 4s ease-in-out infinite;
    }
    .hd-bar-peak { background: linear-gradient(180deg, #a78bfa 0%, #7c3aed 100%); }
    .hd-bar-label {
      position: absolute;
      bottom: -16px;
      left: 50%;
      transform: translateX(-50%);
      font-size: 8.5px;
      color: #64748b;
      white-space: nowrap;
      letter-spacing: 0.02em;
    }
    @keyframes hdBreathe {
      0%, 100% { transform: scaleY(1); transform-origin: bottom; }
      50% { transform: scaleY(0.96); transform-origin: bottom; }
    }

    .hd-treasury .hd-tre-balance {
      display: flex;
      flex-direction: column;
      gap: 2px;
      margin-bottom: 12px;
    }
    .hd-tre-bal-amt {
      font-size: 22px;
      font-weight: 800;
      letter-spacing: -0.02em;
      color: #1a1d2b;
      font-variant-numeric: tabular-nums;
      transition: color 0.4s ease;
    }
    .hd-tre-bal-amt.is-tick { color: #6366f1; }
    .hd-tre-bal-label {
      font-size: 10px; color: #64748b;
      text-transform: uppercase; letter-spacing: 0.08em;
    }
    .hd-tre-rows { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
    .hd-tre-rows li {
      display: flex; align-items: center; justify-content: space-between;
      padding: 5px 0;
      font-size: 12px;
      border-top: 1px dashed rgba(15, 23, 42, 0.07);
    }
    .hd-tre-rows li:first-child { border-top: 0; }
    .hd-tre-key { color: #64748b; }
    .hd-tre-val { color: #1a1d2b; font-weight: 600; font-variant-numeric: tabular-nums; }

    .hd-act-list {
      list-style: none; padding: 0; margin: 0;
      display: flex; flex-direction: column; gap: 0;
      position: relative;
      max-height: 132px;
      overflow: hidden;
      -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
              mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
    }
    .hd-act-list li {
      display: grid;
      grid-template-columns: minmax(78px, auto) 1fr auto auto;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      font-size: 12px;
      border-top: 1px dashed rgba(15, 23, 42, 0.07);
      transition: background 0.4s ease, transform 0.4s ease, opacity 0.4s ease;
    }
    .hd-act-list li:first-child { border-top: 0; }
    .hd-act-list li.is-new {
      background: rgba(99, 102, 241, 0.08);
      transform: translateY(-2px);
    }
    .hd-act-amt { font-weight: 700; color: #1a1d2b; font-variant-numeric: tabular-nums; }
    .hd-act-meta { color: #64748b; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .hd-act-badge {
      padding: 2px 8px;
      font-size: 10px; font-weight: 700;
      color: #047857;
      background: rgba(16, 185, 129, 0.10);
      border-radius: 999px;
      text-transform: uppercase; letter-spacing: 0.06em;
    }
    .hd-act-time { font-size: 11px; color: #94a3b8; font-variant-numeric: tabular-nums; }

    @media (prefers-reduced-motion: reduce) {
      .hd-pulse, .hd-status-pulse, .hd-bar { animation: none; }
    }

    /* On smaller screens shrink mockup so layout doesn't break */
    @media (max-width: 1100px) {
      .hd-body { grid-template-columns: 160px 1fr; min-height: 420px; }
      .hd-main { padding: 14px 16px; }
      .hd-stats { gap: 8px; }
      .hd-stat { padding: 9px 11px; }
      .hd-stat-value { font-size: 15px; }
    }
    @media (max-width: 640px) {
      .hd-body { grid-template-columns: 1fr; }
      .hd-sidebar { display: none; }
    }
    /* ─── /Hero Dashboard Mockup ─────────────────────────────────────── */

    .hero-chain-status {
      margin-top: 28px;
      font-size: 13px;
      color: var(--text-muted);
      letter-spacing: 0.01em;
    }
    .hero-chain-status strong {
      color: var(--text-secondary);
      font-weight: 600;
    }
    .chain-dot {
      display: inline-block;
      width: 7px;
      height: 7px;
      border-radius: 50%;
      margin-right: 6px;
      vertical-align: middle;
    }
    .chain-dot-live { background: #10b981; box-shadow: 0 0 8px rgba(16, 185, 129, 0.6); }
    .chain-dot-soon { background: #6b7280; }

    .hero-buttons {
      display: flex;
      gap: 16px;
      justify-content: center;
      align-items: center;
      margin-top: 32px;
    }

    /* Agent-Readiness Widget */
    .ar-widget {
      max-width: 640px;
      margin: 0 auto 8px;
      text-align: left;
    }

    .ar-form {
      display: flex;
      gap: 8px;
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 14px;
      padding: 8px;
      backdrop-filter: blur(10px);
      box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    .ar-form:focus-within {
      border-color: rgba(129, 140, 248, 0.5);
      box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3), 0 0 0 4px rgba(129, 140, 248, 0.12);
    }

    .ar-input {
      flex: 1;
      min-width: 0;
      background: transparent;
      border: 0;
      outline: 0;
      color: var(--text);
      font-size: 16px;
      font-family: inherit;
      padding: 14px 16px;
    }

    .ar-input::placeholder {
      color: var(--text-muted);
    }

    .ar-btn {
      flex-shrink: 0;
      background: linear-gradient(135deg, var(--accent), var(--teal));
      color: #0b0f1a;
      border: 0;
      border-radius: 10px;
      font-weight: 700;
      font-size: 15px;
      padding: 14px 22px;
      cursor: pointer;
      transition: transform 0.15s ease, opacity 0.15s ease;
      font-family: inherit;
      white-space: nowrap;
    }

    .ar-btn:hover { transform: translateY(-1px); }
    .ar-btn:active { transform: translateY(0); }
    .ar-btn:disabled { opacity: 0.6; cursor: wait; }

    .ar-disclaimer {
      font-size: 12px;
      color: var(--text-muted);
      margin: 10px 4px 0;
      text-align: center;
    }
    .ar-disclaimer code {
      background: rgba(255, 255, 255, 0.06);
      padding: 1px 5px;
      border-radius: 4px;
      font-size: 11px;
    }

    .ar-result {
      margin-top: 20px;
      background: rgba(255, 255, 255, 0.03);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 16px;
      padding: 24px;
    }

    .ar-result-head {
      display: flex;
      align-items: center;
      gap: 20px;
      margin-bottom: 18px;
    }

    .ar-score {
      font-size: 56px;
      font-weight: 800;
      letter-spacing: -0.03em;
      line-height: 1;
      min-width: 110px;
    }
    .ar-score .ar-score-max {
      font-size: 22px;
      color: var(--text-muted);
      font-weight: 500;
    }
    .ar-score-bucket-ready { color: #22c55e; }
    .ar-score-bucket-partial { color: #f59e0b; }
    .ar-score-bucket-invisible { color: #ef4444; }

    .ar-summary {
      flex: 1;
    }
    .ar-summary-host {
      font-size: 14px;
      color: var(--text-secondary);
      margin-bottom: 4px;
      word-break: break-all;
    }
    .ar-summary-headline {
      font-size: 18px;
      font-weight: 600;
      color: var(--text);
    }

    .ar-gaps {
      list-style: none;
      padding: 0;
      margin: 0 0 20px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .ar-gap {
      display: flex;
      gap: 12px;
      padding: 12px 14px;
      background: rgba(239, 68, 68, 0.06);
      border: 1px solid rgba(239, 68, 68, 0.18);
      border-radius: 10px;
      font-size: 14px;
      line-height: 1.5;
    }
    .ar-gap-icon {
      color: #ef4444;
      flex-shrink: 0;
      font-weight: 700;
      font-size: 16px;
      line-height: 1.4;
    }
    .ar-gap-body strong {
      color: var(--text);
      display: block;
      margin-bottom: 2px;
    }
    .ar-gap-body span {
      color: var(--text-secondary);
    }

    .ar-cta-row {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }

    .ar-cta {
      flex: 1;
      min-width: 200px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, var(--accent), var(--teal));
      color: #0b0f1a;
      font-weight: 700;
      font-size: 15px;
      padding: 14px 20px;
      border-radius: 10px;
      text-decoration: none;
      transition: transform 0.15s ease;
    }
    .ar-cta:hover { transform: translateY(-1px); }

    .ar-cta-secondary {
      background: transparent;
      color: var(--text-secondary);
      border: 1px solid rgba(255, 255, 255, 0.12);
    }

    .ar-loading {
      display: inline-block;
      width: 14px;
      height: 14px;
      border: 2px solid currentColor;
      border-right-color: transparent;
      border-radius: 50%;
      animation: ar-spin 0.7s linear infinite;
      vertical-align: -2px;
      margin-right: 8px;
    }
    @keyframes ar-spin { to { transform: rotate(360deg); } }

    .ar-error {
      color: #f87171;
      font-size: 14px;
      padding: 12px 14px;
      background: rgba(239, 68, 68, 0.08);
      border: 1px solid rgba(239, 68, 68, 0.2);
      border-radius: 10px;
    }

    @media (max-width: 640px) {
      .ar-form { flex-direction: column; }
      .ar-btn { width: 100%; }
      .ar-result-head { flex-direction: column; align-items: flex-start; gap: 8px; }
      .ar-score { font-size: 44px; min-width: 0; }
    }

    /* Audience toggle — two large segmented cards, can't miss it */
    .audience-toggle-wrap {
      padding: 56px 24px 56px;
      background: var(--bg-white, #f9fafb);
      border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }
    .audience-eyebrow {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 18px;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 2.6px;
      text-transform: uppercase;
      color: rgba(15, 23, 42, 0.55);
      margin: 0 0 24px;
    }
    .audience-eyebrow::before,
    .audience-eyebrow::after {
      content: "";
      width: 48px;
      height: 1px;
      background: rgba(15, 23, 42, 0.2);
    }
    .audience-toggle {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      max-width: 720px;
      margin: 0 auto;
    }
    .audience-tab {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
      gap: 6px;
      background: #fff;
      color: rgba(15, 23, 42, 0.85);
      border: 1.5px solid rgba(15, 23, 42, 0.12);
      border-radius: 14px;
      padding: 22px 24px;
      font-family: inherit;
      cursor: pointer;
      transition: border-color 0.18s ease, background 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
    }
    .audience-tab:hover {
      border-color: rgba(99, 102, 241, 0.4);
      transform: translateY(-1px);
    }
    .audience-tab.is-active {
      border-color: var(--accent);
      background: linear-gradient(135deg, rgba(99,102,241,0.08), rgba(20,184,166,0.06));
      box-shadow: 0 8px 24px rgba(99, 102, 241, 0.12);
    }
    .audience-tab-title {
      font-size: 18px;
      font-weight: 700;
      letter-spacing: -0.2px;
      color: rgba(15, 23, 42, 0.95);
    }
    .audience-tab.is-active .audience-tab-title { color: var(--accent); }
    .audience-tab-sub {
      font-size: 14px;
      font-weight: 500;
      color: rgba(15, 23, 42, 0.55);
      line-height: 1.4;
    }
    .audience-hint {
      font-size: 13px;
      color: rgba(15, 23, 42, 0.55);
      margin: 20px 0 0;
      text-align: center;
    }
    .audience-hint a {
      color: var(--accent);
      text-decoration: none;
      font-weight: 600;
      border-bottom: 1px dotted currentColor;
    }
    .audience-hint a:hover { opacity: 0.8; }

    @media (max-width: 640px) {
      .audience-toggle { grid-template-columns: 1fr; }
      .audience-eyebrow { font-size: 11px; letter-spacing: 1.8px; }
      .audience-eyebrow::before,
      .audience-eyebrow::after { width: 24px; }
    }

    /* Hide audience-specific content, BUT never the audience toggle buttons themselves. */
    body.audience-merchant  [data-audience="developer"]:not(.audience-tab) { display: none !important; }
    body.audience-developer [data-audience="merchant"]:not(.audience-tab)  { display: none !important; }

    /* Trust strip — minimalist horizontal row of 6 (dark bg) */
    .trust-strip-min {
      padding: 56px 24px 60px;
      background: #0b1120;
      border-top: 1px solid rgba(255, 255, 255, 0.04);
      text-align: center;
    }
    .trust-min-eyebrow {
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 2.6px;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.4);
      margin-bottom: 32px;
    }
    .trust-min-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 56px;
      max-width: 1080px;
      margin: 0 auto;
    }
    .trust-min-item {
      font-size: 18px;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.78);
      text-decoration: none;
      letter-spacing: 0.2px;
      transition: color 0.18s ease;
      white-space: nowrap;
    }
    .trust-min-item:hover { color: #fff; }
    .trust-min-italic {
      font-style: italic;
      font-family: 'Times New Roman', Georgia, serif;
      font-weight: 500;
      letter-spacing: 0;
    }
    @media (max-width: 720px) {
      .trust-min-row { gap: 28px 36px; }
      .trust-min-item { font-size: 16px; }
    }

    /* Stats */
    .stats {
      display: flex;
      justify-content: center;
      gap: 80px;
      margin-top: 80px;
      position: relative;
      z-index: 2;
    }

    .stat {
      text-align: center;
    }

    .stat-value {
      font-size: 40px;
      font-weight: 800;
      letter-spacing: -0.02em;
      background: linear-gradient(135deg, var(--accent), var(--teal));
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .stat-label {
      font-size: 14px;
      color: var(--text-muted);
      margin-top: 4px;
    }

    /* Code Window */
    .code-window {
      background: #1e2432;
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
      margin: 40px auto;
      max-width: 640px;
      text-align: left;
    }

    .code-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 16px 20px;
      background: rgba(0, 0, 0, 0.2);
    }

    .code-dots {
      display: flex;
      gap: 8px;
    }

    .dot {
      width: 12px;
      height: 12px;
      border-radius: 50%;
    }

    .dot.red { background: #ff5f57; }
    .dot.yellow { background: #febc2e; }
    .dot.green { background: #28c840; }

    .code-lang {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.5);
      font-weight: 500;
    }

    .code-body {
      padding: 24px 28px 32px;
    }

    .code-body pre {
      margin: 0;
      font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
      font-size: 14px;
      line-height: 1.7;
      overflow-x: auto;
    }

    .code-body code {
      color: #e4e4e7;
    }

    .code-body .keyword { color: #c792ea; }
    .code-body .type { color: #82aaff; }
    .code-body .string { color: #c3e88d; }
    .code-body .variable { color: #89ddff; }
    .code-body .property { color: #f78c6c; }
    .code-body .method { color: #82aaff; }
    .code-body .comment { color: #676e95; }

    .t-green  { color: #22c55e; }
    .t-cyan   { color: #67e8f9; }
    .t-yellow { color: #facc15; }
    .t-purple { color: #a78bfa; }
    .t-dim    { color: #64748b; }
    .t-bold   { font-weight: 700; }
    .t-g1 { color: #6366f1; }
    .t-g2 { color: #7c5ceb; }
    .t-g3 { color: #8b5cf6; }
    .t-g4 { color: #a855f7; }
    .t-g5 { color: #c084fc; }
    .t-g6 { color: #f472b6; }

    #termOutput {
      margin: 0;
      font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
      font-size: 13px;
      line-height: 1.6;
      color: #e4e4e7;
      min-height: 260px;
      overflow: hidden;
    }

    /* Trust Strip — Pro Grid */
    .trust-strip {
      padding: 100px 40px;
      background: #0b1120;
      position: relative;
      overflow: hidden;
    }

    .trust-strip::before {
      content: '';
      position: absolute;
      top: -50%; left: -20%; width: 140%; height: 200%;
      background: radial-gradient(ellipse at 25% 50%, rgba(99,102,241,0.06) 0%, transparent 50%),
                  radial-gradient(ellipse at 75% 50%, rgba(34,197,94,0.04) 0%, transparent 50%);
      pointer-events: none;
    }

    .trust-strip .trust-label {
      text-align: center;
      font-size: 13px;
      color: rgba(255,255,255,0.3);
      margin-bottom: 16px;
      font-weight: 600;
      letter-spacing: 3px;
      text-transform: uppercase;
      position: relative;
      z-index: 1;
    }

    .trust-strip .trust-heading {
      text-align: center;
      font-size: 36px;
      font-weight: 800;
      color: #fff;
      margin-bottom: 56px;
      letter-spacing: -1px;
      position: relative;
      z-index: 1;
    }

    .trust-grid {
      max-width: 900px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 16px;
      position: relative;
      z-index: 1;
    }

    .trust-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      padding: 36px 24px;
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.07);
      border-radius: 20px;
      width: calc((100% - 32px) / 3);
      text-decoration: none;
      transition: all 0.3s;
      min-height: 120px;
    }

    .trust-card:hover {
      background: rgba(255,255,255,0.07);
      border-color: rgba(255,255,255,0.15);
      transform: translateY(-4px);
      box-shadow: 0 16px 40px rgba(0,0,0,0.3);
    }

    .trust-card img {
      height: 52px;
      width: auto;
      object-fit: contain;
    }

    .trust-card img.invert-white {
      filter: brightness(0) invert(1);
      opacity: 0.9;
    }

    .trust-card .trust-card-name {
      font-size: 20px;
      font-weight: 700;
      color: #fff;
      letter-spacing: -0.3px;
    }

    .trust-card .trust-card-desc {
      font-size: 13px;
      color: rgba(255,255,255,0.4);
      font-weight: 500;
    }

    .trust-bottom {
      max-width: 900px;
      margin: 40px auto 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 32px;
      flex-wrap: wrap;
      position: relative;
      z-index: 1;
    }

    .trust-bottom-item {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      color: rgba(255,255,255,0.45);
      font-weight: 500;
      text-decoration: none;
      transition: color 0.2s;
    }

    .trust-bottom-item:hover {
      color: rgba(255,255,255,0.7);
    }

    .trust-bottom-item .trust-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: rgba(99,102,241,0.6);
    }

    .trust-badge-sm {
      font-size: 12px;
      color: #94a3b8;
      text-decoration: none;
      font-weight: 500;
      transition: color 0.2s;
    }

    @media (max-width: 768px) {
      .trust-strip {
        padding: 64px 20px;
      }
      .trust-strip .trust-heading {
        font-size: 26px;
        margin-bottom: 36px;
      }
      .trust-grid {
        gap: 12px;
      }
      .trust-card {
        width: calc((100% - 12px) / 2);
        padding: 24px 16px;
        min-height: 100px;
      }
      .trust-card .trust-card-name {
        font-size: 16px;
      }
      .trust-bottom {
        gap: 20px;
      }
    }

    @media (max-width: 480px) {
      .trust-grid .trust-card {
        width: calc((100% - 12px) / 2);
      }

      .trust-bottom {
        flex-direction: column;
        gap: 12px;
        align-items: center;
      }
    }

    /* Features Section */
    .features {
      padding: 120px 40px;
      background: var(--bg-white);
    }

    .container {
      max-width: 1200px;
      margin: 0 auto;
    }

    .section-header {
      text-align: center;
      max-width: 600px;
      margin: 0 auto 60px;
    }

    .section-header h2 {
      font-size: 44px;
      font-weight: 800;
      letter-spacing: -0.02em;
      margin-bottom: 16px;
    }

    .section-header p {
      font-size: 17px;
      color: var(--text-secondary);
      line-height: 1.7;
    }

    .features-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
    }

    .feature-card {
      background: var(--bg);
      border-radius: 24px;
      padding: 40px 32px;
      transition: all 0.3s;
    }

    .feature-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.06);
    }

    .feature-icon {
      width: 56px;
      height: 56px;
      border-radius: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 24px;
      font-size: 24px;
    }

    .feature-icon.purple { background: linear-gradient(135deg, #e0e7ff, #c7d2fe); }
    .feature-icon.teal { background: linear-gradient(135deg, #ccfbf1, #99f6e4); }
    .feature-icon.peach { background: linear-gradient(135deg, #ffe4e6, #fecdd3); }

    .feature-card h3 {
      font-size: 20px;
      font-weight: 700;
      margin-bottom: 12px;
    }

    .feature-card p {
      font-size: 15px;
      color: var(--text-secondary);
      line-height: 1.6;
    }

    .features-grid-4 {
      grid-template-columns: repeat(5, 1fr);
    }

    @media (max-width: 1100px) {
      .features-grid-4 {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media (max-width: 700px) {
      .features-grid-4 {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 500px) {
      .features-grid-4 {
        grid-template-columns: 1fr;
      }
    }

    /* How It Works */
    .how-it-works {
      padding: 120px 40px;
      background: var(--bg);
    }

    .steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 40px;
      margin-top: 60px;
    }

    .step {
      text-align: center;
      position: relative;
    }

    .step-number {
      width: 48px;
      height: 48px;
      background: var(--accent);
      color: white;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 18px;
      margin: 0 auto 24px;
    }

    .step h3 {
      font-size: 18px;
      font-weight: 700;
      margin-bottom: 12px;
    }

    .step p {
      font-size: 15px;
      color: var(--text-secondary);
      line-height: 1.6;
    }

    /* Pricing */
    .pricing {
      padding: 120px 40px;
      background: var(--bg-white);
    }

    .pricing-cards {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 32px;
      max-width: 800px;
      margin: 0 auto;
    }

    .pricing-card {
      background: var(--bg);
      border-radius: 24px;
      padding: 40px;
      position: relative;
    }

    .pricing-card.featured {
      background: var(--text);
      color: white;
    }

    .pricing-card.featured .pricing-desc,
    .pricing-card.featured .pricing-note,
    .pricing-card.featured .pricing-features li {
      color: rgba(255,255,255,0.7);
    }

    .pricing-card.featured .pricing-features li::before {
      color: var(--teal);
    }

    .pricing-badge {
      position: absolute;
      top: -12px;
      left: 50%;
      transform: translateX(-50%);
      background: var(--accent);
      color: white;
      padding: 6px 16px;
      border-radius: 50px;
      font-size: 12px;
      font-weight: 600;
    }

    .pricing-name {
      font-size: 22px;
      font-weight: 700;
      margin-bottom: 8px;
    }

    .pricing-desc {
      font-size: 14px;
      color: var(--text-muted);
      margin-bottom: 32px;
    }

    .pricing-price {
      font-size: 48px;
      font-weight: 800;
      margin-bottom: 8px;
    }

    .pricing-price span {
      font-size: 16px;
      font-weight: 500;
      opacity: 0.7;
    }

    .pricing-note {
      font-size: 13px;
      color: var(--text-muted);
      margin-bottom: 32px;
    }

    .pricing-features {
      list-style: none;
      margin-bottom: 32px;
    }

    .pricing-features li {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px 0;
      font-size: 14px;
      color: var(--text-secondary);
    }

    .pricing-features li::before {
      content: '✓';
      color: var(--accent);
      font-weight: 700;
    }

    .pricing-cards-3 {
      grid-template-columns: repeat(3, 1fr);
      max-width: 1100px;
    }

    /* Merchant view hides the dev card; center the remaining two */
    body.audience-merchant .pricing-cards-3 {
      grid-template-columns: repeat(2, minmax(280px, 360px));
      justify-content: center;
    }

    @media (max-width: 900px) {
      .pricing-cards-3,
      body.audience-merchant .pricing-cards-3 {
        grid-template-columns: 1fr;
      }
    }

    /* CTA */
    .cta {
      padding: 120px 40px;
      background: var(--bg);
      text-align: center;
    }

    .cta h2 {
      font-size: 44px;
      font-weight: 800;
      margin-bottom: 16px;
    }

    .cta p {
      font-size: 17px;
      color: var(--text-secondary);
      margin-bottom: 40px;
    }

    .cta-form {
      display: flex;
      gap: 12px;
      max-width: 440px;
      margin: 0 auto;
    }

    .cta-form input {
      flex: 1;
      padding: 16px 24px;
      background: var(--bg-white);
      border: 1px solid #e5e7eb;
      border-radius: 50px;
      font-size: 15px;
      color: var(--text);
      font-family: inherit;
    }

    .cta-form input:focus {
      outline: none;
      border-color: var(--accent);
    }

    .cta-form input::placeholder {
      color: var(--text-muted);
    }

    /* Contact Section */
    .contact-section {
      padding: 80px 40px;
      background: var(--bg);
    }

    .contact-section .container {
      max-width: 600px;
      margin: 0 auto;
    }

    .contact-section h2 {
      text-align: center;
      font-size: 32px;
      margin-bottom: 8px;
    }

    .contact-section .contact-subtitle {
      text-align: center;
      color: var(--text-secondary);
      margin-bottom: 32px;
    }

    .contact-form {
      background: var(--bg-white);
      padding: 32px;
      border-radius: 16px;
      box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    }

    .contact-form .form-group {
      margin-bottom: 20px;
    }

    .contact-form label {
      display: block;
      font-weight: 500;
      margin-bottom: 8px;
      font-size: 14px;
    }

    .contact-form input,
    .contact-form textarea {
      width: 100%;
      padding: 12px 16px;
      border: 1px solid #e5e7eb;
      border-radius: 8px;
      font-size: 15px;
      font-family: inherit;
      transition: border-color 0.2s;
    }

    .contact-form input:focus,
    .contact-form textarea:focus {
      outline: none;
      border-color: var(--accent);
    }

    .contact-form textarea {
      min-height: 120px;
      resize: vertical;
    }

    .contact-form button {
      width: 100%;
      padding: 14px;
      background: var(--accent);
      color: white;
      border: none;
      border-radius: 8px;
      font-size: 16px;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.2s;
    }

    .contact-form button:hover {
      background: var(--accent-light);
    }

    .contact-alt {
      text-align: center;
      margin-top: 24px;
      font-size: 14px;
      color: var(--text-secondary);
    }

    .contact-alt a {
      color: var(--accent);
      text-decoration: none;
    }

    /* Footer */
    footer {
      padding: 60px 40px 40px;
      background: var(--bg-white);
      border-top: 1px solid #e5e7eb;
    }

    .footer-content {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      gap: 24px;
      align-items: center;
      justify-content: space-between;
      align-items: center;
    }

    .footer-links {
      display: flex;
      gap: 32px;
    }

    .footer-links a {
      font-size: 14px;
      color: var(--text-secondary);
      text-decoration: none;
      transition: color 0.2s;
    }

    .footer-links a:hover {
      color: var(--text);
    }

    .footer-copy {
      font-size: 13px;
      color: var(--text-muted);
      line-height: 1.5;
      text-align: right;
      flex-shrink: 0;
    }
    @media (max-width: 720px) {
      .footer-copy { text-align: center; width: 100%; }
    }

    /* Mobile Menu */
    .hamburger {
      display: none;
      flex-direction: column;
      justify-content: space-between;
      width: 28px;
      height: 20px;
      cursor: pointer;
      z-index: 1001;
    }
    
    .hamburger span {
      display: block;
      width: 100%;
      height: 3px;
      background: var(--text);
      border-radius: 3px;
      transition: all 0.3s ease;
    }
    
    .hamburger.active span:nth-child(1) {
      transform: rotate(45deg) translate(5px, 5px);
    }
    
    .hamburger.active span:nth-child(2) {
      opacity: 0;
    }
    
    .hamburger.active span:nth-child(3) {
      transform: rotate(-45deg) translate(7px, -6px);
    }
    
    .mobile-menu {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(248, 249, 252, 0.98);
      backdrop-filter: blur(20px);
      z-index: 999;
      padding: 100px 40px 40px;
      flex-direction: column;
      align-items: center;
      gap: 24px;
      overflow-y: auto;
    }
    
    .mobile-menu.active {
      display: flex;
    }
    
    .mobile-menu a {
      font-size: 20px;
      font-weight: 600;
      color: var(--text);
      text-decoration: none;
      padding: 12px 0;
      transition: color 0.2s;
    }
    
    .mobile-menu a:hover {
      color: var(--accent);
    }
    
    .mobile-menu .token-link {
      background: linear-gradient(135deg, #f59e0b, #fbbf24);
      color: #1a1a2e !important;
      padding: 12px 24px;
      border-radius: 50px;
      font-weight: 600;
    }
    
    .mobile-menu .btn-primary {
      margin-top: 16px;
      padding: 16px 32px;
      font-size: 16px;
    }

    /* Responsive */
    @media (max-width: 900px) {
      h1 { font-size: 40px; }
      
      .section-header h2 {
        font-size: 32px;
      }
      
      .features-grid,
      .steps {
        grid-template-columns: 1fr;
      }

      .pricing-cards {
        grid-template-columns: 1fr;
      }

      .stats {
        flex-direction: column;
        gap: 24px;
      }

      .nav-links {
        display: none !important;
      }
      
      .hamburger {
        display: flex !important;
      }
      
      .desktop-only {
        display: none;
      }
      
      nav {
        padding: 12px 0;
      }
      
      nav .container {
        padding: 0 16px;
      }
      
      nav .btn-primary {
        padding: 10px 20px;
        font-size: 13px;
        width: auto;
        flex: 0 0 auto;
      }
      
      .logo {
        font-size: 20px;
        gap: 10px;
        flex: 0 0 auto;
      }
      
      .logo-box {
        width: 40px;
        height: 40px;
      }

      .footer-content {
        flex-direction: column;
        gap: 24px;
        text-align: center;
      }
      
      .footer-links {
        flex-wrap: wrap;
        justify-content: center;
        gap: 16px;
      }
      
      .features, .how-it-works, .pricing, .cta {
        padding: 80px 24px;
      }
    }

    @media (max-width: 600px) {
      h1 { font-size: 32px; }
      
      .section-header h2 {
        font-size: 28px;
      }
      
      .hero {
        min-height: auto;
        padding: 100px 20px 48px;
      }

      .hero .code-window {
        margin: 24px -12px;
        border-radius: 12px;
        max-width: 100vw;
      }

      .hero .code-body {
        padding: 16px 14px;
      }

      .hero .code-body pre,
      #termOutput {
        font-size: 9px;
        line-height: 1.4;
        white-space: pre-wrap;
        word-break: break-all;
        min-height: 280px;
      }

      .hero-buttons {
        flex-direction: column;
        width: 100%;
      }

      .hero-buttons .btn-secondary,
      .hero-buttons .btn-outline {
        display: none;
      }

      .btn { width: 100%; }

      .cta-form {
        flex-direction: column;
      }

      .code-window {
        margin: 30px -10px;
        border-radius: 12px;
      }
      
      .code-body {
        padding: 16px;
      }
      
      .code-body pre {
        font-size: 11px;
        line-height: 1.5;
      }
      
      .stat-value {
        font-size: 32px;
      }
      
      .pricing-price {
        font-size: 36px;
      }
      
      .cta h2 {
        font-size: 28px;
      }
      
      .feature-card {
        padding: 28px 24px;
      }
      
      .pricing-card {
        padding: 28px 24px;
      }
    }
    
    @media (max-width: 600px) {
      nav .btn-primary {
        padding: 10px 16px;
        font-size: 12px;
        flex: none !important;
        width: auto !important;
        max-width: none !important;
      }
      
      .logo {
        font-size: 18px;
        gap: 8px;
      }
      
      .logo-box {
        width: 36px;
        height: 36px;
      }
    }
    
    @media (max-width: 400px) {
      h1 { font-size: 26px; }
      
      .hero-text {
        font-size: 15px;
      }
      
      .hero .code-body pre,
      #termOutput {
        font-size: 8px;
      }
      
      nav .container {
        padding: 0 12px;
      }
      
      .logo span {
        display: none;
      }
      
      nav .btn-primary {
        padding: 10px 20px;
        font-size: 13px;
      }

      .trust-strip {
        padding: 48px 12px;
      }

      .trust-grid {
        gap: 8px;
      }

      .trust-card {
        padding: 16px 10px;
      }

      .trust-card .trust-card-name {
        font-size: 13px;
      }

      .trust-card .trust-card-desc {
        font-size: 11px;
      }
    }

    /* Comparison Section */
    .comparison-section {
      padding: 100px 40px;
      background: linear-gradient(135deg, #0f0f1a 0%, #1a1a2e 100%);
      color: white;
    }

    .comparison-section .section-header h2 {
      color: white;
    }

    .comparison-section .section-header p {
      color: rgba(255,255,255,0.7);
    }

    .comparison-table-wrapper {
      overflow-x: auto;
      margin-top: 48px;
    }

    .comparison-table {
      width: 100%;
      border-collapse: collapse;
      background: rgba(255,255,255,0.05);
      border-radius: 16px;
      overflow: hidden;
    }

    .comparison-table th,
    .comparison-table td {
      padding: 14px 20px;
      text-align: center;
      border-bottom: 1px solid rgba(255,255,255,0.1);
      white-space: nowrap;
    }

    .comparison-table th {
      background: rgba(255,255,255,0.1);
      font-weight: 600;
      font-size: 14px;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }

    .comparison-table th.highlight {
      background: var(--accent);
      color: white;
    }

    .comparison-table td:first-child {
      text-align: left;
      font-weight: 500;
    }

    .comparison-table td.highlight {
      background: rgba(99, 102, 241, 0.1);
    }

    .comparison-table .feature-icon {
      display: inline;
      width: auto;
      height: auto;
      background: none;
      border-radius: 0;
      margin-right: 8px;
      font-size: 16px;
    }

    .comparison-table .check {
      color: #10b981;
      font-size: 20px;
      font-weight: bold;
    }

    .comparison-table .cross {
      color: #ef4444;
      font-size: 18px;
    }

    .comparison-table .limited {
      color: #f59e0b;
      font-size: 13px;
    }

    .comparison-table .discount {
      color: #10b981;
      font-weight: 700;
      font-size: 18px;
    }

    /* Investor Section */
    .investor-section {
      padding: 100px 40px;
      background: var(--bg);
    }

    .investor-content {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 60px;
      align-items: center;
    }

    .investor-text h2 {
      font-size: 36px;
      margin-bottom: 16px;
    }

    .investor-text p {
      font-size: 18px;
      color: var(--text-secondary);
      margin-bottom: 24px;
    }

    .investor-highlights {
      list-style: none;
      padding: 0;
    }

    .investor-highlights li {
      padding: 12px 0;
      font-size: 16px;
      border-bottom: 1px solid #e5e7eb;
    }

    .investor-cta-box {
      background: white;
      padding: 48px;
      border-radius: 24px;
      box-shadow: 0 20px 60px rgba(0,0,0,0.1);
      text-align: center;
    }

    .investor-cta-box h3 {
      font-size: 24px;
      margin-bottom: 8px;
    }

    .investor-cta-box p {
      color: var(--text-secondary);
      margin-bottom: 24px;
    }

    .investor-cta-box .btn {
      display: block;
      margin-bottom: 12px;
    }

    .investor-cta-box .btn-large {
      padding: 16px 32px;
      font-size: 16px;
    }

    .investor-cta-box .btn-secondary {
      background: transparent;
      border: 2px solid var(--accent);
      color: var(--accent);
    }

    .investor-cta-box .btn-secondary:hover {
      background: var(--accent);
      color: white;
    }

    @media (max-width: 768px) {
      .comparison-table th,
      .comparison-table td {
        padding: 10px 6px;
        font-size: 11px;
        white-space: normal;
      }

      .comparison-table-wrapper {
        margin-left: -20px;
        margin-right: -20px;
        padding: 0 4px;
      }

      .investor-content {
        grid-template-columns: 1fr;
        gap: 40px;
      }

      .investor-cta-box {
        padding: 32px 24px;
      }
    }

    /* Token Section */
    .token-section {
      padding: 120px 40px;
      background: linear-gradient(135deg, #1a1a2e 0%, #2d1b4e 100%);
      color: white;
    }

    .token-section .section-header h2 {
      color: white;
    }

    .token-section .section-header p {
      color: rgba(255,255,255,0.7);
    }

    .token-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 40px;
      margin-top: 48px;
    }

    .token-main {
      background: rgba(255,255,255,0.1);
      backdrop-filter: blur(20px);
      border-radius: 24px;
      padding: 40px;
      text-align: center;
      border: 1px solid rgba(255,255,255,0.1);
    }

    .token-logo {
      font-size: 64px;
      margin-bottom: 16px;
    }

    .token-main h3 {
      font-size: 28px;
      font-weight: 700;
      margin-bottom: 8px;
    }

    .token-symbol {
      font-size: 18px;
      color: var(--teal);
      font-weight: 600;
      margin-bottom: 32px;
    }

    .token-stats {
      display: flex;
      justify-content: space-around;
      gap: 16px;
    }

    .token-stat {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .token-stat .label {
      font-size: 12px;
      color: rgba(255,255,255,0.6);
      text-transform: uppercase;
    }

    .token-stat .value {
      font-size: 16px;
      font-weight: 600;
    }

    .token-stat .value.highlight {
      color: var(--teal);
    }

    .token-benefits {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    .benefit-card {
      background: rgba(255,255,255,0.05);
      border-radius: 16px;
      padding: 24px;
      border: 1px solid rgba(255,255,255,0.08);
    }

    .benefit-icon {
      font-size: 28px;
      margin-bottom: 12px;
    }

    .benefit-card h4 {
      font-size: 16px;
      font-weight: 600;
      margin-bottom: 8px;
    }

    .benefit-card p {
      font-size: 14px;
      color: rgba(255,255,255,0.6);
      line-height: 1.5;
    }

    .token-contract {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin-top: 48px;
      flex-wrap: wrap;
    }

    .token-contract .label {
      color: rgba(255,255,255,0.6);
      font-size: 14px;
    }

    .token-contract code {
      background: rgba(255,255,255,0.1);
      padding: 12px 20px;
      border-radius: 8px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 13px;
      cursor: pointer;
      transition: background 0.2s;
    }

    .token-contract code:hover {
      background: rgba(255,255,255,0.2);
    }

    .bscscan-link {
      color: var(--teal);
      text-decoration: none;
      font-size: 14px;
      font-weight: 500;
    }

    .bscscan-link:hover {
      text-decoration: underline;
    }

    @media (max-width: 900px) {
      .token-grid {
        grid-template-columns: 1fr;
      }
      
      .token-benefits {
        grid-template-columns: 1fr;
      }
      
      .token-stats {
        flex-direction: column;
        gap: 16px;
      }
    }

    /* Animations */
    .fade-up {
      opacity: 0;
      transform: translateY(30px);
      animation: fadeUp 0.8s ease forwards;
    }

    .fade-up:nth-child(2) { animation-delay: 0.1s; }
    .fade-up:nth-child(3) { animation-delay: 0.2s; }

    @keyframes fadeUp {
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .fade-up {
        opacity: 1;
        transform: none;
        animation: none;
      }
    }

    /* Mobile Floating Token Button */
    .mobile-token-btn {
      display: none;
      position: fixed;
      bottom: 24px;
      right: 24px;
      background: linear-gradient(135deg, #f59e0b, #fbbf24);
      color: #1a1a2e;
      padding: 14px 20px;
      border-radius: 50px;
      font-weight: 700;
      font-size: 14px;
      text-decoration: none;
      z-index: 1000;
      box-shadow: 0 4px 20px rgba(245, 158, 11, 0.4);
      animation: floatPulse 2s ease-in-out infinite;
    }

    .mobile-token-btn:hover {
      transform: scale(1.05);
    }

    @keyframes floatPulse {
      0%, 100% { 
        transform: translateY(0);
        box-shadow: 0 4px 20px rgba(245, 158, 11, 0.4);
      }
      50% { 
        transform: translateY(-4px);
        box-shadow: 0 8px 30px rgba(245, 158, 11, 0.6);
      }
    }

    @media (max-width: 768px) {
      .mobile-token-btn {
        display: flex;
        align-items: center;
        gap: 8px;
      }
    }

    /* AI Agents Section Styles */
    .ai-agents-section {
      padding: 120px 40px;
      background: linear-gradient(135deg, #0a1628 0%, #1a2744 50%, #0d1829 100%);
      color: white;
      position: relative;
      overflow: hidden;
    }

    .ai-agents-section::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: 
        radial-gradient(ellipse at 20% 20%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 80%, rgba(94, 234, 212, 0.1) 0%, transparent 50%);
      pointer-events: none;
    }

    .ai-agents-section .section-header {
      position: relative;
      z-index: 1;
    }

    .ai-agents-section .section-header h2 {
      color: white;
    }

    .ai-agents-section .section-header p {
      color: rgba(255, 255, 255, 0.7);
    }

    .eu-badge-header {
      display: inline-block;
      background: rgba(99, 102, 241, 0.2);
      color: #818cf8;
      padding: 8px 20px;
      border-radius: 50px;
      font-size: 14px;
      font-weight: 600;
      margin-bottom: 20px;
      border: 1px solid rgba(99, 102, 241, 0.3);
    }

    .ai-demo-container {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 40px;
      margin-top: 48px;
      position: relative;
      z-index: 1;
    }

    /* Mini Demo Widget */
    .mini-demo-widget {
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(20px);
      border-radius: 20px;
      padding: 28px;
      border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .mini-demo-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 20px;
    }

    .mini-demo-title {
      font-size: 16px;
      font-weight: 600;
    }

    .mini-demo-badge {
      background: linear-gradient(135deg, var(--accent), var(--accent-light));
      padding: 4px 12px;
      border-radius: 12px;
      font-size: 11px;
      font-weight: 600;
    }

    .mini-demo-input {
      display: flex;
      gap: 12px;
      margin-bottom: 20px;
    }

    .mini-demo-input input {
      flex: 1;
      background: rgba(0, 0, 0, 0.3);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 12px;
      padding: 14px 18px;
      font-size: 14px;
      color: white;
      font-family: inherit;
    }

    .mini-demo-input input:focus {
      outline: none;
      border-color: var(--accent);
    }

    .mini-demo-input input::placeholder {
      color: rgba(255, 255, 255, 0.4);
    }

    .mini-demo-input .btn {
      padding: 14px 24px;
      font-size: 14px;
    }

    .mini-demo-results {
      min-height: 160px;
    }

    .demo-agent-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .demo-agent-item {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px 14px;
      background: rgba(0, 0, 0, 0.2);
      border-radius: 10px;
      animation: slideIn 0.3s ease-out;
    }

    .demo-agent-item .status {
      font-size: 16px;
    }

    .demo-agent-item .name {
      flex: 1;
      font-size: 14px;
      font-weight: 500;
    }

    .demo-agent-item .cost {
      color: #f87171;
      font-family: 'JetBrains Mono', monospace;
      font-size: 13px;
    }

    .demo-agent-item .time {
      color: rgba(255, 255, 255, 0.5);
      font-size: 12px;
    }

    .demo-agent-item .protocol {
      background: rgba(99, 102, 241, 0.3);
      padding: 2px 8px;
      border-radius: 4px;
      font-size: 10px;
      color: #818cf8;
    }

    .demo-total {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 16px;
      padding-top: 16px;
      border-top: 1px solid rgba(255, 255, 255, 0.1);
      font-size: 14px;
    }

    .demo-total-amount {
      font-weight: 700;
      color: #f87171;
      font-size: 18px;
    }

    .demo-settlement {
      margin-left: auto;
      color: #4ade80;
      font-size: 12px;
    }

    .mini-demo-cta {
      display: block;
      text-align: center;
      margin-top: 20px;
      padding: 14px;
      background: linear-gradient(135deg, var(--accent), var(--accent-light));
      color: white;
      text-decoration: none;
      border-radius: 12px;
      font-weight: 600;
      font-size: 14px;
      transition: all 0.3s;
    }

    .mini-demo-cta:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(99, 102, 241, 0.4);
    }

    /* AI Feature Cards */
    .ai-features {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .ai-feature-card {
      background: rgba(255, 255, 255, 0.05);
      border-radius: 16px;
      padding: 24px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      transition: all 0.3s;
    }

    .ai-feature-card:hover {
      background: rgba(255, 255, 255, 0.08);
      transform: translateY(-2px);
    }

    .ai-feature-icon {
      font-size: 28px;
      margin-bottom: 12px;
    }

    .ai-feature-card h4 {
      font-size: 16px;
      font-weight: 600;
      margin-bottom: 8px;
    }

    .ai-feature-card p {
      font-size: 13px;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.5;
    }

    /* AI Stats */
    .ai-stats {
      display: flex;
      justify-content: center;
      gap: 80px;
      margin-top: 60px;
      position: relative;
      z-index: 1;
    }

    .ai-stat {
      text-align: center;
    }

    .ai-stat-value {
      font-size: 40px;
      font-weight: 800;
      background: linear-gradient(135deg, #4ade80, #22d3ee);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .ai-stat-label {
      font-size: 14px;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 4px;
    }

    @media (max-width: 900px) {
      .ai-demo-container {
        grid-template-columns: 1fr;
      }
      
      .ai-features {
        grid-template-columns: 1fr 1fr;
      }
      
      .ai-stats {
        flex-direction: column;
        gap: 24px;
      }
    }

    @media (max-width: 600px) {
      .ai-agents-section {
        padding: 80px 20px;
      }
      
      .ai-features {
        grid-template-columns: 1fr;
      }
      
      .mini-demo-input {
        flex-direction: column;
      }
      
      .ai-stat-value {
        font-size: 32px;
      }
    }

    /* SDK Section */
    .sdk-section {
      padding: 120px 40px;
      background: linear-gradient(180deg, var(--bg) 0%, #f0f4ff 100%);
    }

    .sdk-section .section-header {
      text-align: center;
      margin-bottom: 60px;
    }

    .sdk-section .section-header h2 {
      font-size: 42px;
      font-weight: 800;
      margin-bottom: 16px;
    }

    .sdk-section .section-header p {
      font-size: 18px;
      color: var(--text-secondary);
    }

    .sdk-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      max-width: 1200px;
      margin: 0 auto;
    }

    .sdk-card {
      background: white;
      border-radius: 16px;
      padding: 28px;
      border: 1px solid #e5e7eb;
      transition: all 0.3s;
      position: relative;
    }

    .sdk-card:hover {
      border-color: var(--accent);
      box-shadow: 0 8px 32px rgba(99, 102, 241, 0.15);
      transform: translateY(-4px);
    }

    .sdk-featured {
      border-color: var(--accent);
      background: linear-gradient(135deg, #fafaff 0%, #f5f3ff 100%);
    }

    .sdk-coming {
      opacity: 0.7;
      border-style: dashed;
    }

    .sdk-new-badge {
      position: absolute;
      top: -10px;
      right: 16px;
      background: linear-gradient(135deg, #10b981, #059669);
      color: white;
      font-size: 11px;
      font-weight: 700;
      padding: 4px 12px;
      border-radius: 12px;
    }

    .sdk-header {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 16px;
    }

    .sdk-icon {
      font-size: 32px;
    }

    .sdk-header h4 {
      font-size: 16px;
      font-weight: 700;
      margin: 0;
    }

    .sdk-tag {
      display: inline-block;
      background: #f3f4f6;
      color: var(--text-secondary);
      font-size: 11px;
      font-weight: 600;
      padding: 2px 8px;
      border-radius: 4px;
      margin-top: 4px;
    }

    .sdk-card p {
      font-size: 14px;
      color: var(--text-secondary);
      margin-bottom: 16px;
      line-height: 1.5;
    }

    .sdk-install {
      display: block;
      background: #1e2432;
      color: #a5f3fc;
      font-family: 'JetBrains Mono', monospace;
      font-size: 12px;
      padding: 10px 14px;
      border-radius: 8px;
      margin-bottom: 16px;
      overflow-x: auto;
    }

    .sdk-features {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .sdk-features span {
      font-size: 11px;
      color: var(--text-secondary);
      background: #f3f4f6;
      padding: 4px 10px;
      border-radius: 12px;
    }

    .sdk-demo-link {
      display: block;
      margin-top: 16px;
      padding: 10px 16px;
      background: linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%);
      color: white;
      text-decoration: none;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 600;
      text-align: center;
      transition: all 0.3s;
    }

    .sdk-demo-link:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
    }

    .sdk-cta {
      display: flex;
      justify-content: center;
      gap: 16px;
      margin-top: 48px;
    }

    @media (max-width: 1000px) {
      .sdk-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 600px) {
      .sdk-section {
        padding: 80px 20px;
      }
      
      .sdk-grid {
        grid-template-columns: 1fr;
      }
      
      .sdk-cta {
        flex-direction: column;
        align-items: center;
      }
    }

    /* Gaming SDK Section */
    .gaming-section {
      padding: 120px 40px;
      background: linear-gradient(135deg, #1a0a2e 0%, #2d1b4e 50%, #1a1a2e 100%);
      color: white;
      position: relative;
      overflow: hidden;
    }

    .gaming-section::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: 
        radial-gradient(ellipse at 30% 30%, rgba(244, 114, 182, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 70%, rgba(168, 85, 247, 0.15) 0%, transparent 50%);
      pointer-events: none;
    }

    .gaming-section .section-header {
      position: relative;
      z-index: 1;
    }

    .gaming-section .section-header h2 {
      color: white;
    }

    .gaming-section .section-header p {
      color: rgba(255, 255, 255, 0.7);
    }

    .gaming-badge {
      display: inline-block;
      background: linear-gradient(135deg, #f472b6 0%, #a855f7 100%);
      color: white;
      padding: 8px 20px;
      border-radius: 50px;
      font-size: 14px;
      font-weight: 600;
      margin-bottom: 20px;
      animation: gamingPulse 2s ease-in-out infinite;
    }

    @keyframes gamingPulse {
      0%, 100% { box-shadow: 0 0 20px rgba(244, 114, 182, 0.4); }
      50% { box-shadow: 0 0 40px rgba(244, 114, 182, 0.7); }
    }

    .gaming-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
      margin-top: 48px;
      position: relative;
      z-index: 1;
    }

    .gaming-feature-card {
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(10px);
      border-radius: 20px;
      padding: 32px 24px;
      border: 1px solid rgba(255, 255, 255, 0.1);
      text-align: center;
      transition: all 0.3s;
    }

    .gaming-feature-card:hover {
      background: rgba(255, 255, 255, 0.1);
      transform: translateY(-4px);
      border-color: rgba(244, 114, 182, 0.4);
    }

    .gaming-feature-icon {
      font-size: 40px;
      margin-bottom: 16px;
    }

    .gaming-feature-card h4 {
      font-size: 18px;
      font-weight: 700;
      margin-bottom: 12px;
    }

    .gaming-feature-card p {
      font-size: 14px;
      color: rgba(255, 255, 255, 0.6);
      line-height: 1.5;
    }

    .gaming-stats {
      display: flex;
      justify-content: center;
      gap: 80px;
      margin-top: 60px;
      position: relative;
      z-index: 1;
    }

    .gaming-stat {
      text-align: center;
    }

    .gaming-stat-value {
      font-size: 40px;
      font-weight: 800;
      background: linear-gradient(135deg, #f472b6, #a855f7);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    .gaming-stat-label {
      font-size: 14px;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 4px;
    }

    .gaming-cta {
      display: flex;
      justify-content: center;
      gap: 16px;
      margin-top: 48px;
      position: relative;
      z-index: 1;
    }

    .btn-gaming {
      background: linear-gradient(135deg, #f472b6 0%, #a855f7 100%);
      color: white;
      padding: 16px 32px;
      border-radius: 50px;
      font-size: 16px;
      font-weight: 600;
      text-decoration: none;
      transition: all 0.3s;
    }

    .btn-gaming:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 32px rgba(244, 114, 182, 0.4);
    }

    .btn-gaming-outline {
      background: transparent;
      color: white;
      padding: 16px 32px;
      border-radius: 50px;
      font-size: 16px;
      font-weight: 600;
      text-decoration: none;
      border: 2px solid rgba(255, 255, 255, 0.3);
      transition: all 0.3s;
    }

    .btn-gaming-outline:hover {
      background: rgba(255, 255, 255, 0.1);
      border-color: rgba(255, 255, 255, 0.5);
    }

    @media (max-width: 900px) {
      .gaming-grid {
        grid-template-columns: repeat(2, 1fr);
      }
      
      .gaming-stats {
        flex-direction: column;
        gap: 24px;
      }
    }

    @media (max-width: 600px) {
      .gaming-section {
        padding: 80px 20px;
      }
      
      .gaming-grid {
        grid-template-columns: 1fr;
      }
      
      .gaming-cta {
        flex-direction: column;
        align-items: center;
      }
      
      .gaming-stat-value {
        font-size: 32px;
      }
    }

    .shields-grid {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 16px;
      max-width: 1200px;
      margin: 0 auto 48px;
    }

    @media (max-width: 900px) {
      .shields-grid {
        grid-template-columns: repeat(3, 1fr) !important;
      }
    }

    @media (max-width: 600px) {
      .shields-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
      }

      .shields-grid .feature-card h3 {
        font-size: 13px !important;
      }

      .shields-grid .feature-card p {
        font-size: 11px !important;
      }
    }

    @media (max-width: 400px) {
      .shields-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
      }

      .shields-grid .feature-card {
        padding: 16px 10px !important;
      }
    }

    /* ============================================================
       DESIGN SYSTEM v2 — editorial pattern (kicker → italic h2 → lede → grid)
       Uses AsterPay's existing palette. Instrument Serif is loaded only
       for <em> accents; body stays Inter, code stays JetBrains Mono.
       ============================================================ */
    .v2-section {
      padding: 96px 0;
      position: relative;
    }
    .v2-section + .v2-section { padding-top: 0; }
    .v2-container {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 28px;
    }
    .v2-head {
      max-width: 780px;
      margin: 0 auto 56px;
      text-align: center;
    }
    .v2-head.left {
      text-align: left;
      margin-left: 0;
      margin-right: 0;
    }
    .v2-kicker {
      display: inline-block;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--accent);
      padding: 4px 10px;
      border: 1px solid rgba(99,102,241,0.25);
      border-radius: 999px;
      background: rgba(99,102,241,0.06);
      margin-bottom: 18px;
    }
    .v2-h2 {
      font-size: clamp(32px, 4.6vw, 52px);
      line-height: 1.06;
      font-weight: 700;
      letter-spacing: -0.025em;
      color: var(--text);
      margin-bottom: 18px;
    }
    .v2-h2 em {
      font-family: 'Instrument Serif', 'Times New Roman', serif;
      font-style: italic;
      font-weight: 400;
      color: var(--accent);
      letter-spacing: -0.01em;
    }
    .v2-lede {
      font-size: 18px;
      line-height: 1.55;
      color: var(--text-secondary);
      max-width: 640px;
      margin: 0 auto;
    }
    .v2-head.left .v2-lede { margin-left: 0; }

    /* Steps (How it works) */
    .v2-steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .v2-step {
      padding: 32px 28px;
      border: 1px solid rgba(26,26,46,0.08);
      border-radius: 16px;
      background: var(--bg-white);
      position: relative;
    }
    .v2-step-num {
      display: block;
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-size: 36px;
      color: var(--accent);
      line-height: 1;
      margin-bottom: 14px;
    }
    .v2-step h3 {
      font-size: 19px;
      font-weight: 600;
      letter-spacing: -0.015em;
      color: var(--text);
      margin-bottom: 8px;
    }
    .v2-step p {
      font-size: 14.5px;
      line-height: 1.6;
      color: var(--text-secondary);
    }

    /* Features grid (3 col) */
    .v2-features {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px;
      max-width: 980px;
      margin: 0 auto;
    }
    .v2-feature {
      padding: 28px 24px;
      border: 1px solid rgba(26,26,46,0.08);
      border-radius: 14px;
      background: var(--bg-white);
      transition: border-color 0.18s, transform 0.18s;
    }
    .v2-feature:hover {
      border-color: rgba(99,102,241,0.35);
      transform: translateY(-2px);
    }
    .v2-feature-icon {
      width: 38px;
      height: 38px;
      border-radius: 10px;
      background: rgba(99,102,241,0.10);
      color: var(--accent);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 14px;
    }
    .v2-feature h4 {
      font-size: 16px;
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.01em;
      margin-bottom: 6px;
    }
    .v2-feature p {
      font-size: 14px;
      line-height: 1.55;
      color: var(--text-secondary);
    }

    /* Stats grid */
    .v2-stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 32px;
      max-width: 1100px;
      margin: 0 auto;
      padding: 40px 0;
      border-top: 1px solid rgba(26,26,46,0.08);
      border-bottom: 1px solid rgba(26,26,46,0.08);
    }

    /* Proof grid (Live in production) */
    .proof-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .proof-item {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 22px 24px;
      border: 1px solid rgba(26,26,46,0.10);
      border-radius: 12px;
      background: #fff;
      text-decoration: none;
      transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    }
    .proof-item:hover {
      border-color: rgba(245, 158, 11, 0.35);
      transform: translateY(-1px);
      box-shadow: 0 8px 24px -12px rgba(26,26,46,0.10);
    }
    .proof-icon {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: rgba(16, 185, 129, 0.12);
      color: #10b981;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 14px;
      margin-top: 2px;
    }
    .proof-cta .proof-icon { background: rgba(245, 158, 11, 0.10); }
    .proof-name {
      font-weight: 600;
      color: var(--text);
      font-size: 14.5px;
      letter-spacing: -0.005em;
      margin-bottom: 4px;
    }
    .proof-sub {
      color: var(--text-muted);
      font-size: 13px;
      line-height: 1.5;
    }
    @media (max-width: 880px) {
      .proof-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 560px) {
      .proof-grid { grid-template-columns: 1fr; }
    }
    .v2-stat-num {
      font-size: clamp(36px, 4.5vw, 52px);
      font-weight: 700;
      letter-spacing: -0.03em;
      color: var(--text);
      line-height: 1;
      margin-bottom: 10px;
    }
    .v2-stat-num em {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-weight: 400;
      color: var(--accent);
    }
    .v2-stat-label {
      font-size: 13.5px;
      color: var(--text-secondary);
      line-height: 1.45;
    }

    /* Dev split */
    .v2-dev-split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 56px;
      align-items: start;
      max-width: 1140px;
      margin: 0 auto;
    }
    .v2-dev-list {
      list-style: none;
      padding: 0;
      margin: 28px 0 0;
    }
    .v2-dev-list li {
      display: flex;
      gap: 14px;
      padding: 14px 0;
      border-top: 1px solid rgba(26,26,46,0.08);
    }
    .v2-dev-list li:first-child { border-top: 0; }
    .v2-dev-check {
      flex-shrink: 0;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: rgba(94,234,212,0.18);
      color: #0d9488;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: 700;
      margin-top: 2px;
    }
    .v2-dev-list strong {
      display: block;
      font-size: 15.5px;
      color: var(--text);
      letter-spacing: -0.01em;
      margin-bottom: 3px;
    }
    .v2-dev-list p {
      font-size: 13.5px;
      line-height: 1.55;
      color: var(--text-secondary);
      margin: 0;
    }

    /* Code card */
    .v2-code-card {
      background: #0F1424;
      border-radius: 14px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.06);
      box-shadow: 0 24px 60px -28px rgba(15,20,36,0.45);
    }
    .v2-code-head {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 14px 18px;
      border-bottom: 1px solid rgba(255,255,255,0.05);
      background: rgba(255,255,255,0.02);
    }
    .v2-code-dot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: rgba(255,255,255,0.18);
    }
    .v2-code-name {
      font-family: 'JetBrains Mono', monospace;
      font-size: 12px;
      color: rgba(255,255,255,0.55);
      margin-left: 8px;
    }
    .v2-code-body {
      padding: 22px 22px 24px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 13px;
      line-height: 1.7;
      color: rgba(255,255,255,0.9);
      white-space: pre;
      overflow-x: auto;
    }
    .v2-code-body .c { color: #6b7589; font-style: italic; }
    .v2-code-body .k { color: #c4b5fd; }
    .v2-code-body .s { color: #5eead4; }
    .v2-code-body .f { color: #93c5fd; }
    .v2-code-body .p { color: rgba(255,255,255,0.6); }
    .v2-code-body .g { color: #5eead4; }

    /* Pricing minimal */
    .v2-pricing-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 24px;
      max-width: 1240px;
      margin: 0 auto;
    }
    body.audience-merchant .v2-pricing-grid {
      grid-template-columns: repeat(3, minmax(280px, 380px));
      justify-content: center;
    }
    @media (max-width: 1180px) {
      body.audience-merchant .v2-pricing-grid {
        grid-template-columns: repeat(2, minmax(280px, 380px));
      }
    }
    .v2-price-card {
      background: var(--bg-white);
      border: 1px solid rgba(26,26,46,0.08);
      border-radius: 16px;
      padding: 32px 28px;
      display: flex;
      flex-direction: column;
    }
    .v2-price-card.featured {
      border-color: rgba(99,102,241,0.4);
      box-shadow: 0 24px 60px -36px rgba(99,102,241,0.45);
    }
    .v2-price-eyebrow {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 14px;
    }
    .v2-price-name {
      font-size: 19px;
      font-weight: 600;
      letter-spacing: -0.015em;
      color: var(--text);
      margin-bottom: 6px;
    }
    .v2-price-desc {
      font-size: 13.5px;
      color: var(--text-secondary);
      margin-bottom: 18px;
    }
    .v2-price-amount {
      font-size: 38px;
      font-weight: 700;
      letter-spacing: -0.025em;
      color: var(--text);
      line-height: 1;
      margin-bottom: 6px;
    }
    .v2-price-amount span {
      font-size: 14px;
      font-weight: 400;
      color: var(--text-secondary);
      letter-spacing: 0;
    }
    .v2-price-note {
      font-size: 12.5px;
      color: var(--text-muted);
      margin-bottom: 22px;
    }
    .v2-price-list {
      list-style: none;
      padding: 0;
      margin: 0 0 26px;
      flex: 1;
    }
    .v2-price-list li {
      font-size: 14px;
      color: var(--text-secondary);
      padding: 8px 0;
      border-top: 1px solid rgba(26,26,46,0.06);
      display: flex;
      gap: 10px;
    }
    .v2-price-list li:first-child { border-top: 0; }
    .v2-price-list li::before {
      content: "+";
      color: var(--accent);
      font-weight: 600;
      flex-shrink: 0;
    }
    .v2-price-cta {
      display: inline-block;
      padding: 12px 18px;
      background: var(--text);
      color: #fff;
      border-radius: 10px;
      font-size: 14px;
      font-weight: 500;
      text-align: center;
      transition: background 0.18s;
      text-decoration: none;
    }
    .v2-price-cta:hover { background: var(--accent); }
    .v2-price-cta.outline {
      background: transparent;
      color: var(--text);
      border: 1px solid rgba(26,26,46,0.18);
    }
    .v2-price-cta.outline:hover {
      background: var(--text);
      color: #fff;
    }

    /* Comparison table — light tweaks for v2 head */
    .v2-table-wrap {
      max-width: 1100px;
      margin: 0 auto;
      overflow-x: auto;
    }

    /* Compact comparison table — fits viewport without horizontal scroll */
    .comparison-table-compact th,
    .comparison-table-compact td {
      white-space: normal !important;
      padding: 12px 10px !important;
      vertical-align: middle;
      word-break: break-word;
      overflow-wrap: anywhere;
      line-height: 1.4;
    }
    .comparison-table-compact th {
      font-size: 11.5px !important;
      letter-spacing: 0.4px;
    }
    .comparison-table-compact td:first-child {
      padding-left: 14px !important;
    }
    .comparison-table-compact sup {
      font-size: 9.5px;
      color: var(--accent);
      font-weight: 600;
      margin-left: 1px;
    }
    .comparison-table-compact td.highlight sup {
      color: rgba(255,255,255,0.9);
    }
    @media (max-width: 720px) {
      .comparison-table-compact th,
      .comparison-table-compact td {
        font-size: 11px !important;
        padding: 9px 6px !important;
      }
    }

    /* CTA card (final) */
    .v2-cta {
      padding: 96px 0;
    }
    .v2-cta-card {
      background: linear-gradient(135deg, #1a1a2e 0%, #2a1f4d 100%);
      border-radius: 24px;
      padding: 72px 56px;
      text-align: center;
      color: #fff;
      max-width: 1100px;
      margin: 0 auto;
      position: relative;
      overflow: hidden;
    }
    .v2-cta-card::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 20% 0%, rgba(99,102,241,0.35) 0%, transparent 45%),
        radial-gradient(circle at 80% 100%, rgba(94,234,212,0.18) 0%, transparent 45%);
      pointer-events: none;
    }
    .v2-cta-card > * { position: relative; }
    .v2-cta-card h2 {
      font-size: clamp(32px, 4.4vw, 48px);
      line-height: 1.1;
      font-weight: 700;
      letter-spacing: -0.025em;
      margin-bottom: 16px;
    }
    .v2-cta-card h2 em {
      font-family: 'Instrument Serif', serif;
      font-style: italic;
      font-weight: 400;
      color: #5eead4;
    }
    .v2-cta-card p {
      font-size: 17px;
      line-height: 1.55;
      color: rgba(255,255,255,0.72);
      max-width: 560px;
      margin: 0 auto 32px;
    }
    .v2-cta-buttons {
      display: inline-flex;
      gap: 12px;
      flex-wrap: wrap;
      justify-content: center;
    }
    .v2-btn {
      display: inline-block;
      padding: 14px 26px;
      border-radius: 12px;
      font-size: 15px;
      font-weight: 500;
      text-decoration: none;
      transition: transform 0.15s, background 0.15s;
    }
    .v2-btn-primary {
      background: #fff;
      color: var(--text);
    }
    .v2-btn-primary:hover {
      background: #5eead4;
      transform: translateY(-1px);
    }
    .v2-btn-ghost {
      background: rgba(255,255,255,0.08);
      color: #fff;
      border: 1px solid rgba(255,255,255,0.18);
    }
    .v2-btn-ghost:hover {
      background: rgba(255,255,255,0.14);
    }

    /* Contact rows */
    .v2-contact-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      max-width: 720px;
      margin: 40px auto 0;
    }
    .v2-contact-row {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 18px 22px;
      border: 1px solid rgba(26,26,46,0.08);
      border-radius: 14px;
      background: var(--bg-white);
      text-decoration: none;
      color: var(--text);
      transition: border-color 0.18s, transform 0.18s;
    }
    .v2-contact-row:hover {
      border-color: rgba(99,102,241,0.35);
      transform: translateY(-2px);
    }
    .v2-contact-icon {
      width: 36px;
      height: 36px;
      border-radius: 9px;
      background: rgba(99,102,241,0.1);
      color: var(--accent);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .v2-contact-name {
      font-weight: 600;
      font-size: 14.5px;
      letter-spacing: -0.01em;
      margin-bottom: 2px;
    }
    .v2-contact-sub {
      font-size: 12.5px;
      color: var(--text-secondary);
    }

    /* Two-person contact layout */
    .v2-contact-people {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 32px;
      max-width: 1100px;
      margin: 48px auto 0;
    }
    .v2-contact-person {
      display: flex;
      flex-direction: column;
      gap: 18px;
    }
    .v2-contact-person-head {
      padding-bottom: 14px;
      border-bottom: 1px solid rgba(26,26,46,0.08);
    }
    .v2-contact-person-name {
      font-family: 'Instrument Serif', Georgia, serif;
      font-style: italic;
      font-size: 26px;
      letter-spacing: -0.01em;
      color: var(--text);
      margin-bottom: 4px;
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
    }
    .v2-ai-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-family: 'Inter', sans-serif;
      font-style: normal;
      font-size: 10.5px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 3px 8px;
      border-radius: 999px;
      background: linear-gradient(135deg, rgba(99,102,241,0.12), rgba(94,234,212,0.16));
      color: var(--accent);
      border: 1px solid rgba(99,102,241,0.25);
      cursor: help;
    }
    .v2-ai-badge::before {
      content: "";
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 3px rgba(99,102,241,0.18);
    }
    .v2-contact-person-role {
      font-size: 13px;
      color: var(--text-secondary);
      letter-spacing: 0.02em;
    }
    .v2-contact-person .v2-contact-grid {
      grid-template-columns: 1fr;
      max-width: none;
      margin: 0;
      gap: 10px;
    }

    /* Section divider line */
    .v2-divider {
      max-width: 1100px;
      height: 1px;
      background: rgba(26,26,46,0.08);
      margin: 0 auto;
    }

    /* ===== Footer (v2 — editorial 4-col) ===== */
    .v2-footer {
      background: var(--bg);
      border-top: 1px solid rgba(26,26,46,0.08);
      padding: 72px 0 28px;
    }
    .v2-footer-grid {
      max-width: 1240px;
      margin: 0 auto;
      padding: 0 28px;
      display: grid;
      grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
      gap: 48px;
      align-items: start;
    }
    .v2-footer-brand {
      display: flex;
      flex-direction: column;
      gap: 14px;
      max-width: 280px;
    }
    .v2-footer-brand-row {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
      color: var(--text);
      font-weight: 600;
      letter-spacing: -0.01em;
      font-size: 17px;
    }
    .v2-footer-brand-row img {
      width: 22px;
      height: 22px;
    }
    .v2-footer-brand p {
      font-size: 13.5px;
      line-height: 1.55;
      color: var(--text-secondary);
      margin: 0;
    }
    .v2-footer-col h5 {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin: 0 0 16px;
    }
    .v2-footer-col ul {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .v2-footer-col a {
      font-size: 14px;
      color: var(--text-secondary);
      text-decoration: none;
      transition: color 0.15s;
    }
    .v2-footer-col a:hover { color: var(--accent); }

    .v2-footer-bottom {
      max-width: 1200px;
      margin: 56px auto 0;
      padding: 22px 28px 0;
      border-top: 1px solid rgba(26,26,46,0.08);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      flex-wrap: wrap;
      font-size: 12.5px;
      color: var(--text-muted);
    }
    .v2-footer-bottom-links {
      display: flex;
      gap: 22px;
      flex-wrap: wrap;
    }
    .v2-footer-bottom-links a {
      color: var(--text-muted);
      text-decoration: none;
      transition: color 0.15s;
    }
    .v2-footer-bottom-links a:hover { color: var(--text); }

    @media (max-width: 900px) {
      .v2-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
      }
      .v2-footer-brand { grid-column: 1 / -1; max-width: none; }
    }
    @media (max-width: 560px) {
      .v2-footer-grid { grid-template-columns: 1fr; }
      .v2-footer-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
    }

    @media (max-width: 900px) {
      .v2-section { padding: 64px 0; }
      .v2-steps,
      .v2-features { grid-template-columns: 1fr; gap: 16px; }
      .v2-features { grid-template-columns: repeat(2, 1fr); }
      .v2-stats { grid-template-columns: repeat(2, 1fr); gap: 24px; }
      .v2-dev-split { grid-template-columns: 1fr; gap: 32px; }
      .v2-pricing-grid,
      body.audience-merchant .v2-pricing-grid { grid-template-columns: 1fr; }
      .v2-cta-card { padding: 48px 28px; }
      .v2-contact-grid { grid-template-columns: 1fr; }
      .v2-contact-people { grid-template-columns: 1fr; gap: 40px; max-width: 540px; }
      .v2-contact-person-name { font-size: 22px; }
    }
    @media (max-width: 560px) {
      .v2-features { grid-template-columns: 1fr; }
      .v2-stats { grid-template-columns: 1fr 1fr; gap: 18px; }
    }
  </style>
</head>
<body>
  <!-- Navigation -->
  <nav>
    <div class="container">
      <a href="/" class="logo">
        <div class="logo-box">
          <img src="/assets/asterpay-icon.png" alt="AsterPay Logo">
        </div>
        <span>AsterPay</span>
      </a>
      <div class="nav-links">
        <a href="#product">Product</a>
        <a href="/docs/">Docs</a>
        <a href="/learn/">Learn</a>
        <a href="/ecosystem/">Ecosystem</a>
      </div>
      <a href="https://app.asterpay.io" class="nav-login desktop-only">Log in</a>
      <a href="https://asterpay-dashboard.pages.dev/signup" target="_blank" rel="noopener" class="btn btn-primary desktop-only">Create Free Account</a>
      <div class="hamburger" id="hamburger" onclick="toggleMobileMenu()">
        <span></span>
        <span></span>
        <span></span>
      </div>
    </div>
  </nav>

  <!-- Mobile Menu -->
  <div class="mobile-menu" id="mobileMenu">
    <a href="#product" onclick="closeMobileMenu()">Product</a>
    <a href="/docs/" onclick="closeMobileMenu()">Docs</a>
    <a href="/learn/" onclick="closeMobileMenu()">Learn</a>
    <a href="/ecosystem/" onclick="closeMobileMenu()">Ecosystem</a>
    <a href="https://app.asterpay.io" onclick="closeMobileMenu()">Log in</a>
    <a href="https://asterpay-dashboard.pages.dev/signup" target="_blank" rel="noopener" class="btn btn-primary" onclick="closeMobileMenu()">Create Free Account</a>
  </div>

  <!-- Hero -->
  <section class="hero">
    <!-- Wave Background -->
    <div class="wave-container">
      <div class="wave wave-1"></div>
      <div class="wave wave-2"></div>
      <div class="wave wave-3"></div>
    </div>
    <div class="mesh-lines">
      <div class="mesh-line"></div>
      <div class="mesh-line"></div>
      <div class="mesh-line"></div>
      <div class="mesh-line"></div>
      <div class="mesh-line"></div>
      <div class="mesh-line"></div>
      <div class="mesh-line"></div>
    </div>

    <div class="hero-stacked fade-up">
      <div class="hero-trust-row" role="list" aria-label="Trust signals">
        <span class="hero-trust-pill" role="listitem">
          <span class="hero-trust-dot" aria-hidden="true"></span>
          Live on Base &amp; Ethereum
        </span>
        <span class="hero-trust-pill" role="listitem">MiCA-aligned</span>
        <span class="hero-trust-pill" role="listitem">SEPA Instant</span>
        <span class="hero-trust-pill hero-trust-pill-accent" role="listitem">
          <span class="hero-trust-dot" aria-hidden="true"></span>
          KYB approved in &lt;24h
        </span>
      </div>

      <h1>
        AI agents pay in stablecoins.<br>
        You get <span class="highlight">EUR</span>.
      </h1>

      <p class="hero-subline hero-subline-merchant">Get EUR in your IBAN via SEPA Instant.</p>

      <div class="hero-cta-row" role="group" aria-label="Primary actions">
        <a href="https://cal.eu/asterpay" target="_blank" rel="noopener" class="hero-cta hero-cta-primary">
          Book a demo
          <span class="hero-cta-arrow" aria-hidden="true">→</span>
        </a>
        <a href="https://app.asterpay.io" class="hero-cta hero-cta-secondary">
          Log in
        </a>
      </div>
    </div>
  </section>

  <!-- Hero dashboard mockup — full-width section under the hero -->
  <section class="hero-mockup-section" aria-label="Dashboard preview">
    <div class="hero-mockup-inner">
      <!-- Hero Dashboard Mockup — animated, same palette as app.asterpay.io -->
      <div class="hero-dashboard-wrap" aria-label="AsterPay dashboard preview">
        <div class="hd-frame fade-up">
          <div class="hd-toolbar">
            <span class="hd-dot hd-dot-r"></span>
            <span class="hd-dot hd-dot-y"></span>
            <span class="hd-dot hd-dot-g"></span>
            <div class="hd-url">
              <span class="hd-lock">🔒</span> app.asterpay.io
            </div>
            <div class="hd-live"><span class="hd-pulse"></span>LIVE</div>
          </div>
          <div class="hd-body">
            <aside class="hd-sidebar">
              <div class="hd-logo">
                <span class="hd-logo-text">AsterPay</span>
              </div>
              <div class="hd-nav">
                <span class="hd-nav-item is-active">Home</span>
                <span class="hd-nav-item">Treasury Agent</span>
                <span class="hd-nav-item">Transactions</span>
                <span class="hd-nav-item">API Keys</span>
                <span class="hd-nav-item">Usage</span>
                <span class="hd-nav-item">Settings</span>
              </div>
            </aside>
            <main class="hd-main">
              <div class="hd-greet">Good morning, Alex</div>
              <div class="hd-stats">
                <div class="hd-stat">
                  <div class="hd-stat-value" id="hdSpend">€12 408,21</div>
                  <div class="hd-stat-label">Total settled</div>
                </div>
                <div class="hd-stat">
                  <div class="hd-stat-value" id="hdReqs">4 127</div>
                  <div class="hd-stat-label">API requests</div>
                </div>
                <div class="hd-stat">
                  <div class="hd-stat-value">12</div>
                  <div class="hd-stat-label">Active agents</div>
                </div>
                <div class="hd-stat">
                  <div class="hd-stat-value hd-stat-text">
                    <span class="hd-status-pulse"></span>Approved
                  </div>
                  <div class="hd-stat-label">KYB status</div>
                </div>
              </div>

              <div class="hd-row hd-row-2col">
                <div class="hd-card hd-chart">
                  <div class="hd-card-title">API Usage</div>
                  <div class="hd-bars">
                    <div class="hd-bar" style="--h:42%"></div>
                    <div class="hd-bar" style="--h:58%"><span class="hd-bar-label">May 5</span></div>
                    <div class="hd-bar" style="--h:36%"></div>
                    <div class="hd-bar" style="--h:62%"></div>
                    <div class="hd-bar hd-bar-peak" style="--h:88%"><span class="hd-bar-label">May 6</span></div>
                    <div class="hd-bar" style="--h:74%"></div>
                    <div class="hd-bar" style="--h:55%"></div>
                    <div class="hd-bar" style="--h:48%"><span class="hd-bar-label">May 7</span></div>
                    <div class="hd-bar" style="--h:64%"></div>
                  </div>
                </div>

                <div class="hd-card hd-treasury">
                  <div class="hd-card-title">Treasury Agent</div>
                  <div class="hd-tre-balance">
                    <span class="hd-tre-bal-amt" id="hdTreBal">€48 217,90</span>
                    <span class="hd-tre-bal-label">EUR balance</span>
                  </div>
                  <ul class="hd-tre-rows">
                    <li>
                      <span class="hd-tre-key">Active mandates</span>
                      <span class="hd-tre-val">7</span>
                    </li>
                    <li>
                      <span class="hd-tre-key">Last SEPA payout</span>
                      <span class="hd-tre-val">€1 247,50 · 4 min ago</span>
                    </li>
                    <li>
                      <span class="hd-tre-key">Next auto-payout</span>
                      <span class="hd-tre-val">in 12 min</span>
                    </li>
                  </ul>
                </div>
              </div>

              <div class="hd-card hd-activity hd-activity-full">
                <div class="hd-card-title">Recent activity</div>
                <ul class="hd-act-list" id="hdActList"></ul>
              </div>
            </main>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- Agent-Readiness Widget — own section under the hero/mockup -->
  <section class="ar-section" aria-label="Agent-readiness check">
    <div class="ar-section-inner">
      <p class="ar-section-eyebrow">Quick check</p>
      <h2 class="ar-section-title">Are AI agents finding you?</h2>
      <p class="ar-section-sub">Drop your domain. We check homepage and a couple of <code>/.well-known/</code> paths. Nothing stored.</p>

      <div class="ar-widget" id="arWidget">
        <form class="ar-form" id="arForm" autocomplete="off">
          <input
            type="text"
            id="arInput"
            class="ar-input"
            placeholder="yourbrand.com"
            spellcheck="false"
            autocapitalize="off"
            inputmode="url"
            aria-label="Your website URL"
          />
          <button type="submit" class="ar-btn" id="arBtn">
            Check now →
          </button>
        </form>
        <div class="ar-result" id="arResult" aria-live="polite" hidden></div>
        <button type="button" class="ar-howscore-link" id="arHowScoreOpen" aria-haspopup="dialog" hidden>How we score</button>
      </div>
    </div>
  </section>

  <!-- Audience Toggle -->
  <section class="audience-toggle-wrap" aria-label="Choose your view">
    <p class="audience-eyebrow">Who are you?</p>
    <div class="audience-toggle" role="tablist" aria-label="Audience">
      <button role="tab" aria-selected="true"  data-audience="merchant"  class="audience-tab is-active">
        <span class="audience-tab-title">I'm a merchant</span>
        <span class="audience-tab-sub">Get paid in EUR.</span>
      </button>
      <button role="tab" aria-selected="false" data-audience="developer" class="audience-tab">
        <span class="audience-tab-title">I'm a developer</span>
        <span class="audience-tab-sub">Build with x402, MPP, MCP and SDKs.</span>
      </button>
    </div>
    <p class="audience-hint" id="audienceHint">
      Showing trust, EUR settlement and onboarding · <a href="?view=developer" data-audience-switch="developer">switch to developer view</a>
    </p>
  </section>

  <!-- Trust Strip — minimalist horizontal row of 6 (dark) -->
  <section class="trust-strip-min" data-audience="all" aria-label="Infrastructure and protocols">
    <div class="trust-min-eyebrow">Built on open standards. No vendor lock-in.</div>
    <div class="trust-min-row">
      <a href="https://x402.org" target="_blank" class="trust-min-item">x402</a>
      <a href="https://www.ecb.europa.eu/paym/integration/retail/instant_payments/html/index.en.html" target="_blank" class="trust-min-item">SEPA Instant</a>
      <a href="https://partners.circle.com/partner/asterpay" target="_blank" class="trust-min-item" title="AsterPay on Circle Partner Directory">Circle Alliance</a>
      <a href="https://base.org" target="_blank" class="trust-min-item">Base</a>
      <a href="https://eips.ethereum.org/EIPS/eip-8004" target="_blank" class="trust-min-item trust-min-italic">ERC-8004</a>
      <a href="https://www.coinbase.com/developer-platform" target="_blank" class="trust-min-item">Coinbase CDP</a>
    </div>

    <div class="trust-bottom" data-audience="developer" style="margin-top: 28px;">
      <a href="https://basescan.org/nft/0x8004A169FB4a3325136EB29fA0ceB6D2e539a432/16850" target="_blank" class="trust-bottom-item" title="Position #16850 in the public ERC-8004 registry on Base mainnet — early adopter status."><span class="trust-dot"></span>ERC-8004 Agent #16850 (registry position)</a>
      <a href="https://pypi.org/project/asterpay/" target="_blank" class="trust-bottom-item"><span class="trust-dot"></span>pip install asterpay</a>
      <a href="https://www.npmjs.com/package/@asterpay/mcp-server" target="_blank" class="trust-bottom-item"><span class="trust-dot"></span>MCP Server on npm</a>
    </div>
  </section>

  <!-- Quick Install -->
  <section data-audience="developer" style="padding: 64px 24px; background: linear-gradient(180deg, #0b1120 0%, #0a0f1d 100%); border-top: 1px solid rgba(255,255,255,0.04); position: relative;">
    <div style="max-width: 760px; margin: 0 auto; text-align: center; position: relative; z-index: 1;">
      <div style="font-size: 13px; color: rgba(99,102,241,0.85); margin-bottom: 14px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;">For Developers</div>
      <h2 style="font-size: 28px; font-weight: 800; color: #fff; margin-bottom: 10px; letter-spacing: -0.5px;">Install in any agent. One line.</h2>
      <p style="font-size: 15px; color: var(--text-secondary); margin-bottom: 28px; max-width: 560px; margin-left: auto; margin-right: auto;">Paste this prompt into your agent. AsterPay's full toolkit (KYA + payment discovery + EUR settlement) is wired in seconds. No SDK, no API key.</p>

      <div class="install-box">
        <div class="install-prompt">
          <span class="install-prefix">&gt;</span>
          <code id="install-cmd">Set up https://asterpay.io/SKILL.md</code>
        </div>
        <button class="install-copy" onclick="(function(btn){const t=document.getElementById('install-cmd').textContent;navigator.clipboard.writeText(t);const o=btn.innerHTML;btn.innerHTML='Copied';btn.classList.add('copied');setTimeout(()=>{btn.innerHTML=o;btn.classList.remove('copied');},1600);})(this)">
          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
          Copy
        </button>
      </div>

      <div class="install-compat">
        <span class="install-compat-label">Compatible with</span>
        <span class="install-compat-chip">x402</span>
        <span class="install-compat-chip">MPP</span>
        <span class="install-compat-chip">AP2</span>
        <span class="install-compat-chip">ERC-8004</span>
        <span class="install-compat-chip">MCP</span>
      </div>

      <div style="margin-top: 24px;">
        <a href="https://asterpay.io/SKILL.md" target="_blank" style="font-size: 14px; color: var(--accent); text-decoration: none; font-weight: 600;">See full install guide &rarr;</a>
      </div>
    </div>
    <style>
      .install-box {
        display: flex;
        align-items: stretch;
        max-width: 580px;
        margin: 0 auto;
        background: rgba(15, 23, 42, 0.85);
        border: 1px solid rgba(99,102,241,0.25);
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 12px 40px rgba(0,0,0,0.4), 0 0 0 1px rgba(99,102,241,0.05) inset;
      }
      .install-prompt {
        flex: 1;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 18px;
        text-align: left;
        font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
        font-size: 14px;
        color: #e6eaff;
        overflow-x: auto;
        white-space: nowrap;
      }
      .install-prefix {
        color: rgba(99,102,241,0.7);
        font-weight: 700;
        flex-shrink: 0;
      }
      .install-prompt code {
        font-family: inherit;
        background: none;
        padding: 0;
        color: #fff;
      }
      .install-copy {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 0 18px;
        border: none;
        border-left: 1px solid rgba(255,255,255,0.08);
        background: rgba(99,102,241,0.12);
        color: #fff;
        font-size: 13px;
        font-weight: 600;
        cursor: pointer;
        transition: background 0.18s;
        white-space: nowrap;
      }
      .install-copy:hover { background: rgba(99,102,241,0.22); }
      .install-copy.copied { background: rgba(34,197,94,0.25); color: #d1fadf; }
      .install-compat {
        margin-top: 22px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 8px;
      }
      .install-compat-label {
        font-size: 12px;
        color: rgba(255,255,255,0.4);
        text-transform: uppercase;
        letter-spacing: 1.5px;
        margin-right: 4px;
        font-weight: 600;
      }
      .install-compat-chip {
        font-size: 12px;
        font-weight: 600;
        color: rgba(255,255,255,0.75);
        padding: 4px 10px;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,0.1);
        background: rgba(255,255,255,0.03);
        letter-spacing: 0.3px;
      }
      @media (max-width: 520px) {
        .install-prompt { font-size: 12px; padding: 14px; }
        .install-copy { padding: 0 12px; font-size: 12px; }
      }
    </style>
  </section>

  <!-- Open Standards Strip -->
  <section data-audience="developer" style="padding: 56px 24px; background: #0b1120; border-top: 1px solid rgba(255,255,255,0.04); position: relative;">
    <div style="max-width: 980px; margin: 0 auto; text-align: center; position: relative; z-index: 1;">
      <div style="font-size: 13px; color: rgba(255,255,255,0.3); margin-bottom: 14px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;">Open Standards</div>
      <h2 style="font-size: 28px; font-weight: 800; color: #fff; margin-bottom: 10px; letter-spacing: -0.5px;">Every layer of the stack is an open standard.</h2>
      <p style="font-size: 15px; color: var(--text-secondary); margin-bottom: 32px; max-width: 640px; margin-left: auto; margin-right: auto;">No vendor lock-in. Swap any component, keep the rest. Built for an interoperable agent economy.</p>
      <div style="display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;">
        <a href="https://x402.org" target="_blank" class="std-chip"><span class="std-chip-name">x402</span><span class="std-chip-desc">Coinbase</span></a>
        <a href="https://mpp.dev" target="_blank" class="std-chip"><span class="std-chip-name">MPP</span><span class="std-chip-desc">Stripe / Tempo</span></a>
        <a href="https://google-agentic-commerce.github.io/AP2/" target="_blank" class="std-chip"><span class="std-chip-name">AP2</span><span class="std-chip-desc">Google</span></a>
        <a href="https://eips.ethereum.org/EIPS/eip-8004" target="_blank" class="std-chip"><span class="std-chip-name">ERC-8004</span><span class="std-chip-desc">Agent Identity</span></a>
        <a href="https://eips.ethereum.org/EIPS/eip-8183" target="_blank" class="std-chip"><span class="std-chip-name">ERC-8183</span><span class="std-chip-desc">Agentic Jobs</span></a>
        <a href="https://www.invoica.ai/" target="_blank" class="std-chip std-chip-new"><span class="std-chip-name">PACT</span><span class="std-chip-desc">via Invoica</span></a>
        <a href="https://eips.ethereum.org/EIPS/eip-3009" target="_blank" class="std-chip"><span class="std-chip-name">EIP-3009</span><span class="std-chip-desc">transferWithAuthorization</span></a>
        <a href="https://eur-lex.europa.eu/eli/reg/2023/1114/oj" target="_blank" class="std-chip"><span class="std-chip-name">MiCA</span><span class="std-chip-desc">EU Regulation</span></a>
      </div>
    </div>
    <style>
      .std-chip {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 9px 14px;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,0.1);
        background: rgba(255,255,255,0.03);
        text-decoration: none;
        transition: all 0.2s;
        font-size: 13px;
        white-space: nowrap;
      }
      .std-chip:hover {
        border-color: rgba(99,102,241,0.5);
        background: rgba(99,102,241,0.08);
        transform: translateY(-1px);
      }
      .std-chip-name {
        color: #fff;
        font-weight: 700;
      }
      .std-chip-desc {
        color: rgba(255,255,255,0.5);
        font-weight: 400;
      }
      .std-chip-new {
        border-color: rgba(99,102,241,0.4);
        background: rgba(99,102,241,0.06);
        position: relative;
      }
      .std-chip-new::after {
        content: 'NEW';
        position: absolute;
        top: -8px;
        right: -6px;
        background: var(--accent);
        color: #fff;
        font-size: 9px;
        font-weight: 800;
        letter-spacing: 0.5px;
        padding: 2px 5px;
        border-radius: 4px;
      }
    </style>
  </section>

  <!-- ============================================================
       v2 Editorial layout — sectionit hero/audience/trust-stripin jälkeen
       ============================================================ -->

  <!-- ===== How it works ===== -->
  <section class="v2-section" id="product">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">How it works</span>
        <h2 class="v2-h2">A single API. <em>Three rails.</em></h2>
        <p class="v2-lede">Your customers' AI assistants pay in stablecoins. You receive EUR in your bank, usually within 10 seconds. AsterPay handles trust, conversion, compliance and reconciliation &mdash; you never touch crypto.</p>
      </div>

      <div class="v2-steps">
        <div class="v2-step">
          <span class="v2-step-num">01</span>
          <h3>An AI agent reaches your endpoint</h3>
          <p>A customer's AI assistant (any x402- or MPP-compatible agent) calls your booking, ordering or pricing endpoint. AsterPay verifies the agent (KYA), screens it for sanctions in &lt;100ms, and locks a USDC-in / EUR-out quote.</p>
        </div>
        <div class="v2-step">
          <span class="v2-step-num">02</span>
          <h3>On-chain receipt</h3>
          <p>The agent's wallet (held by the customer's platform, not by you) settles USDC on Base or Ethereum (Polygon, Arbitrum &amp; Optimism by Q3 2026). Our facilitator verifies it, deducts the fee and triggers the off-chain leg instantly.</p>
        </div>
        <div class="v2-step">
          <span class="v2-step-num">03</span>
          <h3>EUR in your bank account</h3>
          <p>SEPA Instant delivers EUR to your IBAN in under 10 seconds &mdash; 24/7, weekends and holidays included. GBP (Faster Payments) &amp; USD (ACH) on the roadmap for Q4&nbsp;2026. Full audit trail for accounting and compliance.</p>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Four layers (merchant-facing trust) ===== -->
  <section class="v2-section" data-audience="merchant" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">Agent trust framework</span>
        <h2 class="v2-h2">Four layers between an agent <em>and your bank account.</em></h2>
        <p class="v2-lede">Every payment passes through four verification layers before settlement. No shortcuts, no &ldquo;we&rsquo;ll add compliance later&rdquo;. Built in from day one.</p>
      </div>

      <div class="v2-features">
        <div class="v2-feature">
          <div class="v2-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg></div>
          <h4>1. Identify</h4>
          <p>ERC-8004 on-chain agent identity plus wallet-ownership signature. Trust Score 0&ndash;100 unlocks higher per-transaction limits. No anonymous payments above $1.</p>
        </div>
        <div class="v2-feature">
          <div class="v2-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg></div>
          <h4>2. Screen</h4>
          <p>Sanctions and AML screening via an enterprise provider, sub-second verdict on every transaction. Source-of-funds check on Verified tier and up.</p>
        </div>
        <div class="v2-feature">
          <div class="v2-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M2 10h20"/></svg></div>
          <h4>3. Settle</h4>
          <p>USDC / EURC &rarr; EUR via SEPA Instant. Median settlement &lt;10s. Escrow available for low-trust agents. Beneficiary IBAN auto-discovered (MPE) and verified by PSD2 VoP.</p>
        </div>
        <div class="v2-feature">
          <div class="v2-feature-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><path d="M9 15l2 2 4-4"/></svg></div>
          <h4>4. Comply</h4>
          <p>EU-native via licensed European payment partners. AsterPay operates as a technical service provider behind partner authorizations. EU AI Act (Article 50) transparency built in. Travel Rule activates at &gt;&euro;1,000. Cyprus entity, audit-ready from day one.</p>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Agent Access Tiers ===== -->
  <section class="v2-section" id="tiers" data-audience="all" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">Agent Access Tiers</span>
        <h2 class="v2-h2">Trust score unlocks <em>transaction limits.</em></h2>
        <p class="v2-lede">Think of it as a credit score for AI agents. More verification = higher limits. Every agent starts in <strong>Open</strong> and earns its way up.</p>
      </div>

      <div class="v2-table-wrap">
        <table class="comparison-table" style="font-size: 13.5px; width: 100%;">
          <colgroup>
            <col style="width: 22%;">
            <col style="width: 18%;">
            <col style="width: 20%;">
            <col style="width: 20%;">
            <col style="width: 20%;">
          </colgroup>
          <thead>
            <tr>
              <th></th>
              <th>Open</th>
              <th>Verified</th>
              <th>Trusted</th>
              <th class="highlight">Enterprise</th>
            </tr>
          </thead>
          <tbody>
            <tr><td><strong>Trust Score</strong></td><td>0&ndash;20</td><td>20&ndash;50</td><td>50&ndash;80</td><td class="highlight">80&ndash;100</td></tr>
            <tr><td><strong>Max per call</strong></td><td>$1</td><td>$100</td><td>$2,500</td><td class="highlight">Negotiated</td></tr>
            <tr><td><strong>Monthly cap</strong></td><td>$50</td><td>$5,000</td><td>$100,000</td><td class="highlight">Negotiated</td></tr>
            <tr><td><strong>Identity</strong></td><td>Wallet sig</td><td>+ ERC-8004</td><td>+ Operator KYB</td><td class="highlight">+ Full enterprise KYB</td></tr>
            <tr><td><strong>Settlement</strong></td><td>USDC only</td><td>EUR available</td><td>EUR default</td><td class="highlight">EUR + GBP + USD</td></tr>
            <tr><td><strong>Live</strong></td><td><span class="check">&#10003;</span></td><td><span class="check">&#10003;</span></td><td><span class="check">&#10003;</span></td><td class="highlight"><span class="limited">Q3 2026</span></td></tr>
          </tbody>
        </table>
      </div>
    </div>
  </section>

  <!-- ===== Live in production (proof) — developer-only, this is technical proof not merchant proof ===== -->
  <section class="v2-section" data-audience="developer" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">Live in production</span>
        <h2 class="v2-h2">Early stage? Yes. <em>Operating in production?</em> Also yes.</h2>
        <p class="v2-lede">A short list of things you can verify yourself, right now.</p>
      </div>

      <div class="proof-grid">
        <a href="https://x402.org/ecosystem" target="_blank" class="proof-item">
          <div class="proof-icon">&#10003;</div>
          <div class="proof-body">
            <div class="proof-name">Listed on x402.org/ecosystem</div>
            <div class="proof-sub">Approved 11 February 2026 as an active facilitator</div>
          </div>
        </a>
        <a href="https://basescan.org/nft/0x8004A169FB4a3325136EB29fA0ceB6D2e539a432/16850" target="_blank" class="proof-item">
          <div class="proof-icon">&#10003;</div>
          <div class="proof-body">
            <div class="proof-name">ERC-8004 Agent #16850</div>
            <div class="proof-sub">Position #16850 in the public registry on Base mainnet</div>
          </div>
        </a>
        <a href="https://www.npmjs.com/package/@asterpay/mcp-server" target="_blank" class="proof-item">
          <div class="proof-icon">&#10003;</div>
          <div class="proof-body">
            <div class="proof-name">@asterpay/mcp-server on npm</div>
            <div class="proof-sub">18 tools shipping &middot; published &amp; updated</div>
          </div>
        </a>
        <a href="https://pypi.org/project/asterpay/" target="_blank" class="proof-item">
          <div class="proof-icon">&#10003;</div>
          <div class="proof-body">
            <div class="proof-name">pip install asterpay</div>
            <div class="proof-sub">Python SDK live on PyPI</div>
          </div>
        </a>
        <a href="https://x402.asterpay.io/health" target="_blank" class="proof-item">
          <div class="proof-icon">&#10003;</div>
          <div class="proof-body">
            <div class="proof-name">x402.asterpay.io facilitator</div>
            <div class="proof-sub">Public endpoint &middot; serving live x402 / MPP traffic</div>
          </div>
        </a>
        <a href="#contact" class="proof-item proof-cta">
          <div class="proof-icon" style="color: var(--accent);">&rarr;</div>
          <div class="proof-body">
            <div class="proof-name">Want production numbers under NDA?</div>
            <div class="proof-sub">Email the founder &mdash; happy to share volume + revenue</div>
          </div>
        </a>
      </div>
    </div>
  </section>

  <!-- ===== The numbers ===== -->
  <section class="v2-section" data-audience="all" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">The numbers</span>
        <h2 class="v2-h2">Built for the scale <em>that&rsquo;s coming.</em></h2>
        <p class="v2-lede">McKinsey forecasts agentic commerce at <strong>$3&ndash;5T by 2030</strong>. Every transaction needs a settlement layer &mdash; AsterPay is the one built for euros.</p>
      </div>
      <div class="v2-stats">
        <div>
          <div class="v2-stat-num">&lt;10s</div>
          <div class="v2-stat-label">Median end-to-end settlement, stablecoin to IBAN</div>
        </div>
        <div>
          <div class="v2-stat-num">0.5%</div>
          <div class="v2-stat-label">EU-rail settlement fee &mdash; no FX markup, no spread games (US rail: 1.5%)</div>
        </div>
        <div>
          <div class="v2-stat-num">36</div>
          <div class="v2-stat-label">SEPA-participating countries covered</div>
        </div>
        <div>
          <div class="v2-stat-num">24/7</div>
          <div class="v2-stat-label">No cut-off times, no banking holidays, no delays</div>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Pricing ===== -->
  <section class="v2-section" id="pricing">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">Simple pricing</span>
        <h2 class="v2-h2">Two sides of every <em>payment.</em></h2>
        <p class="v2-lede">What the agent pays in stablecoins, and what you receive in EUR. No subscription, no setup fee, no hidden FX.</p>
      </div>

      <div class="v2-pricing-grid">
        <div class="v2-price-card featured">
          <div class="v2-price-eyebrow">For merchants &mdash; EU rail (default)</div>
          <div class="v2-price-name">You receive &mdash; EUR</div>
          <div class="v2-price-desc">EU-incorporated merchants &middot; settled to your IBAN via SEPA Instant</div>
          <div class="v2-price-amount">0.5% + &euro;0.10 <span>per settled txn</span></div>
          <div class="v2-price-note">No setup fee &middot; no monthly fee &middot; &lt;10s SEPA Instant</div>
          <ul class="v2-price-list">
            <li>EUR delivered to your bank &mdash; you never touch crypto</li>
            <li>USDC, EURC and EURCV converted on our side</li>
            <li>KYB onboarding (~10 min) before live mode</li>
            <li>Volume discounts start at &euro;50k / month</li>
            <li><strong>US-incorporated?</strong> See US rail card &rarr; (1.5% + &euro;1.00, routed via US-licensed banking partner)</li>
          </ul>
          <a href="https://asterpay-dashboard.pages.dev/signup" class="v2-price-cta">Start KYB &rarr;</a>
        </div>

        <div class="v2-price-card">
          <div class="v2-price-eyebrow">For merchants &mdash; US rail</div>
          <div class="v2-price-name">You receive &mdash; EUR</div>
          <div class="v2-price-desc">US-incorporated merchants &middot; routed via US-licensed banking partner</div>
          <div class="v2-price-amount">1.5% + &euro;1.00 <span>per settled txn</span></div>
          <div class="v2-price-note">Higher per-transaction infrastructure cost &middot; same EUR delivery</div>
          <ul class="v2-price-list">
            <li>EUR delivered to your IBAN, typically within minutes</li>
            <li>Includes USDC&rarr;EUR conversion + SEPA passthrough</li>
            <li>For US-incorporated entities (Delaware C-corp, LLC, etc.)</li>
            <li>No surprise FX markup &mdash; rate locked at quote time</li>
            <li>EU-incorporated? Use the EU rail (0.5% + &euro;0.10) instead</li>
          </ul>
          <a href="mailto:samantha@asterpay.io?subject=US%20rail%20onboarding" class="v2-price-cta outline">Contact for US onboarding &rarr;</a>
        </div>

        <div class="v2-price-card" data-audience="developer">
          <div class="v2-price-eyebrow">For developers &amp; agents</div>
          <div class="v2-price-name">Agents pay &mdash; USDC</div>
          <div class="v2-price-desc">API access via x402 or MPP</div>
          <div class="v2-price-amount">$0.01 <span>USDC per call</span></div>
          <div class="v2-price-note">No signup, no key, no monthly minimum</div>
          <ul class="v2-price-list">
            <li>Dual protocol: x402 (Coinbase) and MPP (Stripe / Tempo)</li>
            <li>Sandbox free (1,000 calls / day)</li>
            <li>Session packs: 50 / 250 / 1000 calls</li>
            <li>Live: Base + Ethereum &middot; Q3 2026: Polygon, Arbitrum, Optimism</li>
          </ul>
          <a href="/docs" class="v2-price-cta outline">Try in 60 seconds &rarr;</a>
        </div>

        <div class="v2-price-card">
          <div class="v2-price-eyebrow">Enterprise &amp; platforms</div>
          <div class="v2-price-name">Negotiated</div>
          <div class="v2-price-desc">For &gt;&euro;500k / month, white-label or multi-tenant</div>
          <div class="v2-price-amount">Custom <span>pricing</span></div>
          <div class="v2-price-note">NDA &amp; technical review &middot; pilot &rarr; production</div>
          <ul class="v2-price-list">
            <li>SLA &amp; dedicated support</li>
            <li>Custom trust policy &amp; co-branded agent identity</li>
            <li>Multi-region uptime guarantees</li>
            <li>Direct line to compliance &amp; engineering</li>
          </ul>
          <a href="#contact" class="v2-price-cta outline">Contact sales</a>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Why AsterPay (comparison) ===== -->
  <section class="v2-section" id="comparison" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">How we compare</span>
        <h2 class="v2-h2">Same EUR rail. <em>Built for agents</em> instead of forms.</h2>
        <p class="v2-lede">We&rsquo;re not trying to replace Stripe for your SaaS checkout. We&rsquo;re the rail for when your customers become AI agents. <a href="/compare/" style="color: var(--accent); text-decoration: underline;">Read the long version &rarr;</a></p>
      </div>

      <div class="v2-table-wrap">
        <table class="comparison-table comparison-table-compact" style="font-size: 13px; width: 100%; table-layout: fixed;">
          <colgroup>
            <col style="width: 24%;">
            <col style="width: 13%;">
            <col style="width: 12%;">
            <col style="width: 12%;">
            <col style="width: 13%;">
            <col style="width: 26%;">
          </colgroup>
          <thead>
            <tr>
              <th></th>
              <th>Stripe</th>
              <th>Wise</th>
              <th>BVNK</th>
              <th>Raw x402</th>
              <th class="highlight">AsterPay</th>
            </tr>
          </thead>
          <tbody>
            <tr><td><strong>Best for</strong></td><td>Human checkouts</td><td>Cross-border FX</td><td>Stablecoin B2B</td><td>Crypto-native builds</td><td class="highlight">Agent &rarr; merchant EUR</td></tr>
            <tr><td><strong>Agent-native protocol</strong></td><td><span class="check">&#10003;</span> MPP<sup>1</sup></td><td><span class="cross">&times;</span></td><td><span class="cross">&times;</span></td><td><span class="check">&#10003;</span> x402</td><td class="highlight"><span class="check">&#10003;</span> x402 + MPP<sup>2</sup></td></tr>
            <tr><td><strong>Per-call micropayments</strong></td><td><span class="limited">per-txn</span></td><td><span class="cross">&times;</span></td><td><span class="cross">&times;</span></td><td><span class="check">&#10003;</span></td><td class="highlight"><span class="check">&#10003;</span> $0.01+</td></tr>
            <tr><td><strong>Agent identity (KYA)</strong></td><td><span class="limited">account KYC</span></td><td><span class="limited">account KYC</span></td><td><span class="limited">account KYC</span></td><td><span class="cross">&times;</span> DIY</td><td class="highlight"><span class="check">&#10003;</span> ERC-8004 + Score</td></tr>
            <tr><td><strong>EUR settlement</strong></td><td>2&ndash;7 days</td><td>sec&ndash;hours</td><td>1&ndash;2 days</td><td>crypto only</td><td class="highlight">&lt;10s SEPA Instant</td></tr>
            <tr><td><strong>Merchant discovery by name</strong></td><td><span class="cross">&times;</span></td><td><span class="cross">&times;</span></td><td><span class="cross">&times;</span></td><td><span class="cross">&times;</span></td><td class="highlight"><span class="check">&#10003;</span> MPE + VoP</td></tr>
            <tr><td><strong>EU regulatory base</strong></td><td>Ireland</td><td>EMI (multi)</td><td>UK / MiCA</td><td>N/A</td><td class="highlight">Cyprus &middot; technical service provider</td></tr>
            <tr><td><strong>Time to first payment</strong></td><td>2&ndash;5 days</td><td>1&ndash;2 days</td><td>days</td><td>minutes</td><td class="highlight">60 seconds</td></tr>
          </tbody>
        </table>

        <p style="margin-top: 14px; font-size: 11.5px; color: var(--text-muted); line-height: 1.55;">
          <sup>1</sup> Stripe MPP launched March 2026; identity and screening remain at the merchant-account level, not per-call. &nbsp;
          <sup>2</sup> AsterPay verifies the agent on every call (per-call KYA) and screens for sanctions in &lt;100&nbsp;ms.
        </p>

        <p style="margin-top: 28px; padding: 20px 24px; background: rgba(245, 158, 11, 0.04); border-left: 3px solid var(--accent); border-radius: 6px; color: var(--text-secondary); font-size: 14.5px; line-height: 1.65; max-width: 820px; margin-left: auto; margin-right: auto;">
          <strong style="color: var(--text);">The honest summary:</strong> If you&rsquo;re selling to humans, use Stripe. If you&rsquo;re doing cross-border FX, use Wise. If you&rsquo;re selling to AI agents and want EUR in your bank &mdash; that&rsquo;s us.
        </p>

        <div style="margin-top: 32px; text-align: center;">
          <a href="/compare/" style="display: inline-flex; align-items: center; gap: 10px; padding: 14px 32px; background: var(--text); color: #fff; border-radius: 999px; font-weight: 600; text-decoration: none; font-size: 15px; transition: transform 0.15s ease;">
            Read the full comparison &rarr;
          </a>
          <p style="margin: 12px 0 0; font-size: 13px; color: var(--text-muted);">
            Side-by-side pricing, EU vs US rail breakdown, and an honest "when NOT to use AsterPay" list.
          </p>
          <p style="margin: 16px 0 0; font-size: 13px; color: var(--text-muted);">
            New &middot; <a href="/learn/" style="color: var(--accent); text-decoration: underline; font-weight: 500;">Learn hub</a>: definitive guides to <a href="/learn/what-is-x402-eur-settlement/" style="color: var(--accent); text-decoration: underline;">x402 EUR settlement</a>, <a href="/learn/what-is-x402/" style="color: var(--accent); text-decoration: underline;">x402</a>, <a href="/learn/what-is-an-x402-facilitator/" style="color: var(--accent); text-decoration: underline;">facilitators</a>, <a href="/learn/what-is-kya/" style="color: var(--accent); text-decoration: underline;">KYA</a> &amp; <a href="/learn/erc-8004-explained/" style="color: var(--accent); text-decoration: underline;">ERC-8004</a>.
          </p>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Developers — split layout ===== -->
  <section class="v2-section" id="features" data-audience="developer">
    <div class="v2-container">
      <div class="v2-dev-split">
        <div>
          <span class="v2-kicker">For developers</span>
          <h2 class="v2-h2" style="font-size: clamp(28px, 3.6vw, 40px);">Integration in <em>an afternoon.</em></h2>
          <p class="v2-lede" style="margin: 0; max-width: none;">Install the SDK, point at our facilitator, and your agent is paying in euros. No bank intro calls. No six-month underwriting cycles.</p>

          <ul class="v2-dev-list">
            <li>
              <span class="v2-dev-check">&#10003;</span>
              <div>
                <strong>SDKs for TypeScript, Python and Node</strong>
                <p>Matching surface area, matching semantics. One API to learn. <a href="https://npmjs.com/package/@asterpay/mcp-server" target="_blank" style="color: var(--accent);">@asterpay/mcp-server</a> &middot; <a href="https://pypi.org/project/asterpay/" target="_blank" style="color: var(--accent);">pip install asterpay</a></p>
              </div>
            </li>
            <li>
              <span class="v2-dev-check">&#10003;</span>
              <div>
                <strong>Drop-in x402 + MPP facilitator</strong>
                <p>HTTP 402 becomes a settled EUR payment. Self-host or point at ours.</p>
              </div>
            </li>
            <li>
              <span class="v2-dev-check">&#10003;</span>
              <div>
                <strong>Sandbox with real SEPA rails</strong>
                <p>Test with live banking infrastructure, not mock responses. Free until you go live.</p>
              </div>
            </li>
            <li>
              <span class="v2-dev-check">&#10003;</span>
              <div>
                <strong>Webhooks, signed receipts, full audit log</strong>
                <p>Everything your compliance team asks for &mdash; before they ask. ERC-8004 Agent <a href="https://basescan.org/nft/0x8004A169FB4a3325136EB29fA0ceB6D2e539a432/16850" target="_blank" style="color: var(--accent);">#16850</a> on Base mainnet.</p>
              </div>
            </li>
          </ul>
        </div>

        <div>
          <div class="v2-code-card">
            <div class="v2-code-head">
              <span class="v2-code-dot"></span><span class="v2-code-dot"></span><span class="v2-code-dot"></span>
              <span class="v2-code-name">facilitator.ts</span>
            </div>
<pre class="v2-code-body"><span class="c">// Protect any endpoint with x402 + AsterPay.</span>

<span class="k">import</span> <span class="p">{</span> <span class="f">requirePayment</span> <span class="p">}</span> <span class="k">from</span> <span class="s">"@asterpay/x402"</span><span class="p">;</span>

app<span class="p">.</span><span class="f">get</span><span class="p">(</span>
  <span class="s">"/api/premium-data"</span><span class="p">,</span>
  <span class="f">requirePayment</span><span class="p">({</span>
    price<span class="p">:</span>   <span class="s">"0.10 EUR"</span><span class="p">,</span>
    payout<span class="p">:</span>  <span class="s">"iban:DE89 3704 0044 0532 0130 00"</span><span class="p">,</span>
    network<span class="p">:</span> <span class="s">"base"</span><span class="p">,</span>
  <span class="p">}),</span>
  <span class="p">(</span>req<span class="p">,</span> res<span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
    res<span class="p">.</span><span class="f">json</span><span class="p">({</span> data<span class="p">:</span> <span class="f">getPremiumData</span><span class="p">()</span> <span class="p">});</span>
  <span class="p">}</span>
<span class="p">);</span>

<span class="c">// Agents now get <span class="g">402 Payment Required</span></span>
<span class="c">// &rarr; they pay &rarr; endpoint returns <span class="g">200</span></span>
<span class="c">// &rarr; settled in <span class="g">~9s</span> &middot; fee <span class="g">0.5%</span> (&euro;0.06)</span></pre>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== SDK quick install (developer) ===== -->
  <section class="v2-section" id="sdks" data-audience="developer" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">SDKs &amp; tools</span>
        <h2 class="v2-h2">Integrate in <em>one line.</em></h2>
        <p class="v2-lede">MCP server for Claude / Cursor, Python SDK for backends, and Attest CLI for EU AI Act compliance. Pay-per-call, no API keys.</p>
      </div>

      <div class="v2-features" style="grid-template-columns: repeat(3, 1fr);">
        <div class="v2-feature">
          <div class="v2-feature-icon">&#9889;</div>
          <h4>@asterpay/mcp-server</h4>
          <p style="margin-bottom: 12px;">Multichain EUR settlement for AI agents. Works in Claude &amp; Cursor. USDC, EURC and EURCV supported.</p>
          <code style="display: block; padding: 10px 12px; background: #0F1424; color: #5eead4; border-radius: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12.5px; margin-bottom: 10px;">npx @asterpay/mcp-server</code>
          <a href="https://npmjs.com/package/@asterpay/mcp-server" target="_blank" style="color: var(--accent); font-size: 13px; font-weight: 500;">View on npm &rarr;</a>
        </div>
        <div class="v2-feature">
          <div class="v2-feature-icon">&#128013;</div>
          <h4>asterpay (Python)</h4>
          <p style="margin-bottom: 12px;">Multichain EUR settlement for Python. Sync &amp; async, type hints, x402 error handling.</p>
          <code style="display: block; padding: 10px 12px; background: #0F1424; color: #5eead4; border-radius: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12.5px; margin-bottom: 10px;">pip install asterpay</code>
          <a href="https://pypi.org/project/asterpay/" target="_blank" style="color: var(--accent); font-size: 13px; font-weight: 500;">View on PyPI &rarr;</a>
        </div>
        <div class="v2-feature" id="attest">
          <div class="v2-feature-icon">&#128203;</div>
          <h4>Attest &mdash; EU AI Act</h4>
          <p style="margin-bottom: 12px;">EU AI Act deadline is <strong>August 2, 2026</strong>. Scans your codebase, finds every AI import, generates Annex&nbsp;IV docs. Open source.</p>
          <code style="display: block; padding: 10px 12px; background: #0F1424; color: #5eead4; border-radius: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12.5px; margin-bottom: 10px;">npx @asterpay/attest scan</code>
          <a href="https://github.com/AsterPay/attest" target="_blank" rel="noopener" style="color: var(--accent); font-size: 13px; font-weight: 500;">View on GitHub &rarr;</a>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Final CTA ===== -->
  <section class="v2-cta" id="x402">
    <div class="v2-container">
      <div class="v2-cta-card">
        <h2>Start settling in <em>seconds.</em></h2>
        <p>Join the early-access programme. No bank intro calls. No six-month underwriting cycles. Just an SDK, an API key, and your first euro on-chain.</p>
        <div class="v2-cta-buttons">
          <a href="https://asterpay-dashboard.pages.dev/signup" class="v2-btn v2-btn-primary">Start KYB &rarr;</a>
          <a href="/docs" class="v2-btn v2-btn-ghost">Read the docs</a>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== Contact ===== -->
  <section class="v2-section" id="contact" style="padding-top: 0;">
    <div class="v2-container">
      <div class="v2-head">
        <span class="v2-kicker">Founder-led sales</span>
        <h2 class="v2-h2">Talk to a <em>human.</em></h2>
        <p class="v2-lede">Every inbound is answered &mdash; first by Petteri (founder, technical &amp; strategic) directly, or by Samantha, our AI business-development agent that handles partnership intake and KYB triage.</p>
      </div>

      <div class="v2-contact-people">
        <div class="v2-contact-person">
          <div class="v2-contact-person-head">
            <div class="v2-contact-person-name">Petteri</div>
            <div class="v2-contact-person-role">Founder &middot; technical &amp; strategic</div>
          </div>
          <div class="v2-contact-grid">
            <a href="mailto:petteri@asterpay.io" class="v2-contact-row">
              <span class="v2-contact-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg></span>
              <div>
                <div class="v2-contact-name">petteri@asterpay.io</div>
                <div class="v2-contact-sub">Direct &middot; product, integration, strategic</div>
              </div>
            </a>
            <a href="https://www.cal.eu/asterpay" target="_blank" rel="noopener" class="v2-contact-row">
              <span class="v2-contact-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg></span>
              <div>
                <div class="v2-contact-name">Book 15 or 30 min</div>
                <div class="v2-contact-sub">cal.eu/asterpay &middot; pick a slot</div>
              </div>
            </a>
            <a href="https://t.me/petterixai" target="_blank" rel="noopener" class="v2-contact-row">
              <span class="v2-contact-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21.7 4.3 2.7 11.6c-.5.2-.5.9 0 1.1l4.6 1.6 1.7 5.5c.1.4.6.5.9.2l2.5-2.3 4.7 3.4c.4.3 1 .1 1.1-.4l3.3-15.6c.2-.5-.4-1-.8-.8z"/></svg></span>
              <div>
                <div class="v2-contact-name">@petterixai</div>
                <div class="v2-contact-sub">Telegram &middot; DMs open</div>
              </div>
            </a>
          </div>
        </div>

        <div class="v2-contact-person">
          <div class="v2-contact-person-head">
            <div class="v2-contact-person-name">Samantha <span class="v2-ai-badge" title="Samantha is an AI agent. Petteri reviews every reply.">AI agent</span></div>
            <div class="v2-contact-person-role">Business Development AI &middot; partnership intake &amp; KYB triage</div>
          </div>
          <div class="v2-contact-grid">
            <a href="mailto:samantha@asterpay.io" class="v2-contact-row">
              <span class="v2-contact-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg></span>
              <div>
                <div class="v2-contact-name">samantha@asterpay.io</div>
                <div class="v2-contact-sub">AI-assisted intake &middot; partnerships, KYB onboarding, merchant success</div>
              </div>
            </a>
            <a href="/partners/" class="v2-contact-row">
              <span class="v2-contact-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg></span>
              <div>
                <div class="v2-contact-name">Partner application</div>
                <div class="v2-contact-sub">Become a partner &middot; co-marketing &amp; ecosystem</div>
              </div>
            </a>
            <a href="https://x.com/Asterpayment" target="_blank" rel="noopener" class="v2-contact-row">
              <span class="v2-contact-icon" style="font-family: serif; font-weight: 700; font-size: 18px;">&#120143;</span>
              <div>
                <div class="v2-contact-name">@Asterpayment</div>
                <div class="v2-contact-sub">Company X / Twitter &middot; DMs open</div>
              </div>
            </a>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- Footer (v2 — editorial 4-col) -->
  <footer class="v2-footer">
    <div class="v2-footer-grid">
      <div class="v2-footer-brand">
        <a href="/" class="v2-footer-brand-row">
          <img src="/assets/asterpay-icon.png" alt="AsterPay">
          <span>AsterPay</span>
        </a>
        <p>Financial infrastructure for the agentic economy. EU-native, EUR-native, MiCA-aligned.</p>
      </div>

      <div class="v2-footer-col">
        <h5>Product</h5>
        <ul>
          <li><a href="#x402">x402 facilitator</a></li>
          <li><a href="/treasury/">Treasury Agent</a></li>
          <li><a href="/clinpay/">ClinPay (research panels)</a></li>
          <li><a href="#features">KYA trust scoring</a></li>
          <li><a href="#pricing">Pricing</a></li>
          <li><a href="/compare/">Compare</a></li>
        </ul>
      </div>

      <div class="v2-footer-col">
        <h5>Developers</h5>
        <ul>
          <li><a href="/docs/">Docs</a></li>
          <li><a href="/docs/">API reference</a></li>
          <li><a href="#sdks">SDK examples</a></li>
          <li><a href="https://github.com/AsterPay" target="_blank" rel="noopener">GitHub</a></li>
          <li><a href="https://www.npmjs.com/package/@asterpay/mcp-server" target="_blank" rel="noopener">MCP server</a></li>
          <li><a href="/.well-known/agent.json">agent.json</a></li>
          <li><a href="/llms.txt">llms.txt</a></li>
        </ul>
      </div>

      <div class="v2-footer-col">
        <h5>Company</h5>
        <ul>
          <li><a href="/learn/">Learn hub</a></li>
          <li><a href="/ecosystem/">Ecosystem</a></li>
          <li><a href="/partners/">Partners</a></li>
          <li><a href="/blog/">Blog</a></li>
          <li><a href="mailto:samantha@asterpay.io">Contact</a></li>
        </ul>
      </div>

      <div class="v2-footer-col">
        <h5>Social</h5>
        <ul>
          <li><a href="https://x.com/Asterpayment" target="_blank" rel="noopener">@Asterpayment</a></li>
          <li><a href="https://t.me/petterixai" target="_blank" rel="noopener">Telegram</a></li>
        </ul>
      </div>
    </div>

    <div class="v2-footer-bottom">
      <div>&copy; 2026 AELIRA LTD (HE 490977) &middot; 9 Karpenisiou, Strovolos, 2021 Nicosia, Cyprus &middot; All rights reserved.</div>
      <div class="v2-footer-bottom-links">
        <a href="/privacy/">Privacy</a>
        <a href="/terms/">Terms</a>
        <a href="/security/">Security</a>
      </div>
    </div>
    <div class="v2-footer-bottom" style="margin-top:0.5rem;font-size:0.78rem;opacity:0.55;line-height:1.5;">
      <div>AsterPay is not affiliated with Aster (ASTER) DEX, the BNB Chain perpetual exchange. AsterPay has no native token, no $ASTER, no on-chain governance, and no presence on BNB Smart Chain.</div>
    </div>
  </footer>

  <script>
    // Mobile Menu Toggle
    function toggleMobileMenu() {
      const hamburger = document.getElementById('hamburger');
      const mobileMenu = document.getElementById('mobileMenu');
      hamburger.classList.toggle('active');
      mobileMenu.classList.toggle('active');
      document.body.style.overflow = mobileMenu.classList.contains('active') ? 'hidden' : '';
    }
    
    function closeMobileMenu() {
      const hamburger = document.getElementById('hamburger');
      const mobileMenu = document.getElementById('mobileMenu');
      hamburger.classList.remove('active');
      mobileMenu.classList.remove('active');
      document.body.style.overflow = '';
    }
    
    // Close menu on escape key
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape') closeMobileMenu();
    });


  </script>


  <!-- Mini Demo Script -->
  <script>
    // Mini Demo Widget Logic
    const demoAgents = [
      { name: 'Price Agent', cost: 0.01, time: 45 },
      { name: 'News Agent', cost: 0.02, time: 120 },
      { name: 'Sentiment Agent', cost: 0.03, time: 89 },
      { name: 'Coordinator', cost: 0.01, time: 12 }
    ];

    const runDemoBtn = document.getElementById('run-demo-btn');
    const agentList = document.getElementById('agent-list');
    const demoTotal = document.getElementById('demo-total');
    const totalAmount = document.getElementById('total-amount');

    let isRunning = false;

    if (runDemoBtn) {
      runDemoBtn.addEventListener('click', async () => {
        if (isRunning) return;
        isRunning = true;
        
        // Clear previous results
        agentList.innerHTML = '';
        demoTotal.style.display = 'none';
        runDemoBtn.textContent = 'Analyzing...';
        runDemoBtn.disabled = true;

        let total = 0;

        // Animate each agent
        for (const agent of demoAgents) {
          await new Promise(resolve => setTimeout(resolve, 300 + Math.random() * 200));
          
          const item = document.createElement('div');
          item.className = 'demo-agent-item';
          item.innerHTML = `
            <span class="status">✅</span>
            <span class="name">${agent.name}</span>
            <span class="cost">-€${agent.cost.toFixed(2)}</span>
            <span class="time">${agent.time}ms</span>
            <span class="protocol">x402</span>
          `;
          agentList.appendChild(item);
          total += agent.cost;
        }

        // Show total
        await new Promise(resolve => setTimeout(resolve, 300));
        totalAmount.textContent = `€${total.toFixed(2)}`;
        demoTotal.style.display = 'flex';

        runDemoBtn.textContent = 'Run Analysis';
        runDemoBtn.disabled = false;
        isRunning = false;
      });
    }
  </script>

  <script>
  (function() {
    const el = document.getElementById('termOutput');
    if (!el) return;

    const G = '\x1b[32m', C = '\x1b[36m', Y = '\x1b[33m', D = '\x1b[2m', B = '\x1b[1m', R = '\x1b[0m';
    const G1 = '\x1b[g1m', G2 = '\x1b[g2m', G3 = '\x1b[g3m', G4 = '\x1b[g4m', G5 = '\x1b[g5m', G6 = '\x1b[g6m';

    const lines = [
      { t: 'step', s: `${D}━━ STEP 1 — Discovery ━━━━━━━━━━━━━━━━━━━━━━━━━${R}` },
      { t: 'ok',   s: `${G}✓ GET /.well-known/x402.json (118 ms)${R}` },
      { t: 'info', s: `${C}▸${R} Facilitator: AsterPay` },
      { t: 'info', s: `${C}▸${R} Networks: base, ethereum, polygon` },
      { t: 'info', s: `${C}▸${R} Protocols: x402, MPP, AP2` },
      { t: 'ok',   s: `${G}✓ GET /.well-known/agent.json (24 ms) — 3 skills${R}` },
      { t: 'ok',   s: '' },
      { t: 'step', s: `${D}━━ STEP 2 — Trust Score (KYA) ━━━━━━━━━━━━━━━━━${R}` },
      { t: 'ok',   s: `${G}✓ Trust score for 0x8bDC29aa… (378 ms)${R}` },
      { t: 'info', s: `${C}▸${R} Tier: verified | Score: 42` },
      { t: 'ok',   s: `${G}✓ Sanctions screening (310 ms)${R}` },
      { t: 'info', s: `${C}▸${R} Verified: true | Sanctioned: false` },
      { t: 'ok',   s: '' },
      { t: 'step', s: `${D}━━ STEP 3 — x402 Payment (USDC on Base) ━━━━━━━${R}` },
      { t: 'ok',   s: `${G}✓ HTTP 402 Payment Required (41 ms)${R}` },
      { t: 'info', s: `${C}▸${R} Amount: $0.001 USDC | Network: Base` },
      { t: 'ok',   s: `${G}✓ transferWithAuthorization signed (EIP-3009)${R}` },
      { t: 'ok',   s: `${G}✓ Payment confirmed on Base (1.4 s)${R}` },
      { t: 'ok',   s: `${G}✓ API data received${R}` },
      { t: 'info', s: `${C}▸${R} BTC: $87,542 | ETH: $2,066 | SOL: $145` },
      { t: 'ok',   s: '' },
      { t: 'step', s: `${D}━━ STEP 4 — EUR Settlement ━━━━━━━━━━━━━━━━━━━━${R}` },
      { t: 'ok',   s: `${G}✓ USDC → EUR converted at market rate${R}` },
      { t: 'ok',   s: `${G}✓ SEPA Instant payout initiated${R}` },
      { t: 'ok',   s: `${G}✓ EUR arrived in merchant bank (8.2 s)${R}` },
      { t: 'ok',   s: '' },
      { t: 'step', s: `${B}Zero humans involved. Fully autonomous.${R}` },
    ];

    function ansiToHtml(s) {
      return s
        .replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
        .replace(/\x1b\[32m/g, '<span class="t-green">')
        .replace(/\x1b\[36m/g, '<span class="t-cyan">')
        .replace(/\x1b\[33m/g, '<span class="t-yellow">')
        .replace(/\x1b\[2m/g,  '<span class="t-dim">')
        .replace(/\x1b\[1m/g,  '<span class="t-bold">')
        .replace(/\x1b\[g1m/g, '<span class="t-g1">')
        .replace(/\x1b\[g2m/g, '<span class="t-g2">')
        .replace(/\x1b\[g3m/g, '<span class="t-g3">')
        .replace(/\x1b\[g4m/g, '<span class="t-g4">')
        .replace(/\x1b\[g5m/g, '<span class="t-g5">')
        .replace(/\x1b\[g6m/g, '<span class="t-g6">')
        .replace(/\x1b\[0m/g,  '</span>');
    }

    function getDelay(line) {
      if (line.t === 'head') return 40;
      if (line.t === 'step') return 400;
      if (line.t === 'ok')   return 180;
      return 100;
    }

    let idx = 0;
    let started = false;

    function typeLine() {
      if (idx >= lines.length) return;
      var line = lines[idx];
      var html = ansiToHtml(line.s);
      el.innerHTML += html + '\n';
      el.scrollTop = el.scrollHeight;
      idx++;
      setTimeout(typeLine, getDelay(line));
    }

    var obs = new IntersectionObserver(function(entries) {
      if (entries[0].isIntersecting && !started) {
        started = true;
        setTimeout(typeLine, 600);
      }
    }, { threshold: 0.3 });
    var heroTerm = document.getElementById('heroTerminal');
    if (heroTerm) obs.observe(heroTerm);
  })();
  </script>

  <!-- Audience Toggle (URL ?view=, localStorage fallback, popstate-aware) -->
  <script>
  (function(){
    var KEY = 'asterpay_audience';

    function fromUrl(){
      try {
        var p = new URLSearchParams(window.location.search).get('view');
        if (p === 'developer' || p === 'merchant') return p;
      } catch(e) {}
      return null;
    }
    function fromStorage(){
      try {
        var s = localStorage.getItem(KEY);
        if (s === 'developer' || s === 'merchant') return s;
      } catch(e) {}
      return null;
    }

    var initial = fromUrl() || fromStorage() || 'merchant';
    setAudience(initial, { pushState: false });

    document.querySelectorAll('.audience-tab').forEach(function(btn){
      btn.addEventListener('click', function(){
        setAudience(btn.getAttribute('data-audience'), { pushState: true });
      });
    });
    document.querySelectorAll('[data-audience-switch]').forEach(function(a){
      a.addEventListener('click', function(ev){
        ev.preventDefault();
        setAudience(a.getAttribute('data-audience-switch'), { pushState: true });
        var scrollTo = a.getAttribute('data-scroll-to');
        if (scrollTo) {
          requestAnimationFrame(function(){
            var el = document.getElementById(scrollTo);
            if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' });
          });
        }
      });
    });

    window.addEventListener('popstate', function(){
      var v = fromUrl() || fromStorage() || 'merchant';
      setAudience(v, { pushState: false });
    });

    function setAudience(value, opts){
      opts = opts || {};
      var body = document.body;
      body.classList.remove('audience-merchant', 'audience-developer');
      body.classList.add('audience-' + value);
      try { localStorage.setItem(KEY, value); } catch(e) {}

      if (opts.pushState && window.history && window.history.pushState) {
        try {
          var url = new URL(window.location.href);
          if (value === 'merchant') {
            url.searchParams.delete('view');
          } else {
            url.searchParams.set('view', value);
          }
          window.history.pushState({ view: value }, '', url.toString());
        } catch(e) {}
      }

      document.querySelectorAll('.audience-tab').forEach(function(btn){
        var active = btn.getAttribute('data-audience') === value;
        btn.classList.toggle('is-active', active);
        btn.setAttribute('aria-selected', active ? 'true' : 'false');
      });
      var hint = document.getElementById('audienceHint');
      if (hint) {
        hint.innerHTML = value === 'merchant'
          ? 'Showing trust, EUR settlement and onboarding &middot; <a href="?view=developer" data-audience-switch="developer">switch to developer view</a>'
          : 'Showing protocols, SDKs and code &middot; <a href="?view=merchant" data-audience-switch="merchant">back to merchant view</a>';
        hint.querySelectorAll('[data-audience-switch]').forEach(function(a){
          a.addEventListener('click', function(ev){
            ev.preventDefault();
            setAudience(a.getAttribute('data-audience-switch'), { pushState: true });
          });
        });
      }
    }
  })();
  </script>

  <!-- Nav background fade on scroll -->
  <script>
  (function(){
    var nav = document.querySelector('nav');
    if (!nav) return;
    var threshold = 40;
    var scrolled = false;
    function update(){
      var s = (window.pageYOffset || document.documentElement.scrollTop) > threshold;
      if (s !== scrolled) {
        scrolled = s;
        nav.classList.toggle('scrolled', s);
      }
    }
    update();
    window.addEventListener('scroll', update, { passive: true });
  })();
  </script>

  <!-- Agent-Readiness Widget Logic -->
  <script>
  (function(){
    var form = document.getElementById('arForm');
    if (!form) return;
    var input = document.getElementById('arInput');
    var btn = document.getElementById('arBtn');
    var result = document.getElementById('arResult');

    function escapeHtml(s){
      return String(s||'').replace(/[&<>"']/g, function(c){
        return ({ '&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;' })[c];
      });
    }

    function renderError(msg){
      result.hidden = false;
      result.innerHTML = '<div class="ar-error">' + escapeHtml(msg) + '</div>';
    }

    function renderResult(data){
      var bucketLabel = data.bucket === 'agent-ready'
        ? 'Your business is fully discoverable to AI agents.'
        : data.bucket === 'partial'
          ? 'Your business is partially visible to AI agents.'
          : 'AI agents cannot find or pay your business yet.';

      var host;
      try { host = new URL(data.url).host; } catch(e) { host = data.url; }

      var gapsHtml = (data.top_gaps || []).map(function(g){
        return '<li class="ar-gap">'
          + '<span class="ar-gap-icon">×</span>'
          + '<div class="ar-gap-body">'
          +   '<strong>' + escapeHtml(g.label) + '</strong>'
          +   '<span>' + escapeHtml(g.hint) + '</span>'
          + '</div>'
          + '</li>';
      }).join('');

      if (!gapsHtml) {
        gapsHtml = '<li class="ar-gap" style="background:rgba(34,197,94,0.08);border-color:rgba(34,197,94,0.25)">'
          + '<span class="ar-gap-icon" style="color:#22c55e">✓</span>'
          + '<div class="ar-gap-body"><strong>Your business is fully visible to AI agents.</strong>'
          + '<span>Connect AsterPay next so agents can actually pay you — EUR delivered to your bank in under 10 seconds.</span></div>'
          + '</li>';
      }

      result.hidden = false;
      result.innerHTML =
        '<div class="ar-result-head">'
        +   '<div class="ar-score ar-score-bucket-' + escapeHtml(data.bucket) + '">'
        +     escapeHtml(String(data.score))
        +     '<span class="ar-score-max"> / 100</span>'
        +   '</div>'
        +   '<div class="ar-summary">'
        +     '<div class="ar-summary-host">' + escapeHtml(host) + '</div>'
        +     '<div class="ar-summary-headline">' + escapeHtml(bucketLabel) + '</div>'
        +   '</div>'
        + '</div>'
        + '<ul class="ar-gaps">' + gapsHtml + '</ul>'
        + '<div class="ar-cta-row">'
        +   '<a class="ar-cta" href="' + escapeHtml(data.cta_url) + '">' + escapeHtml(data.cta_label) + '</a>'
        +   '<a class="ar-cta ar-cta-secondary" href="/docs">Read the docs</a>'
        + '</div>';

      result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
    }

    form.addEventListener('submit', function(ev){
      ev.preventDefault();
      var url = (input.value || '').trim();
      if (!url) { input.focus(); return; }

      btn.disabled = true;
      var originalLabel = btn.innerHTML;
      btn.innerHTML = '<span class="ar-loading"></span>Checking…';
      result.hidden = true;

      fetch('/api/agent-readiness', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ url: url })
      })
        .then(function(r){
          return r.json().then(function(data){ return { ok: r.ok, status: r.status, data: data }; });
        })
        .then(function(res){
          if (!res.ok) {
            renderError(res.data && res.data.message ? res.data.message : 'Could not check this URL. Try another.');
            return;
          }
          renderResult(res.data);
        })
        .catch(function(){
          renderError('Network error. Please try again.');
        })
        .finally(function(){
          btn.disabled = false;
          btn.innerHTML = originalLabel;
        });
    });
  })();
  </script>

  <div id="cookieConsent" style="display:none;position:fixed;bottom:0;left:0;right:0;background:#1a1a2e;border-top:1px solid rgba(108,92,231,0.3);padding:16px 24px;z-index:9999;font-family:Inter,sans-serif;">
    <div style="max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;">
      <p style="margin:0;color:#a0a0b0;font-size:14px;line-height:1.5;flex:1;min-width:280px;">We use essential cookies for site functionality. No tracking or analytics cookies are used. See our <a href="/privacy/" style="color:#a78bfa;text-decoration:underline;">Privacy Policy</a>.</p>
      <div style="display:flex;gap:8px;">
        <button onclick="document.getElementById('cookieConsent').style.display='none';localStorage.setItem('cookie_consent','accepted')" style="background:#6C5CE7;color:#fff;border:none;padding:8px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;">Accept</button>
        <button onclick="document.getElementById('cookieConsent').style.display='none';localStorage.setItem('cookie_consent','declined')" style="background:transparent;color:#a0a0b0;border:1px solid #333;padding:8px 20px;border-radius:6px;cursor:pointer;font-size:14px;">Decline</button>
      </div>
    </div>
  </div>
  <script>if(!localStorage.getItem('cookie_consent'))document.getElementById('cookieConsent').style.display='block';</script>

  <!-- ===== "How we score" modal ===== -->
  <div class="ar-modal" id="arHowScoreModal" role="dialog" aria-modal="true" aria-labelledby="arHowScoreTitle" hidden>
    <div class="ar-modal-backdrop" data-ar-close></div>
    <div class="ar-modal-card" role="document">
      <button class="ar-modal-close" type="button" aria-label="Close" data-ar-close>&times;</button>
      <div class="ar-modal-eyebrow">Methodology</div>
      <h3 id="arHowScoreTitle" class="ar-modal-title">How we score your site</h3>
      <p class="ar-modal-lede">
        We make five HTTP requests in parallel to your domain (homepage + four well-known paths). Total time: typically &lt;2&thinsp;s, hard timeout 6&thinsp;s. We don&rsquo;t crawl, render JavaScript or store anything. Each signal is a public standard you can verify yourself.
      </p>

      <div class="ar-method-table">
        <div class="ar-method-row ar-method-head">
          <div>Signal</div><div>What we check</div><div>Weight</div>
        </div>

        <div class="ar-method-row">
          <div><strong>Discoverable</strong></div>
          <div><code>/.well-known/agent.json</code> exists and is valid JSON. This is how AI assistants (ChatGPT, Claude, Perplexity) find a business profile.</div>
          <div>25</div>
        </div>

        <div class="ar-method-row">
          <div><strong>LLM-friendly</strong></div>
          <div><code>/llms.txt</code> exists and is non-empty. A 1-page plain-text summary of your business that LLMs read instead of rendering JavaScript.</div>
          <div>15</div>
        </div>

        <div class="ar-method-row">
          <div><strong>Catalog</strong></div>
          <div>Your homepage contains <code>&lt;script type=&quot;application/ld+json&quot;&gt;</code> with <code>@type</code> = Product, Service, Restaurant, LocalBusiness, Offer or MenuItem. Lets agents quote your prices.</div>
          <div>20</div>
        </div>

        <div class="ar-method-row">
          <div><strong>API</strong></div>
          <div><code>/openapi.json</code>, <code>/openapi.yaml</code> or <code>/openapi.yml</code> exists. Lets agents book a table, place an order or request a quote programmatically.</div>
          <div>15</div>
        </div>

        <div class="ar-method-row">
          <div><strong>Agent-payable</strong></div>
          <div><code>/.well-known/x402.json</code> or <code>/.well-known/mpp.json</code> exists. Lets agents actually pay you. Partial credit (8/25) if the homepage mentions x402 / machine-payments.</div>
          <div>25</div>
        </div>
      </div>

      <div class="ar-method-buckets">
        <div><span class="ar-method-pill ar-pill-bad">0&ndash;39</span> Invisible to agents</div>
        <div><span class="ar-method-pill ar-pill-mid">40&ndash;79</span> Partially ready</div>
        <div><span class="ar-method-pill ar-pill-good">80&ndash;100</span> Agent-ready</div>
      </div>

      <p class="ar-modal-foot">
        Same <a href="https://github.com/AsterPay" target="_blank" rel="noopener">methodology used by our open-source CLI</a>. We never store URLs, scores or fetched content.
      </p>
    </div>
  </div>

  <style>
    .ar-howscore-link {
      background: none;
      border: none;
      color: var(--accent);
      cursor: pointer;
      font: inherit;
      padding: 0;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .ar-howscore-link:hover { color: var(--accent-light); }

    .ar-modal {
      position: fixed; inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }
    .ar-modal[hidden] { display: none; }
    .ar-modal-backdrop {
      position: absolute; inset: 0;
      background: rgba(11, 17, 32, 0.65);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
    }
    .ar-modal-card {
      position: relative;
      width: 100%;
      max-width: 640px;
      max-height: calc(100vh - 48px);
      overflow-y: auto;
      background: #fff;
      border-radius: 16px;
      padding: 36px;
      box-shadow: 0 30px 80px -20px rgba(11,17,32,0.45);
      border: 1px solid rgba(26,26,46,0.06);
    }
    .ar-modal-close {
      position: absolute;
      top: 14px; right: 18px;
      background: none;
      border: none;
      color: var(--text-muted);
      font-size: 28px;
      line-height: 1;
      cursor: pointer;
      padding: 4px 10px;
      border-radius: 8px;
    }
    .ar-modal-close:hover { background: rgba(26,26,46,0.06); color: var(--text); }
    .ar-modal-eyebrow {
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--accent);
      font-weight: 600;
      margin-bottom: 10px;
    }
    .ar-modal-title {
      font-size: 24px;
      font-weight: 700;
      letter-spacing: -0.02em;
      color: var(--text);
      margin: 0 0 14px;
      line-height: 1.2;
    }
    .ar-modal-lede {
      color: var(--text-secondary);
      font-size: 14.5px;
      line-height: 1.6;
      margin: 0 0 22px;
    }
    .ar-method-table {
      border: 1px solid rgba(26,26,46,0.08);
      border-radius: 10px;
      overflow: hidden;
      margin-bottom: 22px;
    }
    .ar-method-row {
      display: grid;
      grid-template-columns: 130px 1fr 60px;
      gap: 16px;
      padding: 14px 16px;
      font-size: 13px;
      line-height: 1.55;
      color: var(--text-secondary);
      border-bottom: 1px solid rgba(26,26,46,0.06);
    }
    .ar-method-row:last-child { border-bottom: none; }
    .ar-method-row > div:last-child {
      text-align: right;
      font-variant-numeric: tabular-nums;
      color: var(--text);
      font-weight: 600;
    }
    .ar-method-row code {
      background: rgba(26,26,46,0.05);
      padding: 1px 5px;
      border-radius: 4px;
      font-size: 12px;
      color: var(--text);
    }
    .ar-method-head {
      background: rgba(26,26,46,0.03);
      font-weight: 600;
      color: var(--text);
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }
    .ar-method-buckets {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 16px;
      background: rgba(26,26,46,0.03);
      border-radius: 10px;
      font-size: 13.5px;
      color: var(--text-secondary);
    }
    .ar-method-pill {
      display: inline-block;
      padding: 2px 10px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 600;
      margin-right: 10px;
      font-variant-numeric: tabular-nums;
    }
    .ar-pill-bad { background: rgba(239, 68, 68, 0.12); color: #b91c1c; }
    .ar-pill-mid { background: rgba(245, 158, 11, 0.14); color: #b45309; }
    .ar-pill-good { background: rgba(16, 185, 129, 0.14); color: #047857; }
    .ar-modal-foot {
      margin-top: 18px;
      font-size: 12.5px;
      color: var(--text-muted);
      line-height: 1.5;
    }
    .ar-modal-foot a { color: var(--accent); text-decoration: underline; }

    @media (max-width: 560px) {
      .ar-modal-card { padding: 28px 22px; border-radius: 12px; }
      .ar-modal-title { font-size: 20px; }
      .ar-method-row { grid-template-columns: 100px 1fr 50px; gap: 10px; padding: 12px; font-size: 12.5px; }
    }
  </style>

  <script>
    (function () {
      var modal = document.getElementById('arHowScoreModal');
      var openBtn = document.getElementById('arHowScoreOpen');
      if (!modal || !openBtn) return;

      var prevFocus = null;
      function open() {
        prevFocus = document.activeElement;
        modal.hidden = false;
        document.body.style.overflow = 'hidden';
        var closeBtn = modal.querySelector('.ar-modal-close');
        if (closeBtn) closeBtn.focus();
      }
      function close() {
        modal.hidden = true;
        document.body.style.overflow = '';
        if (prevFocus && typeof prevFocus.focus === 'function') prevFocus.focus();
      }
      openBtn.addEventListener('click', open);
      modal.querySelectorAll('[data-ar-close]').forEach(function (el) {
        el.addEventListener('click', close);
      });
      document.addEventListener('keydown', function (e) {
        if (e.key === 'Escape' && !modal.hidden) close();
      });
    })();
  </script>

  <!-- Hero Dashboard Mockup — live counters + rotating activity -->
  <script>
  (function(){
    var spendEl = document.getElementById('hdSpend');
    var reqsEl = document.getElementById('hdReqs');
    var listEl = document.getElementById('hdActList');
    var treBalEl = document.getElementById('hdTreBal');
    if (!spendEl || !reqsEl || !listEl) return;

    var prefersReduce = window.matchMedia &&
      window.matchMedia('(prefers-reduced-motion: reduce)').matches;

    var spend = 12408.21;
    var reqs = 4127;
    var treBal = 48217.90;

    function fmtEUR(n){
      var s = n.toLocaleString('de-DE', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
      return '€' + s.replace(/\./g, ' ');
    }
    function fmtIntEU(n){ return n.toLocaleString('de-DE').replace(/\./g, ' '); }
    function flash(el){
      el.classList.add('is-tick');
      setTimeout(function(){ el.classList.remove('is-tick'); }, 420);
    }
    function pad2(n){ return n < 10 ? '0' + n : '' + n; }

    var seedActivities = [
      { amt: '€124,88',   src: 'agent-7f3a → merchant-acme',   badge: 'Settled' },
      { amt: '€3 490,30', src: 'agent-2bc9 → merchant-globex', badge: 'Settled' },
      { amt: '€0,50',     src: 'agent-9e0d → merchant-acme',   badge: 'Settled' },
      { amt: '€89,90',    src: 'agent-1a4f → merchant-zenith', badge: 'Settled' },
    ];
    var pool = [
      { amt: '€0,50',     src: 'agent-c1f0 → merchant-acme',     badge: 'Settled' },
      { amt: '€124,88',   src: 'agent-3da4 → merchant-globex',   badge: 'Settled' },
      { amt: '€7,40',     src: 'agent-8be2 → merchant-zenith',   badge: 'Settled' },
      { amt: '€1 247,50', src: 'agent-5fa1 → merchant-orbital',  badge: 'Settled' },
      { amt: '€0,05',     src: 'agent-d712 → merchant-acme',     badge: 'Settled' },
      { amt: '€412,30',   src: 'agent-4c08 → merchant-helix',    badge: 'Settled' },
      { amt: '€89,90',    src: 'agent-9b7e → merchant-globex',   badge: 'Settled' },
      { amt: '€3 490,30', src: 'agent-6ab2 → merchant-aurora',   badge: 'Settled' },
      { amt: '€56,40',    src: 'agent-f2cd → merchant-acme',     badge: 'Settled' },
      { amt: '€891,20',   src: 'agent-0e91 → merchant-helix',    badge: 'Settled' },
      { amt: '€17,50',    src: 'agent-bd45 → merchant-zenith',   badge: 'Settled' },
      { amt: '€2 184,75', src: 'agent-13ff → merchant-orbital',  badge: 'Settled' },
      { amt: '€34,90',    src: 'agent-77a8 → merchant-globex',   badge: 'Settled' },
      { amt: '€5 120,00', src: 'agent-acaa → merchant-aurora',   badge: 'Settled' },
      { amt: '€1,20',     src: 'agent-218e → merchant-acme',     badge: 'Settled' },
    ];
    function liFor(item, isNew){
      var li = document.createElement('li');
      if (isNew) li.className = 'is-new';
      var now = new Date();
      var time = pad2(now.getHours()) + ':' + pad2(now.getMinutes());
      li.innerHTML =
        '<span class="hd-act-amt">' + item.amt + '</span>' +
        '<span class="hd-act-meta">' + item.src + '</span>' +
        '<span class="hd-act-badge">' + item.badge + '</span>' +
        '<span class="hd-act-time">' + time + '</span>';
      return li;
    }
    seedActivities.forEach(function(it){ listEl.appendChild(liFor(it, false)); });

    if (prefersReduce) return;

    setInterval(function(){
      var inc = +(0.05 + Math.random() * 4.5).toFixed(2);
      spend += inc;
      spendEl.textContent = fmtEUR(spend);
      flash(spendEl);
    }, 3200);

    setInterval(function(){
      reqs += Math.floor(1 + Math.random() * 3);
      reqsEl.textContent = fmtIntEU(reqs);
      flash(reqsEl);
    }, 2100);

    if (treBalEl) {
      setInterval(function(){
        var inc = +(5 + Math.random() * 120).toFixed(2);
        treBal += inc;
        treBalEl.textContent = fmtEUR(treBal);
        flash(treBalEl);
      }, 5400);
    }

    setInterval(function(){
      var item = pool[Math.floor(Math.random() * pool.length)];
      var li = liFor(item, true);
      listEl.insertBefore(li, listEl.firstChild);
      while (listEl.children.length > 5) listEl.removeChild(listEl.lastChild);
      setTimeout(function(){ li.classList.remove('is-new'); }, 1200);
    }, 3600);
  })();
  </script>
</body>
</html>
