/* Interactive Hover Button pattern adapted from Magic UI (MIT).
   Glowing borders and scroll perspective adapted for this end product from
   Aceternity UI. Sources and licences: MOTION-CREDITS.md. */
.motion-cta{--mag-x:0px;--mag-y:0px;--cta-fill:#183661;--cta-on:#fff;--cta-dot:#e0ffef;position:relative;isolation:isolate;overflow:hidden;transform:none!important;transition:box-shadow .35s,border-color .35s;background:var(--green);gap:24px}
.motion-cta.pale{--cta-fill:#d5f7e8;--cta-on:#183f44;--cta-dot:#48bf91}.motion-cta.outline-light,.contact .motion-cta,.motion-cta.back-top{--cta-fill:#385b9b;--cta-on:#fff;--cta-dot:#81e6b6}
.motion-cta.hero-explore{--cta-fill:#f6f9ff;--cta-on:#2a4a83;--cta-dot:#c5dcff;background:#2a4a83cc;color:#fff}.motion-cta.back-top{display:inline-flex;align-items:center;gap:16px;background:#474545;color:white}
.motion-cta .cta-dot{position:absolute;width:12px;height:12px;border-radius:50%;right:24px;top:calc(50% - 6px);background:var(--cta-fill);transform:scale(1);opacity:0;z-index:-1;transition:transform .65s cubic-bezier(.22,.8,.22,1),opacity .2s;pointer-events:none}
.motion-cta .cta-label{display:inline-grid;position:relative;overflow:hidden;line-height:1.6;transform:translate3d(var(--mag-x),var(--mag-y),0);transition:transform .15s ease-out;pointer-events:none}
.motion-cta .cta-label>span{grid-area:1/1;white-space:nowrap;transition:transform .5s cubic-bezier(.2,.75,.2,1),opacity .3s;display:block}
.motion-cta .cta-label .cta-second{transform:translateY(125%);opacity:0;color:var(--cta-on)}
.motion-cta .cta-icon{flex-shrink:0;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#ffffff23;transform:translate3d(var(--mag-x),var(--mag-y),0);transition:transform .55s cubic-bezier(.17,.9,.22,1.3),background .35s,color .35s;pointer-events:none}
.motion-cta .cta-sheen{position:absolute;inset:-100% -50%;z-index:3;pointer-events:none;background:linear-gradient(105deg,transparent 35%,#ffffff30 48%,transparent 60%);transform:translateX(-100%);opacity:0}
.motion-cta:focus-visible{outline:3px solid #00a9d6;outline-offset:5px}
@media(hover:hover) and (pointer:fine){
 .motion-cta:hover{box-shadow:0 12px 28px #15345d29;border-color:#a1c3e9}
 .motion-cta:hover .cta-dot{opacity:1;transform:scale(100)}
 .motion-cta:hover .cta-label .cta-first{transform:translateY(-125%);opacity:0}
 .motion-cta:hover .cta-label .cta-second{transform:translateY(0);opacity:1}
 .motion-cta:hover .cta-icon{transform:translate3d(calc(var(--mag-x) + 3px),calc(var(--mag-y) - 2px),0) rotate(-10deg);background:#ffffff20;color:var(--cta-on)}
 .motion-cta:hover .cta-sheen{animation:cta-shine .85s ease-out both}
}
@keyframes cta-shine{0%{transform:translateX(-70%);opacity:0}25%{opacity:1}100%{transform:translateX(70%);opacity:0}}
.motion-cta:active .cta-label,.motion-cta:active .cta-icon{scale:.96}.tap-ripple{position:absolute;width:14px;height:14px;border-radius:50%;background:#c5ffff60;pointer-events:none;z-index:4}
.hero-light{position:absolute;inset:-80px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 75% 35%,#d7f8ff25,transparent 47%);mix-blend-mode:screen;transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0)}
.motion-enabled .hero-art{transform:translate3d(var(--hero-x,0px),calc(var(--hero-y,0px) + var(--hero-scroll,0px)),0) scale(var(--hero-scale,1.025));transition:transform .12s linear;will-change:transform}
.motion-enabled .hero-content{transform:translate3d(0,var(--hero-copy-y,0px),0)}
.motion-enabled .journey-map{transform:translate3d(calc(-50% + var(--map-x,0px)),var(--map-y,0px),0) scale(var(--map-scale,1));transition:transform .14s linear}
.motion-enabled .journey-model{transform:translateY(var(--scene-y,0px));transition:transform .16s linear}.journey-pin{z-index:1}
.fx-word{display:inline-block;overflow:clip;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em;perspective:700px}.fx-word>span{display:inline-block;transform-origin:50% 100%}
.fx-heading{overflow:visible}.fx-heading.fx-pending .fx-word>span{opacity:0;transform:translate3d(0,105%,0) rotateX(-65deg)}.footer-motto .fx-word,.footer-motto .fx-word>span{color:inherit}
.fx-card{position:relative;isolation:isolate;--light-x:50%;--light-y:50%;--glow-angle:0deg;--card-x:0px;--card-y:0px;--card-rx:0deg;--card-ry:0deg}
.fx-card .edge-glow{position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;z-index:5;opacity:0;transition:opacity .35s;background:conic-gradient(from var(--glow-angle),transparent 0deg,#7e94f4 50deg,#00baf3 85deg,#48bf91 120deg,transparent 155deg);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
.fx-card:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(500px circle at var(--light-x) var(--light-y),#7e94f412,transparent 65%);pointer-events:none;z-index:4;opacity:0;transition:opacity .4s}
.fx-card:hover .edge-glow,.fx-card:focus-within .edge-glow,.fx-card:hover:after{opacity:1}.fx-card:focus-within{border-color:#7e94f4}
.service-grid .fx-card:hover{transform:none}.service-grid .fx-card img{transform:perspective(500px) translate3d(var(--card-x),var(--card-y),12px) rotateX(var(--card-rx)) rotateY(var(--card-ry));transition:transform .3s ease-out}
.product.fx-card .product-image img{transform:perspective(700px) rotateX(var(--card-rx)) rotateY(var(--card-ry)) scale(1.035);transition:transform .4s ease-out}.product.fx-card{perspective:1000px}
.spot-demo{perspective:1200px}.motion-enabled .portal-model{transform-origin:50% 75%;transform:translate3d(0,var(--portal-y,0px),0) rotateX(var(--portal-rotate,0deg)) scale(var(--portal-scale,1));transition:transform .16s linear;position:relative}
.portal-model:before{content:'';position:absolute;inset:15% 0;border-radius:50%;background:radial-gradient(ellipse,#90b7ff22,transparent 68%);pointer-events:none}
.journey-tabs,.demo-tabs{position:relative;isolation:isolate}.demo-tabs{overflow:hidden;padding-bottom:10px}.tab-rail{position:absolute;left:0;bottom:4px;height:3px;width:var(--rail-width,0px);transform:translateX(var(--rail-x,0px));border-radius:4px;background:linear-gradient(90deg,#7e94f4,#00baf3,#48bf91);box-shadow:0 0 12px #71e7ff99;transition:transform .6s cubic-bezier(.2,1.25,.35,1),width .4s;pointer-events:none;z-index:2}
.journey-tabs .tab-rail{bottom:-9px;height:3px}.demo-tabs button,.journey-tabs button{transition:background .3s,color .3s,box-shadow .3s;position:relative;overflow:hidden}.demo-tabs button[aria-pressed=true]{box-shadow:inset 0 1px 2px white,0 3px 12px #071e4030}
.demo-tabs button:active,.journey-tabs button:active{box-shadow:inset 0 3px 10px #172e6426}
.stage-explanation{transform:translateZ(0)}.section-blend{height:310px;top:-145px}.blend-particles{opacity:.9}
.scroll-progress{height:2px;background:linear-gradient(90deg,#7e94f4,#00baf3,#48bf91);transform:scaleX(var(--page-progress,0));transform-origin:left;position:absolute;left:0;right:0;bottom:-1px;pointer-events:none;z-index:2}
footer{position:relative;overflow:hidden}.motion-enabled .footer-motto{translate:0 var(--footer-y,0px)}
.motion-enabled footer:before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7e94f4,#48bf91,transparent);transform:scaleX(var(--footer-reveal,0));transform-origin:center}
.motion-enabled .contact-shell{transition:box-shadow .6s}.contact-shell:focus-within{box-shadow:0 25px 65px #2a4a8328,0 0 0 1px #9db4ed}
#navigation>a:not(.button){position:relative}#navigation>a:not(.button):after{content:'';position:absolute;bottom:7px;left:0;width:100%;height:2px;border-radius:2px;background:linear-gradient(90deg,#7e94f4,#48bf91);transform:scaleX(0);transform-origin:left;transition:transform .35s}#navigation>a:not(.button):hover:after,#navigation>a:not(.button):focus-visible:after{transform:scaleX(1)}
@media(max-width:950px){.motion-cta{gap:18px}.motion-cta .cta-icon{width:25px;height:25px}.motion-enabled .hero-art{transform:translate3d(0,var(--hero-scroll,0px),0) scale(var(--hero-scale,1.015))!important}.motion-enabled .journey-model{transform:none}.section-blend{height:240px;top:-110px}}
@media(max-width:650px){.motion-cta{gap:12px}.motion-cta .cta-label{font-size:inherit;max-width:100%}.motion-cta .cta-label>span{white-space:normal}.spot-copy .motion-cta{justify-content:space-between}.motion-cta .cta-icon{width:25px;height:25px}.journey-tabs .tab-rail{bottom:-6px}.section-blend{height:210px;top:-95px}.stage-explanation{min-height:170px}}
@media(hover:none),(pointer:coarse){.fx-card .edge-glow,.fx-card:after{display:none}.service-grid .fx-card img,.product.fx-card .product-image img{transform:none!important}.motion-cta .cta-dot,.motion-cta .cta-second,.motion-cta .cta-sheen{display:none!important}.motion-cta .cta-label .cta-first{opacity:1!important;transform:none!important}.motion-cta:active{filter:brightness(.93)}}
@media(prefers-reduced-motion:reduce){.motion-enabled .hero-art{transform:none!important;will-change:auto}.motion-enabled .hero-content,.motion-enabled .journey-model,.motion-enabled .portal-model{transform:none!important}.motion-enabled .journey-map{transform:translateX(-50%)!important}.motion-enabled .footer-motto{translate:none}.fx-heading .fx-word>span{opacity:1!important;transform:none!important}.motion-cta .cta-first{opacity:1!important;transform:none!important}.motion-cta .cta-second,.motion-cta .cta-dot,.motion-cta .cta-sheen,.tap-ripple,.tab-rail,.scroll-progress,.edge-glow{display:none!important}.motion-cta .cta-label,.motion-cta .cta-icon{transform:none!important;scale:1!important}.motion-cta:hover .cta-icon{color:inherit}.fx-card:after{display:none}.product.fx-card .product-image img,.service-grid .fx-card img{transform:none!important}.hero-light{display:none}}
