@font-face{font-family:Plex;src:url('../../assets/fonts/ibm-plex-mono-400-latin.woff2')}@font-face{font-family:Serif;src:url('../../assets/fonts/source-serif-4-400-700-latin.woff2');font-weight:400 700}
:root{--paper:#f6f2e9;--panel:#fffcf6;--ink:#183a3c;--muted:#627675;--rule:#d7ddd3;--teal:#167d8d;--orange:#c66b3d;--sage:#647d65;--grey:#a5b3ad;--soft:#eaf1ea;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);font-size:13px}*{box-sizing:border-box}body{margin:0}.app{max-width:1380px;padding:28px;margin:auto}.standalone-header{margin:0 0 30px}.back-link{color:var(--teal);text-decoration:none;font-size:13px}.eyebrow{font:11px Plex,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin:30px 0 8px}h1{font:500 clamp(32px,4vw,52px)/1.1 Serif,Georgia,serif;margin:0}header p{font-size:15px;color:var(--muted)}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:45px;gap:12px;margin-bottom:12px}.topbar>div{display:flex;align-items:center;gap:12px}.topbar strong{font-size:15px;font-weight:650}.lab-number{font:10px Plex,monospace;color:var(--teal);letter-spacing:.06em}nav{display:flex;gap:4px;border:1px solid var(--rule);border-radius:6px;padding:3px;background:#f0eee5}.tab{font-size:12px;padding:6px 12px;border-radius:4px;color:var(--muted);text-decoration:none}.tab[aria-current]{background:var(--teal);color:white}.laboratory{display:grid;grid-template-columns:196px minmax(280px,1.15fr) minmax(280px,1fr);gap:12px;min-height:400px}.laboratory[hidden]{display:none}.panel{border:1px solid var(--rule);border-radius:8px;background:var(--panel);padding:14px;min-width:0;display:flex;flex-direction:column;overflow:hidden}h2{font-weight:650;font-size:12px;line-height:1.35;margin:0}.controls h2{margin-bottom:13px}.slider-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:7px 0 3px}.slider-label output{font:11px Plex,monospace;color:var(--teal)}input[type=range]{display:block;width:100%;accent-color:var(--teal);height:16px;margin:2px 0 8px;cursor:pointer}input[type=range]:focus-visible{outline:2px solid var(--orange);outline-offset:3px}select{color:var(--ink);font:11px system-ui,sans-serif;border:1px solid var(--rule);background:white;border-radius:4px;padding:5px;min-width:0;cursor:pointer}.control-rule{height:1px;background:var(--rule);margin:7px 0}.button{font:600 11px system-ui,sans-serif;border:1px solid var(--teal);border-radius:5px;background:var(--teal);color:white;cursor:pointer;padding:8px 10px;transition:filter .15s}.button:hover{filter:brightness(.93)}.button:focus-visible,.tab:focus-visible,select:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.button.secondary{background:transparent;color:var(--ink);border-color:#b9c9c2}.controls>.button{margin:10px 0 0}.control-hint{font-size:11px;color:var(--muted);line-height:1.55;margin:15px 0 0}.control-hint b{color:var(--ink);display:block;margin-bottom:3px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:20px;margin-bottom:8px}.tag{font:9px Plex,monospace;color:var(--teal);white-space:nowrap}.canvas-wrap{position:relative;min-width:0;min-height:0;overflow:hidden}canvas{width:100%;height:100%;display:block}.scene-wrap{flex:1;min-height:210px}.image-wrap{height:160px;flex:0 0 160px;border-radius:5px;border:1px solid var(--rule);cursor:crosshair}.image-wrap canvas{touch-action:none}.image-caption{display:flex;justify-content:space-between;gap:5px;font:9px Plex,monospace;color:var(--muted);margin-top:5px}.measurements{display:grid;grid-template-columns:1fr 1fr 1fr;margin:12px 0 7px;gap:7px}.measurements>div{padding-left:8px;border-left:2px solid #d5e2d8;min-width:0}.measurements>div:first-child{padding-left:0;border:0}.measurements span{display:block;font-size:9px;white-space:nowrap;color:var(--muted)}.measurements strong{display:block;font:500 17px/1.45 Plex,monospace;white-space:nowrap;color:var(--ink)}.ray-table{border-collapse:collapse;table-layout:fixed;width:100%;font:10px Plex,monospace}.ray-table th{font:600 9px system-ui,sans-serif;text-align:right;color:var(--muted);border-bottom:1px solid var(--rule);padding:4px 0}.ray-table th:first-child,.ray-table td:first-child{text-align:left}.ray-table td{text-align:right;padding:4px 0;border-bottom:1px solid #e7ebe2}.hit-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.formula-note{font-size:10px;line-height:1.5;color:var(--muted);margin:8px 0 0}.ray-picker{margin:0 0 5px;display:grid;grid-template-columns:100px 1fr;column-gap:8px;align-items:center}.ray-picker label{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.ray-picker output{font:10px Plex,monospace;color:var(--teal)}.ray-picker input{margin:4px 0;height:13px}.mini-legend{display:flex;justify-content:center;gap:15px;color:var(--muted);font-size:10px;white-space:nowrap;line-height:1.5}.mini-legend>span{display:inline-flex;align-items:center;gap:4px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal)}.orange{background:var(--orange)}.teal{background:var(--teal)}.sage{background:var(--sage)}.grey{background:var(--grey)}.line{display:inline-block;width:12px;height:2px}.scope{font-size:10px;color:var(--muted);line-height:1.55;margin-top:10px;min-height:20px}.scope a,.standalone-notes a{color:var(--teal)}.standalone-notes{max-width:850px;margin:35px 0 15px;line-height:1.65;color:var(--muted)}.standalone-notes h2{font-size:18px;color:var(--ink)}.standalone-notes p{font-size:13px}.select-label{font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:5px}.select-label select{width:120px}.button-row{display:flex;gap:5px;margin:9px 0}.button-row>.button{flex:1;padding:8px 5px}.check-label{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);margin-top:4px}.check-label input{accent-color:var(--teal)}.alignment-wrap{flex:1;min-height:235px}.status{padding:8px 10px;border-radius:4px;background:var(--soft);font-size:10px;line-height:1.45;margin-top:10px;color:#39605c}.status.warn{background:#f4e8d7;color:#805627}.chart-wrap{height:160px;flex:0 0 160px;margin-top:2px}.chart-legend{justify-content:flex-start;gap:14px;font-size:9px;margin:2px 0}.registration-metrics{margin-top:12px}.insight{font-size:11px;line-height:1.55;color:var(--muted);background:#eff3eb;border-radius:4px;padding:10px;margin-top:7px}.insight b{display:block;color:var(--ink);font-size:11px;margin-bottom:3px}.insight.warn{background:#f7ecdd}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.embedded .app{padding:8px 12px;max-width:none;height:100vh;display:flex;flex-direction:column}.embedded .standalone-header,.embedded .standalone-notes{display:none}.embedded .topbar{flex:0 0 35px;min-height:35px;margin:0 0 7px}.embedded .topbar strong{font-size:13px}.embedded .tab{padding:5px 10px;font-size:11px}.embedded .laboratory{min-height:0;flex:1;grid-template-columns:188px minmax(280px,1.15fr) minmax(300px,1fr);gap:10px}.embedded .panel{padding:11px}.embedded .scope{margin-top:6px;flex:0 0 auto;font-size:9px;min-height:16px;line-height:1.4}.embedded .image-wrap{height:139px;flex-basis:139px}.embedded .chart-wrap{height:139px;flex-basis:139px}.embedded .scene-wrap{min-height:130px}.embedded .alignment-wrap{min-height:180px}.embedded .controls h2{margin-bottom:8px}.embedded .slider-label{margin-top:4px}.embedded .control-hint{margin-top:10px;font-size:10px;line-height:1.45}.embedded .measurements{margin-top:9px;margin-bottom:4px}.embedded .measurements strong{font-size:16px}.embedded .ray-table td{padding:3px 0}.embedded .formula-note{font-size:9px;line-height:1.4;margin-top:7px}.embedded .insight{font-size:10px;padding:8px;line-height:1.4}.embedded .insight b{font-size:10px}.embedded .registration-metrics{margin-top:8px}.embedded .ray-picker{margin-top:3px}.embedded .scope a{text-decoration:underline;text-underline-offset:2px}@media(min-width:1300px){.laboratory{min-height:460px}.image-wrap,.chart-wrap{height:190px;flex-basis:190px}}@media(max-width:900px){.app{padding:16px}.laboratory,.embedded .laboratory{grid-template-columns:175px minmax(250px,1fr)}.measurement-panel,.results-panel{grid-column:1/-1}.embedded .app{height:auto;min-height:100vh}.embedded .laboratory{min-height:400px}.image-wrap,.embedded .image-wrap{height:170px;flex-basis:170px}.chart-wrap,.embedded .chart-wrap{height:190px;flex-basis:190px}.scene-wrap{min-height:240px}.scope{font-size:10px}.measurements{max-width:470px}.ray-table{max-width:600px}.embedded .scope{margin-bottom:8px}}@media(max-width:560px){.app,.embedded .app{padding:12px}.topbar{flex-wrap:wrap;justify-content:space-between}.topbar>div{gap:6px}.topbar strong{font-size:12px}.lab-number{font-size:9px}.tab{padding:5px 8px;font-size:11px}.laboratory,.embedded .laboratory{display:flex;flex-direction:column;gap:10px}.controls{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}.controls h2,.controls .panel-heading,.controls .select-label,.controls .button-row,.controls .check-label,.controls>.button,.control-hint,.control-rule{grid-column:1/-1}.controls .slider-label{grid-column:1}.controls>input[type=range]{grid-column:2;align-self:center}.control-hint{margin-top:5px}.scene-wrap,.embedded .scene-wrap{height:250px;min-height:250px;flex:auto}.alignment-wrap,.embedded .alignment-wrap{height:285px;min-height:285px}.image-wrap,.embedded .image-wrap{height:170px;flex-basis:170px}.chart-wrap,.embedded .chart-wrap{height:180px;flex-basis:180px}.panel{padding:12px}.mini-legend{gap:10px;font-size:9px}.scope{font-size:9px}.standalone-header{margin-bottom:18px}.eyebrow{margin-top:22px}.embedded .scope{line-height:1.55}}
/* Keep every control and result inside the deck's 1136 × 475 live slot. */
.embedded .controls input[type=range]{height:12px;margin:0 0 4px}.embedded .controls .slider-label{margin:3px 0 2px;line-height:15px}.embedded .controls>.button{margin-top:7px}.embedded .controls .control-hint{font-size:9.5px;line-height:1.35;margin-top:9px}.embedded .control-hint b{display:inline;margin-right:3px}.embedded .registration .controls .panel-heading{margin-bottom:4px}.embedded .registration .controls h2{margin-bottom:3px}.embedded .registration .select-label{margin-bottom:3px}.embedded .registration .button-row{margin:6px 0}.embedded .registration .button-row .button{padding:7px 4px}.embedded .registration .chart-wrap{height:101px;flex-basis:101px}.embedded .registration .results-panel>.formula-note{display:none}.embedded .registration .registration-metrics{margin-top:5px}.embedded .registration .insight{padding:7px;line-height:1.4}.embedded .registration .chart-legend{font-size:9px}@media(max-width:900px){.embedded .registration .chart-wrap{height:175px;flex-basis:175px}.embedded .registration .results-panel>.formula-note{display:block}}@media(max-width:560px){.embedded .controls input[type=range]{margin:0;height:16px}.embedded .controls .slider-label{margin:6px 0}}
