.spark-fig{--sp-bytes:var(--viz-series-4);--sp-tokens:var(--viz-series-5);--sp-nv:var(--viz-series-1);--sp-mx:var(--viz-series-2);--sp-draft:var(--viz-series-3);--sp-target:var(--viz-series-1);--sp-good:var(--viz-good);--sp-bad:var(--viz-bad);--sp-rest:color-mix(in oklab, var(--viz-ink-muted) 40%, var(--viz-panel));overflow:visible}.spark-fig *{box-sizing:border-box}.spark-fig .viz-title{margin-bottom:.25rem;letter-spacing:-.01em}.spark-fig .sp-sub{font-size:.85rem;line-height:1.5;color:var(--viz-ink-dim);margin:0 0 1rem}.spark-fig .sp-stage{position:relative;width:100%;touch-action:pan-y}.spark-fig .sp-stage svg{display:block;width:100%;height:auto;overflow:visible}.spark-fig .sp-controls{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;margin:1rem 0 .25rem;align-items:flex-end}.spark-fig .sp-ctl{display:flex;flex-direction:column;gap:.35rem;min-width:0;flex:1 1 200px}.spark-fig .sp-ctl.compact{flex:initial}.spark-fig .sp-ctl>span{font-size:.78rem;color:var(--viz-ink-muted)}.spark-fig .sp-ctl>span b{font-family:var(--viz-mono);font-weight:500;color:var(--viz-ink);font-variant-numeric:tabular-nums}.spark-fig input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:var(--viz-border-strong);outline:none;margin:.45rem 0}.spark-fig input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--viz-ink);border:3px solid var(--viz-panel);box-shadow:0 0 0 1px var(--viz-border-strong);cursor:pointer}.spark-fig input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--viz-ink);border:3px solid var(--viz-panel);cursor:pointer}.spark-fig input[type=range]:focus-visible{outline:2px solid var(--viz-series-5);outline-offset:4px}.spark-fig .sp-seg{display:flex;flex-wrap:wrap;gap:.3rem}.spark-fig .sp-seg .viz-btn{font-size:.78rem;padding:.3rem .6rem}.spark-fig .sp-readouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:.5rem;margin-top:1rem}.spark-fig .sp-chip{background:var(--viz-raised);border:1px solid var(--viz-border);border-radius:8px;padding:.55rem .7rem;min-width:0}.spark-fig .sp-chip .k{font-size:.74rem;line-height:1.3;color:var(--viz-ink-muted)}.spark-fig .sp-chip .v{font-family:var(--viz-mono);font-variant-numeric:tabular-nums;font-size:1.02rem;margin-top:.2rem;color:var(--viz-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spark-fig .sp-chip .v small{font-size:.72rem;color:var(--viz-ink-muted)}.spark-fig .sp-note{font-size:.88rem;line-height:1.6;color:var(--viz-ink-dim);margin:1rem 0 0;min-height:3.2em}.spark-fig .sp-note b{color:var(--viz-ink);font-weight:600}.spark-fig .sp-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.76rem;color:var(--viz-ink-muted);margin:.6rem 0 0}.spark-fig .sp-legend i{display:inline-block;width:.8rem;height:.8rem;border-radius:2px;vertical-align:-.12rem;margin-right:.35rem}.spark-fig .sp-legend i.line{height:0;border-top:2px dashed var(--viz-ink-muted);border-radius:0;vertical-align:.2rem}.spark-fig svg text{font-size:11px;fill:var(--viz-ink-muted);font-family:var(--viz-sans)}.spark-fig svg text.num{font-family:var(--viz-mono);font-variant-numeric:tabular-nums}.spark-fig svg text.strong{fill:var(--viz-ink);font-weight:600}.spark-fig svg text.ink{fill:var(--viz-ink)}.spark-fig svg text.mono{font-family:var(--viz-mono)}.spark-fig svg .grid{stroke:var(--viz-grid);stroke-width:1}.spark-fig svg .axis{stroke:var(--viz-border-strong);stroke-width:1;fill:none}.spark-fig svg .ceil{stroke:var(--viz-ink-muted);stroke-width:1.5;stroke-dasharray:5 4;fill:none}.spark-fig svg .bytes{fill:var(--sp-bytes);stroke:var(--sp-bytes)}.spark-fig svg .tokens{fill:var(--sp-tokens);stroke:var(--sp-tokens)}.spark-fig svg .base{fill:var(--sp-rest);stroke:var(--sp-rest)}.spark-fig svg .nv{fill:var(--sp-nv);stroke:var(--sp-nv)}.spark-fig svg .mx{fill:var(--sp-mx);stroke:var(--sp-mx)}.spark-fig svg .draft{fill:var(--sp-draft);stroke:var(--sp-draft)}.spark-fig svg .target{fill:var(--sp-target);stroke:var(--sp-target)}.spark-fig svg .ok{fill:var(--sp-good);stroke:var(--sp-good)}.spark-fig svg .no{fill:var(--sp-bad);stroke:var(--sp-bad)}.spark-fig svg .soft{fill-opacity:.18;stroke-opacity:.9}.spark-fig svg .hit{fill:transparent;cursor:pointer}.spark-fig svg .bar{transition:width .35s ease,x .35s ease,y .35s ease,height .35s ease}.spark-fig svg .focus-row{fill:var(--viz-raised)}.spark-fig svg .handle{cursor:ns-resize}.spark-fig svg .cell{fill:var(--viz-bg);stroke:var(--viz-border-strong);stroke-width:1}.spark-fig .sp-steps{display:flex;gap:.35rem;flex-wrap:wrap;margin:.9rem 0 0}.spark-fig .sp-steps .viz-btn{font-size:.76rem;padding:.28rem .55rem}@media(max-width:560px){.spark-fig.viz{padding:.9rem}.spark-fig svg text{font-size:10px}}@media(prefers-reduced-motion:reduce){.spark-fig svg .bar{transition:none}}.spark-fig .sp-table-wrap{overflow-x:auto;margin-top:.9rem}.spark-fig .sp-table{width:100%;border-collapse:collapse;font-size:.78rem;font-variant-numeric:tabular-nums}.spark-fig .sp-table th,.spark-fig .sp-table td{text-align:left;padding:.3rem .5rem;border-bottom:1px solid var(--viz-border);color:var(--viz-ink-dim);white-space:nowrap}.spark-fig .sp-table th{color:var(--viz-ink-muted);font-weight:500}.spark-fig .sp-table td:last-child{white-space:normal;min-width:12rem}.spark-fig .sp-table code{font-family:var(--viz-mono);font-size:.76rem;color:var(--viz-ink);background:0 0;padding:0}