@font-face{font-family:Manrope;src:url('/assets/manrope-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/manrope-medium.ttf') format('truetype');font-weight:500 700;font-display:swap}
@font-face{font-family:Onest;src:url('/assets/onest-regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--paper:#f7f8f6;--ink:#202321;--quiet:#696e69;--rule:#d7dbd5;--signal:#d45d2e;--night:#222723;--night-type:#f0f2ec;--gutter:clamp(24px,5.6vw,104px);--max:1600px;--body:Onest,sans-serif;--display:Manrope,sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--signal);outline-offset:6px}::selection{background:var(--signal);color:white}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:400}button{border:0;background:none}a:hover{color:var(--signal)}[hidden]{display:none!important}.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}.skip{position:fixed;z-index:99;left:20px;top:-80px;padding:10px 20px;background:var(--ink);color:white}.skip:focus{top:15px}.header{display:flex;align-items:center;gap:40px;height:113px}.brand{display:flex;align-items:baseline;position:relative}.wordmark{font-family:var(--display);font-size:43px;line-height:1;letter-spacing:-.085em}.brand-dot{position:relative;width:28px;height:44px;align-self:center;padding:0}.brand-dot span{display:block;width:8px;height:8px;background:var(--signal);border-radius:50%;position:absolute;bottom:9px;left:5px;transition:transform .3s}.brand-dot:hover span{transform:scale(1.5)}.desktop-nav{display:flex;gap:37px;margin:auto;font-size:14px}.contact-nav{font-size:14px}.menu-toggle{display:none}.mobile-menu{position:absolute;top:90px;left:0;right:0;padding:24px var(--gutter);background:var(--paper);z-index:10;border-bottom:1px solid var(--rule)}.mobile-menu a{display:block;padding:11px 0;font-size:24px}.hero{padding-top:40px}.hero-meta,.hero-foot,.section-index,.eyebrow{font-size:12px;letter-spacing:.065em;text-transform:uppercase}.hero-meta,.hero-foot,.section-index{display:flex;justify-content:space-between;gap:20px}.hero-meta{color:var(--quiet);padding-top:22px;border-top:1px solid var(--rule)}.hero h1{font-size:clamp(84px,11.4vw,176px);line-height:1.08;letter-spacing:-.075em;margin:47px 0 28px}.period{color:var(--signal)}.hero-sub{display:flex;justify-content:space-between;align-items:flex-end}.hero-sub p{font-size:clamp(18px,1.7vw,25px);line-height:1.5;letter-spacing:-.02em;max-width:540px}.quiet-link{display:flex;gap:74px;align-items:center;font-size:14px;border-bottom:1px solid var(--rule);padding:0 0 10px}.quiet-link span{font-size:12px;color:var(--quiet)}.signal-field{position:relative;height:275px;margin-top:12px;overflow:hidden}.signal{width:100%;height:100%;display:block}.signal-legend{position:absolute;bottom:14px;width:100%;display:flex;justify-content:space-between;color:var(--quiet);font-size:12px;letter-spacing:.035em}.hero-foot{color:var(--quiet);border-top:1px solid var(--rule);padding:20px 0 5px}.section{padding-top:120px;padding-bottom:110px}.section-index{color:var(--quiet)}.section-opening{display:grid;grid-template-columns:1.25fr 1fr;gap:9%;margin:48px 0 67px;align-items:end}.section-opening h2{font-size:clamp(38px,4.05vw,62px);line-height:1.17;letter-spacing:-.052em}.section-opening p{font-size:18px;line-height:1.7;max-width:445px;color:var(--quiet)}.practice-list{border-top:1px solid var(--ink)}details{border-bottom:1px solid var(--rule)}summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:7% 1fr 30% 24px;gap:18px;align-items:center;padding:26px 0}summary::-webkit-details-marker{display:none}.practice-number{font-size:12px;color:var(--quiet)}summary h3{font-size:clamp(22px,2.25vw,34px);line-height:1.3;letter-spacing:-.035em}.practice-sub{font-size:13px;color:var(--quiet)}.expand{position:relative;width:18px;height:18px}.expand:before,.expand:after{content:'';position:absolute;top:8px;left:0;width:16px;height:1px;background:currentColor}.expand:after{transform:rotate(90deg);transition:transform .2s}details[open] .expand:after{transform:rotate(0)}details[open] summary h3{color:var(--signal)}.practice-body{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:0 6% 34px 8.5%;font-size:16px}.practice-body p{max-width:540px}.practice-body ul{list-style:none;margin:0;padding:0;color:var(--quiet);font-size:14px}.practice-body li+li{margin-top:6px}.software{background:var(--night);color:var(--night-type)}.software .section-index,.software .section-opening p{color:#adb5ab}.experience{padding-bottom:45px}.client-list{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:55px}.client{min-height:120px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--display);font-size:21px;line-height:1.3;letter-spacing:-.04em;padding:25px 14px;border-top:1px solid var(--rule)}.client img{max-width:135px;max-height:48px;object-fit:contain;filter:grayscale(1);opacity:.82;mix-blend-mode:multiply}.journal{padding-top:90px}.article-list{border-top:1px solid var(--ink)}.article-row{display:grid;grid-template-columns:20% 1fr 15%;gap:20px;padding:30px 0;border-bottom:1px solid var(--rule);align-items:baseline}.article-topic,.article-time{font-size:13px;color:var(--quiet)}.article-row h3{font-size:28px;letter-spacing:-.04em;line-height:1.35;max-width:730px}.article-time{text-align:right}.footer{padding-top:70px;border-top:1px solid var(--rule)}.contact-body{display:grid;grid-template-columns:1.25fr 1fr;gap:9%;padding:65px 0 100px}.contact-body h2{font-size:clamp(40px,5vw,76px);line-height:1.14;letter-spacing:-.055em}.contact-details{padding-top:5px}.contact-mail{font-family:var(--display);font-size:clamp(25px,3vw,42px);letter-spacing:-.04em}.contact-people{display:flex;gap:65px;margin-top:40px}.contact-people a{display:flex;flex-direction:column;font-size:18px}.contact-people small{font-size:13px;color:var(--quiet);margin-top:5px}.footer-bottom{border-top:1px solid var(--rule);padding:27px 0 35px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px;color:var(--quiet)}.footer-bottom .wordmark{font-size:32px;color:var(--ink)}.footer-bottom .brand-dot span{bottom:13px;width:6px;height:6px}.name-dialog{border:0;background:var(--paper);color:var(--ink);width:min(720px,calc(100% - 32px));max-height:90dvh;padding:64px}.name-dialog::backdrop{background:rgba(20,25,20,.72);backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:22px;top:14px;font-size:30px;width:44px;height:44px}.name-dialog h2{font-size:90px;letter-spacing:-.085em;line-height:1.2;margin:30px 0}.name-dialog h2 span{color:var(--signal)}.name-definition{font-size:19px;line-height:1.7}.name-definition p+p{margin-top:20px}.name-definition small{display:block;font-size:13px;color:var(--quiet);margin-top:30px}
@media(min-width:1600px){.signal-field{height:320px}.hero{padding-top:50px}}
@media(max-width:1000px){.header{gap:24px}.desktop-nav{gap:22px}.section-opening{gap:5%;grid-template-columns:1.2fr 1fr}.practice-sub{display:none}summary{grid-template-columns:7% 1fr 24px}.client-list{grid-template-columns:repeat(4,1fr)}.contact-people{gap:38px}.meta-right{display:none}}
@media(max-width:700px){.header{height:90px;justify-content:space-between}.wordmark{font-size:37px}.brand-dot span{bottom:11px}.desktop-nav,.contact-nav{display:none}.menu-toggle{display:flex;font-size:14px;gap:18px;align-items:center;padding:10px 0 10px 10px}.menu-toggle span{font-size:22px}.hero{padding-top:8px}.hero-meta{font-size:10px;letter-spacing:.04em;padding-top:20px}.hero h1{font-size:clamp(61px,13.2vw,94px);margin:48px 0 28px;white-space:nowrap;letter-spacing:-.072em}.hero-sub{display:block}.hero-sub p{font-size:19px;line-height:1.55}.quiet-link{width:fit-content;margin-top:30px;gap:55px}.signal-field{height:190px;margin:25px calc(-1 * var(--gutter)) 0}.signal-legend{padding-inline:var(--gutter);font-size:10px;bottom:10px}.hero-foot{font-size:10px;letter-spacing:0;padding-top:15px}.hero-foot span:last-child{display:none}.section{padding-top:75px;padding-bottom:68px}.section-index{font-size:11px}.section-index>span+span{display:none}.section-opening{grid-template-columns:1fr;gap:25px;margin:32px 0 42px}.section-opening h2{font-size:38px;letter-spacing:-.045em}.section-opening p{font-size:16px;max-width:520px}.practice-list summary{grid-template-columns:24px 1fr 16px;gap:12px;padding:25px 0}.practice-number{font-size:11px}summary h3{font-size:24px;line-height:1.3}.practice-body{display:block;padding:0 0 28px 36px;font-size:16px}.practice-body ul{margin-top:22px;font-size:14px}.client-list{grid-template-columns:repeat(2,1fr);margin-top:35px}.client{min-height:100px;font-size:20px}.client img{max-width:120px;max-height:40px}.experience{padding-bottom:10px}.article-row{grid-template-columns:1fr auto;row-gap:13px;padding:25px 0}.article-row h3{grid-column:1/-1;grid-row:2;font-size:25px}.article-topic,.article-time{font-size:12px}.footer{padding-top:40px}.contact-body{display:block;padding:38px 0 55px}.contact-body h2{font-size:49px}.contact-details{margin-top:38px}.contact-mail{font-size:32px}.contact-people{margin-top:32px;gap:60px}.footer-bottom{flex-wrap:wrap;row-gap:25px;font-size:11px}.footer-bottom>span:nth-child(2){order:3;width:100%}.name-dialog{padding:38px 26px}.name-dialog h2{font-size:74px}.name-definition{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.product-list{border-top:1px solid #556051}.product-row{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:45px 0;border-bottom:1px solid #495246;align-items:center}.product-meta{font-size:12px;color:#adb5ab}.product-row h3{font-size:clamp(30px,3.5vw,50px);letter-spacing:-.045em;line-height:1.25;margin:20px 0 18px}.product-row p{font-size:17px;color:#b9c0b5;max-width:380px}.product-more{display:flex;justify-content:space-between;width:150px;font-size:13px;margin-top:26px}.product-diagram svg{width:100%;height:auto;transition:transform .5s}.product-row:hover{color:#f6b08c}.product-row:hover svg{transform:translateX(8px)}.reading{padding-top:55px;padding-bottom:120px}.reading-top{border-top:1px solid var(--rule);padding-top:20px;display:flex;justify-content:space-between;font-size:13px;color:var(--quiet)}.reading-header{max-width:1050px;padding:72px 0 80px}.reading-header h1{font-size:clamp(44px,5.8vw,88px);letter-spacing:-.06em;line-height:1.14}.reading-lead{font-size:24px;line-height:1.6;margin-top:35px;max-width:870px;letter-spacing:-.02em;color:var(--quiet)}.reading-layout{display:grid;grid-template-columns:1fr 2.15fr;gap:8%;align-items:start}.contents{position:sticky;top:35px}.contents .eyebrow{color:var(--quiet)}.contents nav{margin-top:22px;display:flex;flex-direction:column;gap:18px;font-size:14px;line-height:1.5}.reading-copy{max-width:770px}.reading-copy section+section{margin-top:50px}.reading-copy h2{font-size:30px;line-height:1.35;letter-spacing:-.04em;margin-bottom:24px}.reading-copy p{font-size:18px;line-height:1.8}.reading-copy p+p{margin-top:22px}.reading-related{margin-top:75px}.reading-related .article-row{grid-template-columns:1fr auto;margin-top:24px;border-top:1px solid var(--rule)}.reading-related .article-row h3{grid-row:2;grid-column:1/-1}.product-display{background:var(--night);padding:30px 10% 20px;margin-bottom:75px;position:relative}.product-display svg{display:block;max-width:850px;margin:auto;width:100%;height:auto}.product-display>span{font-size:12px;color:#adb5ab;display:block;text-align:center}.product-facts{margin:0 0 28px}.product-facts div+div{margin-top:22px}.product-facts dt{font-size:12px;color:var(--quiet);margin-bottom:7px}.product-facts dd{font-size:15px;margin:0}.document-link{font-size:14px;display:inline-block;border-bottom:1px solid var(--rule);padding-bottom:8px}.not-found{padding-top:90px;padding-bottom:160px}.not-found h1{font-size:clamp(48px,7vw,90px);letter-spacing:-.05em;margin:25px 0}.not-found .quiet-link{display:inline-flex;margin-top:30px}
@media(max-width:700px){.product-row{grid-template-columns:1fr;gap:15px;padding:30px 0}.product-row h3{font-size:34px;margin:16px 0}.product-row p{font-size:16px}.product-diagram{max-width:420px;order:2}.product-more{margin-top:20px}.reading{padding-top:20px;padding-bottom:70px}.reading-top{font-size:12px}.reading-header{padding:42px 0}.reading-header h1{font-size:43px;letter-spacing:-.05em;overflow-wrap:break-word}.reading-lead{font-size:20px;margin-top:26px}.reading-layout{grid-template-columns:1fr;gap:40px}.contents{position:static;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:23px 0}.contents nav{gap:12px}.reading-copy h2{font-size:28px}.reading-copy p{font-size:17px;line-height:1.8}.product-display{padding:20px 5% 15px;margin-bottom:40px}.product-display>span{font-size:11px}.product-facts{display:grid;grid-template-columns:1fr 1fr;gap:20px}.product-facts div+div{margin-top:0}.not-found{padding-top:65px;padding-bottom:100px}}
/* The point is the only saturated element in the opening composition. */
.hero .period{display:inline-block;font-size:0;width:.008em;height:.008em;min-width:14px;min-height:14px;border-radius:50%;background:var(--signal);margin-left:8px;margin-bottom:1px}
@media(max-width:700px){.hero h1{font-size:clamp(48px,15.6vw,94px)}.hero .period{min-width:6px;min-height:6px;margin-left:3px}}
@media(prefers-reduced-motion:no-preference){.hero h1{animation:arrive .8s both}.hero-sub{animation:arrive .8s .12s both}.signal-field{animation:arrive 1.1s .2s both}@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}}
.client-compact{font-size:16px;letter-spacing:-.025em}.client img{max-height:65px}.client span{max-width:100%}
@media(max-width:700px){.client-compact{font-size:14px}.client img{max-height:55px}.client{overflow-wrap:anywhere}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.matrix-filters{display:flex;gap:25px;border-bottom:1px solid var(--ink);padding-bottom:18px;flex-wrap:wrap}.matrix-filters button{padding:4px 0;font-size:14px;color:var(--quiet);position:relative}.matrix-filters button[aria-pressed=true]{color:var(--ink)}.matrix-filters button[aria-pressed=true]:after{content:'';position:absolute;left:0;right:0;bottom:-19px;height:2px;background:var(--signal)}.competence-matrix{border-collapse:collapse;width:100%;text-align:left;table-layout:fixed}.competence-matrix thead th{font-size:12px;font-weight:400;color:var(--quiet);letter-spacing:.04em;padding:22px 20px 22px 0;border-bottom:1px solid var(--rule)}.competence-matrix thead th:first-child{width:27%}.competence-matrix thead th:nth-child(2){width:29%}.competence-matrix tbody th,.competence-matrix td{border-bottom:1px solid var(--rule);padding:26px 30px 26px 0;vertical-align:top}.competence-matrix tbody th{font-family:var(--display);font-size:24px;font-weight:400;line-height:1.35;letter-spacing:-.04em}.competence-matrix td:last-child{padding-right:0}.technology-list{display:flex;flex-wrap:wrap;column-gap:16px;row-gap:7px;max-width:280px;font-size:14px;color:var(--quiet)}.technology-list span{white-space:normal}.competence-matrix td p{font-size:16px;line-height:1.65}.work-format{display:block;font-size:12px;color:var(--quiet);margin-top:16px}.competence-matrix tbody tr:hover{background:#eff2ec}
@media(max-width:700px){.matrix-filters{gap:9px 20px;padding-bottom:18px}.matrix-filters button{font-size:14px}.matrix-filters button[aria-pressed=true]{color:var(--signal)}.matrix-filters button[aria-pressed=true]:after{display:none}.competence-matrix thead{display:none}.competence-matrix,.competence-matrix tbody{display:block}.competence-matrix tr{display:block;padding:24px 0;border-bottom:1px solid var(--rule)}.competence-matrix tbody th,.competence-matrix td{display:block;border:0;padding:0}.competence-matrix tbody th{font-size:25px;margin-bottom:15px}.technology-list{max-width:100%;column-gap:16px;row-gap:4px;font-size:13px}.competence-matrix td:last-child{margin-top:19px}.competence-matrix td p{font-size:16px}.work-format{font-size:12px;margin-top:12px}.competence-matrix tbody tr:hover{background:transparent}}
.case-feature{display:grid;grid-template-columns:1.2fr 1fr;gap:12%;padding:50px 0 65px;border-top:1px solid var(--ink);align-items:center}.case-feature h3{font-size:clamp(36px,4vw,56px);line-height:1.2;letter-spacing:-.05em;max-width:600px;margin:25px 0}.case-feature p{color:var(--quiet);font-size:18px;line-height:1.7;max-width:460px}.case-feature .quiet-link{width:180px;margin-top:30px}.semantic-diagram{padding:10px 0;font-size:15px}.semantic-diagram>div{display:grid;grid-template-columns:25px 1fr;column-gap:22px;padding:17px 0;border-bottom:1px solid var(--rule);margin-left:calc(var(--indent,0)*15px)}.semantic-diagram>div:nth-child(2){--indent:1}.semantic-diagram>div:nth-child(3){--indent:2}.semantic-diagram>div:nth-child(4){--indent:3}.semantic-diagram span{font-size:12px;color:var(--signal);grid-row:span 2}.semantic-diagram strong{font-weight:400;font-size:22px;letter-spacing:-.03em}.semantic-diagram small{color:var(--quiet);font-size:13px;margin-top:5px}.case-row{display:grid;grid-template-columns:7% 1fr 22%;gap:25px;border-top:1px solid var(--rule);padding:30px 0}.case-index{font-size:12px;color:var(--quiet);padding-top:5px}.case-topic{font-size:12px;color:var(--quiet)}.case-row h3{font-size:29px;line-height:1.35;letter-spacing:-.04em;margin:10px 0}.case-row p{font-size:15px;color:var(--quiet);max-width:610px}.case-discipline{font-size:12px;color:var(--quiet);padding-top:6px}.case-page .reading-header>.eyebrow{color:var(--quiet);display:block;margin-bottom:28px}.case-technologies{display:flex;flex-direction:column;gap:14px;margin-top:25px;font-size:15px;color:var(--quiet)}.next-case{display:block;font-family:var(--display);font-size:32px;letter-spacing:-.04em;line-height:1.35;margin-top:22px;border-top:1px solid var(--rule);padding-top:24px}.practice{padding-top:85px}
@media(max-width:700px){.case-feature{grid-template-columns:1fr;gap:30px;padding:30px 0 40px}.case-feature h3{font-size:38px;margin:20px 0}.case-feature p{font-size:16px}.semantic-diagram{max-width:440px}.semantic-diagram strong{font-size:20px}.semantic-diagram small{font-size:12px}.case-row{grid-template-columns:22px 1fr;gap:14px;padding:26px 0}.case-row h3{font-size:25px}.case-row p{font-size:15px}.case-discipline{display:none}.case-technologies{flex-direction:row;flex-wrap:wrap;gap:12px 20px;margin-top:15px}.next-case{font-size:28px}.practice{padding-top:70px}}
@media(max-width:700px){.hero-meta,.hero-foot,.section-index,.signal-legend,.footer-bottom,.product-display>span{font-size:12px}.hero-meta{letter-spacing:0}.hero-foot{font-size:12px}.signal-legend{letter-spacing:0}.mobile-menu a{font-size:22px}.footer-bottom>span{font-size:12px}}
:root{--signal-ink:#b4471d}a:hover{color:var(--signal-ink)}.software a:hover{color:#f6b08c}
@media(max-width:700px){.matrix-filters button[aria-pressed=true]{color:var(--signal-ink)}}
