.service-optics{
 --so-ice:#a7e6d1;--so-metal:#698b86;--so-paper:#e8e2d0;--so-edge:clamp(15px,4.4vw,78px);
 padding:clamp(44px,6vw,104px) var(--so-edge);background:radial-gradient(ellipse at 83% 24%,#2d4344,transparent 53%),#0a1b21;color:#edf2e7;
}
.service-optics [hidden]{display:none!important}
.so-intro,.so-selector,.so-panel{width:min(100%,1690px);margin-inline:auto}
.service-optics .so-intro{position:static;display:flex;align-items:end;justify-content:space-between;gap:26px;margin-bottom:clamp(18px,2.5vw,40px);padding:0;background:transparent;border:0}
.so-ey,.so-rail,.so-caption,.so-selector,.so-id,.so-count,.so-read-copy>small,.so-points legend,.so-archive,.so-probe-help{
 font:600 11px/1.45 ui-monospace,Consolas,monospace;letter-spacing:.07em
}
.so-ey{color:#cbe1d3}.so-ey i,.so-rail i,.so-selector i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--so-ice);vertical-align:middle}
.so-intro h2{font:570 clamp(55px,6.8vw,118px)/.95 Hangar,'Arial Narrow',sans-serif;letter-spacing:-.04em;color:#f0f1e6;margin:12px 0 0}
.so-intro h2 em{font-style:normal;color:#dbbf94}.so-intro p{font:400 clamp(15px,1.2vw,20px)/1.48 system-ui,sans-serif;max-width:34ch;margin:0;color:#c2d4cb}
.so-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;border:1px solid #68817d94;background:#10242a}
.so-selector a{display:flex;align-items:center;gap:10px;padding:9px clamp(9px,1.3vw,23px);min-height:48px;font:600 clamp(13px,1.03vw,17px) system-ui,sans-serif;text-decoration:none;color:#dce8dd;border:1px solid #526c69;background:linear-gradient(#30474a,#182d32);box-shadow:inset 0 1px #d4e3c91e}
.so-selector a span{font:10px ui-monospace,monospace;color:#b1bdb3}.so-selector a i{margin-left:auto;background:#637b74}
.so-selector a[aria-current=true]{color:#c6f7db;box-shadow:inset 0 -2px #a8e8cd,inset 0 2px 5px #071c1b77;border-color:#8aad9e}
.so-selector a[aria-current=true] i{background:#b8efcf;box-shadow:0 0 9px #acf1c766}
.so-panel{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(290px,.82fr);align-items:start;gap:clamp(12px,1.7vw,30px);margin-top:clamp(12px,1.5vw,22px)}
.so-bench{--optic-x:var(--point-a-x);--optic-y:var(--point-a-y);min-width:0;padding:clamp(8px,.85vw,13px);position:relative;
 border:1px solid #718b828c;background:linear-gradient(123deg,#314644,#182d31 64%,#2e423f);box-shadow:inset 0 1px #dce5d130,0 13px 28px #04131660}
.so-bench:has(.so-point-1:checked){--optic-x:var(--point-b-x);--optic-y:var(--point-b-y)}
.so-rail,.so-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#d2e3d8;padding:3px 3px 8px;font-size:10px}
.so-rail span{display:flex;align-items:center;gap:8px}.so-rail b{font-weight:inherit;color:#acc2b8}
.so-screen{position:relative;isolation:isolate;aspect-ratio:3/2;width:100%;overflow:hidden;background:#15292e;border:1px solid #8baa9a77;touch-action:pan-y}
.so-screen::after{content:'';position:absolute;inset:7px;z-index:2;pointer-events:none;background:
 linear-gradient(#cad7b7,#cad7b7) 0 0/17px 1px,linear-gradient(#cad7b7,#cad7b7) 0 0/1px 17px,
 linear-gradient(#cad7b7,#cad7b7) 100% 100%/17px 1px,linear-gradient(#cad7b7,#cad7b7) 100% 100%/1px 17px;background-repeat:no-repeat;opacity:.8}
.so-plate,.so-mapping{position:absolute;inset:0;width:100%;height:100%;display:block}
.so-plate{object-fit:fill}
.so-mapping{pointer-events:none;opacity:0;transition:opacity .18s ease;fill:none;stroke-linecap:round;stroke-linejoin:round}
.so-bench:has(.so-analysis[open]) .so-mapping{opacity:1}
.so-bound{stroke:#a3dfcd;stroke-width:1.8;stroke-dasharray:8 9;opacity:.85}
.so-trace{stroke:#aff6d4;stroke-width:3;filter:drop-shadow(0 0 3px #19362d);stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .66s ease-out}
.so-bench:has(.so-analysis[open]) .so-trace{stroke-dashoffset:0}
.so-order{stroke:#ecd29c;stroke-width:1.8;stroke-dasharray:6 7}
.so-panel[data-panel=compressor] .so-trace{stroke:#ffdf9f;stroke-width:4.5}
.so-mark,.so-cross{position:absolute;display:none;transform:translate(-50%,-50%);z-index:3}
.so-bench:has(.so-analysis[open]) .so-mark{display:grid}
.so-mark{place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid #d5e4d0;background:#102321c9;color:#eaffdf;cursor:pointer;font:600 13px ui-monospace,monospace}
.so-cross{left:var(--optic-x);top:var(--optic-y);width:48px;height:48px;border:1px solid #ffeeae;border-radius:50%;pointer-events:none}
.so-bench:has(.so-analysis[open]) .so-cross{display:block}
.so-caption{padding:7px 3px;color:#aec3b6;font-size:9px}
.so-analysis{border-top:1px solid #849a8b75;color:#e8eee3}
.so-analysis summary{min-height:48px;display:flex;align-items:center;gap:10px;padding:7px 11px;cursor:pointer;list-style:none;background:linear-gradient(#273e3e,#172d30);border:1px solid #718e7f}
.so-analysis summary::-webkit-details-marker,.so-archive summary::-webkit-details-marker{display:none}
.so-analysis summary strong,.so-close-label{font:600 14px/1.25 system-ui,sans-serif}.so-leaf-icon{font:23px/1 ui-monospace,monospace;color:var(--so-ice)}
.so-analysis summary b{margin-left:auto;color:var(--so-ice);font:18px/1 system-ui}.so-analysis[open] summary b{transform:rotate(45deg)}
.so-close-label,.so-analysis[open] summary strong{display:none}.so-analysis[open] .so-close-label{display:inline}
.so-readout{display:grid;grid-template-columns:minmax(110px,.68fr) minmax(0,1.32fr);gap:clamp(11px,1.6vw,25px);align-items:center;margin-top:12px}
.so-loupe{position:relative;overflow:hidden;aspect-ratio:1.5;background:#0f2025;border:1px solid #76938b91}
.so-loupe img{position:absolute;width:330%;height:auto;max-width:none;left:50%;top:50%;transform:translate(calc(-1 * var(--optic-x)),calc(-1 * var(--optic-y)))}
.so-loupe i{position:absolute;left:50%;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);border:1px solid #f1df9d;border-radius:50%;box-shadow:0 0 0 1px #18281c}
.so-read-copy>small{color:#bcdac5;font-size:9px}.so-read-copy p{font-size:14px;line-height:1.4;margin:5px 0 7px;color:#e0e9de}
.so-points{border:0;padding:0;margin:6px 0;display:flex;flex-wrap:wrap;gap:4px}.so-points legend{font-size:9px;color:#b9c9bd;margin-bottom:3px}
.so-points label{position:relative;cursor:pointer}.so-points input{position:absolute;opacity:0;margin:0;inset:0;width:100%;height:100%;cursor:pointer}
.so-points label span{display:inline-flex;align-items:center;min-height:38px;padding:5px 9px;border:1px solid #7a8e82;color:#d8e8d9;font:600 12px/1.2 system-ui}
.so-points input:checked+span{color:#102820;background:#b5d9bd;border-color:#b5d9bd}
.so-points input:focus-visible+span{outline:2px solid #ffe1ae;outline-offset:1px}
.so-reading,.so-free-note{display:none}.so-bench:has(.so-point-0:checked) .so-reading-0,.so-bench:has(.so-point-1:checked) .so-reading-1,.so-bench[data-free] .so-free-note{display:block}
.so-probe-help{font-size:10px;color:#a9bfb4;line-height:1.5;margin:8px 0 0}
.so-ticket{position:relative;padding:clamp(17px,2.35vw,40px);color:#223e36;background:
 linear-gradient(115deg,#e4ddc8,#efe9d8 54%,#d5ceb9);border-top:4px solid #c3a478;
 box-shadow:0 3px 0 #b8b19b,0 5px 0 #53635a,0 12px 22px #07151a77}
.so-id{display:block;color:#536957}.so-ticket h3{color:#243c36;font:570 clamp(31px,3.2vw,60px)/1.04 Hangar,sans-serif;margin:12px 0 15px}
.so-seam{height:1px;background:repeating-linear-gradient(to right,#858e79 0 6px,transparent 6px 10px)}
.so-ticket>fieldset{padding:0;border:0;margin:17px 0 0}.so-ticket legend{color:#263e34;font:600 clamp(17px,1.3vw,23px)/1.2 system-ui,sans-serif;margin-bottom:9px}
.so-ticket fieldset label{display:flex;align-items:start;gap:10px;padding:9px 0;min-height:39px;color:#2f473d;border-bottom:1px solid #8a9a854a;font:400 14px/1.4 system-ui,sans-serif;cursor:pointer}
.so-ticket input{accent-color:#35705a;margin:1px 0 0;flex:none;width:16px;height:16px}
.so-count{display:block;margin:9px 0;color:#54725f;font-size:10px}
.service-optics .so-request{display:inline-flex;align-items:center;gap:14px;margin:12px 0 0;padding:12px 14px;min-height:46px;font:600 13px/1.3 system-ui,sans-serif}
.so-archive{margin-top:14px;border-top:1px solid #81958175;color:#365344;font-size:11px;letter-spacing:.015em}
.so-archive summary{cursor:pointer;min-height:42px;align-content:center}.so-archive figure{margin:0}.so-archive img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain;background:#c8cebe}.so-archive figcaption{margin-top:5px}
.service-optics :is(summary,button,a,input,.so-screen):focus-visible{outline:2px solid #c7f7db;outline-offset:2px}
.so-ticket :is(summary,a,input):focus-visible{outline-color:#2d6e52}
@media(max-width:780px){
 .service-optics .so-intro{display:block}.so-intro h2{font-size:clamp(46px,9.8vw,69px);margin-top:8px}.so-intro h2 br{display:none}.so-intro p{font-size:14px;max-width:39ch;margin-top:10px}
 .so-selector a{gap:5px;padding:7px;justify-content:center;font-size:clamp(11px,2.85vw,15px);min-height:46px}.so-selector a i{display:none}.so-selector a span{font-size:9px}
 .so-panel{grid-template-columns:1fr;gap:14px}
 .so-readout{grid-template-columns:minmax(85px,.63fr) minmax(0,1.37fr);gap:9px}.so-read-copy p{font-size:12px}
 .so-points label span{min-height:42px;padding:4px 6px;font-size:11px}
 .so-mark{width:38px;height:38px}.so-probe-help{line-height:1.4}
 .so-ticket fieldset label{min-height:44px}
}
@media(max-width:380px){.so-selector a span{display:none}.so-readout{grid-template-columns:1fr}.so-loupe{aspect-ratio:2.3}}
@media(prefers-reduced-motion:reduce){.so-trace,.so-mapping{transition:none}}
/* A short inspection pass, never a live measurement. Flow spreads over
   the photographed blades; the cabinet sequence travels between its two
   numbered inspection zones; each copper run is traced in its own image. */
.so-flow-beams,.so-signal-pulse,.so-pipe-bead {fill:none;pointer-events:none;opacity:0}
.so-flow-beams path {stroke:#ceffe3;stroke-width:3.8;stroke-dasharray:.23 .77}
.so-signal-pulse {stroke:#ffe4a6;stroke-width:5;stroke-dasharray:.09 .91}
.so-pipe-bead {stroke:#fff3c6;stroke-width:6.5;stroke-dasharray:.15 .85;filter:drop-shadow(0 0 4px #ffc371)}
@media(prefers-reduced-motion:no-preference){
 .so-bench:has(.so-analysis[open]) .so-flow-beams {opacity:1}
 .so-bench:has(.so-analysis[open]) .so-flow-beams path {animation:so-air-pass 1s ease-out 2 both}
 .so-bench:has(.so-analysis[open]) .so-flow-beams path:nth-child(2) {animation-delay:.1s}
 .so-bench:has(.so-analysis[open]) .so-flow-beams path:nth-child(3) {animation-delay:.17s}
 .so-bench:has(.so-analysis[open]) .so-module-outline {transition-duration:.42s}
 .so-bench:has(.so-analysis[open]) .so-terminal-outline {transition-delay:.67s}
 .so-bench:has(.so-analysis[open]) .so-signal-pulse {animation:so-sequence .87s .25s cubic-bezier(.24,.5,.35,1) both}
 .so-bench:has(.so-analysis[open]) .so-pipe-bead {animation:so-pipe-light .8s ease-out both}
 .so-bench:has(.so-analysis[open]) .so-pipe-bead:last-child {animation-delay:.43s}
 @keyframes so-air-pass {0%{opacity:0;stroke-dashoffset:.23}15%{opacity:.96}80%{opacity:.86}100%{opacity:0;stroke-dashoffset:-.77}}
 @keyframes so-sequence {0%{opacity:0;stroke-dashoffset:.09}12%{opacity:1}86%{opacity:1}100%{opacity:0;stroke-dashoffset:-.91}}
 @keyframes so-pipe-light {0%{opacity:0;stroke-dashoffset:.15}18%{opacity:1}75%{opacity:.9}100%{opacity:0;stroke-dashoffset:-.85}}
}
