/* Motion direction: an electrical signal through a quiet technical grid. */
:root{--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.76,0,.24,1)}
.page-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;pointer-events:none}.page-progress>span{display:block;height:100%;background:var(--accent);transform:scaleX(var(--page-progress,0));transform-origin:left}
.hero-media{transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(1.045);transform-origin:65% 45%}.hero-media img{animation:none}.hero-heading h1 .hero-line{display:block;overflow:hidden;color:var(--white);padding-bottom:.08em;margin-bottom:-.08em}.hero-heading h1 .line-inner{display:block;color:var(--white);transform-origin:left bottom}.hero-heading h1 .accent-line{color:var(--accent)}
.motion-enabled .hero-media img{animation:camera-arrive 1.8s var(--ease-out) both}.motion-enabled .hero-heading .line-inner{animation:line-arrive 1.2s var(--ease-out) both;animation-delay:.18s}.motion-enabled .hero-line:nth-child(2) .line-inner{animation-delay:.32s}.motion-enabled .hero-heading>.micro-label{animation:fade-arrive .85s ease .1s both}.motion-enabled .hero-aside{animation:fade-arrive 1s ease .5s both}.motion-enabled .hero-top{animation:fade-arrive 1s ease .65s both}
.hero-signal{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.signal-line{position:absolute;height:1px;background:linear-gradient(90deg,transparent,#f577291c 35%,#f57729a0 78%,transparent);width:58%;right:0;top:40%;opacity:.7;transform-origin:right}.signal-target{position:absolute;top:33%;left:67%;width:100px;height:85px;transform:translate3d(var(--target-x,0px),var(--target-y,0px),0);opacity:.6}.signal-target>i{position:absolute;width:13px;height:13px;border-color:var(--accent);border-style:solid;border-width:0}.signal-target>i:nth-child(1){top:0;left:0;border-top-width:1px;border-left-width:1px}.signal-target>i:nth-child(2){top:0;right:0;border-top-width:1px;border-right-width:1px}.signal-target>i:nth-child(3){bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}.signal-target>i:nth-child(4){bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}.motion-enabled .signal-target{animation:target-arrive 1.4s ease .4s both}.motion-enabled .signal-line{animation:signal-arrive 1.7s var(--ease-in-out) .15s both}.motion-enabled .hero-signal:after{content:"";position:absolute;inset:0;width:24%;background:linear-gradient(90deg,transparent,#f5772920,transparent);transform:skewX(-16deg);animation:hero-scan 1.9s var(--ease-in-out) .25s both}
/* Image staging and restrained staggered typography. */
.js-motion .image-reveal:not(.is-visible){transform:translateY(28px);opacity:.2;clip-path:inset(0 9% 0 9%)}.js-motion .image-reveal{clip-path:inset(0);transition:clip-path 1.3s var(--ease-out),opacity 1s,transform 1.2s var(--ease-out)}.about-visual img{transform:scale(var(--about-scale,1.025)) translateY(var(--about-pan,0px));transition:transform .25s linear;will-change:auto}.about-visual:hover img{transform:scale(var(--about-scale,1.025)) translateY(var(--about-pan,0px))}.about-visual:before{content:"";position:absolute;z-index:1;inset:0 auto 0 0;width:2px;background:var(--accent);transform:translateX(-2px)}.motion-enabled .about-visual.is-visible:before{animation:inspection-pass 1.5s var(--ease-in-out) .25s both}.metric-value>.count-value,.metric-value>.metric-static{font:inherit;letter-spacing:inherit;font-variant-numeric:tabular-nums}.metric-value{font-variant-numeric:tabular-nums}.metrics .metric:nth-child(2){transition-delay:.08s}.metrics .metric:nth-child(3){transition-delay:.16s}.metrics .metric:nth-child(4){transition-delay:.24s}.specifications tr{transition:background .25s}.specifications tr:hover{background:#f5772912}.specifications tr:hover td{color:var(--accent)}
/* The same signal crosses the selected image. Native details remain usable. */
.solution{position:relative;overflow:hidden}.solution:before{content:"";position:absolute;top:0;left:0;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}.solution:hover:before,.solution:focus-within:before,.solution[open]:before{transform:scaleX(1)}.solution summary h3{transition:transform .45s var(--ease-out),color .3s}.solution summary:hover h3{transform:translateX(7px);color:var(--accent)}.solution-number{transition:transform .4s,color .3s}.solution:hover .solution-number{transform:translateY(-3px)}.motion-enabled .solution[open] .solution-content{animation:content-arrive .45s var(--ease-out) both}.solution-visual{position:sticky;top:38px;isolation:isolate;transition:transform .5s var(--ease-out);transform:perspective(1000px) rotateX(var(--preview-rx,0deg)) rotateY(var(--preview-ry,0deg))}.solution-visual #solution-image{transition:transform 1.1s var(--ease-out)}.solution-visual:hover #solution-image{transform:scale(1.035)}.preview-layer{position:absolute;inset:0;z-index:1;height:100%;object-fit:cover;object-position:60% center}.preview-index{position:absolute;left:23px;top:17px;z-index:3;display:flex;align-items:baseline;gap:7px;font:38px/1.1 var(--display);letter-spacing:-.055em;text-shadow:0 1px 10px #0008;color:var(--white)}.preview-index small{font-size:11px;letter-spacing:0;color:#e1e1dc}.preview-scan{position:absolute;inset:0;z-index:2;border-left:2px solid var(--accent);background:linear-gradient(90deg,#f5772940,transparent 12%);transform:translateX(-102%);pointer-events:none}.solution-visual figcaption,.image-cross{z-index:3}.solution-visual figcaption{pointer-events:none}.preview-index,.image-cross{pointer-events:none}
/* Menus reveal as a sequence; controls keep their native target area. */
.site-menu[open]{animation:none;isolation:isolate}.site-menu[open]:before{content:"";position:absolute;inset:0;z-index:-2;background:#232822;pointer-events:none}.site-menu[open]:after{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);pointer-events:none}.motion-enabled .site-menu[open]:after{animation:menu-curtain .65s var(--ease-in-out) both}.motion-enabled .site-menu[open] .menu-head{animation:fade-arrive .45s ease .1s both}.motion-enabled .site-menu[open] .menu-body>div>.eyebrow{animation:fade-arrive .65s ease .2s both}.motion-enabled .site-menu[open] nav a{animation:nav-arrive .75s var(--ease-out) both}.motion-enabled .site-menu[open] nav a:nth-child(1){animation-delay:.14s}.motion-enabled .site-menu[open] nav a:nth-child(2){animation-delay:.21s}.motion-enabled .site-menu[open] nav a:nth-child(3){animation-delay:.28s}.motion-enabled .site-menu[open] nav a:nth-child(4){animation-delay:.35s}.motion-enabled .site-menu[open] .menu-contact,.motion-enabled .site-menu[open] .menu-bottom{animation:fade-arrive .7s ease .4s both}.menu-graphic{position:absolute;right:-.05em;top:16%;writing-mode:vertical-rl;font:clamp(100px,14vw,215px)/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px #ffffff0b;pointer-events:none;z-index:0;user-select:none}.menu-graphic>span{color:var(--accent);font-size:.38em;-webkit-text-stroke:0;margin-top:30px;opacity:.75}.menu-head,.menu-body,.menu-bottom{position:relative;z-index:1}.motion-enabled .site-menu[open] .menu-graphic{animation:graphic-arrive 1.2s var(--ease-out) .2s both}.magnetic{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .35s var(--ease-out),background .25s,color .25s}.contact-arrow{position:relative;overflow:hidden}.contact-arrow:before{content:"";position:absolute;inset:0;background:var(--accent);z-index:-1;transform:translateY(101%);transition:transform .5s var(--ease-out)}.contact-arrow:hover:before{transform:translateY(0)}
@keyframes camera-arrive{from{transform:scale(1.12);filter:brightness(.6)}to{transform:scale(1);filter:brightness(1)}}@keyframes line-arrive{from{transform:translateY(112%) rotate(2deg)}to{transform:translateY(0) rotate(0)}}@keyframes fade-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes signal-arrive{0%{transform:scaleX(0);opacity:0}30%{opacity:.9}100%{transform:scaleX(1);opacity:.55}}@keyframes target-arrive{from{opacity:0;scale:1.35}to{opacity:.6;scale:1}}@keyframes hero-scan{0%{left:-30%;opacity:0}20%{opacity:1}90%{opacity:1}100%{left:130%;opacity:0}}@keyframes inspection-pass{from{left:0;opacity:.8}to{left:100%;opacity:0}}@keyframes content-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes menu-curtain{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes nav-arrive{from{opacity:0;transform:translateY(30px);clip-path:inset(100% 0 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@keyframes graphic-arrive{from{opacity:0;translate:35px 0}to{opacity:1;translate:0 0}}
@media(hover:hover) and (pointer:fine){.hero-media{will-change:transform}}
@media(max-width:800px){.signal-target{left:68%;top:29%;width:75px;height:65px}.signal-line{top:34%;width:62%}.menu-graphic{top:24%;opacity:.55}.preview-index{font-size:30px}.solution-visual{top:20px}}
@media(max-width:540px){.hero-media{transform:scale(1.025)}.signal-target{left:64%;top:27%;width:56px;height:48px;opacity:.4}.signal-line{top:31%;width:66%;opacity:.3}.hero-signal:after{display:none}.preview-index{font-size:30px;top:20px;left:22px}.solution-visual{position:relative;top:auto}.menu-graphic{font-size:130px;top:20%;right:-15px;opacity:.5}.metrics .metric{transition-delay:0!important}.about-visual img{transform:none!important}}
@media(prefers-reduced-motion:reduce){.hero-media,.hero-media img,.signal-target,.magnetic,.solution-visual,.about-visual img{transform:none!important;translate:none!important}.hero-signal,.preview-scan{display:none}.js-motion .image-reveal:not(.is-visible){opacity:1;clip-path:none;transform:none}.page-progress{display:none}.line-inner{transform:none!important;opacity:1!important}.preview-layer{display:none}.menu-graphic{animation:none}}
@media print{.page-progress,.hero-signal,.preview-index,.preview-scan,.menu-graphic{display:none}.hero-media{transform:none}.image-reveal{clip-path:none!important}.solution-visual{transform:none;position:relative}.metric-value{font-variant-numeric:normal}}
/* Pinned navigation stays available throughout the landing page. */
.header{position:fixed;transition:height .35s var(--ease-out),background .35s,border-color .35s,box-shadow .35s}.header.is-scrolled{height:72px;background:#101110f2;border-bottom-color:#ffffff18;box-shadow:0 8px 30px #00000018}.header.is-scrolled .brand-icon{scale:.9}.header.is-scrolled .desktop-nav a{background:transparent}.header.is-scrolled .desktop-nav a:hover{background:var(--accent)}html{scroll-padding-top:94px}
@media(max-width:800px){.header.is-scrolled{height:68px}}
@media(max-width:540px){.header.is-scrolled{height:64px}html{scroll-padding-top:84px}}
/* Keep decorative type inside the dialog, including during its entrance. */
.site-menu{overflow-x:hidden}.menu-graphic{right:0;top:16%;height:70%;width:1.1em;overflow:hidden;white-space:nowrap}.solution-visual{top:96px}
@media(max-width:800px){.solution-visual{top:88px}}
@media(max-width:540px){.solution-visual{top:auto}.menu-graphic{right:0;top:20%;height:64%}}
