/* The TTFX motion language: connected lines, measured entrances, clear feedback. */
[data-motion-scene]{position:relative;isolation:isolate;overflow:clip}
.motion-circuit{position:absolute;right:-8%;top:0;width:68%;height:100%;min-height:250px;color:#75cbb1;opacity:.22;z-index:-1;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000 45%)}
.company-hero .motion-circuit,.journal-hero .motion-circuit,.reference-hero .motion-circuit{color:#327a60;opacity:.15}
.motion-circuit-tracks{stroke-width:1;opacity:.55}
.motion-circuit-flow{stroke-width:2;stroke-dasharray:65 935;stroke-linecap:round;animation:ttfx-signal 9s linear infinite;animation-play-state:paused}
.motion-circuit-flow path:nth-child(2){stroke-dasharray:35 965}
.motion-circuit-nodes circle{transform-box:fill-box;transform-origin:center;animation:ttfx-node 4s ease-in-out infinite;animation-play-state:paused}
.motion-circuit-nodes circle:nth-child(2n){animation-delay:-2s}
.scene-inview .motion-circuit-flow,.scene-inview .motion-circuit-nodes circle{animation-play-state:running}
@keyframes ttfx-signal{to{stroke-dashoffset:-1000}}
@keyframes ttfx-node{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.65)}}
@keyframes ttfx-enter{from{opacity:.6;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes ttfx-menu{from{opacity:.4;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes ttfx-draw{from{transform:scaleX(.1)}to{transform:scaleX(1)}}
.motion-enabled [data-motion-scene] h1{animation:ttfx-enter .75s cubic-bezier(.2,.7,.25,1) both}
.motion-enabled .detail-intro,.motion-enabled .product-hero-intro{animation:ttfx-enter .8s .1s cubic-bezier(.2,.7,.25,1) both}
.motion-enabled [data-reveal]{transition:opacity .65s cubic-bezier(.2,.7,.25,1),translate .65s cubic-bezier(.2,.7,.25,1);transition-delay:var(--reveal-delay,0ms)}
.motion-enabled [data-reveal].reveal-pending{opacity:.55;translate:0 18px}
.motion-enabled [data-reveal]:focus-within,.motion-enabled [data-reveal]:target{opacity:1;translate:none;transition-delay:0ms}
.motion-enabled #mega-menu.open .nav-menu-scroll{animation:ttfx-menu .3s ease-out both}
.motion-enabled .product-section-nav:after{content:"";display:block;height:1px;background:linear-gradient(90deg,transparent,#3d9876,transparent);transform-origin:left;animation:ttfx-draw .9s .15s ease-out both}
.page-progress{position:absolute;inset:auto 0 0;height:3px;pointer-events:none;background:transparent;z-index:2;overflow:hidden}
.page-progress>span{display:block;height:100%;background:linear-gradient(90deg,#2e8c71,#e8bb49);transform:scaleX(var(--read-progress,0));transform-origin:left}
.motion-preference{border:1px solid #57786a;background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 14px;font-size:14px;line-height:1.4;cursor:pointer;white-space:nowrap}
.motion-preference:before{content:"";width:7px;height:7px;border-radius:50%;background:#94d9b1;box-shadow:0 0 0 4px #94d9b118}
.motion-preference[aria-pressed=true]:before{background:#edcc79;box-shadow:none}
.motion-preference:hover{border-color:#c4daca;background:#fff1}
.motion-preference:focus-visible{outline:2px solid #e8bb49;outline-offset:4px}
.footer-bottom{flex-wrap:wrap}
.product-card .product-card-visual img,.article-cover svg,.service-symbol{transition:transform .55s cubic-bezier(.2,.7,.25,1)}
.btn svg,.text-link svg,.article-card-meta svg,.product-card-bottom svg{transition:transform .25s ease}
.btn:active{transform:translateY(1px)}
.page-toc a{transition:color .2s,background-color .2s,border-color .2s}
.page-toc a.active{background:#eaf2eb}
.content-body :is(h2,h3),.product-section,.product-chapter{scroll-margin-top:125px}
.content-body .media-reference{font-size:17px;line-height:1.7}
.content-body video{display:block;max-width:100%;height:auto}
.resource-section>a{min-width:0;max-width:100%}
.resource-section>a>span{min-width:0;flex:1;overflow-wrap:anywhere}
.resource-section>a>small,.resource-section>a>svg{flex-shrink:0}
/* Expressive second layer: orbital geometry, depth, scanning and card light. */
.motion-orbits{position:absolute;inset:0 -13% 0 auto;width:76%;height:100%;pointer-events:none;z-index:-1;color:#8fe5bf;opacity:.36;mask-image:linear-gradient(90deg,transparent,#000 35%)}
.company-hero .motion-orbits,.journal-hero .motion-orbits,.reference-hero .motion-orbits{color:#337c61;opacity:.21}
.orbit-outer,.orbit-inner,.orbit-core{transform-box:view-box;transform-origin:50% 50%;stroke-width:1}
.orbit-outer{stroke-dasharray:460 80}
.orbit-inner{color:#eac15f}
.orbit-core{opacity:.55}
.orbit-packet{fill:#f1d073;stroke:none}
.motion-enabled .orbit-outer{animation:ttfx-orbit 24s linear infinite paused}
.motion-enabled .orbit-inner{animation:ttfx-orbit 15s linear infinite reverse paused}
.motion-enabled .orbit-core{animation:ttfx-core 5s ease-in-out infinite paused}
.scene-inview .orbit-outer,.scene-inview .orbit-inner,.scene-inview .orbit-core,.motion-live .orbit-outer,.motion-live .orbit-inner,.motion-live .orbit-core{animation-play-state:running}
.machine-art .motion-orbits{inset:0;width:100%;height:100%;z-index:0;opacity:.62;mask-image:none;color:#8dd6b9}
.motion-enabled .machine .board-top{animation:ttfx-board-top 4.8s ease-in-out infinite paused}
.motion-enabled .machine .board-middle{animation:ttfx-board-middle 5.6s -.9s ease-in-out infinite paused}
.motion-enabled .machine .board-lower{animation:ttfx-board-middle 6.2s -2s ease-in-out infinite paused}
.motion-enabled .machine.is-inview .machine-board{animation-play-state:running}
.motion-enabled .machine.is-inview .circuit-flow{animation-duration:4s;stroke:#eaca74;stroke-width:2.5}
.scene-inview .motion-circuit-flow{animation-duration:5s}
.motion-circuit{opacity:.32}
.product-showcase-image{position:relative;isolation:isolate}
.motion-scan{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.motion-scan:after{content:"";position:absolute;left:0;right:0;top:0;height:22%;background:linear-gradient(transparent,#79bc9d1c 88%,#4e9b7866 98%,transparent);transform:translateY(-110%)}
.motion-enabled .motion-scan:after{animation:ttfx-scan 4.8s ease-in-out infinite paused}
.motion-live .motion-scan:after{animation-play-state:running}
.motion-enabled .product-showcase img,.motion-enabled .story-media .media-zoom img{animation:ttfx-art-float 6s ease-in-out infinite paused}
.motion-live.product-showcase img,.motion-live.story-media .media-zoom img{animation-play-state:running}
.product-showcase:focus-within img,.product-showcase:hover img{animation-play-state:paused}
.motion-enabled .hero-chapter>a{animation:ttfx-scroll-cue 2.6s ease-in-out infinite paused}
.scene-inview .hero-chapter>a{animation-play-state:running}
.motion-enabled #mega-menu.open .nav-solution{animation:ttfx-menu-link .4s both}
.motion-enabled #mega-menu.open .nav-solution:nth-child(2n){animation-delay:.05s}
.motion-enabled #mega-menu.open .nav-solution:nth-child(3n){animation-delay:.1s}
.motion-enabled #mega-menu.open .nav-solution:nth-child(4n){animation-delay:.15s}
.product-card.motion-tilt-active{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-5px);transition:transform .18s ease-out,box-shadow .3s ease-out;box-shadow:0 20px 46px #173f311c;border-color:#5e9c7c}
.product-card.motion-tilt-active:after{width:auto;height:auto;inset:0;background:radial-gradient(280px circle at var(--light-x,50%) var(--light-y,50%),#a5e7bb35,transparent 70%);pointer-events:none;clip-path:none}
.article-cover{position:relative;isolation:isolate}
.article-cover:after{content:"";position:absolute;inset:-100% 0;background:linear-gradient(110deg,transparent 40%,#b3efd31c 50%,transparent 60%);transform:translateX(-120%);pointer-events:none}
.motion-enabled .motion-live.article-cover:after{animation:ttfx-cover-light 8s ease-in-out infinite}
.motion-enabled .motion-live.article-cover svg{animation:ttfx-art-float 5s ease-in-out infinite}
@keyframes ttfx-orbit{to{transform:rotate(360deg)}}
@keyframes ttfx-core{0%,100%{opacity:.4;transform:scale(.95)}50%{opacity:.9;transform:scale(1.05)}}
@keyframes ttfx-board-top{50%{transform:translateY(-20px)}}
@keyframes ttfx-board-middle{50%{transform:translateY(-11px)}}
@keyframes ttfx-art-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes ttfx-scan{0%,12%{transform:translateY(-110%);opacity:0}25%{opacity:1}80%{transform:translateY(500%);opacity:.8}100%{transform:translateY(500%);opacity:0}}
@keyframes ttfx-cover-light{0%,45%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
@keyframes ttfx-scroll-cue{50%{translate:0 6px}}
@keyframes ttfx-menu-link{from{opacity:.3;translate:16px 0}to{opacity:1;translate:0 0}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition-duration:0s!important}
.motion-paused [data-reveal]{opacity:1!important;translate:none!important}
.motion-paused [data-motion-scene] h1,.motion-paused .detail-intro,.motion-paused .product-hero-intro{animation:none!important}
.tab-hidden *,.tab-hidden *:before,.tab-hidden *:after{animation-play-state:paused!important}
@media(hover:hover) and (pointer:fine){
 .motion-enabled .product-card:hover .product-card-visual img{transform:scale(1.035)}
 .motion-enabled .article-card:hover .article-cover svg{transform:translateY(-4px)}
 .motion-enabled .service-feature:hover .service-symbol{transform:rotate(-8deg) scale(1.05)}
 .motion-enabled :is(.btn,.text-link):hover svg{transform:translate(3px,-3px)}
 .motion-enabled .article-card:hover .article-card-meta svg,.motion-enabled .product-card:hover .product-card-bottom svg{transform:translate(3px,-3px)}
}
@media(max-width:760px){
 .motion-orbits{width:120%;right:-45%;opacity:.23}
 .machine-art .motion-orbits{width:100%;right:0;opacity:.48}
 .motion-enabled .product-showcase img{animation-duration:7s}
 .product-card.motion-tilt-active{transform:none}
 .motion-circuit{width:95%;right:-25%;opacity:.15;mask-image:linear-gradient(90deg,transparent,#000 75%)}
 .motion-enabled [data-reveal].reveal-pending{translate:0 10px;opacity:.75}
 .motion-enabled [data-reveal]{transition-duration:.45s;transition-delay:0ms}
 .footer-bottom .motion-preference{margin-top:16px;width:max-content}
 .content-body :is(h2,h3),.product-section,.product-chapter{scroll-margin-top:96px}
 .page-progress{height:2px}
}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 [data-reveal]{opacity:1!important;translate:none!important}
}
