
:root{
  --ink:#1a1616; --slate:#474c5c; --gray:#9aa1b4; --line:#e4e7ef; --dot:#c7cdde;
  --lav:#efedfb; --mist:#f6f3ff; --glow:#b5a8ff; --p:#8f18ff; --p2:#bd2eff; --green:#15a36b;
  --grad:linear-gradient(135deg,var(--p),var(--p2));
  --font:"Public Sans",ui-sans-serif,system-ui,"Segoe UI",Roboto,Arial,sans-serif;
  --r:24px; --shell:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.035;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.ps-w3.ps-org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
a{color:inherit;text-decoration:none}
.ps-shell{width:min(var(--shell),calc(100% - 2.5rem));margin-inline:auto}
.ps-eyebrow{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--slate)}
h1,h2,h3{margin:0;text-wrap:balance;letter-spacing:-.02em;line-height:1.02}
h1{font-size:clamp(2.4rem,5.2vw,4.5rem);font-weight:800}
h2{font-size:clamp(2rem,4.2vw,3.4rem);font-weight:800}
h3{font-size:1.05rem;font-weight:700;letter-spacing:-.01em}
p{margin:0}
.g-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-btn{display:inline-flex;align-items:center;gap:.6rem;background:var(--grad);color:#fff;font-weight:700;padding:.95rem 1.6rem;border-radius:999px;box-shadow:0 12px 30px -12px rgba(143,24,255,.6);transition:transform .25s,box-shadow .25s}
.ps-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -12px rgba(143,24,255,.7)}
.ps-btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--p);outline-offset:3px}
.ps-btn svg{transition:transform .25s}.ps-btn:hover svg{transform:translateX(3px)}
.ps-btn.ps-ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
section{padding:6rem 0}

/* ---------- hero ---------- */
.ps-hero{position:relative;overflow:hidden;padding:5rem 0 4rem;
  background:radial-gradient(60% 70% at 18% 40%,#dcd0ff 0%,transparent 60%),radial-gradient(55% 70% at 82% 30%,#f3d4ff 0%,transparent 60%),radial-gradient(50% 50% at 60% 100%,#d6ecff 0%,transparent 60%),#faf8ff}
.ps-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--dot) 1.2px,transparent 1.3px);background-size:22px 22px;opacity:.45;mask-image:linear-gradient(#000,transparent 90%)}
.ps-aurora{position:absolute;inset:-20%;pointer-events:none;filter:blur(60px);opacity:.75}
.ps-aurora i{position:absolute;border-radius:50%;width:46vw;height:46vw;max-width:720px;max-height:720px;animation:aur 18s ease-in-out infinite alternate}
.ps-aurora i:nth-child(1){left:-8%;top:-10%;background:#cdb9ff}
.ps-aurora i:nth-child(2){right:-6%;top:-14%;background:#f2c6ff;animation-delay:-6s;animation-duration:22s}
.ps-aurora i:nth-child(3){left:32%;bottom:-30%;background:#c9e6ff;animation-delay:-12s;animation-duration:26s}
@keyframes aur{0%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,8%) scale(1.12)}100%{transform:translate(-5%,3%) scale(.94)}}
.ps-hero-copy>*{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.ps-hero-copy>*:nth-child(1){animation-delay:.05s}.ps-hero-copy>*:nth-child(2){animation-delay:.15s}.ps-hero-copy>*:nth-child(3){animation-delay:.3s}.ps-hero-copy>*:nth-child(4){animation-delay:.4s}.ps-hero-copy>*:nth-child(5){animation-delay:.5s}.ps-hero-copy>*:nth-child(6){animation-delay:.6s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.ps-orbit-wrap{animation:orbin 1.4s cubic-bezier(.2,.7,.2,1) both .2s}
@keyframes orbin{from{opacity:0;transform:scale(.86) translateY(30px)}to{opacity:1;transform:none}}
.orbit-par{transition:transform .5s cubic-bezier(.2,.7,.2,1);will-change:transform;height:100%}
.ps-hero .ps-shell{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.ps-hero-copy{display:flex;flex-direction:column;gap:1.4rem}
.ps-hero-copy .ps-sub{font-size:1.35rem;font-weight:700;letter-spacing:-.01em}
.ps-hero-copy .ps-lead{max-width:34ch;color:var(--slate);font-size:1.05rem}
.ps-hero-ctas{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.4rem}
.ps-proof{display:flex;gap:1.6rem;margin-top:1.2rem;font-size:.85rem;color:var(--slate);font-weight:600}
.ps-proof b{display:block;font-size:1.5rem;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ps-orbit-wrap{position:relative;aspect-ratio:1;max-width:640px;justify-self:end;width:100%;margin-right:-1.5rem}
.ps-orbit-wrap svg{width:100%;height:100%;overflow:visible}
@media (max-width:900px){.ps-hero .ps-shell{grid-template-columns:1fr}.ps-orbit-wrap{justify-self:center;max-width:520px;margin-right:0}}

/* orbit animation */
.spin{transform-box:view-box;transform-origin:400px 400px;animation:spin 42s linear infinite}
.spin-r{transform-box:view-box;transform-origin:400px 400px;animation:spin 42s linear infinite reverse}
.node{transform-box:fill-box;transform-origin:center;animation:spin 42s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.dash{stroke-dasharray:6 9;animation:dash 1.6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-30}}
.ring{transform-box:fill-box;transform-origin:center;animation:ring 3.2s ease-in-out infinite}
@keyframes ring{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.18);opacity:.35}}
.mk{animation:mk 9s cubic-bezier(.65,0,.2,1) infinite}
@keyframes mk{0%,10%{transform:translateX(0)}30%,40%{transform:translateX(166px)}60%,70%{transform:translateX(332px)}90%,100%{transform:translateX(498px)}}
.float .orbit-inner{animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px)}}

/* ---------- marquee ---------- */
.ps-ticker{border-block:1px solid var(--line);background:#fff;overflow:hidden;padding:1rem 0;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.ps-ticker-track{display:flex;gap:3rem;width:max-content;animation:ticker 40s linear infinite;font-weight:700;font-size:.95rem;color:var(--slate);white-space:nowrap}
.ps-ticker-track span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grad);margin-right:.9rem;vertical-align:middle}
@keyframes ticker{to{transform:translateX(-50%)}}
.ps-ticker:hover .ps-ticker-track{animation-play-state:paused}

/* ---------- reveal ---------- */
/* scroll-driven reveals: correct at ANY scroll position, no observer, and simply visible where unsupported */
/* reveals dropped for FirstSpirit: the preview frame is not the scroll container */

/* ---------- section heads ---------- */
.ps-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2rem;margin-bottom:2.6rem}
.ps-head .ps-eyebrow{margin-bottom:.8rem}
.ps-head .ps-note{color:var(--slate);max-width:36ch;font-size:1rem}
@media (max-width:760px){.ps-head{grid-template-columns:1fr}}

