<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="675" viewBox="0 0 1200 675" preserveAspectRatio="xMidYMid meet">
  <rect width="1200" height="675" fill="#f7fbff"/>
  <text x="120" y="105" font-size="28" font-family="Arial, sans-serif" fill="#10233f" font-weight="700">GitOps 同步与漂移修复控制环</text>
  <text x="120" y="140" font-size="18" font-family="Arial, sans-serif" fill="#526173">执行链路、能力边界：读取期望状态、比较实际状态、同步并检查健康</text>

  <circle cx="600" cy="350" r="210" fill="#ffffff" stroke="#3b82f6" stroke-width="4"/>
  <circle cx="600" cy="350" r="88" fill="#eef6ff" stroke="#93c5fd" stroke-width="2"/>
  <text x="548" y="340" font-size="22" font-family="Arial, sans-serif" fill="#173b6d" font-weight="700">控制器</text>
  <text x="522" y="375" font-size="18" font-family="Arial, sans-serif" fill="#355d8d">持续调和状态</text>

  <rect x="505" y="105" width="190" height="70" rx="16" fill="#ecfdf5" stroke="#22a06b" stroke-width="2"/>
  <text x="548" y="148" font-size="20" font-family="Arial, sans-serif" fill="#176138" font-weight="700">Source</text>
  <rect x="785" y="250" width="190" height="70" rx="16" fill="#eef2ff" stroke="#6366f1" stroke-width="2"/>
  <text x="831" y="293" font-size="20" font-family="Arial, sans-serif" fill="#312e81" font-weight="700">Compare</text>
  <rect x="785" y="450" width="190" height="70" rx="16" fill="#fff7ed" stroke="#f97316" stroke-width="2"/>
  <text x="846" y="493" font-size="20" font-family="Arial, sans-serif" fill="#7c2d12" font-weight="700">Sync</text>
  <rect x="505" y="535" width="190" height="70" rx="16" fill="#fdf2f8" stroke="#db2777" stroke-width="2"/>
  <text x="541" y="578" font-size="20" font-family="Arial, sans-serif" fill="#831843" font-weight="700">Health</text>
  <rect x="225" y="450" width="190" height="70" rx="16" fill="#f1f5f9" stroke="#64748b" stroke-width="2"/>
  <text x="266" y="493" font-size="20" font-family="Arial, sans-serif" fill="#334155" font-weight="700">Reconcile</text>
  <rect x="225" y="250" width="190" height="70" rx="16" fill="#fffbeb" stroke="#d49b12" stroke-width="2"/>
  <text x="277" y="293" font-size="20" font-family="Arial, sans-serif" fill="#6b4a00" font-weight="700">Render</text>

  <path d="M692 142 C810 170 875 210 880 248" fill="none" stroke="#3b82f6" stroke-width="4" marker-end="url(#arrowBlue)"/>
  <path d="M880 322 C914 360 915 410 880 448" fill="none" stroke="#3b82f6" stroke-width="4" marker-end="url(#arrowBlue)"/>
  <path d="M788 510 C735 552 702 565 697 567" fill="none" stroke="#3b82f6" stroke-width="4" marker-end="url(#arrowBlue)"/>
  <path d="M503 570 C430 555 376 530 330 520" fill="none" stroke="#3b82f6" stroke-width="4" marker-end="url(#arrowBlue)"/>
  <path d="M320 448 C282 400 282 340 320 322" fill="none" stroke="#3b82f6" stroke-width="4" marker-end="url(#arrowBlue)"/>
  <path d="M415 285 C460 210 500 178 540 175" fill="none" stroke="#3b82f6" stroke-width="4" marker-end="url(#arrowBlue)"/>

  <defs>
    <marker id="arrowBlue" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 Z" fill="#3b82f6"/></marker>
  </defs>
</svg>
