/* animazioni home */
.js-fx .h1w{display:inline-block;opacity:0;transform:translateY(.5em);animation:hw .7s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--w)*70ms + 150ms)}
@keyframes hw{to{opacity:1;transform:none}}
.numbers{padding-block:clamp(36px,6vw,64px);border-bottom:1px solid var(--line)}
.numbers .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.numbers b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.03em;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.numbers .n>span{display:block;margin-top:10px;color:var(--muted);font-size:.95rem}
.js-fx .numbers .n{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i)*120ms)}
.js-fx .numbers.in .n{opacity:1;transform:none}
@media(max-width:700px){.numbers .grid{grid-template-columns:1fr 1fr;row-gap:32px}}
.js-fx .steps li{position:relative;border-top-color:var(--line);opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i)*180ms)}
.js-fx .steps li::after{content:"";position:absolute;left:0;top:-3px;height:3px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i)*180ms + 200ms)}
.js-fx .steps.in li{opacity:1;transform:none}
.js-fx .steps.in li::after{transform:scaleX(1)}
.js-fx .steps li::before{display:inline-block;transition:transform .5s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(var(--i)*180ms + 400ms);transform:scale(.4)}
.js-fx .steps.in li::before{transform:scale(1.25);transform-origin:0 50%}
.js-fx .compare tbody tr{opacity:0;transition:opacity .6s ease;transition-delay:calc(var(--i)*140ms)}
.js-fx .compare.rows-in tbody tr{opacity:1}
.compare tbody tr td:last-child{position:relative}
.compare.rows-in tbody tr td:last-child{animation:cmpglow 1.6s ease both;animation-delay:calc(var(--i)*140ms + 500ms)}
@keyframes cmpglow{0%{background:rgba(56,189,248,0)}35%{background:rgba(56,189,248,.22)}100%{background:rgba(56,189,248,0)}}
.pills{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.pill{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border:1px solid var(--line);border-radius:999px;font-family:var(--display);font-weight:700;background:#fff;box-shadow:0 12px 24px -18px rgba(11,79,214,.5);animation:pfloat 5s ease-in-out infinite;animation-delay:calc(var(--i)*-1.1s)}
.pill i{width:10px;height:10px;border-radius:50%;background:#12a4f0;box-shadow:0 0 0 0 rgba(18,164,240,.5);animation:pdot 2s ease-out infinite;animation-delay:calc(var(--i)*-.5s)}
.js-fx .pill{opacity:0;transform:translateY(16px) scale(.9);transition:opacity .5s ease,transform .5s cubic-bezier(.3,1.4,.5,1);transition-delay:calc(var(--i)*130ms);animation-play-state:paused}
.js-fx .pills.in .pill{opacity:1;transform:none;animation-play-state:running}
@keyframes pfloat{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes pdot{0%{box-shadow:0 0 0 0 rgba(18,164,240,.55)}80%,100%{box-shadow:0 0 0 12px rgba(18,164,240,0)}}
.final .box{background-size:200% 200%;animation:gshift 12s ease-in-out infinite;position:relative;overflow:hidden}
@keyframes gshift{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.final .box::before,.final .box::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none;animation:dropup 9s ease-in infinite}
.final .box::before{width:160px;height:160px;right:8%;bottom:-80px}
.final .box::after{width:90px;height:90px;right:26%;bottom:-50px;animation-delay:-4s}
@keyframes dropup{0%{transform:translateY(0) scale(1);opacity:.9}100%{transform:translateY(-320px) scale(1.4);opacity:0}}
.btn{position:relative;overflow:hidden}
.rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);transform:scale(0);animation:rip .6s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(4);opacity:0}}
.hero .ph{transform-style:preserve-3d}
@media(prefers-reduced-motion:reduce){.js-fx .h1w,.js-fx .numbers .n,.js-fx .steps li,.js-fx .compare tbody tr,.js-fx .pill{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}.final .box,.final .box::before,.final .box::after,.pill,.pill i{animation:none}.js-fx .steps li::after{transform:scaleX(1);transition:none}}
.hero h1 em .h1w{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}