/* ---------- apart tiles ---------- */
.ps-apart{background:var(--mist)}
.ps-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.ps-tile{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;display:flex;flex-direction:column;gap:1rem;min-height:220px;position:relative;overflow:hidden;transition:transform .35s,box-shadow .35s}
.ps-tile:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(26,22,22,.35)}
.ps-tile::after{content:"";position:absolute;inset:auto -30% -40% auto;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(181,168,255,.45),transparent 65%);opacity:0;transition:opacity .4s}
.ps-tile:hover::after{opacity:1}
.ps-tile .ps-ic{width:56px;height:56px;border-radius:16px;background:var(--lav);display:grid;place-items:center}
.ps-tile .ps-ic svg{width:34px;height:34px;overflow:visible}
.ps-tile p{color:var(--slate);font-size:.95rem}
@media (max-width:980px){.ps-tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.ps-tiles{grid-template-columns:1fr}}

/* glyph loops */
.ps-tile:hover .g-core{animation:core 1.4s ease-in-out infinite}
@keyframes core{50%{transform:scale(1.25)}}
.g-core{transform-box:fill-box;transform-origin:center}
.ps-tile:hover .g-ring{animation:slide 1.6s ease-in-out infinite}
@keyframes slide{50%{transform:translateX(-5px)}}
.ps-tile:hover .g-top{animation:lift 1.4s ease-in-out infinite}
@keyframes lift{50%{transform:translateY(-6px)}}
.g-check{stroke-dasharray:46;stroke-dashoffset:0}
.ps-tile:hover .g-check{animation:draw 1.8s ease-in-out infinite}
@keyframes draw{0%{stroke-dashoffset:46}45%,100%{stroke-dashoffset:0}}

/* ---------- services: index + stage ---------- */
.ps-svcx{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.4rem;align-items:stretch}
.ps-svc-index{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.ps-svc-index button{width:100%;text-align:left;display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;border-radius:18px;border:1px solid transparent;background:transparent;font:inherit;font-weight:700;font-size:1.05rem;color:var(--slate);cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .3s}
.ps-svc-index button span{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--gray);min-width:2ch}
.ps-svc-index button:hover{background:var(--lav);color:var(--ink);transform:translateX(4px)}
.ps-svc-index button.on{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:0 24px 40px -30px rgba(26,22,22,.35)}
.ps-svc-index button.on span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-svc-stage{position:relative;border-radius:var(--r);background:var(--mist);border:1px solid var(--line);min-height:520px;overflow:hidden}
.ps-svc-stage::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--dot) 1.2px,transparent 1.3px);background-size:22px 22px;opacity:.5}
.ps-scene{position:absolute;inset:0;padding:2rem 2.2rem;display:flex;flex-direction:column;gap:.8rem;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .45s cubic-bezier(.2,.7,.2,1),transform .45s cubic-bezier(.2,.7,.2,1)}
.ps-scene.on{opacity:1;transform:none;pointer-events:auto}
.ps-scene svg{width:min(360px,100%);height:auto;margin:0 auto .4rem;overflow:visible}
.ps-scene h3{font-size:1.5rem}
.ps-scene p{color:var(--slate)}
.ps-scene ul{list-style:none;margin:.2rem 0 0;padding:0;display:flex;gap:.5rem;flex-wrap:wrap}
.ps-scene li{font-size:.8rem;font-weight:700;padding:.4rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--line)}
@media (max-width:900px){.ps-svcx{grid-template-columns:1fr}.ps-svc-index{flex-direction:row;flex-wrap:wrap;gap:.4rem}.ps-svc-index button{padding:.6rem .9rem;font-size:.9rem;border-radius:999px;gap:.5rem}.ps-svc-index button:hover{transform:none}.ps-svc-stage{min-height:560px}}
/* scene loops - only the visible scene animates */
.ps-scene.on .sc-up{animation:scup 2.2s ease-in-out infinite}@keyframes scup{50%{transform:translateY(-10px)}}
.ps-scene.on .sc-cloud{animation:float 5s ease-in-out infinite}
.ps-scene.on .sc-lid{transform-box:fill-box;transform-origin:left bottom;animation:lid 2.6s ease-in-out infinite}@keyframes lid{50%{transform:rotate(-14deg)}}
.ps-scene.on .sc-ticks circle{animation:tick 2s ease-in-out infinite}.ps-scene.on .sc-ticks circle:nth-child(2){animation-delay:.5s}.ps-scene.on .sc-ticks circle:nth-child(3){animation-delay:1s}.ps-scene.on .sc-ticks circle:nth-child(4){animation-delay:1.5s}@keyframes tick{50%{opacity:.2}}
.ps-scene.on .sc-block{animation:blk 2.4s cubic-bezier(.65,0,.2,1) infinite}@keyframes blk{0%,20%{transform:translate(22px,22px);opacity:.4}45%,100%{transform:none;opacity:1}}
.ps-scene.on .sc-api{animation:dash 1.4s linear infinite}
.ps-scene.on .sc-scan{animation:scan 2.4s ease-in-out infinite}@keyframes scan{0%,100%{transform:translateY(0);opacity:.2}50%{transform:translateY(-100px);opacity:1}}
.ps-scene.on .sc-n1,.ps-scene.on .sc-n2,.ps-scene.on .sc-n3{transform-box:fill-box;transform-origin:center;animation:core 2.1s ease-in-out infinite}.ps-scene.on .sc-n2{animation-delay:.7s}.ps-scene.on .sc-n3{animation-delay:1.4s}
.ps-scene.on .sc-mark{animation:lift 2s ease-in-out infinite}
.ps-scene.on .sc-lines path{stroke-dasharray:60;animation:write 3s ease-in-out infinite}.ps-scene.on .sc-lines path:nth-child(2){animation-delay:.3s}.ps-scene.on .sc-lines path:nth-child(3){animation-delay:.6s}@keyframes write{0%{stroke-dashoffset:60}40%,100%{stroke-dashoffset:0}}
.ps-scene.on .sc-dot{transform-box:fill-box;transform-origin:center;animation:core 1.8s ease-in-out infinite}
.ps-scene.on .sc-spokes{transform-box:fill-box;transform-origin:center;animation:spin 8s linear infinite}

