*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:#06121b;color:#e0edf2;font-family:Arial,sans-serif;font-size:16px;line-height:1.6}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}a{color:#a7e8df;text-underline-offset:4px}button,select{background:#132d3c;color:#e2f1f4;border:1px solid #466575;border-radius:5px;padding:9px 12px}button{cursor:pointer;line-height:1.4;min-height:42px}button:hover:not(:disabled){background:#214b5b;border-color:#98ded7}button:disabled{opacity:.48;cursor:not-allowed}:focus-visible{outline:3px solid #b1f5db;outline-offset:4px}input[type=range]{width:100%;accent-color:#9aead7;cursor:pointer}input[type=radio]{accent-color:#94e5d3;width:18px;height:18px;flex-shrink:0}select{width:100%;min-width:0}.primary{background:#b5f0db;border-color:#b5f0db;color:#082a2a;font-weight:600}.primary:hover:not(:disabled){background:#d2ffe9;color:#062422}.header{padding:20px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #294352;gap:20px}.header a{text-decoration:none}.brand{display:flex;align-items:center;gap:10px;color:#e7f1f3;font-size:20px}.brand span{color:#91aebe;font-size:14px;margin-left:12px}.header>a:last-child{font-size:14px}main{max-width:1580px;margin:auto;padding:32px}.lesson-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.eyebrow{font:12px/1.6 Consolas,monospace;color:#a3c4d2;letter-spacing:.1em;margin:0 0 12px}h1{font-size:clamp(28px,3.4vw,48px);line-height:1.12;letter-spacing:-.04em;font-weight:500;margin:0 0 10px}h1 em{font-family:Georgia,serif;font-weight:400;color:#bdeadc}h2{font-size:23px;font-weight:500;letter-spacing:-.02em;line-height:1.3;margin:0 0 14px}.lesson-heading p:last-child{margin:0;color:#a0bac9}.path-label{display:grid;gap:7px;min-width:210px;font-size:14px;color:#b1c7d1}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid #456573;margin-bottom:24px}.steps button{background:none;border:0;border-radius:0;text-align:left;padding:14px 18px;color:#a7bfcb;position:relative}.steps span{font-family:Consolas,monospace;margin-right:10px;font-size:13px}.steps [aria-current=step]{color:#bef5df;border-bottom:3px solid #a2ecd5;background:#13323e}.steps button[data-complete=true]::after{content:' ✓';color:#a9ecd3}.lesson-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px;align-items:start}.jana-panel{padding:24px;background:linear-gradient(150deg,#163446,#0c202d);border:1px solid #375767;border-radius:8px;position:sticky;top:20px}.sigil{font-size:25px;color:#a6e7da;vertical-align:middle;margin-right:8px}.jana-panel p{color:#b8cbd5}.jana-panel h2{font-size:27px;color:#eef8f9}.jana-panel .eyebrow{color:#bce8e5}.jana-panel fieldset{padding:0;border:0;margin:20px 0}.jana-panel legend{font-size:14px;margin-bottom:8px}.choice{display:flex;align-items:flex-start;gap:9px;padding:10px 9px;border:1px solid #436170;border-radius:5px;margin:8px 0;font-size:14px;cursor:pointer}.choice:has(input:checked){background:#254d58;border-color:#a3ddcb}.choice input{margin:2px 0}.jana-panel>.primary{width:100%;margin-top:8px}.local-note{font-size:12px;line-height:1.7;margin:20px 0 0}.views{display:grid;grid-template-columns:1.05fr 1fr;gap:15px}.views>section{border:1px solid #344f60;border-radius:8px;min-width:0;overflow:hidden;background:#0b1c28}.view-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #284553}.view-title h2{font-size:16px;letter-spacing:0;margin:0}.view-title span{font-size:12px;color:#a9c2ce}#optics-scene{height:315px;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#183344,#0a1823 75%)}#optics-scene canvas{width:100%;height:100%;display:block;touch-action:none}.scene-loading{padding:24px;font-size:14px;color:#aac5d1}.camera-controls{display:flex;gap:5px;flex-wrap:wrap;padding:12px;border-top:1px solid #294554}.camera-controls button{padding:7px 9px;font-size:12px;min-height:36px}.part-note{font-size:14px;color:#b5cbd6;margin:0;padding:5px 16px 16px;min-height:86px}.detector-field{position:relative;height:315px;background:#010709;overflow:hidden;display:grid;place-items:center}#detector{display:block;width:315px;height:315px;max-width:100%;object-fit:contain;image-rendering:pixelated}.field-top{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;gap:12px;font:12px Consolas,monospace;color:#bce8d3}.field-top b{font-weight:400}.scale-bar{position:absolute;left:22px;bottom:18px;display:grid;justify-items:start;font:12px Consolas,monospace;gap:6px;color:#d3f5e0}#image-bar{height:3px;background:#c2efd7;width:53px}.resolution-result{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;padding:17px 18px;border-top:1px solid #294554}.resolution-result>span{font-size:14px;color:#d5c7a3}.resolution-result strong{font-size:25px;font-weight:500}.resolution-result small{grid-column:1/-1;text-align:right;font-size:12px;color:#aec4ce}.resolution-result.good>span{color:#b5efd4}.controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 24px;border:1px solid #354f5e;border-radius:8px;padding:20px;margin-top:16px;background:#102632}.controls label{min-width:0;font-size:14px;display:flex;flex-wrap:wrap;gap:7px}.controls label select{margin-top:3px}.controls output{margin-left:auto;color:#b5eddd;font-family:Consolas,monospace}.controls>button{align-self:end}.profile-section{display:grid;grid-template-columns:1fr 1.6fr;gap:22px;padding:24px 0;border-bottom:1px solid #314d5c;align-items:center}.profile-section h2{font-size:21px}.profile-section p:not(.eyebrow){font-size:14px;color:#aec4d0}.profile-section canvas{width:100%;height:170px;display:block}.chart-caption{font-size:12px!important;margin:2px 0 0;text-align:center}details{border-bottom:1px solid #344e5c;padding:18px 0}summary{cursor:pointer;color:#c2e3e4;font-size:14px}.model-body{font-size:14px;color:#b3c9d3}.model-body p{max-width:900px}.review{padding:25px;background:#12332e;border:1px solid #658e7f;border-radius:8px;margin-top:25px}.review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.review p,.review li{font-size:14px}.score{font-size:36px;color:#d0f6df}.review ol{padding-left:21px}.review a{font-size:14px}.assessment-q{border:0;padding:0;margin:0 0 18px}.assessment-q legend{font-size:14px;font-weight:600;color:#d9e9ee}.task-summary{border-left:3px solid #9edbca;padding:9px 13px;font-size:14px;background:#153b48}.evidence{font-size:13px;border:1px solid #5d7f80;padding:10px;margin:12px 0;color:#caf0df}.footer,footer{display:flex;justify-content:space-between;gap:16px;margin-top:34px;padding:22px 0;border-top:1px solid #2d4957;font-size:12px;color:#96b3c1}.skip{position:absolute;left:10px;top:-100px;background:#b5f0db;color:#06202a;padding:10px;z-index:30}.skip:focus{top:10px}.no-js{padding:30px}button[hidden],[hidden]{display:none!important}
@media(min-width:1450px){#optics-scene,.detector-field{height:360px}#detector{width:360px;height:360px}}@media(max-width:1100px){main{padding:24px}.lesson-layout{grid-template-columns:235px minmax(0,1fr);gap:16px}.jana-panel{padding:18px}.views{grid-template-columns:1fr}.optics-view{display:grid;grid-template-columns:1fr 1fr}.optics-view .view-title{grid-column:1/-1}#optics-scene{grid-row:2/4;height:250px}.camera-controls{align-content:start;border-top:0}.part-note{padding:5px 12px 15px}.detector-field{height:280px}#detector{width:280px;height:280px}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-section{grid-template-columns:1fr}.profile-section p{margin-bottom:0}}@media(max-width:720px){.header{padding:16px 18px;flex-wrap:wrap}.brand span{display:none}main{padding:22px 18px}.lesson-heading{align-items:flex-start;flex-direction:column}.path-label{width:100%}.steps button{padding:12px 5px;font-size:14px}.steps span{display:block}.lesson-layout{grid-template-columns:1fr}.jana-panel{position:static}.jana-panel h2{font-size:25px}.views{grid-template-columns:1fr}.optics-view{display:block}#optics-scene{height:300px}.controls{padding:16px;gap:20px 16px}.controls label{font-size:14px}.view-title{flex-wrap:wrap}.review-actions>*{width:100%}footer{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.assessment{border:1px solid #375a68;border-radius:8px;padding:22px;margin-top:20px;background:#112b38}.question-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.question-grid .choice{min-height:46px}@media(max-width:720px){.question-grid{grid-template-columns:1fr}}

.camera-controls button{font-size:.875rem;min-height:40px}

body.record-open{background:#e7eeef;color:#18353f}
body.record-open > :not(#printable-record){display:none!important}
#printable-record{max-width:900px;margin:0 auto;padding:24px;font:16px/1.65 Arial,sans-serif}
#printable-record .record-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
#printable-record .record-toolbar button{color:#fff;background:#194b58;border:1px solid #194b58;border-radius:6px;padding:12px 18px;min-height:44px}
#printable-record .record-toolbar p{width:100%;margin:0;font-size:14px;color:#304e59}
#printable-record .record-paper{padding:32px;background:white;overflow-wrap:anywhere}
#printable-record header{position:static;display:block;background:none;padding:0 0 20px;border-bottom:3px solid #31796e}
#printable-record h1{font:700 30px/1.2 Arial,sans-serif;margin:16px 0}
#printable-record h2{font:700 21px/1.35 Arial,sans-serif;margin:28px 0 12px}
#printable-record p{color:inherit;margin:16px 0}
#printable-record li{margin:0 0 18px}
#printable-record table{border-collapse:collapse;width:100%}
#printable-record th,#printable-record td{padding:9px;text-align:left;border-bottom:1px solid #cedbdd}
#printable-record a{color:#155c72;text-decoration:underline}
#printable-record footer{display:block;padding:16px 0}
@media(max-width:600px){#printable-record{padding:12px}#printable-record .record-paper{padding:18px}#printable-record h1{font-size:25px}}
@media print{body.record-open{background:white!important}#printable-record{max-width:none;padding:0;margin:0}#printable-record .record-toolbar{display:none!important}#printable-record .record-paper{padding:0}#printable-record h2{break-after:avoid}#printable-record li,#printable-record tr{break-inside:avoid}@page{margin:16mm}}
