.optics-page-heading{margin:var(--space-6) 0}.optics-page-heading h1{font-size:clamp(2rem,4vw,3rem);line-height:1.15}.optics-page-heading p{max-width:75ch;margin:var(--space-4) 0 0}.optics-method{max-width:78ch;margin-block:var(--space-section);line-height:1.75}:where(.ui-flow)>.optics-method{margin-block:0}.optics-method a,.optics-results a{color:var(--color-accent);text-decoration:underline}.optics-method li+li{margin-top:var(--space-2)}.optics-method code,.optics-method a,.optics-results p,.optics-method p{overflow-wrap:anywhere}.optics-groups{margin-top:32px;scroll-margin-top:80px}.optics-groups h3{font-size:1.5rem;margin:20px 0}.optics-chart svg{display:block;width:100%;height:auto;overflow:visible}.optics-chart text{fill:var(--color-text-secondary);font:12px var(--font-mono)}.chart-grid{stroke:var(--color-border)}.chart-line{fill:none;stroke-width:2}.chart-line-0{stroke:var(--color-accent)}.chart-line-1{stroke:var(--color-text-primary);stroke-dasharray:7 4}.chart-line-2{stroke:var(--color-text-muted);stroke-dasharray:2 3}.optics-chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);font:var(--type-caption)/1.5 var(--font-mono);color:var(--color-text-secondary)}.chart-key{display:inline-flex;align-items:center;gap:var(--space-2)}.chart-key:before{content:"";width:22px;border-top:2px solid currentColor}.chart-key-0{color:var(--color-accent)}.chart-key-1{color:var(--color-text-primary)}.chart-key-1:before{border-top-style:dashed}.chart-key-2:before{border-top-style:dotted}.optics-figure>.ui-disclosure{border-bottom:0}.optics-table{overflow:auto}.optics-table table{border-collapse:collapse;width:100%}.optics-table th,.optics-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:left}.optics-directions{display:block;max-width:520px;width:100%;background:var(--color-bg-primary);border-radius:var(--radius-control)}.optics-directions text{fill:var(--color-text-primary);font:13px var(--font-sans)}.optics-directions line{stroke:var(--color-accent);stroke-width:2}.optics-directions .normal{stroke:var(--color-text-muted);stroke-dasharray:4 4}.optics-material-editor{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-bg-secondary);margin:var(--space-6) 0}.optics-material-editor>.optics-number{max-width:680px}.optics-material-editor input[type=checkbox]{margin-right:6px}.optics-material-editor label{line-height:1.7}.optics-results{scroll-margin-top:88px}.optics-inspector .optics-figure{padding:var(--space-2)}.optics-inspector .optics-chart svg{min-width:0}.optics-inspector .optics-chart-legend{font-size:12px}.optics-scene-message p,.derived-volume-overlay p{color:#cbd8e7}.optics-matrix-inspector{max-width:none}.optics-matrix-chain{display:flex;align-items:center;gap:var(--space-2);overflow-x:auto;padding:var(--space-1) 2px var(--space-2);scrollbar-width:thin}.optics-matrix-card{flex:0 0 auto;display:grid;justify-items:start;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-bg-secondary);color:var(--color-text-primary);text-align:left;cursor:pointer}.optics-matrix-card:hover{border-color:var(--color-control-border)}.optics-matrix-card[aria-pressed=true]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,var(--color-bg-secondary))}.optics-matrix-card.is-product{cursor:default;border-style:dashed}.optics-matrix-name{font:.6875rem/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.optics-matrix-card .katex{font-size:1.05em}.optics-matrix-operator{flex:0 0 auto;color:var(--color-text-muted);font-size:1.1rem}.optics-matrix-missing{font-size:var(--type-caption);color:var(--color-accent-orange)}.optics-matrix-result{display:grid;gap:var(--space-2);margin:0}.optics-matrix-result>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3)}.optics-matrix-result dt{min-width:13rem;font-size:var(--type-caption);color:var(--color-text-secondary)}.optics-matrix-result dd{margin:0}
