/* =====================================================================
   PROFESSIONAL SERVICES (AU) - ps.css  (2026-11-05)
   Pages: /professional-services/ (1701), /ai-llm-compliance-consultancy/
   (4184) and /private-llm-data-setup/ (4185). Enqueued by slug in
   functions.php, together with ps.js.

   1. HEIGHT-MATCHED SPLITS  .ps-split
      Sits on top of the shared .cap-split / .dfeat-grid.split-match
      geometry (the copy column stays the wider one). The visual column
      stretches to the full row height and the mock's .ps-grow area takes
      up the difference, so a tall copy block never sits beside a short
      diagram.
   2. DIAGRAM MOTION  .ps-anim / .ps-in
      The finished diagram is the DEFAULT state. Entrance start states only
      apply while html.ps-js is set (in <head>) and ps.js has not yet marked
      the diagram .ps-in, so no-JS and reduced-motion visitors always see the
      complete picture. Looping motion sits inside
      prefers-reduced-motion:no-preference. Transform, opacity and stroke
      only. No coloured shadows anywhere (house rule).
   ===================================================================== */

.ps-anim{
  --ps-bg:#10172a;--ps-panel:#0e1322;--ps-cell:#141b2e;--ps-line:#1d2436;--ps-line2:#2b3349;
  --ps-text:#e2e4eb;--ps-muted:#9096a3;--ps-dim:#646b7c;
  --ps-red:#d56f7c;--ps-red2:#c14b55;--ps-blue:#6288b3;--ps-blue2:#9ab2ce;
  --ps-green:#5fd38d;--ps-amber:#f3c04f;--ps-ease:cubic-bezier(.22,1,.36,1)
}

/* ---------- 1. height-matched split ---------- */
/* .wrap.ps-split matches the (0,2,0) weight of .dfeat-grid.split-match, and
   ps.css loads after it, so stretch wins over the shared align-items:center */
.wrap.ps-split{align-items:stretch}
.ps-split>.cap-copy,.ps-split>.dfeat-copy{align-self:center}
.ps-split>.cap-stage,.ps-split>.dfeat-visual{display:flex;flex-direction:column;min-width:0;max-width:none;margin:0;padding:0}
.ps-split.ps-rev{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr)}
.app-frame.ps-frame{flex:1 1 auto;height:auto;min-height:470px;display:flex;flex-direction:column}
.app-frame.ps-frame>.app-body{flex:1 1 auto;display:flex;flex-direction:column;gap:12px;overflow:hidden;font-family:'Inter',sans-serif;color:var(--ps-text)}
.hero .app-frame.ps-frame{min-height:0}
.ps-grow{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
@media(max-width:1160px){
  .ps-split.ps-rev{grid-template-columns:minmax(0,1fr)}
  .ps-split.ps-rev>:first-child{order:2}
  .app-frame.ps-frame{min-height:0}
}
@media(max-width:920px){.app-frame.ps-frame>.app-body{overflow:visible}}
/* in-copy links (light sections) read as links */
.ps-split .cap-copy .kyl-inc a,.faq-grid .faq a{color:#be424d;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.ps-split .cap-copy .kyl-inc a:hover,.faq-grid .faq a:hover{color:#a33841}

/* ---------- shared mock parts ---------- */
.ps-panel{background:var(--ps-panel);border:1px solid var(--ps-line);border-radius:10px;padding:12px 14px;min-width:0}
.ps-ph{display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ps-muted);padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--ps-line)}
.ps-ph em{margin-left:auto;font-style:normal;letter-spacing:.04em;color:var(--ps-dim)}
.ps-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:9.5px;font-weight:600;color:var(--ps-muted)}
.ps-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:-1px;background:var(--c)}
.ps-foot{margin-top:auto;padding-top:9px;border-top:1px solid var(--ps-line);font-size:9px;color:var(--ps-muted)}
.ps-row{display:flex;align-items:center;gap:12px}
.ps-anim .tbl td .chip,.ps-anim .ps-flip .chip{white-space:nowrap}
.ps-anim .ekyc-tile b{font-variant-numeric:tabular-nums}

