@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-400.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-500.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}:root{--charcoal:#17171c;--muted:#64606e;--violet:#784d8f;--bright-violet:#784d8f;--rule:#d9d5de;--pale:#f5f1fa}*{box-sizing:border-box}html{scroll-behavior:smooth;overscroll-behavior-y:none}body{background:var(--charcoal);min-height:100svh;color:var(--charcoal);flex-direction:column;margin:0;font-family:IBM Plex Sans,Arial,sans-serif;font-size:16px;line-height:1.55;display:flex}main{background:#fff;flex:1}.header-surface{background:#fff}a,button,input,textarea{font:inherit}a{color:var(--charcoal);text-underline-offset:4px;font-weight:500;text-decoration:underline}a:hover{color:var(--violet)}a strong{font-weight:inherit}p a,li a,.prose a,.post-meta a{color:var(--violet);text-decoration:none}p a,li a{font-weight:700}p a:hover,li a:hover,.prose a:hover,.post-meta a:hover{color:var(--charcoal);text-decoration:underline}button{color:inherit}h1,h2,h3,p{margin-top:0}.site-header,.hero-inner,.content-section,.approach,.technology-inner,.contact-inner,.footer-inner{width:min(100% - 80px,1120px);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;gap:36px;min-height:76px;display:flex}.brand{flex:none;width:160px;line-height:0;display:block}.brand img,footer img{width:100%;height:auto}.menu-toggle{width:44px;height:44px;color:var(--charcoal);cursor:pointer;background:0 0;border:0;padding:0;font-size:28px;line-height:1}.menu-toggle[hidden],.site-header nav[hidden]{display:none}nav{flex-wrap:wrap;justify-content:flex-end;gap:24px;display:flex}nav a{color:var(--charcoal);padding:4px 0;font-size:14px;font-weight:700;text-decoration:none}nav a[href]:hover{color:var(--charcoal)}nav a[aria-current=page]{text-decoration:underline 2px}.services-nav{border:0;position:relative}.services-nav summary{color:var(--charcoal);padding:4px 0;font-size:14px;font-weight:700;line-height:1.55;text-decoration:none}.services-nav summary.current-section{text-decoration:underline 2px}.services-menu{z-index:1;border:1px solid var(--rule);background:#fff;width:min(290px,100vw - 40px);padding:8px;position:absolute;top:100%;left:0}.services-menu a{padding:10px 12px;display:block}.hero{border-top:1px solid var(--rule);background:linear-gradient(115deg,#f9f6fc,#fcfaff 48%,#f1e9f8);position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(at 55% 40%,#fff9,#e9dbf566);border-radius:50% 0 0 50%;position:absolute;inset:0 -20% -70% 50%}.hero-inner{padding:57px 0 61px}.hero-art{opacity:.82;pointer-events:none;width:560px;height:auto;position:absolute;bottom:-16px;right:-72px;mask-image:linear-gradient(#000 82%,#0000)}@media (width<=1200px){.hero-art{width:min(100%,520px);margin:32px auto -61px;display:block;position:relative;inset:auto}}.hero-inner,.article header{position:relative}.hero-inner:after,.article header:after{content:"";background:var(--violet);width:32px;height:3px;position:absolute;bottom:0;left:0}.hero+.content-section,.hero+.contact .contact-inner,.hero+.technology .technology-inner{border-top:0}h1{letter-spacing:-.02em;text-wrap:balance;max-width:650px;margin-bottom:19px;font-size:48px;font-weight:500;line-height:56px}.lede{max-width:600px;color:var(--muted);margin-bottom:28px;font-size:18px;line-height:28px}.hero-inner .lede:last-child{margin-bottom:0}.hero-actions{flex-wrap:wrap;align-items:center;gap:23px;display:flex}.contact-control,.contact-submit{border:1px solid var(--violet);background:var(--violet);color:#fff;cursor:pointer;padding:11px 16px;font-size:15px;font-weight:500;text-decoration:none;display:inline-block}a.contact-control:hover,.contact-submit:hover{border-color:var(--charcoal);background:var(--charcoal);color:#fff}.explore-link,.text-link{color:var(--charcoal);text-underline-offset:5px;font-size:15px;font-weight:700;text-decoration:underline}.explore-link:hover,.text-link:hover{color:var(--violet)}.content-section,.approach,.contact-inner,.technology-inner{grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);column-gap:clamp(48px,9vw,128px);display:grid}.content-section,.approach,.contact-inner{border-top:1px solid var(--rule);padding:61px 0 72px}.section-label h2{letter-spacing:-.018em;text-wrap:balance;max-width:300px;margin:0;font-size:29px;font-weight:500;line-height:1.18}.section-content,.approach-content,.contact-content{max-width:680px}.section-content p,.approach-content p,.contact-content p{color:var(--muted);font-size:17px;line-height:1.63}.section-intro{margin-bottom:19px;color:var(--charcoal)!important;font-size:19px!important;line-height:1.5!important}.section-content h3,.research h3{color:var(--charcoal);letter-spacing:-.01em;margin:0 0 9px;font-size:20px;font-weight:500;line-height:1.3}.scope-list{color:var(--charcoal);margin:19px 0 31px;padding:0;list-style:none}.scope-list strong{color:var(--violet);font-weight:500}.scope-list li{margin:0 0 9px;padding-left:19px;font-size:17px;line-height:1.55;position:relative}.scope-list li:before{color:var(--violet);content:"•";position:absolute;left:0}.subsection{border-top:1px solid var(--rule);padding-top:24px}.subsection p{margin-bottom:0}.deliverable-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.deliverable-list article{border-top:2px solid var(--violet);background:var(--pale);padding:24px}.deliverable-list h3{font-size:18px}.deliverable-list p{color:var(--charcoal);margin:0;font-size:16px}.approach-content p{margin-bottom:21px}.approach-content p:last-child{color:var(--charcoal);margin:31px 0 0;font-weight:500}.technology-inner{border-top:1px solid var(--rule);padding:66px 0 71px}.technology h2{max-width:340px;color:var(--charcoal);letter-spacing:-.02em;text-wrap:balance;margin-bottom:20px;font-size:29px;font-weight:500;line-height:1.16}.technology h3{color:var(--charcoal);letter-spacing:-.01em;margin-bottom:15px;font-size:20px;font-weight:500;line-height:1.3}.technology p{max-width:680px;color:var(--charcoal);margin-bottom:18px;font-size:17px;line-height:1.63}.technology p:last-child{margin-bottom:0}.content-section.team-section{border-top:0}.team-section .team-list{margin-top:0}.service-summaries{color:var(--charcoal);gap:12px;margin:0;padding-left:20px;font-size:17px;line-height:1.63;display:grid}.deliverable-icon{color:var(--violet);margin-bottom:20px;display:block}.experience-carousel{grid-column:1/-1;min-width:0;margin-top:24px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.experience-strip{border-block:1px solid var(--rule);overflow-x:auto}.experience-track{width:max-content;display:flex}.experience-track ul{flex:none;gap:32px;margin:0;padding:16px 32px 16px 0;list-style:none;display:flex}.experience-track ul[aria-hidden=true]{display:none}.experience-strip li{flex-direction:column;flex:0 0 160px;justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.experience-strip img{object-fit:contain;filter:grayscale();width:120px;height:48px}.experience-strip li:hover img{filter:none}@media (prefers-reduced-motion:no-preference){.experience-strip:is([data-motion=running],[data-motion=paused]){overflow:hidden}.experience-strip:is([data-motion=running],[data-motion=paused]) .experience-track{animation:36s linear infinite experience-scroll}.experience-strip:is([data-motion=running],[data-motion=paused]) ul[aria-hidden=true]{display:flex}.experience-strip[data-motion=paused] .experience-track{animation-play-state:paused}}@media (prefers-reduced-motion:no-preference) and (hover:hover){.experience-strip:hover .experience-track{animation-play-state:paused}}@keyframes experience-scroll{to{transform:translate(-50%)}}.team-list{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 24px;margin:29px 0 0;padding:0;list-style:none;display:grid}.team-list strong{margin-top:12px;font-size:17px;font-weight:500;display:block}.team-list span{color:var(--muted);margin-top:2px;font-size:14px;display:block}.research-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:39px;display:grid}.research-list article{border-top:1px solid var(--rule);padding-top:21px}.research-list p{margin-bottom:19px;font-size:16px}.faq-list>details:first-child>summary{padding-top:0}details{border-bottom:1px solid var(--rule)}summary{color:var(--charcoal);cursor:pointer;padding:18px 30px 18px 0;font-size:18px;font-weight:500;line-height:1.4;text-decoration:none}summary:hover{color:var(--charcoal)}details p{max-width:610px;margin:0 0 20px}.contact-inner{padding:66px 0 72px}.contact-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;display:grid}.contact-fields>div:last-child{grid-column:1/-1}label{color:var(--charcoal);margin-bottom:7px;font-size:15px;font-weight:500;display:block}input,textarea{width:100%;color:var(--charcoal);background:#fff;border:1px solid #8e8995;border-radius:0;padding:10px 11px;line-height:1.4;display:block}textarea{resize:vertical}.field-hint{margin:7px 0 0;font-size:14px!important;line-height:1.45!important}.contact-alternative{border-top:1px solid var(--rule);flex-wrap:wrap;grid-column:2;justify-content:space-between;align-items:flex-end;gap:16px 24px;margin-top:40px;padding-top:24px;display:flex}.contact-alternative p{margin:0 0 12px;font-size:14px}.preview-note{margin:0 0 19px;font-weight:500;color:var(--muted)!important;font-size:15px!important}footer{background:var(--charcoal);color:var(--rule);font-size:12px}.footer-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:56px;padding:40px 0;display:grid}.footer-brand>a{width:128px;line-height:0;display:block}.footer-brand span{margin-top:12px;display:block}footer img{width:128px}.footer-meta{grid-template-columns:minmax(0,83px) max-content;gap:12px 28px;display:grid}.footer-meta a,.footer-meta button{grid-column:2}.cookie-settings{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500;text-decoration:none}footer span{letter-spacing:.01em}footer a{color:#fff;text-decoration:none}footer a[href]:hover{color:#fff}footer a[aria-current=page]{text-decoration:underline}footer :focus-visible{outline-color:#fff}.privacy-notice{z-index:2;border:1px solid var(--rule);width:min(560px,100% - 40px);max-height:calc(100svh - 40px);color:var(--charcoal);background:#fff;margin:0;padding:24px;position:fixed;inset:auto 20px 20px auto}.cookie-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cookie-heading h2{margin:6px 0 16px;font-size:22px;font-weight:500;line-height:1.25}.cookie-close{height:44px;color:inherit;cursor:pointer;background:0 0;border:0;flex:0 0 44px;padding:0;font-size:24px}.privacy-notice p{color:var(--muted)}#cookie-status{margin:16px 0 0;font-size:14px}#cookie-status:empty{display:none}.cookie-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.cookie-actions button{flex:160px}:focus-visible{outline:3px solid var(--bright-violet);outline-offset:4px}@media (width<=800px){.site-header,.hero-inner,.content-section,.approach,.technology-inner,.contact-inner,.footer-inner{width:min(100% - 56px,1120px)}.content-section,.approach,.contact-inner,.technology-inner{grid-template-columns:205px minmax(0,1fr);column-gap:45px}.deliverable-list,.research-list{grid-template-columns:1fr}.team-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px}}@media (width<=620px){.site-header,.hero-inner,.content-section,.approach,.technology-inner,.contact-inner,.footer-inner{width:min(100% - 40px,1120px)}.site-header{flex-wrap:wrap;gap:0;min-height:76px;padding:16px 0}.brand{width:160px}.site-header nav{border-top:1px solid var(--rule);flex-direction:column;flex-basis:100%;align-items:stretch;gap:0;margin-top:16px;padding-top:8px}.site-header nav a,.services-nav summary{padding:12px 0;font-size:16px;display:block}.services-nav summary{display:list-item}.services-menu{border:0;width:auto;padding:0 0 8px 20px;position:static}.hero-inner{padding:42px 0 47px}.hero-art{margin-bottom:-47px}h1{margin-bottom:18px;font-size:32px;line-height:38px}.lede{margin-bottom:25px;font-size:16px;line-height:24px}.hero-actions{gap:20px}.contact-control,.explore-link{font-size:14px}.content-section,.approach,.contact-inner{padding:52px 0 57px;display:block}.section-label h2{max-width:330px;margin-bottom:31px;font-size:27px}.section-content p,.approach-content p,.contact-content p{font-size:16px}.section-intro{font-size:18px!important}.section-content h3,.research h3{font-size:19px}.scope-list li,.service-summaries{font-size:16px}.deliverable-list article{padding:20px}.approach-content p{margin-bottom:20px}.approach-content p:last-child{margin-top:27px}.technology-inner{padding:56px 0 61px;display:block}.technology h2{margin-bottom:19px;font-size:27px}.technology p{font-size:16px}.technology-detail{margin-top:38px}.technology h3{font-size:19px}.team-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.research-list{display:block}.research-list article+article{margin-top:33px}summary{font-size:17px}.contact-inner{padding:56px 0 61px}.contact-fields{margin-top:25px;display:block}.contact-fields>div{margin-bottom:18px}.footer-inner{grid-template-columns:1fr;align-items:start;gap:24px;padding:32px 0}.footer-meta{grid-template-columns:1fr;justify-items:start;gap:0}.footer-meta a,.footer-meta button{grid-column:1;align-items:center;min-height:44px;display:flex}.footer-inner>span{text-align:left}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-700.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}.container{width:min(100% - 80px,1120px);margin-inline:auto}.team-portrait{aspect-ratio:4/5;object-fit:cover;width:100%;height:auto;display:block}.team-list .text-link{margin-top:12px;font-size:14px;display:inline-block}.team-list .text-link span{color:inherit;display:inline}.post-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;padding-block:32px 72px;display:grid}.post-card{flex-direction:column;min-width:0;display:flex}.post-card[hidden]{display:none}.post-thumbnail{aspect-ratio:2;object-fit:cover;object-position:center 30%;border:1px solid var(--rule);width:100%;height:auto;margin-bottom:20px;display:block}.post-category{color:var(--violet);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:500}.post-meta{color:var(--muted);margin-bottom:16px;font-size:14px}.post-list h2{margin:0;font-size:22px;font-weight:500;line-height:1.3}.post-card>a{flex:1;display:block}.post-card .post-meta{margin:8px 0 0;font-size:13px}.article{border-top:1px solid var(--rule)}.article>.container{max-width:760px;padding:57px 0 72px}.article header,.prose{width:min(100%,760px);margin-inline:auto}.article header{padding-bottom:31px}.article h1{max-width:none}.article .summary{color:var(--muted);margin-bottom:0;font-size:18px;line-height:28px}.prose{color:var(--muted);margin-top:48px;font-size:17px;line-height:1.65}.prose h2{margin:48px 0 20px;font-size:29px;line-height:1.18}.prose h3{margin:32px 0 16px;font-size:20px;line-height:1.3}.prose h2,.prose h3{color:var(--charcoal);font-weight:500}.prose img{max-width:100%;height:auto}.prose figure{margin:32px 0}.prose figure p{margin-bottom:12px}.prose figcaption{color:var(--muted);font-size:14px}.prose code{background:var(--pale);color:var(--charcoal);padding:2px 5px;font:.86em IBM Plex Mono,monospace}.prose pre{border:1px solid var(--rule);background:var(--pale);color:var(--charcoal);padding:20px;overflow-x:auto}.prose pre code{color:inherit;background:0 0;padding:0}.prose blockquote{border-left:3px solid var(--violet);color:var(--charcoal);margin:32px 0;padding-left:20px}.not-found{min-height:40vh;padding-block:57px 72px}.brand-assets{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px 24px;margin-top:24px;display:grid}.brand-preview{border:1px solid var(--rule);justify-content:center;align-items:center;height:200px;padding:24px;display:flex}.brand-preview-dark{background:var(--charcoal);border-color:var(--charcoal)}.brand-preview img{width:100%;max-width:280px;height:auto}.brand-preview .brand-symbol{width:128px}.brand-assets h3{margin:20px 0 12px;font-size:18px;font-weight:500}.brand-downloads{gap:24px;display:flex}.blog-toolbar{border-bottom:1px solid var(--rule);align-items:baseline;gap:24px;padding-top:47px;display:flex}.category-filter{flex-wrap:wrap;flex:1;align-items:baseline;gap:0 24px;min-width:0}.category-filter:not([hidden]){display:flex}.category-filter button{color:var(--violet);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:14px 0;font-size:14px;font-weight:500}.category-filter button:hover{color:var(--charcoal)}.category-filter button[aria-pressed=true]{border-bottom-color:var(--violet)}.author-profile{border-top:1px solid var(--rule);align-items:center;gap:24px;margin-top:40px;padding-top:24px;display:flex}.article .author-profile{max-width:760px;margin-inline:auto}.author-photo{object-fit:cover;flex:0 0 112px;width:112px;height:140px}.author-logo{object-fit:contain}.author-profile h2,.author-post h2{margin:0 0 8px;font-size:24px;font-weight:500;line-height:1.3}.author-profile p{color:var(--muted);margin:0 0 12px}.author-posts{padding-bottom:72px}.author-post{border-top:1px solid var(--rule);padding:24px 0}.hero+.author-posts .author-post:first-child{border-top:0}.author-post>p:not(.post-meta){color:var(--muted)}@media (width<=800px){.container{width:min(100% - 56px,1120px)}}@media (width<=620px){.blog-toolbar{padding-top:38px}.post-list{grid-template-columns:1fr;gap:32px}.brand-assets{grid-template-columns:1fr}.container{width:min(100% - 40px,1120px)}.article .summary{font-size:16px;line-height:24px}.article>.container,.not-found{padding-block:42px 57px}.prose{font-size:16px}.prose h2{font-size:27px}.prose h3{font-size:19px}.author-profile{align-items:flex-start;gap:16px}.author-photo{flex-basis:80px;width:80px;height:100px}.author-profile h2{font-size:20px}}.skip-link{z-index:10;background:#fff;padding:.5rem .75rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}
