html.mobile-service-document{scroll-padding-top:0}
.service-page{--gutter:max(32px,calc((100vw - 1352px)/2));--service-blue:#416daf;--service-ink:#172337;--service-muted:#627085;--service-line:#d5deea;--service-header-height:84px;background:#f2f4f7;color:var(--service-ink)}
.service-page main{overflow:clip}
.service-page h1,.service-page h2,.service-page h3{font-weight:550}
.service-page h2{font-size:clamp(38px,4vw,62px);line-height:1.13;letter-spacing:-.05em}
.service-page h2 em,.service-page h1 em{font-style:normal;color:var(--service-blue)}
.service-section{padding:104px var(--gutter);scroll-margin-top:155px}
.mobile-case[id],.technology-choices>article[id]{scroll-margin-top:calc(var(--service-header-height) + 80px)}
.technology-specialism-link{margin-top:22px;color:#345f9f;font-size:.875rem}
.technology-specialisms{display:grid;gap:12px;margin-top:22px}
.technology-specialisms>.technology-specialism-link{margin-top:0;font-size:.875rem;color:#345f9f}
.service-kicker{font-size:.75rem;font-weight:650;line-height:1.6;letter-spacing:.085em;color:#536a8a;margin-bottom:25px}
.service-section p{overflow-wrap:break-word}
.service-button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:52px;padding:14px 19px 14px 22px;background:var(--service-blue);color:#fff;border:1px solid var(--service-blue);border-radius:8px;font-size:1rem;font-weight:600;transition:background .2s}
.service-button:hover{background:#315990}
.service-button svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.5}
.service-text-link{display:inline-flex;align-items:center;gap:15px;font-size:1rem;font-weight:600;line-height:1.6;color:inherit}
.service-text-link:hover{text-decoration:underline;text-underline-offset:5px}
.service-text-link svg{width:19px;height:19px;flex-shrink:0;stroke:currentColor;stroke-width:1.5}
.mobile-hero{padding-top:144px;padding-bottom:0}
.service-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:13px;font-size:.8125rem;line-height:1.7;color:#536a8a}
.service-breadcrumb a{color:#52677f}
.service-breadcrumb a:hover{text-decoration:underline}
.mobile-hero-grid{display:grid;grid-template-columns:1.07fr 1fr;gap:44px;align-items:center;margin-top:32px}
.mobile-hero-copy{padding:10px 0 22px;position:relative;z-index:2}
.mobile-hero .service-kicker{display:flex;align-items:center;gap:12px;margin-bottom:25px}
.kicker-rule{height:1px;width:28px;background:#7d9dca}
.service-page .mobile-hero h1{font-size:clamp(60px,6.4vw,94px);line-height:1.06;letter-spacing:-.06em;margin:0;color:var(--service-ink)}
.service-name{display:block;font-size:1rem!important;font-weight:600!important;line-height:1.6;letter-spacing:-.005em;color:#4c6f9f!important;margin-bottom:21px}
.mobile-hero-description{font-size:1.0625rem;line-height:1.8;max-width:510px;color:var(--service-muted);margin-top:29px}
.service-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:28px}
.service-actions .service-text-link{font-size:.875rem;color:#405c82}
.platform-note{display:flex;flex-wrap:wrap;gap:11px 16px;align-items:center;margin-top:27px;font-size:.8125rem;color:#536a8a;line-height:1.5}
.platform-note>span:first-child{color:#385477;border-right:1px solid #c1cedf;padding-right:16px}
.mobile-hero-visual{margin:0;position:relative;min-width:0;align-self:center}
/* Blend the entire moving layer so its white studio backdrop merges with the page, including during scroll transforms. */
.hero-art-window{overflow:visible;border-radius:0;background:transparent;mix-blend-mode:multiply;aspect-ratio:.84;transform:translateY(var(--hero-art-y,0px));transition:transform .12s linear}
.hero-art-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.mobile-hero-visual figcaption{display:flex;justify-content:flex-start;gap:15px;padding:18px 2px 0;font-size:.75rem;color:#536a8a;letter-spacing:.025em;line-height:1.6}
.visual-index{font-weight:650;color:#506b91}
.hero-endnote{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:43px;padding:24px 0 30px;border-top:1px solid var(--service-line)}
.hero-endnote p{font-size:.875rem;line-height:1.7;color:#536a8a}
.hero-endnote>span{display:flex;align-items:center;gap:23px;white-space:nowrap;font-size:.75rem;letter-spacing:.1em;color:#536a8a}
.hero-endnote b{font:500 28px/1 monospace;color:#416daf}
.service-index{position:sticky;top:var(--service-header-height);z-index:24;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:0 var(--gutter);min-height:58px;border-block:1px solid var(--service-line);background:rgba(242,244,247,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .2s,color .2s,border-color .2s}
.service-index-title{font-size:.8125rem;font-weight:600;white-space:nowrap;color:#536a8a}
.service-index>div{display:flex;gap:29px;align-items:center;overflow-x:auto;scrollbar-width:none;min-width:0}
.service-index>div::-webkit-scrollbar{display:none}
.service-index a{padding:20px 0 18px;position:relative;font-size:.8125rem;color:#536a8a;white-space:nowrap;line-height:1.4}
.service-index a[aria-current],.service-index a:hover{color:#345f9f}
.service-index>div a::after{content:'';position:absolute;inset:auto 0 0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.service-index>div a[aria-current]::after{transform:scaleX(1)}
.service-index .index-contact{font-weight:600;color:#345f9f;display:flex;gap:17px;align-items:center}
.service-index.on-dark{background:rgba(16,24,36,.97);border-color:#ffffff1c;color:#fff}
.service-index.on-dark a,.service-index.on-dark .service-index-title{color:#a6b8d1}
.service-index.on-dark a[aria-current],.service-index.on-dark a:hover,.service-index.on-dark .index-contact{color:#e2ecff}
.service-intro{display:grid;grid-template-columns:1.08fr 1fr;gap:53px 82px;padding-top:95px;padding-bottom:82px}
.service-intro h2{font-size:clamp(36px,3.6vw,56px)}
.intro-copy{padding-top:45px;max-width:550px}
.intro-copy p{font-size:1rem;line-height:1.85;color:var(--service-muted)}
.intro-copy p+p{margin-top:20px}
.product-principles{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px;border-top:1px solid var(--service-line);padding-top:31px}
.product-principles article{display:grid;grid-template-columns:29px 1fr;column-gap:13px;align-content:start}
.product-principles article>span{font-size:.75rem;line-height:2.1;color:#536a8a;font-variant-numeric:tabular-nums}
.product-principles h3{font-size:1.125rem;line-height:1.6;letter-spacing:-.025em}
.product-principles p{grid-column:2;font-size:1rem;line-height:1.8;color:#536a8a;margin-top:12px}
.application-domains{grid-column:1/-1;display:flex;align-items:baseline;gap:30px;flex-wrap:wrap;margin-top:9px;padding-top:26px;border-top:1px solid var(--service-line)}
.application-domains>p{font-size:.8125rem;color:#536a8a}
.application-domains ul{list-style:none;display:flex;flex-wrap:wrap;gap:13px 27px;margin:0;padding:0;font-size:.8125rem;color:#46658c;line-height:1.7}
.mobile-cases{background:#101824;color:#f1f5fc;padding-bottom:64px}
.mobile-cases .service-kicker{color:#96abc9}
.mobile-cases h2 em{color:#98afcf}
.cases-heading{display:grid;grid-template-columns:1.35fr 1fr;gap:90px;align-items:end;margin-bottom:49px}
.cases-heading>p{font-size:1rem;line-height:1.85;color:#a8b7cd;max-width:420px;padding-bottom:5px}
.case-featured{display:grid;grid-template-columns:1.05fr 1fr;gap:62px;align-items:center}
.case-image{position:relative;isolation:isolate;aspect-ratio:1.27;background:#fff;overflow:hidden;border-radius:12px}
.case-featured .case-image{aspect-ratio:1.04}
.case-image img{width:100%;height:100%;object-fit:contain;object-position:center;transform:scale(.96)}
.case-image-memorial img{transform:scale(.98)}
.case-image-vehicle img{transform:scale(1.04)}
.case-image-label{position:absolute;top:22px;left:24px;right:20px;z-index:1;font-size:.75rem;letter-spacing:.075em;line-height:1.6;font-weight:650;color:#536a8a}
.case-story{min-width:0}
.case-sector{display:block;font-size:.75rem;font-weight:650;letter-spacing:.09em;color:#8ba3c4;line-height:1.7;margin-bottom:14px}
.case-story h3{font-size:clamp(30px,3vw,47px);letter-spacing:-.045em;line-height:1.2;color:#f1f5fc}
.case-story .case-idea{font-size:1.1875rem;line-height:1.6;letter-spacing:-.02em;color:#d4e0f0;margin-top:17px}
.case-story>p:not(.case-idea){font-size:1rem;line-height:1.85;color:#a4b3c8;max-width:515px;margin-top:18px}
.case-story dl{margin:25px 0 0;padding:0;border-top:1px solid #ffffff1b}
.case-story dl>div{display:grid;grid-template-columns:142px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid #ffffff1b}
.case-story dt{font-size:.75rem;line-height:1.8;color:#8da5c6}
.case-story dd{margin:0;font-size:.875rem;line-height:1.8;color:#bac9dd}
.case-footer{display:block;margin-top:24px;font-size:.75rem;line-height:1.7;color:#8fa4c2}
.case-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;margin-top:61px}
.case-pair .case-story{margin-top:25px}
.case-pair .case-story h3{font-size:1.875rem}
.case-pair .case-idea{margin-top:12px;font-size:1.0625rem}
.case-pair .case-story>p:not(.case-idea){font-size:1rem;margin-top:13px;max-width:540px}
.case-scope{display:flex;gap:10px 19px;flex-wrap:wrap;list-style:none;padding:17px 0 0;margin:21px 0 0;border-top:1px solid #ffffff1c;font-size:.75rem;line-height:1.7;color:#8fa6c5}
.case-closing{display:flex;align-items:end;justify-content:space-between;gap:35px;border-top:1px solid #ffffff1b;margin-top:61px;padding-top:33px}
.case-closing p{font-size:1rem;line-height:1.9;color:#93a8c5}
.case-closing strong{color:#c1d0e4;font-weight:450}
.case-closing .service-text-link{font-size:.8125rem;color:#c6d5e9}
.mobile-process{padding-bottom:65px}
.process-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:90px;align-items:end}
.process-heading>.service-kicker{grid-column:1/-1}
.process-heading>p:last-child{max-width:455px;font-size:1rem;line-height:1.85;color:var(--service-muted);padding-bottom:6px}
.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:86px;position:relative;margin-top:67px;align-items:start}
.process-stage{position:sticky;top:calc(var(--service-header-height) + 84px);align-self:start;background:#e5edf8;border:1px solid #d8e3f1;border-radius:14px;padding:24px;overflow:hidden}
.stage-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.75rem;letter-spacing:.075em;line-height:1.5;color:#536a8a}
.stage-heading b{font:inherit;font-weight:650;color:#345f9f;font-variant-numeric:tabular-nums}
.stage-art{position:relative;height:356px;margin-top:18px}
.process-frame{position:absolute;inset:0;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:25px;opacity:0;visibility:hidden;transform:translateY(9px);transition:opacity .3s,transform .4s,visibility .3s;pointer-events:none}
.process-frame.is-active{opacity:1;visibility:visible;transform:translateY(var(--stage-art-y,0px))}
.process-panel{position:relative;width:100%;min-height:100%;padding:23px 24px 21px;border:1px solid #c7d5e7;border-radius:10px;background:#f8fafd;color:#14233a;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 45px rgba(61,89,128,.09)}
.process-panel::after{content:attr(data-mark);position:absolute;right:13px;bottom:-35px;font-size:130px;font-weight:650;line-height:1;color:rgba(66,109,175,.055);letter-spacing:-.09em;pointer-events:none}
.panel-top{position:relative;z-index:1;display:flex;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid #d8e2ef;font-size:.6875rem;font-weight:650;letter-spacing:.075em;color:#587091}
.panel-title{position:relative;z-index:1;margin:17px 0 0;font-size:clamp(26px,2.4vw,35px);font-weight:500;line-height:1.13;letter-spacing:-.045em;color:inherit}
.panel-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;margin-top:17px;border-top:1px solid #d8e2ef;border-left:1px solid #d8e2ef}
.panel-grid span{padding:10px 12px;border-right:1px solid #d8e2ef;border-bottom:1px solid #d8e2ef;font-size:.75rem;color:#29486f}
.panel-grid small,.panel-cycle small{display:block;margin-bottom:3px;font-size:.625rem;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:#7388a5}
.panel-result{position:relative;z-index:1;display:flex;justify-content:space-between;gap:18px;margin:auto 0 0;padding-top:14px;border-top:1px solid #d8e2ef;font-size:.75rem;line-height:1.5;color:#35577f}
.panel-result>span{font-size:.625rem;font-weight:700;letter-spacing:.075em;color:#6680a3}
.panel-design,.panel-build{background:#13243d;border-color:#243c5d;color:#f2f6fc;box-shadow:0 18px 45px rgba(12,30,55,.2)}
.panel-design::after,.panel-build::after{color:rgba(120,170,239,.08)}
.panel-design .panel-top,.panel-build .panel-top{border-color:#ffffff1e;color:#91a9c8}
.panel-design .panel-result,.panel-build .panel-result{border-color:#ffffff1e;color:#c4d2e5}
.panel-design .panel-result>span,.panel-build .panel-result>span{color:#83a5d2}
.panel-route{position:relative;z-index:1;display:flex;align-items:center;gap:8px;margin-top:29px}
.panel-route span{padding:9px 11px;border:1px solid #ffffff2a;border-radius:5px;font-size:.6875rem;color:#d4deeb;white-space:nowrap}
.panel-route i{height:1px;min-width:10px;flex:1;background:#5d83b7}
.panel-states{position:relative;z-index:1;display:flex;gap:8px;margin-top:15px}
.panel-states span{padding:6px 9px;border-radius:4px;background:#ffffff0c;font-size:.625rem;color:#8ea8ca}
.panel-states span:last-child{background:#3470c4;color:#fff}
.panel-system{position:relative;z-index:1;display:flex;align-items:center;gap:7px;margin-top:25px}
.panel-system span{flex:1;padding:12px 7px;border:1px solid #ffffff24;border-radius:5px;text-align:center;font-size:.625rem;line-height:1.35;color:#cfdaea}
.panel-system b{font-size:.75rem;font-weight:400;color:#6e95c9}
.panel-build-meta{position:relative;z-index:1;display:flex;justify-content:space-between;margin-top:13px;font-size:.625rem;letter-spacing:.055em;color:#7495c2}
.panel-checks{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;list-style:none;padding:0;margin:22px 0 0}
.panel-checks li{position:relative;padding:0 0 0 19px;font-size:.75rem;line-height:1.5;color:#365678}
.panel-checks li::before{content:'✓';position:absolute;left:0;top:0;color:#3673c7;font-weight:700}
.panel-ready{color:#255f50}
.panel-ready>span{color:#4c786d}
.panel-growth{background:#dce8f8;border-color:#c4d6ed}
.panel-cycle{position:relative;z-index:1;display:flex;align-items:center;gap:8px;margin-top:24px}
.panel-cycle span{flex:1;padding:11px;border-top:1px solid #aac1df;border-bottom:1px solid #aac1df;font-size:.75rem;color:#284d7b}
.panel-cycle b{font-size:.75rem;font-weight:400;color:#5e7fa9}
.stage-progress{height:2px;background:#c8d7eb;margin-top:21px;overflow:hidden}
.stage-progress i{display:block;height:100%;background:#416daf;transform:scaleX(var(--process-progress,.2));transform-origin:left;transition:transform .4s}
.stage-steps{display:flex;justify-content:space-between;gap:8px;margin-top:14px;font-size:.75rem;color:#536a8a;line-height:1.5}
.stage-steps span.is-current{color:#315a94;font-weight:650}
.process-steps{min-width:0}
.process-step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:22px;position:relative;min-height:445px;padding:31px 0 57px;border-top:1px solid #cbd7e7}
.process-step::before{content:'';position:absolute;left:0;top:-1px;right:0;height:2px;background:#416daf;transform:scaleX(0);transform-origin:left;transition:transform .4s}
.process-step.is-current::before{transform:scaleX(1)}
.process-step:last-child{min-height:410px;padding-bottom:20px}
.step-number{font-size:1.125rem;color:#536a8a;letter-spacing:-.035em;line-height:1.7;font-variant-numeric:tabular-nums}
.process-step.is-current .step-number{color:#416daf}
.step-label{font-size:.75rem;font-weight:650;letter-spacing:.075em;color:#536a8a;line-height:1.7;margin:3px 0 17px}
.step-copy h3{font-size:clamp(25px,2.7vw,39px);line-height:1.2;letter-spacing:-.04em}
.step-copy>p:not(.step-label){font-size:1rem;line-height:1.85;color:#546980;margin-top:23px}
.step-output{margin-top:26px;padding-top:19px;border-top:1px solid #dae2ee}
.step-output>span{font-size:.75rem;font-weight:650;letter-spacing:.03em;color:#536a8a}
.step-output>p{font-size:.875rem;line-height:1.75;color:#40618d;margin-top:8px;max-width:410px}
.step-mobile-art{display:none}
.mobile-technology{background:#e9eef5;border-top:1px solid #d9e3ef}
.technology-intro{display:grid;grid-template-columns:1fr 1fr;gap:0 90px;align-items:end}
.technology-intro .service-kicker{grid-column:1/-1}
.technology-intro>p:last-child{font-size:1rem;line-height:1.85;max-width:455px;color:#546980;padding-bottom:5px}
.technology-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:55px}
.technology-choices article{display:flex;flex-direction:column;padding-top:25px;border-top:1px solid #b7c8df}
.tech-index{font-size:.75rem;font-weight:650;letter-spacing:.06em;color:#536a8a;line-height:1.7}
.technology-choices h3{font-size:1.375rem;letter-spacing:-.03em;line-height:1.4;margin-top:19px}
.technology-choices article>p{font-size:1rem;line-height:1.8;color:#546980;margin-top:18px}
.tech-tags{list-style:none;padding:21px 0 0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.tech-tags li{font-size:.8125rem;line-height:1.6;padding:6px 11px;border:1px solid #c8d5e6;border-radius:5px;color:#355b8c;background:#f2f5fa}
.technology-choices article>.tech-context{font-size:.8125rem;line-height:1.8;color:#536a8a;margin-top:20px;padding-top:19px;border-top:1px solid #d1dcea}
.engineering-note{display:grid;grid-template-columns:54px 1fr;gap:25px;align-items:center;border-top:1px solid #c8d5e6;margin-top:49px;padding-top:29px}
.note-mark{font:500 43px/1 monospace;color:#416daf;transform:rotate(-6deg)}
.engineering-note h3{font-size:1.0625rem;line-height:1.5;letter-spacing:-.02em}
.engineering-note p{font-size:1rem;line-height:1.85;color:#536a8a;max-width:970px;margin-top:9px}
.mobile-delivery{background:#193457;color:#edf3fe;display:grid;grid-template-columns:1fr 1fr;gap:84px}
.mobile-delivery .service-kicker{color:#95add0}
.mobile-delivery h2{font-size:clamp(36px,3.5vw,55px)}
.mobile-delivery h2 em{color:#9bb7dd}
.delivery-copy>p:not(.service-kicker){font-size:1rem;line-height:1.85;color:#b1c3dc;max-width:500px;margin-top:26px}
.delivery-art{width:330px;max-width:100%;height:auto;border-radius:10px;margin-top:32px}
.delivery-list-label{font-size:.75rem;font-weight:650;letter-spacing:.06em;color:#8ea8ce;line-height:1.7;padding-bottom:24px;border-bottom:1px solid #ffffff26}
.delivery-list ol{list-style:none;margin:0;padding:0}
.delivery-list li{display:grid;grid-template-columns:24px 1fr;gap:21px;padding:24px 0;border-bottom:1px solid #ffffff1f}
.delivery-list li>span{font-size:.75rem;line-height:1.9;color:#7899c5}
.delivery-list h3{font-size:1.0625rem;line-height:1.5;letter-spacing:-.02em}
.delivery-list li p{font-size:.875rem;line-height:1.8;color:#a7bdda;margin-top:7px}
.mobile-faq{display:grid;grid-template-columns:.9fr 1.2fr;gap:110px}
.faq-intro{position:sticky;top:calc(var(--service-header-height) + 92px);align-self:start}
.faq-intro h2{font-size:clamp(35px,3.45vw,52px)}
.faq-intro>p:not(.service-kicker){font-size:1rem;line-height:1.85;color:#536a8a;max-width:360px;margin-top:26px}
.faq-intro .service-text-link{margin-top:23px;color:#345f9f}
.faq-list{border-top:1px solid #c0cee1}
.faq-list details{border-bottom:1px solid #d5dfea}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:27px;list-style:none;cursor:pointer;padding:26px 0;font-size:1rem;font-weight:550;letter-spacing:-.015em;line-height:1.7}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list .plus{flex-shrink:0;width:19px;height:19px;color:#6d85a6}
.faq-list details[open] .plus::after{transform:rotate(0deg)}
.faq-list details[open] summary{color:#345f9f}
.faq-list details>p{font-size:1rem;line-height:1.9;color:#536a8a;padding:0 33px 26px 0}
.mobile-contact{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;background:#345f9f;color:#fff;padding-block:79px 85px}
.mobile-contact .service-kicker{color:#b2c8e8}
.mobile-contact h2{font-size:clamp(46px,5.2vw,78px)}
.mobile-contact h2 em{color:#bfd3ee}
.contact-invitation>p:not(.service-kicker){font-size:1rem;line-height:1.85;max-width:475px;color:#cfddf0;margin-top:26px}
.service-contact-email{display:flex;align-items:center;justify-content:space-between;gap:15px;max-width:470px;margin-top:32px;padding-bottom:17px;border-bottom:1px solid #ffffff5c;font-size:clamp(21px,2.3vw,33px);letter-spacing:-.035em;line-height:1.5}
.service-contact-email svg{width:29px;height:29px;stroke:currentColor;stroke-width:1.4;flex-shrink:0}
.service-contact-email:hover{color:#d6e5f9}
.first-conversation{display:flex;flex-direction:column;align-self:stretch;position:relative;padding-top:46px}
.conversation-mark{position:absolute;right:0;top:0;font:500 47px/1 monospace;color:#adc9ed}
.first-conversation h3{font-size:1.3125rem;line-height:1.5;letter-spacing:-.03em;margin-top:5px}
.first-conversation ol{list-style:none;margin:24px 0 40px;padding:0}
.first-conversation li{display:flex;gap:22px;padding:17px 0;border-bottom:1px solid #ffffff29;font-size:1rem;line-height:1.7;color:#d9e5f5}
.first-conversation li>span{font-size:.75rem;color:#a1bfe7;line-height:2.2}
.service-contact-links{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:auto}
.service-contact-links>a:first-child{font-size:1.25rem;letter-spacing:-.025em}
.service-contact-links>a:last-child{display:flex;gap:9px;align-items:center;font-size:.875rem}
.service-contact-links svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5}
.service-contact-links a:hover{text-decoration:underline}
.service-page .site-footer{padding-top:44px}

@media(min-width:1024px) and (max-width:1199px){
 .service-page{--gutter:36px}
 .mobile-hero-grid{gap:28px;grid-template-columns:1.04fr 1fr}
 .service-page .mobile-hero h1{font-size:66px}
 .mobile-hero-description{font-size:1rem}
 .service-actions{gap:19px;align-items:start;flex-direction:column}
 .mobile-hero-visual figcaption{flex-direction:column;gap:2px;font-size:.75rem}
 .service-index-title{display:none}
 .service-index>div{gap:27px}
 .service-intro{column-gap:48px}
 .product-principles{gap:23px}
 .case-featured{gap:36px}
 .case-story dl>div{grid-template-columns:104px 1fr;gap:14px}
 .cases-heading{gap:55px}
 .process-layout{gap:45px}
 .process-stage{padding:20px}
 .stage-art{height:320px}
 .process-step{gap:15px;grid-template-columns:29px 1fr;min-height:465px}
 .technology-choices{gap:26px}
 .mobile-delivery{gap:50px}
 .mobile-faq{gap:55px}
 .mobile-contact{gap:50px}
}
@media(max-width:1023px){
 .service-page{--gutter:32px}
 .service-section{padding-block:76px;scroll-margin-top:140px}
 .mobile-hero{padding-top:135px;padding-bottom:0}
 .mobile-hero-grid{gap:28px;grid-template-columns:1.1fr 1fr}
 .service-page .mobile-hero h1{font-size:clamp(47px,6.7vw,68px)}
 .mobile-hero .service-kicker{font-size:.75rem;margin-bottom:20px}
 .service-name{font-size:1rem!important}
 .mobile-hero-description{font-size:1rem;line-height:1.75;margin-top:23px}
 .service-actions{align-items:start;flex-direction:column;gap:19px;margin-top:24px}
 .mobile-hero-visual figcaption{flex-direction:column;gap:5px;font-size:.75rem}
 .hero-endnote{gap:25px;margin-top:34px}
 .hero-endnote>span{font-size:.75rem;gap:13px}
 .service-index{min-height:55px;gap:18px}
 .service-index-title,.service-index .index-contact{display:none}
 .service-index>div{justify-content:space-between;width:100%;gap:26px}
 .service-index a{padding-block:18px;font-size:.8125rem}
 .service-intro{column-gap:40px;row-gap:37px}
 .service-intro h2{font-size:38px}
 .intro-copy{padding-top:35px}
 .product-principles{gap:25px}
 .product-principles article{display:block}
 .product-principles h3{margin-top:10px;font-size:1.0625rem}
 .product-principles p{font-size:1rem}
 .application-domains{gap:17px}
 .application-domains ul{gap:13px 21px}
 .cases-heading{gap:35px;grid-template-columns:1.15fr 1fr}
 .case-featured{gap:32px;align-items:start}
 .case-featured .case-image{aspect-ratio:.88}
 .case-image-label{font-size:.75rem;left:17px;top:17px}
 .case-story .case-idea{font-size:1.0625rem}
 .case-story dl>div{display:block}
 .case-story dd{margin-top:6px;font-size:.8125rem}
 .case-pair{gap:28px;margin-top:45px}
 .case-pair .case-image{aspect-ratio:1.05}
 .case-closing{gap:28px;align-items:start;margin-top:43px}
 .case-closing p{font-size:1rem}
 .case-closing .service-text-link{max-width:145px}
 .process-heading{gap:0 40px}
 .process-layout{grid-template-columns:1fr;gap:0;margin-top:37px}
 .process-stage{display:none}
 .process-step{min-height:0!important;grid-template-columns:36px minmax(0,1fr);gap:19px;padding:33px 0 38px}
 .step-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:34px;align-items:start}
 .step-label,.step-copy h3,.step-copy>p,.step-output{grid-column:1}
 .step-copy h3{font-size:29px}
 .step-label{margin-top:0}
 .step-copy>p:not(.step-label){font-size:1rem;margin-top:19px}
 .step-output{margin-top:21px}
 .step-mobile-art.process-panel{display:flex;grid-column:2;grid-row:1/5;align-self:center;width:100%;min-height:310px;border-radius:10px}
 .technology-intro{column-gap:43px}
 .technology-choices{gap:24px;margin-top:41px}
 .technology-choices h3{font-size:1.125rem}
 .engineering-note{gap:17px}
 .mobile-delivery{gap:42px}
 .mobile-delivery h2{font-size:38px}
 .delivery-list li{gap:15px;padding-block:22px}
 .mobile-faq{grid-template-columns:.8fr 1.2fr;gap:40px}
 .faq-intro h2{font-size:37px}
 .mobile-contact{gap:38px;grid-template-columns:1.05fr 1fr}
 .mobile-contact h2{font-size:55px}
 .service-contact-email{font-size:1.25rem;gap:8px}
 .service-contact-email svg{width:22px;height:22px}
 .first-conversation{padding-top:32px}
 .first-conversation h3{font-size:1.125rem}
 .first-conversation li{gap:14px;font-size:1rem}
}
@media(max-width:760px){
 .service-page{--gutter:24px;--service-header-height:81px}
 .service-section{padding-block:62px}
 .service-page h2{font-size:clamp(34px,8.8vw,48px);line-height:1.17;letter-spacing:-.047em}
 .service-kicker{font-size:.75rem;letter-spacing:.035em;margin-bottom:21px}
 .mobile-hero{padding-top:117px;padding-bottom:0}
 .service-breadcrumb{font-size:.75rem;gap:10px}
 .mobile-hero-grid{display:flex;flex-direction:column;gap:29px;margin-top:28px}
 .mobile-hero-copy{padding:0;align-self:stretch}
 .mobile-hero .service-kicker{margin-bottom:20px;font-size:.75rem}
 .service-name{font-size:1rem!important;letter-spacing:0;margin-bottom:16px}
 .service-page .mobile-hero h1{font-size:clamp(47px,12.3vw,78px);line-height:1.08}
 .mobile-hero-description{max-width:520px;font-size:1rem;line-height:1.8;margin-top:24px}
 .service-actions{gap:19px;margin-top:24px;align-items:start}
 .service-button{min-height:50px;padding:13px 18px 13px 20px;font-size:.875rem;gap:28px}
 .service-actions .service-text-link{font-size:.875rem}
 .platform-note{margin-top:23px;gap:8px 11px;font-size:.75rem}
 .platform-note>span:first-child{padding-right:11px}
 .mobile-hero-visual{width:100%;max-width:500px;align-self:center}
 .hero-art-window{border-radius:0;aspect-ratio:.86}
 .mobile-hero-visual figcaption{display:flex;flex-direction:row;font-size:.75rem;padding-top:14px;gap:12px}
 .mobile-hero-visual figcaption .visual-index{text-align:left;max-width:none}
 .hero-endnote{margin-top:27px;padding:22px 0 25px;gap:18px}
 .hero-endnote p{font-size:.8125rem;line-height:1.7;max-width:300px}
 .hero-endnote>span{font-size:0;gap:0}
 .hero-endnote b{font-size:27px}
 .service-index{min-height:53px;padding-inline:var(--gutter)}
 .service-index>div{justify-content:start;gap:25px}
 .service-index a{font-size:.8125rem;padding-block:17px}
 .service-intro{display:block}
 .intro-copy{padding:0;margin-top:27px;max-width:none}
 .intro-copy p{font-size:1rem;line-height:1.85}
 .product-principles{display:block;margin-top:34px;padding-top:7px}
 .product-principles article{display:grid;grid-template-columns:28px 1fr;gap:0 11px;padding:24px 0;border-bottom:1px solid var(--service-line)}
 .product-principles h3{margin:0;font-size:1.0625rem}
 .product-principles p{font-size:1rem;margin-top:10px}
 .product-principles article>span{line-height:2.2}
 .application-domains{margin-top:28px;padding-top:0;border:0;gap:16px}
 .application-domains ul{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;row-gap:11px;font-size:.75rem;width:100%}
 .cases-heading{display:block;margin-bottom:32px}
 .cases-heading>p{margin-top:26px;font-size:1rem;line-height:1.8;max-width:none;padding:0}
 .case-featured{display:block}
 .case-featured .case-image{aspect-ratio:1.08}
 .case-image-label{font-size:.75rem;top:16px;left:17px;right:15px;letter-spacing:.045em}
 .case-image{border-radius:10px}
 .case-story{margin-top:25px}
 .case-sector{font-size:.75rem;margin-bottom:10px}
 .case-story h3{font-size:2rem}
 .case-story .case-idea{font-size:1.125rem;margin-top:13px}
 .case-story>p:not(.case-idea){font-size:1rem;line-height:1.85;margin-top:15px}
 .case-story dl{margin-top:22px}
 .case-story dl>div{display:grid;grid-template-columns:91px 1fr;gap:16px;padding-block:16px}
 .case-story dt{font-size:.75rem}
 .case-story dd{font-size:.8125rem;margin:0}
 .case-footer{font-size:.75rem;margin-top:19px}
 .case-pair{display:block;margin-top:38px}
 .case-pair>.mobile-case+.mobile-case{margin-top:39px}
 .case-pair .case-image{aspect-ratio:1.15}
 .case-pair .case-story h3{font-size:1.875rem}
 .case-pair .case-idea{font-size:1.0625rem}
 .case-scope{font-size:.75rem;gap:7px 17px}
 .case-closing{display:block;margin-top:34px;padding-top:24px}
 .case-closing p{font-size:1rem;line-height:1.8}
 .case-closing .service-text-link{max-width:none;margin-top:21px;font-size:.8125rem}
 .process-heading{display:block}
 .process-heading>p:last-child{margin-top:24px;font-size:1rem;line-height:1.85;padding:0}
 .process-layout{margin-top:33px}
 .process-step{grid-template-columns:27px minmax(0,1fr);gap:14px;padding:27px 0 33px}
 .step-copy{display:block}
 .step-number{font-size:1rem}
 .step-label{font-size:.75rem;letter-spacing:.04em;margin:3px 0 15px}
 .step-copy h3{font-size:clamp(26px,7vw,34px);line-height:1.22}
 .step-copy>p:not(.step-label){font-size:1rem;line-height:1.85;margin-top:19px}
 .step-output{margin-top:21px;padding-top:16px}
 .step-output>p{font-size:.8125rem;line-height:1.8}
 .step-mobile-art.process-panel{margin-top:24px;max-width:390px;min-height:310px;border-radius:9px;padding:20px}
 .technology-intro{display:block}
 .technology-intro>p:last-child{font-size:1rem;line-height:1.85;margin-top:24px;padding:0}
 .technology-choices{display:block;margin-top:33px}
 .technology-choices article{padding-block:24px 28px}
 .technology-choices article:last-child{padding-bottom:0}
 .technology-choices h3{font-size:1.3125rem;margin-top:16px}
 .technology-choices article>p{font-size:1rem;margin-top:16px}
 .tech-tags{padding-top:18px}
 .technology-choices article>.tech-context{font-size:.8125rem;margin-top:18px;padding-top:17px}
 .engineering-note{grid-template-columns:29px 1fr;gap:16px;margin-top:30px;padding-top:26px;align-items:start}
 .note-mark{font-size:27px;padding-top:3px}
 .engineering-note h3{font-size:1rem;line-height:1.6}
 .engineering-note p{font-size:1rem;line-height:1.85}
 .mobile-delivery{display:block}
 .mobile-delivery h2{font-size:clamp(33px,8.5vw,46px)}
 .delivery-copy>p:not(.service-kicker){font-size:1rem;line-height:1.85;margin-top:23px}
 .delivery-art{width:100%;max-width:370px;margin-top:27px}
 .delivery-list{margin-top:35px}
 .delivery-list-label{font-size:.75rem;letter-spacing:.035em;padding-bottom:21px}
 .delivery-list li{padding-block:21px;grid-template-columns:23px 1fr;gap:17px}
 .delivery-list h3{font-size:1rem}
 .delivery-list li p{font-size:.875rem}
 .mobile-faq{display:block}
 .faq-intro{position:static}
 .faq-intro h2{font-size:clamp(34px,8.8vw,47px)}
 .faq-intro>p:not(.service-kicker){font-size:1rem;max-width:none;margin-top:23px}
 .faq-intro .service-text-link{font-size:.875rem;margin-top:18px}
 .faq-list{margin-top:32px}
 .faq-list summary{padding:22px 0;font-size:1rem;line-height:1.7;gap:20px}
 .faq-list details>p{padding:0 23px 23px 0;font-size:1rem;line-height:1.85}
 .mobile-contact{display:block;padding-block:54px 45px}
 .mobile-contact h2{font-size:clamp(47px,12vw,65px);line-height:1.15}
 .contact-invitation>p:not(.service-kicker){font-size:1rem;line-height:1.8;margin-top:22px}
 .service-contact-email{font-size:clamp(21px,5.65vw,30px);gap:12px;margin-top:26px;padding-bottom:17px}
 .service-contact-email svg{width:25px;height:25px}
 .first-conversation{margin-top:36px;padding-top:31px;border-top:1px solid #ffffff3b}
 .conversation-mark{font-size:35px;top:27px}
 .first-conversation h3{font-size:1.1875rem;margin:0;padding-right:30px}
 .first-conversation ol{margin-top:19px;margin-bottom:31px}
 .first-conversation li{font-size:1rem;padding-block:15px;gap:17px}
 .service-contact-links{gap:18px}
 .service-contact-links>a:first-child{font-size:1.125rem}
 .service-contact-links>a:last-child{font-size:.8125rem}
}
@media(min-width:1024px) and (max-height:760px){
 .mobile-hero{padding-top:120px}
 .mobile-hero-grid{margin-top:23px}
 .service-page .mobile-hero h1{font-size:clamp(59px,5.8vw,81px)}
 .mobile-hero-visual{max-width:470px;justify-self:end}
 .mobile-hero-description{font-size:1rem;line-height:1.75;margin-top:23px}
 .service-name{margin-bottom:16px}
 .platform-note{margin-top:21px}
 .hero-endnote{margin-top:28px}
 .process-stage{top:calc(var(--service-header-height) + 74px);padding:19px}
 .stage-art{height:295px}
 .process-frame{gap:20px}
 .process-panel{padding:19px 20px 17px}
 .panel-title{font-size:27px;margin-top:14px}
 .panel-grid{margin-top:13px}
 .panel-grid span{padding-block:8px}
 .panel-route,.panel-system,.panel-cycle{margin-top:18px}
 .panel-checks{margin-top:16px}
}
@media(prefers-reduced-motion:reduce){
 .hero-art-window{transform:none;transition:none}
 .process-frame{transform:none;transition:opacity .12s,visibility .12s}
 .process-frame.is-active{transform:none}
 .stage-progress i,.process-step::before,.service-index a::after{transition-duration:.12s}
}
