/* extra motion for the home page */
.wrap{position:relative;z-index:1}
.orbs{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.orbs i{position:absolute;width:46vmax;height:46vmax;border-radius:50%;filter:blur(90px);opacity:.38;animation:drift 22s ease-in-out infinite alternate}
.orbs i:nth-child(1){background:#4263eb;top:-18vmax;left:-12vmax}
.orbs i:nth-child(2){background:#7857e8;top:20vh;right:-18vmax;animation-delay:-7s}
.orbs i:nth-child(3){background:#0cae9a;bottom:-24vmax;left:20vw;opacity:.25;animation-delay:-13s}
@keyframes drift{to{transform:translate(8vmax,6vmax) scale(1.15)}}
#prog{position:fixed;top:0;left:0;height:3px;width:0;z-index:50;background:linear-gradient(90deg,var(--blue),var(--violet),var(--teal))}
h1 span{background-size:220% auto;animation:shine 6s linear infinite}
@keyframes shine{to{background-position:220% center}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}
.hero h1,.hero .eyebrow,.hero p{animation:rise .9s ease both}
.hero .eyebrow{animation-delay:.05s}.hero h1{animation-delay:.2s}.hero p{animation-delay:.4s}
.hero h1 span{animation:shine 6s linear infinite}
.rot{margin-top:22px;font-size:15px;color:var(--muted);font-weight:600;animation:rise .9s ease .6s both}
.rot b{display:inline-block;min-width:20ch;text-align:left;color:var(--blue);border-right:2px solid var(--violet);padding-right:4px;animation:cblink .8s step-end infinite}
@keyframes cblink{50%{opacity:0}}
@keyframes caret{50%{border-color:transparent}}
.marq{overflow:hidden;margin:6px 0 4px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.mt{display:flex;gap:12px;width:max-content;animation:marq 38s linear infinite}
.marq:hover .mt{animation-play-state:paused}
.mt span{padding:9px 16px;border:1px solid #e2e7f2;background:#ffffffb8;border-radius:999px;font-size:12px;font-weight:750;color:#4659b7;white-space:nowrap}
@keyframes marq{to{transform:translateX(-50%)}}
.center-icon{position:relative}
.center-icon::after{content:"";position:absolute;inset:-7px;border-radius:21px;border:2px solid #4263eb55;animation:ring 2.4s ease-out infinite}
@keyframes ring{from{transform:scale(.9);opacity:1}to{transform:scale(1.5);opacity:0}}
.service-card{overflow:hidden;will-change:transform}
.service-card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),#4263eb1f,transparent 70%)}
.service-card:hover::after{opacity:1}
.service-card .number::after{content:"";display:block;height:2px;width:0;margin-top:8px;background:linear-gradient(90deg,var(--blue),var(--teal));transition:width .5s ease}
.service-card:hover .number::after{width:46px}
.chip{animation:pop .5s cubic-bezier(.3,1.5,.5,1) backwards;transition:transform .25s,border-color .25s,background .25s}
.chip:hover{transform:translateY(-3px) scale(1.05);border-color:#b9c4f5;background:#fff}
@keyframes pop{from{opacity:0;transform:scale(.6) translateY(8px)}}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.rv.in{opacity:1;transform:none}
.nav .cta{position:relative;overflow:hidden}
.nav .cta::after,.wa-btn::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,#ffffff55,transparent);transform:skewX(-20deg);animation:sheen 3.6s ease-in-out infinite}
.wa-btn{position:relative;overflow:hidden;animation:wapulse 2.4s ease-out infinite}
@keyframes sheen{0%,55%{left:-70%}100%{left:130%}}
@keyframes wapulse{0%{box-shadow:0 10px 26px #20bd6740,0 0 0 0 #20bd6755}100%{box-shadow:0 10px 26px #20bd6740,0 0 0 16px #20bd6700}}
.sw a{transition:transform .25s,background .25s,color .25s}.sw a:hover{transform:translateY(-3px);background:var(--ink);color:#fff}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.orbs i,.mt{animation:none}}

.mt span{display:inline-flex;align-items:center;gap:8px}.mt span img{width:16px;height:16px;display:block}


.path,.path-glow{vector-effect:non-scaling-stroke}
.path-glow{stroke-linejoin:round}

.tc{display:inline-block;width:3px;height:.85em;margin-left:5px;background:linear-gradient(#4263eb,#7857e8);border-radius:2px;vertical-align:-.04em;animation:cblink .8s step-end infinite}
@keyframes cblink{50%{opacity:0}}
