/* Lightweight shared motion; content stays visible when JavaScript is unavailable. */
.floating-contact-links .contact-icon{animation:contact-icon-arrive .65s cubic-bezier(.22,1,.36,1) .25s both,contact-icon-float 4s ease-in-out 1s infinite}
.floating-contact-links .contact-whatsapp{animation-delay:.42s,1.3s}
.floating-contact-links .contact-icon:before{content:"";position:absolute;inset:0;border:1.5px solid #1264ec;border-radius:inherit;pointer-events:none;opacity:0;animation:contact-icon-pulse 3.8s ease-out 1.2s infinite}
.floating-contact-links .contact-whatsapp:before{border-color:#128c4a;animation-delay:1.8s}
.floating-contact-links .contact-icon:hover,.floating-contact-links .contact-icon:focus-visible,.floating-contact-links .contact-icon:hover:before,.floating-contact-links .contact-icon:focus-visible:before{animation-play-state:paused}
@keyframes contact-icon-arrive{from{opacity:0;transform:translateX(28px) scale(.75)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes contact-icon-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes contact-icon-pulse{0%{opacity:.5;transform:scale(1)}65%,100%{opacity:0;transform:scale(1.4)}}
@media(prefers-reduced-motion:reduce){.floating-contact-links .contact-icon,.floating-contact-links .contact-icon:before{animation:none;transform:none;opacity:1}.floating-contact-links .contact-icon:before{display:none}}
.about.about-photo-motion{position:relative;isolation:isolate;overflow:hidden;background-image:none}
.about-photo-motion:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('../img/about-workspace.jpg?v=20261014') left center/cover no-repeat;background-image:image-set(url('../img/optimized/about-workspace-1774.e74e2952dd2d.webp') type('image/webp'), url('../img/about-workspace.jpg?v=20261014') type('image/jpeg'));transform:scale(1.025);transform-origin:40% 50%;animation:about-photo-drift 20s ease-in-out infinite alternate;animation-play-state:paused}
.about-photo-motion.photo-in-view:before{animation-play-state:running}
@keyframes about-photo-drift{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.085) translate3d(-1%,.5%,0)}}
@media(max-width:991.98px){.about-photo-motion:before{bottom:auto;height:300px;background-size:auto 300px;background-position:left top;transform-origin:left top}}
@media(prefers-reduced-motion:reduce){.about-photo-motion:before{animation:none;transform:none}}
.motion-pending{opacity:0;pointer-events:none}
.about-motion-pending{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.about-motion-pending{opacity:1;pointer-events:auto}}
@media print{.about-motion-pending{opacity:1!important;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.motion-pending{opacity:1;pointer-events:auto}}
@media print{.motion-pending{opacity:1!important;pointer-events:auto}}
[data-contact-stage].contact-motion-pending{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){[data-contact-stage].contact-motion-pending{opacity:1;pointer-events:auto}}
@media print{[data-contact-stage].contact-motion-pending{opacity:1!important;pointer-events:auto}}
.site-header{transition:box-shadow .3s,border-color .3s}
.site-header .nav-link{position:relative}
.site-header .nav-link:before{content:"";position:absolute;left:0;right:0;bottom:15px;height:2px;background:#1677ff;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.site-header .nav-link:hover:before,.site-header .nav-link:focus-visible:before,.site-header .nav-link.active:before{transform:scaleX(1)}
.agency-button,.btn-primary{transition:transform .25s,box-shadow .25s,background .25s}
.agency-button:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #1677ff30}
.agency-button span,.card-link span{display:inline-block;transition:transform .25s}
.agency-button:hover span,.card-link:hover span{transform:translate(3px,-2px)}
.motion-card{position:relative;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s}
.motion-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(260px circle at var(--glow-x,50%) var(--glow-y,35%),#67d8ff12,transparent 70%);opacity:0;transition:opacity .3s}
.motion-card:hover:after,.motion-card:focus-within:after{opacity:1}
.motion-card:hover{box-shadow:0 18px 40px #0003;border-color:#67d8ff50}
.solution-card img,.project-item img,.about-visual img{transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .5s}
.solution-card:hover img,.project-item:hover img{transform:scale(1.045);filter:saturate(.9)}
/* Service cards use the same individual entrance animations as solution cards. */
.service-panel:not([hidden]){animation:none}
.faq-list details[open] p{animation:panel-arrive .3s ease both}
.faq-list summary:after{transition:transform .25s}
.faq-list details[open] summary:after{transform:rotate(180deg)}
.service-tabs button{transition:background .2s,color .2s,box-shadow .2s}
.service-tabs button[aria-selected=true]{box-shadow:0 3px 18px #1677ff30}
.process-section,.consultation,.industries-section{position:relative;isolation:isolate;overflow:hidden}
.process-section:before,.consultation:before,.industries-section:before{content:"";position:absolute;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 25% 35%,#1677ff12,transparent 50%),radial-gradient(ellipse at 80% 60%,#67d8ff08,transparent 45%);animation:ambient-drift 18s ease-in-out infinite alternate}
.process-step{transition:border-color .3s,transform .3s}
.process-step:hover{border-color:#67d8ff;transform:translateY(-3px)}
.industry-strip span{transition:border-color .25s,background .25s,transform .25s}
.industry-strip span:hover{background:#1677ff15;border-color:#67d8ff66;transform:translateY(-2px)}
.form-control,.form-select{transition:border-color .2s,box-shadow .2s,background .2s}
.site-motion-toggle{position:fixed;right:20px;bottom:82px;z-index:98;border:1px solid #67d8ff35;border-radius:20px;background:#080f21ee;color:#bfd5f2;padding:8px 13px;font:10px Montserrat,Arial,sans-serif;cursor:pointer;box-shadow:0 3px 15px #0003}
.site-motion-toggle:hover{border-color:#67d8ff;color:#fff}
.site-motion-toggle[hidden]{display:none}
.motion-tab-hidden *, .motion-tab-hidden *:before,.motion-tab-hidden *:after{animation-play-state:paused!important}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-paused .motion-card:after{display:none}
.motion-paused .motion-card:hover,.motion-paused .process-step:hover,.motion-paused .industry-strip span:hover,.motion-paused .agency-button:hover,.motion-paused .btn-primary:hover,.motion-paused .solution-card:hover img,.motion-paused .project-item:hover img,.motion-paused .agency-button:hover span,.motion-paused .card-link:hover span{transform:none}
@keyframes ambient-drift{from{transform:translate3d(-2%,0,0)}to{transform:translate3d(3%,2%,0)}}
@keyframes panel-arrive{from{opacity:.3;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px){.site-motion-toggle{right:14px;bottom:77px;padding:7px 10px}}
@media(hover:none){.motion-card:after{display:none}.process-step:hover,.industry-strip span:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-card:after{display:none}.site-motion-toggle{display:none}}

/* Reference-inspired glass cards, soft hover depth and staggered entrances. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
main{overflow-x:clip}
.page-header{position:relative;isolation:isolate;overflow:hidden}
.page-header:before,.page-header:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;z-index:-1;pointer-events:none;filter:blur(50px);opacity:.55;animation:header-orb 18s ease-in-out infinite alternate}
.page-header:before{top:-190px;left:-110px;background:#1677ff45}
.page-header:after{bottom:-230px;right:-70px;background:#67d8ff35;animation-delay:-9s}
.page-header h1{position:relative;text-wrap:balance}
.motion-card{border-radius:24px!important;transition:transform .55s var(--motion-ease),box-shadow .55s,border-color .55s,background .55s;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.motion-card:after{background:radial-gradient(320px circle at var(--glow-x,50%) var(--glow-y,35%),#1677ff20,transparent 70%);z-index:1}
html[data-theme=light] .motion-card{background:linear-gradient(145deg,#fff,#f6f9ff);border:1px solid #1677ff22;box-shadow:0 12px 32px #1023440a}
html[data-theme=dark] .motion-card{background:linear-gradient(145deg,#182742e8,#101a30e8)!important;border:1px solid #67d8ff25;box-shadow:0 12px 32px #0002}
.motion-card:focus-within{border-color:#1677ff77;box-shadow:0 20px 50px #1677ff1c}
.motion-card .card-icon,.why-card>img{transition:transform .55s var(--motion-ease),filter .55s}
.solution-card>img,.project-item>img,.team-item>img,.solution-card>.optimized-picture img,.project-item>.optimized-picture img,.team-item>.optimized-picture img{transition:transform .8s var(--motion-ease),filter .6s;transform-origin:center}
.motion-card h3,.motion-card .h5{transition:color .35s}
.card-link{position:relative}
.card-link:before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:linear-gradient(90deg,#1677ff,#67d8ff);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--motion-ease)}
.motion-card:hover .card-link:before,.motion-card:focus-within .card-link:before{transform:scaleX(1)}
.agency-button,.btn-primary,.btn-outline-primary{transition:transform .3s var(--motion-ease),box-shadow .3s,background .3s}
.agency-button:active,.btn-primary:active,.btn-outline-primary:active{transform:scale(.97)}
.process-step{position:relative}
.process-step:before{content:"";position:absolute;top:-1px;left:0;height:2px;width:100%;background:linear-gradient(90deg,#1677ff,#67d8ff);transform:scaleX(0);transform-origin:left}
.process-step.motion-in-view:before{animation:capability-line 1s var(--motion-ease) both}
.consultation-form{border-radius:24px;box-shadow:0 20px 65px #00000015}
.about .bg-white.rounded-top{border-radius:28px 28px 0 0!important}
.capability-showcase{display:flex;justify-content:center;gap:24px;margin:48px auto 0;max-width:1020px;text-align:left;padding:8px}
.capability-card{flex:1;min-width:0;padding:24px;position:relative;--rest-angle:2deg;transform:rotate(var(--rest-angle))}
.capability-card:nth-child(2){--rest-angle:-2deg}
.capability-card:nth-child(3){--rest-angle:1deg}
.capability-card h2{color:#fff;font-size:1.25rem;line-height:1.4;margin:16px 0 20px;letter-spacing:-.02em}
.capability-card svg{width:28px;height:28px;fill:none;stroke:#67d8ff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html[data-theme=light] .capability-card h2{color:#102344}
html[data-theme=light] .capability-card svg{stroke:#1264ec}
.capability-line{height:3px;background:#1677ff20;border-radius:20px;overflow:hidden}
.capability-line span{display:block;height:100%;width:var(--line-width,80%);border-radius:inherit;background:linear-gradient(90deg,#1677ff,#67d8ff);transform-origin:left}
.capability-card.about-in-view .capability-line span{animation:capability-line var(--about-line-duration,1200ms) var(--motion-ease) calc(var(--reveal-delay,0ms) + var(--about-line-delay,350ms)) both}
@media(hover:hover) and (pointer:fine){
    .motion-card:hover{transform:translateY(-7px);border-color:#1677ff66;box-shadow:0 24px 55px #1677ff22}
    .motion-card.motion-pointer:hover{transform:perspective(1000px) translateY(-7px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg))}
    .motion-card:hover .card-icon,.why-card:hover>img{transform:translateY(-3px) rotate(-5deg);filter:drop-shadow(0 5px 9px #1677ff20)}
    .solution-card:hover>img,.project-item:hover>img,.team-item:hover>img,.solution-card:hover>.optimized-picture img,.project-item:hover>.optimized-picture img,.team-item:hover>.optimized-picture img{transform:scale(1.025);filter:saturate(1)}
    .agency-button:hover,.btn-primary:hover,.btn-outline-primary:hover{transform:translateY(-3px);box-shadow:0 12px 30px #1677ff30}
}
@keyframes header-orb{from{transform:translate3d(0,0,0) scale(.9)}to{transform:translate3d(50px,25px,0) scale(1.1)}}
@keyframes capability-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:767px){
    .capability-showcase{flex-direction:column;gap:16px;margin-top:32px;max-width:420px}
    .capability-card{padding:20px;transform:none}
    .capability-card h2{margin:10px 0 16px}
    .motion-card{border-radius:20px!important}
}
@media(hover:none){.motion-card:hover,.capability-card{transform:none}.solution-card:hover>img,.project-item:hover>img,.team-item:hover>img,.motion-card>.optimized-picture img{transform:none}}
.motion-paused .motion-card,.motion-paused .capability-card,.motion-paused .motion-card:hover,.motion-paused .motion-card.motion-pointer:hover,
.motion-paused .motion-card>img,.motion-paused .motion-card>.optimized-picture img,.motion-paused .motion-card .card-icon{transform:none!important}
@media(prefers-reduced-motion:reduce){
    .motion-card,.capability-card,.motion-card:hover,.motion-card.motion-pointer:hover,.motion-card>img,.motion-card>.optimized-picture img,.motion-card .card-icon{transform:none!important}
    .page-header:before,.page-header:after{animation:none}
}
