@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.banner-card[data-astro-cid-feslum5t]{border:1px solid color-mix(in oklch, var(--_c) 25%, transparent);background:var(--_t)}.banner-card-body[data-astro-cid-feslum5t]{overflow-wrap:break-word;min-width:0}.banner-card-body[data-astro-cid-feslum5t] p{margin:0}.banner-card-body[data-astro-cid-feslum5t] p+p{margin-top:.375rem}.banner-card-body[data-astro-cid-feslum5t] a{text-underline-offset:2px;text-decoration:underline}.banner-card-body[data-astro-cid-feslum5t] code:not(:where(pre *)){font-family:var(--nb-font-mono);background:color-mix(in oklch, var(--_c) 10%, transparent);border:1px solid color-mix(in oklch, var(--_c) 15%, transparent);border-radius:.25rem;padding:.0625rem .3125rem;font-size:.8125em}[data-nb-sidebar-hidden]{display:none}.nb-pagination-key[data-astro-cid-xudeko4q]{min-width:1.25rem;height:1.25rem;font:500 .75rem/1 var(--nb-font-mono);color:var(--nb-muted-foreground);background:var(--nb-card);box-shadow:0 0 0 1px var(--nb-border-strong), 0 1px 0 1px var(--nb-border-strong);border-radius:.3125rem;flex-shrink:0;justify-content:center;align-items:center;padding:0 .3125rem;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:inline-flex}.nb-pagination-key[data-astro-cid-xudeko4q][data-down]{box-shadow:0 0 0 1px var(--nb-border-strong);color:var(--nb-foreground);transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.nb-pagination-key[data-astro-cid-xudeko4q]{transition:none}}.nb-pagination-link[data-astro-cid-qg72qt6f]+.nb-pagination-link[data-astro-cid-qg72qt6f]:before{content:"";top:.75rem;bottom:.75rem;background:var(--nb-border);width:1px;transition:opacity .2s;position:absolute;inset-inline-start:0}[data-slot=pagination-bar]:hover .nb-pagination-link[data-astro-cid-qg72qt6f]+.nb-pagination-link[data-astro-cid-qg72qt6f]:before,[data-slot=pagination-bar]:focus-within .nb-pagination-link[data-astro-cid-qg72qt6f]+.nb-pagination-link[data-astro-cid-qg72qt6f]:before{opacity:0}.nb-pagination-title[data-astro-cid-qg72qt6f]{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width>=40rem){.nb-pagination-title[data-astro-cid-qg72qt6f]{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.nb-pagination-bar[data-astro-cid-uzg2fj5b]:not(:has([data-slot=pagination-link]+[data-slot=pagination-link])){width:50%}.nb-pagination-bar[data-astro-cid-uzg2fj5b]:has([rel=next]):not(:has([rel=prev])){margin-inline-start:auto}}.nb-pagination-highlight[data-astro-cid-uzg2fj5b]{opacity:0;transition:left .28s cubic-bezier(.32,.72,0,1),width .28s cubic-bezier(.32,.72,0,1),opacity .18s ease-out}.nb-pagination-highlight[data-astro-cid-uzg2fj5b][data-state=visible]{opacity:1}.nb-pagination-bar[data-astro-cid-uzg2fj5b][data-keys=false] [data-slot=pagination-key]{display:none}@media (prefers-reduced-motion:reduce){.nb-pagination-highlight[data-astro-cid-uzg2fj5b]{transition:none}}[data-nb-zoom-trigger]{all:unset;cursor:zoom-in;border-radius:.25rem;max-width:100%}[data-nb-zoom-trigger]:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}.frame[data-frame-aspect] .frame-media>[data-nb-zoom-trigger]{position:absolute;inset:0;display:block!important}.frame[data-frame-aspect] .frame-media>[data-nb-zoom-trigger]>img{object-fit:cover;border-radius:.5rem;width:100%;height:100%}.nb-zoom{cursor:zoom-out;background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.nb-zoom[open]{place-items:center;display:grid}.nb-zoom::backdrop{background:color-mix(in oklch, var(--nb-background) 85%, transparent);backdrop-filter:blur(4px)}.nb-zoom picture{display:contents}.nb-zoom-img{object-fit:contain;max-width:95vw;max-height:95dvh}.nb-zoom-close{top:1rem;border:1px solid var(--nb-border);background:var(--nb-card);width:2.25rem;height:2.25rem;color:var(--nb-foreground);cursor:pointer;border-radius:.5rem;place-items:center;display:grid;position:fixed;inset-inline-end:1rem}.nb-zoom-close:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.nb-zoom[open] .nb-zoom-img{transition:opacity .15s ease-out,transform .15s ease-out;@starting-style{opacity:0;transform:scale(.96)}}}.aside-card[data-astro-cid-znle5jil]{--_c:var(--nb-info);--_f:var(--nb-info-foreground);--_t:var(--nb-info-muted);border:1px solid color-mix(in oklch, var(--_c) 25%, transparent);background:var(--_t)}.aside-card[data-astro-cid-znle5jil][data-type=tip]{--_c:var(--nb-success);--_f:var(--nb-success-foreground);--_t:var(--nb-success-muted)}.aside-card[data-astro-cid-znle5jil][data-type=caution]{--_c:var(--nb-warning);--_f:var(--nb-warning-foreground);--_t:var(--nb-warning-muted)}.aside-card[data-astro-cid-znle5jil][data-type=danger]{--_c:var(--nb-danger);--_f:var(--nb-danger-foreground);--_t:var(--nb-danger-muted)}.aside-card-icon[data-astro-cid-znle5jil],.aside-card-title[data-astro-cid-znle5jil]{color:var(--_f)}.aside-card-body[data-astro-cid-znle5jil]{color:var(--nb-foreground)}.aside-card-body[data-astro-cid-znle5jil] p{margin:0}.aside-card-body[data-astro-cid-znle5jil] p+p{margin-top:.5rem}.aside-card-body[data-astro-cid-znle5jil] a{color:var(--nb-foreground);text-decoration:underline;text-decoration-color:var(--nb-border-strong);text-underline-offset:4px;font-weight:500}.aside-card-body[data-astro-cid-znle5jil] code:not(:where(pre *)){font-family:var(--nb-font-mono);background:color-mix(in oklch, var(--_c) 10%, transparent);border:1px solid color-mix(in oklch, var(--_c) 15%, transparent);border-radius:var(--nb-radius-sm);padding:.125rem .3125rem;font-size:.875em;line-height:1}.aside-card-body[data-astro-cid-znle5jil] strong{color:var(--nb-foreground);font-weight:600}.aside-card-body[data-astro-cid-znle5jil] .astro-code{margin:.75rem 0}.architecture{--edge-color:var(--text-muted);--arch-node-stroke:var(--text-subtle);--arch-knockout:var(--bg);width:100%;height:100%;min-height:0;font-family:var(--sans);display:block;overflow:visible}.architecture [data-color=blue]{--edge-color:var(--flow-blue,var(--accent))}.architecture [data-color=red]{--edge-color:var(--flow-red,var(--accent))}.architecture [data-color=green]{--edge-color:var(--flow-green,var(--accent))}.architecture [data-color=orange]{--edge-color:var(--flow-orange,var(--accent))}.architecture [data-color=purple]{--edge-color:var(--flow-purple,var(--accent))}.arch-dim{transition:opacity .32s}.arch-dim.is-dim{opacity:.25}.arch-node-fill{fill:var(--bg-card);stroke:var(--arch-node-stroke);stroke-width:1.5px}.arch-node.is-external{--arch-node-stroke:var(--success)}.arch-node.is-external .arch-node-fill{fill:var(--success-bg)}.arch-node.is-focus{--arch-node-stroke:var(--accent)}.arch-node.is-focus .arch-node-fill{stroke-width:3px}.arch-node-icon{color:var(--accent)}.arch-node.is-external .arch-node-icon{color:var(--success)}.arch-node-label{fill:var(--text);dominant-baseline:central;font-size:23px;font-weight:600}.arch-node-sublabel{fill:var(--text-muted);dominant-baseline:central;font-size:17px}.arch-badge rect{fill:var(--accent)}.arch-badge text{fill:var(--on-accent);dominant-baseline:central;font-size:15px;font-weight:700}.arch-toggle{cursor:pointer;outline:none}.arch-toggle .arch-group-box{pointer-events:stroke}.arch-select{cursor:pointer;outline:none}.arch-select:hover,.arch-select:focus-visible,.arch-select[aria-pressed=true]{--arch-node-stroke:var(--accent)}.arch-select:focus-visible .arch-node-fill,.arch-select[aria-pressed=true] .arch-node-fill{stroke-width:3px}.arch-toggle-hit{fill:#0000}.arch-toggle:hover,.arch-toggle:focus-visible{--arch-node-stroke:var(--accent)}.arch-toggle:hover .arch-group-box,.arch-toggle:focus-visible .arch-group-box{stroke:var(--accent)}.arch-composite-badge rect{fill:var(--accent);transition:opacity .16s}.arch-toggle:hover .arch-composite-badge rect,.arch-toggle:focus-visible .arch-composite-badge rect{opacity:.8}.arch-composite-badge circle,.arch-composite-badge path{fill:none;stroke:var(--on-accent);stroke-width:2px;stroke-linecap:round}.arch-composite-badge text{fill:var(--on-accent);dominant-baseline:central;font-size:15px;font-weight:700}.arch-edge-line{fill:none;stroke:var(--edge-color);stroke-width:2.25px;stroke-linecap:round;stroke-dasharray:1 1;transition:stroke-width .24s}.arch-edge.is-lit .arch-edge-line{stroke-width:3.5px}.arch-edge-head{fill:var(--edge-color)}.arch-edge-label text{fill:var(--edge-color);dominant-baseline:central;paint-order:stroke;stroke:var(--arch-knockout);stroke-width:9px;stroke-linejoin:round;font-size:19px;font-weight:500}.arch-label-box{fill:var(--arch-knockout)}.arch-packet{fill:var(--edge-color);animation:.3s .5s both arch-packet-in}@keyframes arch-packet-in{0%{opacity:0}}.arch-note text{fill:var(--text-muted);dominant-baseline:central;font-size:19px;font-style:italic}.arch-group-box{fill:color-mix(in srgb, var(--accent) 3.5%, transparent);stroke:var(--border);stroke-width:1.5px;stroke-dasharray:8 7}.arch-group-label{fill:var(--text-subtle);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:15px}@media (prefers-reduced-motion:reduce){.arch-dim,.arch-edge-line{transition:none}.arch-packet{display:none}}.architecture-walkthrough{--aw-accent:var(--nb-brand,#087f79);--aw-bg:var(--nb-background,#fff);--aw-panel:var(--nb-muted,#f8fafc);--aw-text:var(--nb-foreground,#17212d);--aw-muted:var(--nb-muted-foreground,#586577);--aw-border:var(--nb-border,#d7dde4);--bg:var(--aw-bg);--bg-card:var(--nb-card,#fff);--text:var(--aw-text);--text-muted:var(--aw-muted);--text-subtle:color-mix(in srgb, var(--aw-muted) 75%, var(--aw-bg));--border:var(--nb-border-strong,#c4cbd4);--accent:oklch(60% .19 45);--on-accent:#fff;--success:var(--nb-success,#13795b);--success-bg:var(--nb-success-muted,#e8f6ef);--sans:var(--nb-font-sans,system-ui, sans-serif);--mono:var(--nb-font-mono,ui-monospace, monospace);--flow-blue:oklch(50% .19 262);--flow-orange:oklch(56% .17 50);--flow-green:oklch(50% .13 155);--flow-red:oklch(52% .2 27);--flow-purple:oklch(50% .2 305);color:var(--aw-text);margin-block:1.5rem;font-size:.8rem}[data-mode=dark] .architecture-walkthrough{--accent:oklch(74% .16 55);--on-accent:oklch(20% 0 0);--flow-blue:oklch(74% .13 255);--flow-orange:oklch(78% .14 60);--flow-green:oklch(76% .13 155);--flow-red:oklch(72% .16 25);--flow-purple:oklch(75% .14 305)}.architecture-walkthrough *,.architecture-walkthrough :before{box-sizing:border-box}.architecture-walkthrough [hidden]{display:none!important}.architecture-walkthrough :focus-visible{outline:2px solid var(--aw-accent);outline-offset:2px}.aw-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.architecture-walkthrough p{margin:.4rem 0;line-height:1.6}.architecture-walkthrough a{color:var(--aw-accent);text-underline-offset:3px;text-decoration:underline}.architecture-walkthrough select{border:1px solid var(--aw-border);background:var(--aw-bg);min-width:0;max-width:100%;color:var(--aw-text);font:inherit;border-radius:.3rem;padding:.3rem 1.6rem .3rem .5rem}.aw-preview{border:1px solid var(--aw-border);background:var(--aw-bg);width:100%;max-width:40rem;color:var(--aw-text);cursor:zoom-in;border-radius:.4rem;padding:0;display:block;overflow:hidden}.aw-preview:hover{border-color:var(--aw-accent)}.aw-preview-graph{height:24rem;padding:.75rem;display:block}.aw-preview-caption{border-top:1px solid var(--aw-border);font:inherit;color:var(--aw-muted);justify-content:space-between;padding:.45rem .65rem;font-size:.75rem;display:flex}.architecture-walkthrough .aw-dialog{background:var(--aw-bg);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--aw-text);font:inherit;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.aw-dialog::backdrop{background:var(--aw-bg)}.aw-explorer{flex-direction:column;min-width:0;height:100%;display:flex}.aw-dialog-header{border-bottom:1px solid var(--aw-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;display:flex}.architecture-walkthrough .aw-dialog-header h3{margin:0;font-size:.95rem;font-weight:600}.aw-dialog-header button{width:2rem;height:2rem;color:var(--aw-muted);cursor:pointer;background:0 0;border:0;font-size:1.5rem}.aw-dialog .aw-body{border:0;border-bottom:1px solid var(--aw-border);border-radius:0;flex:1;grid-template-rows:minmax(18rem,58%) minmax(0,1fr);min-height:0}.aw-dialog .aw-diagram-column{flex-direction:column;min-height:0;display:flex;overflow:hidden}.aw-graph{flex:1;min-height:0;padding:1rem}.aw-step{border-top:1px solid var(--aw-border);border-left:3px solid var(--aw-border);flex-shrink:0;padding:.6rem 1rem .8rem;font-size:.85rem}.aw-step[data-status=commit]{border-left-color:var(--flow-blue)}.aw-step[data-status=failure],.aw-step[data-status=gap]{border-left-color:var(--flow-red)}.aw-step[data-status=recovery]{border-left-color:var(--flow-green)}.architecture-walkthrough .aw-step-title{color:var(--aw-text);margin:0;font-weight:600}.aw-dialog .aw-source-column{flex-direction:column;min-height:0;padding:.65rem;display:flex}.aw-dialog .aw-source-file{flex-shrink:0;margin:0 0 .45rem}.aw-source-file select{flex:1;font-size:.75rem}.aw-dialog .aw-code-panel{flex:1;min-height:0}.aw-dialog .aw-code-panel pre{height:100%;max-height:none;font-size:.76rem}.aw-dialog .aw-footer{flex-shrink:0;max-height:40dvh;padding:.5rem .85rem;overflow:auto}.aw-body{border:1px solid var(--aw-border);border-radius:.4rem;min-width:0;display:grid;overflow:clip}.aw-diagram-column,.aw-source-column{min-width:0}.aw-source-column{border-top:1px solid var(--aw-border);padding:.6rem}.aw-source-label{display:grid}.aw-source-file{justify-content:space-between;align-items:center;gap:.5rem;margin:.4rem 0;font-size:.63rem;display:flex}.aw-source-file span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--aw-muted);overflow:hidden}.aw-source-file a{flex-shrink:0}.aw-code-panel pre{border-radius:.25rem;max-height:16rem;margin:0;padding:.4rem 0;font-size:.68rem;line-height:1.75;overflow:auto}.aw-code-panel code{min-width:max-content;font:inherit;white-space:normal;display:block}.aw-code-panel .line{white-space:pre;border-left:2px solid #0000;min-height:1.75em;padding-right:.5rem;display:block}.aw-code-panel .line:before{content:attr(data-source-line);text-align:right;width:2.7rem;color:var(--aw-muted);user-select:none;font-variant-numeric:tabular-nums;padding-right:.6rem;display:inline-block}.aw-code-panel [data-linked-line]{cursor:pointer;text-decoration:underline dotted color-mix(in srgb, var(--aw-muted) 40%, transparent);text-underline-offset:3px}.aw-code-panel [data-linked-line]:hover{background:color-mix(in srgb, var(--aw-accent) 6%, transparent)}.aw-code-panel [data-highlighted]{border-left-color:var(--aw-accent);background:color-mix(in srgb, var(--aw-accent) 10%, transparent)}.aw-code-panel [data-linked-line]:focus-visible{outline-offset:-2px}[data-mode=dark] .aw-code-panel .astro-code{background-color:var(--shiki-dark-bg)!important}[data-mode=dark] .aw-code-panel .astro-code span{color:var(--shiki-dark)!important}[data-mode=dark] .aw-code-panel .astro-code [data-highlighted]{background:color-mix(in srgb, var(--aw-accent) 13%, var(--shiki-dark-bg))!important}.aw-footer{color:var(--aw-muted);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.4rem .8rem;padding-top:.35rem;font-size:.72rem;display:grid}.aw-caption{justify-content:space-between;align-items:center;gap:.6rem;min-width:0;display:flex}.aw-controls{gap:.2rem;display:flex}.aw-controls button,.aw-toolbar button{border:1px solid var(--aw-border);background:var(--aw-bg);color:var(--aw-text);font:inherit;cursor:pointer;border-radius:.25rem;padding:.15rem .4rem}.aw-controls button:disabled{opacity:.35;cursor:default}.architecture-walkthrough details{background:0 0;border:0;margin:0;padding:0}.aw-details summary{cursor:pointer;padding:.15rem 0;font-size:.72rem}.aw-details[open]{grid-column:1/-1}.aw-detail-content{color:var(--aw-muted);padding:.7rem 0}.aw-toolbar{justify-content:space-between;align-items:end;gap:.5rem;display:flex}.aw-toolbar label{gap:.25rem;display:grid}.aw-steps{flex-wrap:wrap;gap:.3rem;margin:0;padding:.5rem 0;list-style:none;display:flex}.aw-steps li{margin:0}.aw-steps button{color:var(--aw-muted);border:1px solid var(--aw-border);font:inherit;cursor:pointer;text-align:start;background:0 0;border-radius:.25rem;padding:.3rem .4rem}.aw-steps button span{margin-right:.35rem}.aw-steps button[aria-current=step]{color:var(--aw-accent);border-color:var(--aw-accent)}.aw-explanation dl{gap:.5rem;margin-block:.6rem;display:grid}.aw-explanation dt{color:var(--aw-text);font-weight:600}.aw-explanation dd{margin:.15rem 0 0;line-height:1.5}.aw-inspector{border-top:1px solid var(--aw-border);padding-top:.6rem}.aw-inspector strong{color:var(--aw-text)}.aw-summary{margin-top:.6rem}.architecture-walkthrough noscript{padding-top:.5rem;display:block}@media (width>=48rem){.aw-dialog .aw-body{grid-template-rows:minmax(0,1fr);grid-template-columns:11fr 9fr}.aw-source-column{border-top:0;border-left:1px solid var(--aw-border)}.aw-explanation dl{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.architecture-walkthrough *{scroll-behavior:auto!important;transition:none!important}}.nb-pm-cmd[data-astro-cid-en2wqd3c]{color:#6f42c1}.nb-pm-args[data-astro-cid-en2wqd3c]{color:#032f62}[data-mode=dark] .nb-pm-cmd[data-astro-cid-en2wqd3c]{color:#b392f0}[data-mode=dark] .nb-pm-args[data-astro-cid-en2wqd3c]{color:#9ecbff}.steps[data-astro-cid-sfejetki]{--_start:var(--steps-start,1);--_marker:1.75rem;margin:1.5rem 0}.steps[data-astro-cid-sfejetki]>ol{counter-reset:step calc(var(--_start) - 1);margin:0;padding:0;list-style:none}.steps[data-astro-cid-sfejetki]>ol>li{counter-increment:step;min-height:var(--_marker);padding-block:0 1.5rem;padding-inline:calc(var(--_marker) + .75rem) 0;margin:0;position:relative}.steps[data-astro-cid-sfejetki]>ol>li:last-child{padding-bottom:0}.steps[data-astro-cid-sfejetki]>ol>li:before{content:counter(step);inset-inline-start:0;top:0;top:max(0px, calc((1lh - var(--_marker)) / 2));width:var(--_marker);height:var(--_marker);border-radius:var(--nb-radius);background:var(--nb-accent);color:var(--nb-foreground);border:1px solid var(--nb-border-strong);z-index:1;place-items:center;font-size:.6875rem;font-weight:600;line-height:1;display:grid;position:absolute}.steps[data-astro-cid-sfejetki]>ol>li:not(:last-child):after{content:"";inset-inline-start:calc(var(--_marker) / 2 - .75px);top:var(--_marker);top:calc(max(0px, (1lh - var(--_marker)) / 2) + var(--_marker));background:var(--nb-border);width:1.5px;position:absolute;bottom:0}.steps[data-astro-cid-sfejetki]>ol>li>p:first-child>strong:only-child{color:var(--nb-foreground)}.steps[data-astro-cid-sfejetki]>ol>li>p{margin:0}.steps[data-astro-cid-sfejetki]>ol>li>*+*{margin-top:.5rem}[data-astro-cid-x2352y32][data-nb-tabs-list][data-overflow=end]{mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}[data-astro-cid-x2352y32][data-nb-tabs-list][data-overflow=start]{mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}[data-astro-cid-x2352y32][data-nb-tabs-list][data-overflow=both]{mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}[data-astro-cid-x2352y32][data-nb-tabs-list][data-overflow=end]:dir(rtl){mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}[data-astro-cid-x2352y32][data-nb-tabs-list][data-overflow=start]:dir(rtl){mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}
