<svg viewBox="0 0 1540 800" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system, 'Segoe UI', Helvetica, Arial, sans-serif">
  <rect width="1540" height="800" fill="#ffffff"/>
  <defs>
    <marker id="arr" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
      <path d="M 0 0 L 10 5 L 0 10 z" fill="#64748b"/>
    </marker>
  </defs>

  <!-- ===== Panel 1: Cascade ===== -->
  <text x="60" y="72" font-size="30" font-weight="700" fill="#0f172a">Cascata — três etapas tarifadas</text>
  <text x="60" y="104" font-size="20" fill="#475569">você escolhe cada parte; cada etapa tem sua própria pequena cobrança</text>

  <!-- mic -->
  <rect x="60" y="160" width="120" height="96" rx="14" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
  <circle cx="120" cy="192" r="14" fill="none" stroke="#0f172a" stroke-width="3"/>
  <rect x="114" y="176" width="12" height="22" rx="6" fill="#0f172a"/>
  <text x="120" y="240" font-size="19" fill="#0f172a" text-anchor="middle">microfone</text>

  <line x1="180" y1="208" x2="228" y2="208" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>

  <!-- VAD -->
  <rect x="232" y="160" width="130" height="96" rx="14" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
  <text x="297" y="202" font-size="21" font-weight="600" fill="#0f172a" text-anchor="middle">VAD</text>
  <text x="297" y="230" font-size="16" fill="#475569" text-anchor="middle">fim da fala?</text>

  <line x1="362" y1="208" x2="410" y2="208" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>

  <!-- STT -->
  <rect x="414" y="160" width="252" height="96" rx="14" fill="#eff6ff" stroke="#2563eb" stroke-width="2.5"/>
  <text x="540" y="196" font-size="21" font-weight="700" fill="#1e40af" text-anchor="middle">STT · ouvir</text>
  <text x="540" y="224" font-size="17" fill="#1e40af" text-anchor="middle">$0.002 – $0.006 / min de áudio</text>
  <text x="540" y="246" font-size="15" fill="#475569" text-anchor="middle">cobrado pelo tempo de fala do usuário</text>

  <line x1="666" y1="208" x2="714" y2="208" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>

  <!-- LLM -->
  <rect x="718" y="160" width="262" height="96" rx="14" fill="#f5f3ff" stroke="#7c3aed" stroke-width="2.5"/>
  <text x="849" y="196" font-size="21" font-weight="700" fill="#5b21b6" text-anchor="middle">LLM · cérebro</text>
  <text x="849" y="224" font-size="17" fill="#5b21b6" text-anchor="middle">$0.0002 – $0.0027 / turno</text>
  <text x="849" y="246" font-size="15" fill="#475569" text-anchor="middle">faixa superior = modelos de fronteira ou raciocínio</text>

  <!-- history loop on LLM -->
  <path d="M 780 160 C 770 108, 928 108, 918 160" fill="none" stroke="#7c3aed" stroke-width="2.5" stroke-dasharray="6 5" marker-end="url(#arr)"/>
  <text x="849" y="104" font-size="15" fill="#5b21b6" text-anchor="middle">histórico de texto reenviado a cada turno (tokens baratos)</text>

  <line x1="980" y1="208" x2="1028" y2="208" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>

  <!-- TTS -->
  <rect x="1032" y="160" width="252" height="96" rx="14" fill="#fff7ed" stroke="#ea580c" stroke-width="2.5"/>
  <text x="1158" y="196" font-size="21" font-weight="700" fill="#9a3412" text-anchor="middle">TTS · falar</text>
  <text x="1158" y="224" font-size="17" fill="#9a3412" text-anchor="middle">$0.004 – $0.034 / min de áudio</text>
  <text x="1158" y="246" font-size="15" fill="#475569" text-anchor="middle">a maior parcela da conta</text>

  <line x1="1284" y1="208" x2="1332" y2="208" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>

  <!-- speaker -->
  <rect x="1336" y="160" width="140" height="96" rx="14" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
  <path d="M 1382 194 L 1398 194 L 1416 178 L 1416 226 L 1398 210 L 1382 210 z" fill="#0f172a"/>
  <path d="M 1424 190 q 10 12 0 24" fill="none" stroke="#0f172a" stroke-width="3"/>
  <text x="1406" y="244" font-size="19" fill="#0f172a" text-anchor="middle">alto-falante</text>

  <text x="60" y="308" font-size="18" fill="#0f172a">Por minuto de conversa, configurações medidas: <tspan font-weight="700">$0.0037 (econômico) → $0.0097 (padrão) → $0.0252 (premium)</tspan></text>
  <text x="60" y="334" font-size="16" fill="#475569">latência mínima sem streaming medida: 4.1 s por turno (LLM é o gargalo); o tratamento de interrupções fica por sua conta</text>

  <!-- ===== Divider ===== -->
  <line x1="60" y1="382" x2="1476" y2="382" stroke="#e2e8f0" stroke-width="2"/>

  <!-- ===== Panel 2: Speech-to-speech ===== -->
  <text x="60" y="438" font-size="30" font-weight="700" fill="#0f172a">Fala para fala — um modelo, uma tarifa</text>
  <text x="60" y="470" font-size="20" fill="#475569">o áudio nunca vira texto no fluxo principal; o histórico fica no servidor como tokens de áudio</text>

  <!-- mic -->
  <rect x="60" y="520" width="120" height="96" rx="14" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
  <circle cx="120" cy="552" r="14" fill="none" stroke="#0f172a" stroke-width="3"/>
  <rect x="114" y="536" width="12" height="22" rx="6" fill="#0f172a"/>
  <text x="120" y="600" font-size="19" fill="#0f172a" text-anchor="middle">microfone</text>

  <line x1="180" y1="552" x2="404" y2="552" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>
  <text x="292" y="540" font-size="15" fill="#475569" text-anchor="middle">áudio de entrada · $0.0192/min</text>
  <line x1="404" y1="588" x2="180" y2="588" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>

  <!-- model -->
  <rect x="408" y="502" width="560" height="132" rx="16" fill="#ecfdf5" stroke="#059669" stroke-width="3"/>
  <text x="688" y="546" font-size="22" font-weight="700" fill="#065f46" text-anchor="middle">modelo de fala para fala (gpt-realtime-2.1)</text>
  <text x="688" y="578" font-size="18" fill="#065f46" text-anchor="middle">ouvir $0.0192/min · falar $0.0768/min · sessão WebSocket</text>
  <text x="688" y="606" font-size="16" fill="#475569" text-anchor="middle">latência de voz para voz ≈ 2 s, interrupção nativa (medida)</text>

  <line x1="968" y1="552" x2="1332" y2="552" stroke="#64748b" stroke-width="3" marker-end="url(#arr)"/>
  <text x="1150" y="540" font-size="15" fill="#475569" text-anchor="middle">áudio de saída · $0.0768/min</text>

  <!-- speaker -->
  <rect x="1336" y="520" width="140" height="96" rx="14" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
  <path d="M 1382 554 L 1398 554 L 1416 538 L 1416 586 L 1398 570 L 1382 570 z" fill="#0f172a"/>
  <path d="M 1424 550 q 10 12 0 24" fill="none" stroke="#0f172a" stroke-width="3"/>
  <text x="1406" y="604" font-size="19" fill="#0f172a" text-anchor="middle">alto-falante</text>

  <!-- history store -->
  <path d="M 508 672 h 360 a 14 14 0 0 1 14 14 v 40 a 14 14 0 0 1 -14 14 h -280 a 14 14 0 0 1 -14 -14 v -40 a 14 14 0 0 1 14 -14 z" fill="#f0fdf4" stroke="#059669" stroke-width="2" stroke-dasharray="7 5"/>
  <text x="688" y="700" font-size="17" font-weight="600" fill="#065f46" text-anchor="middle">histórico de áudio, cobrado novamente a cada resposta</text>
  <text x="688" y="726" font-size="16" fill="#475569" text-anchor="middle">76% dele em cache a $0.40/M na nossa sessão</text>
  <line x1="688" y1="634" x2="688" y2="656" stroke="#059669" stroke-width="2.5" stroke-dasharray="6 5" marker-end="url(#arr)"/>

  <text x="60" y="700" font-size="18" fill="#0f172a">Por minuto de conversa,</text>
  <text x="60" y="726" font-size="18" fill="#0f172a">medido: <tspan font-weight="700">$0.0573</tspan> · mini <tspan font-weight="700">$0.0159</tspan></text>

  <text x="60" y="778" font-size="14" fill="#94a3b8">Medido em 2026-08-17 via gateway da Synthorai · preços de tabela no momento da medição · metodologia e tabelas por etapa no post</text>
</svg>
