/* QSSols homepage, layout from the team lead's demo. Every class starts with qx- and every rule sits under .qx,
   so the page can live inside Elementor HTML widgets without clashing with the theme or other widgets. */
.qx{
  --navy:#2D3366; --purple:#574AE2; --pb:#7A6CFF; --lav:#C9C4F2; --mint:#2FD08C; --wa:#25D366; --amber:#FEBC2E;
  --bg:#0A0D22; --bg2:#0F1230; --sf:#151A3B; --sf2:#1C2149;
  --line:rgba(201,196,242,.14); --line2:rgba(201,196,242,.3);
  --ink:#F3F2FE; --ink2:#C8C5E6; --ink3:#9A96C0;
  --shadow:0 30px 70px -24px rgba(2,3,16,.7);
  --r:20px; --fd:"Sora",system-ui,sans-serif; --fb:"Manrope",system-ui,sans-serif;
  --wrap:1220px;
  position:relative;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow:hidden
}
@media (prefers-color-scheme:light){
  .qx{--bg:#F5F4FD;--bg2:#ECEAFA;--sf:#FFFFFF;--sf2:#F5F3FF;--line:rgba(45,51,102,.12);--line2:rgba(45,51,102,.26);--ink:#191C3B;--ink2:#3C4067;--ink3:#64678D;--shadow:0 30px 60px -26px rgba(45,51,102,.28)}
}
.qx *,.qx *::before,.qx *::after{box-sizing:border-box}
.qx h1,.qx h2,.qx h3,.qx h4,.qx h5,.qx p,.qx ul,.qx figure{margin:0;padding:0}
.qx ul{list-style:none}
.qx a{color:inherit;text-decoration:none}
.qx svg{display:block}
.qx button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
.qx :focus-visible{outline:2px solid var(--pb);outline-offset:3px;border-radius:10px}
.qx .qx-wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto;position:relative}
.qx .qx-h{font-family:var(--fd);letter-spacing:-.025em;line-height:1.08;color:var(--ink)}
.qx .qx-grad{background:linear-gradient(95deg,#9C90FF,var(--lav) 45%,#8E80FF 90%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:qx-sheen 8s ease-in-out infinite}
@keyframes qx-sheen{50%{background-position:100% 0}}
.qx .qx-kicker{display:inline-flex;align-items:center;gap:10px;font:800 12.5px/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--pb);margin-bottom:18px}
.qx .qx-kicker::before{content:"";width:28px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--purple),var(--pb))}
.qx-sec{padding:clamp(72px,9vw,120px) 0}
.qx .qx-head{max-width:760px;margin-bottom:clamp(38px,5vw,58px)}
.qx .qx-head.qx-center{margin-inline:auto;text-align:center}
.qx .qx-head h2{font-size:clamp(31px,4.4vw,50px);font-weight:800;margin-bottom:16px}
.qx .qx-head p{color:var(--ink2);font-size:clamp(16px,1.9vw,18.5px)}
.qx-alt{background:var(--bg2)}
.qx-alt::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--line2),transparent)}

/* reveal */
.qx .qx-rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.qx .qx-rv.qx-in{opacity:1;transform:none}
.qx .qx-d1{transition-delay:.08s}.qx .qx-d2{transition-delay:.16s}.qx .qx-d3{transition-delay:.24s}

