.projection-simulator{border:.0625rem solid var(--line);background:var(--paper-deep);color:var(--ink);border-radius:1rem;margin-block:2rem;padding:clamp(.85rem,2.5vw,1.4rem)}.projection-simulator figcaption{font-family:var(--serif);margin-block-end:1rem;font-size:1.15rem;font-weight:700}.projection-simulator__controls{border:.0625rem solid var(--line);border-radius:.75rem;min-inline-size:0;margin:0;padding:.8rem}.projection-simulator__controls legend{padding-inline:.3rem;font-weight:700}.projection-simulator__controls>p,.projection-simulator__keyboard-help,.projection-simulator__note{color:var(--muted);margin:.2rem 0 .8rem}.projection-simulator__coordinate-grid{grid-template-columns:minmax(8rem,.7fr) minmax(12rem,1.3fr);align-items:center;gap:.45rem 1rem;display:grid}.projection-simulator__coordinate-grid label{justify-content:space-between;align-items:baseline;gap:.6rem;font-weight:600;display:flex}.projection-simulator__coordinate-grid output{text-align:end;font-variant-numeric:tabular-nums;min-inline-size:3rem}.projection-simulator__coordinate-grid input[type=range]{inline-size:100%;accent-color:var(--accent-strong)}.projection-simulator__controls input:focus-visible,.projection-simulator__reset:focus-visible,.projection-simulator__table-wrap:focus-visible{outline:.1875rem solid var(--accent);outline-offset:.2rem}.projection-simulator__reset{border:.0625rem solid var(--line);background:var(--paper);min-block-size:2.5rem;color:var(--ink);cursor:pointer;font:inherit;border-radius:.5rem;margin-block-start:.8rem;padding:.45rem .75rem;font-weight:700}.projection-simulator__reset:hover{border-color:var(--accent)}.projection-simulator__keyboard-help{margin-block:.8rem 0;font-size:.92rem}.projection-simulator__status{border-inline-start:.25rem solid var(--accent);background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums;margin:.8rem 0;padding:.7rem .8rem}.projection-simulator__plot-wrap{padding-block:.2rem;overflow-x:auto}.projection-simulator__plot{block-size:auto;inline-size:100%;min-inline-size:34rem;max-inline-size:40rem;margin-inline:auto;display:block;overflow:visible}.projection-simulator__gridline{stroke:var(--line);stroke-width:1px;stroke-dasharray:2 5}.projection-simulator__axis{stroke:var(--muted);stroke-width:1.5px}.projection-simulator__tick,.projection-simulator__axis-label{fill:var(--muted);font-size:13px}.projection-simulator__axis-label,.projection-simulator__line-label,.projection-simulator__vector-label,.projection-simulator__residual-label{font-weight:700}.projection-simulator__dynamic{transition:opacity .16s}.projection-simulator__line{stroke:var(--muted);stroke-width:3px;stroke-dasharray:10 7;opacity:.8}.projection-simulator__line-label{fill:var(--muted);font-size:14px}.projection-simulator__vector,.projection-simulator__residual{stroke-linecap:round;stroke-width:5px}.projection-simulator__vector--observation,.projection-simulator__arrow--observation{stroke:var(--accent-strong);fill:var(--accent-strong)}.projection-simulator__vector--projection,.projection-simulator__arrow--projection{stroke:#187a56;fill:#187a56}.projection-simulator__residual,.projection-simulator__arrow--residual{stroke:#9a5b18;fill:#9a5b18;stroke-dasharray:9 6}.projection-simulator__right-angle{fill:none;stroke:#9a5b18;stroke-width:2px}.projection-simulator__origin{fill:var(--ink)}.projection-simulator__projection-point{fill:#187a56;stroke:var(--paper);stroke-width:2px}.projection-simulator__drag-point{fill:var(--accent-strong);stroke:var(--paper);stroke-width:3px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.projection-simulator__drag-point.is-dragging{cursor:grabbing}.projection-simulator__drag-point:focus-visible{outline:.1875rem solid var(--accent);outline-offset:.2rem}.projection-simulator__vector-label--observation{fill:var(--accent-strong);font-size:14px}.projection-simulator__vector-label--projection{fill:#187a56;font-size:14px}.projection-simulator__residual-label{fill:#9a5b18;font-size:13px}.projection-simulator__table-wrap{margin-block-start:.8rem;overflow-x:auto}.projection-simulator table{border-collapse:collapse;font-variant-numeric:tabular-nums;inline-size:100%;min-inline-size:42rem}.projection-simulator caption{text-align:start;font-family:var(--sans);margin-block-end:.5rem;font-size:.95rem;font-weight:700}.projection-simulator th,.projection-simulator td{border-block-end:.0625rem solid var(--line);text-align:start;vertical-align:top;padding:.45rem}.projection-simulator td{text-align:end}.projection-simulator td:last-child{max-inline-size:18rem;color:var(--muted);text-align:start}.projection-simulator tr.is-nearest{background:var(--accent-soft)}.projection-simulator__note,.projection-simulator__caption{margin-block:.8rem 0;font-size:.92rem}.projection-simulator__caption{color:var(--muted)}.projection-simulator__sr-only{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}@media (width<=38rem){.projection-simulator__coordinate-grid{grid-template-columns:minmax(0,1fr);gap:.3rem}.projection-simulator__coordinate-grid input[type=range]{margin-block-end:.4rem}.projection-simulator__plot{min-inline-size:31rem}.projection-simulator th,.projection-simulator td{padding-inline:.25rem;font-size:.9rem}}@media (prefers-reduced-motion:reduce){.projection-simulator__dynamic{transition:none}}
