@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650&display=swap');
:root{color-scheme:light;--ink:#191919;--muted:#727272;--line:#e3e3e3;--quiet:#969696}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:45px}body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #222;outline-offset:7px}a{-webkit-tap-highlight-color:transparent}.page{max-width:1560px;margin:auto;padding:0 6.5%}.skip-link{position:fixed;top:-80px;left:20px;z-index:10;padding:12px 18px;background:#171717;color:white}.skip-link:focus{top:14px}header{height:118px;display:flex;align-items:center;justify-content:space-between;gap:25px}.identity{display:inline-flex;align-items:center;gap:13px;flex-shrink:0}.monogram{width:43px;height:43px;display:inline-flex;align-items:center;justify-content:center;border:1.8px solid #171717;border-radius:3px;color:#111;font-family:Arial,sans-serif;font-size:25px;font-weight:700;letter-spacing:-1.8px;padding-right:2px;line-height:1}.wordmark{font-size:27px;letter-spacing:-1.2px;font-weight:550;line-height:1}nav{display:flex;gap:36px}nav a{font-size:14px;color:#666;transition:color .2s}nav a:hover{color:#111}.eyebrow{font-size:12px;letter-spacing:1.6px;line-height:1.7;font-weight:450;margin:0;color:var(--muted)}.hero{padding:106px 0 78px;border-bottom:1px solid var(--line)}h1{font-size:clamp(67px,7.8vw,115px);font-weight:450;letter-spacing:-.068em;line-height:1.04;margin:31px 0 52px}h1 span{color:#929292}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.hero-bottom>p{font-size:19px;line-height:1.65;color:#6d6d6d;margin:0;letter-spacing:-.15px}.quiet-link{display:flex;align-items:center;gap:36px;font-size:14px;padding:0 0 9px;border-bottom:1px solid #aaa;white-space:nowrap}.quiet-link:hover{border-color:#111}.quiet-link span{font-size:18px}.split-section{display:grid;grid-template-columns:1fr 1.38fr;gap:8%;padding:99px 0;border-bottom:1px solid var(--line)}.split-section>.eyebrow{padding-top:8px}h2{font-size:clamp(32px,3.4vw,48px);font-weight:450;letter-spacing:-.048em;line-height:1.16;margin:0}.section-body>p{max-width:560px;margin:29px 0 0;font-size:17px;line-height:1.8;color:#6c6c6c}.section-body>p+p{margin-top:18px}.capabilities{padding-bottom:85px;border-bottom:0}.section-side h2{margin-top:30px;font-size:36px;line-height:1.23}.capability-list article{display:grid;grid-template-columns:38px 1fr;gap:17px;padding:30px 0;border-top:1px solid var(--line)}.capability-list article:first-child{padding-top:0;border-top:0}.capability-list article:last-child{padding-bottom:0}.number{font-size:12px;color:#999;margin-top:6px;font-variant-numeric:tabular-nums}h3{font-size:23px;line-height:1.35;letter-spacing:-.6px;font-weight:450;margin:0}.capability-list p{font-size:16px;line-height:1.8;color:#737373;margin:16px 0 0;max-width:510px}.approach{background:#f5f5f5;padding:48px 4.5% 28px}.approach .eyebrow{font-size:11px;letter-spacing:1.5px}.approach-content{display:grid;grid-template-columns:1fr 1fr;gap:13%;margin-top:35px}.approach h2{font-size:clamp(35px,3.5vw,50px)}.approach-content p{font-size:16px;line-height:1.85;color:#666;margin:0}.approach-content p+p{margin-top:20px}.approach-foot{border-top:1px solid #ddd;display:flex;justify-content:space-between;margin-top:47px;padding-top:22px;font-size:12px;color:#848484}footer{padding:47px 0;display:flex;align-items:center;gap:35px}footer .monogram{height:32px;width:32px;font-size:19px;letter-spacing:-1.3px;border-width:1.5px;border-radius:2px}footer .wordmark{font-size:22px}footer .identity{gap:10px}.footer-description{font-size:12px;color:#919191}footer small{margin-left:auto;font-size:12px;color:#919191}@media(min-width:1560px){.page{padding-left:100px;padding-right:100px}}@media(max-width:950px){.page{padding:0 6%}.hero{padding-top:90px}.split-section{gap:7%;grid-template-columns:1fr 1.6fr;padding:78px 0}.section-side h2{font-size:32px}.approach{padding:38px 5% 25px}.approach-content{gap:8%}.hero-bottom>p{font-size:17px}.quiet-link{gap:22px}}@media(max-width:640px){html{scroll-padding-top:25px}.page{padding:0 6%}header{height:92px;gap:18px}.identity{gap:9px}.monogram{height:35px;width:35px;font-size:21px;letter-spacing:-1.5px}.wordmark{font-size:23px;letter-spacing:-1px}nav{gap:20px}nav a{font-size:13px;white-space:nowrap}.hero{padding:73px 0 49px}.eyebrow{font-size:10px;letter-spacing:1.3px}h1{font-size:clamp(48px,9.9vw,66px);line-height:1.09;letter-spacing:-.06em;margin:29px 0 33px}.hero-bottom{display:block}.hero-bottom>p{font-size:16px;line-height:1.75}.quiet-link{display:inline-flex;margin-top:32px;font-size:13px;gap:35px;padding-bottom:8px}.split-section{grid-template-columns:1fr;gap:29px;padding:52px 0}.split-section>.eyebrow{padding-top:0}h2{font-size:33px}.section-body>p{font-size:16px;line-height:1.8;margin-top:24px}.section-body>p+p{margin-top:16px}.section-side h2{font-size:32px;margin-top:23px}.capabilities{gap:39px}.capability-list article{grid-template-columns:25px 1fr;gap:13px;padding:26px 0}.capability-list h3{font-size:22px}.capability-list p{margin-top:12px}.approach{padding:32px 7% 23px}.approach-content{grid-template-columns:1fr;gap:26px;margin-top:25px}.approach h2{font-size:36px}.approach-content p{font-size:16px}.approach-foot{margin-top:32px;font-size:11px}.approach .eyebrow{font-size:10px}footer{padding:32px 0;gap:20px;flex-wrap:wrap}footer .wordmark{font-size:21px}.footer-description{order:3;width:100%;font-size:12px}footer small{font-size:11px}}@media(max-width:380px){nav{gap:13px}nav a{font-size:12px}.wordmark{font-size:21px}.identity{gap:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* A quiet diagram of supplier aggregation, with illustrative signal flow. */
.hero-composition{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:center;gap:3%;margin:31px 0 52px}.hero-composition h1{margin:0;font-size:clamp(64px,7.25vw,108px)}.compute-network{margin:10px 0 0;min-width:0;align-self:center}.network-diagram{display:block;width:100%;height:auto;overflow:visible}.network-labels{font-size:11px;letter-spacing:1.5px;fill:#959595}.network-paths{stroke:#dedede;stroke-width:1.2}.network-flow{stroke:#686868;stroke-width:1.5;stroke-linecap:round}.network-flow path{stroke-dasharray:7 93;stroke-dashoffset:100;animation:signal-flow 7s linear infinite}.network-flow path:nth-child(2){animation-delay:-2.5s}.network-flow path:nth-child(3){animation-delay:-4.8s}.network-flow path:nth-child(4){animation-delay:-1.2s;animation-duration:5.5s}.supplier-nodes rect,.enterprise-node{fill:#fff;stroke:#d2d2d2;stroke-width:1}.node-labels{fill:#9a9a9a;font-size:13px;font-variant-numeric:tabular-nums}.core-node{fill:#fff;stroke:#353535;stroke-width:1.5}.core-label{font-family:Arial,sans-serif;font-size:26px;font-weight:700;letter-spacing:-1.8px;fill:#222}.enterprise-lines{stroke:#aaa;stroke-width:1.2}.network-ticks{stroke:#e8e8e8;stroke-width:1}.compute-network figcaption{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 4% 0 6%;font-size:12px;line-height:1.65;color:#929292}.motion-toggle{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:8px 0;font-family:inherit;font-size:12px;line-height:1.4;color:#888;white-space:nowrap;cursor:pointer}.motion-toggle:hover{color:#222}.motion-toggle:focus-visible{outline:2px solid #444;outline-offset:5px}.motion-symbol{display:inline-block;min-width:12px;text-align:center}.motion-paused .network-flow path{animation-play-state:paused}@keyframes signal-flow{to{stroke-dashoffset:0}}@media(min-width:1560px){.hero-composition h1{font-size:108px}}@media(max-width:1050px){.hero-composition{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:4%}.hero-composition h1{font-size:clamp(55px,7.1vw,75px)}.compute-network figcaption{font-size:11px;align-items:flex-start;gap:10px}.motion-toggle{font-size:11px}.network-labels{font-size:12px;letter-spacing:1px}}@media(max-width:760px){.hero-composition{grid-template-columns:1fr;gap:30px;margin:29px 0 35px}.hero-composition h1{font-size:clamp(48px,9.9vw,76px)}.compute-network{width:min(100%,420px);margin:5px 0 0;justify-self:end}.compute-network figcaption{font-size:12px}.motion-toggle{font-size:12px}.hero{padding-top:65px}.network-labels{font-size:11px}}@media(max-width:640px){.compute-network{width:100%;max-width:380px;justify-self:center}.hero-composition{gap:28px;margin-bottom:32px}.hero{padding-top:58px}.hero-composition h1{font-size:clamp(48px,9.9vw,66px)}}@media(prefers-reduced-motion:reduce){.network-flow{display:none}.network-flow path{animation:none}.motion-toggle{display:none}}
.contact{padding-top:98px;padding-bottom:77px;border-bottom:1px solid var(--line)}.contact .section-side h2{font-size:clamp(32px,3.4vw,48px);line-height:1.16}.contact-intro{max-width:290px;font-size:16px;line-height:1.8;color:#737373;margin:25px 0 0}.form-note{font-size:12px;color:#8a8a8a;line-height:1.7;margin:0 0 25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 21px}.field{min-width:0}.full-width{grid-column:1/-1}.field label{display:block;font-size:14px;line-height:1.5;color:#414141;margin-bottom:9px}.field label span{font-size:12px;color:#929292}.field input,.field select,.field textarea{display:block;width:100%;max-width:100%;background:#fff;border:1px solid #d9d9d9;border-radius:2px;color:#303030;font:inherit;font-size:16px;line-height:1.5;padding:12px 13px;min-height:49px;transition:border-color .2s}.field select{padding-right:24px}.field textarea{resize:vertical;min-height:140px}.field input::placeholder,.field textarea::placeholder{color:#999}.field input:hover,.field select:hover,.field textarea:hover{border-color:#a0a0a0}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:1px solid #555;outline-offset:2px;border-color:#555}.field-hint{font-size:13px;line-height:1.7;color:#888;margin:-1px 0 13px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:23px;margin-top:24px}.form-footer p{font-size:12px;line-height:1.65;color:#8b8b8b;max-width:245px;margin:0}.submit-enquiry{display:inline-flex;align-items:center;justify-content:center;gap:27px;border:1px solid #222;border-radius:2px;background:#222;color:#fff;min-height:48px;padding:12px 20px;font:inherit;font-size:14px;white-space:nowrap;cursor:pointer;transition:background .2s}.submit-enquiry:hover{background:#454545}.submit-enquiry:disabled{opacity:.6;cursor:wait}.submit-enquiry:focus-visible{outline:2px solid #333;outline-offset:4px}.form-status{font-size:14px;line-height:1.75;margin:20px 0 0;color:#343434}.form-status:empty{display:none}.form-status.is-error{color:#8c3434}.form-status:focus{outline:none}@media(max-width:760px){header{flex-wrap:wrap;height:auto;min-height:105px;padding:23px 0;row-gap:21px}header nav{gap:24px}header nav a{font-size:13px}.contact{padding-top:60px;padding-bottom:50px}.form-grid{gap:23px 17px}.contact-intro{max-width:100%}}@media(max-width:640px){header nav{width:100%;justify-content:space-between;gap:18px}.contact{gap:31px}.contact .section-side h2{font-size:33px}.form-grid{grid-template-columns:1fr;gap:22px}.full-width{grid-column:auto}.form-footer{align-items:flex-start;flex-direction:column;gap:20px}.form-footer p{max-width:100%}.submit-enquiry{width:100%;justify-content:space-between}.form-note{margin-bottom:22px}}
/* Section diagrams: shared infrastructure and an ongoing management cycle. */
.section-diagram{margin:0;width:100%;max-width:380px}.section-diagram svg{display:block;width:100%;height:auto;overflow:visible}.integration-diagram{margin-top:37px}.diagram-guides{stroke:#c9c9c9;stroke-width:1}.diagram-surface{fill:#fafafa;stroke:#dcdcdc;stroke-width:1}.diagram-text{font-family:inherit;font-size:16px;fill:#696969}.diagram-port{fill:#fff;stroke:#aaa;stroke-width:1}.diagram-core{fill:white;stroke:#333;stroke-width:1.3}.diagram-monogram{font-family:Arial,sans-serif;font-size:25px;font-weight:700;letter-spacing:-1.6px;fill:#222}.diagram-caption{font-size:13px;fill:#999}.lifecycle-diagram{margin-top:38px;max-width:350px}.lifecycle-paths{stroke:#ccc;stroke-width:1}.lifecycle-centre{font-size:11px;letter-spacing:1.4px;fill:#999}.perspective-side{padding-top:8px}@media(max-width:950px) and (min-width:641px){.diagram-text{font-size:19px}.diagram-caption{font-size:16px}.lifecycle-centre{font-size:13px;letter-spacing:.8px}}@media(max-width:640px){.perspective-side{display:contents}.perspective-side>.eyebrow{grid-row:1}.perspective .section-body{grid-row:2}.integration-diagram{grid-row:3;margin:9px 0 0;max-width:360px;justify-self:center}.lifecycle-diagram{max-width:340px;margin:31px auto 0}.section-diagram .diagram-text{font-size:16px}.diagram-caption{font-size:13px}.lifecycle-centre{font-size:11px}}
/* In-page form menus, styled to match the EverGrid surface. */
.field .enhanced-select{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;border:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;pointer-events:none}.custom-select{position:relative;min-width:0}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;min-height:49px;padding:12px 13px;border:1px solid #d9d9d9;border-radius:2px;background:#fff;color:#303030;text-align:left;font:inherit;font-size:16px;line-height:1.5;cursor:pointer;transition:border-color .2s}.select-trigger:hover{border-color:#a0a0a0}.select-trigger:focus-visible{outline:1px solid #555;outline-offset:2px;border-color:#555}.select-trigger[aria-expanded=true]{border-color:#777}.select-trigger.is-placeholder{color:#929292}.select-value{min-width:0;overflow-wrap:anywhere}.select-chevron{height:7px;width:7px;flex-shrink:0;border-right:1px solid #777;border-bottom:1px solid #777;transform:translateY(-2px) rotate(45deg);margin-right:3px;transition:transform .15s}.select-trigger[aria-expanded=true] .select-chevron{transform:translateY(2px) rotate(225deg)}.select-menu{position:fixed;z-index:1000;box-sizing:border-box;padding:5px;border:1px solid #dcdcdc;border-radius:3px;background:#fff;box-shadow:0 6px 22px #0000000d;overflow-y:auto;overscroll-behavior:contain;scroll-padding:5px;scrollbar-width:thin;scrollbar-color:#ccc transparent}.select-menu[hidden]{display:none}.select-option{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;padding:11px 12px;border-radius:1px;font-size:14px;line-height:1.55;color:#555;cursor:pointer;overflow-wrap:anywhere;user-select:none}.select-option.is-active{background:#f4f4f4;color:#222}.select-option[aria-selected=true]{color:#171717;font-weight:500}.select-check{visibility:hidden;font-size:14px;flex-shrink:0}.select-option[aria-selected=true] .select-check{visibility:visible}.select-error{font-size:12px;line-height:1.5;color:#8c3434;margin:7px 0 0}.select-error[hidden]{display:none}.select-trigger[aria-invalid=true]{border-color:#ad7777}@media(max-width:640px){.select-option{min-height:48px;font-size:16px;padding:11px 12px}}

/* Motion edition: coordinated signals, measured reveals, a continuous square circuit. */
.hero-line{display:block;overflow:hidden;padding-bottom:.07em;margin-bottom:-.07em;color:var(--ink)}
.hero-line>span{display:block;color:inherit;animation:heading-arrive 1.25s cubic-bezier(.19,1,.22,1) both}
.hero-line:nth-child(2){color:#929292}.hero-line:nth-child(2)>span{animation-delay:.16s}
@keyframes heading-arrive{from{transform:translateY(110%)}to{transform:translateY(0)}}
.motion-toggle{position:fixed;right:24px;bottom:22px;z-index:50;background:rgba(255,255,255,.96);border:1px solid #dedede;border-radius:2px;padding:10px 14px;font-size:12px;line-height:1.5;color:#696969;box-shadow:0 2px 12px #00000004}
.motion-toggle[hidden]{display:none}.motion-toggle:hover{border-color:#999;background:white}
.compute-network figcaption{padding-right:0}.compute-network figcaption br{display:none}.compute-network figcaption span{max-width:100%;font-size:12px}
.core-orbit{stroke:#b5b5b5;stroke-width:.8;stroke-dasharray:12 88;animation:orbit-trace 12s linear infinite}
@keyframes orbit-trace{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.network-flow path{stroke:#404040;stroke-width:1.6;stroke-dasharray:14 86;animation:signal-flow 5.4s cubic-bezier(.45,0,.55,1) infinite}
.network-flow path:nth-child(2){animation-delay:-1.8s}.network-flow path:nth-child(3){animation-delay:-3.6s}.network-flow path:nth-child(4){animation-duration:5.4s;animation-delay:-.65s}
.supplier-nodes rect{animation:supplier-tint 5.4s ease-in-out infinite}.supplier-nodes rect:nth-child(2){animation-delay:-1.8s}.supplier-nodes rect:nth-child(3){animation-delay:-3.6s}
@keyframes supplier-tint{0%,60%,100%{fill:#fff;stroke:#d2d2d2}20%,35%{fill:#f0f0f0;stroke:#7e7e7e}}
.enterprise-lines{animation:enterprise-tint 5.4s ease-in-out infinite}
@keyframes enterprise-tint{0%,100%{stroke:#aaa}45%,60%{stroke:#333}}
.integration-flow{stroke:#555;stroke-width:1.4}.integration-flow path{stroke-dasharray:16 84;animation:signal-flow 6s cubic-bezier(.45,0,.55,1) infinite}.integration-flow path:nth-child(2){animation-delay:-2s}.integration-flow path:nth-child(3){animation-delay:-4s}
.integration-diagram .diagram-surface rect{animation:integration-tint 6s ease-in-out infinite}.integration-diagram .diagram-surface rect:nth-child(2){animation-delay:-2s}.integration-diagram .diagram-surface rect:nth-child(3){animation-delay:-4s}
@keyframes integration-tint{0%,60%,100%{fill:#fafafa;stroke:#dcdcdc}20%,35%{fill:#eee;stroke:#888}}
.cycle-signal{stroke:#555;stroke-width:1.6;stroke-dasharray:8 92;animation:orbit-trace 16s linear infinite}
.lifecycle-diagram .diagram-surface rect{animation:cycle-tint 16s linear infinite}.lifecycle-diagram .diagram-surface rect:nth-child(2){animation-delay:-8s}.lifecycle-diagram .diagram-surface rect:nth-child(3){animation-delay:-12s}
@keyframes cycle-tint{0%,7%,94%,100%{fill:#ededed;stroke:#777}15%,85%{fill:#fafafa;stroke:#dcdcdc}}
.lifecycle-centre{fill:#777}
.continuity{margin-top:34px;width:100%;overflow:hidden}.continuity svg{display:block;width:100%;height:auto;min-height:50px}.continuity-grid{stroke:#dedede;stroke-width:1;fill:none}.continuity-branch{stroke:#e3e3e3;stroke-width:1;fill:none}.continuity-signal{stroke:#676767;stroke-width:1.3;stroke-dasharray:10 90;animation:signal-flow 14s linear infinite;fill:none}.continuity-nodes rect{fill:#f5f5f5;stroke:#aaa;stroke-width:1;animation:continuity-tint 14s linear infinite}.continuity-nodes rect:nth-child(2){animation-delay:2.8s}.continuity-nodes rect:nth-child(3){animation-delay:5.6s}.continuity-nodes rect:nth-child(4){animation-delay:8.4s}.continuity-nodes rect:nth-child(5){animation-delay:11.2s}
@keyframes continuity-tint{0%,12%,100%{fill:#555;stroke:#555}24%,88%{fill:#f5f5f5;stroke:#aaa}}
.approach-foot{margin-top:15px}
.motion-ready .reveal-item{transition:opacity .8s ease var(--reveal-delay,0ms),transform .9s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}
.motion-ready .reveal-pending{opacity:0;transform:translateY(18px)}
nav a{position:relative;padding:7px 0}nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:#444;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}nav a:hover:after,nav a:focus-visible:after{transform:scaleX(1)}
.capability-list article{position:relative;transition:background .35s}.capability-list article:after{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:#777;transform:scaleX(0);transform-origin:left;transition:transform .75s cubic-bezier(.22,1,.36,1)}.capability-list article:hover:after{transform:scaleX(1)}.capability-list article .number{transition:color .35s}.capability-list article:hover .number{color:#222}
.quiet-link,.submit-enquiry{transition:background .25s,color .25s,border-color .25s}.quiet-link:hover{background:#f7f7f7}.select-menu:not([hidden]){animation:menu-arrive .16s ease-out}@keyframes menu-arrive{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.motion-scene:not(.is-running) *,.motion-paused .motion-scene *,.tab-inactive .motion-scene *{animation-play-state:paused!important}
.motion-paused .hero-line>span{animation:none;transform:none}.motion-paused .reveal-item{transition:none}.motion-paused .reveal-pending{opacity:1;transform:none}
@media(min-width:951px){.capabilities>.section-side{align-self:start;position:sticky;top:42px}}
@media(max-width:640px){.motion-toggle{right:14px;bottom:14px;padding:8px 11px}footer{padding-bottom:80px}.compute-network figcaption span{font-size:12px}.continuity{margin-top:25px}.hero-line{padding-bottom:.08em;margin-bottom:-.08em}}
@media(prefers-reduced-motion:reduce){.hero-line>span,.motion-scene *,.select-menu{animation:none!important}.core-orbit,.cycle-signal,.integration-flow,.continuity-signal{display:none}.motion-ready .reveal-pending{opacity:1;transform:none}.motion-toggle{display:none}}
.integration-flow path,.continuity-signal{stroke-dashoffset:100}