/* buttons */
.qx .qx-btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:14px;border:1px solid transparent;font:700 16px/1.2 var(--fd);white-space:nowrap;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s,color .25s,background .25s}
.qx .qx-btn svg{width:18px;height:18px;flex:none;transition:transform .25s}
.qx .qx-btn:hover svg{transform:translateX(4px)}
.qx .qx-pri{background:linear-gradient(120deg,var(--purple),#6E5EF8);color:#fff;box-shadow:0 16px 36px -12px rgba(87,74,226,.75)}
.qx .qx-pri::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.38) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s}
.qx .qx-pri:hover{transform:translateY(-3px);box-shadow:0 24px 46px -14px rgba(87,74,226,.85)}
.qx .qx-pri:hover::after{transform:translateX(120%)}
.qx .qx-gho{border-color:var(--line2);color:var(--ink);background:color-mix(in srgb,var(--sf) 40%,transparent)}
.qx .qx-gho:hover{transform:translateY(-3px);border-color:var(--pb);color:var(--pb)}
.qx .qx-wab{background:var(--wa);color:#052e16;box-shadow:0 16px 36px -14px rgba(37,211,102,.6)}
.qx .qx-wab:hover{transform:translateY(-3px)}
.qx .qx-sm{padding:10px 18px;font-size:14px;border-radius:11px}

/* header */
.qx.qx-hdr{position:fixed;inset:0 0 auto;z-index:999;background:transparent;overflow:visible;transition:background .35s,border-color .35s,box-shadow .35s;border-bottom:1px solid transparent}
.admin-bar .qx.qx-hdr{top:32px}
.qx.qx-hdr.qx-scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom-color:var(--line);box-shadow:0 10px 40px -20px rgba(0,0,0,.6)}
.qx .qx-nav{display:flex;align-items:center;gap:18px;padding:14px 0}
.qx .qx-logo{display:flex;align-items:center;gap:11px;flex:none}
.qx .qx-logo b{display:block;font:800 17px/1 var(--fd);letter-spacing:-.01em}
.qx .qx-logo small{display:block;font:700 9.5px/1 var(--fb);letter-spacing:.24em;color:var(--ink3);margin-top:5px}
.qx .qx-links{display:flex;align-items:center;gap:2px;margin-left:auto}
.qx .qx-links>a,.qx .qx-dbtn{display:flex;align-items:center;gap:6px;padding:9px 13px;border-radius:10px;font:600 15px/1 var(--fb);color:var(--ink2);transition:.2s}
.qx .qx-links>a:hover,.qx .qx-dbtn:hover{color:var(--ink);background:var(--sf2)}
.qx .qx-dbtn svg{width:14px;height:14px;transition:transform .3s}
.qx .qx-drop{position:relative}
.qx .qx-drop:hover .qx-dbtn svg,.qx .qx-drop:focus-within .qx-dbtn svg{transform:rotate(180deg)}
.qx .qx-mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,10px);width:min(960px,92vw);padding:24px;border-radius:22px;background:color-mix(in srgb,var(--sf) 96%,transparent);border:1px solid var(--line2);box-shadow:var(--shadow);backdrop-filter:blur(18px);opacity:0;visibility:hidden;transition:.28s}
.qx .qx-mega::before{content:"";position:absolute;inset:-16px 0 auto;height:16px}
.qx .qx-drop:hover .qx-mega,.qx .qx-drop:focus-within .qx-mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.qx .qx-mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 24px;max-height:62vh;overflow:auto}
.qx .qx-mg h5{font:800 11.5px/1 var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--pb);margin:12px 0 8px}
.qx .qx-mg a{display:flex;align-items:center;gap:9px;padding:6px 9px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--ink2);transition:.2s}
.qx .qx-mg a i{width:6px;height:6px;border-radius:50%;background:var(--pb);opacity:.5;flex:none;transition:.2s}
.qx .qx-mg a:hover{color:var(--ink);background:var(--sf2);transform:translateX(3px)}
.qx .qx-mg a:hover i{opacity:1;transform:scale(1.4)}
.qx .qx-mfoot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.qx .qx-mfoot p{margin-right:auto;font-size:14px;font-weight:600;color:var(--ink3)}
.qx .qx-pmenu{width:min(440px,92vw);padding:12px}
.qx .qx-prow{display:flex;align-items:center;gap:14px;padding:12px;border-radius:14px;transition:.2s}
.qx .qx-prow:hover{background:var(--sf2);transform:translateX(3px)}
.qx .qx-prow b{display:block;font:700 15px/1.25 var(--fd)}
.qx .qx-prow small{display:block;font-size:13px;font-weight:600;color:var(--ink3);margin-top:2px}
.qx .qx-ico{width:44px;height:44px;border-radius:13px;flex:none;display:grid;place-items:center;background:linear-gradient(140deg,rgba(87,74,226,.3),rgba(87,74,226,.08));border:1px solid rgba(122,108,255,.35)}
.qx .qx-ico svg{width:22px;height:22px;stroke:var(--pb)}
.qx .qx-ctas{display:flex;gap:9px;flex:none;margin-left:6px}
.qx .qx-burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line2);place-items:center;margin-left:auto}
.qx .qx-burger span,.qx .qx-burger span::before,.qx .qx-burger span::after{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);position:relative;transition:.3s}
.qx .qx-burger span::before,.qx .qx-burger span::after{content:"";position:absolute;left:0}
.qx .qx-burger span::before{top:-6px}.qx .qx-burger span::after{top:6px}
.qx.qx-open .qx-burger span{background:transparent}
.qx.qx-open .qx-burger span::before{top:0;transform:rotate(45deg)}
.qx.qx-open .qx-burger span::after{top:0;transform:rotate(-45deg)}
.qx .qx-mob{position:fixed;inset:72px 0 0;background:var(--bg);padding:12px 20px 40px;overflow:auto;opacity:0;visibility:hidden;transition:.3s}
.qx.qx-open .qx-mob{opacity:1;visibility:visible}
.qx .qx-mob>a,.qx .qx-mob summary{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);font:700 19px/1.2 var(--fd);cursor:pointer;list-style:none}
.qx .qx-mob summary::-webkit-details-marker{display:none}
.qx .qx-mob details[open] summary{color:var(--pb)}
.qx .qx-mob summary svg{width:20px;height:20px;flex:none;transition:transform .3s}
.qx .qx-mob details[open] summary svg{transform:rotate(180deg)}
.qx .qx-mob details a{display:block;padding:9px 12px;font-weight:600;color:var(--ink2)}
.qx .qx-mob h5{font:800 11px/1 var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--pb);margin:14px 12px 4px}
.qx .qx-mob .qx-btn{margin-top:20px;width:100%;justify-content:center}