/* fade / slide in */
.ps-f{transition:opacity .6s var(--ps-ease) var(--d,0s),transform .6s var(--ps-ease) var(--d,0s)}
html.ps-js .ps-anim:not(.ps-in) .ps-f{opacity:0;transform:translateY(10px)}
html.ps-js .ps-anim:not(.ps-in) .ps-f.x{transform:translateX(-14px)}

/* pop in (HTML and SVG) */
.ps-pop{transform-box:fill-box;transform-origin:center;transition:opacity .45s ease var(--d,0s),transform .55s cubic-bezier(.34,1.56,.64,1) var(--d,0s)}
html.ps-js .ps-anim:not(.ps-in) .ps-pop{opacity:0;transform:scale(.55)}

/* status chip that changes once (e.g. REVIEW -> CONTROLS) */
.ps-flip{display:inline-grid;vertical-align:middle}
.ps-flip>*{grid-area:1/1;justify-self:center;transition:opacity .35s ease var(--d,1.6s),transform .35s ease var(--d,1.6s)}
.ps-flip>:first-child{opacity:0;transform:translateY(-5px)}
html.ps-js .ps-anim:not(.ps-in) .ps-flip>:first-child{opacity:1;transform:none}
html.ps-js .ps-anim:not(.ps-in) .ps-flip>:last-child{opacity:0;transform:translateY(5px)}

