/* A shared, restrained schematic language: labels, fine wires, selected blue routes. */
.eng-access,.eng-warning,.eng-bridge{--eng-blue:#245d9d;--eng-line:#bfd0e3;--eng-ink:#1c3c60}
.eng-options{display:flex;gap:6px;border-bottom:1px solid #dce5ef;margin:28px 0 32px;padding-bottom:12px;flex-wrap:wrap}
.eng-options[hidden]{display:none}
.eng-options button{font:500 13px Inter,sans-serif;border:1px solid transparent;border-radius:6px;background:transparent;color:#4b6078;padding:11px 18px;cursor:pointer;min-height:44px}
.eng-options button[aria-pressed=true]{background:#eaf2fc;color:#174a85;border-color:#cadcf0}
.eng-map{display:grid;grid-template-columns:230px minmax(0,1fr);gap:82px;align-items:center;padding:16px 0 20px}
.eng-node{background:#f7f9fc;border:1px solid var(--eng-line);border-radius:7px;padding:19px 22px;min-width:0;text-align:left}
.eng-node strong{display:block;font-size:16px;font-weight:500;color:var(--eng-ink);line-height:1.4}
.eng-node>span{display:block;font-size:12px;color:#51657c;line-height:1.6;margin-top:6px}
.eng-node .eng-route-name{font-size:10px;margin:0 0 7px;color:#426d9e;letter-spacing:.02em}
.eng-source{position:relative;background:#eef4fc}
.eng-source:after{content:'';height:1px;width:42px;position:absolute;left:100%;top:50%;background:var(--eng-blue)}
.eng-branches{position:relative;display:grid;gap:22px}
.eng-path{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:center;position:relative}
.eng-path:before{content:'';position:absolute;width:42px;right:100%;height:1px;top:50%;background:#bdcddd}
.eng-path:first-child:after,.eng-path:last-child:after{content:'';position:absolute;right:calc(100% + 41px);width:1px;height:calc(100% + 24px);background:#bdcddd}
.eng-path:first-child:after{top:50%}.eng-path:last-child:after{bottom:50%}
.eng-wire{height:1px;background:var(--eng-line);display:block;position:relative}
.eng-wire:after{content:'';position:absolute;right:-2px;top:-2px;width:5px;height:5px;border-radius:50%;background:#6a8fb8}
.eng-path.is-active .eng-node{border-color:#8eb1d9;background:#f1f6fd}
.eng-path.is-active .eng-destination{background:#e5effc;border-color:#8eb1d9}
.eng-path.is-active .eng-wire,.eng-path.is-active:before,.eng-path.is-active:after{background:#3974b7}
.eng-access.is-interactive .eng-path:not(.is-active){opacity:.72}
.eng-route-notes{border-top:1px solid #dce5ef;padding-top:22px;margin-top:18px}
body.site-design .eng-route-notes p{color:#26476a;font-size:15px;line-height:1.6;margin:0 0 9px}
body.site-design .eng-route-notes p[hidden]{display:none}
body.site-design .eng-scope{font-size:12px!important;color:#5c6f84!important;line-height:1.6;margin-top:12px}
.eng-bridge{margin:0}
.eng-bridge svg{width:100%;height:auto;display:block}
.eng-structure{stroke:#a5b5c5;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.eng-marker{fill:#3275b9;stroke:#fff;stroke-width:2}
.eng-leader{stroke:#5686b8;stroke-width:1}
.eng-svg-label{font:15px Inter,sans-serif;fill:#2a527e}
body.site-design .eng-bridge figcaption{font-size:11px;color:#617388;line-height:1.6;margin-top:8px}
body.site-design.inner-refined .eng-warning{background:transparent;color:#1c3c60;border-radius:0;padding:40px 0}
body.site-design.inner-refined .eng-warning :is(h2,h3){color:#1c3c60!important}
body.site-design.inner-refined .eng-warning p{color:#51657c!important}
.eng-warning-row{display:grid;grid-template-columns:1fr 1.8fr;gap:50px;align-items:center;padding:26px 0;border-bottom:1px solid #e0e7ef}
body.site-design.inner-refined .eng-warning-label h3{font-size:19px!important;margin:0 0 9px}
.eng-warning-label p{font-size:14px;margin:0;max-width:300px}
.eng-linear{display:grid;grid-template-columns:1fr 52px 1fr;align-items:center}
.eng-linear .eng-destination{background:#eaf2fc}
.eng-linear .eng-wire{background:#3974b7}
.image-dialog .detail-zoom-toggle{position:absolute;top:8px;left:12px;z-index:2;border:1px solid #c6d3e2;background:#fff;color:#244b77;border-radius:6px;padding:9px 14px;font:500 12px Inter,sans-serif;min-height:40px;cursor:pointer}
.image-dialog.is-detail-zoom{overflow:auto}
.image-dialog.is-detail-zoom img{max-width:none;max-height:none;width:1400px;cursor:zoom-out}
@media(max-width:1000px) and (min-width:761px){.eng-map{grid-template-columns:180px 1fr;gap:60px}.eng-source:after{width:30px}.eng-path:before{width:30px}.eng-path:first-child:after,.eng-path:last-child:after{right:calc(100% + 29px)}.eng-node{padding:15px}.eng-warning-row{gap:25px}}
@media(max-width:760px){
 .eng-options{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:20px 0;padding-bottom:14px}
 .eng-options button{font-size:11px;padding:9px 5px;line-height:1.5}
 .eng-map{display:block;padding:0}
 .eng-source{margin:0 0 30px}
 .eng-source:after{width:1px;height:30px;left:calc((100% - 24px)/4);top:100%}
 .eng-branches{gap:22px}
 .eng-path{grid-template-columns:1fr 24px 1fr}
 .eng-path:before,.eng-path:after{display:none}
 .eng-access.is-interactive .eng-path:not(.is-active){display:none}
 .eng-node{padding:15px 13px}
 .eng-node strong{font-size:14px}
 .eng-node>span{font-size:11px}
 .eng-node .eng-route-name{font-size:10px}
 .eng-route-notes{margin-top:22px;padding-top:17px}
 body.site-design .eng-route-notes p{font-size:14px}
 .eng-warning-row{display:block;padding:24px 0}
 .eng-warning-label{margin-bottom:20px}
 .eng-linear{grid-template-columns:1fr 24px 1fr}
 .eng-bridge{width:100%}
 .eng-bridge svg{min-height:155px}
 .product-reveal{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){.eng-path,.eng-node,.product-reveal{transition:none!important;opacity:1;transform:none}.image-dialog[open]{animation:none!important}}

/* 2026-09-29: perceptible product and engineering motion. */
.nh-hero-stage{display:contents}
.nh-monitor-path{display:none}
@media(min-width:1024px) and (min-height:700px) and (prefers-reduced-motion:no-preference){
 body.home-refresh main.wrap{overflow:visible}
 body.home-refresh .header{position:sticky;top:0;z-index:100;background:#fff}
 .nh-hero-stage.has-scroll-story{display:block;position:relative;height:calc(150svh - var(--hero-top,76px))}
 body.home-refresh .has-scroll-story .nh-hero{position:sticky;top:var(--hero-top,76px);height:calc(100svh - var(--hero-top,76px));min-height:0;padding-block:24px;overflow:hidden}
 body.home-refresh .has-scroll-story .nh-visual{height:min(520px,calc(100svh - 140px))}
 body.home-refresh .has-scroll-story .nh-device{transform:translateY(var(--hero-lift,0px)) scale(var(--hero-scale,1));transform-origin:center 45%}
 body.home-refresh .has-scroll-story .nh-device img{mix-blend-mode:multiply;max-height:calc(100svh - 200px)}
 body.home-refresh .has-scroll-story .nh-bridge-scene{opacity:var(--bridge-opacity,.13)}
 .has-scroll-story .nh-monitor-path{display:block;position:absolute;width:100%;height:auto;left:0;bottom:0;z-index:1;pointer-events:none;opacity:var(--path-progress,0)}
 .nh-monitor-line{stroke:#397abb;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--path-progress,0));vector-effect:non-scaling-stroke}
 .nh-monitor-point{fill:#3579bc;stroke:white;stroke-width:2}
}
.eng-map.has-svg-wires,.eng-linear.has-svg-wires{position:relative;isolation:isolate}
.eng-wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:-1}
.has-svg-wires .eng-source:after,.has-svg-wires .eng-path:before,.has-svg-wires .eng-path:after{display:none!important}
.has-svg-wires .eng-wire{visibility:hidden}
.eng-wire-base{fill:none;stroke:#c8d5e4;stroke-width:1;vector-effect:non-scaling-stroke}
.eng-wire-trace{fill:none;stroke:#286bbb;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.eng-wires g:not(.is-active) .eng-wire-trace{opacity:0}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .eng-access .eng-path{transition:opacity .22s ease}
 .eng-access .eng-node{transition:background-color .22s ease,border-color .22s ease}
}
.detail-zoom-toggle:focus-visible{outline:2px solid #2166d6;outline-offset:4px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .nh-product-image img{transition:transform .4s cubic-bezier(.22,.7,.25,1)}
 .nh-product:hover .nh-product-image img{transform:scale(1.045)}
}
.image-dialog img{transform-origin:top left}
@media(prefers-reduced-motion:no-preference){
 .image-dialog[open]{animation:eng-dialog-open .25s cubic-bezier(.22,.7,.25,1)}
 @keyframes eng-dialog-open{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){.eng-path,.eng-node{transition:none!important}}
