body:has(.novanta-site){background:var(--brand-canvas);margin:0;overflow:hidden}.novanta-site{--font-sans:"Satoshi", Arial, sans-serif;--font-display:var(--font-sans);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-body);letter-spacing:0;-webkit-font-smoothing:antialiased;line-height:1.6}.novanta-site :is(button,input,textarea,select){font:inherit;text-transform:none;letter-spacing:inherit}.novanta-site{--background:var(--brand-paper);--foreground:var(--brand-ink);--primary:var(--brand-ink);--primary-foreground:var(--brand-paper);--secondary:var(--brand-mist);--muted-foreground:var(--brand-muted);--border:var(--brand-line);--destructive:var(--brand-ink);--on-image:var(--brand-off-white);--canvas:var(--brand-canvas);--image-shade:oklch(12% 0 0/.45);--nav-glass:oklch(15% 0 0/.94);--nav-background:var(--nv-nav-dark-background);--nav-foreground:var(--nv-nav-dark-foreground);--nav-muted:var(--nv-nav-dark-muted);--nav-active:var(--nv-nav-dark-active);--nav-shadow:0 18px 35px oklch(15% 0 0/.08);--section-radius:var(--nv-radius-32);--frame-gutter:8px;--weight-heading:400;--weight-body:400;--weight-label:500;--text-body:var(--nv-text-16);--text-small:var(--nv-text-13);--text-label:var(--nv-text-12)}.novanta-site *{border-color:var(--border);box-sizing:border-box}.novanta-site a{color:inherit;text-decoration:none}.novanta-site button,.novanta-site input,.novanta-site textarea,.novanta-site select{font:inherit}.novanta-site ::selection{background:var(--foreground);color:var(--background)}.novanta-site .site{inset:var(--frame-gutter);--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);max-width:2400px;clip-path:var(--nv-chamfer);isolation:isolate;border-radius:0;margin-inline:auto;position:fixed;overflow:hidden}.novanta-site .site-scroll{border-radius:inherit;overscroll-behavior:contain;scrollbar-width:none;height:100%;position:relative;overflow:hidden auto}.novanta-site .site-scroll::-webkit-scrollbar{display:none}.novanta-site .topbar{z-index:30;justify-content:space-between;align-items:center;width:100%;height:104px;padding:0 48px;display:flex;position:absolute;top:0;left:0}.novanta-site .topbar.over-image{color:var(--on-image)}.novanta-site .wordmark{align-items:baseline;gap:5px;font-size:19px;font-weight:600;display:inline-flex}.novanta-site .wordmark .brand-number{font-size:var(--nv-text-32);font-weight:700}.novanta-site .wordmark sup{font-size:var(--nv-text-12);align-self:flex-start;margin-top:13px}.novanta-site .nav-dock{z-index:40;top:calc(var(--frame-gutter) + 30px);pointer-events:none;--nav-scale:1;--nav-shrink-dur:.62s;--nav-shrink-ease:cubic-bezier(.22, 1, .36, 1);transition:top var(--nav-shrink-dur) var(--nav-shrink-ease);position:fixed;left:50%;transform:translate(-50%)}.novanta-site .nav-dock.is-stuck{--nav-scale:.7;top:calc(var(--frame-gutter) * 2)}.novanta-site .nav-pill{background:var(--nav-background);color:var(--nav-foreground);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);transform:scale(var(--nav-scale));transform-origin:top;transition:transform var(--nav-shrink-dur) var(--nav-shrink-ease), background-color var(--nv-dur-base) var(--nv-ease-standard), color var(--nv-dur-base) var(--nv-ease-standard);will-change:transform;pointer-events:auto;border-radius:0;align-items:center;gap:2px;padding:6px;display:flex}@media (prefers-reduced-motion:reduce){.novanta-site .nav-dock{--nav-shrink-dur:0s}}.novanta-site .nav-pill .nav-control{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);height:34px;clip-path:var(--nv-chamfer);font-size:var(--nv-text-12);color:var(--nav-foreground);box-shadow:none;background:0 0;border-radius:0;padding:0 15px;font-weight:400}.novanta-site .nav-pill .nav-control:hover,.novanta-site .nav-pill .nav-control[aria-expanded=true]{background:var(--nav-active)}.novanta-site .nav-pill .nav-control:focus-visible{outline:1px solid var(--nav-foreground);outline-offset:2px}.novanta-site .nav-pill .pages-trigger{gap:5px}.novanta-site .nav-pill .pages-trigger svg{width:10px;height:10px;transition:transform var(--nv-dur-fast)}.novanta-site .chevron-open{transform:rotate(180deg)}.novanta-site .pages-panel{top:calc(100% * var(--nav-scale) + 8px);--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);width:560px;clip-path:var(--nv-chamfer);background:var(--nav-background);color:var(--nav-foreground);box-shadow:var(--nav-shadow);pointer-events:auto;border-radius:0;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-left:-280px;padding:44px;display:grid;position:absolute;left:50%}.novanta-site .pages-column{flex-direction:column;align-items:flex-start;gap:18px;min-width:0;display:flex}.novanta-site .pages-column h2{font-size:var(--nv-text-12);text-transform:uppercase;color:var(--on-image);margin:0 0 6px;font-weight:400}.novanta-site .pages-column a{font-size:var(--nv-text-13);color:var(--nav-muted);transition:color var(--nv-dur-fast);line-height:1.5}.novanta-site .pages-column a:hover,.novanta-site .pages-column a:focus-visible{color:var(--on-image)}.novanta-site .social-links{align-items:center;gap:8px;display:flex}.novanta-site .social-link{--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:29px;height:29px;clip-path:var(--nv-chamfer);background:var(--background);color:var(--foreground);font-size:var(--nv-text-12);border-radius:0;place-items:center;font-weight:700;display:grid}.novanta-site .mobile-menu-toggle{display:none}.novanta-site .hero{min-height:910px;color:var(--on-image);position:relative;overflow:hidden}.novanta-site .hero-image,.novanta-site .cover-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.novanta-site .hero-image{object-position:center 52%}.novanta-site [data-project=giuseppe-durzo] .cover-image,.novanta-site .about-gallery img[data-project=giuseppe-durzo]{object-position:76% center}.novanta-site .hero-shade{background:linear-gradient(180deg, transparent 38%, var(--image-shade) 100%);position:absolute;inset:0}.novanta-site .hero-title{text-align:center;padding:160px 20px 0;position:relative}.novanta-site .eyebrow{text-transform:uppercase;font-size:var(--nv-text-12);font-weight:500;line-height:1.5}.novanta-site .hero-title h1{margin:24px 0 20px;font-size:99px;font-weight:400;line-height:.98}.novanta-site .serif{font-family:var(--font-display);font-weight:400}.novanta-site .hero-title .serif{display:block}.novanta-site .hero-title p{font-size:var(--nv-text-12);max-width:300px;margin:auto;line-height:1.65}.novanta-site .small-link{font-size:var(--nv-text-12);align-items:center;gap:12px;display:inline-flex}.novanta-site .content-band{background:var(--background);padding:90px 0;position:relative}.novanta-site .home-services{margin-top:-32px;padding-bottom:100px}.novanta-site .container{width:min(100% - 112px,1040px);margin-inline:auto}.novanta-site .section-label{text-align:center;margin-bottom:62px}.novanta-site .service-row{grid-template-columns:50px 1fr 1.2fr;gap:28px;padding:32px 0;display:grid}.novanta-site .service-index{color:var(--muted-foreground);font-size:var(--nv-text-12);padding-top:6px}.novanta-site .service-row h3{font-size:var(--nv-text-20);margin:0;font-weight:400}.novanta-site .service-row p{font-size:var(--nv-text-12);max-width:370px;margin:0 0 17px;line-height:1.8}.novanta-site .service-tags{font-size:var(--nv-text-12);text-transform:uppercase;line-height:2}.novanta-site .project-panel{--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);height:530px;clip-path:var(--nv-chamfer);color:var(--on-image);border-radius:0;margin-top:-1px;display:block;position:relative;overflow:hidden}.novanta-site .project-stack{isolation:isolate;position:relative}.novanta-site .project-stack-item{position:sticky;top:0}.novanta-site .project-stack-item .project-panel{height:calc(100svh - 2 * var(--frame-gutter));margin-top:0}@media (prefers-reduced-motion:reduce){.novanta-site .project-stack-item{position:relative}}.novanta-site .parallax-frame{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.novanta-site .parallax-plane{will-change:transform;height:140%;position:absolute;top:-20%;left:0;right:0}.novanta-site .parallax-cover .parallax-plane{transform-origin:50% 0;height:110%;top:-2%}.novanta-site .parallax-zoom{transition:transform var(--nv-dur-enter) var(--nv-ease-standard);position:absolute;inset:0}.novanta-site .project-panel:hover .parallax-zoom{transform:scale(1.035)}@media (prefers-reduced-motion:reduce){.novanta-site .parallax-plane{will-change:auto}.novanta-site .project-panel:hover .parallax-zoom{transform:none}}.novanta-site .project-panel:after{content:"";background:linear-gradient(90deg, color-mix(in oklab, var(--image-shade) 38%, transparent), transparent 70%);position:absolute;inset:0}.novanta-site .project-panel-content{z-index:2;flex-direction:column;align-items:flex-start;height:100%;padding:43px 48px;display:flex;position:relative}.novanta-site .project-name{max-width:460px;margin:0 0 18px;font-size:65px;font-weight:400;line-height:1}.novanta-site .project-name span{display:block}.novanta-site .project-description{font-size:var(--nv-text-12);max-width:230px;margin:0;line-height:1.6}.novanta-site .project-tags{gap:6px;margin-top:auto;display:flex}.novanta-site .project-tag{--nv-edge:color-mix(in oklab, var(--on-image) 50%, transparent);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);font-size:var(--nv-text-12);text-transform:uppercase;border:1px solid #0000;border-radius:0;padding:5px 11px;position:relative}.novanta-site .panel-arrow{--nv-edge:color-mix(in oklab, var(--on-image) 50%, transparent);--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:48px;height:48px;clip-path:var(--nv-chamfer);opacity:0;transition:var(--nv-dur-base);border:1px solid #0000;border-radius:0;place-items:center;display:grid;position:absolute;bottom:36px;right:43px;transform:translate(-10px,10px)}.novanta-site .project-panel:hover .panel-arrow{opacity:1;transform:translate(0)}.novanta-site .agency-overview{grid-template-columns:1fr 1.15fr;gap:100px;padding:10px 0 90px;display:grid}.novanta-site .agency-overview h2{font-size:var(--nv-text-32);margin:0 0 20px;font-weight:400;line-height:1.2}.novanta-site .agency-overview p{max-width:280px;font-size:var(--nv-text-12);line-height:1.8}.novanta-site .stats-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.novanta-site .service-stats .stats-grid{grid-template-columns:repeat(4,1fr)}.novanta-site .stat{background:var(--secondary);--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:26px}.novanta-site .stat strong{font-size:var(--nv-text-32);font-weight:400;display:block}.novanta-site .stat p{font-size:var(--nv-text-12);color:var(--muted-foreground);margin-bottom:0;line-height:1.6}.novanta-site .expertise-row{border-bottom:1px solid var(--border);grid-template-columns:55px 1fr auto;align-items:center;gap:22px;padding:22px 0;display:grid}.novanta-site .expertise-number{font-family:var(--font-display);font-size:var(--nv-text-28)}.novanta-site .expertise-row h3{font-size:var(--nv-text-17);margin:0 0 5px;font-weight:400}.novanta-site .expertise-row p{font-size:var(--nv-text-12);color:var(--muted-foreground);margin:0}.novanta-site .contact-cta{text-align:center;padding:90px 20px 100px}.novanta-site .contact-cta h2{margin:18px 0 28px;font-size:44px;font-weight:400;line-height:1.15}.novanta-site .agency-button{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);--nv-edge:var(--primary);background:var(--primary);color:var(--primary-foreground);height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;text-transform:uppercase;box-shadow:none;border:1px solid #0000;border-radius:0;padding:0 24px;font-weight:500;position:relative}.novanta-site .agency-button:hover{background:color-mix(in oklab, var(--primary) 83%, var(--background));--nv-edge:color-mix(in oklab, var(--primary) 83%, var(--background))}.novanta-site .outline-button{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);--nv-edge:var(--foreground);color:var(--foreground);height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;text-transform:uppercase;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:0;padding:0 24px;font-weight:500;position:relative}.novanta-site .outline-button:hover{background:var(--secondary)}.novanta-site .inverse-outline-button{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);--nv-edge:color-mix(in oklab, var(--on-image) 40%, transparent);color:var(--on-image);height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;text-transform:uppercase;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:0;padding:0 24px;font-weight:500;position:relative}.novanta-site .inverse-outline-button:hover{background:color-mix(in oklab, var(--on-image) 8%, transparent)}.novanta-site .circle-button{--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);clip-path:var(--nv-chamfer);border-radius:0;width:48px;height:48px;padding:0}.novanta-site .footer{color:var(--on-image);grid-template-columns:1.5fr 1fr 1fr;gap:clamp(48px,7vw,110px);padding:clamp(90px,12vw,165px) clamp(28px,6vw,80px) clamp(28px,3vw,44px);display:grid}.novanta-site .footer .wordmark{margin-bottom:0}.novanta-site .footer-brand{flex-direction:column;align-items:flex-start;gap:clamp(32px,4vw,48px);display:flex}.novanta-site .footer-brand p{font-size:clamp(var(--nv-text-15), 1.3vw, var(--nv-text-18));color:color-mix(in oklab, var(--on-image) 82%, transparent);margin:0;line-height:1.85}.novanta-site .footer-brand a{text-decoration:none}.novanta-site .footer-brand .social-links{gap:12px}.novanta-site .footer-brand .social-link{width:40px;height:40px;font-size:var(--nv-text-14)}.novanta-site .footer a:hover{opacity:.7}.novanta-site .footer-heading{text-transform:uppercase;letter-spacing:.14em;color:color-mix(in oklab, var(--on-image) 55%, transparent);margin:0 0 clamp(26px,3vw,36px)}.novanta-site .footer-nav{flex-direction:column;gap:clamp(16px,1.9vw,22px);display:flex}.novanta-site .footer-nav a{font-size:clamp(var(--nv-text-14), 1.2vw, var(--nv-text-17));color:color-mix(in oklab, var(--on-image) 72%, transparent);transition:color var(--nv-dur-base);line-height:1.45}.novanta-site .footer-nav a:hover{color:var(--on-image);opacity:1}.novanta-site .footer-bottom{color:color-mix(in oklab, var(--on-image) 45%, transparent);font-size:var(--text-small);text-align:center;padding:clamp(58px,8vw,95px) clamp(28px,6vw,80px) clamp(28px,3vw,44px)}.novanta-site .page-surface{background:var(--background);min-height:650px;overflow:clip}.novanta-site .page-intro{text-align:center;padding:165px 24px 75px}.novanta-site .page-intro h1{margin:16px 0;font-size:65px;font-weight:400;line-height:1.1}.novanta-site .page-intro p{max-width:370px;font-size:var(--nv-text-14);margin:auto;line-height:1.7}.novanta-site .short-hero-content{position:absolute;bottom:65px;left:7%}.novanta-site .short-hero-content h1{margin:0 0 12px;font-size:65px;font-weight:400}.novanta-site .short-hero-content p{max-width:345px;line-height:1.7}.novanta-site .overlap-band{margin-top:-32px}.novanta-site .service-feature-grid{grid-template-columns:1fr 1fr;gap:75px;display:grid}.novanta-site .service-feature-column{flex-direction:column;gap:70px;display:flex}.novanta-site .service-feature-grid h2{font-size:var(--nv-text-36);margin:0 0 25px;font-weight:400;line-height:1.2}.novanta-site .service-feature-grid p{font-size:var(--nv-text-12);line-height:1.9}.novanta-site .feature-image{object-fit:cover;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:100%;height:480px;clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .award-row{border-bottom:1px solid var(--border);font-size:var(--nv-text-12);grid-template-columns:90px 1fr 1.6fr;gap:35px;padding:30px 0;line-height:1.8;display:grid}.novanta-site .award-row p{color:var(--muted-foreground);margin:0}.novanta-site .detail-hero{min-height:720px}.novanta-site .detail-hero .hero-title h1{font-size:100px}.novanta-site .detail-info{grid-template-columns:1.1fr 1fr;gap:90px;margin-bottom:85px;display:grid}.novanta-site .detail-info h2{font-size:var(--nv-text-36);margin:0 0 23px;font-weight:400;line-height:1.2}.novanta-site .detail-info p{font-size:var(--nv-text-12);line-height:1.9}.novanta-site .project-facts{background:var(--secondary);align-self:start;padding:20px 30px}.novanta-site .fact-row{border-bottom:1px solid var(--border);font-size:var(--nv-text-12);justify-content:space-between;gap:20px;padding:21px 0;display:flex}.novanta-site .fact-row:last-child{border:0}.novanta-site .fact-row a{text-underline-offset:3px;text-align:right;overflow-wrap:anywhere;text-decoration:underline}.novanta-site .gallery{grid-template-columns:1fr 1fr;gap:28px;display:grid}.novanta-site .gallery img{aspect-ratio:4/5;object-fit:cover;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:100%;clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .project-quote{font-size:var(--nv-text-24);text-align:center;max-width:640px;margin:90px auto 20px;line-height:1.4}.novanta-site .project-note{color:var(--muted-foreground);font-size:var(--nv-text-12);text-align:center;margin-top:25px}.novanta-site .contact-cover{isolation:isolate;color:var(--on-image);position:relative;overflow:hidden}.novanta-site .contact-cover:after{content:"";background:color-mix(in oklab, var(--image-shade) 60%, transparent);pointer-events:none;position:absolute;inset:0}.novanta-site .contact-cover .cover-image{object-position:center top}.novanta-site .contact-cover-grid{z-index:1;grid-template-columns:1fr 330px;align-items:center;gap:100px;width:min(100% - 112px,930px);min-height:590px;margin-inline:auto;padding:110px 0 90px;display:grid;position:relative}.novanta-site .contact-heading h1{margin:0 0 12px;font-size:88px;line-height:1.05}.novanta-site .contact-heading>p{max-width:345px;margin:0;font-size:19px;line-height:1.55}.novanta-site .contact-details{font-size:var(--nv-text-14);margin-top:30px}.novanta-site .contact-details a{text-decoration:none}.novanta-site .contact-form-wrap{min-width:0}.novanta-site .contact-card{background:var(--background);color:var(--foreground);--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:30px 32px 24px;position:relative}.novanta-site .contact-card:before{content:"";--cut:3px;--soft:1.3px;width:10px;height:10px;clip-path:var(--nv-chamfer);background:var(--muted-foreground);border-radius:0;position:absolute;top:-4px;right:19px}.novanta-site .contact-faq-grid{grid-template-columns:1fr 1.1fr;gap:100px;width:min(100% - 112px,800px);margin-inline:auto;display:grid}.novanta-site .contact-faq h2{font-size:var(--nv-text-36);margin:0;line-height:1.2}.novanta-site .contact-faq-item{border-bottom:1px solid var(--border)}.novanta-site .contact-faq-item:last-child{border-bottom:0}.novanta-site .contact-faq-item h3{margin:0}.novanta-site .contact-faq-trigger{text-align:left;white-space:normal;width:100%;height:auto;min-height:80px;font-size:var(--nv-text-16);font-weight:var(--weight-body);border-radius:0;justify-content:space-between;gap:24px;padding:22px 0;line-height:1.4}.novanta-site .contact-faq-trigger:hover{color:var(--muted-foreground);background:0 0}.novanta-site .contact-faq-icon{--nv-edge:var(--border);--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:26px;height:26px;clip-path:var(--nv-chamfer);color:var(--muted-foreground);border:1px solid #0000;border-radius:0;flex-shrink:0;place-items:center;display:grid;position:relative}.novanta-site .contact-faq-item p{font-size:var(--nv-text-15);color:var(--muted-foreground);margin:0;padding:0 42px 24px 0;line-height:1.7}.novanta-site .contact-form{flex-direction:column;gap:24px;display:flex}.novanta-site .contact-form label{font-size:var(--nv-text-12);flex-direction:column;gap:9px;display:flex}.novanta-site .contact-form input,.novanta-site .contact-form textarea,.novanta-site .contact-form select{background:var(--secondary);border:1px solid var(--border);--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);width:100%;clip-path:var(--nv-chamfer);color:var(--foreground);border-radius:0;outline:none;padding:14px}.novanta-site .contact-form input:focus,.novanta-site .contact-form textarea:focus{border-color:var(--foreground);background:var(--background)}.novanta-site .contact-form textarea{resize:vertical;min-height:120px}.novanta-site .form-status{font-size:var(--nv-text-12);line-height:1.7}@media (width>=1600px){.novanta-site .hero{min-height:1000px}.novanta-site .hero-title{padding-top:180px}.novanta-site .hero-title h1{font-size:120px}.novanta-site .project-panel{height:650px}}@media (width<=900px){.novanta-site .topbar{padding:0 28px}.novanta-site .social-links{display:none}.novanta-site .hero{min-height:860px}.novanta-site .hero-title h1{font-size:83px}.novanta-site .container{width:calc(100% - 64px)}.novanta-site .service-row{grid-template-columns:30px 1fr 1.2fr;gap:15px}.novanta-site .agency-overview{gap:35px}.novanta-site .project-panel{height:430px}.novanta-site .project-name{font-size:53px}.novanta-site .service-feature-grid{gap:35px}.novanta-site .detail-info{grid-template-columns:1fr;gap:40px}.novanta-site .feature-image{height:380px}}@media (width<=600px){.novanta-site{--section-radius:24px;--frame-gutter:5px}.novanta-site .topbar{grid-template-columns:minmax(0,1fr) auto;height:84px;padding:0 33px;display:grid}.novanta-site .topbar .wordmark{min-width:0}.novanta-site .wordmark{font-size:var(--nv-text-14)}.novanta-site .wordmark .brand-number{font-size:var(--nv-text-28)}.novanta-site .nav-dock{display:none}.novanta-site .mobile-menu-toggle{z-index:42;background:var(--nav-background);width:34px;height:34px;color:var(--on-image);flex-shrink:0;padding:0;display:inline-flex;position:fixed;top:28px;right:33px}.novanta-site .mobile-menu-toggle svg{width:17px;height:17px}.novanta-site .mobile-nav{z-index:41;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:min(246px,100% - 66px);max-height:calc(100svh - 100px);clip-path:var(--nv-chamfer);background:var(--nav-background);color:var(--nav-foreground);border-radius:0;flex-direction:column;gap:7px;padding:20px;display:flex;position:fixed;top:75px;left:auto;right:33px;overflow-y:auto}.novanta-site .mobile-nav .nav-control{width:100%;min-height:42px;font-size:var(--nv-text-14);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);background:var(--nav-active);color:var(--on-image);text-align:center;border-radius:0;flex-shrink:0;padding:10px 14px;font-weight:400}.novanta-site .mobile-nav .nav-control:hover,.novanta-site .mobile-nav .nav-control:focus-visible{background:color-mix(in oklab, var(--nav-active) 85%, var(--on-image))}.novanta-site .hero{min-height:830px}.novanta-site .hero-title{padding-top:130px}.novanta-site .hero-title h1{margin-top:18px;font-size:66px}.novanta-site .hero-title p{font-size:var(--nv-text-12);max-width:240px}.novanta-site .container{width:calc(100% - 44px)}.novanta-site .content-band{padding:62px 0}.novanta-site .section-label{margin-bottom:30px}.novanta-site .service-row{grid-template-columns:28px 1fr;gap:10px;padding:25px 0}.novanta-site .service-row h3{font-size:var(--nv-text-20)}.novanta-site .service-copy{grid-column:2}.novanta-site .service-row p{font-size:var(--nv-text-12)}.novanta-site .project-panel{height:380px}.novanta-site .project-panel-content{padding:28px 25px}.novanta-site .project-name{font-size:var(--nv-text-48)}.novanta-site .project-description{font-size:var(--nv-text-12);max-width:185px}.novanta-site .panel-arrow{opacity:1;width:36px;height:36px;bottom:24px;right:23px;transform:none}.novanta-site .agency-overview{grid-template-columns:1fr;gap:30px;padding-bottom:55px}.novanta-site .agency-overview h2{font-size:var(--nv-text-28)}.novanta-site .agency-overview p{max-width:none}.novanta-site .stat{padding:19px}.novanta-site .stat strong{font-size:var(--nv-text-28)}.novanta-site .expertise-row{grid-template-columns:35px 1fr auto;gap:12px}.novanta-site .expertise-row h3{font-size:var(--nv-text-15)}.novanta-site .contact-cta{padding:65px 24px}.novanta-site .contact-cta h2{font-size:var(--nv-text-32)}.novanta-site .footer{grid-template-columns:1fr 1fr;gap:52px 26px;padding:82px 24px 18px}.novanta-site .footer-brand{grid-column:1/-1;gap:40px}.novanta-site .footer-bottom{padding:62px 24px 22px}.novanta-site .page-intro{padding:130px 20px 55px}.novanta-site .page-intro h1{font-size:43px}.novanta-site .page-intro p{font-size:var(--nv-text-12)}.novanta-site .short-hero{min-height:350px}.novanta-site .short-hero-content{bottom:65px;left:25px}.novanta-site .short-hero-content h1{font-size:var(--nv-text-48)}.novanta-site .short-hero-content p{font-size:var(--nv-text-12);max-width:260px}.novanta-site .service-feature-grid{grid-template-columns:1fr;gap:40px}.novanta-site .service-feature-column{gap:35px}.novanta-site .service-feature-grid h2{font-size:var(--nv-text-28)}.novanta-site .feature-image{height:370px}.novanta-site .awards{margin-top:65px}.novanta-site .award-row{grid-template-columns:32px 1fr;gap:17px}.novanta-site .award-row p{grid-column:2}.novanta-site .detail-hero{min-height:620px}.novanta-site .detail-hero .hero-title h1{font-size:66px}.novanta-site .detail-info{grid-template-columns:1fr;gap:25px;margin-bottom:60px}.novanta-site .detail-info h2{font-size:var(--nv-text-28)}.novanta-site .gallery{gap:12px}.novanta-site .gallery img{--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .project-quote{font-size:var(--nv-text-20);margin-top:55px}.novanta-site .service-stats .stats-grid{grid-template-columns:1fr 1fr}}.novanta-site .site :is(h1,h2,h3){font-weight:var(--weight-heading);letter-spacing:0;text-wrap:pretty}.novanta-site .site :is(.eyebrow,.service-tags,.project-tag,.footer-heading,.pages-column h2){font-size:var(--text-label);font-weight:var(--weight-label);line-height:1.6}.novanta-site .site :is(.service-row p,.agency-overview p,.service-feature-grid p,.detail-info p){font-size:var(--text-body);font-weight:var(--weight-body);line-height:1.75}.novanta-site .site :is(.stat p,.expertise-row p,.project-note,.fact-row,.contact-form label,.form-status){font-size:var(--text-small);font-weight:var(--weight-body);line-height:1.65}.novanta-site .site :is(.small-link,.agency-button){font-size:var(--text-small);font-weight:var(--weight-body)}.novanta-site .short-hero-content h1{font-size:88px;line-height:1.05}.novanta-site .short-hero-content p{max-width:440px;font-size:19px;line-height:1.55}.novanta-site .service-feature-grid h2,.novanta-site .detail-info h2{font-size:42px;line-height:1.15}.novanta-site .agency-overview h2{font-size:var(--nv-text-36);line-height:1.2}.novanta-site .stat strong{font-size:var(--nv-text-36);line-height:1.2;font-weight:var(--weight-heading);margin-bottom:7px}.novanta-site .project-description{font-size:var(--nv-text-15);max-width:290px;line-height:1.65}.novanta-site .project-name{line-height:1.08}.novanta-site .contact-form :is(input,textarea,select){font-size:var(--text-body)}.novanta-site .contact-page .contact-card label{font-size:var(--nv-text-12);letter-spacing:.08em;text-transform:uppercase;gap:8px;font-weight:500}.novanta-site .contact-page .contact-card :is(input,textarea){font-size:var(--nv-text-15);background:var(--secondary);border:1px solid var(--border);--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);text-transform:none;border-radius:0;padding:14px}.novanta-site .contact-page .contact-card .agency-button{width:100%;height:48px;font-size:var(--nv-text-13);text-transform:uppercase;letter-spacing:.08em;padding:0 24px}.novanta-site .contact-card .form-status{margin:0}@media (width<=900px){.novanta-site .contact-cover-grid{grid-template-columns:1fr 310px;gap:45px;width:calc(100% - 80px)}.novanta-site .contact-heading h1{font-size:var(--nv-text-72)}.novanta-site .contact-faq-grid{gap:55px;width:calc(100% - 100px)}}@media (width<=600px){.novanta-site .contact-cover-grid{grid-template-columns:1fr;gap:35px;width:calc(100% - 44px);min-height:0;padding:130px 0 45px}.novanta-site .contact-heading h1{font-size:var(--nv-text-56)}.novanta-site .contact-heading>p{font-size:var(--nv-text-17);max-width:290px}.novanta-site .contact-details{font-size:var(--nv-text-13);margin-top:22px}.novanta-site .contact-card{padding:27px 26px 22px}.novanta-site .contact-page .contact-card :is(input,textarea){font-size:var(--nv-text-16)}.novanta-site .contact-faq{padding:55px 0 60px}.novanta-site .contact-faq-grid{grid-template-columns:1fr;gap:25px;width:calc(100% - 48px)}.novanta-site .contact-faq h2{font-size:var(--nv-text-32)}.novanta-site .contact-faq-trigger{font-size:var(--nv-text-15);gap:18px;min-height:75px}.novanta-site{--text-body:15px;--text-small:12px;--text-label:10px}.novanta-site .hero{min-height:940px}.novanta-site .short-hero{min-height:350px}.novanta-site .detail-hero{min-height:620px}.novanta-site .hero-title p{font-size:var(--nv-text-13);max-width:270px}.novanta-site .short-hero-content h1{font-size:var(--nv-text-48)}.novanta-site .short-hero-content p{font-size:var(--nv-text-15);max-width:285px}.novanta-site .service-row h3{font-size:var(--nv-text-22)}.novanta-site .service-feature-grid h2,.novanta-site .detail-info h2,.novanta-site .agency-overview h2,.novanta-site .stat strong{font-size:var(--nv-text-32)}.novanta-site .project-description{font-size:var(--nv-text-13);max-width:240px}.novanta-site .page-intro p{font-size:var(--nv-text-15)}}@media (prefers-reduced-motion:reduce){.novanta-site,.novanta-site .site-scroll{scroll-behavior:auto}.novanta-site *,.novanta-site :before,.novanta-site :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.novanta-site .notfound-hero{min-height:calc(100svh - 2 * var(--frame-gutter))}.novanta-site .notfound-content{flex-direction:column;justify-content:space-between;gap:45px;display:flex;position:absolute;inset:165px 7% 68px}.novanta-site .notfound-code{font-family:var(--font-display);margin:0;font-size:clamp(110px,19vw,250px);line-height:.8}.novanta-site .notfound-label{font-size:clamp(var(--nv-text-36), 6.4vw, 84px);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 0;font-weight:700;line-height:1}.novanta-site .inverse-button{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);--nv-edge:var(--background);background:var(--background);color:var(--foreground);height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;text-transform:uppercase;box-shadow:none;border:1px solid #0000;border-radius:0;padding:0 24px;font-weight:500;position:relative}.novanta-site .inverse-button:hover{background:color-mix(in oklab, var(--foreground) 9%, var(--background))}@media (width<=600px){.novanta-site .notfound-content{gap:30px;inset:125px 25px 55px}.novanta-site .notfound-copy{font-size:var(--nv-text-13);max-width:250px;margin-top:20px}.novanta-site .inverse-button{height:44px;font-size:var(--nv-text-12);padding:0 20px}}.novanta-site .intro-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;display:flex}.novanta-site .notfound-hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg, color-mix(in oklab, var(--canvas) 90%, transparent) 0%, color-mix(in oklab, var(--canvas) 66%, transparent) 40%, transparent 76%), linear-gradient(180deg, transparent 55%, color-mix(in oklab, var(--canvas) 55%, transparent) 100%);position:absolute;inset:0}.novanta-site .notfound-content{z-index:2}.novanta-site .cursor{z-index:2147483647;pointer-events:none;mix-blend-mode:difference;position:fixed;inset:0}.novanta-site .cursor-follow{will-change:transform;position:absolute;top:0;left:0}.novanta-site :is(.cursor-dot,.cursor-frame){--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);background:var(--brand-paper);transition:width var(--nv-dur-base) var(--nv-ease-standard), height var(--nv-dur-base) var(--nv-ease-standard), opacity var(--nv-dur-base), scale var(--nv-dur-fast) var(--nv-ease-standard);border-radius:0;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.novanta-site .cursor-dot{width:var(--nv-cursor-dot);height:var(--nv-cursor-dot);clip-path:var(--nv-chamfer)}.novanta-site .cursor-frame{width:var(--nv-cursor-frame);height:var(--nv-cursor-frame);--bw:var(--nv-cursor-stroke);clip-path:var(--nv-ring)}.novanta-site .cursor-label{color:var(--brand-ink);font-size:var(--text-label);font-weight:var(--weight-label);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;opacity:0;transition:opacity var(--nv-dur-base);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.novanta-site .cursor[data-mode=active] .cursor-frame{width:var(--nv-cursor-frame-active);height:var(--nv-cursor-frame-active)}.novanta-site .cursor[data-mode=active] .cursor-dot{width:var(--nv-cursor-dot-active);height:var(--nv-cursor-dot-active)}.novanta-site .cursor[data-mode=view] .cursor-frame{width:var(--nv-cursor-view);height:var(--nv-cursor-view);clip-path:var(--nv-chamfer)}.novanta-site .cursor[data-mode=view] .cursor-dot{opacity:0}.novanta-site .cursor[data-mode=view] .cursor-label{opacity:1}.novanta-site .cursor[data-pressed=true] :is(.cursor-dot,.cursor-frame){scale:.82}@media (hover:hover) and (pointer:fine){.novanta-site,.novanta-site .site,.novanta-site .site-scroll,.novanta-site a,.novanta-site button,.novanta-site input,.novanta-site textarea,.novanta-site select,.novanta-site summary,.novanta-site [role=button]{cursor:none}}@media (prefers-reduced-motion:reduce){.novanta-site .cursor-dot,.novanta-site .cursor-frame,.novanta-site .cursor-label{transition:none}}.novanta-site .site :is(.footer-nav a,.pages-column a,.small-link,.contact-card a,.footer-contact a,.footer-brand p a){text-decoration:none;position:relative}.novanta-site .roll-text{vertical-align:top;display:inline-block;position:relative;overflow:hidden}.novanta-site .roll-line{transition:transform var(--nv-dur-roll) var(--nv-ease-standard);display:block}.novanta-site .roll-line-ghost{position:absolute;top:100%;left:0}.novanta-site a:hover .roll-text .roll-line,.novanta-site a:focus-visible .roll-text .roll-line,.novanta-site button:hover .roll-text .roll-line,.novanta-site button:focus-visible .roll-text .roll-line{transform:translateY(-100%)}.novanta-site .site :is(.agency-button,.outline-button,.inverse-button,.inverse-outline-button,.nav-control,.social-link){transition:background var(--nv-dur-base) var(--nv-ease-standard), color var(--nv-dur-base), transform var(--nv-dur-base) var(--nv-ease-standard), border-color var(--nv-dur-base)}.novanta-site .site :is(.agency-button,.outline-button,.inverse-button,.inverse-outline-button):hover{transform:translateY(-2px)}.novanta-site .site :is(.agency-button,.outline-button,.inverse-button,.inverse-outline-button):active{transform:translateY(0)}.novanta-site .site .social-link:hover{transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.novanta-site .roll-line{transition:none}.novanta-site .site :is(.agency-button,.inverse-button,.social-link):hover{transform:none}}.novanta-site{--weight-heading:500;--text-body:var(--nv-text-16);--text-small:14px;--text-label:15px}.novanta-site .site :is(h1,h2,h3){font-weight:500}.novanta-site .site .serif{font-weight:400}.novanta-site .site :is(.eyebrow,.section-label,.footer-heading,.pages-column h2){font-size:var(--nv-text-15);letter-spacing:1px;text-transform:uppercase;font-weight:500;line-height:1.4}.novanta-site .site :is(.service-tags,.project-tag){font-size:var(--nv-text-14);letter-spacing:.5px;font-weight:500;line-height:1.6}.novanta-site .nav-pill .nav-control{font-size:var(--nv-text-16);font-weight:400}.novanta-site .hero-title h1{font-size:var(--nv-text-128);line-height:.9}.novanta-site .home-hero .hero-title h1 .serif:last-child{font-family:var(--font-sans);font-weight:500}.novanta-site .hero-title p{font-size:var(--nv-text-24);max-width:520px;line-height:1.5}.novanta-site .service-index{font-family:var(--font-display);font-size:var(--nv-text-32);text-transform:uppercase;color:var(--foreground);padding-top:0;line-height:1.2}.novanta-site .service-row h3{font-size:var(--nv-text-28);line-height:1.2}.novanta-site .site .service-row p{font-size:var(--nv-text-22);max-width:520px;line-height:1.6}.novanta-site .project-name{font-size:var(--nv-text-96);max-width:none;line-height:1}.novanta-site .project-name span:not(.serif){font-weight:500}.novanta-site .project-description{font-size:var(--nv-text-16);line-height:1.5}.novanta-site .page-intro h1,.novanta-site .agency-overview h2,.novanta-site .service-feature-grid h2,.novanta-site .detail-info h2,.novanta-site .contact-faq h2{font-size:var(--nv-text-56);letter-spacing:-1px;line-height:1.1}.novanta-site .page-intro p,.novanta-site .short-hero-content p,.novanta-site .contact-heading>p{font-size:var(--nv-text-24);line-height:1.5}.novanta-site .short-hero-content h1,.novanta-site .contact-heading h1,.novanta-site .detail-hero .hero-title h1{font-size:var(--nv-text-96);line-height:1}.novanta-site .stat strong{font-size:var(--nv-text-48);font-weight:500;line-height:1.2}.novanta-site .contact-cta h2{letter-spacing:0;font-size:80px;line-height:1}.novanta-site .footer-nav a{font-size:var(--nv-text-18);line-height:1.3}.novanta-site .footer-brand p{font-size:var(--nv-text-16);line-height:1.5}.novanta-site .expertise-number{font-size:var(--nv-text-32)}.novanta-site .expertise-row h3{font-size:var(--nv-text-28);line-height:1.2}@media (width<=900px){.novanta-site .hero-title h1{font-size:var(--nv-text-96)}.novanta-site .project-name{font-size:var(--nv-text-72)}.novanta-site .contact-cta h2{font-size:60px}.novanta-site .short-hero-content h1,.novanta-site .contact-heading h1,.novanta-site .detail-hero .hero-title h1{font-size:var(--nv-text-72)}.novanta-site .page-intro h1,.novanta-site .agency-overview h2,.novanta-site .service-feature-grid h2,.novanta-site .detail-info h2,.novanta-site .contact-faq h2{font-size:var(--nv-text-48)}}@media (width<=600px){.novanta-site{--text-body:15px;--text-small:var(--nv-text-13);--text-label:13px}.novanta-site .hero-title h1{font-size:60px}.novanta-site .hero-title p{font-size:var(--nv-text-18);max-width:300px}.novanta-site .site .service-row p{font-size:var(--nv-text-17)}.novanta-site .service-row h3,.novanta-site .expertise-row h3{font-size:var(--nv-text-22)}.novanta-site .service-index,.novanta-site .expertise-number{font-size:var(--nv-text-24)}.novanta-site .project-name{font-size:var(--nv-text-48)}.novanta-site .stat strong{font-size:var(--nv-text-36)}.novanta-site .contact-cta h2{font-size:40px}.novanta-site .short-hero-content h1,.novanta-site .contact-heading h1,.novanta-site .detail-hero .hero-title h1{font-size:var(--nv-text-48)}.novanta-site .page-intro h1,.novanta-site .agency-overview h2,.novanta-site .service-feature-grid h2,.novanta-site .detail-info h2,.novanta-site .contact-faq h2{font-size:var(--nv-text-36);letter-spacing:-.5px}.novanta-site .page-intro p,.novanta-site .short-hero-content p,.novanta-site .contact-heading>p{font-size:var(--nv-text-18)}.novanta-site .site :is(.eyebrow,.section-label,.footer-heading,.pages-column h2){font-size:var(--nv-text-13)}.novanta-site .site :is(.service-tags,.project-tag){font-size:var(--nv-text-12)}}.novanta-site{--frame-gutter:16px;--section-radius:60px;--section-x:128px;--section-y:160px}.novanta-site .topbar{align-items:flex-start;height:auto;padding:56px 96px 0}.novanta-site .nav-dock{top:calc(var(--frame-gutter) + 44px)}.novanta-site .nav-dock.is-stuck{top:calc(var(--frame-gutter) * 2)}.novanta-site .home-hero{min-height:calc(100svh - 2 * var(--frame-gutter))}.novanta-site .home-hero .hero-title{padding-top:265px}.novanta-site .content-band{padding:var(--section-y) 0}.novanta-site .home-services{padding-bottom:192px}.novanta-site .container{width:min(100% - 2 * var(--section-x), 1152px)}.novanta-site .section-label{margin-bottom:128px}.novanta-site .service-row{gap:64px;padding:32px 0}.novanta-site .project-panel-content{padding:112px 112px 96px}.novanta-site .panel-arrow{bottom:96px;right:112px}.novanta-site .agency-overview{padding:0 0 var(--section-y);gap:200px}.novanta-site .stats-grid{gap:16px}@media (width<=767px){.novanta-site .agency-overview .stats-grid,.novanta-site .service-stats .stats-grid{grid-template-columns:minmax(0,1fr)}}.novanta-site .expertise-row{gap:64px;padding:32px 0}.novanta-site .contact-cta{padding:192px var(--section-x)}.novanta-site .page-intro{padding:256px 96px 96px}.novanta-site .short-hero-content{left:var(--section-x);bottom:160px}.novanta-site .service-feature-grid,.novanta-site .service-feature-column{gap:128px}.novanta-site .awards{margin-top:var(--section-y)}.novanta-site .detail-info{gap:128px;margin-bottom:128px}.novanta-site .footer{gap:80px;padding:128px 64px 48px}.novanta-site .footer-bottom{padding:80px 64px 48px}.novanta-site .contact-cover-grid{gap:128px;width:calc(100% - 192px);max-width:none;padding:128px 0}.novanta-site .contact-faq-grid{gap:128px;width:calc(100% - 192px);max-width:1200px}@media (width<=900px){.novanta-site{--section-x:48px;--section-y:112px}.novanta-site .topbar{padding:40px 48px 0}.novanta-site .hero-title{padding-top:200px}.novanta-site .agency-overview,.novanta-site .service-feature-grid,.novanta-site .detail-info{gap:64px}.novanta-site .project-panel-content{padding:64px}.novanta-site .panel-arrow{bottom:64px;right:64px}.novanta-site .page-intro{padding:200px 48px 64px}.novanta-site .footer{gap:56px;padding:96px 48px 40px}.novanta-site .contact-cover-grid,.novanta-site .contact-faq-grid{gap:64px;width:calc(100% - 96px)}}@media (width<=600px){.novanta-site{--frame-gutter:8px;--section-radius:var(--nv-radius-32);--section-x:22px;--section-y:72px}.novanta-site .topbar{align-items:center;height:84px;padding:0 24px}.novanta-site .hero-title{padding-top:140px}.novanta-site .section-label{margin-bottom:48px}.novanta-site .service-row,.novanta-site .expertise-row{gap:12px;padding:24px 0}.novanta-site .home-services{padding-bottom:96px}.novanta-site .agency-overview{gap:32px}.novanta-site .project-panel-content{padding:32px 24px}.novanta-site .panel-arrow{bottom:24px;right:24px}.novanta-site .contact-cta{padding:96px 24px}.novanta-site .page-intro{padding:140px 22px 56px}.novanta-site .short-hero-content{bottom:64px}.novanta-site .service-feature-grid,.novanta-site .service-feature-column{gap:48px}.novanta-site .detail-info{gap:32px;margin-bottom:64px}.novanta-site .gallery{gap:8px}.novanta-site .footer{gap:48px 24px;padding:72px 24px 24px}.novanta-site .footer-bottom{padding:48px 24px 24px}.novanta-site .contact-cover-grid,.novanta-site .contact-faq-grid{gap:32px;width:calc(100% - 44px)}.novanta-site .contact-cover-grid{padding:130px 0 48px}.novanta-site .contact-faq{padding:64px 0}}.novanta-site .home-hero{min-height:0;padding-bottom:224px}.novanta-site .parallax-hero .parallax-plane{height:100%;top:0}.novanta-site .home-hero .hero-shade{background:linear-gradient(180deg, color-mix(in oklab, var(--image-shade) 10%, transparent) 0%, color-mix(in oklab, var(--image-shade) 35%, transparent) 55%, color-mix(in oklab, var(--image-shade) 70%, transparent) 100%)}.novanta-site .home-hero .hero-title{min-height:calc(100svh - 2 * var(--frame-gutter));box-sizing:border-box;padding:265px 24px 0}.novanta-site .home-hero .hero-title h1{margin:0 0 32px}.novanta-site .home-hero .hero-title p{font-size:var(--nv-text-24);max-width:600px;margin:0 auto;line-height:1.5}.novanta-site .hero-about{margin:234px var(--section-x) 0;grid-template-columns:1fr 1fr;gap:200px;max-width:1152px;display:grid;position:relative}@media (width>=1408px){.novanta-site .hero-about{margin-inline:auto}}.novanta-site .hero-about h2{font-size:var(--nv-text-56);letter-spacing:-1px;margin:0 0 64px;font-weight:500;line-height:1.1}.novanta-site .hero-story-link{font-size:var(--nv-text-20);align-items:center;gap:16px;font-weight:500;line-height:1.2;display:inline-flex}.novanta-site .hero-story-circle{--nv-edge:color-mix(in oklab, var(--on-image) 60%, transparent);--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:40px;height:40px;clip-path:var(--nv-chamfer);transition:background var(--nv-dur-base) var(--nv-ease-standard), color var(--nv-dur-base);border:1px solid #0000;border-radius:0;place-items:center;display:grid;position:relative}.novanta-site .hero-story-link:hover .hero-story-circle{background:var(--on-image);color:var(--foreground)}.novanta-site .hero-about-copy{padding-top:20px}.novanta-site .hero-about-copy p{font-size:var(--nv-text-24);margin:0 0 36px;line-height:1.5}.novanta-site .hero-contacts{font-size:var(--nv-text-20);flex-direction:column;align-items:flex-start;gap:14px;margin-top:48px;font-weight:500;line-height:1.2;display:flex}.novanta-site .hero-contacts a{border-bottom:1px solid color-mix(in oklab, var(--on-image) 50%, transparent);padding-bottom:2px}@media (width<=900px){.novanta-site .home-hero .hero-title{flex-direction:column;justify-content:center;align-items:center;padding:0 24px;display:flex}.novanta-site .hero-about{gap:64px;margin-top:160px}.novanta-site .hero-about h2{font-size:var(--nv-text-48)}.novanta-site .hero-about-copy p{font-size:var(--nv-text-20)}}@media (width<=600px){.novanta-site .home-hero{padding-bottom:128px}.novanta-site .home-hero .hero-title{padding:0 22px}.novanta-site .home-hero .hero-title p{font-size:var(--nv-text-18)}.novanta-site .hero-about{grid-template-columns:1fr;gap:40px;margin-top:96px}.novanta-site .hero-about h2{font-size:var(--nv-text-36);letter-spacing:-.5px;margin-bottom:32px}.novanta-site .hero-story-link,.novanta-site .hero-contacts{font-size:var(--nv-text-17)}.novanta-site .hero-about-copy{padding-top:0}.novanta-site .hero-about-copy p{font-size:var(--nv-text-17);margin-bottom:24px}.novanta-site .hero-contacts{margin-top:32px}}.novanta-site .about-intro{padding:256px 96px 0}.novanta-site .about-intro-text{text-align:center;max-width:1216px;margin:0 auto 96px}.novanta-site .about-intro-text h1{font-size:var(--nv-text-96);letter-spacing:-1px;margin:16px 0;line-height:1}.novanta-site .about-intro-text p{font-size:var(--nv-text-24);max-width:520px;margin:0 auto;line-height:1.5}.novanta-site .about-gallery{grid-template-columns:1fr 1fr;gap:16px;max-width:1216px;margin:0 auto;display:grid}.novanta-site .about-gallery-column{flex-direction:column;gap:16px;display:flex}.novanta-site .about-gallery-column:last-child{padding-top:172px}.novanta-site .about-gallery img{aspect-ratio:600/456;object-fit:cover;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:100%;clip-path:var(--nv-chamfer);border-radius:0;display:block}.novanta-site .about-values{max-width:1152px;padding:128px var(--section-x) 0;box-sizing:content-box;grid-template-columns:421px 1fr;margin:0 auto;display:grid}.novanta-site .about-values-label{align-self:start;position:sticky;top:128px}.novanta-site .about-value{border-bottom:1px solid var(--border);grid-template-columns:65px 1fr;gap:64px;margin-bottom:48px;padding:0 0 48px;display:grid}.novanta-site .about-value:last-child{border-bottom:0;margin-bottom:0}.novanta-site .about-value-index{font-family:var(--font-display);font-size:var(--nv-text-32);line-height:1.2}.novanta-site .about-value h3{font-size:var(--nv-text-28);margin:0 0 16px;line-height:1.2}.novanta-site .about-value p{font-size:var(--nv-text-18);color:var(--muted-foreground);margin:0;line-height:1.6}.novanta-site .about-team{max-width:1152px;padding:160px var(--section-x) 0;box-sizing:content-box;grid-template-columns:1fr 1fr;gap:64px;margin:0 auto;display:grid}.novanta-site .about-team-column{flex-direction:column;gap:128px;display:flex}.novanta-site .about-team-heading h2{font-size:var(--nv-text-56);letter-spacing:-1px;max-width:512px;margin:16px 0 32px;line-height:1.1}.novanta-site .about-team-heading p{font-size:var(--nv-text-22);max-width:500px;margin:0;line-height:1.6}.novanta-site .about-card{padding:0 32px}.novanta-site .about-card img{aspect-ratio:4/5;object-fit:cover;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:100%;clip-path:var(--nv-chamfer);border-radius:0;margin-bottom:24px;display:block}.novanta-site .about-card h3{font-size:var(--nv-text-28);margin:0 0 8px;line-height:1.2}@media (width<=900px){.novanta-site .about-intro{padding:200px 48px 0}.novanta-site .about-intro-text h1{font-size:var(--nv-text-72)}.novanta-site .about-values{grid-template-columns:200px 1fr}.novanta-site .about-team{gap:32px}.novanta-site .about-team-heading h2{font-size:var(--nv-text-48)}.novanta-site .about-card{padding:0}}@media (width<=600px){.novanta-site .about-intro{padding:140px 16px 0}.novanta-site .about-intro-text{margin-bottom:48px}.novanta-site .about-intro-text h1{font-size:var(--nv-text-48)}.novanta-site .about-intro-text p{font-size:var(--nv-text-18)}.novanta-site .about-gallery,.novanta-site .about-gallery-column{gap:8px}.novanta-site .about-gallery-column:last-child{padding-top:64px}.novanta-site .about-gallery img{--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .about-values{grid-template-columns:1fr;gap:32px;padding-top:72px}.novanta-site .about-values-label{position:static}.novanta-site .about-value{grid-template-columns:40px 1fr;gap:16px}.novanta-site .about-value-index{font-size:var(--nv-text-24)}.novanta-site .about-value h3{font-size:var(--nv-text-22)}.novanta-site .about-value p{font-size:var(--nv-text-16)}.novanta-site .about-team{grid-template-columns:1fr;gap:64px;padding-top:96px}.novanta-site .about-team-column{gap:64px}.novanta-site .about-team-heading h2{font-size:var(--nv-text-36)}.novanta-site .about-team-heading p{font-size:var(--nv-text-17)}}.novanta-site .short-hero{min-height:0}.novanta-site .short-hero-content{padding:260px var(--section-x) calc(160px + 32px);position:relative;bottom:auto;left:auto}.novanta-site .short-hero-content p{margin:0}.novanta-site .overlap-band{padding-top:64px}@media (width<=900px){.novanta-site .short-hero-content{padding-top:200px;padding-bottom:144px}}@media (width<=600px){.novanta-site .short-hero-content{padding:140px 22px 96px}.novanta-site .overlap-band{padding-top:56px}}.novanta-site .stat{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:36px 32px}.novanta-site .stat strong{font-variant-numeric:tabular-nums}@media (width<=600px){.novanta-site .stat{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:24px 20px}}.novanta-site .contact-cover{min-height:calc(100svh - 2 * var(--frame-gutter));display:flex}.novanta-site .contact-cover-grid{box-sizing:border-box;grid-template-columns:1fr 492px;align-items:center;gap:128px;width:100%;max-width:none;min-height:0;margin:auto;padding:128px 96px}.novanta-site .contact-heading h1{font-size:var(--nv-text-96);letter-spacing:-1px;margin:0 0 8px;line-height:1}.novanta-site .contact-heading>p{font-size:var(--nv-text-24);max-width:500px;line-height:1.5}.novanta-site .contact-details{font-size:var(--nv-text-20);flex-direction:column;align-items:flex-start;gap:16px;margin-top:64px;font-weight:500;line-height:1.2;display:flex}.novanta-site .contact-details a{border-bottom:1px solid color-mix(in oklab, var(--on-image) 50%, transparent);padding-bottom:2px}.novanta-site .contact-card{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:40px 32px 32px}.novanta-site .contact-card:before{display:none}.novanta-site .contact-page .contact-card{gap:24px}.novanta-site .contact-page .contact-card label{font-size:var(--nv-text-12);letter-spacing:.08em;gap:8px;font-weight:500}.novanta-site .contact-page .contact-card :is(input,textarea){font-size:var(--nv-text-15);letter-spacing:0;--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);background:var(--secondary);border:1px solid var(--border);transition:border-color var(--nv-dur-base), background var(--nv-dur-base);border-radius:0;padding:14px}.novanta-site .contact-page .contact-card :is(input,textarea):focus{background:var(--background);border-color:var(--foreground)}.novanta-site .contact-card input{height:52px}.novanta-site .contact-card textarea{min-height:120px}.novanta-site .contact-page .contact-card .agency-button{height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;padding:0 24px;font-weight:500}.novanta-site .contact-faq{padding:128px 96px}.novanta-site .contact-faq-grid{grid-template-columns:1fr 536px;gap:128px;width:100%;max-width:1200px}.novanta-site .contact-faq h2{font-size:var(--nv-text-48);letter-spacing:-.5px;line-height:1.2}.novanta-site .contact-faq-trigger{font-size:var(--nv-text-20);min-height:0;padding:28px 0;font-weight:500;line-height:1.3}.novanta-site .contact-faq-item:first-child .contact-faq-trigger{padding-top:0}.novanta-site .contact-faq-icon{width:32px;height:32px;transition:background var(--nv-dur-base), color var(--nv-dur-base)}.novanta-site .contact-faq-trigger:hover .contact-faq-icon{background:var(--foreground);color:var(--background);--nv-edge:var(--foreground)}.novanta-site .contact-faq-answer{overflow:hidden}.novanta-site .contact-faq-item .contact-faq-answer p{font-size:var(--nv-text-18);padding:0 48px 28px 0;line-height:1.6}@media (width<=900px){.novanta-site .contact-cover-grid{grid-template-columns:1fr;gap:56px;padding:160px 48px 96px}.novanta-site .contact-heading h1{font-size:var(--nv-text-72)}.novanta-site .contact-faq{padding:96px 48px}.novanta-site .contact-faq-grid{grid-template-columns:1fr;gap:48px;width:100%}}@media (width<=600px){.novanta-site .contact-cover-grid{gap:40px;width:100%;padding:130px 22px 48px}.novanta-site .contact-heading h1{font-size:var(--nv-text-56)}.novanta-site .contact-heading>p{font-size:var(--nv-text-18)}.novanta-site .contact-details{font-size:var(--nv-text-17);margin-top:32px}.novanta-site .contact-card{padding:28px 22px 24px}.novanta-site .contact-faq{padding:64px 22px}.novanta-site .contact-faq-grid{gap:32px;width:100%}.novanta-site .contact-faq h2{font-size:var(--nv-text-36)}.novanta-site .contact-faq-trigger{font-size:var(--nv-text-17);padding:22px 0}.novanta-site .contact-faq-item .contact-faq-answer p{font-size:var(--nv-text-16);padding-right:0}}.novanta-site .project-description{font-size:var(--nv-text-22);max-width:600px;margin-top:16px;line-height:1.6}.novanta-site .project-tag{font-size:var(--nv-text-14);letter-spacing:.5px;--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);border-radius:0;padding:8px 16px;font-weight:500}.novanta-site .project-tags{gap:8px}.novanta-site .agency-overview p{font-size:var(--nv-text-22);max-width:400px;line-height:1.6}.novanta-site .site .service-feature-grid p,.novanta-site .site .detail-info p{font-size:var(--nv-text-22);line-height:1.6}.novanta-site .service-feature-grid h2,.novanta-site .detail-info h2{margin-bottom:32px}.novanta-site .feature-image{aspect-ratio:4/5;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);height:auto;clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .award-row{font-size:var(--nv-text-15);letter-spacing:1px;text-transform:uppercase;grid-template-columns:178px 378px 1fr;align-items:start;gap:0;padding:48px 0;font-weight:500}.novanta-site .award-row>span:nth-child(2){padding-right:48px}.novanta-site .site .award-row p{font-size:var(--nv-text-18);letter-spacing:0;text-transform:none;color:var(--muted-foreground);font-weight:400;line-height:1.6}.novanta-site .page-intro h1{font-size:var(--nv-text-96);letter-spacing:-1px;line-height:1}.novanta-site .page-intro p{font-size:var(--nv-text-24);max-width:500px;line-height:1.5}.novanta-site .detail-hero{min-height:calc(100svh - 2 * var(--frame-gutter));justify-content:center;align-items:center;display:flex}.novanta-site .detail-hero .hero-title{padding:96px 24px 0}.novanta-site .detail-hero .hero-title h1{font-size:var(--nv-text-128);margin:24px 0 32px;line-height:.9}.novanta-site .detail-hero .hero-title h1>span{display:block}.novanta-site .detail-hero .hero-title h1>span:not(.serif){font-weight:500}.novanta-site .detail-pill{--nv-edge:color-mix(in oklab, var(--on-image) 55%, transparent);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);font-size:var(--nv-text-14);letter-spacing:.5px;text-transform:uppercase;border:1px solid #0000;border-radius:0;padding:8px 16px;font-weight:500;display:inline-block;position:relative}.novanta-site .project-facts{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:16px 32px}.novanta-site .fact-row{font-size:var(--nv-text-16);align-items:center;padding:24px 0}.novanta-site .gallery{gap:48px}.novanta-site .gallery img{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);aspect-ratio:552/690;border-radius:0}.novanta-site .project-quote{font-size:var(--nv-text-48);letter-spacing:-.5px;max-width:1000px;margin:160px auto 32px;font-weight:500;line-height:1.2}.novanta-site .contact-cta .eyebrow{margin-bottom:0}.novanta-site .contact-cta h2{max-width:1000px;margin:24px auto 40px}.novanta-site .site .contact-cta .agency-button{font-size:var(--nv-text-13);letter-spacing:.08em;text-transform:uppercase;height:48px;padding:0 24px;font-weight:500}@media (width<=900px){.novanta-site .award-row{grid-template-columns:80px 1fr;row-gap:12px}.novanta-site .award-row p{grid-column:2}.novanta-site .page-intro h1{font-size:var(--nv-text-72)}.novanta-site .detail-hero .hero-title h1{font-size:var(--nv-text-96)}.novanta-site .project-quote{font-size:var(--nv-text-36)}.novanta-site .gallery{gap:24px}}@media (width<=600px){.novanta-site .project-description{font-size:var(--nv-text-16);max-width:260px}.novanta-site .project-tag{font-size:var(--nv-text-12);padding:6px 12px}.novanta-site .agency-overview p,.novanta-site .site .service-feature-grid p,.novanta-site .site .detail-info p{font-size:var(--nv-text-17)}.novanta-site .award-row{font-size:var(--nv-text-13);grid-template-columns:40px 1fr;padding:32px 0}.novanta-site .site .award-row p{font-size:var(--nv-text-16)}.novanta-site .page-intro h1{font-size:var(--nv-text-48)}.novanta-site .page-intro p{font-size:var(--nv-text-18)}.novanta-site .detail-hero .hero-title h1{font-size:60px}.novanta-site .project-quote{font-size:var(--nv-text-28);margin-top:80px}.novanta-site .gallery{gap:12px}.novanta-site .gallery img{--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .project-facts{padding:8px 20px}.novanta-site .fact-row{font-size:var(--nv-text-14);padding:18px 0}}.novanta-site .page-transition{z-index:1;background:var(--canvas);position:relative}.novanta-site .page-transition>:last-child{--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);--nv-ct:-50%;clip-path:var(--nv-chamfer)}.novanta-site .footer-reveal{z-index:0;position:sticky;bottom:0}.novanta-site .footer{box-sizing:content-box;grid-template-columns:405px 1fr;gap:64px;max-width:1280px;margin:0 auto;padding:128px 64px 0;display:grid}.novanta-site .footer-brand{gap:48px}.novanta-site .footer-contact{font-size:var(--nv-text-20);flex-direction:column;align-items:flex-start;gap:14px;font-weight:500;line-height:1.2;display:flex}.novanta-site .footer-contact a{border-bottom:1px solid var(--on-image);padding-bottom:2px}.novanta-site .footer-brand .social-links{gap:12px;display:flex}.novanta-site .footer-brand .social-link{background:var(--secondary);width:40px;height:40px;color:var(--foreground)}.novanta-site .footer-columns{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.novanta-site .footer-heading{color:var(--on-image);letter-spacing:1px;margin:0 0 32px}.novanta-site .footer-nav{gap:24px}.novanta-site .footer-nav a{font-size:var(--nv-text-18);color:color-mix(in oklab, var(--on-image) 60%, transparent);line-height:1.3}.novanta-site .footer-bottom{font-size:var(--nv-text-16);color:color-mix(in oklab, var(--on-image) 60%, transparent);padding:80px 64px 48px}@media (width<=900px){.novanta-site .footer{grid-template-columns:1fr;gap:56px;padding:96px 48px 0}}@media (width<=600px){.novanta-site .footer-reveal{position:relative}.novanta-site .footer{gap:48px;padding:72px 24px 0}.novanta-site .footer-columns{grid-template-columns:1fr 1fr;gap:40px 24px}.novanta-site .footer-contact{font-size:var(--nv-text-17)}.novanta-site .footer-nav{gap:18px}.novanta-site .footer-nav a{font-size:var(--nv-text-16)}.novanta-site .footer-bottom{font-size:var(--nv-text-13);padding:56px 24px 28px}}.novanta-site .notfound-hero:after{display:none}.novanta-site .notfound-hero .hero-shade{background:linear-gradient(180deg, transparent 45%, color-mix(in oklab, var(--image-shade) 35%, transparent) 100%)}.novanta-site .notfound-content{flex-direction:row;justify-content:space-between;align-items:flex-end;inset:auto 96px 96px}.novanta-site .notfound-code{font-size:var(--nv-text-96);letter-spacing:0;text-transform:uppercase;line-height:1}.novanta-site .notfound-label{font-size:var(--nv-text-96);letter-spacing:0;margin:0;font-weight:500;line-height:1}.novanta-site .notfound-copy{font-size:var(--nv-text-24);max-width:500px;color:var(--on-image);margin:16px 0 0;line-height:1.5}.novanta-site .notfound-cta{align-self:flex-end}.novanta-site .site .inverse-button{height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;padding:0 24px;font-weight:500}@media (width<=900px){.novanta-site .notfound-content{inset:auto 48px 64px}}@media (width<=600px){.novanta-site .notfound-content{flex-direction:column;align-items:flex-start;gap:32px;inset:auto 22px 40px}.novanta-site .notfound-code,.novanta-site .notfound-label{font-size:64px}.novanta-site .notfound-copy{font-size:var(--nv-text-18);max-width:280px}.novanta-site .notfound-cta{align-self:flex-start}}.novanta-site .pages-panel{top:calc(100% * var(--nav-scale) + 10px);box-sizing:border-box;--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);width:800px;clip-path:var(--nv-chamfer);background:var(--nav-background);box-shadow:0 10px 20px color-mix(in oklab, var(--canvas) 10%, transparent);border-radius:0;grid-template-columns:repeat(3,192px);gap:48px;margin-left:0;padding:64px;left:-81px}.novanta-site .pages-column{gap:24px}.novanta-site .pages-column h2{color:var(--on-image);margin:0 0 8px}.novanta-site .pages-column a{font-size:var(--nv-text-18);color:color-mix(in oklab, var(--on-image) 60%, transparent);line-height:1.3}@media (width<=1000px){.novanta-site .pages-panel{grid-template-columns:repeat(3,1fr);gap:32px;width:min(800px,100vw - 48px);padding:48px;left:50%;transform:translate(-50%)}}.novanta-site .nav-pill{gap:4px;padding:10px}.novanta-site .nav-pill .nav-control{height:47px;padding:0 20px}@media (width<=600px){.novanta-site .topbar{height:90px;padding:0 24px}.novanta-site .mobile-menu-toggle{top:calc(var(--frame-gutter) + 26px);right:calc(var(--frame-gutter) + 32px);background:var(--nav-background);width:41px;height:41px;color:var(--on-image)}.novanta-site .mobile-menu-toggle svg{width:18px;height:18px}.novanta-site .mobile-nav{top:calc(var(--frame-gutter) + 81px);left:calc(var(--frame-gutter) + 30px);right:calc(var(--frame-gutter) + 30px);width:auto;max-height:calc(100svh - 2 * var(--frame-gutter) - 110px);--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);clip-path:var(--nv-chamfer);background:var(--nav-background);border-radius:0;gap:8px;padding:24px}.novanta-site .mobile-nav .nav-control{min-height:51px;font-size:var(--nv-text-16);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);background:color-mix(in oklab, var(--on-image) 5%, transparent);color:var(--on-image);border-radius:0;padding:16px 20px;font-weight:400;line-height:1.2}.novanta-site .mobile-nav .nav-control:hover,.novanta-site .mobile-nav .nav-control:focus-visible{background:color-mix(in oklab, var(--on-image) 12%, transparent)}}.novanta-site .team-section{padding:192px 0 0}.novanta-site .team-section .section-label{margin:0 0 64px}.novanta-site .team-row{border-bottom:1px solid var(--border);align-items:center;gap:64px;padding:64px 0;display:flex}.novanta-site .team-row:first-of-type{padding-top:0}.novanta-site .team-row:last-child{border-bottom:0}.novanta-site .team-thumb{object-fit:cover;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:160px;height:160px;clip-path:var(--nv-chamfer);background:var(--secondary);border-radius:0;flex-shrink:0}.novanta-site .team-info{flex:1;grid-template-columns:minmax(0,493px) 1fr auto;align-items:center;gap:128px;display:grid}.novanta-site .team-info h3{font-size:var(--nv-text-28);margin:0;font-weight:500;line-height:1.2}.novanta-site .team-links{gap:12px;display:flex}.novanta-site .team-link{--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:40px;height:40px;clip-path:var(--nv-chamfer);background:var(--secondary);color:var(--foreground);font-size:var(--nv-text-12);transition:background var(--nv-dur-base) var(--nv-ease-standard), color var(--nv-dur-base);border-radius:0;place-items:center;font-weight:500;display:grid}.novanta-site .team-link:hover,.novanta-site .team-link:focus-visible{background:var(--foreground);color:var(--background)}@media (width<=900px){.novanta-site .team-section{padding-top:112px}.novanta-site .team-row{gap:32px;padding:40px 0}.novanta-site .team-thumb{width:120px;height:120px}.novanta-site .team-info{grid-template-columns:1fr;gap:12px}.novanta-site .team-links{margin-top:8px}}@media (width<=600px){.novanta-site .team-section{padding-top:72px}.novanta-site .team-row{align-items:flex-start;gap:20px;padding:28px 0}.novanta-site .team-thumb{--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);width:88px;height:88px;clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .team-info h3{font-size:var(--nv-text-22)}}.novanta-site .team-info{gap:64px}.novanta-site .team-info .eyebrow{white-space:nowrap}@media (width<=900px){.novanta-site .team-info{gap:12px}}.novanta-site .bold-feature{min-height:calc(100svh - 2 * var(--frame-gutter));color:var(--on-image);display:flex;position:relative;overflow:hidden}.novanta-site .bold-feature:after{content:"";background:linear-gradient(90deg, color-mix(in oklab, var(--image-shade) 35%, transparent), transparent 65%);pointer-events:none;position:absolute;inset:0}.novanta-site .bold-feature-content{z-index:1;flex-direction:column;flex:1;justify-content:space-between;align-items:flex-start;padding:144px;display:flex;position:relative}.novanta-site .bold-feature h2{font-size:var(--nv-text-96);margin:0 0 16px;line-height:1}.novanta-site .bold-feature h2 span{display:block}.novanta-site .bold-feature h2 span:not(.serif){font-weight:500}.novanta-site .bold-feature p{font-size:var(--nv-text-24);max-width:600px;margin:0;line-height:1.5}.novanta-site .content-band:has(+.bold-feature){border-bottom-right-radius:0;border-bottom-left-radius:0}.novanta-site .bold-feature+.content-band{border-top-left-radius:0;border-top-right-radius:0}@media (width<=900px){.novanta-site .bold-feature-content{padding:96px 48px}.novanta-site .bold-feature h2{font-size:var(--nv-text-72)}}@media (width<=600px){.novanta-site .bold-feature-content{padding:72px 24px}.novanta-site .bold-feature h2{font-size:var(--nv-text-48)}.novanta-site .bold-feature p{font-size:var(--nv-text-18)}}.novanta-site :where(.novanta-button){white-space:nowrap;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.novanta-site .novanta-button svg{flex-shrink:0}.novanta-site .novanta-button:disabled{opacity:.55;pointer-events:none}.novanta-site :where(.nav-control){align-items:center;display:inline-flex}.novanta-site :where(.ghost-button){color:inherit;background:0 0;padding:0}.novanta-site .footer-bottom a:hover{color:var(--on-image)}.novanta-site .service-row h3 a:hover{opacity:.7}.novanta-site .insights-head h2{font-size:var(--nv-text-36);text-align:center;margin:0 0 50px;line-height:1.2}.novanta-site .insights-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.novanta-site .insight-row{border-bottom:1px solid var(--border);grid-template-columns:200px 1fr auto;align-items:start;gap:30px;padding:28px 0;display:grid}.novanta-site .insight-meta{font-size:var(--text-small);color:var(--muted-foreground);flex-direction:column;align-items:flex-start;gap:10px;display:flex}.novanta-site .insight-meta .project-tag{--nv-edge:var(--border);color:var(--foreground)}.novanta-site .insight-row h3{font-size:var(--nv-text-22);margin:0 0 8px;line-height:1.3}.novanta-site .insight-row p{font-size:var(--text-small);color:var(--muted-foreground);max-width:520px;margin:0;line-height:1.7}.novanta-site .insight-read{font-size:var(--text-small);color:var(--muted-foreground);white-space:nowrap}.novanta-site .project-filters{flex-wrap:wrap;justify-content:center;gap:8px;padding:0 24px 50px;display:flex}.novanta-site .filter-chip{--nv-edge:var(--border);background:var(--background);color:var(--foreground);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);font-size:var(--text-small);cursor:pointer;transition:background var(--nv-dur-base), color var(--nv-dur-base);border:1px solid #0000;border-radius:0;padding:8px 16px;position:relative}.novanta-site .filter-chip[aria-pressed=true],.novanta-site .filter-chip:hover{background:var(--foreground);color:var(--background)}.novanta-site .filter-search{border:1px solid var(--border);background:var(--secondary);--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);font-size:var(--text-small);border-radius:0;outline:none;min-width:220px;padding:8px 16px;position:relative}.novanta-site .filter-search:focus{border-color:var(--foreground)}.novanta-site .empty-state{text-align:center;color:var(--muted-foreground);padding:30px 24px 90px}.novanta-site .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:30px 0 0;display:grid}.novanta-site .kpi-grid>div{background:var(--secondary);--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:26px}.novanta-site .kpi-grid dt{font-size:var(--text-label);font-weight:var(--weight-label);text-transform:uppercase;color:var(--muted-foreground)}.novanta-site .kpi-grid dd{font-size:var(--nv-text-32);margin:8px 0 0;line-height:1.2}.novanta-site .kpi-grid dd.kpi-text{font-size:var(--nv-text-18)}.novanta-site .project-logo{width:auto;max-height:56px;margin-bottom:24px}.novanta-site .detail-hero .hero-title h1{text-wrap:balance}.novanta-site .card-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:85px;display:grid}.novanta-site .card-grid.two{grid-template-columns:repeat(2,1fr)}.novanta-site .card{background:var(--secondary);--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:28px}.novanta-site .card h3{font-size:var(--nv-text-20);margin:0 0 10px;line-height:1.3}.novanta-site .card p{font-size:var(--text-small);color:var(--muted-foreground);margin:0;line-height:1.7}.novanta-site .nv-surface{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .nv-surface.is-lg{--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg)}.novanta-site .nv-surface.has-edge{--nv-edge:var(--border);position:relative;border-color:#0000!important}.novanta-site .nv-surface.has-edge:after{content:"";z-index:1;background:var(--nv-edge);clip-path:var(--nv-ring);pointer-events:none;position:absolute;inset:0}.novanta-site .tech-tags{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:85px;display:flex}.novanta-site .tech-tags .project-tag{--nv-edge:var(--border);font-size:var(--text-label);padding:7px 14px}.novanta-site .form-error{color:var(--destructive)}.novanta-site .contact-card .form-privacy{font-size:var(--nv-text-12);color:var(--muted-foreground);margin:-6px 0 0;line-height:1.5}.novanta-site .contact-card .form-privacy a{text-decoration:underline}.novanta-site .contact-card .agency-button{text-transform:uppercase;width:100%}.novanta-site .novanta-legal{max-width:760px;margin:0 auto;line-height:1.8}.novanta-site .novanta-legal section{border-bottom:1px solid var(--border);padding:26px 0}.novanta-site .novanta-legal h2{font-size:var(--nv-text-24);margin:0 0 14px;line-height:1.3}.novanta-site .novanta-legal h3{font-size:var(--nv-text-18);margin:18px 0 8px}.novanta-site .novanta-legal :is(p,li){font-size:var(--nv-text-15);color:color-mix(in oklab, var(--foreground) 82%, transparent)}.novanta-site .novanta-legal a{text-underline-offset:3px;text-decoration:underline}.novanta-site .novanta-legal table{border-collapse:collapse;width:100%;font-size:var(--nv-text-13)}.novanta-site .novanta-legal :is(th,td){border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 8px}.novanta-site .novanta-legal th{color:var(--foreground);font-weight:500}.novanta-site .novanta-legal .legal-table{overflow-x:auto}.novanta-site .novanta-legal .legal-table table{min-width:32rem}.novanta-site .novanta-legal .legal-back{padding:40px 0 90px}.novanta-site .legal-meta{text-align:center;color:var(--muted-foreground);font-size:var(--text-small);margin-top:-40px;padding-bottom:50px}@media (width<=900px){.novanta-site .card-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.novanta-site .insight-row{grid-template-columns:1fr;gap:12px}.novanta-site .insights-head h2{font-size:var(--nv-text-32)}.novanta-site .card-grid,.novanta-site .card-grid.two{grid-template-columns:1fr}}.novanta-site .novanta-legal strong{color:var(--foreground);font-weight:600}.novanta-site .topbar:not(.over-image) .social-link{background:var(--secondary)}.novanta-site .short-hero .hero-shade,.novanta-site .detail-hero .hero-shade{background:linear-gradient(oklch(12% 0 0/.35) 0%,oklch(12% 0 0/.72) 100%)}.novanta-site .novanta-legal ul{padding-left:20px;list-style:outside}.novanta-site .hero:not(.short-hero,.detail-hero,.notfound-hero) .hero-shade{background:linear-gradient(180deg, oklch(12% 0 0/.55) 0%, oklch(12% 0 0/.45) 45%, var(--image-shade) 100%)}.novanta-site .project-panel:after{background:linear-gradient(90deg,oklch(12% 0 0/.62),oklch(12% 0 0/.1) 75%),oklch(0% 0 0/.3)}.novanta-site .service-stats .stats-grid:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,1fr)}.novanta-site .mt-24{margin-top:96px}@media (width<=600px){.novanta-site .service-stats .stats-grid:has(>:nth-child(3):last-child){grid-template-columns:1fr}}html:has(.novanta-site){background:oklch(19% 0 0)}.novanta-site .site{background:var(--canvas)}.novanta-site .project-name span,.novanta-site .hero-title h1{overflow-wrap:anywhere}.novanta-site .contact-cover:after{background:color-mix(in oklab, var(--image-shade) 60%, oklch(12% 0 0/.55))}.novanta-site .project-name-long{font-size:clamp(var(--nv-text-36), 7vw, var(--nv-text-96))}.novanta-preloader{--pre-rise:calc(var(--nv-dur-enter) * 1.5);--pre-step:calc(var(--nv-dur-fast) * 1.4);--pre-sink:calc(var(--nv-dur-enter) * 1);--pre-nine-in:calc(var(--nv-dur-enter) * 1.25);--pre-turn:calc(var(--nv-dur-reveal) * 1);--pre-soft:cubic-bezier(.45, 0, .25, 1);z-index:100;color:var(--on-image);pointer-events:auto;place-items:center;display:grid;position:fixed;inset:0}.novanta-preloader[data-phase=zoom]{pointer-events:none}.novanta-preloader-veil{-webkit-mask-composite:xor;-webkit-mask-composite:xor;background:oklch(13% 0 0);position:absolute;inset:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:xor;mask-composite:exclude}.novanta-preloader[data-phase=fade] .novanta-preloader-veil,.novanta-preloader[data-phase=fade] .novanta-preloader-logo{opacity:0;transition:opacity var(--nv-dur-base) var(--nv-ease-standard)}.novanta-preloader-logo{width:clamp(220px,34vw,520px);display:grid;position:relative}.novanta-preloader-slit{grid-area:1/1;display:block;overflow:hidden}.novanta-preloader-slit-word{clip-path:inset(0 20.87% 0 0)}.novanta-preloader-slit-studio{clip-path:inset(0 0 0 79.13%)}.novanta-preloader-rise{animation:nv-pre-rise var(--pre-rise) var(--nv-ease-enter) var(--pre-step) both;display:block}.novanta-preloader-slit-studio .novanta-preloader-rise{animation-delay:calc(var(--pre-step) * 2)}.novanta-preloader-rise .brand-logo{width:100%;height:auto;display:block}.novanta-preloader[data-phase=nine] .novanta-preloader-rise,.novanta-preloader[data-phase=zoom] .novanta-preloader-rise{transition:transform var(--pre-sink) var(--pre-soft);animation:none;transform:translateY(-105%)}.novanta-preloader-rule{background:color-mix(in oklab, var(--on-image) 16%, transparent);height:1px;transition:opacity var(--pre-sink) var(--pre-soft);position:absolute;top:calc(100% + 28px);left:0;right:0}.novanta-preloader-rule span{background:var(--on-image);transform-origin:0;height:100%;display:block}.novanta-preloader[data-phase=nine] .novanta-preloader-rule,.novanta-preloader[data-phase=zoom] .novanta-preloader-rule{opacity:0}.novanta-preloader-nine{aspect-ratio:5.742/5;transform-origin:52.25% 20%;background:var(--on-image);opacity:0;width:clamp(96px,11vw,168px);position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:90deg;scale:.85;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.novanta-preloader[data-phase=nine] .novanta-preloader-nine{opacity:1;transition:opacity var(--pre-nine-in) var(--pre-soft) calc(var(--pre-sink) * .4), scale var(--pre-nine-in) var(--nv-ease-enter) calc(var(--pre-sink) * .4), rotate var(--pre-turn) var(--pre-soft) calc(var(--pre-sink) * .6);rotate:0deg;scale:1}.novanta-preloader[data-phase=zoom] .novanta-preloader-nine{rotate:0deg}html.intro-hold .novanta-site .hero .parallax-zoom{transition:none;transform:scale(1.14)}html.intro-release .novanta-site .hero .parallax-zoom{transition:transform calc(var(--nv-dur-enter) * 2) var(--nv-ease-enter)}.novanta-site .career-hero{color:var(--on-image);background:var(--canvas);align-items:flex-end;min-height:560px;display:flex;position:relative}.novanta-site .career-hero-content{justify-content:space-between;align-items:flex-end;gap:48px;width:100%;padding:160px 10% 110px;display:flex;position:relative}.novanta-site .career-hero-text{max-width:820px}.novanta-site .career-hero-text .detail-pill{margin-bottom:22px}.novanta-site .career-hero h1{font-size:var(--nv-text-96);letter-spacing:-1px;text-wrap:balance;margin:0 0 18px;font-weight:500;line-height:1}.novanta-site .career-hero p{font-size:var(--nv-text-24);max-width:520px;color:color-mix(in oklab, var(--on-image) 88%, transparent);margin:0;line-height:1.5}.novanta-site .career-cta-pill{flex-shrink:0}.novanta-site .benefit-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.novanta-site .benefit-card{--nv-edge:var(--border);--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);background:var(--background);border:1px solid #0000;border-radius:0;padding:30px 24px;position:relative}.novanta-site .benefit-card h3{font-size:var(--nv-text-28);margin:0 0 10px;font-weight:500;line-height:1.2}.novanta-site .benefit-card p{font-size:var(--nv-text-18);margin:0;line-height:1.6}.novanta-site .career-split{grid-template-columns:1fr 1.25fr;align-items:start;gap:100px;margin-top:110px;display:grid}.novanta-site .career-split-media{position:sticky;top:40px}.novanta-site .career-split-media img{aspect-ratio:512/740;object-fit:cover;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);width:100%;clip-path:var(--nv-chamfer);border-radius:0;display:block}.novanta-site .career-split-lists{flex-direction:column;gap:70px;display:flex}.novanta-site .career-list-label{margin-bottom:26px}.novanta-site .expand-row{border-bottom:1px solid var(--border)}.novanta-site .expand-row:last-child{border-bottom:0}.novanta-site .expand-row h3{margin:0}.novanta-site .expand-trigger{width:100%;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:14px;padding:26px 0;display:flex}.novanta-site .expand-title{font-size:var(--nv-text-28);font-weight:500;line-height:1.2}.novanta-site .expand-pill{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);clip-path:var(--nv-chamfer);background:var(--secondary);font-size:var(--nv-text-12);letter-spacing:.5px;text-transform:uppercase;border-radius:0;flex-shrink:0;padding:5px 12px;font-weight:500}.novanta-site .expand-toggle{--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:40px;height:40px;clip-path:var(--nv-chamfer);--nv-edge:var(--border);color:var(--muted-foreground);transition:background var(--nv-dur-base), color var(--nv-dur-base);border:1px solid #0000;border-radius:0;flex-shrink:0;place-items:center;margin-left:auto;display:grid;position:relative}.novanta-site .expand-trigger:hover .expand-toggle{background:var(--foreground);color:var(--background)}.novanta-site .expand-body{overflow:hidden}.novanta-site .expand-body p{font-size:var(--nv-text-18);color:oklch(66% 0 0);margin:0;padding:0 56px 28px 0;line-height:1.6}.novanta-site .career-questions{text-align:center;padding:130px 24px 120px}.novanta-site .career-questions h2{letter-spacing:-1px;text-wrap:balance;max-width:1000px;margin:18px auto 48px;font-size:80px;font-weight:500;line-height:1}.novanta-site .career-questions-form{text-align:left;max-width:520px;margin:0 auto}.novanta-site .career-questions-form .contact-card{border:1px solid var(--border)}.novanta-site .career-questions h2:has(+.career-questions-text){margin-bottom:20px}.novanta-site .career-questions-text{max-width:560px;font-size:var(--nv-text-20);color:var(--muted-foreground);margin:0 auto 48px;line-height:1.5}@media (width<=900px){.novanta-site .career-hero-content{flex-direction:column;align-items:flex-start;padding:140px 7% 90px}.novanta-site .career-hero h1{font-size:var(--nv-text-72)}.novanta-site .benefit-grid{grid-template-columns:1fr 1fr}.novanta-site .career-split{grid-template-columns:1fr;gap:50px}.novanta-site .career-split-media{position:relative;top:0}.novanta-site .career-split-media img{aspect-ratio:4/3}.novanta-site .career-questions h2{font-size:var(--nv-text-56)}}@media (width<=600px){.novanta-site .career-hero{min-height:520px}.novanta-site .career-hero-content{gap:30px;padding:120px 25px 80px}.novanta-site .career-hero h1{font-size:var(--nv-text-48)}.novanta-site .career-hero p{font-size:var(--nv-text-18)}.novanta-site .benefit-grid{grid-template-columns:1fr}.novanta-site .benefit-card h3,.novanta-site .expand-title{font-size:var(--nv-text-22)}.novanta-site .benefit-card p,.novanta-site .expand-body p{font-size:var(--nv-text-15);padding-right:0}.novanta-site .career-split{margin-top:70px}.novanta-site .expand-trigger{flex-wrap:wrap}.novanta-site .career-questions{padding:80px 22px}.novanta-site .career-questions h2{margin-bottom:32px;font-size:40px}}.novanta-site .coming-soon{inset:var(--frame-gutter);--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);clip-path:var(--nv-chamfer);color:var(--on-image);background:oklch(13% 0 0);border-radius:0;grid-template-rows:auto 1fr auto;gap:24px;padding:34px 48px 32px;display:grid;position:fixed;overflow-y:auto}.novanta-site .coming-soon-top,.novanta-site .coming-soon-bottom{justify-content:space-between;align-items:center;gap:20px;display:flex}.novanta-site .coming-soon .eyebrow{font-size:var(--nv-text-15);letter-spacing:1px;text-transform:uppercase;color:color-mix(in oklab, var(--on-image) 70%, transparent);font-weight:500}.novanta-site .coming-soon-body{align-self:center;max-width:900px}.novanta-site .coming-soon-body h1{letter-spacing:-1px;margin:20px 0 22px;font-size:clamp(52px,8vw,112px);font-weight:500;line-height:.98}.novanta-site .coming-soon-body p{max-width:520px;color:color-mix(in oklab, var(--on-image) 82%, transparent);margin:0 0 32px;font-size:19px;line-height:1.6}.novanta-site .coming-soon-bottom{border-top:1px solid color-mix(in oklab, var(--on-image) 16%, transparent);font-size:var(--nv-text-14);color:color-mix(in oklab, var(--on-image) 60%, transparent);padding-top:22px}.novanta-site .coming-soon-bottom a:hover{color:var(--on-image)}@media (width<=600px){.novanta-site .coming-soon{padding:26px 24px 24px}.novanta-site .coming-soon-top .eyebrow{display:none}.novanta-site .coming-soon-body p{font-size:var(--nv-text-16)}}.novanta-site :is(.contact-form.contact-card,.cookie-preferences) label.form-consent{font-size:var(--nv-text-14);letter-spacing:0;text-transform:none;cursor:pointer;flex-direction:row;align-items:center;gap:10px;font-weight:400;line-height:1.5}.novanta-site :is(.contact-form.contact-card,.cookie-preferences) .form-consent input[type=checkbox]{appearance:none;border:1px solid var(--foreground);--cut:var(--nv-cut-xs);--soft:var(--nv-cut-soft-xs);clip-path:none;background:var(--background);cursor:pointer;border-radius:0;flex:none;place-content:center;width:18px;height:18px;margin:0;padding:0;display:grid}.novanta-site :is(.contact-form.contact-card,.cookie-preferences) .form-consent input[type=checkbox]:before{content:"";width:10px;height:10px;transition:transform var(--nv-dur-fast) var(--nv-ease-standard);box-shadow:inset 1em 1em var(--background);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0)}.novanta-site :is(.contact-form.contact-card,.cookie-preferences) .form-consent input[type=checkbox]:checked{background:var(--foreground);border-color:var(--foreground)}.novanta-site :is(.contact-form.contact-card,.cookie-preferences) .form-consent input[type=checkbox]:checked:before{transform:scale(1)}.novanta-site .contact-card .form-privacy{font-size:var(--nv-text-12);margin:0}.novanta-site .contact-form.contact-card .form-privacy a{color:var(--foreground);text-underline-offset:2px;text-decoration:underline}.novanta-site .scroll-text-word{white-space:nowrap;display:inline-block}.novanta-site .card-grid{gap:16px}.novanta-site :is(.card,.benefit-card,.kpi-grid>div){background:var(--secondary);--nv-edge:transparent;--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border:0;border-radius:0;padding:36px 32px}@media (width<=600px){.novanta-site :is(.card,.benefit-card,.kpi-grid>div){--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;padding:24px 20px}}.novanta-site .card .eyebrow{margin-bottom:14px}.novanta-site .card h3{font-size:var(--nv-text-28);margin:0 0 12px;font-weight:500;line-height:1.2}.novanta-site .card p{font-size:var(--nv-text-18);line-height:1.6}.novanta-site .card .small-link{margin-top:24px}@media (width<=600px){.novanta-site .card h3{font-size:var(--nv-text-22)}.novanta-site .card p{font-size:var(--nv-text-15)}}.novanta-site .benefit-card p{color:var(--muted-foreground)}.novanta-site .detail-feature{height:clamp(420px,82svh,900px);margin-top:var(--frame-gutter);--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);clip-path:var(--nv-chamfer);background:var(--canvas);border-radius:0;position:relative;overflow:hidden}.novanta-site .project-steps,.novanta-site .project-results,.novanta-site .project-gallery{margin-top:160px}.novanta-site .project-step{border-top:1px solid var(--border);grid-template-columns:1fr 1.4fr;gap:96px;padding:64px 0;display:grid}.novanta-site .project-step:last-child{border-bottom:1px solid var(--border)}.novanta-site .project-step-number{--nv-edge:var(--border);--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);width:48px;height:48px;clip-path:var(--nv-chamfer);font-size:var(--nv-text-14);font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;margin-bottom:20px;font-weight:500;display:inline-flex;position:relative}.novanta-site .project-step h2{font-size:var(--nv-text-56);letter-spacing:-1px;margin:14px 0 0;font-weight:400;line-height:1.1}.novanta-site .site .project-step p{font-size:var(--nv-text-20);color:var(--muted-foreground);margin:0 0 20px;line-height:1.65}.novanta-site .project-step p:last-child,.novanta-site .rich-text>:last-child,.novanta-site .site .rich-text li>p:last-child{margin-bottom:0}.novanta-site .rich-text :is(ul,ol){margin:0 0 20px;padding-left:1.2em}.novanta-site .rich-text ul{list-style:outside}.novanta-site .rich-text ol{list-style:decimal}.novanta-site .rich-text li::marker{color:var(--muted-foreground)}.novanta-site .site .rich-text li>p{margin-bottom:8px}.novanta-site .rich-text h3{font-size:var(--nv-text-24);margin:32px 0 12px;font-weight:500;line-height:1.3}.novanta-site .rich-text h3:first-child{margin-top:0}.novanta-site .rich-text blockquote{border-left:2px solid var(--border);margin:0 0 20px;padding-left:20px}.novanta-site .rich-text :is(strong,b){color:var(--foreground);font-weight:600}.novanta-site .rich-text a{text-underline-offset:3px;text-decoration:underline}.novanta-site .rich-text p:empty{display:none}.novanta-site .project-results-head h2{text-align:center;max-width:960px;font-size:var(--nv-text-56);letter-spacing:-1px;text-wrap:balance;margin:0 auto 64px;font-weight:400;line-height:1.1}.novanta-site .project-results .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:0}.novanta-site .project-results .kpi-grid dt{font-size:var(--nv-text-13);letter-spacing:1px}.novanta-site .project-results .kpi-grid dd{font-size:var(--nv-text-32);margin-top:48px;font-weight:500;line-height:1.2}.novanta-site .project-results .kpi-grid dd.kpi-text{font-size:var(--nv-text-24)}.novanta-site .project-gallery .gallery{grid-template-columns:1fr 1fr;gap:48px}.novanta-site .project-gallery .gallery img{aspect-ratio:16/10;object-fit:cover;object-position:top center;--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);width:100%;clip-path:var(--nv-chamfer);background:var(--secondary);border-radius:0;display:block}.novanta-site .project-gallery .gallery-span{grid-column:1/-1}.novanta-site .project-gallery .gallery-span img{aspect-ratio:16/9}@media (width<=1199px){.novanta-site .project-step{gap:48px}.novanta-site .project-step h2,.novanta-site .project-results-head h2{font-size:var(--nv-text-48)}.novanta-site .project-gallery .gallery{gap:24px}}@media (width<=809px){.novanta-site .detail-feature{height:60svh}.novanta-site .project-steps,.novanta-site .project-results,.novanta-site .project-gallery{margin-top:96px}.novanta-site .project-step{grid-template-columns:1fr;gap:24px;padding:40px 0}.novanta-site .project-step h2,.novanta-site .project-results-head h2{font-size:var(--nv-text-36);letter-spacing:-.5px}.novanta-site .site .project-step p{font-size:var(--nv-text-17)}.novanta-site .project-results-head h2{margin-bottom:40px}.novanta-site .project-results .kpi-grid dd{margin-top:28px}.novanta-site .project-gallery .gallery{grid-template-columns:1fr;gap:12px}.novanta-site .project-gallery .gallery img{--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:var(--nv-chamfer);border-radius:0}}.novanta-site .detail-info{align-items:start}.novanta-site .detail-info h2{margin-top:0}.novanta-site .contact-form .form-actions{display:contents}.novanta-site .career-questions-form{max-width:1040px}.novanta-site .contact-form.contact-form-wide{--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);clip-path:var(--nv-chamfer);border-radius:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px;padding:40px;display:grid}.novanta-site .contact-form-wide:before{display:none}.novanta-site .site .contact-form-wide label:not(.form-consent){font-size:var(--nv-text-12);letter-spacing:.08em;text-transform:uppercase;gap:8px;font-weight:500;line-height:1.4}.novanta-site .contact-form-wide :is(input:not([type=checkbox]),textarea){border:1px solid var(--border);--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);clip-path:none;background:var(--secondary);height:52px;font-size:var(--nv-text-15);letter-spacing:0;transition:border-color var(--nv-dur-base), background var(--nv-dur-base);border-radius:0;padding:14px}.novanta-site .contact-form-wide :is(input:not([type=checkbox]),textarea):focus{border-color:var(--foreground);background:var(--background)}.novanta-site .contact-form-wide .field-message{grid-column:1/-1}.novanta-site .contact-form-wide textarea{height:auto;min-height:120px}.novanta-site .contact-form-wide .form-privacy{font-size:var(--nv-text-12);grid-column:1/-1;margin:0;line-height:1.6}.novanta-site .contact-form-wide .form-actions{border-top:1px solid var(--border);grid-column:1/-1;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;display:flex}.novanta-site .contact-form-wide .form-actions .agency-button{width:auto;min-width:240px;height:48px;font-size:var(--nv-text-13);letter-spacing:.08em;text-transform:uppercase;padding:0 24px;font-weight:500}.novanta-site .contact-form-wide .form-status{grid-column:1/-1}@media (width<=809px){.novanta-site .contact-form.contact-form-wide{--cut:var(--nv-cut-md);--soft:var(--nv-cut-soft-md);clip-path:var(--nv-chamfer);border-radius:0;grid-template-columns:1fr;gap:20px;padding:24px 20px}.novanta-site .contact-form-wide .form-actions{flex-direction:column;align-items:stretch}.novanta-site .contact-form-wide .form-actions .agency-button{width:100%;min-width:0}}.novanta-site img:not([src$=\.svg]):not([class*=logo]):not([alt*=logo i]){filter:brightness(.6)}.novanta-site .site :is(.hero-title h1,.project-name,.bold-feature h2){letter-spacing:-.04em;font-size:clamp(44px,6.4vw,88px);font-weight:700;line-height:1}.novanta-site .site :is(.page-intro h1,.short-hero-content h1,.contact-heading h1,.detail-hero .hero-title h1,.about-intro-text h1,.career-hero h1,.notfound-code,.notfound-label){letter-spacing:-.04em;font-weight:700;font-size:clamp(40px, 5.2vw, var(--nv-text-72));line-height:1.02}.novanta-site .site :is(.hero-about h2,.agency-overview h2,.contact-cta h2,.about-team-heading h2,.career-questions h2,.project-step h2,.project-results-head h2){letter-spacing:-.04em;font-weight:700;font-size:clamp(var(--nv-text-36), 4vw, var(--nv-text-56));line-height:1.05}.novanta-site .site :is(.detail-info h2,.service-feature-grid h2,.insights-head h2,.contact-faq h2){letter-spacing:-.02em;font-weight:600;font-size:var(--nv-text-32);line-height:1.15}.novanta-site .site :is(.service-row h3,.card h3,.benefit-card h3,.expand-title,.about-value h3,.about-card h3,.team-info h3,.expertise-row h3){letter-spacing:-.02em;font-weight:600}.novanta-site .site :is(.stat strong,.kpi-grid dd,.project-results .kpi-grid dd){letter-spacing:-.04em;font-weight:700}.novanta-site .site :is(.eyebrow,.section-label,.footer-heading,.pages-column h2),.novanta-site :is(.pages-column h2,.novanta-preloader .eyebrow){font-size:var(--nv-text-12);letter-spacing:.2em;text-transform:uppercase;font-weight:500;line-height:1.5}.novanta-site .site :is(.hero-title h1,.project-name,.bold-feature h2) :is(span,.serif){font-family:var(--font-sans);font-weight:inherit}.novanta-site .site .project-name.project-name-long{font-size:clamp(var(--nv-text-28), 5.4vw, 80px)}.novanta-site .site .home-hero .hero-title h1 .serif:last-child{font-weight:inherit}@media (width<=600px){.novanta-site .hero-title p br{display:none}}@media (width<=900px){.novanta-site :is(.footer-nav a,.hero-contacts a,.footer a,.footer-bottom a,.contact-details a,.small-link,.service-row h3 a,.hero-story-link,.wordmark,.pages-column a){margin-block:-12px;padding-block:12px}.novanta-site :is(.contact-details,.hero-contacts,.footer-contact){gap:30px}.novanta-site .footer .social-link{width:44px;height:44px}.novanta-site :is(.novanta-legal,.form-privacy) a{margin-block:-13px;padding-block:13px}}html body .novanta-site .novanta-button.novanta-button:is(.agency-button,.outline-button,.inverse-button,.inverse-outline-button){text-transform:none;letter-spacing:normal;font-size:var(--nv-text-15);font-weight:500}html body .novanta-site .novanta-button.has-arrow{gap:12px;padding-left:5px!important}.novanta-site .novanta-button.has-arrow:before{content:"";aspect-ratio:1;-webkit-mask-composite:xor;height:calc(100% - 10px);transition:transform var(--nv-dur-base) var(--nv-ease-standard);-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;background:currentColor;border-radius:50%;flex-shrink:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E"),linear-gradient(#000,#000);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E"),linear-gradient(#000,#000);-webkit-mask-position:50%,0 0;mask-position:50%,0 0;-webkit-mask-size:47%,auto;mask-size:47%,auto;-webkit-mask-repeat:no-repeat,repeat;mask-repeat:no-repeat,repeat;-webkit-mask-clip:border-box,border-box;mask-clip:border-box,border-box;-webkit-mask-origin:border-box,border-box;mask-origin:border-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.novanta-site .novanta-button.has-arrow:is(:hover,:focus-visible):before{transform:rotate(-45deg)}@media (prefers-reduced-motion:reduce){.novanta-site .novanta-button.has-arrow:before{transition:none}}.novanta-site .project-panel-foot{justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:auto;display:flex}.novanta-site .project-panel-foot .project-tags{flex-wrap:wrap;flex:auto;min-width:0;margin-top:0}.novanta-site .project-panel-foot .project-tag{max-width:100%}.novanta-site .project-panel-foot .panel-arrow{flex:none;position:static}.novanta-site .service-row h3{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.novanta-site .service-icon,.novanta-site .card-icon{color:currentColor;flex:none}.novanta-site .card .card-icon{margin-bottom:24px;display:block}.novanta-site .stat strong .nv-figure{display:block}.novanta-site .fx-ln{margin-bottom:-.1em;padding-bottom:.1em;display:block;overflow:hidden}.novanta-site .fx-ln>span{display:inline-block}html.fx-ready .novanta-site [data-fx]:not([data-fx-done]){transition:transform var(--nv-dur-reveal) var(--nv-ease-enter), clip-path var(--nv-dur-reveal) var(--nv-ease-enter)}html.fx-ready .novanta-site [data-fx=title]{clip-path:inset(-12% -4% -30%)}html.fx-ready .novanta-site [data-fx=title]:not([data-in]){clip-path:inset(-12% -4% 100%);transform:translateY(100%)}html.fx-ready .novanta-site [data-fx=title]:has(.fx-ln){clip-path:none}html.fx-ready .novanta-site [data-fx=title]:has(.fx-ln):not([data-in]){clip-path:none;transform:none}html.fx-ready .novanta-site [data-fx=title] .fx-ln>span{transition:transform var(--nv-dur-reveal) var(--nv-ease-enter);transition-delay:calc(var(--i,0) * 90ms)}html.fx-ready .novanta-site [data-fx=title]:not([data-in]) .fx-ln>span{transform:translateY(105%)}html.fx-ready .novanta-site .hero-title h1 .fx-ln>span{animation:fx-rise var(--nv-dur-reveal) var(--nv-ease-enter) both;animation-delay:calc(.15s + var(--i,0) * 90ms)}@keyframes fx-rise{0%{transform:translateY(105%)}to{transform:none}}html.fx-ready .novanta-site img[data-fx=img]:not([data-fx-done]){transition:clip-path var(--nv-dur-reveal) var(--nv-ease-enter), transform calc(var(--nv-dur-reveal) * 1.25) var(--nv-ease-enter)}html.fx-ready .novanta-site img[data-fx=img]:not([data-in]){clip-path:inset(100% 0 0)}html.fx-ready .novanta-site img[data-fx-zoom]:not([data-in]){transform:scale(1.25)}.novanta-site .stack-depth{transform-origin:50% 0;transform:scale(calc(1 - .1 * var(--stack-p,0)));will-change:transform;position:relative}.novanta-site .stack-dim{z-index:5;--cut:var(--nv-cut-lg);--soft:var(--nv-cut-soft-lg);clip-path:var(--nv-chamfer);opacity:calc(.92 * var(--stack-p,0));pointer-events:none;background:#000;border-radius:0;position:absolute;inset:0}.page-curtain-host{display:contents}.novanta-site .page-curtain{z-index:9000;background:var(--brand-off-white);pointer-events:none;opacity:0;visibility:hidden;-webkit-mask-composite:xor;-webkit-mask-composite:xor;position:fixed;inset:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:xor;mask-composite:exclude}.novanta-site .page-curtain-mark{aspect-ratio:5.742/5;background:var(--brand-ink);opacity:0;width:92px;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:90deg;scale:.85;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.novanta-site .page-curtain[data-phase=cover]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity var(--nv-dur-curtain) var(--nv-ease-standard)}.novanta-site .page-curtain[data-phase=cover] .page-curtain-mark{opacity:1;transition:opacity var(--nv-dur-base) var(--nv-ease-standard), scale var(--nv-dur-base) var(--nv-ease-enter), rotate var(--nv-dur-enter) var(--nv-ease-enter) var(--nv-dur-base);rotate:0deg;scale:1}.novanta-site .page-curtain[data-phase=open]{visibility:visible;opacity:1}.novanta-site .page-curtain[data-phase=open] .page-curtain-mark{display:none}@media (prefers-reduced-motion:reduce){.novanta-site .stack-depth{transform:none}.novanta-site .stack-dim,.novanta-site .page-curtain{display:none}html.fx-ready .novanta-site .hero-title h1 .fx-ln>span{animation:none}}@property --nv-ct{syntax:"<percentage>";inherits:false;initial-value:0%}.novanta-site,.novanta-site *,.quote-public-page,.quote-public-page *,.page-curtain-host *{--nv-ring:polygon(evenodd, calc(var(--cut) - .707 * var(--soft)) calc(.707 * var(--soft)), calc(var(--cut) - .335 * var(--soft)) calc(.398 * var(--soft)), calc(var(--cut) + .073 * var(--soft)) calc(.177 * var(--soft)), calc(var(--cut) + .518 * var(--soft)) calc(.044 * var(--soft)), calc(var(--cut) + 1 * var(--soft)) 0px, calc(100% - var(--cut) - 1 * var(--soft)) 0px, calc(100% - var(--cut) - .518 * var(--soft)) calc(.044 * var(--soft)), calc(100% - var(--cut) - .073 * var(--soft)) calc(.177 * var(--soft)), calc(100% - var(--cut) + .335 * var(--soft)) calc(.398 * var(--soft)), calc(100% - var(--cut) + .707 * var(--soft)) calc(.707 * var(--soft)), calc(100% - .707 * var(--soft)) calc(var(--cut) - .707 * var(--soft)), calc(100% - .398 * var(--soft)) calc(var(--cut) - .335 * var(--soft)), calc(100% - .177 * var(--soft)) calc(var(--cut) + .073 * var(--soft)), calc(100% - .044 * var(--soft)) calc(var(--cut) + .518 * var(--soft)), 100% calc(var(--cut) + 1 * var(--soft)), 100% calc(100% - var(--cut) - 1 * var(--soft)), calc(100% - .044 * var(--soft)) calc(100% - var(--cut) - .518 * var(--soft)), calc(100% - .177 * var(--soft)) calc(100% - var(--cut) - .073 * var(--soft)), calc(100% - .398 * var(--soft)) calc(100% - var(--cut) + .335 * var(--soft)), calc(100% - .707 * var(--soft)) calc(100% - var(--cut) + .707 * var(--soft)), calc(100% - var(--cut) + .707 * var(--soft)) calc(100% - .707 * var(--soft)), calc(100% - var(--cut) + .335 * var(--soft)) calc(100% - .398 * var(--soft)), calc(100% - var(--cut) - .073 * var(--soft)) calc(100% - .177 * var(--soft)), calc(100% - var(--cut) - .518 * var(--soft)) calc(100% - .044 * var(--soft)), calc(100% - var(--cut) - 1 * var(--soft)) 100%, calc(var(--cut) + 1 * var(--soft)) 100%, calc(var(--cut) + .518 * var(--soft)) calc(100% - .044 * var(--soft)), calc(var(--cut) + .073 * var(--soft)) calc(100% - .177 * var(--soft)), calc(var(--cut) - .335 * var(--soft)) calc(100% - .398 * var(--soft)), calc(var(--cut) - .707 * var(--soft)) calc(100% - .707 * var(--soft)), calc(.707 * var(--soft)) calc(100% - var(--cut) + .707 * var(--soft)), calc(.398 * var(--soft)) calc(100% - var(--cut) + .335 * var(--soft)), calc(.177 * var(--soft)) calc(100% - var(--cut) - .073 * var(--soft)), calc(.044 * var(--soft)) calc(100% - var(--cut) - .518 * var(--soft)), 0px calc(100% - var(--cut) - 1 * var(--soft)), 0px calc(var(--cut) + 1 * var(--soft)), calc(.044 * var(--soft)) calc(var(--cut) + .518 * var(--soft)), calc(.177 * var(--soft)) calc(var(--cut) + .073 * var(--soft)), calc(.398 * var(--soft)) calc(var(--cut) - .335 * var(--soft)), calc(.707 * var(--soft)) calc(var(--cut) - .707 * var(--soft)), calc(var(--cut) - .707 * var(--soft)) calc(.707 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .707 * var(--soft)) calc(var(--bw,1px) + .707 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .335 * var(--soft)) calc(var(--bw,1px) + .398 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .073 * var(--soft)) calc(var(--bw,1px) + .177 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .518 * var(--soft)) calc(var(--bw,1px) + .044 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + 1 * var(--soft)) var(--bw,1px), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - 1 * var(--soft)) var(--bw,1px), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .518 * var(--soft)) calc(var(--bw,1px) + .044 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .073 * var(--soft)) calc(var(--bw,1px) + .177 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .335 * var(--soft)) calc(var(--bw,1px) + .398 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .707 * var(--soft)) calc(var(--bw,1px) + .707 * var(--soft)), calc(100% - var(--bw,1px) - .707 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .707 * var(--soft)), calc(100% - var(--bw,1px) - .398 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .335 * var(--soft)), calc(100% - var(--bw,1px) - .177 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .073 * var(--soft)), calc(100% - var(--bw,1px) - .044 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .518 * var(--soft)), calc(100% - var(--bw,1px)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + 1 * var(--soft)), calc(100% - var(--bw,1px)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - 1 * var(--soft)), calc(100% - var(--bw,1px) - .044 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .518 * var(--soft)), calc(100% - var(--bw,1px) - .177 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .073 * var(--soft)), calc(100% - var(--bw,1px) - .398 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .335 * var(--soft)), calc(100% - var(--bw,1px) - .707 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .707 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .707 * var(--soft)) calc(100% - var(--bw,1px) - .707 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .335 * var(--soft)) calc(100% - var(--bw,1px) - .398 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .073 * var(--soft)) calc(100% - var(--bw,1px) - .177 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .518 * var(--soft)) calc(100% - var(--bw,1px) - .044 * var(--soft)), calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - 1 * var(--soft)) calc(100% - var(--bw,1px)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + 1 * var(--soft)) calc(100% - var(--bw,1px)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .518 * var(--soft)) calc(100% - var(--bw,1px) - .044 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .073 * var(--soft)) calc(100% - var(--bw,1px) - .177 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .335 * var(--soft)) calc(100% - var(--bw,1px) - .398 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .707 * var(--soft)) calc(100% - var(--bw,1px) - .707 * var(--soft)), calc(var(--bw,1px) + .707 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .707 * var(--soft)), calc(var(--bw,1px) + .398 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) + .335 * var(--soft)), calc(var(--bw,1px) + .177 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .073 * var(--soft)), calc(var(--bw,1px) + .044 * var(--soft)) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - .518 * var(--soft)), var(--bw,1px) calc(100% - var(--bw,1px) - (var(--cut) - var(--bw,1px) * .586) - 1 * var(--soft)), var(--bw,1px) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + 1 * var(--soft)), calc(var(--bw,1px) + .044 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .518 * var(--soft)), calc(var(--bw,1px) + .177 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) + .073 * var(--soft)), calc(var(--bw,1px) + .398 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .335 * var(--soft)), calc(var(--bw,1px) + .707 * var(--soft)) calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .707 * var(--soft)), calc(var(--bw,1px) + (var(--cut) - var(--bw,1px) * .586) - .707 * var(--soft)) calc(var(--bw,1px) + .707 * var(--soft)));--nv-chamfer:polygon(calc(var(--cut) - .707 * var(--soft)) calc(var(--nv-ct,0%) + .707 * var(--soft)), calc(var(--cut) - .335 * var(--soft)) calc(var(--nv-ct,0%) + .398 * var(--soft)), calc(var(--cut) + .073 * var(--soft)) calc(var(--nv-ct,0%) + .177 * var(--soft)), calc(var(--cut) + .518 * var(--soft)) calc(var(--nv-ct,0%) + .044 * var(--soft)), calc(var(--cut) + 1 * var(--soft)) var(--nv-ct,0%), calc(100% - var(--cut) - 1 * var(--soft)) var(--nv-ct,0%), calc(100% - var(--cut) - .518 * var(--soft)) calc(var(--nv-ct,0%) + .044 * var(--soft)), calc(100% - var(--cut) - .073 * var(--soft)) calc(var(--nv-ct,0%) + .177 * var(--soft)), calc(100% - var(--cut) + .335 * var(--soft)) calc(var(--nv-ct,0%) + .398 * var(--soft)), calc(100% - var(--cut) + .707 * var(--soft)) calc(var(--nv-ct,0%) + .707 * var(--soft)), calc(100% - .707 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .707 * var(--soft)), calc(100% - .398 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .335 * var(--soft)), calc(100% - .177 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .073 * var(--soft)), calc(100% - .044 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .518 * var(--soft)), 100% calc(var(--nv-ct,0%) + var(--cut) + 1 * var(--soft)), 100% calc(100% - var(--cut) - 1 * var(--soft)), calc(100% - .044 * var(--soft)) calc(100% - var(--cut) - .518 * var(--soft)), calc(100% - .177 * var(--soft)) calc(100% - var(--cut) - .073 * var(--soft)), calc(100% - .398 * var(--soft)) calc(100% - var(--cut) + .335 * var(--soft)), calc(100% - .707 * var(--soft)) calc(100% - var(--cut) + .707 * var(--soft)), calc(100% - var(--cut) + .707 * var(--soft)) calc(100% - .707 * var(--soft)), calc(100% - var(--cut) + .335 * var(--soft)) calc(100% - .398 * var(--soft)), calc(100% - var(--cut) - .073 * var(--soft)) calc(100% - .177 * var(--soft)), calc(100% - var(--cut) - .518 * var(--soft)) calc(100% - .044 * var(--soft)), calc(100% - var(--cut) - 1 * var(--soft)) 100%, calc(var(--cut) + 1 * var(--soft)) 100%, calc(var(--cut) + .518 * var(--soft)) calc(100% - .044 * var(--soft)), calc(var(--cut) + .073 * var(--soft)) calc(100% - .177 * var(--soft)), calc(var(--cut) - .335 * var(--soft)) calc(100% - .398 * var(--soft)), calc(var(--cut) - .707 * var(--soft)) calc(100% - .707 * var(--soft)), calc(.707 * var(--soft)) calc(100% - var(--cut) + .707 * var(--soft)), calc(.398 * var(--soft)) calc(100% - var(--cut) + .335 * var(--soft)), calc(.177 * var(--soft)) calc(100% - var(--cut) - .073 * var(--soft)), calc(.044 * var(--soft)) calc(100% - var(--cut) - .518 * var(--soft)), 0px calc(100% - var(--cut) - 1 * var(--soft)), 0px calc(var(--nv-ct,0%) + var(--cut) + 1 * var(--soft)), calc(.044 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .518 * var(--soft)), calc(.177 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .073 * var(--soft)), calc(.398 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .335 * var(--soft)), calc(.707 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .707 * var(--soft)))}.novanta-site .site{--cut:var(--nv-cut-frame);--soft:var(--nv-cut-soft-frame);clip-path:var(--nv-chamfer);border-radius:0}.novanta-site .site-scroll,.novanta-site .stack-depth{border-radius:0}@media (width<=600px){.novanta-site .site{--cut:var(--nv-cut-frame-sm);--soft:var(--nv-cut-soft-frame-sm)}}.novanta-site :is(a,button,input,textarea,select,[tabindex]):focus-visible{outline-offset:-3px}html.fx-ready :is(.novanta-site .gallery img,.novanta-site .about-gallery img,.novanta-site .about-card img,.novanta-site .career-split-media img,.novanta-site .team-thumb,.novanta-site .feature-image)[data-fx=img]{clip-path:var(--nv-chamfer)}html.fx-ready :is(.novanta-site .gallery img,.novanta-site .about-gallery img,.novanta-site .about-card img,.novanta-site .career-split-media img,.novanta-site .team-thumb,.novanta-site .feature-image)[data-fx=img]:not([data-fx-done]){transition:--nv-ct var(--nv-dur-reveal) var(--nv-ease-enter), transform calc(var(--nv-dur-reveal) * 1.25) var(--nv-ease-enter)}html.fx-ready :is(.novanta-site .gallery img,.novanta-site .about-gallery img,.novanta-site .about-card img,.novanta-site .career-split-media img,.novanta-site .team-thumb,.novanta-site .feature-image)[data-fx=img]:not([data-in]){--nv-ct:100%}.novanta-site :is(.project-panel,.bold-feature,.detail-feature,.card,.stat,.kpi-grid>div):before{content:"";z-index:3;pointer-events:none;background-image:url(/assets/grain-CtB7D5LY.png);background-size:var(--nv-grain-size) var(--nv-grain-size);mix-blend-mode:screen;opacity:var(--nv-grain-opacity);position:absolute;inset:0}.novanta-site :is(.project-panel,.bold-feature,.home-hero .parallax-hero) :is(img,video){filter:contrast(.94)brightness(1.02)}.novanta-site .agency-button:after,.novanta-site .benefit-card:after,.novanta-site .detail-pill:after,.novanta-site .filter-chip:after,.novanta-site .inverse-button:after,.novanta-site .inverse-outline-button:after,.novanta-site .outline-button:after,.novanta-site .project-tag:after{content:"";background:var(--nv-edge);clip-path:var(--nv-ring);pointer-events:none;position:absolute;inset:-1px}.novanta-site .field-box{--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);--nv-edge:var(--brand-line-strong);clip-path:var(--nv-chamfer);display:block;position:relative}.novanta-site .field-box-pill{--cut:var(--nv-cut-pill);--soft:var(--nv-cut-soft-pill);display:inline-block}.novanta-site .field-box:after{content:"";background:var(--nv-edge);clip-path:var(--nv-ring);pointer-events:none;position:absolute;inset:0}.novanta-site .field-box:focus-within{--nv-edge:var(--foreground);--bw:2px}.novanta-site .field-box>:is(input,textarea){outline:none;width:100%;display:block;clip-path:none!important;border-color:#0000!important}.novanta-site .nav-dock[data-tone=light],.novanta-site .mobile-menu-toggle[data-tone=light]{--on-image:var(--nv-nav-light-foreground);--nav-muted:var(--nv-nav-light-muted);--nav-background:var(--nv-nav-light-background);--nav-foreground:var(--nv-nav-light-foreground);--nav-active:var(--nv-nav-light-active)}.novanta-site .footer .wordmark-studio .brand-logo{width:clamp(220px,22vw,300px);height:auto}@keyframes nv-pre-rise{0%{transform:translateY(105%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.novanta-preloader .novanta-preloader-rise{animation:none}}.novanta-site .hero-shader{position:absolute;inset:0}.novanta-site .novanta-button.has-arrow:before{--cut:var(--nv-cut-octagon);--soft:var(--nv-cut-soft-octagon);clip-path:polygon(calc(var(--cut) - .707 * var(--soft)) calc(var(--nv-ct,0%) + .707 * var(--soft)), calc(var(--cut) - .335 * var(--soft)) calc(var(--nv-ct,0%) + .398 * var(--soft)), calc(var(--cut) + .073 * var(--soft)) calc(var(--nv-ct,0%) + .177 * var(--soft)), calc(var(--cut) + .518 * var(--soft)) calc(var(--nv-ct,0%) + .044 * var(--soft)), calc(var(--cut) + 1 * var(--soft)) var(--nv-ct,0%), calc(100% - var(--cut) - 1 * var(--soft)) var(--nv-ct,0%), calc(100% - var(--cut) - .518 * var(--soft)) calc(var(--nv-ct,0%) + .044 * var(--soft)), calc(100% - var(--cut) - .073 * var(--soft)) calc(var(--nv-ct,0%) + .177 * var(--soft)), calc(100% - var(--cut) + .335 * var(--soft)) calc(var(--nv-ct,0%) + .398 * var(--soft)), calc(100% - var(--cut) + .707 * var(--soft)) calc(var(--nv-ct,0%) + .707 * var(--soft)), calc(100% - .707 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .707 * var(--soft)), calc(100% - .398 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .335 * var(--soft)), calc(100% - .177 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .073 * var(--soft)), calc(100% - .044 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .518 * var(--soft)), 100% calc(var(--nv-ct,0%) + var(--cut) + 1 * var(--soft)), 100% calc(100% - var(--cut) - 1 * var(--soft)), calc(100% - .044 * var(--soft)) calc(100% - var(--cut) - .518 * var(--soft)), calc(100% - .177 * var(--soft)) calc(100% - var(--cut) - .073 * var(--soft)), calc(100% - .398 * var(--soft)) calc(100% - var(--cut) + .335 * var(--soft)), calc(100% - .707 * var(--soft)) calc(100% - var(--cut) + .707 * var(--soft)), calc(100% - var(--cut) + .707 * var(--soft)) calc(100% - .707 * var(--soft)), calc(100% - var(--cut) + .335 * var(--soft)) calc(100% - .398 * var(--soft)), calc(100% - var(--cut) - .073 * var(--soft)) calc(100% - .177 * var(--soft)), calc(100% - var(--cut) - .518 * var(--soft)) calc(100% - .044 * var(--soft)), calc(100% - var(--cut) - 1 * var(--soft)) 100%, calc(var(--cut) + 1 * var(--soft)) 100%, calc(var(--cut) + .518 * var(--soft)) calc(100% - .044 * var(--soft)), calc(var(--cut) + .073 * var(--soft)) calc(100% - .177 * var(--soft)), calc(var(--cut) - .335 * var(--soft)) calc(100% - .398 * var(--soft)), calc(var(--cut) - .707 * var(--soft)) calc(100% - .707 * var(--soft)), calc(.707 * var(--soft)) calc(100% - var(--cut) + .707 * var(--soft)), calc(.398 * var(--soft)) calc(100% - var(--cut) + .335 * var(--soft)), calc(.177 * var(--soft)) calc(100% - var(--cut) - .073 * var(--soft)), calc(.044 * var(--soft)) calc(100% - var(--cut) - .518 * var(--soft)), 0px calc(100% - var(--cut) - 1 * var(--soft)), 0px calc(var(--nv-ct,0%) + var(--cut) + 1 * var(--soft)), calc(.044 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .518 * var(--soft)), calc(.177 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) + .073 * var(--soft)), calc(.398 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .335 * var(--soft)), calc(.707 * var(--soft)) calc(var(--nv-ct,0%) + var(--cut) - .707 * var(--soft)));border-radius:0}.novanta-site :is(.panel-arrow,.contact-faq-icon,.hero-story-circle,.expand-toggle,.project-step-number):after{content:"";background:var(--nv-edge);clip-path:var(--nv-ring);pointer-events:none;position:absolute;inset:-1px}.novanta-site :is(.card,.stat,.kpi-grid>div){position:relative}.novanta-site .mobile-menu-toggle{transition:background-color var(--nv-dur-base) var(--nv-ease-standard), color var(--nv-dur-base) var(--nv-ease-standard)}.novanta-site .mobile-menu-toggle.mobile-menu-toggle{color:var(--nav-foreground)}.novanta-site .mobile-menu-toggle{border:0}.novanta-site .mobile-menu-toggle:after{content:none}.novanta-site .nav-backdrop{z-index:39;background:var(--nv-scrim);pointer-events:auto;position:fixed;inset:0}.novanta-site .site-scroll.is-locked{overscroll-behavior:none;overflow:hidden}.novanta-site .contact-form-wide,.novanta-site .career-questions-form .contact-card{--nv-edge:var(--brand-line-strong);border:0}.novanta-site .contact-form-wide:after,.novanta-site .career-questions-form .contact-card:after{content:"";z-index:1;background:var(--nv-edge);clip-path:var(--nv-ring);pointer-events:none;position:absolute;inset:0}.novanta-site .edge-fade{--fade-inset:calc(var(--nv-cut-frame) + var(--nv-cut-soft-frame));right:calc(var(--frame-gutter) + var(--fade-inset));bottom:var(--frame-gutter);left:calc(var(--frame-gutter) + var(--fade-inset));z-index:20;max-width:calc(2400px - 2 * var(--fade-inset));height:var(--nv-fade-height);pointer-events:none;--fade-sides:linear-gradient(to right, transparent, #000 var(--nv-space-48), #000 calc(100% - var(--nv-space-48)), transparent);margin-inline:auto;position:fixed}.novanta-site .edge-fade span{-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;position:absolute;inset:0;-webkit-mask-composite:source-in;mask-composite:intersect}.novanta-site .edge-fade span:first-child{-webkit-backdrop-filter:blur(var(--nv-fade-blur-1));backdrop-filter:blur(var(--nv-fade-blur-1));-webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 40%, transparent 60%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 40%, transparent 60%), var(--fade-sides);mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 40%, transparent 60%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 40%, transparent 60%), var(--fade-sides)}.novanta-site .edge-fade span:nth-child(2){-webkit-backdrop-filter:blur(var(--nv-fade-blur-2));backdrop-filter:blur(var(--nv-fade-blur-2));-webkit-mask-image:linear-gradient(to bottom, transparent 20%, #000 40%, #000 60%, transparent 80%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 20%, #000 40%, #000 60%, transparent 80%), var(--fade-sides);mask-image:linear-gradient(to bottom, transparent 20%, #000 40%, #000 60%, transparent 80%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 20%, #000 40%, #000 60%, transparent 80%), var(--fade-sides)}.novanta-site .edge-fade span:nth-child(3){-webkit-backdrop-filter:blur(var(--nv-fade-blur-3));backdrop-filter:blur(var(--nv-fade-blur-3));-webkit-mask-image:linear-gradient(to bottom, transparent 40%, #000 60%, #000 80%, transparent 100%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 40%, #000 60%, #000 80%, transparent 100%), var(--fade-sides);mask-image:linear-gradient(to bottom, transparent 40%, #000 60%, #000 80%, transparent 100%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 40%, #000 60%, #000 80%, transparent 100%), var(--fade-sides)}.novanta-site .edge-fade span:nth-child(4){-webkit-backdrop-filter:blur(var(--nv-fade-blur-4));backdrop-filter:blur(var(--nv-fade-blur-4));-webkit-mask-image:linear-gradient(to bottom, transparent 60%, #000 80%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 60%, #000 80%), var(--fade-sides);mask-image:linear-gradient(to bottom, transparent 60%, #000 80%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 60%, #000 80%), var(--fade-sides)}.novanta-site .edge-fade span:nth-child(5){-webkit-backdrop-filter:blur(var(--nv-fade-blur-5));backdrop-filter:blur(var(--nv-fade-blur-5));-webkit-mask-image:linear-gradient(to bottom, transparent 80%, #000 100%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 80%, #000 100%), var(--fade-sides);mask-image:linear-gradient(to bottom, transparent 80%, #000 100%), var(--fade-sides);-webkit-mask-image:linear-gradient(to bottom, transparent 80%, #000 100%), var(--fade-sides)}@media (width<=600px){.novanta-site .edge-fade{--fade-inset:calc(var(--nv-cut-frame-sm) + var(--nv-cut-soft-frame-sm));height:var(--nv-fade-height-mobile)}}.novanta-site.cookie-consent{display:contents}.novanta-site .cookie-banner{z-index:90;left:50%;bottom:calc(var(--frame-gutter) * 2);width:min(52rem, calc(100vw - var(--frame-gutter) * 4));grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px 40px;display:grid;position:fixed;translate:-50%}.novanta-site :is(.cookie-banner,.cookie-preferences) h2{font-size:var(--nv-text-22);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.2}.novanta-site :is(.cookie-banner,.cookie-preferences) p{font-size:var(--nv-text-14);color:var(--muted-foreground);margin:0;line-height:1.6}.novanta-site .cookie-copy{gap:10px;display:grid}.novanta-site .cookie-links{flex-wrap:wrap;gap:4px 20px;display:flex}.novanta-site .cookie-links .small-link{color:var(--foreground)}.novanta-site .cookie-actions{flex-direction:column;align-items:stretch;gap:8px;display:flex}.novanta-site .cookie-scrim{z-index:95;background:var(--nv-scrim);position:fixed;inset:0}.novanta-site .cookie-preferences{z-index:96;width:min(40rem, calc(100vw - var(--frame-gutter) * 4));max-height:calc(100svh - var(--frame-gutter) * 8);gap:20px;display:grid;position:fixed;top:50%;left:50%;overflow-y:auto;translate:-50% -50%}.novanta-site .cookie-preferences:focus{outline:none}.novanta-site .cookie-preferences-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.novanta-site .cookie-preferences-head .circle-button{flex:none;width:48px;min-width:0;margin:0}.novanta-site .cookie-preferences form{gap:20px;display:grid}.novanta-site .cookie-categories{margin:0;padding:0;list-style:none;display:grid}.novanta-site .cookie-categories li{border-top:1px solid var(--border);gap:6px;padding:16px 0;display:grid}.novanta-site .cookie-categories li:last-child{border-bottom:1px solid var(--border)}.novanta-site .cookie-categories label.form-consent{flex-direction:row;align-items:center;gap:10px;font-weight:500;display:flex}.novanta-site .cookie-categories .form-consent small{font-size:var(--nv-text-12);color:var(--muted-foreground);margin-left:10px}.novanta-site .cookie-categories input:disabled{cursor:default}.novanta-site .cookie-categories>li>p{padding-left:28px}.novanta-site .cookie-examples{font-size:var(--nv-text-12);color:var(--muted-foreground);gap:4px;margin:4px 0 0 28px;display:grid}.novanta-site .cookie-examples div{flex-wrap:wrap;gap:0 8px;display:flex}.novanta-site .cookie-examples dt{color:var(--foreground);font-weight:500}.novanta-site .cookie-examples dd{margin:0}.novanta-site .footer-link-button{all:unset;cursor:pointer}.novanta-site .footer-link-button:focus-visible{outline-offset:2px;outline:2px solid}@media (width<=760px){.novanta-site .cookie-banner{grid-template-columns:minmax(0,1fr)}}.novanta-site.promo-layer{display:contents}.novanta-site .promo-bar{z-index:45;width:min(56rem, calc(100vw - var(--frame-gutter) * 4));align-items:center;gap:16px 24px;padding:16px 16px 16px 24px;display:flex;position:fixed;left:50%;translate:-50%}.novanta-site .promo-bar.is-top{top:calc(var(--frame-gutter) * 2 + 72px)}.novanta-site .promo-bar.is-bottom{bottom:calc(var(--frame-gutter) * 2)}.novanta-site .promo-copy{flex:1;gap:2px;min-width:0;display:grid}.novanta-site :is(.promo-bar,.promo-popup) p{font-size:var(--nv-text-14);color:var(--muted-foreground);margin:0;line-height:1.5}.novanta-site .promo-bar .promo-title{font-size:var(--nv-text-15);color:var(--foreground);font-weight:500}.novanta-site :is(.promo-bar,.promo-popup) .circle-button{flex:none;width:48px;min-width:0;margin:0}.novanta-site :is(.promo-bar,.promo-popup) .agency-button:not(.circle-button){flex:none;width:auto}.novanta-site .promo-scrim{z-index:95;background:var(--nv-scrim);position:fixed;inset:0}.novanta-site .promo-popup{z-index:96;width:min(32rem, calc(100vw - var(--frame-gutter) * 4));max-height:calc(100svh - var(--frame-gutter) * 8);justify-items:start;gap:16px;display:grid;position:fixed;top:50%;left:50%;overflow-y:auto;translate:-50% -50%}.novanta-site .promo-popup:focus{outline:none}.novanta-site .promo-popup h2{font-size:var(--nv-text-28);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.15}.novanta-site .promo-head{justify-content:space-between;justify-self:stretch;align-items:center;gap:16px;display:flex}.novanta-site .promo-head .eyebrow{margin:0}.novanta-site .promo-image{aspect-ratio:16/9;object-fit:cover;--cut:var(--nv-cut-sm);--soft:var(--nv-cut-soft-sm);width:100%;clip-path:var(--nv-chamfer);border-radius:0;justify-self:stretch}@media (width<=760px){.novanta-site .promo-bar{grid-template-columns:minmax(0,1fr) auto;display:grid}.novanta-site .promo-bar .agency-button:not(.circle-button){grid-area:2/1/auto/-1;width:100%}.novanta-site .promo-bar.is-top{top:calc(var(--frame-gutter) * 2 + 56px)}}.RoLA8a_root{background:radial-gradient(120% 90% at 30% 20%, var(--liquid-metal-highlight) 0%, transparent 38%), radial-gradient(90% 80% at 75% 70%, var(--liquid-metal-mid) 0%, transparent 55%), var(--liquid-metal-base);position:relative;overflow:hidden}.RoLA8a_root[data-webgl=true]{background:var(--liquid-metal-base)}.RoLA8a_canvas{width:100%;height:100%;display:block;position:absolute;inset:0}