/* ---------- horizontal bars ---------- */
.ps-bars{display:flex;flex-direction:column;justify-content:space-around;gap:10px;flex:1 1 auto}
.ps-bar{display:grid;grid-template-columns:minmax(0,132px) minmax(0,1fr) 40px;align-items:center;gap:10px;font-size:10.5px;font-weight:600;color:var(--ps-text)}
.ps-bar label{color:var(--ps-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-bar b{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.ps-track{position:relative;height:8px;border-radius:99px;background:var(--ps-cell)}
.ps-track i{position:absolute;left:0;top:0;bottom:0;width:var(--w);border-radius:inherit;background:var(--c,var(--ps-blue));transform-origin:left center;transition:transform 1.1s var(--ps-ease) var(--d,.2s)}
.ps-track u{position:absolute;top:-4px;bottom:-4px;left:var(--t);width:2px;margin-left:-1px;border-radius:2px;background:var(--ps-text);transition:opacity .4s ease calc(var(--d,.2s) + .9s)}
html.ps-js .ps-anim:not(.ps-in) .ps-track i{transform:scaleX(0)}
html.ps-js .ps-anim:not(.ps-in) .ps-track u{opacity:0}
.ps-prog{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ps-muted)}
.ps-prog b{color:var(--ps-text);font-variant-numeric:tabular-nums}

/* ---------- SVG diagrams ---------- */
.ps-svg{position:relative;flex:1 1 auto;min-height:200px}
.ps-svg>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ps-svg.ps-fixed{flex:none;min-height:0;aspect-ratio:var(--ar,16/9)}
@media(max-width:1160px){.ps-svg{flex:none;min-height:0;aspect-ratio:var(--ar,4/3)}}
.ps-svg text{font-family:'Inter',sans-serif;font-weight:700}
.ps-svg .t{fill:var(--ps-text);font-size:12px}
.ps-svg .tm{fill:var(--ps-muted);font-size:9.5px;font-weight:600}
.ps-svg .ts{fill:var(--ps-dim);font-size:8.5px;font-weight:800;letter-spacing:.08em}
.ps-svg .tr{fill:var(--ps-red);font-size:9px;font-weight:800;letter-spacing:.06em}
.ps-svg .box{fill:var(--ps-panel);stroke:var(--ps-line2);stroke-width:1}
.ps-svg .box.acc{fill:#1b1524;stroke:var(--ps-red)}
.ps-svg .box.blue{stroke:var(--ps-blue)}
.ps-svg .box.ghost{fill:none;stroke:var(--ps-line2);stroke-dasharray:5 5}
.ps-svg .box.zone{fill:rgba(98,136,179,.05);stroke:var(--ps-blue);stroke-dasharray:6 6}
.ps-svg .box.zone.r{fill:rgba(213,111,124,.05);stroke:rgba(213,111,124,.75)}
.ps-svg .wire{fill:none;stroke:var(--ps-line2);stroke-width:1.5}
.ps-svg .wire.acc{stroke:rgba(213,111,124,.7)}
.ps-svg .wire.blue{stroke:rgba(98,136,179,.75)}
.ps-svg .grid{stroke:var(--ps-line);stroke-width:1}
.ps-svg .dot{fill:var(--ps-red)}
.ps-svg .dot.b{fill:var(--ps-blue2)}
.ps-svg .dot.g{fill:var(--ps-green)}
.ps-svg .dot.a{fill:var(--ps-amber)}
.ps-draw{stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1.3s cubic-bezier(.65,0,.35,1) var(--d,0s)}
html.ps-js .ps-anim:not(.ps-in) .ps-draw{stroke-dashoffset:1}
.ps-wipe{clip-path:inset(-4px -4px -4px -4px);transition:clip-path 1.6s var(--ps-ease) var(--d,0s)}
html.ps-js .ps-anim:not(.ps-in) .ps-wipe{clip-path:inset(-4px 100% -4px -4px)}
.ps-fade{transition:opacity .7s ease var(--d,0s)}
html.ps-js .ps-anim:not(.ps-in) .ps-fade{opacity:0}
.ps-dots{transition:opacity .6s ease var(--d,1.5s)}
html.ps-js .ps-anim:not(.ps-in) .ps-dots{opacity:0}
.ps-sweep{transform-box:view-box;transform-origin:var(--ox) var(--oy);transition:opacity .6s ease 1.6s}
html.ps-js .ps-anim:not(.ps-in) .ps-sweep{opacity:0}

/* ---------- vertical step list (with a highlight that walks the steps) ---------- */
.ps-steps{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:6px;flex:1 1 auto;--n:5;--cyc:10s}
.ps-steps:before{content:'';position:absolute;left:17px;top:22px;bottom:22px;width:2px;background:var(--ps-line2);transform-origin:top;transition:transform 1.8s var(--ps-ease) .2s}
html.ps-js .ps-anim:not(.ps-in) .ps-steps:before{transform:scaleY(0)}
.ps-step{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:5px 12px 5px 0;border-radius:10px}
.ps-step .n{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--ps-panel);border:1px solid var(--ps-line2);font-size:11px;font-weight:800;color:var(--ps-red)}
.ps-step .n svg{width:16px;height:16px}
.ps-step b{display:block;font-size:12.5px;font-weight:700;color:var(--ps-text)}
.ps-step span{display:block;font-size:10.5px;line-height:1.45;color:var(--ps-muted);margin-top:2px}
.ps-step .chip{white-space:nowrap}

/* ---------- chat ---------- */
.ps-chat{display:flex;flex-direction:column;gap:12px;flex:1 1 auto}
.ps-msg{max-width:90%;padding:11px 13px;border-radius:12px;font-size:12px;line-height:1.6}
.ps-msg.u{align-self:flex-end;background:#1d2a47;color:#eef1f6;border-bottom-right-radius:4px}
.ps-msg.a{align-self:flex-start;background:var(--ps-panel);border:1px solid var(--ps-line);color:var(--ps-text);border-bottom-left-radius:4px}
.ps-who{display:flex;align-items:center;gap:6px;font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ps-muted);margin-bottom:6px}
.ps-who i{width:16px;height:16px;border-radius:5px;background:var(--ps-red2);display:inline-grid;place-items:center;color:#fff;font-style:normal;font-size:9px}
.ps-cites{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ps-cite{font-size:9.5px;font-weight:700;color:var(--ps-blue2);background:rgba(98,136,179,.12);border:1px solid rgba(98,136,179,.3);border-radius:6px;padding:3px 7px}
.ps-logged{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:9px;font-weight:700;color:var(--ps-muted)}
.ps-logged:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ps-green)}
.ps-after{transition:opacity .5s var(--ps-ease),transform .5s var(--ps-ease)}
html.ps-js .ps-anim .ps-msg.a:not(.ps-done) .ps-after{opacity:0;transform:translateY(6px)}
.ps-think{display:none;gap:4px;padding:4px 0}
.ps-msg.ps-wait .ps-think{display:inline-flex}
.ps-think i{width:6px;height:6px;border-radius:50%;background:var(--ps-muted)}
.ps-caret{display:inline-block;width:7px;height:13px;margin-left:2px;vertical-align:-2px;background:var(--ps-red)}
/* follow-up exchange waits until the first answer has finished typing */
.ps-later{transition:opacity .5s var(--ps-ease) var(--d,0s),transform .5s var(--ps-ease) var(--d,0s)}
html.ps-js .ps-anim .ps-msg.a:not(.ps-done) ~ .ps-later{opacity:0;transform:translateY(8px)}
.ps-suggest{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.ps-suggest+.ps-input{margin-top:0}
.ps-suggest span{font-size:10px;font-weight:600;color:var(--ps-text);border:1px solid var(--ps-line2);border-radius:99px;padding:4px 10px}
.ps-input{margin-top:auto;display:flex;align-items:center;gap:10px;border:1px solid var(--ps-line2);border-radius:10px;padding:10px 12px;font-size:11px;color:var(--ps-dim);background:var(--ps-panel)}
.ps-input b{margin-left:auto;width:26px;height:26px;border-radius:7px;background:var(--ps-red2);display:grid;place-items:center;color:#fff;font-size:12px}

/* countdown wording swaps on the day (ps.js adds .ps-past) */
.ps-post{display:none}
.ps-past .ps-pre{display:none}
.ps-past .ps-post{display:inline}

/* ---------- accountability matrix ---------- */
.ps-raci{display:grid;grid-template-columns:minmax(0,1.9fr) repeat(5,minmax(0,1fr));grid-template-rows:auto;grid-auto-rows:1fr;gap:5px;flex:1 1 auto}
.ps-raci .h{font-size:8.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ps-muted);text-align:center;align-self:end;padding:0 2px 4px;line-height:1.25}
.ps-raci .h:first-child{text-align:left}
.ps-raci .r{font-size:10.5px;font-weight:600;color:var(--ps-text);align-self:center;line-height:1.3;padding-right:4px}
.ps-raci .c{align-self:center;display:grid;place-items:center;height:30px;border-radius:7px;font-size:11px;font-weight:800;background:var(--ps-cell);border:1px solid var(--ps-line);color:var(--ps-dim)}
.ps-raci .c.A{background:rgba(213,111,124,.16);border-color:rgba(213,111,124,.5);color:#f0a7b0}
.ps-raci .c.R{background:rgba(98,136,179,.18);border-color:rgba(98,136,179,.5);color:#c3d5e9}
.ps-raci .c.C{color:#cdd0d8}
.ps-raci .ps-sm{display:none}
@media(max-width:560px){
  .ps-raci{grid-template-columns:minmax(0,1.3fr) repeat(5,minmax(0,1fr));gap:4px}
  .ps-raci .h{font-size:7.5px;letter-spacing:0;text-transform:none;font-weight:700}
  .ps-raci .r{font-size:9.5px}
  .ps-raci .c{height:26px;font-size:10px}
  .ps-raci .ps-lg{display:none}
  .ps-raci .ps-sm{display:inline}
}

/* ---------- plan / Gantt ---------- */
.ps-gantt{--lab:118px;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:8px;flex:1 1 auto}
.ps-gh,.ps-g{display:grid;grid-template-columns:var(--lab) minmax(0,1fr);gap:10px;align-items:center}
.ps-gh div{display:grid;grid-template-columns:repeat(6,1fr);font-size:8.5px;font-weight:800;letter-spacing:.06em;color:var(--ps-dim);text-transform:uppercase}
.ps-g label{font-size:10.5px;font-weight:600;color:var(--ps-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-gt{position:relative;height:24px;border-radius:6px;background-color:var(--ps-cell);background-image:linear-gradient(90deg,var(--ps-line) 1px,transparent 1px);background-size:calc(100% / 6) 100%}
.ps-gt i{position:absolute;top:6px;bottom:6px;left:var(--s);width:var(--w);border-radius:4px;background:var(--c,var(--ps-blue));transform-origin:left center;transition:transform .9s var(--ps-ease) var(--d,0s)}
.ps-gt em{position:absolute;top:7px;left:var(--s);width:10px;height:10px;margin-left:-5px;border-radius:2px;background:var(--ps-amber);transform:rotate(45deg);transition:opacity .4s ease var(--d,0s)}
html.ps-js .ps-anim:not(.ps-in) .ps-gt i{transform:scaleX(0)}
html.ps-js .ps-anim:not(.ps-in) .ps-gt em{opacity:0}
.ps-today{position:absolute;top:18px;bottom:0;width:0;border-left:1.5px dashed var(--ps-red);left:calc(var(--lab) + 10px + (100% - var(--lab) - 10px) * var(--p,.6));transition:left 2.4s var(--ps-ease) .8s}
.ps-today b{position:absolute;bottom:-1px;left:5px;font-size:8.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ps-red);white-space:nowrap}
html.ps-js .ps-anim:not(.ps-in) .ps-today{left:calc(var(--lab) + 10px)}
.ps-log{display:flex;flex-direction:column;gap:7px}
.ps-log div{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:10.5px;color:var(--ps-text)}
.ps-log div>span:first-child{font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--ps-dim);text-transform:uppercase}

/* ---------- ring ---------- */
.ps-ringw{position:relative;width:104px;height:104px;flex:none}
.ps-ringw svg{width:100%;height:100%}
.ps-ringw circle{fill:none;stroke-width:9}
.ps-ringw .bg{stroke:var(--ps-cell)}
.ps-ringw .fg{stroke:var(--ps-red);stroke-dasharray:var(--v) 2;stroke-dashoffset:0;transform:rotate(-90deg);transform-origin:center;transform-box:fill-box;transition:stroke-dashoffset 1.6s var(--ps-ease) var(--d,.3s)}
html.ps-js .ps-anim:not(.ps-in) .ps-ringw .fg{stroke-dashoffset:var(--v)}
.ps-ringw div{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.ps-ringw b{font-size:22px;font-weight:800;color:var(--ps-text);line-height:1}
.ps-ringw span{font-size:8.5px;font-weight:700;letter-spacing:.06em;color:var(--ps-muted);text-transform:uppercase;margin-top:4px}
.ps-kv{display:flex;flex-direction:column;gap:9px;min-width:0}
.ps-kv div{display:flex;justify-content:space-between;gap:12px;font-size:10.5px;color:var(--ps-muted);border-bottom:1px dashed var(--ps-line);padding-bottom:7px}
.ps-kv div:last-child{border-bottom:0;padding-bottom:0}
.ps-kv b{color:var(--ps-text);font-weight:700;text-align:right}

/* ---------- document being prepared ---------- */
.ps-stages{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ps-stages:before,.ps-stages:after{content:'';position:absolute;top:11px;left:12.5%;right:12.5%;height:2px;background:var(--ps-line2)}
.ps-stages:after{background:var(--ps-green);right:auto;width:calc(75% * var(--p,.66));transform-origin:left;transition:transform 1.6s var(--ps-ease) .3s}
html.ps-js .ps-anim:not(.ps-in) .ps-stages:after{transform:scaleX(0)}
.ps-stage{position:relative;z-index:1;text-align:center;font-size:9.5px;font-weight:700;color:var(--ps-muted)}
.ps-stage i{display:grid;place-items:center;width:24px;height:24px;margin:0 auto 6px;border-radius:50%;border:1.5px solid var(--ps-line2);background:var(--ps-panel);font-style:normal;font-size:11px;font-weight:800;color:var(--ps-dim);transition:background .4s ease var(--d,0s),border-color .4s ease var(--d,0s),color .4s ease var(--d,0s)}
.ps-stage.done i{background:var(--ps-green);border-color:var(--ps-green);color:#06210f}
.ps-stage.now i{border-color:var(--ps-amber);color:var(--ps-amber)}
html.ps-js .ps-anim:not(.ps-in) .ps-stage i{background:var(--ps-panel);border-color:var(--ps-line2);color:var(--ps-dim)}
.ps-doc{position:relative;flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:14px;padding:14px 16px;background:#0b1020;border:1px solid var(--ps-line);border-radius:8px;overflow:hidden}
.ps-lines{display:flex;flex-direction:column;justify-content:space-around;gap:9px;min-height:180px}
.ps-ln{position:relative;height:7px;width:var(--w,100%);border-radius:4px;background:#232b40}
.ps-ln.h{height:11px;width:52%;background:#3a4560}
.ps-pii{position:absolute;top:-3px;bottom:-3px;left:var(--l);width:var(--pw);border-radius:3px;background:#05070d;outline:1px solid #3b4560}
html.ps-js .ps-anim:not(.ps-in) .ps-pii{background:transparent;outline-color:transparent}
.ps-tags{display:flex;flex-direction:column;justify-content:space-around;gap:8px;border-left:1px dashed var(--ps-line2);padding-left:12px}
.ps-tag{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:5px 7px;text-align:center}
.ps-tag.r{background:rgba(213,111,124,.14);color:#f0a7b0}
.ps-tag.a{background:rgba(243,192,79,.14);color:var(--ps-amber)}
.ps-tag.b{background:rgba(98,136,179,.16);color:#c3d5e9}
.ps-tag.g{background:rgba(95,211,141,.12);color:var(--ps-green)}
.ps-scan{position:absolute;left:0;right:0;top:0;height:2px;background:var(--ps-amber);opacity:0;pointer-events:none}

/* ---------- comparison table ---------- */
.ps-cmpw{flex:1 1 auto;display:flex}
.ps-cmp{width:100%;height:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-family:'Inter',sans-serif}
.ps-cmp th{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ps-muted);padding:0 6px 10px;text-align:center;border-bottom:1px solid var(--ps-line);vertical-align:bottom}
.ps-cmp th:first-child{text-align:left;width:38%}
.ps-cmp td{font-size:10.5px;font-weight:600;color:var(--ps-text);padding:8px 6px;border-bottom:1px solid var(--ps-line);text-align:center;vertical-align:middle;line-height:1.35}
.ps-cmp td:first-child{text-align:left}
.ps-cmp tr:last-child td{border-bottom:0}
.ps-cmp .best td{font-size:9.5px;font-weight:700;color:var(--ps-blue2)}
.ps-cmp .best td:first-child{color:var(--ps-text)}
.ps-yes,.ps-part,.ps-no{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:800;font-style:normal}
.ps-yes{background:rgba(95,211,141,.14);color:var(--ps-green)}
.ps-part{background:rgba(243,192,79,.14);color:var(--ps-amber)}
.ps-no{background:var(--ps-cell);color:var(--ps-dim)}

/* ---------- 4-step progress track above a dark .deliv-grid-4 ---------- */
.ps-track4{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:40px 0 18px;height:16px}
.ps-track4:before,.ps-track4>i{content:'';position:absolute;left:12.5%;right:12.5%;top:7px;height:2px;background:rgba(255,255,255,.14)}
.ps-track4>i{background:var(--ps-red);transform-origin:left center;transition:transform 2s var(--ps-ease) .2s}
.ps-track4>span{justify-self:center;position:relative;z-index:1;width:16px;height:16px;border-radius:50%;background:var(--ps-red);border:2px solid var(--ps-red);transition:background .4s ease var(--d,0s),border-color .4s ease var(--d,0s)}
html.ps-js .ps-track4.ps-anim:not(.ps-in)>i{transform:scaleX(0)}
html.ps-js .ps-track4.ps-anim:not(.ps-in)>span{background:#0a1531;border-color:rgba(255,255,255,.28)}
.ps-track4+.deliv-grid-4{margin-top:0}
.ps-out{margin:14px 0 0;padding-top:11px;border-top:1px solid rgba(255,255,255,.1);font-family:'Inter',sans-serif;font-size:11.5px;font-weight:700;line-height:1.45;color:#e9a3ad}
.ps-out span{display:block;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:3px}
@media(max-width:1000px){.ps-track4{display:none}.ps-track4+.deliv-grid-4{margin-top:40px}}

/* ---------- light-section chart cards (Data & BI previews) ---------- */
.ps-anim .spark{clip-path:inset(-4px -4px -4px -4px);transition:clip-path 1.6s var(--ps-ease) .25s}
html.ps-js .ps-anim:not(.ps-in) .spark{clip-path:inset(-4px 100% -4px -4px)}
.ps-anim .vfill{transform-origin:left center;transition:transform 1.1s var(--ps-ease) .15s}
.ps-anim .vbar:nth-child(2) .vfill{transition-delay:.25s}
.ps-anim .vbar:nth-child(3) .vfill{transition-delay:.35s}
.ps-anim .vbar:nth-child(4) .vfill{transition-delay:.45s}
.ps-anim .vbar:nth-child(5) .vfill{transition-delay:.55s}
.ps-anim .vbar:nth-child(6) .vfill{transition-delay:.65s}
html.ps-js .ps-anim:not(.ps-in) .vfill{transform:scaleX(0)}
.ps-anim .ring2{transition:transform 1.3s var(--ps-ease) .25s,opacity .8s ease .25s}
html.ps-js .ps-anim:not(.ps-in) .ring2{transform:rotate(-140deg) scale(.7);opacity:0}

/* ---------- looping motion (only when the visitor allows motion) ---------- */
@keyframes psStepOn{0%,100%{background:transparent}5%,20%{background:rgba(255,255,255,.04)}26%{background:transparent}}
@keyframes psStepN{0%,100%{background:var(--ps-panel);color:var(--ps-red);border-color:var(--ps-line2)}5%,20%{background:var(--ps-red2);color:#fff;border-color:var(--ps-red2)}26%{background:var(--ps-panel);color:var(--ps-red);border-color:var(--ps-line2)}}
@keyframes psBlink{50%{opacity:0}}
@keyframes psDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes psSpin{to{transform:rotate(360deg)}}
@keyframes psRedact{0%{background:transparent;outline-color:transparent}35%,65%{background:rgba(243,192,79,.55);outline-color:rgba(243,192,79,.85)}100%{background:#05070d;outline-color:#3b4560}}
@keyframes psScan{0%{top:0;opacity:0}8%,90%{opacity:.75}100%{top:100%;opacity:0}}
@keyframes psCellOn{0%,100%{background:transparent}6%,24%{background:rgba(98,136,179,.12)}30%{background:transparent}}
@media(prefers-reduced-motion:no-preference){
  .ps-in .ps-steps.ps-cycle .ps-step{animation:psStepOn var(--cyc) linear infinite;animation-delay:calc(2s + var(--i,0) * var(--cyc) / var(--n))}
  .ps-in .ps-steps.ps-cycle .ps-step .n{animation:psStepN var(--cyc) linear infinite;animation-delay:calc(2s + var(--i,0) * var(--cyc) / var(--n))}
  .ps-caret{animation:psBlink 1s steps(1) infinite}
  .ps-think i{animation:psDot 1.1s ease-in-out infinite}
  .ps-think i:nth-child(2){animation-delay:.15s}
  .ps-think i:nth-child(3){animation-delay:.3s}
  .ps-in .ps-sweep{animation:psSpin 7s linear infinite}
  .ps-in .ps-pii{animation:psRedact 1.2s ease var(--d,0s) both}
  .ps-in .ps-scan{animation:psScan 3.6s linear 1s infinite}
  .ps-in .ps-cmp.ps-cycle td:nth-child(2){animation:psCellOn 9s linear 2.2s infinite}
  .ps-in .ps-cmp.ps-cycle td:nth-child(3){animation:psCellOn 9s linear 5.2s infinite}
  .ps-in .ps-cmp.ps-cycle td:nth-child(4){animation:psCellOn 9s linear 8.2s infinite}
}
@media(prefers-reduced-motion:reduce){.ps-dots,.ps-sweep,.ps-scan{display:none}}
