.fg-lab{margin:36px 0 48px;padding:clamp(20px,4vw,38px);border:1px solid var(--line,#344853);background:var(--card,#172733);border-radius:4px;min-width:0;color:var(--ink,#edf1ef)}
.fg-lab *{box-sizing:border-box}.fg-intro{max-width:780px}.fg-intro h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(28px,4vw,40px);line-height:1.2;margin:10px 0 14px}.fg-intro>p:not(.eyebrow){font-size:15px;line-height:1.8;color:var(--muted,#a6b7bf)}
.fg-number{color:var(--accent,#55cbb5);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px}.fg-view{margin-top:28px}.fg-view h4{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:0 0 10px}.fg-view>p{font-size:14px;color:var(--muted,#a6b7bf);line-height:1.75;margin:0 0 18px}
.fg-stage{background:var(--paper,#101c27);border:1px solid var(--line,#344853);padding:16px 12px 8px;overflow:hidden}.fg-stage svg{width:100%;height:auto;display:block;font-family:system-ui,sans-serif;max-height:460px}.fg-stage text{fill:var(--muted,#a6b7bf);font-size:16px}.fg-stage .fg-svg-label{fill:var(--ink,#edf1ef);font-size:20px}.fg-stage .fg-svg-small{font-size:15px}.fg-stage .fg-svg-spaced{letter-spacing:2px;font-size:12px}.fg-stage .fg-svg-accent{fill:var(--accent,#55cbb5)}.fg-stage .fg-svg-rust{fill:var(--rust,#e4a275)}
.fg-legend{display:flex;gap:16px 25px;flex-wrap:wrap;font-size:12px;color:var(--muted,#a6b7bf);margin-top:14px}.fg-legend span{display:flex;align-items:center;gap:7px}.fg-dot{display:inline-block;width:9px;height:9px;background:var(--accent,#55cbb5);border-radius:50%;flex:0 0 auto}.fg-dot.membrane{background:var(--rust,#e4a275)}.fg-dot.horizon{background:var(--muted,#a6b7bf)}
.fg-tabs,.fg-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.fg-tabs button,.fg-actions button{border:1px solid var(--line,#344853);background:var(--paper,#101c27);color:var(--ink,#edf1ef);padding:10px 14px;min-height:44px;line-height:1.3;font:600 12px/1.4 system-ui,sans-serif;cursor:pointer;border-radius:3px}.fg-tabs button:hover,.fg-actions button:hover{border-color:var(--accent,#55cbb5)}.fg-tabs button[aria-pressed=true]{background:var(--accent,#55cbb5);color:var(--paper,#101c27);border-color:var(--accent,#55cbb5)}.fg-actions button[aria-pressed=true]{border-color:var(--accent,#55cbb5);color:var(--accent,#55cbb5)}
.fg-focus{border-left:2px solid var(--accent,#55cbb5);padding:4px 0 4px 17px;margin-top:22px;min-height:132px}.fg-focus h5{font:600 14px/1.5 system-ui,sans-serif;margin:0 0 7px}.fg-focus p{font-size:14px;line-height:1.75;color:var(--muted,#a6b7bf);margin:0;max-width:850px}.fg-divider{border:0;border-top:1px solid var(--line,#344853);margin:30px 0}
.fg-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin-top:24px}.fg-control{font:600 12px/1.6 system-ui,sans-serif;min-width:0}.fg-control>span{display:flex;gap:8px;justify-content:space-between}.fg-control output{color:var(--accent,#55cbb5);font-variant-numeric:tabular-nums;white-space:nowrap}.fg-control input{display:block;width:100%;height:32px;margin:5px 0 0;accent-color:var(--accent,#55cbb5);cursor:pointer}.fg-actions{margin-top:15px}.fg-lab button:focus-visible,.fg-lab input:focus-visible,.fg-lab a:focus-visible{outline:3px solid var(--rust,#e4a275);outline-offset:4px}.fg-reduced{font-size:12px;color:var(--muted,#a6b7bf)}
.fg-readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line,#344853)}.fg-readouts span{display:block;font-size:11px;line-height:1.5;color:var(--muted,#a6b7bf)}.fg-readouts output{display:block;margin-top:6px;font:24px/1.3 Georgia,serif;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fg-formulas{display:flex;gap:14px 30px;flex-wrap:wrap;font:18px/1.6 Georgia,serif;margin:24px 0 15px}.fg-formulas p{margin:0}.fg-explanation{font-size:14px;line-height:1.8;color:var(--muted,#a6b7bf)}.fg-explanation strong{color:var(--ink,#edf1ef)}.fg-scope{font-size:12px;line-height:1.8;color:var(--muted,#a6b7bf);margin:18px 0 0}.fg-sources{display:flex;gap:12px 24px;flex-wrap:wrap;font-size:12px;margin-top:16px}.fg-sources a{color:var(--accent,#55cbb5);text-underline-offset:4px}.fg-lab:not(.fg-ready) .fg-controls,.fg-lab:not(.fg-ready) .fg-actions,.fg-lab:not(.fg-ready) .fg-tabs{display:none}.fg-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:600px){.fg-lab{padding:22px 15px}.fg-intro h3{font-size:30px}.fg-stage{padding:10px 0 4px;margin-inline:-5px}.fg-stage .fg-svg-label{font-size:21px}.fg-stage .fg-svg-small{font-size:17px}.fg-stage .fg-svg-spaced{font-size:12px}.fg-controls{grid-template-columns:1fr;gap:14px}.fg-readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.fg-readouts output{font-size:22px}.fg-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.fg-tabs button{padding:10px 5px}.fg-focus{min-height:0}.fg-formulas{font-size:16px}.fg-actions button{flex:1 1 auto}.fg-legend{gap:9px 16px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.fg-lab *{animation:none!important;transition:none!important}}
@media print{.fg-controls,.fg-actions,.fg-tabs,.fg-reduced{display:none!important}.fg-lab{break-inside:avoid}}

.fg-wavelength{font-size:12px;line-height:1.7;color:var(--muted,#a6b7bf);margin:18px 0 0}.fg-wavelength output{color:var(--accent,#55cbb5);font-variant-numeric:tabular-nums}

/* Larger labels in the compact SVG; detailed explanations remain in ordinary text. */
@media(max-width:600px){.fg-stage text{font-size:24px}.fg-stage .fg-svg-label{font-size:27px}.fg-stage .fg-svg-small{font-size:23px}.fg-stage .fg-svg-detail,.fg-stage .fg-svg-spaced{display:none}}
