.callout[data-astro-cid-fgdzrj4n]{padding:.85rem var(--tile-pad) .95rem;border:var(--hairline);border-left:3px solid var(--tag);background:var(--paper);color:var(--text-2);margin:2rem 0}.c-label[data-astro-cid-fgdzrj4n]{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--tag);margin-bottom:.45rem;font-size:11.5px;font-weight:800;line-height:1.5;display:block}.c-body[data-astro-cid-fgdzrj4n]{font-size:1rem;line-height:1.9}.c-body[data-astro-cid-fgdzrj4n]>*+*{margin-top:.6em}.c-body[data-astro-cid-fgdzrj4n] p{text-align:left}.c-body[data-astro-cid-fgdzrj4n] p:first-child{margin-top:0}.c-body[data-astro-cid-fgdzrj4n] p:last-child{margin-bottom:0}@media (width<=640px){.callout[data-astro-cid-fgdzrj4n]{padding-inline:.9rem}.c-body[data-astro-cid-fgdzrj4n]{font-size:.94rem}}.fig[data-astro-cid-i43ozvew]{background:var(--paper);border:var(--rule);margin:2.2rem 0;padding:0}.fig-label[data-astro-cid-i43ozvew]{padding:11px var(--tile-pad) 9px;border-bottom:var(--hairline);font:800 11px/1.4 var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--soft);display:block}.fig-art[data-astro-cid-i43ozvew]{padding:1.6rem var(--tile-pad) 1.2rem;color:var(--text-2);margin-inline:auto}.fig-art[data-astro-cid-i43ozvew] svg{width:100%;height:auto;display:block;overflow:visible}.fig-art[data-astro-cid-i43ozvew] text{font-family:var(--font-display);fill:currentColor;font-size:17px}.fig-art[data-astro-cid-i43ozvew] .small{font-size:14px}.fig-art[data-astro-cid-i43ozvew] .c-cyan{color:var(--ink)}.fig-art[data-astro-cid-i43ozvew] .c-beak{color:var(--rust)}.fig-art[data-astro-cid-i43ozvew] .c-ink{color:var(--ink)}.fig-art[data-astro-cid-i43ozvew] .c-muted{color:var(--soft)}.fig-art[data-astro-cid-i43ozvew] .grid-line{color:var(--hair)}.fig-art[data-astro-cid-i43ozvew] path[stroke=currentColor]{stroke-linecap:round;stroke-linejoin:round}.fig-art[data-astro-cid-i43ozvew] path.c-cyan,.fig-art[data-astro-cid-i43ozvew] path.c-beak{stroke-width:4px}.fig-art[data-astro-cid-i43ozvew] path.c-muted{stroke-width:2px}.fig-art[data-astro-cid-i43ozvew] .grid-line{stroke-width:1px}.fig-art[data-astro-cid-i43ozvew] .f-sun{fill:var(--sun)}.fig-art[data-astro-cid-i43ozvew] .f-mint{fill:var(--mint)}.fig-art[data-astro-cid-i43ozvew] .f-lilac{fill:var(--lilac)}.fig-art[data-astro-cid-i43ozvew] .f-pink{fill:var(--pink)}.fig-art[data-astro-cid-i43ozvew] .f-sky{fill:var(--sky)}.fig-art[data-astro-cid-i43ozvew] .f-paper{fill:var(--paper)}.fig-art[data-astro-cid-i43ozvew] .f-beak{fill:var(--beak)}.fig-art[data-astro-cid-i43ozvew] .f-ink{fill:var(--ink)}.fig-art[data-astro-cid-i43ozvew] .f-none{fill:none}.fig-art[data-astro-cid-i43ozvew] .ink{stroke:var(--ink);stroke-width:2.5px;stroke-linejoin:miter;stroke-linecap:square}.fig-art[data-astro-cid-i43ozvew] .ink-thin{stroke:var(--ink);stroke-width:1.5px;stroke-linejoin:miter;stroke-linecap:square}.fig-art[data-astro-cid-i43ozvew] text.on{fill:var(--on-color)}.fig-art[data-astro-cid-i43ozvew] text.ink-text{fill:var(--ink)}.fig-art[data-astro-cid-i43ozvew] text.mono{font-family:var(--font-mono);font-size:14px}figcaption[data-astro-cid-i43ozvew]{padding:10px var(--tile-pad) 12px;border-top:var(--hairline);color:var(--soft);text-align:left;font-size:.88rem;font-weight:500;line-height:1.6}.cmp[data-astro-cid-7i3x5jfh]{--pos:50%;border:1px solid var(--hair);background:var(--bg-sunken);border-radius:2px;margin:2rem 0;position:relative;overflow:hidden}.cmp-layer[data-astro-cid-7i3x5jfh]{position:absolute;inset:0}.cmp-layer[data-astro-cid-7i3x5jfh]>*{object-fit:cover;width:100%;height:100%}.cmp-before[data-astro-cid-7i3x5jfh]{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.cmp-handle[data-astro-cid-7i3x5jfh]{top:0;bottom:0;left:var(--pos);background:var(--blue);pointer-events:none;width:2px;margin-left:-1px;position:absolute;box-shadow:0 0 0 1px #00000040}.cmp-tag[data-astro-cid-7i3x5jfh]{color:#fff;pointer-events:none;background:#0000008c;border-radius:2px;padding:.2rem .5rem;font-size:.72rem;position:absolute;top:.6rem}.cmp-tag[data-astro-cid-7i3x5jfh].left{left:.6rem}.cmp-tag[data-astro-cid-7i3x5jfh].right{right:.6rem}.cmp[data-astro-cid-7i3x5jfh]:focus-within{outline:2px solid var(--blue);outline-offset:4px}input[data-astro-cid-7i3x5jfh]{opacity:0;cursor:ew-resize;width:100%;height:100%;position:absolute;inset:0}.sp{background:var(--paper);min-width:0;color:var(--ink);border:var(--rule);font-family:var(--font-sans);border-radius:0;margin:2.4rem 0;overflow:hidden;container-type:inline-size}.sp-head{padding:.6rem var(--tile-pad,18px);color:var(--ink);border-bottom:var(--hairline);background:0 0;flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.sp-dot{background:var(--rust);border-radius:0;flex:none;width:7px;height:7px}.sp-dot.err{background:var(--danger)}.sp-title{min-width:0;font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--soft);overflow-wrap:anywhere;font-size:11.5px;font-weight:800;line-height:1.5}.sp-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--soft);font-size:.72rem}.sp-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem;min-width:0;max-width:100%;margin-left:auto;display:flex}.sp-actions button{min-width:2rem;min-height:2rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0;place-items:center;transition:background .15s,border-color .15s;display:inline-grid}.sp-actions button:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.sp :is(button,input):focus-visible{outline:2px solid var(--rust);outline-offset:2px}.sp-text-btn{white-space:nowrap;font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;padding:.2rem .65rem;font-size:.66rem;font-weight:800;line-height:1.5;border-color:var(--hair)!important}.sp-body{grid-template-columns:minmax(0,1fr);display:grid}@container (width>=620px){.sp-body.with-code{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr)}.sp-body.with-code .sp-editor{border-top:0;border-left:var(--hairline)}}.sp-canvas-wrap{background:#191611;min-width:0;position:relative}.sp-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.sp-unsupported{color:#ece7da;text-align:center;place-items:center;height:100%;padding:1rem;font-size:.9rem;display:grid}.sp-editor{border-top:var(--hairline);background:var(--code-bg);min-width:0;overflow:auto}.sp-sliders,.ld-controls{border-top:var(--hairline);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.7rem 1.5rem;padding:1rem;display:grid}.sp-slider{grid-template-columns:minmax(0,auto) minmax(3rem,1fr) 3.4rem;align-items:center;gap:.65rem;min-width:0;display:grid}.sp-slider-label{font-family:var(--font-sans);color:var(--text-2);overflow-wrap:anywhere;font-size:.82rem;line-height:1.6}.sp-slider-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--soft);font-size:.75rem}.sp input[type=range]{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;border-radius:0;width:100%;min-width:0;height:24px}.sp input[type=range]::-webkit-slider-runnable-track{background:var(--hair);border-radius:0;height:4px}.sp input[type=range]::-moz-range-track{background:var(--hair);border-radius:0;height:4px}.sp input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--rust);border:1px solid var(--on-color);border-radius:50%;width:17px;height:17px;margin-top:-6.5px}.sp input[type=range]::-moz-range-thumb{box-sizing:border-box;background:var(--rust);border:1px solid var(--on-color);border-radius:50%;width:17px;height:17px}.sp-errors{border-top:var(--hairline);color:var(--ink);background:var(--bg-sunken);gap:.65rem;padding:.85rem 1rem;font-size:.85rem;line-height:1.7;display:grid}.sp-err{flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem;display:flex}.sp-err-line{font-family:var(--font-sans);color:var(--ink);background:var(--paper);border:1px solid var(--hair);cursor:pointer;border-radius:0;flex:none;padding:.1rem .45rem;font-size:.75rem;line-height:1.7;transition:background .15s}.sp-err-line:hover{background:var(--ui-gold-bg);color:var(--ui-gold-text)}.sp-err-text{overflow-wrap:anywhere;min-width:0}.sp-err-raw{font-family:var(--font-mono);color:var(--soft);overflow-wrap:anywhere;flex-basis:100%;font-size:.72rem}.sp-err-banner{font-family:var(--font-sans);color:var(--ink);background:var(--ui-overlay);border:1px solid var(--hair);pointer-events:none;border-radius:0;align-items:center;gap:.5rem;padding:.5rem .7rem;font-size:.78rem;line-height:1.6;display:flex;position:absolute;top:.6rem;left:.6rem;right:.6rem}.sp-err-banner span{width:1.1rem;height:1.1rem;color:var(--paper);background:var(--danger);border-radius:50%;flex:none;place-items:center;font-weight:500;display:grid}.sp-actions .sp-text-btn.warn{background:var(--ui-gold-bg);color:var(--ui-gold-text);border-color:#0000}.sp-hints{border-top:var(--hairline);gap:.65rem;padding:.85rem 1rem;display:grid}.sp-hint-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.sp-hints-label{font-family:var(--font-sans);color:var(--soft);margin-right:.3rem;font-size:.78rem;font-weight:600}.sp-hint{font-family:var(--font-sans);color:var(--text-2);border:1px solid var(--hair);cursor:pointer;background:0 0;border-radius:0;padding:.3rem .65rem;font-size:.78rem;line-height:1.6;transition:background .15s,border-color .15s}.sp-hint:hover{background:var(--ink);color:var(--paper);border-color:var(--soft)}.sp-hint.on{color:var(--ui-blue-text);background:var(--ui-blue-bg);border-color:#0000}.sp-hint.on:before{content:"✓ "}.sp-hint-msg{color:var(--soft);margin:0;font-size:.8rem;line-height:1.8}.sp-hint-msg.active{color:var(--ink)}.sp figcaption{border-top:var(--hairline);color:var(--soft);padding:.8rem 1rem;font-size:.82rem;line-height:1.8}.splot-expr{border-top:var(--hairline);align-items:center;gap:.65rem;padding:.85rem 1rem;display:flex}.splot-expr label{font-family:var(--font-mono);white-space:nowrap;font-size:.85rem}.splot-expr input{border:1px solid var(--hair);background:var(--code-bg);min-width:0;height:2.4rem;color:var(--ink);font-family:var(--font-mono);border-radius:0;flex:1;padding:0 .7rem;font-size:.83rem}.splot-expr input:focus{background:var(--paper);border-color:var(--soft)}.splot-presets{flex-wrap:wrap;gap:.5rem;padding:0 1rem 1rem;display:flex}.splot-presets button{max-width:100%;font-family:var(--font-mono);overflow-wrap:anywhere;border:1px solid var(--hair);color:var(--text-2);background:0 0;border-radius:0;padding:.3rem .6rem;font-size:.73rem;transition:background .15s,border-color .15s}.splot-presets button:hover{border-color:var(--soft);background:var(--ink);color:var(--paper)}.splot-presets button[aria-pressed=true]{background:var(--ui-blue-bg);color:var(--ui-blue-text);border-color:#0000}.ld-stage{background:var(--sky);position:relative}.ld-stage canvas{cursor:grab;width:100%;height:100%;display:block}.ld-seg{background:var(--bg-sunken);border:1px solid var(--hair);border-radius:6px;flex-wrap:wrap;gap:2px;max-width:100%;padding:2px;display:inline-flex}.ld-seg button{font-family:var(--font-sans);color:var(--ink);border-radius:0;padding:.15rem .6rem;font-size:.76rem;line-height:1.6}.ld-seg button[aria-pressed=true]{background:var(--ui-blue-bg);color:var(--ui-blue-text)}:root[data-theme=dark] .sp :is(.splot-expr input,.sp-hint,.splot-presets button){border-color:var(--ui-control-line)}.boids-canvas{cursor:default}@container (width<=440px){.sp-head{gap:.5rem;padding:.7rem .85rem}.sp-title{flex:1;font-size:.95rem}.sp-actions{flex-basis:100%;justify-content:flex-start;margin-left:0}.sp-sliders,.ld-controls{padding:.85rem}.sp-slider{grid-template-columns:minmax(0,auto) minmax(2.5rem,1fr) 3rem;gap:.5rem}.sp-slider-label{max-width:8rem;font-size:.76rem}}:root[data-theme=dark] .sp :is(button,input):focus-visible{outline-color:var(--ui-focus)}:root[data-theme=dark] .sp-actions button:hover,:root[data-theme=dark] .sp-hint:hover,:root[data-theme=dark] .splot-presets button:hover{background:var(--ui-blue-bg);color:var(--ui-blue-text);border-color:var(--ui-line)}:root[data-theme=dark] .sp-actions .sp-text-btn.warn:hover,:root[data-theme=dark] .sp-errors{background:var(--ui-gold-bg);color:var(--ui-gold-text)}:root[data-theme=dark] .sp input[type=range]::-webkit-slider-thumb{background:var(--ui-focus);border-color:var(--ui-control-line)}:root[data-theme=dark] .sp input[type=range]::-moz-range-thumb{background:var(--ui-focus);border-color:var(--ui-control-line)}
