<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="100%" height="100%" viewBox="0 0 1400 650" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#0A1A5C" />
      <stop offset="1" stop-color="#2857D6" />
    </linearGradient>
    <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
      <path d="M 0 0 L 10 5 L 0 10 z" fill="#FFFFFF" />
    </marker>
  </defs>

  <rect x="0" y="0" width="1400" height="650" fill="url(#bg)" />

  <!-- Sequencer container -->
  <rect x="560" y="45" width="430" height="350" rx="16" fill="#FFFFFF" fill-opacity="0.16" />
  <text x="775" y="90" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="26" font-weight="bold" fill="#FFFFFF">Sequencer</text>

  <!-- Parent chain container -->
  <rect x="1020" y="430" width="340" height="200" rx="16" fill="#FFFFFF" fill-opacity="0.16" />
  <text x="1190" y="463" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="24" font-weight="bold" fill="#FFFFFF">Parent chain</text>

  <!-- User or app -->
  <rect x="50" y="95" width="170" height="70" rx="12" fill="#2E9BF2" />
  <text x="135" y="137" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">User or app</text>

  <!-- RPC node -->
  <rect x="290" y="95" width="210" height="70" rx="12" fill="#2E9BF2" />
  <text x="395" y="125" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">RPC node</text>
  <text x="395" y="151" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="17" fill="#FFFFFF" fill-opacity="0.9">(forwarder)</text>

  <!-- Transaction queue -->
  <rect x="610" y="115" width="330" height="85" rx="12" fill="#2E9BF2" />
  <text x="775" y="150" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">Transaction queue</text>
  <text x="775" y="180" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="17" fill="#FFFFFF" fill-opacity="0.9">(bounded, default 1024)</text>

  <!-- Block creation -->
  <rect x="610" y="230" width="330" height="85" rx="12" fill="#2E9BF2" />
  <text x="775" y="265" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">Block creation</text>
  <text x="775" y="295" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="17" fill="#FFFFFF" fill-opacity="0.9">(sequential execution)</text>

  <!-- Sequencer feed -->
  <rect x="1080" y="115" width="260" height="70" rx="12" fill="#2E9BF2" />
  <text x="1210" y="157" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">Sequencer feed</text>

  <!-- Full nodes and feed relays -->
  <rect x="1080" y="245" width="260" height="80" rx="12" fill="#2E9BF2" />
  <text x="1210" y="279" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">Full nodes and</text>
  <text x="1210" y="306" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">feed relays</text>

  <!-- Batch poster -->
  <rect x="610" y="470" width="330" height="70" rx="12" fill="#2E9BF2" />
  <text x="775" y="512" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="22" font-weight="600" fill="#FFFFFF">Batch poster</text>

  <!-- Sequencer inbox -->
  <rect x="1050" y="478" width="280" height="55" rx="12" fill="#2E9BF2" />
  <text x="1190" y="512" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="21" font-weight="600" fill="#FFFFFF">Sequencer inbox</text>

  <!-- Validators -->
  <rect x="1050" y="558" width="280" height="55" rx="12" fill="#2E9BF2" />
  <text x="1190" y="592" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="21" font-weight="600" fill="#FFFFFF">Validators</text>

  <!-- Arrows -->
  <!-- user -> rpc -->
  <line x1="220" y1="130" x2="280" y2="130" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <!-- rpc -> queue -->
  <polyline points="500,130 530,130 530,157 600,157" fill="none" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <!-- queue -> block creation (FIFO) -->
  <line x1="775" y1="200" x2="775" y2="220" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <text x="795" y="217" font-family="Helvetica, Arial, sans-serif" font-size="16" font-style="italic" fill="#FFFFFF" fill-opacity="0.9">FIFO</text>
  <!-- block creation -> sequencer feed -->
  <polyline points="940,272 1010,272 1010,150 1070,150" fill="none" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <!-- sequencer feed -> full nodes -->
  <line x1="1210" y1="185" x2="1210" y2="235" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <!-- block creation -> batch poster -->
  <line x1="775" y1="315" x2="775" y2="460" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <!-- batch poster -> sequencer inbox -->
  <line x1="940" y1="505" x2="1040" y2="505" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
  <!-- sequencer inbox -> validators -->
  <line x1="1190" y1="533" x2="1190" y2="548" stroke="#FFFFFF" stroke-width="3" marker-end="url(#arrow)" />
</svg>
