.lab{--lab-bg:var(--r2s-bg,#f4efe4);--lab-surface:var(--r2s-surface,#fffdf8);--lab-ink:var(--r2s-ink,#1c1a17);--lab-muted:var(--r2s-muted,#5b554c);--lab-border:var(--r2s-border,#cfc6b4);--lab-border-strong:var(--r2s-border-strong,#8f877a);--lab-accent:var(--r2s-accent,#b4451f);--lab-accent-ink:var(--r2s-accent-ink,#ffffff);--lab-ok:var(--r2s-ok,#2f6b3a);--lab-warn:var(--r2s-warn,#8a5a00);--lab-danger:var(--r2s-danger,#a12929);--lab-shadow:var(--r2s-shadow,4px 4px 0 var(--lab-ink));--lab-radius:var(--r2s-radius,6px);--lab-mono:var(--r2s-font-mono,"Space Mono",ui-monospace,"Cascadia Mono",Consolas,monospace);max-width:960px;margin-inline:auto;color:var(--lab-ink);font-family:var(--r2s-font-sans,"Instrument Sans","Segoe UI",system-ui,sans-serif)}.lab-intro{margin-bottom:var(--r2s-space-5,2rem)}.lab .lede{color:var(--lab-muted);max-width:60ch}.lab .eyebrow{margin:0 0 .4rem;color:var(--lab-accent);font:700 .74rem/1.3 var(--lab-mono);letter-spacing:.06em;text-transform:uppercase}.lab-controls,.lab-results{padding:1.35rem;border:1px solid var(--lab-border-strong);border-radius:var(--lab-radius);background:var(--lab-surface);box-shadow:var(--lab-shadow)}.lab-controls{display:grid;gap:1.2rem}.lab fieldset{border:0;padding:0;margin:0;min-width:0}.lab legend{font-weight:700;margin-bottom:.65rem}.template-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.mystery-toggle,.template-choice{display:flex;gap:.65rem;align-items:flex-start;min-height:44px;padding:.8rem;border:1px solid var(--lab-border-strong);border-radius:var(--lab-radius);background:var(--lab-surface);cursor:pointer;transition:border-color .12s ease-out,box-shadow .12s ease-out,transform .12s ease-out}.mystery-toggle:active:not(:has(input:disabled)),.template-choice:active:not(:has(input:disabled)){transform:translate(1px,1px);box-shadow:1px 1px 0 var(--lab-accent)}.mystery-toggle:hover,.template-choice:hover{border-color:var(--lab-ink)}.mystery-toggle:has(input:checked),.template-choice:has(input:checked){border-color:var(--lab-ink);box-shadow:3px 3px 0 var(--lab-accent);transform:translate(-1px,-1px)}.mystery-toggle:has(input:focus-visible),.template-choice:has(input:focus-visible){outline:3px solid var(--r2s-focus,var(--lab-accent));outline-offset:2px}.mystery-toggle:has(input:disabled){cursor:not-allowed;color:var(--lab-muted);background:var(--lab-bg);border-style:dashed}.mystery-toggle span,.template-choice span{display:grid;gap:.1rem}.mystery-toggle small,.template-choice small{color:var(--lab-muted);font-size:.8rem;line-height:1.3}.lab input[type=checkbox],.lab input[type=radio]{appearance:none;flex:none;box-sizing:border-box;width:1.1rem;height:1.1rem;padding:0;margin:.2rem 0 0;border:1.5px solid var(--lab-ink);background:var(--lab-surface);display:grid;place-content:center;cursor:inherit}.lab input[type=radio]{border-radius:50%}.lab input[type=checkbox]{border-radius:3px}.lab input[type=radio]:before{content:"";width:.5rem;height:.5rem;border-radius:50%;transform:scale(0);background:var(--lab-accent)}.lab input[type=checkbox]:before{content:"";width:.55rem;height:.3rem;margin-top:-.15rem;border:solid var(--lab-accent-ink);border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0)}.lab input[type=radio]:checked:before{transform:scale(1)}.lab input[type=checkbox]:checked{background:var(--lab-accent);border-color:var(--lab-accent)}.lab input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}.lab input:focus-visible{outline:none}.lab input:disabled{border-color:var(--lab-muted);opacity:.7}.mystery-toggle{max-width:420px}.lab-actions{display:flex;gap:.85rem;flex-wrap:wrap}.lab button{margin:0;min-height:44px;padding:.65rem 1.15rem;font-family:inherit;font-size:.95rem;font-weight:700;line-height:1.2;color:var(--lab-accent-ink);background:var(--lab-ink);border:1px solid var(--lab-ink);border-radius:var(--lab-radius);box-shadow:3px 3px 0 var(--lab-accent);cursor:pointer;transition:transform .1s,box-shadow .1s,background-color .12s}.lab button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--lab-accent)}.lab button:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--lab-accent)}.lab button:focus-visible{outline:3px solid var(--r2s-focus,var(--lab-accent));outline-offset:3px}.lab button.secondary{color:var(--lab-ink);background:var(--lab-surface);box-shadow:var(--lab-shadow)}.lab button.secondary:hover:not(:disabled){box-shadow:4px 4px 0 var(--r2s-shadow-ink,#1c1a17)}.lab button.secondary:active:not(:disabled){box-shadow:1px 1px 0 var(--r2s-shadow-ink,#1c1a17)}.lab button:disabled{cursor:not-allowed;color:var(--lab-muted);background:var(--lab-bg);border-color:var(--lab-border);box-shadow:none}.field-note,.lab-status,.limitations{color:var(--lab-muted);font-size:.9rem}.field-note,.limitations,.mystery-toggle small,.template-choice small{text-wrap:pretty}.lab-status{min-height:1.6em;margin-block:1.25rem 1rem;padding:.55rem .8rem;border-left:3px solid var(--lab-border-strong);transition:border-color .15s ease-out,background-color .15s ease-out}.lab-status.status-fitting,.lab-status.status-running{border-left-color:var(--lab-warn);color:var(--lab-ink)}.lab-status.status-fitted,.lab-status.status-ready{border-left-color:var(--lab-ok);color:var(--lab-ink)}.lab-status.status-error{border-left-color:var(--lab-danger);color:var(--lab-danger);background:color-mix(in srgb,var(--lab-danger) 7%,transparent)}.lab-results{margin-top:1rem;display:grid;gap:1rem}.result-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start}.result-heading h2,.reveal h2{margin:0 0 .25rem}.lab .badge{padding:.2rem .55rem;border:1px solid var(--lab-ink);border-radius:3px;color:var(--lab-ink);font:700 .74rem/1.4 var(--lab-mono);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.lab .badge,.plot-wrap{background:var(--lab-bg)}.plot-wrap{margin:0;overflow-x:auto;border:1px solid var(--lab-border);border-radius:var(--lab-radius)}.trajectory-plot{display:block;width:100%;height:220px;color:var(--lab-accent)}.trajectory-plot polyline{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linejoin:round}.trajectory-plot line{stroke:var(--lab-ink);stroke-width:1}.trajectory-plot text{fill:var(--lab-muted);font:11px var(--lab-mono)}.table-wrap{overflow-x:auto}.lab table{width:100%;border-collapse:collapse;font-size:.9rem}.lab caption{text-align:left;font-weight:700;margin-bottom:.4rem}.lab td,.lab th{padding:.45rem .6rem;border-bottom:1px solid var(--lab-border);text-align:left}.lab th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--lab-muted);border-bottom-color:var(--lab-ink)}.lab td{font-family:var(--lab-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lab tbody tr{transition:background-color .15s ease-out}.lab tbody tr:hover,.reveal{background:var(--lab-bg)}.reveal{padding:1rem 1.15rem;border:1px solid var(--lab-ink);border-left:6px solid var(--lab-accent);border-radius:var(--lab-radius);overflow-wrap:anywhere}.reveal h2{font-family:var(--lab-mono);font-size:clamp(1.3rem,4vw,1.9rem)}.reveal p{margin:0 0 .25rem}.lab-browser-sim{display:grid;gap:.75rem;padding-top:1rem;border-top:1px dashed var(--lab-border)}.lab-browser-sim h2,.lab-browser-sim p{margin:0}.lab-browser-sim svg{color:var(--lab-ink);border:1px solid var(--lab-border);border-radius:var(--lab-radius);background:var(--lab-bg)}.lab-browser-sim svg text{fill:var(--lab-muted);font:11px var(--lab-mono)}.lab-browser-sim button{justify-self:start}.limitations{margin:0;padding-top:.85rem;border-top:1px solid var(--lab-border)}@media (max-width:650px){.template-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:390px){.lab-controls,.lab-results{padding:1rem;box-shadow:var(--r2s-shadow-sm,3px 3px 0 #1c1a17)}.template-grid{grid-template-columns:1fr}.result-heading{display:block}.lab .badge{display:inline-block;margin-top:.3rem}}@media (prefers-reduced-motion:reduce){.lab *,.lab :before{transition:none!important}.lab button:active:not(:disabled),.lab button:hover:not(:disabled),.mystery-toggle:active,.template-choice:active,.template-choice:has(input:checked){transform:none}}.lab{max-width:1120px}.lab-layout{display:grid;gap:1.25rem;align-items:start}@media (min-width:900px){.lab-layout{grid-template-columns:minmax(0,22rem) minmax(0,1fr)}.lab-layout .template-grid{grid-template-columns:repeat(2,1fr)}.lab-left{position:sticky;top:1rem}}.lab-right>.lab-results{margin-top:0}.lab-empty{display:grid;justify-items:center;gap:.5rem;padding:2rem 1rem;text-align:center;border:1.5px dashed var(--lab-border-strong);border-radius:var(--lab-radius);background:var(--lab-surface)}.lab-empty .art img{width:auto;height:200px;max-width:100%;object-fit:contain}.lab-empty p{margin:0;font-weight:600}.lab-chart{position:relative}.lab-chart>.chart-chip{position:absolute;top:.5rem;left:.5rem;z-index:1;padding:.15rem .45rem;border:1px solid;border-radius:3px;background:var(--lab-surface);color:var(--lab-accent);font:700 .7rem/1.3 var(--lab-mono);letter-spacing:.05em;pointer-events:none}main:has(.lab-toggle-editor){padding-top:.75rem}