/* MM-MOTION-11 — choreographed entry, light, depth and artwork motion. */
html.mm-motion-v11 main .hero h1,html.mm-motion-v11 main .product-frame{animation:none}
html.mm-motion-v11 main .ai-card:hover{transform:none}
.mm-motion-controls{display:flex;justify-content:flex-end;margin:18px 0 0}
.mm-motion-control{appearance:none;font:inherit;font-size:11px;letter-spacing:.03em;color:inherit;opacity:.72;background:transparent;border:1px solid currentColor;border-radius:30px;padding:8px 13px;cursor:pointer}
.mm-motion-control:hover,.mm-motion-control:focus-visible{opacity:1}.mm-motion-control:disabled{cursor:default}
.mm-reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#9560ce,#ff9855);transform:scaleX(0);transform-origin:0 50%;pointer-events:none;z-index:1000}
@media(prefers-reduced-motion:no-preference){
 html.mm-motion-v11:not(.mm-motion-off) main .hero::before{content:"";position:absolute;inset:-25%;width:auto;height:auto;z-index:-1;pointer-events:none;border:0;border-radius:0;box-shadow:none;mask-image:none;background:radial-gradient(ellipse at 68% 38%,#9c55e662 0,transparent 44%),radial-gradient(ellipse at 20% 76%,#f28a432c 0,transparent 39%),radial-gradient(ellipse at 85% 90%,#5b48bd55 0,transparent 40%);background-size:auto;animation:mm-aurora 18s ease-in-out infinite alternate;animation-play-state:paused}
 html.mm-motion-v11:not(.mm-motion-off) main .hero::after{content:"";position:absolute;inset:auto -20% 13% auto;width:75%;height:1px;border:0;border-radius:0;box-shadow:0 0 16px #b684ec66;pointer-events:none;z-index:-1;background:linear-gradient(90deg,transparent,#c5a0ed77,transparent);rotate:-24deg;animation:mm-light-track 12s ease-in-out infinite alternate;animation-play-state:paused}
 html.mm-motion-v11:not(.mm-motion-off) main .hero.mm-scene-inview::before,html.mm-motion-v11:not(.mm-motion-off) main .hero.mm-scene-inview::after{animation-play-state:running}
 html.mm-motion-v11:not(.mm-motion-off) main .product-frame{animation:mm-screen-float 8s ease-in-out infinite;animation-play-state:paused}
 html.mm-motion-v11:not(.mm-motion-off) main :is(.service-hero-art img,.gh-intro>.gh-robot,.ai-topic-art img,.security-supplied-art){animation:mm-art-float 7s ease-in-out infinite;animation-delay:var(--mm-phase,0s);animation-play-state:paused}
 html.mm-motion-v11:not(.mm-motion-off) main :is(.service-watermark,.about-vector) .supplied-gears{animation:mm-gears-drift 14s ease-in-out infinite alternate;animation-play-state:paused}
 html.mm-motion-v11:not(.mm-motion-off) main .mm-motion-scene.mm-scene-inview{animation-play-state:running}
 html.mm-motion-v11:not(.mm-motion-off) main .mm-parallax-art{transform:translate3d(0,var(--mm-scroll-shift,0px),0)}
 html.mm-motion-v11:not(.mm-motion-off) main .mm-depth-surface{position:relative;transform:perspective(1100px) rotateX(var(--mm-pitch,0deg)) rotateY(var(--mm-yaw,0deg));transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s ease,border-color .45s ease}
 html.mm-motion-v11:not(.mm-motion-off) main .mm-depth-surface::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at var(--mm-light-x,50%) var(--mm-light-y,40%),#e5c7ff38,transparent 62%);opacity:0;transition:opacity .45s ease;z-index:2}
 html.mm-motion-v11:not(.mm-motion-off) main .mm-pointer-active::after{opacity:1}
 html.mm-motion-v11:not(.mm-motion-off) main :is(.ai-art,.project-art,.ai-topic-art) img{transition:filter .4s ease}
 html.mm-motion-v11:not(.mm-motion-off) main .mm-pointer-active{box-shadow:0 30px 60px #10081c60,0 0 35px #9965db22}
 html.mm-motion-v11:not(.mm-motion-off) main :is(.route-card,.ai-card,.project){transition:box-shadow .35s ease,border-color .35s ease}
 html.mm-motion-v11:not(.mm-motion-off) .btn{position:relative;isolation:isolate;overflow:hidden;transition:box-shadow .3s ease,background-color .3s ease}
 html.mm-motion-v11:not(.mm-motion-off) .btn::after{content:"";position:absolute;inset:-50% auto -50% -60%;width:35%;background:linear-gradient(90deg,transparent,#fff5,transparent);rotate:20deg;pointer-events:none;transition:translate .65s cubic-bezier(.16,1,.3,1)}
 html.mm-motion-v11:not(.mm-motion-off) .btn:hover::after,html.mm-motion-v11:not(.mm-motion-off) .btn:focus-visible::after{translate:650% 0}
 html.mm-motion-v11:not(.mm-motion-off) :is(.btn,.link)>span{display:inline-block;transition:translate .3s ease}
 html.mm-motion-v11:not(.mm-motion-off) :is(.btn,.link):hover>span{translate:5px 0}
 html.mm-motion-v11:not(.mm-motion-off) .btn:hover{box-shadow:0 12px 32px #ff944830}
 html.mm-motion-v11:not(.mm-motion-off) .nav-services[open]>.nav-services-panel{animation:mm-menu-open .3s cubic-bezier(.16,1,.3,1)}
 html.mm-motion-v11:not(.mm-motion-off) .gh-gallery-options button{position:relative;transition:background-color .35s ease,border-color .35s ease}
 html.mm-motion-v11:not(.mm-motion-off) .gh-gallery-options button[aria-pressed=true]::after{content:"";position:absolute;left:0;top:12%;height:76%;width:3px;background:#ff9855;transform-origin:50% 0;animation:mm-line-grow .45s ease-out}
 html.mm-motion-v11:not(.mm-motion-off) .screen-dialog[open]{animation:mm-dialog-open .45s cubic-bezier(.16,1,.3,1)}
 html.mm-motion-v11:not(.mm-motion-off) .screen-dialog::backdrop{animation:mm-backdrop .35s ease-out}
 @media(hover:hover) and (pointer:fine){
  html.mm-motion-v11:not(.mm-motion-off) main .route-card:hover{border-color:#a67ad1;box-shadow:0 15px 42px #110a2344}
  html.mm-motion-v11:not(.mm-motion-off) main .mm-pointer-active img{filter:drop-shadow(0 15px 18px #130b2255)}
 }
 @keyframes mm-aurora{from{transform:translate3d(-4%,-3%,0) rotate(-8deg) scale(.98);opacity:.65}to{transform:translate3d(5%,5%,0) rotate(5deg) scale(1.1);opacity:1}}
 @keyframes mm-light-track{from{translate:-12% -24px;opacity:.3}to{translate:10% 30px;opacity:.8}}
 @keyframes mm-screen-float{0%,100%{translate:0 0}50%{translate:0 -14px}}
 @keyframes mm-art-float{0%,100%{translate:0 3px;rotate:-.5deg}50%{translate:0 -10px;rotate:.5deg}}
 @keyframes mm-gears-drift{from{translate:-5px 6px;rotate:-2deg}to{translate:8px -10px;rotate:2deg}}
 @keyframes mm-menu-open{from{opacity:.2;translate:0 -12px}to{opacity:1;translate:0 0}}
 @keyframes mm-line-grow{from{scale:1 0}to{scale:1 1}}
 @keyframes mm-dialog-open{from{opacity:.2;translate:0 30px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
 @keyframes mm-backdrop{from{opacity:0}to{opacity:1}}
}
html.mm-motion-v11.mm-page-hidden main .mm-motion-scene,html.mm-motion-v11.mm-page-hidden main .hero::before,html.mm-motion-v11.mm-page-hidden main .hero::after{animation-play-state:paused!important}
html.mm-motion-v11.mm-motion-off .mm-reading-progress{display:none}
html.mm-motion-v11.mm-motion-off main .mm-depth-surface,html.mm-motion-v11.mm-motion-off main .mm-parallax-art{transform:none}
html.mm-motion-v11.mm-motion-off main .mm-motion-scene,html.mm-motion-v11.mm-motion-off main .hero h1{animation:none!important}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .mm-reading-progress{display:none}
 html.mm-motion-v11 main .mm-motion-scene,html.mm-motion-v11 main .hero h1,html.mm-motion-v11 main .hero::before,html.mm-motion-v11 main .hero::after{animation:none!important}
 html.mm-motion-v11 main .ai-card,html.mm-motion-v11 main .project-art img{transition:none!important;transform:none!important}
}
