.camera-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin:22px 0}.camera-controls label{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:12px}.camera-controls input{grid-column:1/-1;width:100%;accent-color:var(--trace-ink)}.camera-controls output{font-variant-numeric:tabular-nums;font-weight:600}
.camera-figure{margin:18px 0 24px;min-width:0}.camera-figure svg{display:block;width:100%;height:auto;max-width:760px;margin:auto;stroke:var(--trace-ink);fill:none;stroke-width:1.5}.camera-figure h4{font-size:13px}.camera-figure text{font:13px ui-monospace,monospace;stroke:none;fill:var(--trace-ink)}.camera-plane,.camera-image{fill:var(--trace-soft);stroke:var(--trace-line)}.camera-ray{stroke-width:2}.camera-axis{stroke-width:1.2}.camera-guide{stroke-dasharray:5 4}.camera-grid{stroke:var(--trace-line);stroke-width:.6}.camera-dot{fill:var(--trace-ink)}.camera-open{fill:var(--trace-bg);stroke-width:2}.camera-displacement{stroke-dasharray:2 3;stroke-width:1.5}.camera-object{cursor:pointer;outline:none}.camera-object.trace-corresponding{background:none!important;box-shadow:none;stroke:var(--blue,#1468c5);stroke-width:3}.camera-object.trace-corresponding .camera-dot{fill:var(--blue,#1468c5)}.camera-object:focus-visible{stroke:var(--blue,#1468c5);stroke-width:4}.camera-trace .trace-value-row .trace-quantity{flex-direction:column;align-items:flex-start;text-align:left}.camera-trace .trace-quantity strong{font-size:12px;overflow-wrap:anywhere}.camera-stage>p{font-size:13px;line-height:1.9}.camera-trace .trace-value-row{gap:8px}
@media(max-width:650px){.camera-controls{grid-template-columns:1fr;gap:10px}.camera-figure{overflow-x:auto}.camera-figure svg{min-width:480px}.camera-trace .trace-value-row .trace-quantity{flex-basis:100%}}
.camera-leg{stroke-width:1;stroke:var(--muted)}
.camera-figure figcaption{white-space:normal;max-width:100%;overflow-wrap:anywhere}
