:root{color:#203e54;font-synthesis:none;--ink:#203e54;--muted:#576c7b;--accent:#087e91;--line:#dce5eb;--surface:#f3f7f9;--text-hero:clamp(2.625rem, 2rem + 2.55vw, 4.3rem);--text-section:clamp(2rem, 1.75rem + 1.35vw, 2.95rem);--text-lead:clamp(1rem, .96rem + .2vw, 1.125rem);--text-heading:1.25rem;--text-body:.9375rem;--text-ui:.875rem;--text-meta:.8125rem;--text-label:.75rem;--text-stat:clamp(1.75rem, 1.4rem + .95vw, 2.25rem);--leading-heading:1.16;--leading-group:1.4;--leading-body:1.75;--leading-lead:1.65;--weight-normal:400;--weight-medium:500;--weight-strong:600;--tracking-label:.13em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--section-space:clamp(3.75rem, 2rem + 5vw, 6.25rem);--hero-space:clamp(3rem, 1.5rem + 4vw, 5rem);--gutter:clamp(1.25rem, 4vw, 3rem);--content-width:75rem;--reading-width:65ch;--card-padding:clamp(1.5rem, 1rem + 1.2vw, 2rem);--panel-padding:clamp(1.5rem, .75rem + 2.5vw, 3rem);--border:1px solid var(--line);--radius:3px;scroll-behavior:smooth;scroll-padding-top:var(--space-8);background:#fff;font-family:Segoe UI,Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{font-size:var(--text-body);font-weight:var(--weight-normal);line-height:var(--leading-body);margin:0}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:5px;text-decoration:underline}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}svg,img{max-width:100%;display:block}p{line-height:var(--leading-body);max-width:var(--reading-width)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:var(--weight-medium);overflow-wrap:anywhere;hyphens:auto}h1,h2{letter-spacing:-.045em;line-height:var(--leading-heading);text-wrap:balance}h1{font-size:var(--text-hero)}h2{font-size:var(--text-section)}h3{font-size:var(--text-heading);letter-spacing:-.02em;line-height:var(--leading-group)}em{color:var(--accent);font-style:normal}.container{width:min(var(--content-width), calc(100% - 2 * var(--gutter)));margin-inline:auto}.section{padding-block:var(--section-space)}.eyebrow{align-items:center;gap:var(--space-3);font-size:var(--text-label);font-weight:var(--weight-strong);letter-spacing:var(--tracking-label);color:var(--muted);line-height:1.5;display:flex}.eyebrow>span:first-child:not(.small-line){color:var(--accent);border-right:var(--border);padding-right:var(--space-3)}.small-line{background:var(--accent);width:25px;height:2px}.skip-link{z-index:10;background:var(--ink);color:#fff;padding:var(--space-3);position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:var(--border)}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-8);min-height:105px;display:flex}.brand{flex-shrink:0;display:inline-flex}.brand:hover{text-decoration:none}.brand img{width:208px;height:auto}.site-footer .brand img{width:200px}.site-nav{gap:var(--space-6);font-size:var(--text-ui);align-items:center;display:flex}.site-nav a{white-space:nowrap;align-items:center;min-height:44px;display:inline-flex}.button{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-6);background:var(--accent);color:#fff;font-size:var(--text-ui);font-weight:var(--weight-strong);border-radius:var(--radius);line-height:1.5;display:inline-flex}.button:hover{background:#086a7b;text-decoration:none}.button span{font-size:1.05rem}.button-small{padding:var(--space-3) var(--space-4);font-size:var(--text-ui);gap:var(--space-4)}.text-link{align-items:center;gap:var(--space-6);font-size:var(--text-ui);font-weight:var(--weight-medium);display:inline-flex}.text-link span{color:var(--accent)}.hero{gap:var(--space-12);padding-block:var(--hero-space);grid-template-columns:1.12fr 1fr;display:grid}.hero-copy .eyebrow{margin-bottom:var(--space-6)}.hero-statement{max-width:45ch;color:var(--muted);font-size:var(--text-lead);margin-top:var(--space-6)}.hero-actions{align-items:center;gap:var(--space-6);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.vision-figure{align-self:center;width:100%;min-width:0}.vision-image{width:100%;height:auto;display:block}.approach,.services,.about{background:var(--surface)}.approach-layout,.about-layout{gap:var(--space-24);grid-template-columns:1.1fr 1fr;align-items:start;display:grid}.approach h2,.about h2,.technology h2,.contact-layout h2{margin-top:var(--space-6)}.approach-copy{padding-top:var(--space-8)}.approach-copy>p{margin-bottom:var(--space-6);font-size:var(--text-body);color:var(--muted)}.approach-copy .lead{font-size:var(--text-lead);color:var(--ink)}.principle{border-top:var(--border);padding-top:var(--space-6);margin-top:var(--space-8);align-items:start;gap:var(--space-4);display:flex}.principle>span{color:var(--accent);font-size:1.35rem}.principle p{font-size:var(--text-body)}.section-intro{justify-content:space-between;align-items:end;gap:var(--space-16);margin:var(--space-6) 0 var(--space-12);display:flex}.section-intro>p{max-width:36ch;font-size:var(--text-lead);color:var(--muted)}.steps{gap:var(--space-6);margin:var(--space-12) 0 0;grid-template-columns:repeat(5,minmax(0,1fr));padding:0;list-style:none;display:grid}.step-marker{border-top:var(--border);padding-top:var(--space-4);color:var(--accent);font-size:var(--text-label);justify-content:space-between;align-items:center;display:flex}.step-marker>span:last-child{color:#7e94a3;font-size:1.05rem}.steps li:last-child .step-marker>span:last-child{visibility:hidden}.steps h3{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-heading)}.steps p{font-size:var(--text-body);color:var(--muted)}.service-grid{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.service-card{border:var(--border);border-radius:var(--radius);padding:var(--card-padding);background:#fff;flex-direction:column;display:flex}.card-top{color:var(--accent);font-size:var(--text-label);margin-bottom:var(--space-8);justify-content:space-between;align-items:center;display:flex}.service-card h3{font-size:var(--text-heading)}.service-card>p{margin:var(--space-3) 0 0;font-size:var(--text-body);color:var(--muted)}.service-card>.service-statement{margin-top:var(--space-4);color:var(--ink);font-weight:var(--weight-medium)}.technology{gap:var(--space-12) var(--space-24);grid-template-columns:1fr 1fr;display:grid}.section-copy{margin-top:var(--space-6);font-size:var(--text-lead);color:var(--muted);max-width:48ch}.technology-notes{padding-top:var(--space-3)}.technology-notes article{align-items:start;gap:var(--space-6);padding-block:var(--space-6);border-top:var(--border);display:flex}.technology-notes article:last-child{border-bottom:var(--border)}.note-number{color:var(--accent);font-size:var(--text-label);padding-top:5px}.competence-tools{margin:var(--space-3) 0 0;font-size:var(--text-body);line-height:var(--leading-body);color:var(--muted);overflow-wrap:anywhere;padding:0;list-style:none}.competence-tools li{display:inline}.competence-tools li:not(:last-child):after{content:" · ";color:var(--accent)}.cognex-highlight{gap:var(--space-12) var(--space-24);padding:var(--card-padding);background:var(--surface);border-left:2px solid #69b4c3;grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.cognex-highlight h3{font-size:var(--text-heading)}.cognex-highlight p{font-size:var(--text-body);color:var(--muted)}.cognex-highlight .cognex-principle{color:var(--ink);margin-top:var(--space-3);font-weight:var(--weight-medium)}.experience-blocks{gap:var(--space-8);padding-top:var(--space-8);border-top:var(--border);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.experience-blocks dt{font-size:var(--text-stat);font-weight:var(--weight-medium);letter-spacing:-.035em;color:var(--accent);overflow-wrap:anywhere}.experience-blocks dd{margin:var(--space-2) 0 0;font-size:var(--text-body);line-height:var(--leading-body);color:var(--muted)}.about-layout{column-gap:var(--space-16);row-gap:var(--space-12);grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}.about-copy>p:where(:not(.eyebrow)){font-size:var(--text-body);line-height:var(--leading-body);color:var(--muted);margin-top:var(--space-6)}.about-copy>.about-intro{color:var(--ink);font-size:var(--text-lead);margin-top:var(--space-6)}.about-person{place-self:center;width:100%;max-width:340px}.about-person img{width:100%;height:auto}.about-person figcaption{margin-top:var(--space-6)}.about-person h3{font-size:var(--text-heading);margin-bottom:6px}.about-person p{font-size:var(--text-meta);color:var(--muted)}.about-person .about-person-role{color:var(--accent);margin-top:3px}.contact-layout{gap:var(--space-24);border:var(--border);padding:var(--panel-padding);border-radius:var(--radius);grid-template-columns:1.2fr 1fr;align-items:center;display:grid}.contact-panel{border-left:var(--border);min-width:0;padding-left:35px}.contact-details{margin-top:var(--space-6);font-style:normal}.contact-person{font-size:var(--text-ui);color:var(--muted)}.contact-options{margin:var(--space-4) 0 0;padding:0;list-style:none}.contact-options a{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;color:var(--accent);font-size:var(--text-body);font-weight:var(--weight-medium);text-underline-offset:4px;padding-block:9px;text-decoration:underline;display:flex}.contact-options a>span:first-child{overflow-wrap:anywhere;min-width:0}.contact-options a>span:last-child{flex-shrink:0}.contact-options a:hover{color:var(--ink)}.contact-new-tab{font-size:var(--text-label);font-weight:var(--weight-normal)}.contact-panel>p{font-size:var(--text-body);margin-top:var(--space-4);color:var(--muted)}.site-footer{background:var(--surface);padding:var(--space-8) 0 var(--space-6)}.footer-main{gap:var(--space-12);padding-bottom:var(--space-8);grid-template-columns:1.2fr 1fr .65fr;align-items:start;display:grid}.footer-brand>p{font-size:var(--text-meta);color:var(--muted);max-width:290px}.footer-brand .footer-company{margin-top:var(--space-4);color:var(--ink);font-weight:var(--weight-medium);margin-bottom:3px}.footer-contact{font-style:normal;font-size:var(--text-ui);min-width:0;padding-top:5px}.footer-contact p{margin-bottom:6px}.footer-contact a{min-height:38px;color:var(--accent);text-underline-offset:4px;overflow-wrap:anywhere;align-items:center;text-decoration:underline;display:flex}.footer-nav{font-size:var(--text-ui);grid-template-columns:1fr;display:grid}.footer-nav a{align-items:center;min-height:32px;padding-block:5px;display:flex}.footer-back-top{align-items:center;gap:var(--space-4);white-space:nowrap;min-height:32px;display:inline-flex}.footer-bottom{justify-content:space-between;align-items:start;gap:var(--space-8);padding-top:var(--space-6);border-top:var(--border);font-size:var(--text-meta);color:var(--muted);display:flex}.legal{justify-content:end;gap:var(--space-6);display:flex}.legal details{max-width:280px}.legal summary{cursor:pointer;min-height:32px;padding-block:5px}.legal p{white-space:pre-line;margin-top:var(--space-3)}@media (width>=1200px){.hero{column-gap:var(--space-6);grid-template-columns:minmax(0,.45fr) minmax(0,.55fr)}}@media (width<=1100px){.site-nav{gap:var(--space-4)}.hero{gap:var(--space-8)}.approach-layout,.about-layout,.technology{gap:var(--space-12)}.steps{gap:var(--space-4)}.contact-layout{gap:var(--space-12)}}@media (width<=950px){.header-inner{padding-block:var(--space-4);gap:var(--space-3);flex-direction:column}.site-nav{flex-wrap:wrap;justify-content:center}}@media (width<=850px){.footer-main{gap:var(--space-6) var(--space-8);grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.about-layout{gap:var(--space-8);grid-template-columns:1fr}.about-person{justify-self:start}.header-inner{padding-block:var(--space-6);gap:var(--space-6);flex-wrap:wrap}.site-nav{flex-wrap:wrap;flex:1;justify-content:end}.hero{grid-template-columns:1fr 1fr}.desktop-break{display:none}.hero-actions{gap:var(--space-4)}.section-intro{align-items:start;gap:var(--space-8)}.section-intro>p{max-width:270px}.steps{gap:var(--space-8) var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr))}.service-grid{gap:var(--space-4);grid-template-columns:1fr}.card-top{margin-bottom:var(--space-6)}.service-card>p{max-width:640px}.contact-layout{gap:var(--space-8)}.contact-panel{padding-left:25px}}@media (width<=640px){.footer-main{gap:var(--space-6);grid-template-columns:1fr}.footer-nav{gap:var(--space-1) var(--space-4);grid-template-columns:1fr 1fr}.footer-nav a,.footer-contact a{min-height:44px}.brand img,.site-footer .brand img{width:190px}.header-inner{justify-content:center}.site-nav{gap:var(--space-1) var(--space-4);width:100%;font-size:var(--text-ui);text-align:center;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.site-nav a{justify-content:center}.site-nav .button{margin-top:var(--space-2);grid-column:1/-1;justify-self:center}.site-nav>a:not(.button){padding-block:var(--space-2)}.button-small{padding:var(--space-2) var(--space-3)}.hero{gap:var(--space-8);grid-template-columns:1fr}.vision-figure{justify-self:center}.approach-layout,.about-layout,.technology,.contact-layout{gap:var(--space-8);grid-template-columns:1fr}.approach-copy{padding-top:0}.section-intro{margin-bottom:var(--space-8);display:block}.section-intro>p{max-width:480px;margin-top:var(--space-6)}.steps{gap:var(--space-6);margin-top:var(--space-8);grid-template-columns:1fr}.steps li{padding-left:54px;position:relative}.step-marker{border:0;padding-top:6px;position:absolute;top:0;left:0}.step-marker>span:last-child{display:none}.steps h3{margin:0 0 var(--space-3)}.steps li:not(:last-child):before{content:"";background:var(--line);width:1px;position:absolute;top:34px;bottom:-15px;left:8px}.technology-notes{padding-top:0}.cognex-highlight{gap:var(--space-4);padding:var(--card-padding);grid-template-columns:1fr}.experience-blocks{gap:var(--space-6);grid-template-columns:1fr}.experience-blocks dd{margin-top:5px}.contact-panel{border-left:0;border-top:var(--border);padding:var(--space-6) 0 0}.footer-bottom{gap:var(--space-6);flex-direction:column}.legal{flex-wrap:wrap;justify-content:start}.legal details{max-width:100%}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}.hero-statement,.section-intro>p,.section-copy,.about-intro,.approach-copy .lead{line-height:var(--leading-lead)}.footer-contact[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:#087c90}.legal[data-astro-cid-jo6i4kqk]>a[data-astro-cid-jo6i4kqk]{align-items:center;min-height:32px;padding-block:5px;display:inline-flex}@media (width<=640px){.legal[data-astro-cid-jo6i4kqk]>a[data-astro-cid-jo6i4kqk]{min-height:44px}}
