/* Orbit public website. Colours come from --p / --p2 (set by brand_head()). */
:root{--p:#4F46E5;--p2:#7C3AED;--grad:linear-gradient(135deg,var(--p),var(--p2));
--pt:color-mix(in srgb,var(--p) 9%,#fff);--pt2:color-mix(in srgb,var(--p) 16%,#fff);--p3:color-mix(in srgb,var(--p) 38%,#fff);--pd:color-mix(in srgb,var(--p) 70%,#0f172a);
--ink:#0f172a;--mut:#5b6478;--line:#e5e7f2;--bg:#fff;--alt:#f6f7fd;--ok:#16a34a;--no:#dc2626;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--gap:20px;--sec:clamp(56px,8vw,96px);--r:18px;
--head:'Sora','Plus Jakarta Sans',system-ui,sans-serif;--body:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--nav-h:68px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%}
body.lp{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--body);overflow-x:hidden;color-scheme:light}
img,svg{max-width:100%}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p,ul,figure,blockquote{margin:0}ul{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--p);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:var(--s4);top:-60px;background:#fff;color:var(--ink);padding:var(--s2) var(--s4);border-radius:8px;z-index:300;font-weight:700}.skip:focus{top:var(--s3)}
.wrap{width:min(1180px,100% - 32px);margin:0 auto}.wrap.narrow{width:min(800px,100% - 32px)}
.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.s1{stop-color:var(--p)}.s2{stop-color:var(--p2)}
.f-w{fill:#fff}.f-t{fill:var(--pt)}.f-t2{fill:var(--pt2)}.f-a{fill:#fafbff}.f-p{fill:var(--p)}.f-p2{fill:var(--p2)}.f-p3{fill:var(--p3)}.f-pd{fill:var(--pd)}.f-g{fill:#10b981}.o6{opacity:.6}
.sp{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:200}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;padding:10px 22px;border-radius:12px;border:2px solid transparent;background:var(--grad);color:#fff;font:700 15px/1.2 var(--body);cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;box-shadow:0 8px 22px -8px var(--p)}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -8px var(--p)}.btn:active{transform:none}
.btn.ghost{background:#fff;color:var(--pd);border-color:var(--line);box-shadow:none}.btn.ghost:hover{border-color:var(--p);background:var(--pt)}
.btn.light{background:#fff;color:var(--pd);box-shadow:none}.btn.outline{background:transparent;border-color:rgba(255,255,255,.55);box-shadow:none}.btn.outline:hover{background:rgba(255,255,255,.14)}
.btn.sm{min-height:38px;padding:7px 16px;font-size:14px}.btn.big{min-height:52px;padding:13px 28px;font-size:16px}.btn.block{display:flex;width:100%}.btn[disabled]{opacity:.65;cursor:wait}
.pill{display:inline-flex;align-items:center;gap:var(--s2);padding:6px 14px;border-radius:99px;background:var(--pt2);color:var(--pd);font-weight:700;font-size:13px;margin-bottom:var(--s4)}.pill.dark{background:rgba(255,255,255,.18);color:#fff}
.dot{width:8px;height:8px;border-radius:50%;background:#22c55e;animation:pulse 2s infinite}
/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;transition:background .3s,box-shadow .3s}
.nav.sc,.nav.open{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 6px 26px rgba(15,23,42,.08)}
.nav-in{display:flex;align-items:center;gap:var(--s5)}
.brand{display:flex;align-items:center;gap:10px;font:800 20px/1 var(--head);margin-right:auto;min-width:0}.bn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logo{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:11px;background:var(--grad);color:#fff}.logo.has-img{background:none}.logo .i{width:20px;height:20px}
.links{display:flex;gap:2px}.links a:not(.btn){padding:8px 12px;border-radius:10px;font-weight:600;font-size:15px;color:var(--mut);transition:color .2s,background .2s}.links a:not(.btn):hover{color:var(--pd);background:var(--pt)}
.nav-d{display:flex;gap:var(--s2)}.nav-m{display:none}
.burger{display:none;width:44px;height:44px;border:0;background:none;border-radius:12px;cursor:pointer;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s,opacity .2s}.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
.nav.open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav.open .burger span:nth-child(2){opacity:0}.nav.open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
/* sections */
.sec{padding:var(--sec) 0}.sec.alt{background:var(--alt)}
.head{text-align:center;max-width:720px;margin:0 auto var(--s7)}.head h2,.spot h2,.cta h2{font:800 clamp(26px,4vw,38px)/1.2 var(--head);letter-spacing:-.01em}.head p{margin-top:var(--s3);color:var(--mut);font-size:17px}
.muted{color:var(--mut)}.note{text-align:center;color:var(--mut);font-size:14px;margin-top:var(--s5)}
/* hero */
.hero{position:relative;overflow:hidden;padding:calc(var(--nav-h) + var(--s7)) 0 var(--s8);background:linear-gradient(180deg,var(--pt),#fff)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.45;pointer-events:none;animation:drift 14s ease-in-out infinite alternate}.b1{width:380px;height:380px;background:var(--p3);top:-120px;left:-100px}.b2{width:340px;height:340px;background:var(--p2);opacity:.2;right:-80px;top:80px;animation-delay:-5s}
.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:var(--s7);align-items:center}
.hero h1{font:800 clamp(32px,5.4vw,56px)/1.1 var(--head);letter-spacing:-.02em;margin-bottom:var(--s4)}.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(16px,2vw,19px);color:var(--mut);max-width:560px;margin-bottom:var(--s5)}.lead b{color:var(--ink)}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s3)}.trust{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s5);color:var(--mut);font-size:14px;font-weight:600}
.trust li::before,.ticks li::before{content:"";display:inline-block;width:18px;height:18px;margin-right:8px;vertical-align:-4px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%2322c55e'/%3E%3Cpath d='M7 12.500l3.200 3.200L17 9' fill='none' stroke='%23fff' stroke-width='2.500' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.hero-art{position:relative}.hsvg{width:100%;height:auto;overflow:visible;display:block}
.tx{font:800 22px var(--head)}.tl{font:700 12px var(--body)}.ts{font:500 11px var(--body)}text.ts:not([fill]){fill:#64748b}
.bars rect{transform-box:fill-box;transform-origin:bottom;animation:grow 1.2s cubic-bezier(.2,.8,.2,1) both}.bars rect:nth-child(2){animation-delay:.1s}.bars rect:nth-child(3){animation-delay:.2s}.bars rect:nth-child(4){animation-delay:.3s}.bars rect:nth-child(5){animation-delay:.4s}.bars rect:nth-child(6){animation-delay:.5s}
.ln{stroke-dasharray:400;stroke-dashoffset:400;animation:draw 2s .5s ease forwards}
.pipe rect{transform-box:fill-box;transform-origin:left;animation:growx 1s both}.pipe rect:nth-child(2){animation-delay:.15s}.pipe rect:nth-child(3){animation-delay:.3s}.pipe rect:nth-child(4){animation-delay:.45s}
.fl1{animation:float 5s ease-in-out infinite}.fl2{animation:float 6s ease-in-out -2s infinite}.fl3{animation:float 5.500s ease-in-out -1s infinite}
.pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2s infinite}
/* stats */
.stats{padding:var(--s7) 0;background:var(--ink);color:#fff}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);text-align:center}
.stat-grid b{display:block;font:800 clamp(28px,4vw,42px)/1.1 var(--head);background:linear-gradient(135deg,#fff,var(--p3));-webkit-background-clip:text;background-clip:text;color:transparent}.stat-grid span{color:#b6bdd0;font-size:14px}
/* features */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.fc{padding:var(--s5);background:#fff;border:1px solid var(--line);border-radius:var(--r);transition:transform .25s,box-shadow .25s,border-color .25s}.fc:hover{transform:translateY(-4px);box-shadow:0 18px 36px -16px color-mix(in srgb,var(--p) 40%,transparent);border-color:var(--p3)}
.fi{width:56px;height:56px;display:grid;place-items:center;border-radius:15px;background:var(--pt2);color:var(--p);margin-bottom:var(--s4)}.fi svg{width:34px;height:34px;overflow:visible}
.fc h3{font:700 18px/1.3 var(--head);margin-bottom:var(--s2)}.fc p{color:var(--mut);font-size:15px}
.fi svg *{transform-box:fill-box}
.a-slide{animation:slide 3s ease-in-out infinite}.a-pulse{transform-origin:center;animation:pulse 2.200s ease-in-out infinite}.a-scan{animation:scan 2.600s ease-in-out infinite}.a-spin{transform-origin:0% 100%;animation:spin 6s linear infinite}
.a-draw{stroke-dasharray:20;animation:tick 2.800s ease-in-out infinite}.a-rise{animation:rise 2.400s ease-in-out infinite}.a-dot{animation:dots 1.400s infinite}.a-dot.d2{animation-delay:.2s}.a-dot.d3{animation-delay:.4s}
.a-grow{transform-origin:bottom;animation:grow 2.400s ease-in-out infinite alternate}.a-grow.g2{animation-delay:.3s}.a-grow.g3{animation-delay:.6s}.a-drop{animation:drop 2.200s ease-in infinite}.a-flow{animation:flow 2.400s ease-in-out infinite}
/* how */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.sline{position:absolute;overflow:visible}.sline path{fill:none;stroke:var(--p3);stroke-width:3;stroke-dasharray:6 8;stroke-linecap:round}
.sline.h{left:12.5%;right:12.5%;width:75%;height:4px;top:28px}.sline.v{display:none}
.step{position:relative;text-align:center;padding:0 var(--s2)}.num{display:grid;place-items:center;width:58px;height:58px;margin:0 auto var(--s4);border-radius:50%;background:var(--grad);color:#fff;font:800 22px var(--head);box-shadow:0 0 0 8px var(--alt),0 10px 24px -8px var(--p);position:relative;z-index:1}
.step h3{font:700 18px/1.3 var(--head);margin-bottom:var(--s2)}.step p{color:var(--mut);font-size:15px}
.js .steps.rv .num{transform:scale(.4);opacity:0}.steps.in .num{animation:pop .6s calc(var(--i)*.35s) cubic-bezier(.3,1.5,.5,1) forwards}
.js .steps.rv .sline path{stroke-dashoffset:300}.steps.in .sline path{animation:dashrun 1.600s .1s ease forwards}
/* spotlights */
.spot{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);align-items:center}.spot+.spot{margin-top:var(--sec)}.spot.rev .sp-art{order:-1}
.spot p{color:var(--mut);margin:var(--s3) 0 var(--s4);font-size:17px}.ticks li{padding:4px 0;font-weight:500;display:flex;align-items:flex-start;gap:0}.ticks li::before{flex:none;margin-top:3px;vertical-align:baseline}
.sp-art svg{width:100%;height:auto;display:block;overflow:visible}
.tbar{transform-box:fill-box;transform-origin:left}.js .spot.rv .tbar,.js .spot.rv .prog{transform:scaleX(0)}.spot.in .tbar,.spot.in .prog{animation:growx 1s calc(var(--i,0)*.15s + .2s) cubic-bezier(.2,.8,.2,1) forwards}
.prog{transform-box:fill-box;transform-origin:left}
.js .spot.rv .row{opacity:0}.spot.in .row{animation:fadeup .6s calc(var(--i)*.15s + .2s) forwards}.stamp{transform-box:fill-box;transform-origin:center}.js .spot.rv .stamp{transform:scale(0)}.spot.in .stamp{animation:pop .6s 1s cubic-bezier(.3,1.5,.5,1) forwards}
.flag{animation:float 4s ease-in-out infinite}
/* pricing */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap);align-items:stretch;max-width:1020px;margin:0 auto}
.plan{position:relative;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s6) var(--s5);background:#fff;border:1px solid var(--line);border-radius:22px;transition:transform .25s,box-shadow .25s}.plan:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(15,23,42,.25)}
.plan.pop{border:2px solid var(--p);box-shadow:0 24px 50px -22px var(--p)}.tag{position:absolute;top:-14px;left:50%;transform:translateX(-50%);padding:5px 14px;border-radius:99px;background:var(--grad);color:#fff;font-size:12px;font-weight:800;white-space:nowrap}
.plan h3{font:800 22px var(--head)}.price{font:800 40px/1.1 var(--head);margin-top:var(--s2)}.price small{font:500 15px var(--body);color:var(--mut)}.meta{font-weight:700;font-size:14px;color:var(--pd);padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.plan .ticks{flex:1;margin:var(--s2) 0 var(--s4);font-size:15px}
/* compare */
.cmp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;-webkit-overflow-scrolling:touch}
.cmp{width:100%;min-width:640px;border-collapse:separate;border-spacing:0;text-align:center}
.cmp th,.cmp td{padding:14px var(--s4);border-bottom:1px solid var(--line);font-size:15px;background:#fff}
.cmp thead th{font:700 14px var(--head);color:var(--mut);position:sticky;top:0}.cmp thead th small{display:block;font:500 12px var(--body);margin-top:2px}
.cmp tbody th{text-align:left;font-weight:600;position:sticky;left:0;z-index:2;min-width:180px;box-shadow:1px 0 0 var(--line)}.cmp thead th:first-child{position:sticky;left:0;z-index:3;text-align:left;box-shadow:1px 0 0 var(--line)}
.cmp .us{background:var(--pt)!important;color:var(--pd)}.cmp thead th.us{font-size:16px;color:var(--pd)}
.cmp tr:last-child>*{border-bottom:0}.cmp .cost td b{display:block;font:800 18px var(--head);color:var(--ink)}.cmp .cost .us b{color:var(--pd)}.cmp small{display:block;font-size:12px;color:var(--mut);font-weight:500}
.tk{display:inline-block;width:26px;height:26px;vertical-align:middle}.tk svg{width:100%;height:100%;overflow:visible}.tk circle{stroke:none}.tk path{fill:none;stroke:#fff;stroke-width:2.600;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:0}
.tk.y circle{fill:var(--ok)}.tk.n circle{fill:var(--no)}
.js .cmp-wrap.rv .tk circle{transform-box:fill-box;transform-origin:center;transform:scale(0)}.js .cmp-wrap.rv .tk path{stroke-dashoffset:24}
.cmp-wrap.in .tk circle{animation:pop .5s calc(var(--d) + .2s) cubic-bezier(.3,1.5,.5,1) forwards}.cmp-wrap.in .tk path{animation:tickdraw .5s calc(var(--d) + .5s) ease forwards}
/* testimonials */
.car{position:relative;display:flex;align-items:center;gap:var(--s3)}
.ctrack{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;padding:var(--s2) 2px var(--s4)}.ctrack::-webkit-scrollbar{display:none}
.tc{flex:0 0 calc((100% - 2*var(--gap))/3);scroll-snap-align:start;display:flex;flex-direction:column;gap:var(--s4);padding:var(--s5);background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.stars{display:flex;gap:2px}.stars svg{width:20px;height:20px;fill:#e2e8f0}.stars svg.on{fill:#f59e0b}
.tc blockquote{flex:1;color:#334155;font-size:16px}.tc figcaption{display:flex;align-items:center;gap:var(--s3)}.tc figcaption b{display:block;font-size:15px}.tc figcaption small{color:var(--mut);font-size:13px}
.av{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:var(--grad);color:#fff;font:800 15px var(--head)}
.cbtn{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--pd);cursor:pointer;display:grid;place-items:center;transition:background .2s}.cbtn:hover{background:var(--pt)}.car.few .cbtn{display:none}
/* faq */
details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:var(--s3);transition:border-color .2s,box-shadow .2s}details[open]{border-color:var(--p3);box-shadow:0 10px 26px -16px var(--p)}
summary{list-style:none;cursor:pointer;padding:var(--s4) var(--s5);font-weight:700;display:flex;justify-content:space-between;gap:var(--s4);align-items:center}summary::-webkit-details-marker{display:none}
summary::after{content:"";flex:none;width:12px;height:12px;border-right:2.500px solid var(--p);border-bottom:2.500px solid var(--p);transform:rotate(45deg);transition:transform .25s;margin-top:-4px}details[open] summary::after{transform:rotate(-135deg);margin-top:4px}
details p{padding:0 var(--s5) var(--s5);color:var(--mut);animation:fadeup .3s}
/* cta */
.cta{position:relative;overflow:hidden;padding:var(--sec) 0;background:var(--grad);color:#fff}.cta .b1{background:#fff;opacity:.12}.cta .b2{background:#fff;opacity:.1}
.start-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);align-items:center}
.cta-copy p{margin:var(--s3) 0 var(--s4);opacity:.92;font-size:17px}.cta .ticks{margin-bottom:var(--s5)}.cta .ticks li::before{filter:brightness(1.1)}.small{font-size:13px;margin-top:var(--s3);min-height:20px}
.lf{background:#fff;color:var(--ink);padding:var(--s6);border-radius:22px;box-shadow:0 30px 60px -24px rgba(0,0,0,.4)}.lf h3{font:800 22px var(--head);margin-bottom:var(--s4)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}.field{display:block;margin-bottom:var(--s3)}.field span{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:#334155}
.input{width:100%;min-height:46px;padding:11px 14px;border:1.500px solid var(--line);border-radius:12px;background:#fff;font:500 15px var(--body);color:var(--ink);transition:border-color .2s,box-shadow .2s}textarea.input{resize:vertical}.input:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 4px var(--pt2)}
#leadMsg.ok{color:#15803d;font-weight:700}#leadMsg.er{color:#b91c1c;font-weight:700}#demoMsg{color:#fecaca}
/* footer */
.foot{background:var(--ink);color:#c3c9da;padding:var(--s8) 0 var(--s5)}.fcols{display:grid;grid-template-columns:1.6fr 1fr 1.3fr 1fr;gap:var(--s6)}
.foot .brand{color:#fff;margin-bottom:var(--s3);font-size:20px}.foot p{font-size:14px;max-width:320px}.fnote{margin-top:var(--s2);color:#9aa3b8}
.foot h4{color:#fff;font:700 14px var(--head);margin-bottom:var(--s3);text-transform:uppercase;letter-spacing:.06em}.foot a,.foot span{display:block;font-size:14px;padding:4px 0;overflow-wrap:anywhere}.foot a:hover{color:#fff}.foot .brand,.foot .soc a{display:flex}
.soc{display:flex;gap:var(--s2);margin-top:var(--s4)}.soc a{width:40px;height:40px;padding:0;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;transition:background .2s,transform .2s}.soc a:hover{background:var(--p);transform:translateY(-2px)}.soc svg{width:18px;height:18px}
.copy{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid rgba(255,255,255,.1);font-size:13px;text-align:center}
/* floating buttons */
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;display:flex;flex-direction:column;align-items:flex-end;gap:16px;padding-right:env(safe-area-inset-right,0px);pointer-events:none}.fab>*{pointer-events:auto}
.totop{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--pd);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 26px -8px rgba(15,23,42,.35);animation:fadeup .3s;transition:background .2s}.totop[hidden]{display:none}.totop:hover{background:var(--pt)}
.wa{display:flex;align-items:center;gap:10px;height:48px;min-width:48px;padding:0 14px;border-radius:99px;background:#25d366;color:#fff;font-weight:700;box-shadow:0 10px 26px -8px rgba(37,211,102,.7);transition:transform .2s}.wa:hover{transform:translateY(-2px)}.wa svg{width:26px;height:26px;flex:none}
.wl{display:none;line-height:1.15;font-size:14px}.wl small{display:block;font-size:11px;font-weight:500;opacity:.9}
/* reveal */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*.08s)}.js .rv.in{opacity:1;transform:none}
@keyframes drift{to{transform:translate(40px,30px) scale(1.12)}}@keyframes float{50%{transform:translateY(-9px)}}@keyframes pulse{50%{transform:scale(1.18);opacity:.75}}
@keyframes grow{from{transform:scaleY(.1)}to{transform:scaleY(1)}}@keyframes growx{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes draw{to{stroke-dashoffset:0}}
@keyframes slide{50%{transform:translateX(13px)}}@keyframes scan{50%{transform:translateY(-14px)}0%,100%{transform:translateY(10px)}}@keyframes spin{to{transform:rotate(360deg)}}
@keyframes tick{0%{stroke-dashoffset:20}40%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:20}}@keyframes rise{50%{transform:translate(3px,-3px)}}@keyframes dots{50%{transform:translateY(-4px);opacity:.4}}
@keyframes drop{0%{transform:translateY(-4px);opacity:0}30%{opacity:1}100%{transform:translateY(18px);opacity:0}}@keyframes flow{0%{transform:translateY(0);opacity:1}100%{transform:translateY(30px);opacity:0}}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes dashrun{to{stroke-dashoffset:0}}@keyframes tickdraw{to{stroke-dashoffset:0}}@keyframes fadeup{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* responsive */
@media(min-width:700px){.wl{display:block}.wa{padding:0 18px 0 14px}}
@media(max-width:1020px){.fgrid{grid-template-columns:repeat(2,1fr)}.hero-grid,.start-grid,.spot{grid-template-columns:1fr}.hero-art{max-width:560px;margin:0 auto;width:100%}.spot.rev .sp-art{order:0}.tc{flex-basis:calc((100% - var(--gap))/2)}.fcols{grid-template-columns:1fr 1fr}
.steps{grid-template-columns:1fr;max-width:480px;margin:0 auto;gap:var(--s6)}.sline.h{display:none}.sline.v{display:block;left:29px;top:30px;bottom:30px;width:4px;height:auto}.step{text-align:left;padding-left:80px}.num{position:absolute;left:0;top:0;margin:0}
.nav-d{display:none}.burger{display:block}.links{position:absolute;left:0;right:0;top:var(--nav-h);flex-direction:column;gap:0;background:#fff;padding:var(--s2) 16px var(--s5);box-shadow:0 20px 30px -20px rgba(15,23,42,.3);display:none;max-height:calc(100vh - var(--nav-h));overflow:auto}.nav.open .links{display:flex}.links a:not(.btn){padding:14px 8px;font-size:16px;border-bottom:1px solid var(--line);border-radius:0}.nav-m{display:flex;gap:var(--s3);margin-top:var(--s4)}.nav-m .btn{flex:1}}
@media(max-width:640px){:root{--gap:16px}.fgrid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr;gap:var(--s5) var(--gap)}.two{grid-template-columns:1fr;gap:0}.tc{flex-basis:100%}.cbtn{display:none}.fcols{grid-template-columns:1fr}.lf{padding:var(--s5)}.cta-row .btn{flex:1 1 100%}.hero{padding-top:calc(var(--nav-h) + var(--s6))}.head{margin-bottom:var(--s6)}.bn{max-width:46vw}
.cmp tbody th{min-width:140px;font-size:14px}.cmp th,.cmp td{padding:12px 10px}.wa{padding:0}.wa{width:48px;justify-content:center}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv,.js .rv *{opacity:1!important;transform:none!important;stroke-dashoffset:0!important}.ln{stroke-dashoffset:0}.js .spot.rv .tbar,.js .spot.rv .prog,.js .spot.rv .row,.js .spot.rv .stamp,.js .steps.rv .num,.js .cmp-wrap.rv .tk circle{transform:none!important;opacity:1!important}}

/* ===================== v1.4 redesign: dark animated hero, stacked product layers ===================== */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nav.dk:not(.open) .bn{color:#fff}
.nav.dk:not(.open) .links a:not(.btn){color:#c7cde6}
.nav.dk:not(.open) .links a:not(.btn):hover{color:#fff;background:rgba(255,255,255,.1)}
.nav.dk:not(.open) .btn.ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.26)}
.nav.dk:not(.open) .burger span{background:#fff}
.btn.glass{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.3);box-shadow:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn.glass:hover{background:rgba(255,255,255,.2);box-shadow:none}
.head h2{font-size:clamp(30px,4.6vw,48px);letter-spacing:-.02em}
/* hero */
.hx{position:relative;overflow:hidden;color:#fff;text-align:center;padding:calc(var(--nav-h) + clamp(36px,6vw,80px)) 0 clamp(40px,6vw,72px);background:radial-gradient(120% 90% at 50% 0,color-mix(in srgb,var(--p) 34%,#0b0f26) 0,#0a0d22 52%,#070a18 100%)}
.hx-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}.hx-bg svg{position:absolute;inset:0;width:100%;height:100%}
.gb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5}
.gb.g1{width:520px;height:520px;background:var(--p);left:-160px;top:-140px;animation:xdrift 18s ease-in-out infinite alternate}
.gb.g2{width:460px;height:460px;background:var(--p2);right:-140px;top:120px;opacity:.38;animation:xdrift 22s ease-in-out -6s infinite alternate-reverse}
.wv{stroke-dasharray:16 14;animation:xdash 14s linear infinite}.wv.w2{animation-duration:20s;animation-direction:reverse}
.fx .f1,.fx .f2,.fx .f3,.fx .f4,.fx .f5{animation:xbob 7s ease-in-out infinite}.fx .f2{animation-delay:-1.5s}.fx .f3{animation-delay:-3s}.fx .f4{animation-delay:-4.5s}.fx .f5{animation-delay:-2s;animation-duration:5s}
.hx-in{position:relative;display:flex;flex-direction:column;align-items:center}
.hx-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:99px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);font-weight:600;font-size:14px;color:#e5e8fb;margin-bottom:var(--s5);max-width:100%}
.hx-h1{display:flex;flex-direction:column;align-items:center;font:800 clamp(42px,8.4vw,96px)/1.02 var(--head);letter-spacing:-.04em;max-width:1000px}
.hx-h1 .l1{display:block;color:#fff}
.rot{display:grid;justify-items:center;margin-top:.04em;padding-bottom:.08em}
.rot .w{grid-area:1/1;opacity:0;transform:translateY(45%);filter:blur(12px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1),filter .7s;text-wrap:balance;
  background:linear-gradient(95deg,color-mix(in srgb,var(--p) 35%,#fff) 0,color-mix(in srgb,var(--p2) 40%,#fff) 55%,#7dd3fc 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.rot .w.on{opacity:1;transform:none;filter:none}.rot .w.out{opacity:0;transform:translateY(-45%);filter:blur(12px)}
.hx-sub{display:grid;justify-items:center;margin:var(--s5) 0 var(--s6);font-size:clamp(17px,2.2vw,22px);color:#cfd5f0;max-width:680px;min-height:3.1em;align-items:start}
.hx-sub p{grid-area:1/1;opacity:0;transform:translateY(10px);transition:opacity .6s .15s,transform .6s .15s}.hx-sub p.on{opacity:1;transform:none}
.hx-sub svg{width:22px;height:22px;fill:none;stroke:#34d399;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px;margin-right:8px}
.hx .cta-row{justify-content:center}
.hx-trust{justify-content:center;color:#aab2d5;margin-top:var(--s5)}
.hx-shot{position:relative;width:min(1040px,100%);margin-top:clamp(36px,5vw,64px);perspective:1800px;text-align:left}
.shot-glow{position:absolute;inset:10% 4% -6%;background:var(--grad);filter:blur(80px);opacity:.5;border-radius:50%}
.hx-frame{position:relative;transform:rotateX(var(--rx,16deg)) scale(var(--sc,.95));transform-origin:50% 100%;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 60px 120px -30px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.16);will-change:transform}
.chip{position:absolute;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:99px;background:#fff;color:var(--ink);font-weight:600;font-size:14px;white-space:nowrap;box-shadow:0 18px 40px -12px rgba(0,0,0,.5);animation:xbob 6s ease-in-out infinite;z-index:2}
.chip .i,.chip svg{width:16px;height:16px;fill:none;stroke:#16a34a;stroke-width:3;stroke-linecap:round}
.chip b{color:var(--p)}.cd{width:10px;height:10px;border-radius:50%}.cd.g{background:#22c55e}.cd.p{background:var(--p)}.cd.a{background:#f59e0b}
.chip.c1{left:-3%;top:16%}.chip.c2{right:-3%;top:40%;animation-delay:-2s}.chip.c3{left:3%;bottom:9%;animation-delay:-4s}
/* strip */
.mq{overflow:hidden;background:#070a18;border-top:1px solid rgba(255,255,255,.08);padding:20px 0}
.mq-t{display:flex;width:max-content;animation:xmq 40s linear infinite}
.mq span{display:inline-flex;align-items:center;gap:12px;margin-right:48px;color:#aab2d5;font:600 15px var(--body);white-space:nowrap}.mq i{width:8px;height:8px;border-radius:50%;background:var(--grad)}
/* stacked layers */
.stk .head{margin-bottom:var(--s6)}
.layers{position:relative;padding-bottom:4vh}
.layer{position:sticky;top:calc(var(--nav-h) + 14px + var(--i)*14px);margin-bottom:clamp(28px,7vh,64px)}
.layer-in{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(20px,3vw,48px);align-items:center;min-height:min(560px,calc(100vh - var(--nav-h) - 110px));padding:clamp(22px,3.4vw,48px);border-radius:30px;border:1px solid var(--line);
  background:linear-gradient(135deg,#fff 0,color-mix(in srgb,var(--p) calc(3% + var(--i)*3%),#fff) 100%);box-shadow:0 30px 70px -30px rgba(15,23,42,.38);transform:scale(var(--k,1));transform-origin:50% 0;will-change:transform}
.layer:nth-child(even) .layer-in{grid-template-columns:1.2fr .8fr}.layer:nth-child(even) .layer-media{order:-1}
.ln{display:inline-block;font:800 13px var(--head);letter-spacing:.14em;color:var(--p);padding:5px 12px;border-radius:99px;background:var(--pt2);margin-bottom:var(--s3)}
.layer-copy h3{font:800 clamp(30px,3.6vw,46px)/1.05 var(--head);letter-spacing:-.025em}
.lh{margin:var(--s3) 0 var(--s4);color:var(--mut);font-size:clamp(16px,1.6vw,19px)}
.layer-copy .ticks li{margin-bottom:var(--s2);font-weight:500}
.more{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s4);font-weight:700;color:var(--p)}.more .i{width:18px;height:18px;transition:transform .2s}.more:hover .i{transform:translateX(4px)}
.shot{border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 24px 50px -20px rgba(15,23,42,.4)}
.shot img{display:block;width:100%;height:auto}.shot-bar{display:flex;gap:6px;padding:10px 14px;background:#f3f4fb}.shot-bar i{width:9px;height:9px;border-radius:50%;background:#d3d7ee}
.shot.art-wrap{background:transparent;border:0;overflow:visible}.shot.art-wrap .art{border-radius:20px;box-shadow:0 24px 50px -20px rgba(15,23,42,.4)}
.hx-frame .shot{border:0;box-shadow:none;border-radius:0}.hx-frame .shot.art-wrap .art{border-radius:0;box-shadow:none}
/* svg illustration text and motion */
.art{display:block;width:100%;height:auto}
.at-s{font:500 12px var(--body);fill:#64748b}.at-s2{font:600 13px var(--body);fill:#64748b}.at-b{font:800 26px var(--head);fill:#0f172a}.at-h{font:700 14px var(--head);fill:#0f172a}.at-t{font:700 11px var(--body)}
.ar-ln{stroke-dasharray:1;stroke-dashoffset:1;animation:xdraw 9s cubic-bezier(.4,0,.2,1) infinite}.ar-area{animation:xarea 9s ease infinite}.ar-dot{animation:xarea 9s ease infinite}
.ar-bars rect{transform-box:fill-box;transform-origin:bottom;animation:xgrow 7s calc(var(--i)*.12s) cubic-bezier(.3,.8,.3,1) infinite}
.ar-hb{transform-box:fill-box;transform-origin:left;animation:xgrowx 7s calc(var(--i)*.15s) cubic-bezier(.3,.8,.3,1) infinite}
.ar-float{animation:xbob 5s ease-in-out infinite}.ar-float2{animation:xbob 6s -2s ease-in-out infinite}
.ar-card{animation:xrise .8s calc(var(--i)*.07s) cubic-bezier(.2,.8,.2,1) both}
.ar-move{animation:xmove 8s ease-in-out infinite}
.ar-donut{animation:xdon1 7s ease infinite}.ar-donut.d2{animation-name:xdon2}
@keyframes xdrift{to{transform:translate(70px,50px) scale(1.12)}}
@keyframes xdash{to{stroke-dashoffset:-300}}
@keyframes xbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes xmq{to{transform:translateX(-50%)}}
@keyframes xdraw{0%{stroke-dashoffset:1;opacity:1}32%,86%{stroke-dashoffset:0;opacity:1}95%{stroke-dashoffset:0;opacity:0}100%{stroke-dashoffset:1;opacity:0}}
@keyframes xarea{0%,18%{opacity:0}40%,86%{opacity:1}95%,100%{opacity:0}}
@keyframes xgrow{0%{transform:scaleY(.12)}28%,82%{transform:scaleY(1)}100%{transform:scaleY(.12)}}
@keyframes xgrowx{0%{transform:scaleX(.04)}28%,82%{transform:scaleX(1)}100%{transform:scaleX(.04)}}
@keyframes xrise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes xmove{0%,14%{transform:translate(0,0) rotate(0)}30%{transform:translate(120px,-14px) rotate(3deg)}46%,84%{transform:translate(240px,-4px) rotate(0)}100%{transform:translate(0,0)}}
@keyframes xdon1{0%{stroke-dasharray:0 264}30%,88%{stroke-dasharray:132 264}100%{stroke-dasharray:0 264}}
@keyframes xdon2{0%{stroke-dasharray:0 264}30%,88%{stroke-dasharray:70 264}100%{stroke-dasharray:0 264}}
/* why */
#why .fc{border-radius:22px}
@media(max-width:1000px){.chip.c1{left:0}.chip.c2{right:0}}
@media(max-width:860px){
  .layer{position:relative;top:auto}.layer-in,.layer:nth-child(even) .layer-in{grid-template-columns:1fr;min-height:0;transform:none!important}.layer:nth-child(even) .layer-media{order:2}.layer-media{order:2}
  .chip{display:none}.hx-frame{transform:none!important;border-radius:16px}
}
@media(max-width:560px){.hx-h1{letter-spacing:-.03em}.hx .cta-row .btn{width:100%}.hx-sub{min-height:4.6em}}
@media(prefers-reduced-motion:reduce){.mq-t,.wv,.fx g,.chip,.gb,.ar-ln,.ar-area,.ar-dot,.ar-bars rect,.ar-hb,.ar-float,.ar-float2,.ar-move,.ar-donut,.ar-card{animation:none!important}.ar-ln{stroke-dashoffset:0}.rot .w,.hx-sub p{transition:none}.hx-frame{transform:none!important}}
.hx-h1{max-width:1240px}
@media(min-width:900px){.rot .w{white-space:nowrap;font-size:.84em}.hx-h1 .l1{font-size:.96em}}
.hx-sub{margin:var(--s4) 0 var(--s5);min-height:2em}

/* ===== v1.4b: project-management focus, dark sections, curtains, footer word ===== */
.nav.dk.sc:not(.open){background:rgba(10,13,34,.8);box-shadow:0 6px 26px rgba(0,0,0,.35)}
.mq{padding-bottom:64px}
.curtain{position:relative;z-index:2;background:var(--bg);border-radius:44px 44px 0 0;margin-top:-44px;box-shadow:0 -24px 60px -30px rgba(7,10,24,.5)}
.pains{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.pain{position:relative;padding:var(--s6) var(--s5) var(--s5);border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fff,var(--alt))}
.pain .pi{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#fee2e2;color:#dc2626;margin-bottom:var(--s4)}.pain .pi .i{width:26px;height:26px}
.pain .px{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fee2e2;color:#dc2626}.pain .px .i{width:15px;height:15px;stroke-width:3}
.pain h3{font:700 19px/1.3 var(--head);margin-bottom:var(--s2)}.pain p{color:var(--mut);font-size:15px}
.fix{display:flex;align-items:center;gap:var(--s4);margin-top:var(--s5);padding:var(--s5) var(--s6);border-radius:24px;background:var(--grad);color:#fff;box-shadow:0 24px 50px -22px var(--p)}
.fix p{font-size:clamp(17px,2vw,21px);line-height:1.45}.fk{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.2)}.fk .i{stroke-width:3}
.dkx{position:relative;overflow:hidden;color:#fff;background:radial-gradient(90% 70% at 50% 0,color-mix(in srgb,var(--p) 30%,#0b0f26) 0,#0a0d22 60%,#070a18 100%);padding-bottom:calc(var(--sec) + 48px)}
.dkx .head h2{color:#fff}.dkx .head p{color:#aab2d5}.dkx .wrap{position:relative}
.flow-bg{position:absolute;inset:0;pointer-events:none}.flow-bg svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(calc(var(--sp,0) * 70deg)) scale(calc(1 + var(--sp,0) * .25));transform-origin:50% 50%}
.flow-bg .gb.g1{left:-180px;top:20%}.flow-bg .gb.g2{right:-160px;top:auto;bottom:-120px}
.wk{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);--wp:0}
.wk-line{position:absolute;left:12.5%;right:12.5%;top:27px;height:3px;border-radius:2px;background:rgba(255,255,255,.14)}.wk-line i{display:block;height:100%;width:calc(var(--wp) * 100%);border-radius:2px;background:var(--grad);box-shadow:0 0 18px var(--p)}
.wk-s{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 var(--s2)}
.wk-s .wi{order:-1;display:grid;place-items:center;width:56px;height:56px;margin-bottom:var(--s4);border-radius:50%;background:#131a3b;border:2px solid rgba(255,255,255,.2);color:#aab2d5;transition:background .5s,color .5s,box-shadow .5s,border-color .5s,transform .5s}.wk-s .wi .i{width:24px;height:24px}
.wk-s.act .wi{background:var(--grad);border-color:transparent;color:#fff;transform:scale(1.08);box-shadow:0 0 0 8px color-mix(in srgb,var(--p) 28%,transparent)}
.wk-s .wd{font:700 12px var(--body);letter-spacing:.14em;text-transform:uppercase;color:#8d96bd;margin-bottom:var(--s2)}.wk-s.act .wd{color:#c7d2fe}
.wk-s h3{font:700 18px/1.3 var(--head);color:#fff;margin-bottom:var(--s2)}.wk-s p{color:#aab2d5;font-size:15px}
/* footer: giant faint brand word */
.foot{position:relative;overflow:hidden}.foot .wrap{position:relative;z-index:1}
.foot-word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;user-select:none;z-index:0}
.foot-word span{font:800 var(--fs,26vw)/1 var(--head);letter-spacing:-.05em;white-space:nowrap;color:transparent;background:linear-gradient(180deg,#fff 0,color-mix(in srgb,var(--p) 50%,#fff) 100%);-webkit-background-clip:text;background-clip:text;opacity:.07;transform:translateY(calc((1 - var(--fp,1)) * 40px))}
@media(max-width:860px){.pains{grid-template-columns:1fr}.curtain{border-radius:30px 30px 0 0;margin-top:-30px}.mq{padding-bottom:48px}
  .wk{grid-template-columns:1fr;gap:var(--s6)}.wk-line{left:27px;right:auto;top:20px;bottom:20px;width:3px;height:auto}.wk-line i{width:100%;height:calc(var(--wp) * 100%)}
  .wk-s{flex-direction:column;align-items:flex-start;text-align:left;padding-left:76px}.wk-s .wi{position:absolute;left:0;top:0;margin:0}.fix{flex-direction:column;align-items:flex-start;padding:var(--s5)}}
@media(prefers-reduced-motion:reduce){.flow-bg svg{transform:none}.foot-word span{transform:none}}

.foot .brand{display:flex;align-items:center;gap:10px;padding:0}.foot .brand .logo{display:grid;width:36px;height:36px;padding:0}.foot .brand .bn{display:block;padding:0;font:800 20px/1 var(--head);color:#fff}
.foot .foot-word span{padding:0;display:block;font-size:var(--fs,26vw)}
