@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,dl,dd,ol{margin:0}img,svg{max-width:100%;display:block}button,a{font:inherit}}@layer base{:root{--ink:#0c1715;--ink-soft:#40504c;--night:#07110f;--night-raised:#0e1d19;--paper:#f3f0e8;--paper-deep:#e7e1d5;--white:#fffef9;--accent:#e4ff3f;--accent-warm:#f1a33c;--line:#0c17152b;--line-dark:#ffffff29;--display:"Arial Narrow", "Roboto Condensed", "Helvetica Neue", Arial, sans-serif;--body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--page-pad:clamp(1.25rem, 4vw, 4.5rem);--section-pad:clamp(5rem, 10vw, 10rem)}html{background:var(--night)}body{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--body);text-rendering:optimizelegibility;font-size:1rem;line-height:1.6}a{color:inherit;text-underline-offset:.2em}h1,h2,h3{font-family:var(--display);letter-spacing:-.045em;font-weight:700;line-height:.98}h2{font-size:clamp(2.8rem,6.7vw,7.4rem)}h3{font-size:clamp(1.9rem,3vw,3.4rem)}section[id]{scroll-margin-top:1.5rem}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:var(--night)}.skip-link{z-index:100;background:var(--accent);color:var(--night);padding:.75rem 1rem;font-weight:700;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:none}}@layer components{.site-header{z-index:20;min-height:5.5rem;padding:0 var(--page-pad);border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:relative}.site-header--dark{color:var(--white);border-color:var(--line-dark)}.site-header nav{gap:clamp(1rem,2.8vw,3rem);display:flex}.site-header nav a,.header-link,.wordmark{text-decoration:none}.site-header nav a,.header-link{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.site-header nav a{opacity:.78}.site-header nav a:hover{opacity:1}.header-link{justify-self:end;align-items:center;gap:.55rem;display:inline-flex}.wordmark{align-items:center;gap:.9rem;font-weight:750;display:inline-flex}.wordmark__mark{aspect-ratio:1;width:2.4rem;font-family:var(--display);letter-spacing:-.02em;border:1px solid;border-radius:50%;place-items:center;font-size:.77rem;display:inline-grid}.wordmark__name{letter-spacing:-.01em;font-size:.92rem}.hero-shell{isolation:isolate;background:var(--night);min-height:max(47rem,100svh);color:var(--white);position:relative;overflow:hidden}.hero-shell__image,.hero-shell__image img,.hero-shell__wash,.hero-network{width:100%;height:100%;position:absolute;inset:0}.hero-shell__image{z-index:-4}.hero-shell__image img{object-fit:cover;object-position:48% center}.hero-shell__wash{z-index:-3;background:linear-gradient(90deg,#030a08ed 0%,#040d0aab 45%,#040c0a29 76%),linear-gradient(#0000 52%,#030a08cc 100%)}.hero-network{z-index:-2;opacity:.7}.hero-network svg{width:100%;height:100%}.hero-network path{fill:none;stroke:#e4ff3f61;stroke-width:1.2px;stroke-dasharray:3 8;vector-effect:non-scaling-stroke;animation:24s linear infinite network-flow}.hero-network circle{fill:var(--accent);filter:drop-shadow(0 0 7px #e4ff3fcc)}.hero{min-height:calc(max(47rem,100svh) - 5.5rem);padding:clamp(4rem, 9vh, 8rem) var(--page-pad) 2rem;flex-direction:column;display:flex}.hero__eyebrow,.section-kicker{letter-spacing:.15em;text-transform:uppercase;font-size:.72rem;font-weight:800}.hero__eyebrow{color:var(--accent)}.hero h1{max-width:11ch;margin-top:clamp(1.5rem,4vh,3.8rem);font-size:clamp(4rem,10vw,10.8rem);line-height:.84}.hero__footer{grid-template-columns:minmax(16rem,36rem) auto;align-items:end;gap:3rem;margin-top:auto;padding-top:3rem;display:grid}.hero__footer>p{color:#fffc;max-width:46rem;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.5}.hero__actions{flex-wrap:wrap;justify-self:end;align-items:center;gap:1.75rem;display:flex}.hero__scroll{color:#ffffff94;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.7rem;margin-top:2.8rem;font-size:.67rem;font-weight:700;display:flex}.hero__scroll span{background:currentColor;width:2.3rem;height:1px}.button{letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;justify-content:center;align-items:center;gap:.7rem;min-height:3.3rem;padding:.8rem 1.35rem;font-size:.78rem;font-weight:800;text-decoration:none;transition:transform .18s,background .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--light{background:var(--white);color:var(--night)}.button--accent{background:var(--accent);color:var(--night)}.text-link{gap:.5rem;font-size:.82rem;font-weight:750;text-decoration:none;display:inline-flex}.text-link--light{color:var(--white)}.editorial-intro,.capabilities-section,.career-section{padding:var(--section-pad) var(--page-pad)}.editorial-intro{background:var(--paper)}.section-kicker{color:#66736f}.editorial-intro__grid{grid-template-columns:1.3fr .7fr;gap:clamp(3rem,9vw,10rem);margin-top:2.4rem;display:grid}.editorial-intro h2{max-width:10ch}.editorial-intro__grid>div{align-self:end;max-width:35rem}.editorial-intro__grid>div>p+p{color:var(--ink-soft);margin-top:1.4rem}.lead-copy{letter-spacing:-.018em;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.45}.capabilities-section{background:var(--night);color:var(--white)}.section-heading{grid-template-columns:1.2fr minmax(17rem,32rem);align-items:end;gap:4rem;margin-bottom:clamp(3.5rem,7vw,7rem);display:grid}.section-heading h2{max-width:10ch;margin-top:1rem}.section-heading>p{color:#ffffff94}.section-heading--light>p{color:var(--ink-soft)}.capability-map{border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);grid-template-columns:minmax(19rem,.9fr) minmax(15rem,.55fr) minmax(20rem,1fr);min-width:0;min-height:31rem;display:grid}.capability-map:not([data-enhanced]){grid-template-columns:1fr}.capability-map:not([data-enhanced]) .capability-map__controls,.capability-map:not([data-enhanced]) .capability-map__diagram{display:none}.capability-map:not([data-enhanced]) .capability-map__panels{border-left:0}.capability-map:not([data-enhanced]) .capability-panel+.capability-panel{border-top:1px solid var(--line-dark)}.capability-map__controls{grid-template-rows:repeat(4,1fr);display:grid}.capability-control{border:0;border-bottom:1px solid var(--line-dark);color:#ffffff8c;text-align:left;cursor:pointer;background:0 0;grid-template-columns:2.7rem 1fr 1rem;align-items:center;gap:.7rem;width:100%;padding:1.35rem 1rem 1.35rem 0;transition:color .18s;display:grid}.capability-control:last-child{border-bottom:0}.capability-control:hover,.capability-control[aria-selected=true]{color:var(--white)}.capability-control[aria-selected=true]{font-weight:750}.capability-control__index{color:var(--accent);font-size:.68rem;font-weight:800}.capability-control__signal{border:1px solid;border-radius:50%;width:.55rem;height:.55rem}.capability-control[aria-selected=true] .capability-control__signal{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px #e4ff3f14}.capability-map__diagram{align-self:stretch;position:relative;overflow:hidden}.capability-map__diagram svg{width:100%;height:100%}.map-path{fill:none;stroke:#ffffff24;stroke-width:1.2px;vector-effect:non-scaling-stroke;transition:stroke .22s,opacity .22s}.map-node{fill:var(--accent)}.map-node--small{fill:#fff9}.map-diagram__label{color:#ffffff59;letter-spacing:.1em;text-transform:uppercase;font-size:.6rem;position:absolute;bottom:.7rem}.map-diagram__label--input{left:0}.map-diagram__label--output{right:0}.capability-map[data-active-capability=autonomy-fleet-systems] .map-path--1,.capability-map[data-active-capability=ot-platforms-architecture] .map-path--2,.capability-map[data-active-capability=connectivity-security] .map-path--3,.capability-map[data-active-capability=technology-leadership-delivery] .map-path--4{stroke:var(--accent)}.capability-map__panels{border-left:1px solid var(--line-dark);align-items:stretch;display:grid}.capability-panel{overflow-wrap:anywhere;align-self:center;min-width:0;padding:clamp(2rem,4vw,4rem)}.capability-panel[hidden]{display:none}.capability-panel__eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;font-weight:800}.capability-panel h3{max-width:11ch;margin:1.3rem 0}.capability-panel>p:not(.capability-panel__eyebrow){color:#ffffff9e}.capability-panel__evidence,.capability-panel__roles{border-top:1px solid var(--line-dark);gap:.7rem;margin-top:2rem;padding-top:1.5rem;display:grid}.capability-panel__evidence>span:first-child,.capability-panel__roles>span:first-child{color:#fff6;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:800}.capability-panel__evidence a{justify-content:space-between;gap:1rem;text-decoration:none;display:flex}.capability-panel__roles>span:not(:first-child){color:#ffffffb8;font-size:.88rem}.work-section{padding:var(--section-pad) var(--page-pad);background:var(--paper)}.project-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.project-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.project-card>a{isolation:isolate;flex-direction:column;height:100%;min-height:31rem;padding:1.4rem;text-decoration:none;transition:background .18s,color .18s;display:flex;position:relative;overflow:hidden}.project-card>a:hover{background:var(--night);color:var(--white)}.project-card__topline{color:#67736f;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.68rem;font-weight:750;display:flex}.project-card__copy{margin-top:auto;padding-top:3rem}.project-card__organisation{color:#66736f;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.8rem;font-size:.72rem;font-weight:800}.project-card h3{font-size:clamp(2rem,3.3vw,3.6rem)}.project-card h3+p{color:var(--ink-soft);margin-top:1.2rem}.project-card>a:hover h3+p,.project-card>a:hover .project-card__topline,.project-card>a:hover .project-card__organisation{color:#fff9}.project-card__link{letter-spacing:.06em;text-transform:uppercase;border-top:1px solid;justify-content:space-between;margin-top:2.5rem;padding-top:1rem;font-size:.75rem;font-weight:800;display:flex}.project-card--photo>a{background:var(--night);color:var(--white)}.project-card--photo picture{z-index:-2;position:absolute;inset:0}.project-card__image{object-fit:cover;width:100%;height:100%;display:block}.project-card--photo>a:before{content:"";z-index:-1;background:linear-gradient(#040c0a59,#040c0ac7 45%,#040c0af0);transition:background .18s;position:absolute;inset:0}.project-card--photo>a:hover:before,.project-card--photo>a:focus-visible:before{background:#040c0ad1}.project-card--photo .project-card__topline,.project-card--photo .project-card__organisation,.project-card--photo h3+p,.project-card--photo>a:hover .project-card__topline,.project-card--photo>a:hover .project-card__organisation,.project-card--photo>a:hover h3+p{color:#ffffffd9}.image-break{background:var(--night);height:min(78vw,48rem);min-height:27rem;color:var(--white);position:relative;overflow:hidden}.image-break picture,.image-break img{width:100%;height:100%}.image-break img{object-fit:cover;filter:saturate(.85)contrast(1.06)}.image-break:after{content:"";background:linear-gradient(#0000 48%,#040c0ac2);position:absolute;inset:0}.image-break__caption{z-index:2;right:var(--page-pad);bottom:2rem;left:var(--page-pad);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:2rem;font-size:.72rem;font-weight:700;display:flex;position:absolute}.image-break__caption span:last-child{opacity:.6}.career-section{background:var(--paper-deep)}.career-section .section-heading>p{color:var(--ink-soft)}.timeline{padding:0;list-style:none}.timeline__item{grid-template-columns:minmax(9rem,.32fr) 3.5rem 1fr;display:grid}.timeline__period{color:#66736f;letter-spacing:.05em;text-transform:uppercase;padding:2.4rem 1rem 4.5rem 0;font-size:.72rem;font-weight:750}.timeline__marker{justify-content:center;display:flex;position:relative}.timeline__marker:before{content:"";background:var(--line);width:1px;position:absolute;inset:0 auto}.timeline__marker span{z-index:1;border:2px solid var(--paper-deep);background:var(--ink);width:.7rem;height:.7rem;box-shadow:0 0 0 1px var(--ink);border-radius:50%;margin-top:2.7rem;position:relative}.timeline__content{border-top:1px solid var(--line);padding:2rem 0 4.5rem clamp(1rem,4vw,4rem)}.employer-logo{align-items:center;width:12rem;max-width:100%;height:3.75rem;margin-bottom:1.2rem;display:flex}.employer-logo img{object-fit:contain;object-position:left center;width:100%;height:100%;display:block}.employer-logo+p,.timeline__content>p:first-child{color:#66736f;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:800}.timeline__content h3{margin-top:.7rem}.timeline__location{color:var(--ink-soft);margin-top:.7rem;font-size:.85rem}.timeline__summary{max-width:50rem;color:var(--ink-soft);margin-top:1.2rem}.timeline__links{flex-wrap:wrap;gap:.7rem;margin-top:1.5rem;display:flex}.timeline__links a{border:1px solid var(--line);padding:.45rem .7rem;font-size:.75rem;font-weight:700;text-decoration:none}.contact-section{isolation:isolate;padding:var(--section-pad) var(--page-pad);background:var(--night);color:var(--white);text-align:center;position:relative;overflow:hidden}.contact-section__network{z-index:-1;border:1px solid #e4ff3f24;border-radius:50%;width:42rem;height:42rem;position:absolute;inset:10% 0 auto 50%;transform:translate(-50%)}.contact-section__network:before,.contact-section__network:after{content:"";border:1px solid #e4ff3f14;border-radius:50%;position:absolute}.contact-section__network:before{inset:14%}.contact-section__network:after{inset:31%}.contact-section h2{max-width:13ch;margin:1.3rem auto 2rem}.contact-section>p:not(.section-kicker){color:#fff9;max-width:39rem;margin:0 auto 2rem}.contact-section .section-kicker{color:var(--accent)}.site-footer{padding:2rem var(--page-pad);background:var(--night);color:#ffffff8a;border-top:1px solid var(--line-dark);grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;font-size:.72rem;display:grid}.site-footer>div{color:var(--white);align-items:center;gap:.8rem;font-weight:700;display:flex}.site-footer .wordmark__mark{width:2rem}.site-footer p:last-child{justify-self:end}.project-page{background:var(--night);min-height:100vh;color:var(--white)}.project-hero{isolation:isolate;min-height:calc(100svh - 5.5rem);padding:clamp(4rem, 9vw, 8rem) var(--page-pad) clamp(4rem, 8vw, 7rem);position:relative;overflow:hidden}.project-hero>picture{z-index:-2;position:absolute;inset:0}.project-hero__image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.project-hero:before{content:"";z-index:-1;background:linear-gradient(90deg,#040c0ae0,#040c0a66),linear-gradient(#0000 35%,#040c0ad9);position:absolute;inset:0}.project-hero__back{color:#fff9;margin-bottom:4rem;font-size:.76rem;font-weight:700;text-decoration:none;display:inline-block}.project-hero .section-kicker{color:var(--accent)}.project-hero h1{max-width:12ch;margin-top:1.3rem;font-size:clamp(3.8rem,8vw,8.8rem)}.project-hero__standfirst{color:#ffffffb3;max-width:52rem;margin-top:2.5rem;font-size:clamp(1.2rem,2.2vw,1.7rem)}.project-meta{border-top:1px solid var(--line-dark);flex-wrap:wrap;gap:1.5rem 3rem;max-width:58rem;margin-top:4rem;display:flex}.project-meta>div{padding:1rem 1rem 0 0}.project-meta dt{color:#ffffffbf;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:800}.project-meta dd{text-transform:capitalize;margin-top:.35rem}.contribution-tag{max-width:100%;color:var(--accent);text-transform:none;background:#e4ff3f14;border:1px solid #e4ff3f59;border-radius:1.5rem;margin-top:.4rem;padding:.55rem .95rem;font-size:.8rem;font-weight:650;line-height:1.5;display:inline-block}.project-card__contribution{margin-top:1rem}.project-card .contribution-tag{color:var(--ink);border-color:var(--line);background:#040c0a0d}.project-card--photo .contribution-tag,.project-card>a:hover .contribution-tag,.project-card>a:focus-visible .contribution-tag{color:var(--accent);background:#040c0aa6;border-color:#e4ff3f66}.project-body{padding:var(--section-pad) max(var(--page-pad), calc((100vw - 72rem) / 2));background:var(--paper);color:var(--ink)}.project-gallery{padding:0 var(--page-pad) var(--section-pad);gap:2rem;display:grid}.project-gallery figure{margin:0}.project-gallery picture{display:block}.project-gallery img{object-fit:contain;width:100%;height:auto;max-height:80vh;display:block}.project-body h2{margin:5rem 0 1.5rem;font-size:clamp(2.6rem,5vw,5.5rem)}.project-body h2:first-child{margin-top:0}.project-body p,.project-body ul{max-width:47rem;font-size:clamp(1.05rem,1.4vw,1.22rem)}.project-body p+p,.project-body p+ul,.project-body ul+p{margin-top:1.2rem}.project-contact{padding:2.5rem var(--page-pad);background:var(--accent);color:var(--night);justify-content:space-between;align-items:center;gap:2rem;font-weight:750;display:flex}.project-contact a{text-decoration:none}.error-page main{min-height:calc(100vh - 5.5rem);padding:var(--section-pad) var(--page-pad);flex-direction:column;align-items:flex-start;display:flex}.error-page h1{max-width:11ch;margin:1rem 0 2rem;font-size:clamp(4rem,9vw,9rem)}.error-page main>p:not(.section-kicker){color:#fff9}.error-page .button{margin-top:2rem}.has-js [data-reveal]{opacity:0;transition:opacity .6s,transform .6s cubic-bezier(.22,1,.36,1);transform:translateY(1.5rem)}.has-js [data-reveal][data-revealed=true]{opacity:1;transform:none}}@layer utilities{@keyframes network-flow{to{stroke-dashoffset:-110px}}@media (width<=900px){.site-header{grid-template-columns:1fr auto;row-gap:1rem;padding-block:1rem}.site-header nav{flex-wrap:wrap;grid-area:2/1/auto/-1;gap:.5rem 1.5rem}.site-header nav a{align-items:center;min-height:2.75rem;display:inline-flex}.hero{padding-top:4rem}.hero__footer{grid-template-columns:1fr}.hero__actions{justify-self:start}.editorial-intro__grid,.section-heading{grid-template-columns:1fr;gap:2.5rem}.editorial-intro__grid>div{max-width:44rem}.capability-map{grid-template-columns:minmax(16rem,.8fr) minmax(18rem,1fr)}.capability-map__diagram{display:none}.project-grid{grid-template-columns:1fr}.project-card>a{min-height:25rem}.site-footer{grid-template-columns:1fr 1fr}.site-footer>p:nth-child(2){display:none}}@media (width<=620px){:root{--page-pad:1.15rem}html{scroll-behavior:auto}.wordmark__name{font-size:.85rem}.hero-shell,.hero{min-height:46rem}.hero{padding-top:3.5rem}.hero h1{font-size:clamp(3.6rem,19vw,6rem)}.hero__footer>p{font-size:1rem}.hero__actions{flex-direction:column;align-items:flex-start;gap:1.2rem}.hero__scroll{display:none}.editorial-intro__grid{margin-top:1.8rem}.capability-map{border-bottom:0;display:block}.capability-map__controls{display:block}.capability-control{min-height:4.8rem;padding-right:0}.capability-map__panels{border:0}.capability-panel{overflow-wrap:anywhere;border-bottom:1px solid var(--line-dark);min-width:0;padding:2rem 0 3rem}.image-break{min-height:32rem}.image-break img{object-position:58% center}.image-break__caption{flex-direction:column;align-items:flex-start;gap:.5rem}.timeline__item{grid-template-columns:1fr}.timeline__period{padding:2.2rem 0 .5rem}.timeline__marker{display:none}.timeline__content{padding:0 0 3rem}.contact-section__network{width:28rem;height:28rem}.site-footer{grid-template-columns:1fr}.site-footer p:last-child{justify-self:start}.project-meta{grid-template-columns:1fr}.project-contact{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.has-js [data-reveal]{opacity:1;transform:none}}}