/* ---------- flow ---------- */
.ps-flow{background:var(--mist);position:relative;overflow:hidden}
.ps-flow-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center}
.ps-flow-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:.4rem}.ps-flow-svg{width:100%;min-width:560px;height:auto;overflow:visible}
.ps-figs{display:grid;gap:1rem}
.ps-fig{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.1rem 1.4rem}
.ps-fig b{font-size:3rem;font-weight:800;letter-spacing:-.05em;line-height:1;min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}
.ps-fig b.g-text{background:var(--grad);-webkit-background-clip:text;background-clip:text}
.ps-fig span{color:var(--slate);font-size:.95rem}.ps-fig span strong{color:var(--ink);display:block;font-size:1.05rem}
@media (max-width:900px){.ps-flow-grid{grid-template-columns:1fr}}
.pulse circle{stroke:#fff;stroke-width:2}

/* ---------- trusted by ---------- */
.ps-trusted{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;margin:0 0 2.2rem;padding:1.1rem 1.4rem;border:1px solid var(--line);border-radius:18px;background:#fff}
.ps-trusted ul{list-style:none;margin:0;padding:0;display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.ps-trusted li{display:grid;place-items:center;height:64px;padding:0 1.2rem;border-radius:14px;background:var(--mist)}
.ps-trusted img{height:36px;width:auto;max-width:200px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .3s,opacity .3s,transform .3s}
.ps-trusted li:hover img{filter:none;opacity:1;transform:scale(1.04)}
/* ---------- industries ---------- */
.ps-ind{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.ps-ind div{background:#fff;border:1px solid var(--line);border-radius:22px;aspect-ratio:1;display:grid;place-content:center;gap:.9rem;text-align:center;font-weight:700;font-size:.9rem;transition:transform .35s,box-shadow .35s,border-color .35s}
.ps-ind div:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 30px 50px -30px rgba(26,22,22,.35);border-color:transparent}
.ps-ind svg{width:64px;height:64px;margin-inline:auto;overflow:visible}
.ps-ind div:hover svg [data-acc]{animation:core 1.2s ease-in-out infinite}
@media (max-width:900px){.ps-ind{grid-template-columns:repeat(3,1fr)}}@media (max-width:560px){.ps-ind{grid-template-columns:repeat(2,1fr)}}
.ps-gen{margin-top:3rem;position:relative;padding-top:1.6rem}
.ps-gen .ps-bar{height:4px;background:var(--line);border-radius:2px;position:relative;overflow:hidden;margin-inline:10%}
.ps-gen .ps-bar i{position:absolute;inset:0;width:0;background:var(--grad);transition:width 1.6s cubic-bezier(.2,.7,.2,1)}
.ps-gen ol{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;color:var(--slate);margin-top:.9rem}
.ps-gen ol li{position:relative;text-align:center;flex:1}
.ps-gen ol li::before{content:"";position:absolute;top:calc(-.9rem - 2px);left:50%;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--dot);transform:translate(-50%,-50%);box-shadow:0 0 0 4px #fff;transition:border-color .4s,background .4s;transition-delay:var(--d,0s)}
.ps-gen.in ol li::before{border-color:var(--p)}
.ps-gen ol li:last-child{color:var(--p)}.ps-gen.in ol li:last-child::before{background:var(--grad);border-color:transparent}

/* ---------- models ---------- */
.ps-models{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.ps-model{border-radius:var(--r);padding:2rem;display:flex;flex-direction:column;gap:.8rem;border:1px solid var(--line);background:#fff;min-height:220px}
.ps-model.ps-dark{background:var(--ink);color:#fff;border-color:transparent;position:relative;overflow:hidden}
.ps-model.ps-dark::before{content:"";position:absolute;inset:-40% -20% auto auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(189,46,255,.55),transparent 65%)}
.ps-model p{color:var(--slate);font-size:.95rem}.ps-model.ps-dark p{color:rgba(255,255,255,.75)}
.ps-model ul{list-style:none;margin:.4rem 0 0;padding:0;display:flex;gap:.5rem;flex-wrap:wrap}
.ps-model li{font-size:.8rem;font-weight:700;padding:.35rem .7rem;border-radius:999px;background:var(--lav);color:var(--ink)}
.ps-model.ps-dark li{background:rgba(255,255,255,.12);color:#fff}
@media (max-width:760px){.ps-models{grid-template-columns:1fr}}


/* ---------- engagement modes ---------- */
.ps-modes{background:var(--mist);overflow:hidden}
.ps-road{position:relative;margin:4.6rem 0 1.4rem}
.ps-road-track{position:relative;height:132px;border-radius:26px;background:linear-gradient(#2a2530,#1a1616);box-shadow:inset 0 2px 0 rgba(255,255,255,.06),0 30px 50px -30px rgba(26,22,22,.6)}
.ps-road-track::before,.ps-road-track::after{content:"";position:absolute;left:5%;right:5%;height:2px;background:rgba(255,255,255,.14)}
.ps-road-track::before{top:12px}.ps-road-track::after{bottom:12px}
.ps-road-track .lane{position:absolute;left:5%;right:5%;top:50%;height:4px;transform:translateY(-50%);background:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 30px,transparent 30px 60px);background-size:60px 4px;animation:lanes 1.1s linear infinite}
@keyframes lanes{to{background-position:-60px 0}}
/* signposts */
.ps-post{position:absolute;bottom:100%;left:var(--x);transform:translateX(-50%);background:none;border:0;padding:0 0 14px;cursor:pointer;font:inherit;display:flex;flex-direction:column;align-items:center;transition:transform .3s}
.ps-post::after{content:"";width:4px;height:22px;border-radius:2px;background:linear-gradient(#c7cdde,#474c5c);margin-top:-2px}
.ps-post .ps-sign{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.82rem;font-weight:700;color:var(--slate);white-space:nowrap;box-shadow:0 12px 24px -16px rgba(26,22,22,.5);transition:background .3s,color .3s,box-shadow .3s,transform .3s}
.ps-post .ps-sign svg{width:18px;height:18px}
.ps-post:hover .ps-sign{transform:translateY(-2px)}
.ps-post.on .ps-sign{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 16px 30px -14px rgba(143,24,255,.7)}
.ps-post.on::after{background:linear-gradient(var(--p2),var(--p))}
.ps-post.p1{--x:16%}.ps-post.p2{--x:50%}.ps-post.p3{--x:84%}
.ps-post:focus-visible{outline:none}.ps-post:focus-visible .ps-sign{outline:3px solid var(--p);outline-offset:3px}
/* the car */
.ps-car{position:absolute;top:50%;left:var(--x,16%);width:150px;transform:translate(-50%,-52%);transition:left 1.2s cubic-bezier(.65,0,.25,1);filter:drop-shadow(0 14px 16px rgba(143,24,255,.35))}
.ps-car svg{width:100%;height:auto;display:block;overflow:visible}
.ps-car .wheel{transform-box:fill-box;transform-origin:center}
.ps-road.moving .ps-car .wheel{animation:spin .5s linear infinite}
.ps-road.moving .ps-car .trail{opacity:.7;animation:trail .5s linear infinite}
@keyframes trail{from{transform:translateX(0)}to{transform:translateX(-10px)}}
.ps-car .trail path{transform-origin:left center}
.ps-car svg{animation:bob 1.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-1.5px)}}
.ps-mode-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:3.2rem}
.ps-mode{text-align:left;font:inherit;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;display:flex;flex-direction:column;gap:.6rem;cursor:pointer;transition:transform .3s,box-shadow .3s,border-color .3s;color:var(--ink)}
.ps-mode h3{font-size:1.25rem}.ps-mode p{color:var(--slate);font-size:.95rem}
.ps-mode:hover{transform:translateY(-4px)}
.ps-mode.on{border-color:transparent;box-shadow:0 0 0 2px var(--p),0 30px 50px -30px rgba(143,24,255,.5)}
.ps-mode.on .ps-eyebrow{color:var(--p)}
@media (max-width:820px){.ps-mode-cards{grid-template-columns:1fr}.ps-road{margin-top:3.6rem}.ps-road-track{height:96px}.ps-car{width:96px}.ps-post .ps-sign{padding:.45rem .55rem;font-size:.75rem}.ps-post .ps-sign svg{width:16px;height:16px}.ps-post.p2 .ps-sign span,.ps-post .ps-sign{gap:.35rem}}
@media (max-width:560px){.ps-post .ps-sign{font-size:0;gap:0;padding:.5rem}.ps-post .ps-sign svg{width:18px;height:18px}}

/* ---------- packages ---------- */
.ps-pk-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.ps-pk-group{background:var(--mist);border-radius:var(--r);padding:1.2rem;display:flex;flex-direction:column;gap:.7rem}
.ps-pk-title{font-size:.8rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--slate);padding:.4rem .4rem .2rem}
.ps-pk{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.1rem 1.2rem;display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:start;transition:transform .3s,box-shadow .3s}
.ps-pk:hover{transform:translateY(-3px);box-shadow:0 24px 40px -30px rgba(26,22,22,.35)}
.ps-pk b{grid-column:2;grid-row:1/3;font-size:.78rem;font-weight:800;letter-spacing:.04em;padding:.35rem .6rem;border-radius:999px;background:var(--grad);color:#fff;white-space:nowrap;align-self:start;font-variant-numeric:tabular-nums}
.ps-pk h4{margin:0;font-size:1rem;letter-spacing:-.01em;grid-column:1}
.ps-pk p{grid-column:1;color:var(--slate);font-size:.88rem}
.ps-training{margin-top:1.4rem;display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;padding:1.2rem 1.4rem;border:1px solid var(--line);border-radius:18px}
.ps-training ul{list-style:none;margin:0;padding:0;display:flex;gap:.6rem;flex-wrap:wrap}
.ps-training li{font-size:.85rem;font-weight:600;color:var(--slate);padding:.45rem .8rem;border-radius:999px;background:var(--lav);display:flex;gap:.5rem;align-items:center}
.ps-training li b{color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:900px){.ps-pk-groups{grid-template-columns:1fr}}

/* ---------- roadmap ---------- */
.ps-roadmap{background:#fff}
.ps-disc{list-style:none;margin:0 0 2.6rem;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;counter-reset:d}
.ps-disc li{position:relative;padding:1.4rem 1.4rem 1.4rem;border-radius:20px;background:var(--mist);display:flex;flex-direction:column;gap:.4rem}
.ps-disc li span{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;font-weight:800;display:grid;place-items:center;font-size:.9rem;margin-bottom:.4rem}
.ps-disc li::after{content:"";position:absolute;right:-1rem;top:2.4rem;width:1rem;height:2px;background:var(--dot)}
.ps-disc li:last-child::after{display:none}
.ps-disc p{color:var(--slate);font-size:.9rem}
.ps-gantt{display:grid;gap:.55rem}
.ps-g-row{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:.6rem}
.ps-g-row>span{font-size:.9rem;font-weight:700;color:var(--ink)}
.ps-g-cols{display:grid;grid-template-columns:repeat(22,minmax(0,1fr));gap:0;position:relative}
.g-head .ps-g-cols{height:1.2rem}
.g-head b{font-size:.72rem;font-weight:800;letter-spacing:.1em;color:var(--gray);text-transform:uppercase;white-space:nowrap;justify-self:start}
.ps-g-cols i{display:block;height:28px;border-radius:999px;background:var(--grad);box-shadow:0 10px 20px -12px rgba(143,24,255,.6);transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.ps-g-row.hyper i{background:var(--lav);border:2px dashed var(--p);box-shadow:none}
.ps-gantt.in .ps-g-cols i{transform:scaleX(1)}
.ps-gantt .ps-g-row:nth-child(3) i{transition-delay:.15s}.ps-gantt .ps-g-row:nth-child(4) i{transition-delay:.3s}.ps-gantt .ps-g-row:nth-child(5) i{transition-delay:.45s}.ps-gantt .ps-g-row:nth-child(6) i{transition-delay:.6s}
@media (max-width:900px){.ps-disc{grid-template-columns:repeat(2,1fr)}.ps-disc li::after{display:none}.g-head b:nth-child(n+3){display:none}.ps-g-row{grid-template-columns:110px 1fr}.ps-g-row>span{font-size:.8rem}}

/* ---------- team ---------- */
.ps-team{background:var(--mist)}
.ps-people{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.ps-person{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;transition:transform .35s,box-shadow .35s}
.ps-person:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(26,22,22,.35)}
.ps-person .ps-photo{display:block;width:100%;aspect-ratio:4/5;border-radius:20px;overflow:hidden;margin-bottom:1rem;background:var(--lav);position:relative}
.ps-person .ps-photo::after{content:"";position:absolute;inset:0;border-radius:20px;box-shadow:inset 0 0 0 1px rgba(26,22,22,.06)}
.ps-person img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ps-person:hover img{transform:scale(1.04)}
/* hover reveal: the "in action" shot opens from the centre in a circle while the still cools and steps back */
.ps-person .ps-photo img.alt{position:absolute;inset:0;opacity:0;transform:scale(1.12);clip-path:circle(0% at 50% 58%);transition:clip-path .8s cubic-bezier(.2,.7,.2,1),opacity .35s,transform 1s cubic-bezier(.2,.7,.2,1)}
.ps-person:hover .ps-photo img.alt,.ps-person:focus-within .ps-photo img.alt{opacity:1;transform:scale(1);clip-path:circle(75% at 50% 58%)}
.ps-person:has(img.alt):hover .ps-photo img:not(.alt){transform:scale(1.06);filter:saturate(.6) brightness(.9)}
.ps-person .ps-photo::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%);transform:translateX(-120%);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.ps-person:hover .ps-photo::before{transform:translateX(120%)}
.ps-person h3{font-size:1.1rem}
.ps-person p{color:var(--slate);font-size:.95rem}
@media (max-width:1000px){.ps-people{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.ps-people{grid-template-columns:1fr}.ps-person{flex-direction:row;align-items:center;gap:1rem}.ps-person .ps-photo{width:96px;flex:0 0 96px;margin:0}.ps-person h3{font-size:1.05rem}}

/* ---------- what we don't do ---------- */
.ps-not{padding:4rem 0}
.ps-not-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.5rem;align-items:center;padding:2.2rem;border-radius:var(--r);border:1px solid var(--line)}
.ps-not h2{font-size:clamp(1.6rem,3vw,2.4rem)}
.ps-not ul{list-style:none;margin:0;padding:0;display:grid;gap:.8rem;color:var(--slate)}
.ps-not li{padding-left:1.4rem;position:relative}
.ps-not li::before{content:"";position:absolute;left:0;top:.7em;width:10px;height:2px;background:var(--p)}
.ps-not li b{color:var(--ink)}
@media (max-width:760px){.ps-not-grid{grid-template-columns:1fr}}

/* ---------- stage ---------- */
.ps-stage{position:relative;overflow:hidden;text-align:center;padding:8rem 0;background:var(--ink);color:#fff}
.ps-stage::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1.2px,transparent 1.3px);background-size:22px 22px;opacity:.5}
.ps-stage .ps-shell{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.ps-stage .ps-eyebrow{color:rgba(255,255,255,.65)}
.ps-stage h2{font-size:clamp(2.8rem,7vw,5.4rem);background:linear-gradient(90deg,#fff,#d9c6ff 50%,#fff);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:shine 6s linear infinite}
@keyframes shine{to{background-position:-200% 0}}
.ps-stage p{color:rgba(255,255,255,.72);max-width:42ch}
.ps-stage .ps-btn{box-shadow:0 0 0 1px rgba(255,255,255,.15),0 20px 50px -18px rgba(189,46,255,.8)}
.ps-halo{position:absolute;left:50%;top:50%;width:min(140vw,1100px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:conic-gradient(from 0deg,transparent 0 60%,rgba(143,24,255,.9) 78%,rgba(189,46,255,.9) 86%,transparent 100%);
  -webkit-mask:radial-gradient(circle,transparent 62%,#000 63%,#000 64.5%,transparent 65.5%);mask:radial-gradient(circle,transparent 62%,#000 63%,#000 64.5%,transparent 65.5%);animation:halo 14s linear infinite}
@keyframes halo{to{transform:translate(-50%,-50%) rotate(360deg)}}
.ps-halo.ps-b{width:min(100vw,760px);animation-duration:22s;animation-direction:reverse;opacity:.6}
.ps-orbs{position:absolute;inset:0;pointer-events:none}
.ps-orbs i{position:absolute;border-radius:50%;background:var(--grad);opacity:.22;filter:blur(30px);animation:float 7s ease-in-out infinite}



@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  body.js .ps-rv:not(.in){opacity:1;transform:none}
}

.ps-page main{padding-top:var(--nav-h,76px)}
.ps-page h1,.ps-page h2,.ps-page h3{margin:0;text-wrap:balance;letter-spacing:-.02em;line-height:1.02}
.ps-page p{margin:0}
.ps-disc{counter-reset:d}.ps-disc li span::before{counter-increment:d;content:counter(d)}.ps-svc-index li:nth-child(1) span::before{content:"01"}.ps-svc-index li:nth-child(2) span::before{content:"02"}.ps-svc-index li:nth-child(3) span::before{content:"03"}.ps-svc-index li:nth-child(4) span::before{content:"04"}.ps-svc-index li:nth-child(5) span::before{content:"05"}.ps-svc-index li:nth-child(6) span::before{content:"06"}.ps-svc-index li:nth-child(7) span::before{content:"07"}.ps-svc-stage:not(.live) .ps-scene:first-child{opacity:1;transform:none;pointer-events:auto}.g-head b:first-child::before{content:"Week "}.ps-gantt .ps-g-cols i{transform:none;animation:ps-grow 1.1s cubic-bezier(.2,.7,.2,1) both}@keyframes ps-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ===== hero constellation: customer success in the centre (2026-09-17) ===== */
.hx{overflow:visible}
.hx-core{transform-box:fill-box;transform-origin:center;animation:hxin 1s cubic-bezier(.2,.7,.2,1) both .1s}
@keyframes hxin{from{transform:scale(.88);opacity:0}to{transform:none;opacity:1}}
.hx-badge{transform-box:fill-box;transform-origin:center;animation:hxbadge 4.2s ease-in-out infinite}
@keyframes hxbadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.hx-chip{transform-box:fill-box;transform-origin:center;animation:hxup .85s cubic-bezier(.2,.7,.2,1) both}
.hx-chip.c1{animation-delay:.3s}.hx-chip.c2{animation-delay:.42s}.hx-chip.c3{animation-delay:.54s}.hx-chip.c4{animation-delay:.66s}
@keyframes hxup{from{transform:translateY(16px) scale(.94);opacity:0}to{transform:none;opacity:1}}
.hx-in{transform-box:fill-box;transform-origin:center;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.hx-chip:hover .hx-in{transform:translateY(-5px) scale(1.035)}
.hx-pulse{transform-box:view-box;transform-origin:400px 400px;opacity:0;animation:hxpulse 5s ease-out infinite}
.hx-pulse.p2{animation-delay:2.5s}
@keyframes hxpulse{0%{transform:scale(.9);opacity:.45}70%{opacity:0}100%{transform:scale(1.48);opacity:0}}
.hx-arc{stroke-dasharray:7 10;animation:hxdash 2.8s linear infinite}
@keyframes hxdash{to{stroke-dashoffset:-34}}
.hx-dot{opacity:0}
@supports (offset-path:path("M0 0")){
  .hx-dot{offset-rotate:0deg;animation:hxflow 4.6s cubic-bezier(.5,0,.5,1) infinite}
  .hx-dot.d1{offset-path:path("M138 180 C 138 252 196 276 268 276")}
  .hx-dot.d2{offset-path:path("M662 180 C 662 252 604 276 532 276");animation-delay:1.15s}
  .hx-dot.d3{offset-path:path("M662 620 C 662 548 604 524 532 524");animation-delay:2.3s}
  .hx-dot.d4{offset-path:path("M138 620 C 138 548 196 524 268 524");animation-delay:3.45s}
  @keyframes hxflow{0%{offset-distance:0%;opacity:0}15%{opacity:1}85%{opacity:1}100%{offset-distance:100%;opacity:0}}
}
.hx-star{transform-box:fill-box;transform-origin:center;animation:hxtw 3.6s ease-in-out infinite}
.hx-star.s2{animation-delay:1.2s}.hx-star.s3{animation-delay:2.4s}
@keyframes hxtw{0%,100%{transform:scale(.7);opacity:.25}50%{transform:scale(1.1);opacity:.85}}
@media (max-width:900px){.hx-chip.c1,.hx-chip.c3{transform:none}}
@media (prefers-reduced-motion:reduce){
  .hx-core,.hx-chip,.hx-badge,.hx-pulse,.hx-arc,.hx-dot,.hx-star{animation:none}
  .hx-core,.hx-chip{opacity:1;transform:none}
  .hx-pulse{opacity:.18}
}

/* ===== service scene "box": a real isometric box that opens (2026-09-17) ===== */
.ps-scene.on .sc-lid{transform-box:fill-box;transform-origin:center;animation:sclid 3.4s cubic-bezier(.4,0,.3,1) infinite}
@keyframes sclid{0%,100%{transform:translate(0,0)}45%,62%{transform:translate(-104px,-58px)}}
.ps-scene.on .sc-pop{transform-box:fill-box;transform-origin:center bottom;animation:scpop 3.4s cubic-bezier(.4,0,.3,1) infinite}
@keyframes scpop{0%,100%{transform:translateY(16px);opacity:.25}45%,62%{transform:translateY(-8px);opacity:1}}
.ps-scene.on .sc-glow{transform-box:fill-box;transform-origin:center;animation:scglow 3.4s ease-in-out infinite}
@keyframes scglow{0%,100%{opacity:0;transform:scale(.6)}50%{opacity:.55;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .ps-scene.on .sc-lid,.ps-scene.on .sc-pop,.ps-scene.on .sc-glow{animation:none}
  .ps-scene.on .sc-pop{transform:translateY(-4px);opacity:1}
  .ps-scene.on .sc-lid{transform:translate(-104px,-58px)}
}

/* ===== engagement modes: "who owns what" - chips glide between the three columns on their own (2026-09-18) ===== */
.ps-modes{--you:#cfc6ec}
.ps-own-panel{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:2rem 2.2rem;box-shadow:0 34px 60px -52px rgba(26,22,22,.55);overflow:hidden}
.ps-own-panel::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--dot) 1.2px,transparent 1.3px);background-size:22px 22px;opacity:.35;pointer-events:none}
.ps-own-panel>*{position:relative}
.ps-adapt{margin:1.6rem 0 0;color:var(--slate);max-width:74ch;font-size:1rem}
.ps-av{display:inline-block;width:26px;height:26px;border-radius:50%;background:var(--you);position:relative;border:2px solid #fff;flex:none}
.ps-av::before{content:"";position:absolute;left:50%;top:5px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#fff}
.ps-av::after{content:"";position:absolute;left:50%;top:13px;width:14px;height:8px;margin-left:-7px;border-radius:7px 7px 2px 2px;background:#fff}
.ps-av.ps{background:var(--grad)}.ps-av.you::before,.ps-av.you::after{opacity:.9}
.ps-faces{display:inline-flex;align-items:center}.ps-faces .ps-av+.ps-av{margin-left:-9px}
.ps-own{display:grid;grid-template-columns:170px 1fr;gap:1rem 1.4rem;align-items:center}
.ps-own .ps-hd{grid-column:2;display:grid;grid-template-columns:1fr 1fr 1fr;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);text-align:center}
.ps-own .ps-hd b:first-child{color:var(--p)}
.ps-own .ps-row{display:contents}
.ps-own .ps-name{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.95rem}
.ps-own .ps-name svg{width:20px;height:20px;color:var(--p);flex:none}
.ps-own .ps-lane{position:relative;height:52px;border-radius:999px;background:#f6f4fc;border:1px solid var(--line)}
.ps-own .ps-lane::before,.ps-own .ps-lane::after{content:"";position:absolute;top:8px;bottom:8px;width:1px;background:var(--line)}
.ps-own .ps-lane::before{left:33.33%}.ps-own .ps-lane::after{left:66.66%}
.ps-own .ps-chip{position:absolute;top:6px;height:38px;left:var(--x,16.66%);transform:translateX(-50%);display:inline-flex;align-items:center;gap:.6rem;padding:0 1rem 0 .35rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.82rem;font-weight:700;color:var(--ink);white-space:nowrap;box-shadow:0 12px 24px -16px rgba(26,22,22,.6);transition:left 1.7s cubic-bezier(.45,0,.2,1)}
.ps-own .ps-chip .ps-faces .ps-av{width:28px;height:28px}
.ps-own .ps-chip.o0{--x:16.66%}.ps-own .ps-chip.o1{--x:50%}.ps-own .ps-chip.o2{--x:83.33%}
/* occasional PS support on a "you" chip: a guest avatar fades in and out, chip width stays stable */
.ps-own .ps-chip.o2 .ps-faces{position:relative;padding-left:19px}
.ps-own .ps-chip .ps-faces .ps-av.guest{position:absolute;left:0;top:0;margin:0;opacity:0;pointer-events:none;animation:psguest 4s ease-in-out infinite;animation-delay:calc(1.2s + var(--k,0)*.7s)}
@keyframes psguest{0%,40%,100%{opacity:0}9%,29%{opacity:1}}
.ps-own .ps-chip .ps-faces .guest+.ps-av{margin-left:0}
.ps-mode{cursor:default}.ps-mode:hover{transform:none}
@media (max-width:760px){.ps-own{grid-template-columns:1fr;gap:.5rem 0}.ps-own .ps-hd{grid-column:1}.ps-own .ps-name{margin-top:.6rem}.ps-own-panel{padding:1.4rem}}
@media (prefers-reduced-motion:reduce){.ps-own .ps-chip{transition:none}.ps-own .ps-av.guest{animation:none}}

/* ===== service scene "puzzle": four pieces that assemble ===== */
.ps-scene.on .sc-fit-b{transform-box:fill-box;transform-origin:center;animation:scfitb 4.2s cubic-bezier(.3,0,.2,1) infinite}
@keyframes scfitb{0%,6%{transform:translate(92px,-12px) rotate(6deg);opacity:0}28%,100%{transform:none;opacity:1}}
.ps-scene.on .sc-fit-c{transform-box:fill-box;transform-origin:center;animation:scfitc 4.2s cubic-bezier(.3,0,.2,1) infinite}
@keyframes scfitc{0%,20%{transform:translate(-34px,74px) rotate(-7deg);opacity:0}44%,100%{transform:none;opacity:1}}
.ps-scene.on .sc-fit-d{transform-box:fill-box;transform-origin:center;animation:scfitd 4.2s cubic-bezier(.3,0,.2,1) infinite}
@keyframes scfitd{0%,36%{transform:translate(76px,80px) rotate(9deg);opacity:0}60%,100%{transform:none;opacity:1}}
.ps-scene.on .sc-snap{transform-box:fill-box;transform-origin:center}
.ps-scene.on .sc-snap.s1{animation:scsnap 4.2s ease-out infinite}
.ps-scene.on .sc-snap.s2{animation:scsnap 4.2s ease-out infinite;animation-delay:.7s}
@keyframes scsnap{0%,24%{opacity:0;transform:scale(.45)}30%{opacity:.75;transform:scale(1)}52%,100%{opacity:0;transform:scale(2.1)}}
@media (prefers-reduced-motion:reduce){
  .ps-scene.on .sc-fit-b,.ps-scene.on .sc-fit-c,.ps-scene.on .sc-fit-d,.ps-scene.on .sc-snap{animation:none}
}
/* ===== one team, many experts (2026-10-07): static clover, no motion ===== */
.ps-experts{padding:3.5rem 0;background:radial-gradient(55% 80% at 52% 40%,#f1eaff 0,rgba(241,234,255,0) 70%),linear-gradient(180deg,#fff,var(--mist))}
.ps-experts h2,.ps-experts h3{margin:0;text-wrap:balance;letter-spacing:-.02em;line-height:1.02}
.ps-experts p{margin:0}
.ps-x-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,.62fr);gap:2rem;align-items:center;margin-bottom:1.8rem}
.ps-experts .ps-x-ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}
.ps-x-intro .ps-eyebrow{display:block;margin-bottom:.7rem;color:var(--p)}
.ps-x-intro h2{font-size:clamp(1.9rem,3.3vw,2.8rem);font-weight:800;margin-bottom:.9rem}
.ps-x-intro p{color:var(--slate);font-size:.95rem;max-width:44ch;margin-bottom:1.4rem}
.ps-x-clover{position:relative;width:100%;max-width:420px;aspect-ratio:1;margin:auto;isolation:isolate}
.ps-x-clover .ps-x-role{display:contents}
.ps-x-clover .ps-x-blob{position:absolute;left:var(--bx);top:var(--by);width:49%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:var(--c);mix-blend-mode:multiply;opacity:.62}
.ps-x-clover .ps-x-lbl{position:absolute;left:var(--lx);top:var(--ly);z-index:1;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;font-size:.76rem;font-weight:700;line-height:1.2;color:#3a1670;width:7.2rem}
.ps-x-clover .ps-x-lbl .ps-x-ic{color:var(--p)}
.ps-x-clover .ps-x-role:nth-child(1){--bx:50%;--by:31%;--lx:50%;--ly:19.5%;--c:#d6c0ff}
.ps-x-clover .ps-x-role:nth-child(2){--bx:68.07%;--by:44.13%;--lx:79.01%;--ly:40.58%;--c:#c4d8ff}
.ps-x-clover .ps-x-role:nth-child(3){--bx:61.17%;--by:65.37%;--lx:67.93%;--ly:74.67%;--c:#f5c3e6}
.ps-x-clover .ps-x-role:nth-child(4){--bx:38.83%;--by:65.37%;--lx:32.07%;--ly:74.67%;--c:#bfe8d4}
.ps-x-clover .ps-x-role:nth-child(5){--bx:31.93%;--by:44.13%;--lx:20.99%;--ly:40.58%;--c:#ffd6c4}
.ps-x-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:18px;padding:.95rem 0;box-shadow:0 24px 50px -40px rgba(60,20,120,.45)}
.ps-x-stat{display:flex;align-items:center;gap:.8rem;padding:0 1.5rem;border-left:1px solid var(--line)}
.ps-x-stat:first-child{border-left:0}
.ps-experts .ps-x-stat .ps-x-ic{width:30px;height:30px;color:var(--p);stroke-width:1.5}
.ps-x-stat b{display:block;font-size:1.6rem;font-weight:800;letter-spacing:-.02em;line-height:1}
.ps-x-stat span{color:var(--slate);font-size:.8rem;line-height:1.25;display:block;margin-top:.2rem}
.ps-x-loc .ps-x-hd{display:flex;gap:.6rem;align-items:flex-start}
.ps-experts .ps-x-hd>.ps-x-ic{width:28px;height:28px;color:var(--p);stroke-width:1.6;margin-top:.1rem}
.ps-x-loc .ps-eyebrow{display:block;font-size:10.5px;margin-bottom:.3rem}
.ps-x-loc h3{font-size:1.2rem;font-weight:800;line-height:1.1}
.ps-x-loc ul{list-style:none;padding:0;margin:.7rem 0 .2rem;display:flex;flex-wrap:wrap;gap:.25rem .8rem;color:var(--slate);font-size:.84rem}
.ps-x-loc li{display:flex;align-items:center;gap:.35rem}
.ps-x-loc li i{width:8px;height:8px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 3px rgba(143,24,255,.15)}
.ps-x-loc li i.ps-x-remote{background:none;border:1.5px dashed var(--p);box-shadow:none}
.ps-x-sub{color:var(--slate);font-size:.84rem}
@media (max-width:1000px){.ps-x-grid{grid-template-columns:1fr 1fr}.ps-x-intro{grid-column:1/-1}}
@media (max-width:860px){.ps-x-stats{grid-template-columns:1fr 1fr;row-gap:1rem}.ps-x-stat:nth-child(3){border-left:0}}
@media (max-width:640px){.ps-x-grid{grid-template-columns:1fr}}
@media (max-width:420px){.ps-x-clover .ps-x-lbl{font-size:.68rem;width:5.6rem}.ps-x-clover .ps-x-lbl .ps-x-ic{width:18px;height:18px}}
/* ===== end one team, many experts ===== */
