.cst{display:grid;gap:1.25rem}.cst-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0;padding:0;list-style:none;font-size:.8125rem;color:var(--viz-ink-muted)}.cst-legend li{display:inline-flex;align-items:center;gap:.5rem;--mark: var(--viz-ink-muted)}.cst-config{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--viz-ink);margin:0 0 .375rem}.cst-swatch{width:.625rem;height:.625rem;border-radius:9999px;background:var(--mark)}.cst-rows{list-style:none;margin:0;padding:0;display:grid;gap:2px}.cst-row{display:grid;grid-template-columns:7.5rem minmax(9.5rem,13rem) 8.75rem minmax(6rem,1fr) 5.5rem;align-items:center;gap:.75rem;min-height:2.5rem;padding:.25rem .625rem;border-radius:.625rem;outline:none;transition:background-color var(--viz-dur-micro) ease}.cst-row:hover,.cst-row:focus-visible{background:var(--viz-wash)}.cst-row:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.cst-prompt{font-size:.8125rem;color:var(--viz-ink)}.cst-strip{display:flex;gap:3px}.cst-mark{position:relative;display:inline-grid;place-items:center;flex:none;width:.875rem;height:.875rem;border-radius:4px;background:var(--mark)}.cst-mark[data-outcome=miss]{background:transparent;box-shadow:inset 0 0 0 1.5px var(--mark);border-radius:9999px}.cst-mark[data-outcome=wrong]{background:var(--pbc-muted-mark)}.cst-mark[data-outcome=other]{background:transparent;box-shadow:inset 0 0 0 1px var(--pbc-muted-mark)}.cst-mark svg{width:.625rem;height:.625rem;stroke:var(--viz-ink);stroke-width:1.6;stroke-linecap:round}.cst-legend .cst-mark[data-outcome=wrong]{background:var(--pbc-muted-mark)}.cst-rate,.cst-distinct,.cst-time{display:grid;gap:.0625rem;font-size:.75rem;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--viz-ink-muted)}.cst-rate strong,.cst-distinct strong,.cst-time strong{font-size:.8125rem;font-weight:600;color:var(--viz-ink)}.cst-time{text-align:right}.cst-row:hover .cst-mark[data-outcome=pass],.cst-row:focus-visible .cst-mark[data-outcome=pass]{filter:drop-shadow(0 0 5px color-mix(in oklab,var(--mark) var(--viz-glow),transparent))}@media (max-width: 639px){.cst-row{grid-template-columns:1fr auto;grid-template-areas:"prompt rate" "strip strip" "distinct time";row-gap:.375rem;padding:.5rem .625rem}.cst-prompt{grid-area:prompt}.cst-strip{grid-area:strip}.cst-rate{grid-area:rate;text-align:right}.cst-distinct{grid-area:distinct;grid-auto-flow:column;justify-content:start;gap:.5rem}.cst-time{grid-area:time;grid-auto-flow:column;gap:.5rem}.cst-mark{width:1.125rem;height:1.125rem}}.cst[data-reveal=pending] .cst-mark{opacity:0;transform:scale(.4)}.cst[data-reveal=pending] .cst-rate,.cst[data-reveal=pending] .cst-distinct,.cst[data-reveal=pending] .cst-time{opacity:0}.cst[data-reveal=in] .cst-strip .cst-mark{transition:opacity var(--viz-dur-ui) ease,transform var(--viz-dur-mark) var(--viz-ease-emph);transition-delay:calc(var(--viz-delay-marks) + min(var(--i, 0) * var(--viz-stagger-row),var(--viz-stagger-cap)) + min(var(--k, 0) * 12ms,.4s))}.cst[data-reveal=in] .cst-rate,.cst[data-reveal=in] .cst-distinct,.cst[data-reveal=in] .cst-time{transition:opacity var(--viz-dur-ui) ease calc(var(--viz-delay-marks) + var(--viz-dur-mark) + min(var(--i, 0) * var(--viz-stagger-row),var(--viz-stagger-cap)))}@media (prefers-reduced-motion: reduce){.cst *{transition:none!important}}@media (forced-colors: active){.cst-mark{forced-color-adjust:none;background:CanvasText}.cst-mark[data-outcome=miss],.cst-mark[data-outcome=other]{background:Canvas;box-shadow:inset 0 0 0 1.5px CanvasText}.cst-mark[data-outcome=wrong]{background:Canvas;box-shadow:inset 0 0 0 1px CanvasText}.cst-mark svg{stroke:CanvasText}.cst-swatch{forced-color-adjust:none;background:CanvasText}}
