.diagram:where(.astro-2v3nm3ad){background:var(--diagram-bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto;display:block}.node:where(.astro-2v3nm3ad){fill:var(--diagram-node);stroke:var(--diagram-stroke);stroke-width:1.5px}.node--accent:where(.astro-2v3nm3ad){stroke:var(--piranha-purple);stroke-width:2px}.screen:where(.astro-2v3nm3ad){fill:color-mix(in srgb, var(--water) 30%, var(--diagram-bg));stroke:var(--diagram-stroke);stroke-width:1px}.key:where(.astro-2v3nm3ad){fill:var(--diagram-stroke)}.led:where(.astro-2v3nm3ad){fill:var(--piranha-red)}.glyph:where(.astro-2v3nm3ad){fill:none;stroke:var(--piranha-purple);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.cloud:where(.astro-2v3nm3ad){fill:url(#cloudgrad);stroke:none}.cloud-label:where(.astro-2v3nm3ad){fill:#fff;text-anchor:middle;font-size:16px;font-weight:700}.node-label:where(.astro-2v3nm3ad){fill:var(--diagram-ink);text-anchor:middle;font-size:14px;font-weight:650}.node-sub:where(.astro-2v3nm3ad){fill:var(--text-faint);text-anchor:middle;font-size:11px}.link:where(.astro-2v3nm3ad){fill:none;stroke-width:2.2px;stroke-linecap:round}.link--local:where(.astro-2v3nm3ad){stroke:var(--diagram-stroke)}.link--net:where(.astro-2v3nm3ad){stroke:var(--water-600);stroke-dasharray:2 7}.badge:where(.astro-2v3nm3ad) rect:where(.astro-2v3nm3ad){fill:var(--bg-elevated);stroke:var(--border-strong);stroke-width:1px}.badge:where(.astro-2v3nm3ad) text:where(.astro-2v3nm3ad){fill:var(--text-muted);text-anchor:middle;font-size:11px;font-weight:650}.link-label:where(.astro-2v3nm3ad){fill:var(--text-faint);text-anchor:middle;font-size:11px;font-weight:600}svg:where(.astro-2v3nm3ad) text:where(.astro-2v3nm3ad){font-family:var(--font-sans)}.diagram:where(.astro-7hjgv2yh){background:var(--diagram-bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto;display:block}.laptop:where(.astro-7hjgv2yh){fill:color-mix(in srgb, var(--piranha-purple) 5%, var(--diagram-node));stroke:var(--piranha-purple);stroke-width:2px}.laptop-base:where(.astro-7hjgv2yh){fill:var(--diagram-node);stroke:var(--diagram-stroke);stroke-width:1.5px}.laptop-title:where(.astro-7hjgv2yh){fill:var(--diagram-ink);text-anchor:middle;font-size:16px;font-weight:750}.offline:where(.astro-7hjgv2yh){fill:#16a34a;text-anchor:middle;font-size:12px;font-weight:650}.node:where(.astro-7hjgv2yh){fill:var(--diagram-node);stroke:var(--diagram-stroke);stroke-width:1.5px}.node--accent:where(.astro-7hjgv2yh){stroke:var(--piranha-purple);stroke-width:2px}.screen:where(.astro-7hjgv2yh){fill:color-mix(in srgb, var(--water) 30%, var(--diagram-bg));stroke:var(--diagram-stroke);stroke-width:1px}.led:where(.astro-7hjgv2yh){fill:var(--piranha-red)}.dot:where(.astro-7hjgv2yh){fill:var(--diagram-stroke)}.glyph:where(.astro-7hjgv2yh){fill:none;stroke:var(--piranha-purple);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.node-label:where(.astro-7hjgv2yh){fill:var(--diagram-ink);text-anchor:middle;font-size:13px;font-weight:650}.link:where(.astro-7hjgv2yh){fill:none;stroke-width:2.2px;stroke-linecap:round}.link--local:where(.astro-7hjgv2yh){stroke:var(--piranha-purple)}.link--optional:where(.astro-7hjgv2yh){stroke:var(--diagram-stroke);stroke-dasharray:2 7}.loop:where(.astro-7hjgv2yh){fill:none;stroke:var(--water-600);stroke-width:1.6px;stroke-dasharray:3 5;opacity:.7}.link-label:where(.astro-7hjgv2yh){fill:var(--water-600);text-anchor:middle;font-size:12px;font-weight:650}.cloud:where(.astro-7hjgv2yh){fill:var(--diagram-stroke)}.cloud-label:where(.astro-7hjgv2yh){fill:var(--bg);text-anchor:middle;font-size:13px;font-weight:700}.faded:where(.astro-7hjgv2yh){opacity:.5}.badge:where(.astro-7hjgv2yh) rect:where(.astro-7hjgv2yh){fill:var(--bg-elevated);stroke:var(--border-strong);stroke-width:1px}.badge:where(.astro-7hjgv2yh) text:where(.astro-7hjgv2yh){fill:var(--text-muted);text-anchor:middle;font-size:11px;font-weight:650}svg:where(.astro-7hjgv2yh) text:where(.astro-7hjgv2yh){font-family:var(--font-sans)}.diagram:where(.astro-74t3mc2z){background:var(--diagram-bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto;display:block}.cloud:where(.astro-74t3mc2z){fill:url(#hybgrad)}.cloud-label:where(.astro-74t3mc2z){fill:#fff;text-anchor:middle;font-size:17px;font-weight:750}.cloud-sub:where(.astro-74t3mc2z){fill:#ffffffd9;text-anchor:middle;font-size:12px}.laptop:where(.astro-74t3mc2z){fill:color-mix(in srgb, var(--piranha-purple) 6%, var(--diagram-node));stroke:var(--piranha-purple);stroke-width:2px}.laptop-base:where(.astro-74t3mc2z){fill:var(--diagram-node);stroke:var(--diagram-stroke);stroke-width:1.5px}.screen:where(.astro-74t3mc2z){fill:color-mix(in srgb, var(--water) 26%, var(--diagram-bg));stroke:var(--diagram-stroke);stroke-width:1px}.glyph:where(.astro-74t3mc2z){fill:none;stroke:var(--piranha-purple);stroke-width:2px;stroke-linejoin:round}.offline:where(.astro-74t3mc2z){fill:#16a34a;text-anchor:middle;font-size:11px;font-weight:650}.node-label:where(.astro-74t3mc2z){fill:var(--diagram-ink);text-anchor:middle;font-size:14px;font-weight:700}.arc:where(.astro-74t3mc2z){fill:none;stroke-width:2.6px;stroke-linecap:round}.arc--checkout:where(.astro-74t3mc2z){stroke:var(--piranha-purple)}.arc--sync:where(.astro-74t3mc2z){stroke:var(--water-600)}.badge:where(.astro-74t3mc2z) rect:where(.astro-74t3mc2z){fill:var(--bg-elevated);stroke-width:1.5px}.badge--checkout:where(.astro-74t3mc2z) rect:where(.astro-74t3mc2z){stroke:var(--piranha-purple)}.badge--sync:where(.astro-74t3mc2z) rect:where(.astro-74t3mc2z){stroke:var(--water-600)}.badge:where(.astro-74t3mc2z) text:where(.astro-74t3mc2z){text-anchor:middle;fill:var(--diagram-ink);font-size:12px;font-weight:700}.badge--checkout:where(.astro-74t3mc2z) .pkg:where(.astro-74t3mc2z){fill:none;stroke:var(--piranha-purple);stroke-width:1.6px;stroke-linejoin:round}.badge--sync:where(.astro-74t3mc2z) .pkg:where(.astro-74t3mc2z){fill:none;stroke:var(--water-600);stroke-width:1.6px;stroke-linecap:round}svg:where(.astro-74t3mc2z) text:where(.astro-74t3mc2z){font-family:var(--font-sans)}.model:where(.astro-ldveznri){grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(1.5rem,5vw,3.5rem);padding-block:clamp(2rem,5vw,3.5rem);display:grid}.model:where(.astro-ldveznri)+.model:where(.astro-ldveznri){border-top:1px solid var(--border)}.model--rev:where(.astro-ldveznri) .model__art:where(.astro-ldveznri){order:2}.model__tags:where(.astro-ldveznri){flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem;display:flex}.model__tag:where(.astro-ldveznri){text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;padding:.3rem .7rem;font-size:.78rem;font-weight:700;display:inline-block}.model__tag--roadmap:where(.astro-ldveznri){color:var(--piranha-red);background:color-mix(in srgb, var(--piranha-red) 13%, transparent)}.model__list:where(.astro-ldveznri){gap:.7rem;margin:1.2rem 0;padding:0;list-style:none;display:grid}.model__list:where(.astro-ldveznri) li:where(.astro-ldveznri){color:var(--text-muted);align-items:flex-start;gap:.6rem;display:flex}.model__list:where(.astro-ldveznri) svg{color:var(--accent);flex:none;margin-top:2px}.model__when:where(.astro-ldveznri){border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border);align-items:center;gap:.5rem;margin:0;padding:.6rem .9rem;font-size:.95rem;font-weight:600;display:inline-flex}.model__when:where(.astro-ldveznri) svg{color:var(--piranha-red);flex:none}.table-scroll:where(.astro-ldveznri){border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto}.cmp:where(.astro-ldveznri){border-collapse:collapse;background:var(--surface);width:100%;min-width:640px}.cmp:where(.astro-ldveznri) th:where(.astro-ldveznri),.cmp:where(.astro-ldveznri) td:where(.astro-ldveznri){text-align:start;border-bottom:1px solid var(--border);vertical-align:top;padding:1rem 1.1rem}.cmp:where(.astro-ldveznri) thead:where(.astro-ldveznri) th:where(.astro-ldveznri){text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);background:var(--bg-subtle);font-size:.78rem}.cmp:where(.astro-ldveznri) tbody:where(.astro-ldveznri) th:where(.astro-ldveznri){white-space:nowrap;font-weight:700}.cmp:where(.astro-ldveznri) tbody:where(.astro-ldveznri) th:where(.astro-ldveznri) svg{color:var(--accent);vertical-align:-4px;margin-inline-end:.4rem}.cmp:where(.astro-ldveznri) td:where(.astro-ldveznri){color:var(--text-muted)}.cmp:where(.astro-ldveznri) tbody:where(.astro-ldveznri) tr:where(.astro-ldveznri):last-child th:where(.astro-ldveznri),.cmp:where(.astro-ldveznri) tbody:where(.astro-ldveznri) tr:where(.astro-ldveznri):last-child td:where(.astro-ldveznri){border-bottom:none}@media (width<=820px){.model:where(.astro-ldveznri){grid-template-columns:1fr}.model--rev:where(.astro-ldveznri) .model__art:where(.astro-ldveznri){order:0}}
