.step:where(.astro-betkwazx){border-top:1px solid var(--qw-panel-border);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:1rem 2.5rem;padding-block:2.25rem;display:grid}.head:where(.astro-betkwazx){align-items:baseline;gap:1rem;display:flex}.index:where(.astro-betkwazx){color:var(--qw-signal);font-family:var(--qw-font-mono);font-size:1.25rem;font-weight:600}h2:where(.astro-betkwazx){color:var(--qw-heading);font-size:var(--qw-text-h2);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.2}.body:where(.astro-betkwazx) p{color:var(--qw-body);margin-block:0 1rem;line-height:1.7}.body:where(.astro-betkwazx) .expressive-code{margin-block:0}@media (width<=55rem){.step:where(.astro-betkwazx){grid-template-columns:minmax(0,1fr)}}.hero:where(.astro-glgfkru5){grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:2.5rem 3rem;padding-block:1rem 2.5rem;display:grid}h1:where(.astro-glgfkru5){color:var(--qw-heading-brand);font-size:var(--qw-text-hero);letter-spacing:-.03em;margin:0;font-weight:600;line-height:1.05}.lede:where(.astro-glgfkru5){max-width:34rem;color:var(--qw-body);margin:1.35rem 0 0;font-size:1.125rem;line-height:1.65}.actions:where(.astro-glgfkru5){flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.install:where(.astro-glgfkru5){flex-wrap:wrap;align-items:baseline;gap:.65rem;margin:1.75rem 0 0;display:flex}.install:where(.astro-glgfkru5) code:where(.astro-glgfkru5){border:1px solid var(--qw-panel-border);border-radius:var(--qw-radius-sm);background:var(--qw-panel);color:var(--qw-body);font-family:var(--qw-font-mono);font-size:var(--qw-text-small);padding:.35rem .7rem}.install-note:where(.astro-glgfkru5){color:var(--qw-muted);font-size:var(--qw-text-label)}.stages:where(.astro-glgfkru5){border:1px solid var(--qw-panel-border);border-radius:var(--qw-radius-lg);background:var(--qw-panel);margin:0;overflow:hidden}figcaption:where(.astro-glgfkru5){border-bottom:1px solid var(--qw-panel-border);justify-content:space-between;gap:1rem;padding:1rem 1.1rem;display:flex}figcaption:where(.astro-glgfkru5)>span:where(.astro-glgfkru5){color:var(--qw-heading);font-weight:600}figcaption:where(.astro-glgfkru5) small:where(.astro-glgfkru5){max-width:18rem;color:var(--qw-muted);font-size:var(--qw-text-label);text-align:end;line-height:1.5}.stage-list:where(.astro-glgfkru5){flex-direction:column;gap:1.45rem;margin:0;padding:1.15rem;list-style:none;display:flex;position:relative}.stage-list:where(.astro-glgfkru5):before{content:"";background:var(--qw-panel-border-strong);width:1px;position:absolute;inset-block:2rem;inset-inline-start:2.25rem}.stage:where(.astro-glgfkru5){grid-template-columns:2.25rem minmax(0,1fr);align-items:center;gap:.8rem;min-width:0;display:grid;position:relative}.stage:where(.astro-glgfkru5):not(:first-child):before{content:attr(data-operation);color:var(--qw-technical);font-family:var(--qw-font-mono);font-size:.6875rem;position:absolute;inset-block-start:-1.2rem;inset-inline-start:3.05rem}.stage-marker:where(.astro-glgfkru5){z-index:1;border:1px solid var(--qw-panel-border-strong);background:var(--qw-panel-raised);width:2.25rem;height:2.25rem;color:var(--qw-heading);font-family:var(--qw-font-mono);font-size:var(--qw-text-label);border-radius:50%;place-items:center;font-weight:600;display:grid;position:relative}.stage:where(.astro-glgfkru5):first-child .stage-marker:where(.astro-glgfkru5){border-color:var(--qw-path-runtime);color:var(--qw-technical)}.stage:where(.astro-glgfkru5):nth-child(2) .stage-marker:where(.astro-glgfkru5){border-color:var(--qw-path-core);color:var(--qw-accent)}.stage:where(.astro-glgfkru5):last-child .stage-marker:where(.astro-glgfkru5){border-color:var(--qw-path-valid);color:var(--qw-valid)}.stage-copy:where(.astro-glgfkru5){border-radius:var(--qw-radius-sm);background:var(--qw-panel-raised);flex-direction:column;gap:.25rem;min-width:0;padding:.75rem .9rem;display:flex}.stage-label:where(.astro-glgfkru5){color:var(--qw-muted);font-size:var(--qw-text-label)}.stage:where(.astro-glgfkru5) code:where(.astro-glgfkru5){color:var(--qw-body);font-family:var(--qw-font-mono);overflow-wrap:anywhere;font-size:.8125rem}@media (width<=62rem){.hero:where(.astro-glgfkru5){grid-template-columns:minmax(0,1fr);gap:2rem}.lede:where(.astro-glgfkru5){max-width:none}}@media (width<=32rem){.hero:where(.astro-glgfkru5){padding-block-start:0}h1:where(.astro-glgfkru5){font-size:clamp(2.25rem,12vw,3rem)}figcaption:where(.astro-glgfkru5){flex-direction:column;gap:.25rem}figcaption:where(.astro-glgfkru5) small:where(.astro-glgfkru5){text-align:start}}.package-weave:where(.astro-d3metdb7){margin-block:1.5rem 2.25rem;display:block}.weave-heading:where(.astro-d3metdb7){justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1rem;display:flex}.weave-heading:where(.astro-d3metdb7) p:where(.astro-d3metdb7){max-width:66ch;color:var(--qw-body);text-wrap:pretty;margin:0;line-height:1.65}.weave-key:where(.astro-d3metdb7){color:var(--qw-muted);font-size:var(--qw-text-label);flex:none;align-items:center;gap:.45rem;display:inline-flex}.weave-key:where(.astro-d3metdb7) i:where(.astro-d3metdb7){background:var(--qw-path-runtime);border-radius:999px;width:1.8rem;height:.3rem}.interactive:where(.astro-d3metdb7){border:1px solid var(--qw-panel-border);border-radius:var(--qw-radius-lg);background:var(--qw-panel);overflow:hidden}.desktop-loom:where(.astro-d3metdb7){aspect-ratio:1120/700;min-height:39rem;position:relative;overflow:hidden}.weave-svg:where(.astro-d3metdb7){z-index:1;width:100%;height:100%;position:absolute;inset:0}.thread-group:where(.astro-d3metdb7){transition:opacity var(--qw-duration-panel) var(--qw-ease), filter var(--qw-duration-panel) var(--qw-ease)}.thread-gap:where(.astro-d3metdb7),.thread-line:where(.astro-d3metdb7){fill:none;vector-effect:non-scaling-stroke}.thread-gap:where(.astro-d3metdb7){stroke:var(--qw-panel);stroke-width:20px}.thread-line:where(.astro-d3metdb7){stroke:var(--thread);stroke-width:8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:0}.package-weave:where(.astro-d3metdb7)[data-revealed=true] .thread-line:where(.astro-d3metdb7){animation:qw-thread-arrive .72s var(--qw-ease) var(--delay) both}.thread-group:where(.astro-d3metdb7)[data-dimmed]{opacity:.14;filter:saturate(.4)}@keyframes qw-thread-arrive{0%{stroke-dashoffset:1400px}to{stroke-dashoffset:0}}.package-control:where(.astro-d3metdb7){z-index:2;width:var(--w);border-radius:var(--qw-radius-sm);background:var(--qw-panel-raised);min-height:3.65rem;color:var(--qw-heading);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--qw-duration-control) var(--qw-ease), box-shadow var(--qw-duration-control) var(--qw-ease), filter var(--qw-duration-control) var(--qw-ease), transform var(--qw-duration-control) var(--qw-ease);border:0;align-items:center;gap:.55rem;padding:.8rem .7rem .6rem;display:flex;position:absolute;inset-block-start:var(--y);inset-inline-start:var(--x)}.package-weave:where(.astro-d3metdb7)[data-revealed=true] .package-control:where(.astro-d3metdb7),.package-weave:where(.astro-d3metdb7)[data-revealed=true] .mobile-control:where(.astro-d3metdb7){animation:qw-package-arrive .46s var(--qw-ease) var(--node-delay) both}@keyframes qw-package-arrive{0%{opacity:0}}.package-control:where(.astro-d3metdb7):before{content:"";background:var(--thread);width:.68rem;height:.68rem;position:absolute;inset-block-start:-.34rem;inset-inline-start:50%;transform:translate(-50%)rotate(45deg)}.package-control:where(.astro-d3metdb7):hover,.package-control:where(.astro-d3metdb7):focus-visible,.package-control:where(.astro-d3metdb7)[aria-pressed=true]{background:var(--qw-panel-raised);box-shadow:0 0 0 1px var(--thread);transform:translateY(-1px)}.package-control:where(.astro-d3metdb7):focus-visible,.mobile-control:where(.astro-d3metdb7):focus-visible{outline:2px solid var(--qw-focus);outline-offset:3px}.package-control:where(.astro-d3metdb7)[data-dimmed],.mobile-control:where(.astro-d3metdb7)[data-dimmed]{filter:saturate(.45)}.package-control:where(.astro-d3metdb7)[data-dimmed] .package-label:where(.astro-d3metdb7),.mobile-control:where(.astro-d3metdb7)[data-dimmed] .package-label:where(.astro-d3metdb7){color:var(--qw-muted)}.package-label:where(.astro-d3metdb7){flex-direction:column;min-width:0;line-height:1.15;display:flex}.package-scope:where(.astro-d3metdb7){color:var(--qw-muted);font-family:var(--qw-font-mono);font-size:.65rem}.package-label:where(.astro-d3metdb7) strong:where(.astro-d3metdb7){color:inherit;font-family:var(--qw-font-mono);overflow-wrap:anywhere;font-size:.82rem;font-weight:600}.core-control:where(.astro-d3metdb7){border-radius:var(--qw-radius);background:var(--qw-deep-forest);min-height:7.5rem;color:var(--qw-dark-text);flex-wrap:wrap;align-items:center;padding:1rem}.core-control:where(.astro-d3metdb7):before{display:none}.core-control:where(.astro-d3metdb7):hover,.core-control:where(.astro-d3metdb7):focus-visible,.core-control:where(.astro-d3metdb7)[aria-pressed=true]{background:var(--qw-forest-hover);box-shadow:0 0 0 1px var(--qw-path-valid)}.core-control:where(.astro-d3metdb7) img:where(.astro-d3metdb7){flex:none;width:2.65rem;height:2.65rem}.core-control:where(.astro-d3metdb7) .package-scope:where(.astro-d3metdb7),.core-note:where(.astro-d3metdb7){color:#f5f6efc7}.core-control:where(.astro-d3metdb7) .package-label:where(.astro-d3metdb7) strong:where(.astro-d3metdb7){color:var(--qw-dark-text);font-size:1rem}.core-note:where(.astro-d3metdb7){font-size:var(--qw-text-label);flex-basis:100%}.mobile-loom:where(.astro-d3metdb7),.mobile-relation:where(.astro-d3metdb7){display:none}.package-details:where(.astro-d3metdb7){border-top:1px solid var(--qw-panel-border);background:var(--qw-panel-raised);padding:1.1rem 1.25rem}.package-details:where(.astro-d3metdb7) article:where(.astro-d3metdb7){min-height:6.5rem;animation:qw-detail-arrive var(--qw-duration-panel) var(--qw-ease);grid-template-columns:minmax(0,1.25fr) minmax(16rem,.75fr);align-items:center;gap:1.5rem 2rem;display:grid}.package-details:where(.astro-d3metdb7) article:where(.astro-d3metdb7)[hidden]{display:none}@keyframes qw-detail-arrive{0%{transform:translateY(4px)}to{transform:translateY(0)}}.detail-copy:where(.astro-d3metdb7) h3:where(.astro-d3metdb7){color:var(--qw-heading);font-family:var(--qw-font-mono);overflow-wrap:anywhere;margin:0 0 .35rem;font-size:1rem}.detail-copy:where(.astro-d3metdb7) p:where(.astro-d3metdb7){max-width:62ch;color:var(--qw-body);font-size:var(--qw-text-small);margin:0;line-height:1.6}.detail-meta:where(.astro-d3metdb7){color:var(--qw-muted);font-size:var(--qw-text-label);flex-wrap:wrap;align-items:center;gap:.4rem .8rem;display:flex}.detail-meta:where(.astro-d3metdb7)>span:where(.astro-d3metdb7)+span:where(.astro-d3metdb7):before{content:"·";color:var(--qw-panel-border-strong);margin-inline-end:.8rem}.detail-meta:where(.astro-d3metdb7) a:where(.astro-d3metdb7){width:fit-content;color:var(--qw-accent);font-size:var(--qw-text-small);flex-basis:100%;margin-top:.25rem;font-weight:600;text-decoration:none}.detail-meta:where(.astro-d3metdb7) a:where(.astro-d3metdb7):hover{text-underline-offset:.18em;text-decoration:underline}.fallback:where(.astro-d3metdb7){display:none}.fallback:where(.astro-d3metdb7) ul:where(.astro-d3metdb7){gap:1rem;margin:0;padding:0;list-style:none;display:grid}.fallback:where(.astro-d3metdb7) li:where(.astro-d3metdb7){border-bottom:1px solid var(--qw-panel-border);flex-direction:column;gap:.25rem;padding-block:.75rem;display:flex}.fallback:where(.astro-d3metdb7) a:where(.astro-d3metdb7){color:var(--qw-accent);font-family:var(--qw-font-mono)}.fallback:where(.astro-d3metdb7) span:where(.astro-d3metdb7){color:var(--qw-body);font-size:var(--qw-text-small)}@media (width<=52rem){.weave-heading:where(.astro-d3metdb7){flex-direction:column;align-items:start;gap:.6rem}.desktop-loom:where(.astro-d3metdb7){display:none}.mobile-loom:where(.astro-d3metdb7){padding:.85rem .9rem 1rem;display:block;position:relative}.mobile-rail:where(.astro-d3metdb7){border-radius:999px;width:3px;position:absolute;inset-block:6.5rem 1.8rem}.rail-core:where(.astro-d3metdb7){background:var(--qw-path-core);inset-inline-start:1.2rem}.rail-runtime:where(.astro-d3metdb7){background:var(--qw-path-runtime);inset-inline-start:1.6rem}.rail-valid:where(.astro-d3metdb7){background:var(--qw-path-valid);inset-inline-start:2rem}.rail-active:where(.astro-d3metdb7){background:var(--qw-path-active);inset-inline-start:2.4rem}.mobile-controls:where(.astro-d3metdb7){flex-direction:column;gap:.35rem;display:flex}.mobile-control:where(.astro-d3metdb7){border:0;border-bottom:1px solid var(--qw-panel-border);min-height:3.6rem;color:var(--qw-heading);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--qw-duration-control) var(--qw-ease), filter var(--qw-duration-control) var(--qw-ease);background:0 0;align-items:center;gap:.65rem;margin-inline-start:3.4rem;padding:.5rem .65rem;display:flex;position:relative}.mobile-control:where(.astro-d3metdb7):not(.mobile-core):before{content:"";background:var(--thread);border-radius:999px;width:2.35rem;height:3px;position:absolute;inset-block-start:50%;inset-inline-start:-2.35rem;transform:translateY(-50%)}.mobile-control:where(.astro-d3metdb7):not(.mobile-core):after{content:"";background:var(--thread);width:.6rem;height:.6rem;position:absolute;inset-block-start:50%;inset-inline-start:-.3rem;transform:translateY(-50%)rotate(45deg)}.mobile-control:where(.astro-d3metdb7):is([data-package=node],[data-package=nuxt]){margin-inline-start:4.35rem}.mobile-control:where(.astro-d3metdb7):is([data-package=node],[data-package=nuxt]):before{width:3.3rem;inset-inline-start:-3.3rem}.mobile-relation:where(.astro-d3metdb7){color:var(--qw-muted);text-align:end;margin-inline-start:auto;font-size:.66rem;line-height:1.3;display:block}.mobile-control:where(.astro-d3metdb7)[data-package=nuxt]:before{box-shadow:0 5px 0 var(--qw-path-runtime), 0 10px 0 var(--qw-path-valid)}.mobile-control:where(.astro-d3metdb7):hover,.mobile-control:where(.astro-d3metdb7)[aria-pressed=true]{background:var(--qw-panel-raised)}.mobile-core:where(.astro-d3metdb7){border-radius:var(--qw-radius);background:var(--qw-deep-forest);min-height:5rem;color:var(--qw-dark-text);border:0;margin:0 0 .55rem;padding:.8rem 1rem}.mobile-core:where(.astro-d3metdb7) .package-scope:where(.astro-d3metdb7){color:#f5f6efc7}.mobile-core:where(.astro-d3metdb7) .package-label:where(.astro-d3metdb7) strong:where(.astro-d3metdb7){color:var(--qw-dark-text);font-size:.95rem}.package-details:where(.astro-d3metdb7) article:where(.astro-d3metdb7){grid-template-columns:minmax(0,1fr);min-height:0}}@media (width<=32rem){.weave-key:where(.astro-d3metdb7){display:none}.package-details:where(.astro-d3metdb7){padding-inline:1rem}.detail-meta:where(.astro-d3metdb7)>span:where(.astro-d3metdb7){flex-basis:100%}.detail-meta:where(.astro-d3metdb7)>span:where(.astro-d3metdb7)+span:where(.astro-d3metdb7):before{content:none}}@media (prefers-reduced-motion:reduce){.package-weave:where(.astro-d3metdb7)[data-revealed=true] .thread-line:where(.astro-d3metdb7),.package-weave:where(.astro-d3metdb7)[data-revealed=true] .package-control:where(.astro-d3metdb7),.package-weave:where(.astro-d3metdb7)[data-revealed=true] .mobile-control:where(.astro-d3metdb7),.package-details:where(.astro-d3metdb7) article:where(.astro-d3metdb7){animation:none}.thread-group:where(.astro-d3metdb7),.package-control:where(.astro-d3metdb7),.mobile-control:where(.astro-d3metdb7){transition:none}}
