.visualization-page{max-width:var(--page-width);margin:0 auto;min-width:0}.viz-intro{max-width:var(--page-width);margin:0 auto 2rem;padding-top:48px;display:grid;gap:1rem}.viz-intro h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.2}.viz-notice{border-left:2px solid var(--action);padding-left:1rem;font-size:.9rem}.viz-overview{margin:2rem 0;border-block:1px solid var(--rule);padding:1rem 0}.viz-overview ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 2rem;list-style:none;padding:0}.viz-overview span{font-family:var(--font-mono);color:var(--action)}.viz-step{border-bottom:1px solid var(--rule);padding:2rem 0;scroll-margin-top:2rem;overflow-wrap:anywhere}.viz-step h2{margin-bottom:.8rem}.viz-step dl{display:grid;gap:1rem}.viz-step dt{font-weight:600}.viz-step dd{margin:.3rem 0 0;color:var(--text)}.viz-reading{display:grid;gap:.5rem;font-size:.9rem}.project-visualizations{max-width:var(--page-width);margin:2.5rem auto;padding-block:1.5rem;border-block:1px solid var(--rule)}.project-visualizations h2{margin-bottom:1rem}.project-visualizations article+article{margin-top:1rem}@media(max-width:600px){.viz-overview ol{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.visualization-page *,.visualization-page *:before,.visualization-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.viz-controls{border-bottom:1px solid var(--rule);padding:1rem 0}.viz-controls[hidden],.viz-step[hidden]{display:none}.viz-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.viz-buttons button{padding:.5rem 1rem;min-height:44px;border:1px solid var(--rule);border-radius:3px;color:var(--text);background:var(--canvas);cursor:pointer}.viz-buttons button[aria-pressed=true]{border-color:var(--action);color:var(--action)}.viz-buttons button:disabled{opacity:.45;cursor:default}.viz-hint,.viz-neighbors{font-size:.85rem;color:var(--text);margin-block:.75rem}.viz-workspace{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:2rem;align-items:start}.viz-graph-scroll{max-height:600px;overflow-y:auto;overscroll-behavior:contain;margin-top:2rem;border:1px solid var(--rule);border-radius:4px}.viz-graph{display:block;width:100%;height:auto}.viz-graph rect{fill:var(--canvas);stroke:var(--rule);stroke-width:1.5;transition:stroke .2s}.viz-graph text{fill:var(--text);font:15px var(--font-sans)}.viz-graph .viz-node-id{fill:var(--text);font:12px var(--font-mono)}.viz-graph a[data-state=current] rect{stroke:var(--action);stroke-width:3}.viz-graph a[data-state=completed] rect{stroke:var(--action);stroke-dasharray:4 3}.viz-graph a:focus rect{stroke:var(--text);stroke-width:4}.viz-edge{stroke:var(--text);color:var(--text);fill:none;stroke-width:2}.viz-edge[data-state=completed]{stroke:var(--action);color:var(--action)}.viz-overview [aria-current=step]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.viz-step,.viz-steps{min-width:0}[data-ready] .viz-step:not([hidden]){animation:viz-reveal .2s ease-out}.viz-flow{display:flex;justify-content:space-between;gap:.5rem;border-block:1px solid var(--rule);padding:.8rem 0;margin:1rem 0;font-size:.85rem;color:var(--action)}.viz-source{border-top:1px solid var(--rule);padding-block:1rem;margin-top:1rem;font-size:.9rem}.viz-source h3{font-size:1rem}.viz-source pre{max-width:100%;overflow-x:auto;padding:1rem;border:1px solid var(--rule);background:var(--canvas);color:var(--text);font-size:.75rem;line-height:1.6;white-space:pre}.viz-source p{margin-block:.8rem}@keyframes viz-reveal{0%{opacity:.65}to{opacity:1}}@media(max-width:700px){.viz-workspace{grid-template-columns:minmax(0,1fr);gap:0}.viz-graph-scroll{max-height:300px;max-width:360px;width:100%;margin:1rem auto 0}}@media print{.viz-controls,.viz-graph-scroll{display:none!important}.viz-workspace{display:block}.viz-step[hidden]{display:block!important}.viz-source pre{white-space:pre-wrap}}.parameter-lab{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--rule);min-width:0}.parameter-lab h2{margin-block:1rem}.lab-actions{margin-top:1.5rem}.lab-fields,.lab-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-block:1.5rem}.lab-fields fieldset{min-width:0;border:1px solid var(--rule);padding:1rem}.lab-fields legend{padding-inline:.4rem;font-weight:600;color:var(--ink)}.lab-field{display:grid;gap:.5rem;margin-bottom:1rem}.lab-field label{font-weight:600}.lab-field label small{font-weight:400}.lab-field input{width:100%;min-width:0;min-height:44px;padding:.4rem .7rem;border:1px solid var(--rule);border-radius:3px;background:var(--canvas);color:var(--ink);font:inherit}.lab-field input[aria-invalid=true]{border:2px solid var(--action)}.lab-field details{font-size:.85rem;overflow-wrap:anywhere}.lab-field summary{cursor:pointer;padding-block:.25rem}.lab-field details p{margin-block:.6rem}.lab-field dt{font-weight:600}.lab-field dd{margin:.2rem 0 .7rem}.lab-results section{min-width:0;border-top:1px solid var(--rule);padding-top:1rem;overflow-wrap:anywhere}.lab-results h3{margin-bottom:1rem}.lab-results p{margin-block:.8rem}.lab-results strong{color:var(--ink)}.lab-results[hidden]{display:none}.lab-wide{grid-column:1 / -1}.lab-error{color:var(--action);font-weight:600}.lab-chart{display:block;width:100%;max-width:800px;margin:1rem auto}.lab-chart text{font:15px var(--font-mono);fill:var(--text)}.lab-axis{stroke:var(--text);fill:none}.lab-curve{fill:none;stroke-width:2}.lab-chosen{stroke:var(--action);stroke-width:3}.lab-30{stroke:var(--text);stroke-dasharray:8 5}.lab-112{stroke:var(--ink);stroke-dasharray:2 5}.lab-chart circle{fill:var(--action);stroke:var(--canvas);stroke-width:2}.lab-legend{font-size:.85rem}.lab-token-bar{display:flex;height:24px;border:1px solid var(--text)}.lab-token-bar span:first-child{background:var(--surface);border-right:2px dashed var(--text)}.lab-token-bar span:last-child{background:var(--action)}@media(max-width:700px){.lab-fields,.lab-results{grid-template-columns:minmax(0,1fr)}}@media print{.lab-actions{display:none}.lab-field details{display:block}}@media(max-width:700px){.lab-chart text{font-size:28px}}.lab-summary{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem 1rem;padding:.8rem;margin-top:1rem;border:1px solid var(--rule);background:var(--canvas);box-shadow:0 2px 8px #0001;font-size:.8rem}.lab-summary div{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.lab-summary strong{color:var(--ink)}.lab-summary p{grid-column:1/-1;margin:0}.lab-summary[hidden]{display:none}@media(max-width:700px){.lab-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .5rem;font-size:.72rem;padding:.5rem}}@media print{.lab-summary{position:static}}
