.fc[data-astro-cid-rsu62kvr]{width:100%;max-width:520px;margin:0}svg[data-astro-cid-rsu62kvr]{width:100%;height:auto;display:block;overflow:visible}.fc-line[data-astro-cid-rsu62kvr]{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-linejoin:miter}.fc-solid[data-astro-cid-rsu62kvr]{fill:var(--ink)}.fc-accent[data-astro-cid-rsu62kvr]{stroke:var(--accent)}.fc-text[data-astro-cid-rsu62kvr]{fill:var(--ink);font-family:var(--font-sans);font-size:16.5px;font-weight:500;font-stretch:92%}.fc-end[data-astro-cid-rsu62kvr]{font-weight:700}.fc-guard[data-astro-cid-rsu62kvr]{fill:var(--ink-soft);font-family:var(--font-mono);font-size:11px}.fc-accent-text[data-astro-cid-rsu62kvr]{fill:var(--accent)}.fc-draw[data-astro-cid-rsu62kvr]{animation:.45s cubic-bezier(.3,0,.2,1) both fc-draw;animation-delay:calc(var(--i) * 70ms + .15s);stroke-dasharray:1}.fc-pop[data-astro-cid-rsu62kvr]{animation:.35s ease-out both fc-pop;animation-delay:calc(var(--i) * 70ms + .4s)}@keyframes fc-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes fc-pop{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.fc-draw[data-astro-cid-rsu62kvr]{stroke-dasharray:none}}.cd[data-astro-cid-kajtqxmq]{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:0;max-width:1060px;margin-top:clamp(2rem,4vw,3.5rem);display:grid}.uml[data-astro-cid-kajtqxmq]{border:var(--stroke) solid var(--ink);background:var(--paper)}.uml-head[data-astro-cid-kajtqxmq]{text-align:center;background:var(--band);border-bottom:var(--stroke) solid var(--ink);padding:.7rem 1rem .65rem}.uml-stereo[data-astro-cid-kajtqxmq]{font-size:var(--step--1);color:var(--ink-soft);display:block}.uml-name[data-astro-cid-kajtqxmq]{font-size:var(--step-1);font-stretch:80%}.uml-comp[data-astro-cid-kajtqxmq]{margin:0;padding:.8rem 1rem;font-size:.9rem;line-height:1.7;list-style:none}.uml-comp[data-astro-cid-kajtqxmq]+.uml-comp[data-astro-cid-kajtqxmq]{border-top:var(--stroke) solid var(--ink)}.uml-comp[data-astro-cid-kajtqxmq].mono{font-size:.8rem}.uml-comp[data-astro-cid-kajtqxmq] strong[data-astro-cid-kajtqxmq]{font-weight:600}.vis[data-astro-cid-kajtqxmq]{color:var(--accent)}.cd-parent[data-astro-cid-kajtqxmq] .uml-name[data-astro-cid-kajtqxmq]{font-size:var(--step-2)}.cd-tree[data-astro-cid-kajtqxmq]{gap:1.1rem;padding-left:72px;display:grid;position:relative}.cd-tree[data-astro-cid-kajtqxmq]:before{content:"";border-left:var(--stroke) solid var(--ink);position:absolute;top:2.2rem;bottom:2.2rem;left:40px}.cd-triangle[data-astro-cid-kajtqxmq]{width:16px;height:18px;position:absolute;top:50%;left:0;overflow:visible;transform:translateY(-50%)}.cd-triangle[data-astro-cid-kajtqxmq] path[data-astro-cid-kajtqxmq]{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}.cd-tree[data-astro-cid-kajtqxmq]>.cd-triangle[data-astro-cid-kajtqxmq]+[data-astro-cid-kajtqxmq]{margin-top:0}.cd-child[data-astro-cid-kajtqxmq]{position:relative}.cd-child[data-astro-cid-kajtqxmq]:before{content:"";border-top:var(--stroke) solid var(--ink);width:32px;position:absolute;top:50%;left:-32px}.cd-tree[data-astro-cid-kajtqxmq]:after{content:"";border-top:var(--stroke) solid var(--ink);width:25px;position:absolute;top:50%;left:15px}.cd-child[data-astro-cid-kajtqxmq] .uml-head[data-astro-cid-kajtqxmq]{text-align:left}.cd-child[data-astro-cid-kajtqxmq] .uml-comp[data-astro-cid-kajtqxmq]{font-size:.95rem;line-height:1.5}.cd-child[data-astro-cid-kajtqxmq] .uml-comp[data-astro-cid-kajtqxmq] li[data-astro-cid-kajtqxmq]+li[data-astro-cid-kajtqxmq]{margin-top:.3rem}@media (width<=760px){.cd[data-astro-cid-kajtqxmq]{grid-template-columns:1fr}.cd-tree[data-astro-cid-kajtqxmq]{padding-top:46px;padding-left:40px}.cd-triangle[data-astro-cid-kajtqxmq]{top:0;left:12px;transform:rotate(90deg)}.cd-tree[data-astro-cid-kajtqxmq]:after{display:none}.cd-tree[data-astro-cid-kajtqxmq]:before{top:17px;left:20px}.cd-child[data-astro-cid-kajtqxmq]:before{width:20px;left:-20px}}.vm-solid[data-astro-cid-nclj67iq]{fill:none;stroke:var(--ink);stroke-width:1.5px}.vm-virtual[data-astro-cid-nclj67iq]{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3}.vm-link[data-astro-cid-nclj67iq]{fill:none;stroke:var(--accent);stroke-width:1.5px}.vm-label[data-astro-cid-nclj67iq]{fill:var(--accent);font-family:var(--font-mono);font-size:11px}.od[data-astro-cid-nesrjox2]{margin-top:clamp(2rem,4vw,3.5rem)}.od-svg[data-astro-cid-nesrjox2]{width:100%;max-width:1180px;height:auto;margin-inline:auto;display:block;overflow:visible}.od-edge[data-astro-cid-nesrjox2]{fill:none;stroke:var(--ink-soft);stroke-width:1.25px;transition:opacity .2s,stroke .2s}.od-skill[data-astro-cid-nesrjox2] rect[data-astro-cid-nesrjox2]{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:5 3}.od-skill[data-astro-cid-nesrjox2] text[data-astro-cid-nesrjox2]{fill:var(--ink);font-family:var(--font-mono);font-size:13px;font-weight:600}.od-obj[data-astro-cid-nesrjox2]{cursor:default;outline:none}a[data-astro-cid-nesrjox2].od-obj{cursor:pointer}.od-box[data-astro-cid-nesrjox2]{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}.od-band[data-astro-cid-nesrjox2]{fill:var(--band)}.od-rule[data-astro-cid-nesrjox2]{stroke:var(--ink);stroke-width:1.5px}.od-name[data-astro-cid-nesrjox2]{fill:var(--ink);font-family:var(--font-mono);font-size:13px;font-weight:700}.od-underline[data-astro-cid-nesrjox2]{stroke:var(--ink);stroke-width:1px}.od-attr[data-astro-cid-nesrjox2]{fill:var(--ink);font-family:var(--font-mono);white-space:pre;font-size:13px}.od-featured[data-astro-cid-nesrjox2] .od-box[data-astro-cid-nesrjox2]{stroke-width:2.5px}.od-skill[data-astro-cid-nesrjox2],.od-obj[data-astro-cid-nesrjox2]{transition:opacity .2s}.is-focused[data-astro-cid-nesrjox2] .od-edge[data-astro-cid-nesrjox2],.is-focused[data-astro-cid-nesrjox2] .od-skill[data-astro-cid-nesrjox2],.is-focused[data-astro-cid-nesrjox2] .od-obj[data-astro-cid-nesrjox2]{opacity:.22}.is-focused[data-astro-cid-nesrjox2] .is-lit[data-astro-cid-nesrjox2]{opacity:1}.od-edge[data-astro-cid-nesrjox2].is-lit{stroke:var(--accent);stroke-width:2px}.od-skill[data-astro-cid-nesrjox2].is-lit rect[data-astro-cid-nesrjox2],.od-obj[data-astro-cid-nesrjox2].is-lit .od-box[data-astro-cid-nesrjox2]{stroke:var(--accent)}.od-obj[data-astro-cid-nesrjox2]:focus-visible .od-box[data-astro-cid-nesrjox2]{stroke:var(--accent);stroke-width:3px}.od-list[data-astro-cid-nesrjox2]{gap:1rem;margin:0;padding:0;list-style:none;display:none}.od-item[data-astro-cid-nesrjox2]{border:var(--stroke) solid var(--ink)}.od-item[data-astro-cid-nesrjox2].od-featured{border-width:2.5px}.od-item-head[data-astro-cid-nesrjox2]{background:var(--band);border-bottom:var(--stroke) solid var(--ink);padding:.6rem .9rem;font-size:.85rem;font-weight:700}.od-item-head[data-astro-cid-nesrjox2] u[data-astro-cid-nesrjox2]{text-underline-offset:.2em;text-decoration-thickness:1px}.od-item-head[data-astro-cid-nesrjox2] a[data-astro-cid-nesrjox2]{text-decoration:none}.od-item-summary[data-astro-cid-nesrjox2]{padding:.75rem .9rem 0;font-size:.98rem}.od-item-attrs[data-astro-cid-nesrjox2]{margin:0;padding:.6rem .9rem;font-size:.78rem;line-height:1.7;list-style:none}.od-item-attrs[data-astro-cid-nesrjox2] strong[data-astro-cid-nesrjox2]{font-weight:600}.od-item-links[data-astro-cid-nesrjox2]{border-top:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.6rem .9rem .8rem;font-size:.72rem;display:flex}.od-item-label[data-astro-cid-nesrjox2]{color:var(--ink-soft);margin-right:.2rem}.od-tag[data-astro-cid-nesrjox2]{border:1.25px dashed var(--ink);padding:.1rem .45rem}@media (width<=860px){.od-svg[data-astro-cid-nesrjox2]{display:none}.od-list[data-astro-cid-nesrjox2]{display:grid}}.sd[data-astro-cid-3en4okpl]{--ll:7.5rem;max-width:760px;margin-top:clamp(2rem,4vw,3.5rem);position:relative}.sd[data-astro-cid-3en4okpl]:before{content:"";left:var(--ll);border-left:var(--stroke) dashed var(--ink);position:absolute;top:2.6rem;bottom:.5rem}.sd-head[data-astro-cid-3en4okpl]{width:12rem;margin-left:calc(var(--ll) - 6rem);border:var(--stroke) solid var(--ink);background:var(--band);text-align:center;padding:.55rem .5rem;font-size:.82rem;font-weight:700;position:relative}.sd-head[data-astro-cid-3en4okpl] u[data-astro-cid-3en4okpl]{text-underline-offset:.2em;text-decoration-thickness:1px}.sd-rows[data-astro-cid-3en4okpl]{margin:1.25rem 0 0;padding:0;list-style:none}.sd-row[data-astro-cid-3en4okpl]{grid-template-columns:var(--ll) minmax(0, 1fr);align-items:end;display:grid}.sd-when[data-astro-cid-3en4okpl]{text-align:right;color:var(--ink-soft);padding-right:1rem;font-size:.75rem;transform:translateY(.45em)}.sd-msg[data-astro-cid-3en4okpl]{border-bottom:var(--stroke) solid var(--ink);max-width:34rem;padding:.9rem 0 .45rem 1.5rem;display:block;position:relative}.sd-msg[data-astro-cid-3en4okpl]:before{content:"";left:0;bottom:calc(var(--stroke) * -1 - 5px + .75px);border:5.5px solid #0000;border-right:10px solid var(--ink);border-left:0;position:absolute}.sd-from[data-astro-cid-3en4okpl]{color:var(--ink-soft);font-size:.72rem;font-weight:700;display:block}.sd-text[data-astro-cid-3en4okpl]{font-size:1.02rem;line-height:1.35;display:block}.sd-now[data-astro-cid-3en4okpl] .sd-msg[data-astro-cid-3en4okpl]{border-bottom-color:var(--accent)}.sd-now[data-astro-cid-3en4okpl] .sd-msg[data-astro-cid-3en4okpl]:before{border-right-color:var(--accent)}.sd-now[data-astro-cid-3en4okpl] .sd-from[data-astro-cid-3en4okpl],.sd-now[data-astro-cid-3en4okpl] .sd-when[data-astro-cid-3en4okpl]{color:var(--accent)}.sd-now[data-astro-cid-3en4okpl]:after{content:"";border:var(--stroke) solid var(--accent);background:var(--paper);grid-area:1/1;justify-self:end;width:10px;height:2.6rem;margin-right:-5.75px;transform:translateY(1.3rem)}.sd-now[data-astro-cid-3en4okpl] .sd-when[data-astro-cid-3en4okpl]{grid-area:1/1;padding-right:1.4rem}.sd-now[data-astro-cid-3en4okpl] .sd-msg[data-astro-cid-3en4okpl]{grid-area:1/2;margin-left:5px}@media (width<=560px){.sd[data-astro-cid-3en4okpl]{--ll:4.6rem}.sd-head[data-astro-cid-3en4okpl]{margin-left:0}.sd-when[data-astro-cid-3en4okpl]{padding-right:.6rem;font-size:.66rem}.sd-now[data-astro-cid-3en4okpl] .sd-when[data-astro-cid-3en4okpl]{padding-right:1rem}.sd-msg[data-astro-cid-3en4okpl]{padding-left:1.1rem}}.cs[data-astro-cid-m3hhyihh]{--inset:4.5rem;max-width:720px;margin-top:clamp(2rem,4vw,3.5rem);position:relative}.cs[data-astro-cid-m3hhyihh]:before,.cs[data-astro-cid-m3hhyihh]:after{content:"";border-left:var(--stroke) dashed var(--ink);position:absolute;top:2.6rem;bottom:0}.cs[data-astro-cid-m3hhyihh]:before{left:var(--inset)}.cs[data-astro-cid-m3hhyihh]:after{right:var(--inset)}.cs-heads[data-astro-cid-m3hhyihh]{justify-content:space-between;display:flex}.cs-head[data-astro-cid-m3hhyihh]{width:calc(var(--inset) * 2);border:var(--stroke) solid var(--ink);background:var(--band);text-align:center;padding:.55rem 0;font-size:.82rem;font-weight:700}.cs-head[data-astro-cid-m3hhyihh] u[data-astro-cid-m3hhyihh]{text-underline-offset:.2em;text-decoration-thickness:1px}.cs-msgs[data-astro-cid-m3hhyihh]{margin:.5rem 0 0;padding:0 0 1.5rem;list-style:none}.cs-msg[data-astro-cid-m3hhyihh]{margin-inline:var(--inset);border-bottom:var(--stroke) solid var(--ink);margin-top:1.4rem;position:relative}.cs-msg[data-astro-cid-m3hhyihh]>a[data-astro-cid-m3hhyihh],.cs-msg[data-astro-cid-m3hhyihh]>span[data-astro-cid-m3hhyihh]{font-size:var(--step-1);padding:.5rem 1.2rem .45rem .9rem;font-weight:600;font-stretch:88%;line-height:1.25;text-decoration:none;display:block}.cs-msg[data-astro-cid-m3hhyihh]>a[data-astro-cid-m3hhyihh]:hover{color:var(--accent)}.cs-msg[data-astro-cid-m3hhyihh]:has(a:hover){border-bottom-color:var(--accent)}.cs-msg[data-astro-cid-m3hhyihh]:after{content:"";right:0;bottom:calc(var(--stroke) * -1 - 5px + .75px);border:5.5px solid #0000;border-left:10px solid var(--ink);border-right:0;position:absolute}.cs-msg[data-astro-cid-m3hhyihh]:has(a:hover):after{border-left-color:var(--accent)}.cs-num[data-astro-cid-m3hhyihh]{color:var(--ink-soft);margin-right:.25rem;font-size:.75rem;font-weight:400}.cs-via[data-astro-cid-m3hhyihh]{color:var(--ink-soft);overflow-wrap:anywhere;margin-top:.2rem;font-size:.72rem;font-weight:400;display:block}.cs-msg[data-astro-cid-m3hhyihh]>a[data-astro-cid-m3hhyihh] .cs-via[data-astro-cid-m3hhyihh]{text-underline-offset:.2em;text-decoration:underline 1px}.cs-return[data-astro-cid-m3hhyihh]{text-align:right;border-bottom-style:dashed}.cs-return[data-astro-cid-m3hhyihh]>span[data-astro-cid-m3hhyihh]{color:var(--ink-soft);padding:.5rem .9rem .45rem 1.2rem;font-weight:500}.cs-return[data-astro-cid-m3hhyihh]:after{border:0;border-left:var(--stroke) solid var(--ink);border-bottom:var(--stroke) solid var(--ink);width:9px;height:9px;left:0;right:auto;bottom:calc(-4.5px - var(--stroke) / 2);left:1px;transform:rotate(45deg)}@media (width<=560px){.cs[data-astro-cid-m3hhyihh]{--inset:2.6rem}.cs-msg[data-astro-cid-m3hhyihh]>a[data-astro-cid-m3hhyihh],.cs-msg[data-astro-cid-m3hhyihh]>span[data-astro-cid-m3hhyihh]{padding-left:.6rem;padding-right:.9rem;font-size:1.08rem}}.hero[data-astro-cid-lcdefpme]{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:clamp(2rem,5vw,5rem);padding-block:clamp(.5rem,3vw,2.5rem);display:grid}.hero-title[data-astro-cid-lcdefpme]{font-size:var(--step-3);letter-spacing:-.015em;max-width:14ch;font-stretch:68%;line-height:.98}.hero-intro[data-astro-cid-lcdefpme]{max-width:46ch;font-size:var(--step-1);color:var(--ink-soft);margin-top:clamp(1.25rem,2.5vw,2rem);line-height:1.45}.hero-actions[data-astro-cid-lcdefpme]{flex-wrap:wrap;gap:.75rem;margin-top:clamp(1.5rem,3vw,2.25rem);display:flex}.btn[data-astro-cid-lcdefpme]{border:var(--stroke) solid var(--ink);font-family:var(--font-mono);padding:.7rem 1.1rem;font-size:.8rem;line-height:1.2;text-decoration:none;display:inline-block}.btn[data-astro-cid-lcdefpme]:hover{border-color:var(--accent);color:var(--accent)}.btn-solid[data-astro-cid-lcdefpme]{background:var(--ink);color:var(--paper)}.btn-solid[data-astro-cid-lcdefpme]:hover{background:var(--accent);color:var(--accent-ink)}.alerts-note[data-astro-cid-lcdefpme]{color:var(--ink-soft);margin-top:1.5rem;font-size:.95rem}@media (width<=860px){.hero[data-astro-cid-lcdefpme]{grid-template-columns:1fr}.hero[data-astro-cid-lcdefpme] .fc{justify-self:center}}
