/* Reachability method equations and the self-contained trajectory explorer. */
.reach-method-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch;gap:2.25rem;margin:.5rem 0 1.5rem}
.reach-method-copy{display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.method-panel .reach-method-copy p{max-width:none;margin:0 0 .75rem;font-family:var(--text-sans);font-size:1.0625rem;line-height:1.6;color:var(--ink)}
.method-panel .reach-method-copy p strong{font-family:inherit}
.method-panel .reach-method-copy .reach-method-intro{margin-bottom:.875rem}
.method-panel .reach-method-copy p:last-child{margin-bottom:0}
.reach-math{display:flex;flex-direction:column;justify-content:center;gap:.35rem;padding:.1rem 0 .75rem;overflow-x:auto;color:var(--ink)}
.reach-math math{margin:0 auto;font-size:1.375rem;flex-shrink:0}
.reach-math-normalization{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.3rem .5rem}
.reach-math-normalization math{margin:0}
.reach-network-diagram{display:flex;flex-direction:column;justify-content:center;min-width:0;margin:0;padding:1.25rem 1rem 1rem;border:1px solid var(--ink-12);border-radius:.75rem;background:color-mix(in srgb,var(--ink) 2%,var(--paper))}
.reach-network-diagram h4{margin:0 0 .85rem;font-size:1rem;font-weight:600;line-height:1.4;color:var(--ink)}
.reach-network-diagram img{display:block;width:100%;height:auto}
.method .reach-network-diagram figcaption{margin:.4rem .35rem 0;text-align:left;font-size:.75rem;line-height:1.6;color:var(--text-muted)}
@media(max-width:1000px){.reach-method-layout{gap:1.25rem}.reach-network-diagram{padding:1rem .65rem}.reach-math math{font-size:1.25rem}}
@media(max-width:1100px){.reach-method-layout{grid-template-columns:1fr;gap:1.25rem}.reach-network-diagram{max-width:620px;width:100%;margin-inline:auto}}
.reach-explorer{--reach-initial:#6250ac;--reach-goal:#ad541a;--reach-subtle:#f7f6fa;--reach-line:#e3e0e9;margin:2rem 0 0;padding:1.6rem;border:1px solid var(--reach-line);border-radius:1rem;background:var(--paper);color:var(--ink)}
.reach-explorer button,.reach-explorer select,.reach-explorer input{font:inherit}
.reach-explorer button,.reach-explorer select{cursor:pointer}
.reach-explorer button:disabled,.reach-explorer select:disabled{cursor:default;opacity:.45}
.reach-explorer-head{margin-bottom:1rem}
.reach-eyebrow{display:block;font-size:.72rem;line-height:1.5;letter-spacing:.06em;text-transform:uppercase;color:var(--reach-initial);font-weight:600}
.reach-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--reach-line)}
.reach-task-buttons{display:flex;flex-wrap:wrap;gap:.4rem}
.reach-task-buttons button{border:1px solid var(--reach-line);border-radius:var(--r-pill);padding:.5rem .8rem;background:var(--paper);font-size:.8125rem;line-height:1.4;color:var(--text-muted)}
.reach-task-buttons button[aria-pressed="true"]{background:var(--reach-initial);color:#fff;border-color:var(--reach-initial)}
.reach-task-buttons button:hover:not([aria-pressed="true"]){background:var(--reach-subtle);color:var(--reach-initial)}
.reach-trajectory-label{display:flex;align-items:center;gap:.5rem;font-size:.8rem;line-height:1.4;flex-shrink:0;color:var(--text-muted)}
.reach-trajectory-label select{width:20rem;max-width:320px;min-width:0;background:var(--paper);color:var(--ink);padding:.5rem .6rem;border:1px solid var(--reach-line);border-radius:.4rem;font-size:.8rem}
.method-panel .reach-instruction{max-width:none;margin:1rem 0 1.3rem;font-size:.9rem;line-height:1.5;color:var(--ink)}
.method-panel .reach-load-status{font-size:.85rem;padding:1.5rem 0}
.reach-retry{border:1px solid var(--reach-line);border-radius:.4rem;background:var(--paper);color:var(--reach-initial);padding:.5rem .8rem;margin-bottom:1rem}
.reach-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:stretch;gap:1.25rem}
.reach-explorer [hidden]{display:none!important}
.reach-frames-pane,.reach-curves-pane{min-width:0}
.reach-curves-pane{display:flex;flex-direction:column;border-left:1px solid var(--reach-line);padding-left:1.25rem}
.reach-pane-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.8rem;font-size:.75rem;color:var(--text-muted)}
.reach-pane-heading h4{font-size:.95rem;color:var(--ink);margin:0;font-weight:600}
.reach-frame-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.reach-selection-mode{display:flex;flex-wrap:wrap;gap:.4rem}
.reach-frame-toolbar button{font-size:.75rem;line-height:1.4;border:1px solid var(--reach-line);border-radius:.35rem;padding:.45rem .6rem;background:var(--paper);color:var(--text-muted)}
.reach-selection-mode [data-reach-mode="initial"][aria-pressed="true"]{background:var(--reach-initial);border-color:var(--reach-initial);color:#fff}
.reach-selection-mode [data-reach-mode="goal"][aria-pressed="true"]{background:var(--reach-goal);border-color:var(--reach-goal);color:#fff}
.method-panel .reach-frame-hint{font-size:.75rem;line-height:1.5;margin:.5rem 0 .65rem}
.reach-frame-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.4rem}
.reach-thumb{display:block;min-width:0;padding:0;background:var(--paper);border:2px solid transparent;border-radius:.35rem;overflow:hidden;text-align:left;position:relative;line-height:1}
.reach-atlas-frame{width:100%;aspect-ratio:var(--reach-frame-aspect,1);background-repeat:no-repeat;background-color:var(--reach-subtle)}
.reach-thumb .reach-thumb-caption{display:flex;align-items:center;justify-content:space-between;padding:.35rem .3rem;font-size:.63rem;line-height:1;color:var(--text-muted);font-variant-numeric:tabular-nums;background:var(--reach-subtle)}
.reach-thumb .reach-thumb-role{font-size:.6rem;font-weight:600}
.reach-thumb.is-initial{border-color:var(--reach-initial)}
.reach-thumb.is-initial .reach-thumb-caption{color:var(--reach-initial);background:#efecf9}
.reach-thumb.is-goal{border-color:var(--reach-goal)}
.reach-thumb.is-goal .reach-thumb-caption{color:var(--reach-goal);background:#fff0e5}
.reach-thumb:hover:not(:disabled){border-color:var(--ink-44)}
.reach-explorer .reach-thumb:disabled{opacity:1}
.reach-thumb:focus-visible{outline:2px solid var(--reach-initial);outline-offset:2px}
.reach-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.75rem}
.reach-sliders label{display:block;font-size:.8rem;line-height:1.4;font-weight:500}
.reach-sliders label:first-child{color:var(--reach-initial)}
.reach-sliders label:last-child{color:var(--reach-goal)}
.reach-sliders label>span{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}
.reach-sliders output{font-variant-numeric:tabular-nums;font-weight:600}
.reach-sliders input{display:block;width:100%;margin:.25rem 0 0;min-height:24px;accent-color:var(--reach-initial);cursor:pointer}
.reach-sliders label:last-child input{accent-color:var(--reach-goal)}
.reach-chart-wrap{position:relative;flex:1;min-height:320px;background:#fcfbfe;border:1px solid var(--reach-line);border-radius:.5rem}
#reach-chart{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;cursor:crosshair;touch-action:pan-y}
#reach-chart text{font-family:var(--text-sans);font-size:13px;fill:#514d5c;user-select:none}
#reach-chart .reach-curve-initial{stroke:var(--reach-initial)}
#reach-chart .reach-focus-line{stroke:var(--reach-initial);stroke-width:1;stroke-dasharray:4 4;opacity:.65;vector-effect:non-scaling-stroke}
#reach-chart .reach-focus-point{fill:var(--paper);stroke:var(--reach-initial);stroke-width:2;vector-effect:non-scaling-stroke}
.reach-chart-tooltip{position:absolute;pointer-events:none;z-index:1;max-width:230px;border:1px solid var(--reach-line);border-radius:.4rem;background:var(--paper);box-shadow:0 3px 12px #00000012;padding:.5rem .65rem;font-size:.75rem;line-height:1.5;white-space:pre-line;color:var(--ink)}
@media(max-width:1100px){.reach-frame-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1000px){.reach-toolbar{align-items:flex-start;flex-direction:column}.reach-trajectory-label{width:100%}.reach-trajectory-label select{flex:1;max-width:none}.reach-explorer{padding:1.2rem}.reach-workspace{gap:1rem}.reach-curves-pane{padding-left:1rem}}
@media(max-width:900px){.reach-workspace{grid-template-columns:1fr}.reach-curves-pane{padding:1.25rem 0 0;border-left:0;border-top:1px solid var(--reach-line)}.reach-chart-wrap{flex:none;min-height:0;aspect-ratio:3/2}.reach-frame-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.reach-thumb .reach-thumb-caption{font-size:.6rem}}
@media(max-width:580px){.reach-explorer{padding:1rem;border-radius:.7rem}.reach-task-buttons{gap:.3rem}.reach-task-buttons button{padding:.45rem .65rem;font-size:.75rem}.reach-frame-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#reach-chart text{font-size:11px}}