/* hero */
.qx.qx-hero{padding:calc(110px + 4vw) 0 clamp(70px,8vw,110px)}
.qx .qx-hbg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.qx .qx-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:qx-drift 18s ease-in-out infinite alternate}
.qx .qx-o1{width:560px;height:560px;background:#574AE2;top:-180px;right:-120px}
.qx .qx-o2{width:420px;height:420px;background:#2FD08C;opacity:.16;bottom:-160px;left:-120px;animation-delay:-6s}
.qx .qx-o3{width:360px;height:360px;background:#C9C4F2;opacity:.18;top:30%;left:38%;animation-delay:-11s}
@keyframes qx-drift{to{transform:translate(-60px,50px) scale(1.12)}}
.qx .qx-gridov{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000,transparent 75%)}
.qx .qx-hgrid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(40px,5vw,70px);align-items:center}
.qx .qx-badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;border:1px solid var(--line2);background:color-mix(in srgb,var(--sf) 70%,transparent);backdrop-filter:blur(8px);font-size:13.5px;font-weight:700;color:var(--ink2);margin-bottom:26px}
.qx .qx-dot{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 rgba(47,208,140,.6);animation:qx-ping 2s infinite}
@keyframes qx-ping{70%{box-shadow:0 0 0 9px rgba(47,208,140,0)}100%{box-shadow:0 0 0 0 rgba(47,208,140,0)}}
.qx.qx-hero h1{font-size:clamp(40px,5.8vw,68px);font-weight:800;margin-bottom:22px}
.qx .qx-rot{display:inline-grid;vertical-align:bottom}
.qx .qx-rot span{grid-area:1/1;white-space:nowrap;background:linear-gradient(95deg,#9C90FF,var(--lav) 55%,#8E80FF);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;transform:translateY(55%);filter:blur(6px);transition:opacity .55s,transform .7s cubic-bezier(.2,.8,.2,1),filter .55s}
.qx .qx-rot span.qx-on{opacity:1;transform:none;filter:none}
.qx .qx-rot span.qx-out{opacity:0;transform:translateY(-55%);filter:blur(6px)}
.qx .qx-sub{color:var(--ink2);font-size:clamp(16.5px,1.9vw,19px);max-width:550px;margin-bottom:34px}
.qx .qx-hctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px}
.qx .qx-points{display:flex;flex-wrap:wrap;gap:12px 24px}
.qx .qx-points li{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px;color:var(--ink2)}
.qx .qx-points svg{width:18px;height:18px;stroke:var(--mint);flex:none}
.qx .qx-hvis{position:relative;perspective:1200px}
.qx .qx-vp{position:relative;border-radius:24px;padding:1px;background:linear-gradient(140deg,rgba(122,108,255,.85),rgba(201,196,242,.1) 45%,rgba(47,208,140,.55));box-shadow:0 50px 110px -30px rgba(87,74,226,.6);transition:transform .2s ease-out}
.qx .qx-vpin{position:relative;border-radius:23px;overflow:hidden;background:linear-gradient(160deg,#1B1F47,#0E1130);aspect-ratio:16/11.2}
.qx .qx-vptop{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;gap:9px;padding:14px 16px;background:linear-gradient(180deg,rgba(5,6,18,.6),transparent)}
.qx .qx-vptop i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.qx .qx-vptop i:nth-child(2){background:#febc2e}.qx .qx-vptop i:nth-child(3){background:#28c840}
.qx .qx-vptop span{margin-left:6px;font:700 13px var(--fd);color:#e9e7fb}
.qx .qx-vptop em{margin-left:auto;font:800 10.5px/1 var(--fb);font-style:normal;letter-spacing:.12em;color:#fff;background:var(--purple);padding:6px 10px;border-radius:999px;display:flex;align-items:center;gap:6px}
.qx .qx-vptop em::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:qx-blink 1.2s infinite}
@keyframes qx-blink{50%{opacity:.25}}
.qx .qx-stage{position:absolute;inset:54px 20px 84px;display:flex;flex-direction:column;gap:10px;justify-content:flex-end}
.qx .qx-bub{max-width:80%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.45;color:#fff;opacity:0;transform:translateY(12px);animation:qx-bub 12s infinite}
.qx .qx-bub.qx-u{align-self:flex-end;background:var(--purple);border-bottom-right-radius:5px}
.qx .qx-bub.qx-b{align-self:flex-start;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-bottom-left-radius:5px}
.qx .qx-bub.qx-s{align-self:center;font:800 11.5px/1 var(--fb);letter-spacing:.06em;color:#7cf0bd;background:rgba(47,208,140,.12);border:1px dashed rgba(47,208,140,.5);border-radius:999px;padding:8px 14px}
.qx .qx-bub:nth-child(2){animation-delay:1.6s}.qx .qx-bub:nth-child(3){animation-delay:3.4s}.qx .qx-bub:nth-child(4){animation-delay:5s}
@keyframes qx-bub{0%{opacity:0;transform:translateY(12px)}6%,82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-6px)}}
.qx .qx-vpbot{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:14px 16px 16px;background:linear-gradient(0deg,rgba(5,6,18,.85),transparent)}
.qx .qx-bar{height:4px;border-radius:4px;background:rgba(255,255,255,.14);overflow:hidden}
.qx .qx-bar i{display:block;height:100%;width:100%;transform-origin:0 50%;background:linear-gradient(90deg,var(--purple),var(--pb),var(--mint));animation:qx-prog 12s linear infinite}
@keyframes qx-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.qx .qx-meta{display:flex;align-items:center;gap:12px;margin-top:11px;color:#fff}
.qx .qx-play{width:36px;height:36px;border-radius:50%;background:#fff;color:#141736;display:grid;place-items:center;flex:none}
.qx .qx-play svg{width:15px;height:15px}
.qx .qx-cap{font:700 13.5px/1.3 var(--fd)}
.qx .qx-cap small{display:block;font:600 11.5px var(--fb);color:#b7b3dc}
.qx .qx-time{margin-left:auto;font:700 12px var(--fb);color:#b7b3dc}
.qx .qx-paused .qx-bub,.qx .qx-paused .qx-bar i{animation-play-state:paused}
.qx .qx-chip{position:absolute;z-index:5;display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:14px;background:color-mix(in srgb,var(--sf) 88%,transparent);border:1px solid var(--line2);backdrop-filter:blur(10px);box-shadow:var(--shadow);font-size:13.5px;font-weight:700;color:var(--ink);animation:qx-float 6s ease-in-out infinite}
.qx .qx-chip svg{width:18px;height:18px;stroke:var(--mint)}
.qx .qx-c1{top:-22px;left:-14px}.qx .qx-c2{top:17%;right:-26px;animation-delay:-2s}.qx .qx-c3{bottom:-22px;right:36px;animation-delay:-4s}
@keyframes qx-float{50%{transform:translateY(-10px)}}

/* marquee */
.qx.qx-band{background:var(--bg2);padding:20px 0;border-block:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.qx .qx-mq{display:flex;width:max-content;animation:qx-x 40s linear infinite}
.qx .qx-mq+.qx-mq{margin-top:12px;animation-direction:reverse;animation-duration:48s}
.qx.qx-band:hover .qx-mq{animation-play-state:paused}
.qx .qx-mq span{display:flex;align-items:center;gap:28px;padding-right:28px;font:700 16px/1 var(--fd);color:var(--ink3);white-space:nowrap}
.qx .qx-mq span::after{content:"";width:7px;height:7px;border-radius:2px;transform:rotate(45deg);background:var(--pb)}
.qx .qx-mq+.qx-mq span{color:var(--ink2)}
@keyframes qx-x{to{transform:translateX(-50%)}}

/* services */
.qx .qx-group{margin-bottom:56px}
.qx .qx-group:last-child{margin-bottom:0}
.qx .qx-ghead{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.qx .qx-gico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:none;background:linear-gradient(140deg,var(--purple),#3F3496);box-shadow:0 12px 26px -10px rgba(87,74,226,.8)}
.qx .qx-gico svg{width:23px;height:23px;stroke:#fff}
.qx .qx-ghead h3{font-size:24px;font-weight:800}
.qx .qx-ghead .qx-count{font:800 12px/1 var(--fb);letter-spacing:.08em;color:var(--pb);padding:6px 10px;border-radius:999px;background:rgba(87,74,226,.14);border:1px solid rgba(122,108,255,.32)}
.qx .qx-ghead p{width:100%;color:var(--ink3);font-size:15px;font-weight:600}
.qx .qx-sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.qx .qx-sgrid.qx-n4{grid-template-columns:repeat(4,1fr)}
.qx .qx-sgrid.qx-n2{grid-template-columns:repeat(2,1fr)}
.qx .qx-svc{position:relative;display:block;padding:24px 24px 22px;border-radius:18px;background:var(--sf);border:1px solid var(--line);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s}
.qx .qx-svc::before{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%),rgba(122,108,255,.2),transparent 60%);opacity:0;transition:opacity .35s}
.qx .qx-svc:hover{transform:translateY(-6px);border-color:rgba(122,108,255,.65);box-shadow:var(--shadow)}
.qx .qx-svc:hover::before{opacity:1}
.qx .qx-svc .qx-n{position:relative;font:800 12px/1 var(--fb);letter-spacing:.1em;color:var(--ink3)}
.qx .qx-svc h4{position:relative;font:700 18px/1.3 var(--fd);margin:12px 0 7px;padding-right:34px}
.qx .qx-svc p{position:relative;color:var(--ink2);font-size:14.5px;line-height:1.55}
.qx .qx-go{position:absolute;top:20px;right:20px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--sf2);border:1px solid var(--line);transition:.3s}
.qx .qx-go svg{width:15px;height:15px;stroke:var(--pb)}
.qx .qx-svc:hover .qx-go{background:var(--purple);border-color:var(--purple);transform:rotate(-45deg)}
.qx .qx-svc:hover .qx-go svg{stroke:#fff}

/* workflow */
.qx .qx-flow{position:relative}
.qx .qx-flow::before,.qx .qx-fill{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:2px;border-radius:2px;background:var(--line2)}
.qx .qx-fill{background:linear-gradient(180deg,var(--purple),var(--pb),var(--mint));transform-origin:top;transform:scaleY(var(--p,0));z-index:1}
.qx .qx-step{position:relative;display:grid;grid-template-columns:56px 1fr 310px;gap:28px;padding:28px 0;align-items:start}
.qx .qx-step+.qx-step{border-top:1px dashed var(--line)}
.qx .qx-num{position:relative;z-index:2;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font:800 19px var(--fd);color:#fff;background:linear-gradient(140deg,var(--purple),#6E5EF8);box-shadow:0 0 0 6px var(--bg2),0 14px 30px -10px rgba(87,74,226,.8)}
.qx .qx-step h3{font-size:22px;font-weight:800;margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.qx .qx-time2{font:800 12.5px/1 var(--fb);letter-spacing:.06em;color:var(--pb);padding:6px 11px;border-radius:999px;background:rgba(87,74,226,.14);border:1px solid rgba(122,108,255,.35)}
.qx .qx-step p{color:var(--ink2);font-size:15.5px;max-width:580px}
.qx .qx-you{padding:18px 20px;border-radius:16px;background:var(--sf);border:1px solid var(--line);transition:border-color .3s,transform .3s}
.qx .qx-step:hover .qx-you{border-color:rgba(122,108,255,.5);transform:translateX(-4px)}
.qx .qx-you b{display:block;font:800 11.5px/1 var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:10px}
.qx .qx-you li{display:flex;gap:9px;font-size:14px;font-weight:600;color:var(--ink2);padding:3px 0}
.qx .qx-you svg{width:17px;height:17px;stroke:var(--mint);flex:none;margin-top:2px}

/* cards */
.qx .qx-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.qx .qx-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.qx .qx-card{position:relative;padding:30px 26px;border-radius:var(--r);background:var(--sf);border:1px solid var(--line);overflow:hidden;transition:transform .35s,border-color .35s,box-shadow .35s}
.qx .qx-card::after{content:"";position:absolute;inset:auto -40% -60% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(122,108,255,.28),transparent 70%);opacity:0;transition:opacity .4s}
.qx .qx-card:hover{transform:translateY(-7px);border-color:var(--line2);box-shadow:var(--shadow)}
.qx .qx-card:hover::after{opacity:1}
.qx .qx-card h3{font-size:20px;font-weight:700;margin:20px 0 10px}
.qx .qx-card p{color:var(--ink2);font-size:15px}
.qx .qx-ib{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(140deg,rgba(87,74,226,.3),rgba(87,74,226,.08));border:1px solid rgba(122,108,255,.35);transition:transform .4s}
.qx .qx-ib svg{width:26px;height:26px;stroke:var(--pb)}
.qx .qx-card:hover .qx-ib{transform:rotate(-8deg) scale(1.08)}

/* case studies */
.qx .qx-case{padding:0;display:flex;flex-direction:column}
.qx .qx-thumb{position:relative;height:210px;overflow:hidden;background:radial-gradient(120% 100% at 15% 0%,#2f2a7a,#11143a);border-bottom:1px solid var(--line)}
.qx .qx-thumb em{position:absolute;left:16px;bottom:14px;z-index:2;font:800 10.5px/1 var(--fb);font-style:normal;letter-spacing:.12em;color:#fff;background:rgba(5,6,18,.6);backdrop-filter:blur(6px);padding:7px 10px;border-radius:999px}
.qx .qx-case .qx-cb{padding:24px 26px 28px}
.qx .qx-case h3{margin:0 0 10px;font-size:20px}
.qx .qx-sc-chat{position:absolute;inset:24px 26px 44px;display:flex;flex-direction:column;gap:9px}
.qx .qx-sc-chat i{height:24px;border-radius:12px;background:rgba(255,255,255,.14);animation:qx-pop 6s infinite}
.qx .qx-sc-chat i:nth-child(odd){width:58%;align-self:flex-end;background:var(--purple)}
.qx .qx-sc-chat i:nth-child(even){width:72%}
.qx .qx-sc-chat i:nth-child(2){animation-delay:.6s}.qx .qx-sc-chat i:nth-child(3){animation-delay:1.2s}.qx .qx-sc-chat i:nth-child(4){animation-delay:1.8s;background:rgba(47,208,140,.45)}
@keyframes qx-pop{0%,8%{opacity:0;transform:translateY(8px)}16%,86%{opacity:1;transform:none}100%{opacity:0}}
.qx .qx-sc-web{position:absolute;inset:26px 30px 46px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);overflow:hidden}
.qx .qx-sc-web::before{content:"";display:block;height:18px;background:rgba(255,255,255,.08)}
.qx .qx-sc-web b{position:absolute;left:16px;top:34px;width:52%;height:14px;border-radius:6px;background:rgba(255,255,255,.5)}
.qx .qx-sc-web s{position:absolute;left:16px;top:56px;width:38%;height:9px;border-radius:6px;background:rgba(255,255,255,.22)}
.qx .qx-sc-web u{position:absolute;left:16px;top:80px;width:96px;height:28px;border-radius:9px;background:var(--mint);animation:qx-glow 2.4s infinite}
.qx .qx-sc-web q{position:absolute;right:16px;top:34px;width:32%;height:86px;border-radius:12px;background:linear-gradient(140deg,var(--purple),#3de0ff)}
@keyframes qx-glow{50%{box-shadow:0 0 0 8px rgba(47,208,140,0)}0%{box-shadow:0 0 0 0 rgba(47,208,140,.5)}}
.qx .qx-sc-bars{position:absolute;inset:30px 30px 48px;display:flex;align-items:flex-end;gap:10px}
.qx .qx-sc-bars i{flex:1;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#ff8a6b,rgba(255,138,107,.15));transform-origin:bottom;animation:qx-rise 4s cubic-bezier(.2,.8,.2,1) infinite}
.qx .qx-sc-bars i:nth-child(1){height:88%}.qx .qx-sc-bars i:nth-child(2){height:70%;animation-delay:.12s}.qx .qx-sc-bars i:nth-child(3){height:52%;animation-delay:.24s}.qx .qx-sc-bars i:nth-child(4){height:34%;animation-delay:.36s}.qx .qx-sc-bars i:nth-child(5){height:18%;animation-delay:.48s;background:linear-gradient(180deg,var(--mint),rgba(47,208,140,.15))}
@keyframes qx-rise{0%{transform:scaleY(0)}35%,100%{transform:scaleY(1)}}
.qx .qx-more{margin-top:34px}

/* faq */
.qx .qx-faqs{max-width:880px;margin:0 auto;display:grid;gap:12px}
.qx .qx-faq{border-radius:18px;background:var(--sf);border:1px solid var(--line);overflow:hidden;transition:border-color .3s}
.qx .qx-faq[open]{border-color:rgba(122,108,255,.55)}
.qx .qx-faq summary{display:flex;align-items:center;gap:18px;padding:22px 24px;cursor:pointer;list-style:none;font:700 clamp(16.5px,1.8vw,19px)/1.35 var(--fd);color:var(--ink)}
.qx .qx-faq summary::-webkit-details-marker{display:none}
.qx .qx-pm{margin-left:auto;flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line2);position:relative;transition:.35s}
.qx .qx-pm::before,.qx .qx-pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--ink);transition:.35s}
.qx .qx-pm::after{transform:rotate(90deg)}
.qx .qx-faq[open] .qx-pm{background:var(--purple);border-color:var(--purple)}
.qx .qx-faq[open] .qx-pm::before,.qx .qx-faq[open] .qx-pm::after{background:#fff}
.qx .qx-faq[open] .qx-pm::after{transform:rotate(0)}
.qx .qx-faq p{padding:0 24px 22px;color:var(--ink2);font-size:16px}

/* products */
.qx .qx-prod .qx-dom{display:inline-block;margin:4px 0 12px;font:800 12.5px/1 var(--fb);letter-spacing:.04em;color:var(--pb);padding:6px 11px;border-radius:999px;background:rgba(87,74,226,.13);border:1px solid rgba(122,108,255,.3)}
.qx .qx-prod h3{margin-bottom:4px}
.qx .qx-prod{display:flex;flex-direction:column;align-items:flex-start}
.qx .qx-pact{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:auto;padding-top:22px}
.qx .qx-psite{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:14px;color:var(--pb)}
.qx .qx-psite svg{width:15px;height:15px}
.qx .qx-psite:hover{text-decoration:underline}

/* cta band */
.qx .qx-band2{position:relative;overflow:hidden;text-align:center;border-radius:30px;padding:clamp(48px,7vw,84px) clamp(24px,5vw,60px);background:linear-gradient(135deg,#3B2FB5,#574AE2 45%,#2D3366);color:#fff;box-shadow:0 40px 100px -40px rgba(87,74,226,.9)}
.qx .qx-band2::before{content:"";position:absolute;inset:-60%;background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.18),transparent 30%,rgba(47,208,140,.25),transparent 60%);animation:qx-spin 16s linear infinite}
.qx .qx-band2::after{content:"";position:absolute;inset:1px;border-radius:29px;background:linear-gradient(135deg,#3B2FB5,#574AE2 45%,#2D3366)}
.qx .qx-band2>*{position:relative;z-index:1}
.qx .qx-band2 h2{color:#fff;font-size:clamp(32px,4.6vw,54px);font-weight:800;margin-bottom:16px}
.qx .qx-band2 p{max-width:640px;margin:0 auto 32px;color:#dedbff;font-size:clamp(16px,1.9vw,19px)}
.qx .qx-band2 .qx-hctas{justify-content:center;margin:0}
.qx .qx-band2 .qx-pri{background:#fff;color:#2D2A7A;box-shadow:0 16px 36px -12px rgba(0,0,0,.4)}
@keyframes qx-spin{to{transform:rotate(360deg)}}

/* footer */
.qx.qx-foot{padding:80px 0 34px;border-top:1px solid var(--line)}
.qx .qx-fgrid{display:grid;grid-template-columns:1.5fr 1fr 1.2fr 1.2fr;gap:40px}
.qx .qx-fgrid>div>p{color:var(--ink2);font-size:15px;margin-top:16px;max-width:340px}
.qx.qx-foot h4{font:800 12px/1 var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:16px}
.qx.qx-foot li{margin-bottom:10px}
.qx.qx-foot li a{font-size:15px;font-weight:600;color:var(--ink2);transition:color .2s}
.qx.qx-foot li a:hover{color:var(--pb)}
.qx .qx-fbot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--ink3)}
.qx .qx-fbot div{display:flex;gap:20px}
.qx .qx-fbot a:hover{color:var(--pb)}
.qx .qx-wa{position:fixed;right:22px;bottom:22px;z-index:998;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--wa);box-shadow:0 14px 34px -10px rgba(37,211,102,.75);transition:transform .25s}
.qx .qx-wa:hover{transform:scale(1.08)}
.qx .qx-wa svg{width:28px;height:28px;fill:#fff}

/* responsive */
@media (max-width:1100px){
  .qx .qx-links,.qx .qx-ctas{display:none}
  .qx .qx-burger{display:grid}
  .qx .qx-hgrid{grid-template-columns:1fr}
  .qx .qx-hvis{max-width:620px;margin:20px auto 0;width:100%}
  .qx .qx-sgrid,.qx .qx-sgrid.qx-n4,.qx .qx-g3{grid-template-columns:1fr 1fr}
  .qx .qx-g4{grid-template-columns:1fr 1fr}
  .qx .qx-step{grid-template-columns:56px 1fr}
  .qx .qx-you{grid-column:2}
  .qx .qx-fgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .qx{font-size:16px}
  .qx .qx-wrap{width:calc(100% - 32px)}
  .qx .qx-sgrid,.qx .qx-sgrid.qx-n4,.qx .qx-sgrid.qx-n2,.qx .qx-g3,.qx .qx-g4,.qx .qx-fgrid{grid-template-columns:1fr}
  .qx .qx-c2{display:none}
  .qx .qx-vptop span{font-size:12px}
  .qx .qx-step{grid-template-columns:44px 1fr;gap:16px}
  .qx .qx-num{width:44px;height:44px;font-size:16px}
  .qx .qx-flow::before,.qx .qx-fill{left:21px}
  .qx .qx-chip{font-size:12px;padding:8px 11px}
  .qx .qx-c1{left:6px}.qx .qx-c2{right:-4px}.qx .qx-c3{left:14px}
  .qx .qx-vpin{aspect-ratio:auto;height:380px}
  .qx .qx-hctas .qx-btn{flex:1;justify-content:center}
  .qx .qx-band2 .qx-hctas .qx-btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  .qx *,.qx *::before,.qx *::after{animation:none!important;transition:none!important}
  .qx .qx-rv{opacity:1;transform:none}
  .qx .qx-bub{opacity:1;transform:none}
  .qx .qx-bar i{transform:scaleX(.4)}
}
@media (prefers-color-scheme:light){
  .qx .qx-grad,.qx .qx-rot span{background-image:linear-gradient(95deg,#4B3BD8,#7A6CFF 55%,#4B3BD8)}
}

/* ---- custom site additions: real logo, globe hero, skip link */
.qx-skip{position:absolute;left:12px;top:-60px;z-index:2000;padding:10px 16px;border-radius:10px;background:#574AE2;color:#fff;font:700 14px/1 Manrope,system-ui,sans-serif;text-decoration:none}
.qx-skip:focus{top:12px}
.qx .qx-logo{line-height:0}
.qx .qx-logo img{display:block;height:54px;width:auto}
.qx .qx-flogo img{height:72px}
.qx .qx-gvis{display:flex;align-items:center;justify-content:center}
.qx .qx-globe-box{position:relative;width:100%;max-width:600px;aspect-ratio:1/1;margin:-30px auto -40px}
.qx .qx-globe{display:block;width:100%;height:100%}
.qx .qx-gcap{position:absolute;left:50%;bottom:9%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;white-space:nowrap;padding:8px 14px;border-radius:999px;font:700 12.5px/1 var(--fb);letter-spacing:.04em;color:var(--ink2);background:color-mix(in srgb,var(--sf) 70%,transparent);border:1px solid var(--line);backdrop-filter:blur(8px)}
.qx .qx-gvis .qx-c1{top:6%;left:0}.qx .qx-gvis .qx-c2{top:40%;right:-10px}.qx .qx-gvis .qx-c3{bottom:20%;left:2%;right:auto}
@media (max-width:980px){.qx .qx-globe-box{max-width:520px;margin:-10px auto -20px}}
@media (max-width:640px){.qx .qx-logo img{height:44px}.qx .qx-gvis .qx-c3{bottom:16%}.qx .qx-gcap{font-size:11.5px;bottom:5%}}
html{scroll-behavior:smooth}
body{margin:0;background:#0A0D22;-webkit-font-smoothing:antialiased}
@media (prefers-color-scheme:light){body{background:#F5F4FD}}
@media (max-width:480px){.qx.qx-hero .qx-hctas{flex-direction:column;align-items:stretch}.qx.qx-hero .qx-hctas .qx-btn{flex:none;width:100%;justify-content:center;white-space:normal}}
/* ---- smooth animation: soft glows are painted as radial gradients instead of live blur filters,
   and moving glass chips drop the backdrop blur, so the GPU only moves layers instead of re-blurring them each frame */
.qx .qx-orb{filter:none;opacity:1;animation:none}
.qx .qx-o1{width:900px;height:900px;top:-350px;right:-300px;background:radial-gradient(closest-side,rgba(87,74,226,.55),rgba(87,74,226,.18) 55%,rgba(87,74,226,0))}
.qx .qx-o2{width:720px;height:720px;bottom:-310px;left:-270px;background:radial-gradient(closest-side,rgba(47,208,140,.16),rgba(47,208,140,.05) 55%,rgba(47,208,140,0))}
.qx .qx-o3{width:620px;height:620px;top:20%;left:30%;background:radial-gradient(closest-side,rgba(201,196,242,.17),rgba(201,196,242,.05) 55%,rgba(201,196,242,0))}
.qx .qx-chip,.qx .qx-badge,.qx .qx-gcap,.qx .qx-thumb em{backdrop-filter:none;-webkit-backdrop-filter:none}
.qx .qx-chip{background:color-mix(in srgb,var(--sf) 95%,transparent);will-change:transform}
.qx .qx-gcap{background:color-mix(in srgb,var(--sf) 88%,transparent)}
.qx .qx-globe{will-change:contents}
.qx .qx-dot{position:relative;box-shadow:none;animation:none}
.qx .qx-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--mint);animation:qx-ring 2s ease-out infinite;will-change:transform,opacity}
@keyframes qx-ring{0%{transform:scale(1);opacity:.6}70%,100%{transform:scale(2.6);opacity:0}}
.qx .qx-grad{animation:none}
.qx .qx-hbg{contain:strict}
.qx .qx-rot span{will-change:transform,opacity}
.qx.qx-band{position:relative;-webkit-mask-image:none;mask-image:none;overflow:hidden}
.qx.qx-band::before,.qx.qx-band::after{content:"";position:absolute;top:0;bottom:0;width:9%;z-index:2;pointer-events:none}
.qx.qx-band::before{left:0;background:linear-gradient(90deg,var(--bg2),transparent)}
.qx.qx-band::after{right:0;background:linear-gradient(270deg,var(--bg2),transparent)}
.qx .qx-mq{will-change:transform}
