/* Olsomedia motion kit — namespaced styles, no dependencies. */
.om-motion{--om-ink:#17151e;--om-muted:#6f6c76;--om-line:#e8e6eb;--om-violet:var(--accent);--om-paper:#fff;font-family:inherit;color:var(--om-ink)}
.om-hero-visual{position:relative;isolation:isolate;overflow:hidden;min-height:380px;padding:clamp(22px,4vw,48px);border:1px solid var(--om-line);border-radius:4px;background:radial-gradient(ellipse at 54% 46%,var(--accent-soft) 0,rgba(120,73,209,.08) 27%,transparent 67%),var(--om-paper)}
.om-hero-visual__caption{position:absolute;top:24px;left:28px;z-index:2;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--om-muted)}
.om-flow{display:block;width:100%;height:100%;min-height:320px}
.om-flow__wire{fill:none;stroke:#d8d2e2;stroke-width:1.5;stroke-dasharray:5 8}
.om-flow__pulse{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:1 20;animation:om-flow-dash 3.4s linear infinite}
.om-flow__pulse--slow{animation-duration:4.7s;animation-delay:-1.8s;stroke:var(--accent-ink)}
.om-flow__node{fill:#fff;stroke:#dcd7e4;stroke-width:1.5;filter:drop-shadow(0 8px 22px rgba(33,23,52,.07))}
.om-flow__core{fill:#211b2b}.om-flow__accent{fill:var(--om-violet)}
.om-flow__icon{fill:none;stroke:#37313f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.om-flow__label{font-family:inherit;font-size:13px;font-weight:700;fill:#201d25}.om-flow__sub{font-family:inherit;font-size:10px;font-weight:500;fill:#77717e;letter-spacing:.04em}
.om-flow__spark{transform-box:fill-box;transform-origin:center;animation:om-spark 2.6s ease-in-out infinite}
.om-flow__spark:nth-of-type(2){animation-delay:-1.2s}
@keyframes om-flow-dash{to{stroke-dashoffset:-84}}
@keyframes om-spark{0%,100%{opacity:.35;transform:scale(.75)}50%{opacity:1;transform:scale(1.25)}}
.om-clients{overflow:hidden;padding:24px 0;border-block:1px solid var(--om-line);background:#fff}
.om-clients__eyebrow{margin:0 0 20px;text-align:center;color:var(--om-muted);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.om-marquee{position:relative;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.om-marquee__track{display:flex;width:max-content;animation:om-marquee-scroll 38s linear infinite;will-change:transform}
.om-marquee:hover .om-marquee__track,.om-marquee:focus-within .om-marquee__track{animation-play-state:paused}
.om-marquee__group{display:flex;flex:0 0 auto;align-items:center;gap:clamp(42px,7vw,110px);padding:6px clamp(21px,3.5vw,55px)}
.om-client{display:inline-flex;align-items:center;justify-content:center;min-width:max-content;min-height:42px;color:#45414b;text-decoration:none;filter:grayscale(1);opacity:.78;transition:opacity .2s ease,filter .2s ease,transform .2s ease}
.om-client:hover,.om-client:focus-visible{filter:none;opacity:1;transform:translateY(-2px);outline-offset:5px}
.om-client__logo{display:block;width:auto;height:34px;max-width:180px;object-fit:contain}.om-client__logo--pwc{height:46px;max-width:96px}.om-client__logo--eon{height:29px;max-width:94px}.om-client__logo--khnp{height:32px;max-width:155px}.om-client__logo--nrsr{height:29px;max-width:170px}.om-client__logo--ellano{height:36px;max-width:145px}.om-client__logo--wflow{height:32px;max-width:126px}
@keyframes om-marquee-scroll{to{transform:translateX(-50%)}}
@media(max-width:700px){.om-hero-visual{min-height:280px;padding:20px 12px}.om-hero-visual__caption{top:15px;left:16px}.om-flow{min-height:250px}.om-flow__label{font-size:12px}.om-clients{padding:20px 0}.om-marquee__track{animation-duration:30s}.om-marquee__group{gap:40px}}
@media(prefers-reduced-motion:reduce){.om-flow__pulse,.om-flow__spark,.om-marquee__track{animation:none!important}.om-marquee__track{width:100%;justify-content:center;flex-wrap:wrap}.om-marquee__group[aria-hidden=true]{display:none}.om-marquee__group{flex-wrap:wrap;justify-content:center;gap:18px 32px}.om-marquee{mask-image:none;-webkit-mask-image:none}}

/* Accessible logo strip: native horizontal scrolling plus a resumable, non-jumping loop. */
.om-clients__controls{display:flex;justify-content:flex-end;align-items:center;gap:8px;max-width:1350px;margin:0 auto 8px;padding:0 clamp(18px,4vw,40px)}
.om-marquee-control{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--om-line);background:#fff;color:var(--om-ink);font:600 13px/1.2 Inter,Arial,system-ui,sans-serif;cursor:pointer}
.om-marquee-control[hidden]{display:none}.om-marquee-control:disabled{display:none}.om-marquee-control:focus-visible{outline:3px solid var(--om-violet);outline-offset:3px}
.om-marquee{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:none;cursor:grab;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.om-marquee::-webkit-scrollbar{display:none}.om-marquee.is-dragging{cursor:grabbing;user-select:none}.om-marquee__track{width:max-content;animation:none;will-change:auto;transform:none!important}.om-client{pointer-events:none;filter:grayscale(1);opacity:.78;transform:none}.om-client:hover,.om-client:focus-visible{filter:grayscale(1);opacity:.78;transform:none;outline:0}
@media(prefers-reduced-motion:reduce){.om-marquee__track{width:100%;justify-content:center;flex-wrap:wrap}.om-marquee__group[aria-hidden=true]{display:none}.om-marquee__group{flex-wrap:wrap;justify-content:center;gap:18px 32px}.om-marquee{overflow:visible;mask-image:none;-webkit-mask-image:none;cursor:default}.om-clients__controls{display:none}}
@media(max-width:760px){.om-clients__controls{padding-inline:18px}.om-marquee{touch-action:pan-x pan-y}.om-marquee__group{gap:32px;padding-inline:18px}}

/* Homepage placement: keep the existing copy beside the diagram on desktop. */
.home-hero--motion{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:clamp(28px,4vw,60px);padding-top:54px;padding-bottom:60px}
.home-hero__content{min-width:0}
.home-hero--motion h1{font-size:clamp(3rem,5.1vw,5.2rem);letter-spacing:-.065em;line-height:1.02}
.home-hero--motion .hero-bottom{grid-template-columns:1fr;gap:22px;margin-top:36px}
.home-hero--motion .hero-actions{justify-content:flex-start;gap:22px}
.home-hero--motion .hero-orbit{margin-top:32px}
@media(max-width:1050px){.home-hero--motion{grid-template-columns:minmax(0,1fr);gap:30px}.home-hero--motion .om-hero-visual{width:100%}}
@media(max-width:760px){.home-hero--motion{gap:24px;padding-top:62px;padding-bottom:42px}.home-hero--motion h1{font-size:clamp(2.65rem,11vw,4rem);letter-spacing:-.06em}.home-hero--motion .hero-bottom{margin-top:28px}.home-hero--motion .om-hero-visual{min-height:260px}}

.om-clients__controls{display:none}.om-clients.is-enhanced .om-clients__controls{display:flex}

@media(prefers-reduced-motion:reduce){.om-clients__controls{display:none!important}}

/* Shared Olsomedia colour tokens and a manually draggable, seamless logo track. */
.om-motion{--om-ink:var(--ink);--om-muted:var(--muted);--om-line:var(--line);--om-violet:var(--accent);color:var(--ink)}
.om-hero-visual{background:radial-gradient(ellipse at 54% 46%,var(--accent-soft) 0,rgba(120,73,209,.08) 30%,transparent 67%),#fff}
.om-flow__pulse{stroke:var(--accent)}.om-flow__pulse--slow{stroke:var(--accent-ink)}
.om-clients__controls{display:none!important}
.om-marquee{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-y;scrollbar-width:none;cursor:grab;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.om-marquee::-webkit-scrollbar{display:none}.om-marquee.is-dragging{cursor:grabbing;user-select:none}.om-marquee:focus-visible{outline:3px solid var(--accent-ink);outline-offset:4px}
.om-marquee__track{display:flex;width:max-content;animation:none!important;transform:none!important;will-change:scroll-position}
.om-marquee__group{flex-wrap:nowrap!important}.om-client{pointer-events:none;user-select:none;filter:grayscale(1);opacity:.78;transition:opacity .2s ease,filter .2s ease}.om-client__logo{-webkit-user-drag:none;user-select:none}
@media(max-width:760px){.om-marquee{touch-action:pan-y}.om-marquee__group{gap:32px;padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.om-flow__pulse,.om-flow__spark{animation:none!important}.om-marquee__track{width:max-content;animation:none!important}.om-marquee__group[aria-hidden=true]{display:none!important}.om-marquee{overflow-x:auto;overflow-y:hidden;mask-image:none;-webkit-mask-image:none;cursor:grab}.om-marquee:focus-visible{outline:3px solid var(--accent-ink);outline-offset:4px}}
.home-hero--motion h1{font-size:clamp(3rem,5.1vw,5.2rem);line-height:1.06;letter-spacing:-.045em;text-wrap:balance}
@media(max-width:760px){.home-hero--motion h1{font-size:clamp(2.15rem,10.2vw,3.8rem);line-height:1.08;letter-spacing:-.04em;overflow-wrap:anywhere;text-wrap:balance}.home-hero--motion .home-hero__content{min-width:0}.om-hero-visual{max-width:100%;min-width:0}}

/* Keep each repeated set at its natural content width; the script adds as many copies as needed. */
@media(max-width:760px){
  .om-client__logo{height:17px;max-width:90px}
  .om-client__logo--pwc{height:23px;max-width:48px}
  .om-client__logo--eon{height:14.5px;max-width:47px}
  .om-client__logo--khnp{height:16px;max-width:78px}
  .om-client__logo--nrsr{height:14.5px;max-width:85px}
  .om-client__logo--ellano{height:18px;max-width:72px}
  .om-client__logo--wflow{height:16px;max-width:63px}
}
